rivet-design 0.9.1 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/mcp/agent-variants/SessionStore.d.ts +63 -2
  2. package/dist/mcp/agent-variants/SessionStore.d.ts.map +1 -1
  3. package/dist/mcp/agent-variants/SessionStore.js +331 -71
  4. package/dist/mcp/agent-variants/SessionStore.js.map +1 -1
  5. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts +197 -8
  6. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  7. package/dist/mcp/agent-variants/WorktreeOrchestrator.js +805 -46
  8. package/dist/mcp/agent-variants/WorktreeOrchestrator.js.map +1 -1
  9. package/dist/mcp/agent-variants/contracts.d.ts +1101 -9
  10. package/dist/mcp/agent-variants/contracts.d.ts.map +1 -1
  11. package/dist/mcp/agent-variants/contracts.js +131 -5
  12. package/dist/mcp/agent-variants/contracts.js.map +1 -1
  13. package/dist/mcp/agent-variants/createZeroToOneTool.d.ts +205 -0
  14. package/dist/mcp/agent-variants/createZeroToOneTool.d.ts.map +1 -0
  15. package/dist/mcp/agent-variants/createZeroToOneTool.js +295 -0
  16. package/dist/mcp/agent-variants/createZeroToOneTool.js.map +1 -0
  17. package/dist/mcp/agent-variants/designContextStore.d.ts +160 -0
  18. package/dist/mcp/agent-variants/designContextStore.d.ts.map +1 -0
  19. package/dist/mcp/agent-variants/designContextStore.js +295 -0
  20. package/dist/mcp/agent-variants/designContextStore.js.map +1 -0
  21. package/dist/mcp/agent-variants/elementRefToTarget.d.ts +21 -0
  22. package/dist/mcp/agent-variants/elementRefToTarget.d.ts.map +1 -0
  23. package/dist/mcp/agent-variants/elementRefToTarget.js +47 -0
  24. package/dist/mcp/agent-variants/elementRefToTarget.js.map +1 -0
  25. package/dist/mcp/agent-variants/errors.d.ts +1 -1
  26. package/dist/mcp/agent-variants/errors.d.ts.map +1 -1
  27. package/dist/mcp/agent-variants/errors.js +6 -0
  28. package/dist/mcp/agent-variants/errors.js.map +1 -1
  29. package/dist/mcp/agent-variants/index.d.ts +4 -1
  30. package/dist/mcp/agent-variants/index.d.ts.map +1 -1
  31. package/dist/mcp/agent-variants/index.js +7 -1
  32. package/dist/mcp/agent-variants/index.js.map +1 -1
  33. package/dist/mcp/agent-variants/inspirationDesignContext.d.ts +430 -0
  34. package/dist/mcp/agent-variants/inspirationDesignContext.d.ts.map +1 -0
  35. package/dist/mcp/agent-variants/inspirationDesignContext.js +2379 -0
  36. package/dist/mcp/agent-variants/inspirationDesignContext.js.map +1 -0
  37. package/dist/mcp/agent-variants/pendingChangesAdapter.d.ts.map +1 -1
  38. package/dist/mcp/agent-variants/pendingChangesAdapter.js +10 -7
  39. package/dist/mcp/agent-variants/pendingChangesAdapter.js.map +1 -1
  40. package/dist/mcp/agent-variants/sourceContext.d.ts +7 -0
  41. package/dist/mcp/agent-variants/sourceContext.d.ts.map +1 -0
  42. package/dist/mcp/agent-variants/sourceContext.js +158 -0
  43. package/dist/mcp/agent-variants/sourceContext.js.map +1 -0
  44. package/dist/mcp/agent-variants/tools.d.ts +14 -0
  45. package/dist/mcp/agent-variants/tools.d.ts.map +1 -1
  46. package/dist/mcp/agent-variants/tools.js +330 -15
  47. package/dist/mcp/agent-variants/tools.js.map +1 -1
  48. package/dist/mcp/changeBatchClassification.d.ts +30 -0
  49. package/dist/mcp/changeBatchClassification.d.ts.map +1 -0
  50. package/dist/mcp/changeBatchClassification.js +65 -0
  51. package/dist/mcp/changeBatchClassification.js.map +1 -0
  52. package/dist/mcp/server.d.ts.map +1 -1
  53. package/dist/mcp/server.js +237 -39
  54. package/dist/mcp/server.js.map +1 -1
  55. package/dist/proxy-middleware/proxy-config.d.ts.map +1 -1
  56. package/dist/proxy-middleware/proxy-config.js +1 -15
  57. package/dist/proxy-middleware/proxy-config.js.map +1 -1
  58. package/dist/routes/agentVariants.d.ts +3 -1
  59. package/dist/routes/agentVariants.d.ts.map +1 -1
  60. package/dist/routes/agentVariants.js +131 -13
  61. package/dist/routes/agentVariants.js.map +1 -1
  62. package/dist/routes/mcp.d.ts +7 -1
  63. package/dist/routes/mcp.d.ts.map +1 -1
  64. package/dist/routes/mcp.js +139 -16
  65. package/dist/routes/mcp.js.map +1 -1
  66. package/dist/server.d.ts.map +1 -1
  67. package/dist/server.js +2 -2
  68. package/dist/server.js.map +1 -1
  69. package/dist/services/SessionBridgeService.d.ts +22 -0
  70. package/dist/services/SessionBridgeService.d.ts.map +1 -1
  71. package/dist/services/SessionBridgeService.js +61 -0
  72. package/dist/services/SessionBridgeService.js.map +1 -1
  73. package/dist/services/TelemetryService.d.ts +121 -0
  74. package/dist/services/TelemetryService.d.ts.map +1 -1
  75. package/dist/services/TelemetryService.js +155 -0
  76. package/dist/services/TelemetryService.js.map +1 -1
  77. package/dist/services/WorktreeManager.d.ts +57 -5
  78. package/dist/services/WorktreeManager.d.ts.map +1 -1
  79. package/dist/services/WorktreeManager.js +205 -13
  80. package/dist/services/WorktreeManager.js.map +1 -1
  81. package/dist/services/templates/designCatalog.d.ts +27 -0
  82. package/dist/services/templates/designCatalog.d.ts.map +1 -0
  83. package/dist/services/templates/designCatalog.js +141 -0
  84. package/dist/services/templates/designCatalog.js.map +1 -0
  85. package/dist/services/templates/designmd/airbnb.md +545 -0
  86. package/dist/services/templates/designmd/airtable.md +554 -0
  87. package/dist/services/templates/designmd/apple.md +562 -0
  88. package/dist/services/templates/designmd/binance.md +634 -0
  89. package/dist/services/templates/designmd/bmw-m.md +503 -0
  90. package/dist/services/templates/designmd/bmw.md +544 -0
  91. package/dist/services/templates/designmd/bugatti.md +454 -0
  92. package/dist/services/templates/designmd/cal.md +542 -0
  93. package/dist/services/templates/designmd/claude.md +589 -0
  94. package/dist/services/templates/designmd/clay.md +541 -0
  95. package/dist/services/templates/designmd/cohere.md +451 -0
  96. package/dist/services/templates/designmd/cursor.md +537 -0
  97. package/dist/services/templates/designmd/expo.md +526 -0
  98. package/dist/services/templates/designmd/figma.md +578 -0
  99. package/dist/services/templates/designmd/framer.md +544 -0
  100. package/dist/services/templates/designmd/hp.md +670 -0
  101. package/dist/services/templates/designmd/linear.app.md +548 -0
  102. package/dist/services/templates/designmd/mintlify.md +852 -0
  103. package/dist/services/templates/designmd/miro.md +825 -0
  104. package/dist/services/templates/designmd/notion.md +821 -0
  105. package/dist/services/templates/designmd/raycast.md +669 -0
  106. package/dist/services/templates/designmd/resend.md +585 -0
  107. package/dist/services/templates/designmd/sentry.md +262 -0
  108. package/dist/services/templates/designmd/shopify.md +350 -0
  109. package/dist/services/templates/designmd/spotify.md +246 -0
  110. package/dist/services/templates/designmd/stripe.md +322 -0
  111. package/dist/services/templates/designmd/supabase.md +255 -0
  112. package/dist/services/templates/designmd/superhuman.md +252 -0
  113. package/dist/services/templates/designmd/uber.md +295 -0
  114. package/dist/services/templates/designmd/vercel.md +310 -0
  115. package/dist/services/templates/viteReactTs.d.ts +42 -0
  116. package/dist/services/templates/viteReactTs.d.ts.map +1 -0
  117. package/dist/services/templates/viteReactTs.js +267 -0
  118. package/dist/services/templates/viteReactTs.js.map +1 -0
  119. package/dist/types/change-request-types.d.ts +15 -3
  120. package/dist/types/change-request-types.d.ts.map +1 -1
  121. package/dist/utils/skills/claude-skill.d.ts +2 -2
  122. package/dist/utils/skills/claude-skill.d.ts.map +1 -1
  123. package/dist/utils/skills/claude-skill.js +19 -98
  124. package/dist/utils/skills/claude-skill.js.map +1 -1
  125. package/dist/utils/skills/cursor-rules.d.ts +2 -2
  126. package/dist/utils/skills/cursor-rules.d.ts.map +1 -1
  127. package/dist/utils/skills/cursor-rules.js +15 -80
  128. package/dist/utils/skills/cursor-rules.js.map +1 -1
  129. package/dist/utils/skills/shared-variants-protocol.d.ts +23 -0
  130. package/dist/utils/skills/shared-variants-protocol.d.ts.map +1 -0
  131. package/dist/utils/skills/shared-variants-protocol.js +131 -0
  132. package/dist/utils/skills/shared-variants-protocol.js.map +1 -0
  133. package/package.json +4 -3
  134. package/src/ui/dist/assets/main-C9jfEp80.css +1 -0
  135. package/src/ui/dist/assets/main-DejhsBWR.js +382 -0
  136. package/src/ui/dist/index.html +2 -2
  137. package/src/ui/dist/assets/main-Bv0LuxKz.js +0 -382
  138. package/src/ui/dist/assets/main-BzmseUDd.css +0 -1
@@ -1,11 +1,37 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.registerAgentVariantsTools = registerAgentVariantsTools;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const os_1 = __importDefault(require("os"));
9
+ const path_1 = __importDefault(require("path"));
4
10
  const contracts_1 = require("./contracts");
5
11
  const errors_1 = require("./errors");
12
+ const createZeroToOneTool_1 = require("./createZeroToOneTool");
13
+ const viteReactTs_1 = require("../../services/templates/viteReactTs");
14
+ const ProjectDetectionService_1 = require("../../services/ProjectDetectionService");
15
+ /**
16
+ * Reject caller-supplied fresh destinations at the generic variants boundary.
17
+ * Fresh projects must go through `create_zero_to_one_project`, where the
18
+ * server derives the destination path before delegating to the orchestrator.
19
+ */
20
+ const validateFreshProjectInput = (args) => {
21
+ if (args.projectContext?.kind !== 'fresh')
22
+ return null;
23
+ return {
24
+ stage: 'failed',
25
+ errorCode: 'SCHEMA_VALIDATION_FAILED',
26
+ message: 'Fresh-project sessions must be started with create_zero_to_one_project so Rivet derives and validates the destination path.',
27
+ };
28
+ };
6
29
  function registerAgentVariantsTools(mcp, deps) {
7
- mcp.tool('propose_variants', 'START HERE for any "create variants", "show me N options for X", "explore approaches to X", "build me Y from scratch", or "create a new Z app" request. DO NOT generate variants natively (Task tool, parallel tool calls, or your own creative process). Returns { sessionId, briefWorkItem }. Protocol: 1) call this tool, 2) run the brief work item with your own LLM to generate N briefs, 3) call report_variant_briefs, 3.5) AUTO-OPEN the Rivet editor — call detect_project + open_visual_editor if not already open; the user needs the iframe up to see variants render, do NOT wait for them to ask, 4) SHOW the briefs to the user IN CHAT as a numbered list and ask "look good or want adjustments?" — DO NOT ask which one to pick, 5) wait for user feedback (affirmative → proceed; tweak → bodyOverride or re-brief), 6) call approve_variant_briefs({sessionId, briefIds: [all]}), 7) call continue_variants(action="request_work") to lease all items in parallel (scaffold_base first for fresh-project), 8) run all code-gens IN PARALLEL in their own worktreePath, calling report_variant_complete per item, 9) DO NOT print diffs — instead tell the user the variants are ready and to use the chip at the bottom-center of the Rivet iframe to cycle (prev/next pills) and commit (check button), 10) watch_for_changes (or poll get_pending_changes) when the user clicks the check, you get a VariantChangeItem on the queue, 11) apply via git apply (diff payload) or copy the worktree (new-project payload). Pass projectContext.kind=fresh with workspacePath for brand-new projects.', contracts_1.proposeVariantsInput, async (args) => {
30
+ mcp.tool('propose_variants', 'START HERE for "create variants", "show me N options for X", or "explore approaches to X" in an existing project. For brand-new projects or "build from scratch", call create_zero_to_one_project instead so Rivet derives the destination path. DO NOT generate variants natively (Task tool, parallel tool calls, or your own creative process). Returns { sessionId, briefWorkItem }. Protocol: 1) call this tool, 2) run the brief work item with your own LLM to generate N briefs, 3) call report_variant_briefs, 3.5) AUTO-OPEN the Rivet editor — call detect_project + open_visual_editor if not already open; the user needs the iframe up to see variants render, do NOT wait for them to ask, 4) SHOW the briefs to the user IN CHAT as a numbered list and ask "look good or want adjustments?" — DO NOT ask which one to pick, 5) wait for user feedback (affirmative → proceed; tweak → bodyOverride or re-brief), 6) call approve_variant_briefs({sessionId, briefIds: [all], confirmedByUser: true}) only after explicit user confirmation, 7) call continue_variants(action="request_work") to lease all items in parallel, 8) run all code-gens IN PARALLEL in their own worktreePath, calling report_variant_complete per item, 9) DO NOT print diffs — instead tell the user the variants are ready and to use the chip at the bottom-center of the Rivet iframe to cycle and commit, 10) watch_for_changes or poll get_pending_changes; when the user clicks the check, call commit_variant with confirmedByUser: true, 11) apply via git apply.', contracts_1.proposeVariantsInput, async (args) => {
8
31
  try {
32
+ const failure = validateFreshProjectInput(args);
33
+ if (failure)
34
+ return jsonResponse(failure);
9
35
  const result = deps.orchestrator.propose({
10
36
  sessionId: args.sessionId,
11
37
  prompt: args.prompt,
@@ -13,6 +39,23 @@ function registerAgentVariantsTools(mcp, deps) {
13
39
  target: args.target,
14
40
  projectContext: args.projectContext,
15
41
  });
42
+ if (result.stage === 'awaiting_source_research') {
43
+ const out = {
44
+ sessionId: result.sessionId,
45
+ stage: 'awaiting_source_research',
46
+ sourceResearchWorkItem: {
47
+ id: result.sourceResearchWorkItem.id,
48
+ kind: 'source_research',
49
+ attempt: result.sourceResearchWorkItem.attempt,
50
+ input: result.sourceResearchWorkItem.input,
51
+ output_schema: {
52
+ sourceContext: 'sourceFindings, sectionInventory, visualObservations, sourceRoles, qualityBar, screenshotReferences?',
53
+ },
54
+ },
55
+ nextAction: 'continue_variants',
56
+ };
57
+ return jsonResponse(out);
58
+ }
16
59
  const out = {
17
60
  sessionId: result.sessionId,
18
61
  stage: 'awaiting_briefs',
@@ -21,7 +64,7 @@ function registerAgentVariantsTools(mcp, deps) {
21
64
  kind: 'brief',
22
65
  attempt: result.briefWorkItem.attempt,
23
66
  input: result.briefWorkItem.input,
24
- output_schema: { briefs: 'Array<{briefId, label, body}>' },
67
+ output_schema: { briefs: 'Array<{briefId, label: "≤4-word title", body: "ONE sentence ≤20 words"}>' },
25
68
  },
26
69
  nextAction: 'report_variant_briefs',
27
70
  };
@@ -31,7 +74,7 @@ function registerAgentVariantsTools(mcp, deps) {
31
74
  return errorResponse(err);
32
75
  }
33
76
  });
34
- mcp.tool('report_variant_briefs', 'Agent reports N drafted briefs back to Rivet after running its own LLM call on the brief work item. Transitions the session to awaiting_approval; user reviews briefs in the variants tab.', contracts_1.reportVariantBriefsInput, async (args) => {
77
+ mcp.tool('report_variant_briefs', 'Report drafted briefs from the leased brief work item. Each brief: label 4 words, body = exactly ONE sentence ≤ 20 words — a single evocative descriptor, no bullets, no lists, no multi-clause run-ons. Body is shown directly to the user in the variants panel so it must be concise and immediately scannable. On success, transitions to awaiting_approval.', contracts_1.reportVariantBriefsInput, async (args) => {
35
78
  try {
36
79
  const result = deps.orchestrator.reportBriefs({
37
80
  sessionId: args.sessionId,
@@ -43,6 +86,7 @@ function registerAgentVariantsTools(mcp, deps) {
43
86
  const out = {
44
87
  stage: 'awaiting_approval',
45
88
  briefs: result.briefs,
89
+ approvalPrompt: buildApprovalPrompt(result.briefs),
46
90
  nextAction: 'continue_variants',
47
91
  };
48
92
  return jsonResponse(out);
@@ -51,8 +95,34 @@ function registerAgentVariantsTools(mcp, deps) {
51
95
  return errorResponse(err);
52
96
  }
53
97
  });
54
- mcp.tool('approve_variant_briefs', 'Call AFTER showing the briefs to the user in chat and getting an affirmative ("looks good", "yep", "go") OR refined selections from them. Provide briefIds for ALL the briefs the user wants generated (typically all of them). Each approved brief gets a parallel code-gen work item Rivet provisions one isolated worktree per item. Advance via continue_variants(action="request_work") to lease and run them in parallel. For tweak-with-feedback, use the selections form with bodyOverride per brief.', contracts_1.approveVariantBriefsInput, async (args) => {
98
+ mcp.tool('report_source_context', 'Report completed source research for a leased source_research work item. Requires the leaseId and attempt from continue_variants(action="request_work"). This unlocks the brief work item for source-grounded fresh-project sessions.', contracts_1.reportSourceContextInput, async (args) => {
99
+ try {
100
+ const result = deps.orchestrator.reportSourceContext({
101
+ sessionId: args.sessionId,
102
+ workItemId: args.workItemId,
103
+ leaseId: args.leaseId,
104
+ attempt: args.attempt,
105
+ sourceContext: args.sourceContext,
106
+ });
107
+ return jsonResponse({
108
+ stage: 'awaiting_briefs',
109
+ briefWorkItem: {
110
+ id: result.briefWorkItem.id,
111
+ kind: 'brief',
112
+ attempt: result.briefWorkItem.attempt,
113
+ input: result.briefWorkItem.input,
114
+ output_schema: { briefs: 'Array<{briefId, label: "≤4-word title", body: "ONE sentence ≤20 words"}>' },
115
+ },
116
+ nextAction: 'report_variant_briefs',
117
+ });
118
+ }
119
+ catch (err) {
120
+ return errorResponse(err);
121
+ }
122
+ });
123
+ mcp.tool('approve_variant_briefs', 'Call AFTER showing the briefs to the user in chat and getting an affirmative ("looks good", "yep", "go") OR refined selections from them. Set confirmedByUser=true when the user approves. Only use bypassRequestedByUser=true (with bypassReason) if the user explicitly asks to bypass confirmation. Provide briefIds for ALL the briefs the user wants generated (typically all of them). Each approved brief gets a parallel code-gen work item — Rivet provisions one isolated worktree per item. Advance via continue_variants(action="request_work") to lease and run them in parallel. For tweak-with-feedback, use the selections form with bodyOverride per brief.', contracts_1.approveVariantBriefsInput, async (args) => {
55
124
  try {
125
+ assertExplicitUserConfirmation('approve_variant_briefs', args, 'approve variant briefs');
56
126
  const selections = args.selections ??
57
127
  (args.briefIds ?? []).map((briefId) => ({ briefId }));
58
128
  if (selections.length === 0) {
@@ -75,8 +145,9 @@ function registerAgentVariantsTools(mcp, deps) {
75
145
  return errorResponse(err);
76
146
  }
77
147
  });
78
- mcp.tool('commit_variant', "Call AFTER all variants have been generated AND you've shown each variant's diff/changes to the user in chat AND the user has picked one. Pass the variantId (the workItemId of the chosen variant). Rivet looks up that variant's captured diff and enqueues it onto the existing pending-changes channel — call get_pending_changes next to retrieve and apply. Idempotent on (sessionId, variantId).", contracts_1.commitVariantInput, async (args) => {
148
+ mcp.tool('commit_variant', "Call AFTER all variants have been generated AND you've shown each variant's diff/changes to the user in chat AND the user has picked one. Set confirmedByUser=true when the user confirms the pick. Only use bypassRequestedByUser=true (with bypassReason) if the user explicitly asks to bypass confirmation. Pass the variantId (the workItemId of the chosen variant). Rivet looks up that variant's captured diff and enqueues it onto the existing pending-changes channel — call get_pending_changes next to retrieve and apply. Idempotent on (sessionId, variantId).", contracts_1.commitVariantInput, async (args) => {
79
149
  try {
150
+ assertExplicitUserConfirmation('commit_variant', args, 'commit a variant');
80
151
  const result = await deps.orchestrator.commitVariant({
81
152
  sessionId: args.sessionId,
82
153
  variantId: args.variantId,
@@ -86,6 +157,8 @@ function registerAgentVariantsTools(mcp, deps) {
86
157
  enqueued: result.enqueued,
87
158
  duplicate: result.duplicate,
88
159
  changedFilesCount: result.changedFilesCount,
160
+ payloadKind: result.payloadKind,
161
+ destinationPath: result.destinationPath,
89
162
  };
90
163
  return jsonResponse(out);
91
164
  }
@@ -93,7 +166,7 @@ function registerAgentVariantsTools(mcp, deps) {
93
166
  return errorResponse(err);
94
167
  }
95
168
  });
96
- mcp.tool('continue_variants', 'Long-poll/state-pump the variants flow. action=check returns immediately; action=wait blocks up to ~5min for a state change; action=request_work asks for a lease on ready work items.', contracts_1.continueVariantsInput, async (args) => {
169
+ mcp.tool('continue_variants', 'Long-poll/state-pump the variants flow. action=check returns immediately; action=wait blocks up to ~5min for state changes; action=request_work leases ready work items (source_research, static_preview, or code_gen depending on stage). static_preview is for fresh zero-to-one sessions and should return {html, css?, js?} so Rivet can show fast visual previews before Vite/code generation finishes.', contracts_1.continueVariantsInput, async (args) => {
97
170
  try {
98
171
  const stage = deps.orchestrator.getStage(args.sessionId);
99
172
  if (stage === 'awaiting_briefs') {
@@ -102,13 +175,21 @@ function registerAgentVariantsTools(mcp, deps) {
102
175
  throw new errors_1.AgentVariantsError('INVALID_STAGE_ACTION', 'Run the brief work item and call report_variant_briefs before continue_variants');
103
176
  }
104
177
  if (stage === 'awaiting_approval') {
178
+ const briefs = deps.orchestrator.getBriefs(args.sessionId);
105
179
  return jsonResponse({
106
180
  stage: 'awaiting_approval',
107
- briefs: deps.orchestrator.getBriefs(args.sessionId),
181
+ briefs,
182
+ approvalPrompt: buildApprovalPrompt(briefs),
108
183
  });
109
184
  }
110
- if (stage === 'work_items_ready' &&
111
- args.action === 'request_work') {
185
+ if (args.action === 'request_work' &&
186
+ (stage === 'awaiting_source_research' ||
187
+ stage === 'work_items_ready' ||
188
+ stage === 'waiting_for_results')) {
189
+ // SessionStore.requestWork accepts both stages and expires stale
190
+ // leases before issuing new ones, so this also recycles wedged
191
+ // variants whose leases expired while the session was already in
192
+ // waiting_for_results.
112
193
  const lease = deps.orchestrator.requestWork({
113
194
  sessionId: args.sessionId,
114
195
  leaseOwner: deps.leaseOwner(),
@@ -127,17 +208,34 @@ function registerAgentVariantsTools(mcp, deps) {
127
208
  progress: deps.orchestrator.getProgress(args.sessionId),
128
209
  });
129
210
  }
211
+ if (stage === 'awaiting_source_research') {
212
+ return jsonResponse({
213
+ stage: 'awaiting_source_research',
214
+ progress: deps.orchestrator.getProgress(args.sessionId),
215
+ });
216
+ }
130
217
  // Terminal stages
131
- return jsonResponse({
132
- stage,
133
- summary: deps.orchestrator.getSummary(args.sessionId),
134
- });
218
+ {
219
+ const summary = deps.orchestrator.getSummary(args.sessionId);
220
+ const variants = deps.orchestrator.getVariants(args.sessionId);
221
+ const previewUrls = variants
222
+ .filter((v) => v.preview?.kind === 'static_artifact')
223
+ .map((v) => ({
224
+ label: v.label,
225
+ url: v.preview.url,
226
+ }));
227
+ return jsonResponse({
228
+ stage,
229
+ summary,
230
+ ...(previewUrls.length > 0 ? { previewUrls } : {}),
231
+ });
232
+ }
135
233
  }
136
234
  catch (err) {
137
235
  return errorResponse(err);
138
236
  }
139
237
  });
140
- mcp.tool('report_variant_complete', "Agent reports per-variant code-gen status: running (heartbeat), succeeded, failed, or cancelled. Requires a valid leaseId and matching attempt obtained from continue_variants(action='request_work').", contracts_1.reportVariantCompleteInput, async (args) => {
238
+ mcp.tool('report_variant_complete', "Agent reports per-work-item status: running (heartbeat), succeeded, failed, or cancelled. Requires a valid leaseId and matching attempt obtained from continue_variants(action='request_work'). For benchmark instrumentation, agents can optionally include tokensIn, tokensOut, and model in the call so Rivet can record cost per variant.", contracts_1.reportVariantCompleteInput, async (args) => {
141
239
  try {
142
240
  const result = await deps.orchestrator.reportComplete({
143
241
  sessionId: args.sessionId,
@@ -147,15 +245,27 @@ function registerAgentVariantsTools(mcp, deps) {
147
245
  status: args.status,
148
246
  output: args.output,
149
247
  error: args.error,
248
+ tokensIn: args.tokensIn,
249
+ tokensOut: args.tokensOut,
250
+ model: args.model,
150
251
  });
151
252
  let out;
152
253
  if (result.stage === 'ready' ||
153
254
  result.stage === 'degraded' ||
154
255
  result.stage === 'failed' ||
155
256
  result.stage === 'cancelled') {
257
+ const summary = result.summary ?? deps.orchestrator.getSummary(args.sessionId);
258
+ const variants = deps.orchestrator.getVariants(args.sessionId);
259
+ const previewUrls = variants
260
+ .filter((v) => v.preview?.kind === 'static_artifact')
261
+ .map((v) => ({
262
+ label: v.label,
263
+ url: v.preview.url,
264
+ }));
156
265
  out = {
157
266
  stage: result.stage,
158
- summary: result.summary ?? deps.orchestrator.getSummary(args.sessionId),
267
+ summary,
268
+ ...(previewUrls.length > 0 ? { previewUrls } : {}),
159
269
  };
160
270
  }
161
271
  else {
@@ -186,6 +296,39 @@ function registerAgentVariantsTools(mcp, deps) {
186
296
  return errorResponse(err);
187
297
  }
188
298
  });
299
+ mcp.tool('start_variants', 'Unified one-call kickoff for variants exploration (host-agnostic — Claude Code, Cursor, Codex). Collapses propose_variants → report_variant_briefs → approve_variant_briefs → detect_project → open_visual_editor → continue_variants(request_work) into a single call. Response includes sessionId, an active leaseId covering every variant, and a worktreePath per variant — start code-gen immediately. After this call: 1) for each variant in the response, edit files inside its worktreePath; the FIRST LINE of your output stream MUST be a ≤4-word label (UI renders it as the card title), then the variant code, 2) call report_variant_complete per variant with the leaseId from the response. No detect_project, no open_visual_editor, no continue_variants needed — the response already opened the editor (URL in visualEditor.url when present) and issued the lease. The user picks/cancels variants visually in the iframe — no in-chat approval gate. Supports mode="existing" (uses projectPath or cwd; spawns code_gen items) and mode="zero_to_one" (server derives destinationPath under destinationParent or ~; spawns static_preview items). For source-grounded fresh (inspiration URLs, custom design context), use create_zero_to_one_project instead — its multi-step source-research flow cannot collapse into one call. detect_project and open_visual_editor remain available as standalone tools for the Visual Editor flow (point-and-click changes without variants).', contracts_1.startVariantsInput, async (args) => {
300
+ try {
301
+ if (args.mode === 'zero_to_one') {
302
+ const out = await handleStartVariantsZeroToOne(args, deps);
303
+ return jsonResponse(out);
304
+ }
305
+ const out = await handleStartVariantsExisting(args, deps);
306
+ return jsonResponse(out);
307
+ }
308
+ catch (err) {
309
+ return errorResponse(err);
310
+ }
311
+ });
312
+ mcp.tool('cancel_variant', 'Cancel a single variant within an in-flight session without affecting its siblings. Called by the Rivet UI when the user clicks the cancel button on a variant card. Marks the variant cancelled and releases its lease; sibling variants continue. Idempotent on terminal states (already cancelled / succeeded / failed returns alreadyTerminal=true with the actual finalStatus). Per-variant worktree teardown happens at session commit/cancel time. Distinct from cancel_variants (plural), which kills the entire session.', contracts_1.cancelVariantInput, async (args) => {
313
+ try {
314
+ const result = await deps.orchestrator.cancelVariant({
315
+ sessionId: args.sessionId,
316
+ variantId: args.variantId,
317
+ reason: args.reason,
318
+ });
319
+ const out = {
320
+ sessionId: result.sessionId,
321
+ variantId: result.variantId,
322
+ finalStatus: result.finalStatus,
323
+ sessionStage: result.sessionStage,
324
+ alreadyTerminal: result.alreadyTerminal,
325
+ };
326
+ return jsonResponse(out);
327
+ }
328
+ catch (err) {
329
+ return errorResponse(err);
330
+ }
331
+ });
189
332
  }
190
333
  // --- Helpers --------------------------------------------------------------
191
334
  // Return type is left implicit so the MCP SDK's overload selection picks the
@@ -218,4 +361,176 @@ function errorResponse(err) {
218
361
  isError: true,
219
362
  };
220
363
  }
364
+ function assertExplicitUserConfirmation(toolName, confirmation, actionLabel) {
365
+ if (confirmation.confirmedByUser) {
366
+ return;
367
+ }
368
+ if (confirmation.bypassRequestedByUser &&
369
+ confirmation.bypassReason?.trim().length) {
370
+ return;
371
+ }
372
+ throw new errors_1.AgentVariantsError('MISSING_REQUIRED_INPUT', `${toolName} requires explicit user confirmation to ${actionLabel}. Set confirmedByUser=true after user confirmation, or set bypassRequestedByUser=true with bypassReason when the user explicitly asks to bypass.`);
373
+ }
374
+ function buildApprovalPrompt(briefs) {
375
+ const formattedBriefs = briefs
376
+ .map((brief, index) => `${index + 1}. name: ${brief.label}\n description: ${brief.body}`)
377
+ .join('\n');
378
+ return (`Review these variant briefs:\n${formattedBriefs}\n\n` +
379
+ 'Do these look good, or do you want any adjustments before I proceed?');
380
+ }
381
+ /**
382
+ * Handle the zero-to-one branch of `start_variants`. Mirrors the
383
+ * destination-derivation, framework validation, and visual-editor
384
+ * auto-open behavior of `create_zero_to_one_project`, but skips the
385
+ * source-research / inspiration-extraction path. Source-grounded fresh
386
+ * projects must continue to use `create_zero_to_one_project`.
387
+ */
388
+ async function handleStartVariantsZeroToOne(args, deps) {
389
+ const framework = args.framework ?? 'vite';
390
+ if (framework !== 'vite') {
391
+ return {
392
+ stage: 'failed',
393
+ errorCode: 'UNSUPPORTED_FRAMEWORK',
394
+ message: `start_variants(mode='zero_to_one') only supports framework='vite'; got '${framework}'.`,
395
+ };
396
+ }
397
+ const homedir = deps.homedir ?? os_1.default.homedir;
398
+ const destinationParent = args.destinationParent ?? homedir();
399
+ if (!path_1.default.isAbsolute(destinationParent)) {
400
+ return {
401
+ stage: 'failed',
402
+ errorCode: 'SCHEMA_VALIDATION_FAILED',
403
+ message: `destinationParent must be absolute; got '${destinationParent}'.`,
404
+ };
405
+ }
406
+ const slug = (0, createZeroToOneTool_1.slugifyPrompt)(args.prompt);
407
+ const destinationPath = path_1.default.join(destinationParent, slug);
408
+ if (!(0, viteReactTs_1.isDestinationEmpty)(destinationPath)) {
409
+ return {
410
+ stage: 'failed',
411
+ errorCode: 'DESTINATION_NOT_EMPTY',
412
+ message: `Destination '${destinationPath}' is not empty.`,
413
+ };
414
+ }
415
+ fs_1.default.mkdirSync(destinationParent, { recursive: true });
416
+ const projectContext = {
417
+ kind: 'fresh',
418
+ workspacePath: destinationPath,
419
+ framework: 'vite',
420
+ };
421
+ const visualEditor = deps.ensureVisualEditorOpen
422
+ ? await deps.ensureVisualEditorOpen({
423
+ projectPath: destinationPath,
424
+ framework: 'vite',
425
+ })
426
+ : undefined;
427
+ const result = await deps.orchestrator.startUnified({
428
+ prompt: args.prompt,
429
+ count: args.count,
430
+ target: args.target,
431
+ projectContext,
432
+ leaseOwner: deps.leaseOwner(),
433
+ });
434
+ return assembleStartVariantsResponse({
435
+ mode: 'zero_to_one',
436
+ result,
437
+ destinationPath,
438
+ visualEditor,
439
+ });
440
+ }
441
+ /**
442
+ * Handle the existing-project branch of `start_variants`. Detects the
443
+ * project's framework server-side (cwd or the provided projectPath) so
444
+ * the agent doesn't need a separate detect_project call, auto-opens the
445
+ * visual editor on the resolved projectPath, and leases all variant
446
+ * work items so they're ready to code in the same response.
447
+ */
448
+ async function handleStartVariantsExisting(args, deps) {
449
+ const projectPath = args.projectPath ?? process.cwd();
450
+ if (!path_1.default.isAbsolute(projectPath)) {
451
+ return {
452
+ stage: 'failed',
453
+ errorCode: 'SCHEMA_VALIDATION_FAILED',
454
+ message: `projectPath must be absolute; got '${projectPath}'.`,
455
+ };
456
+ }
457
+ let framework;
458
+ try {
459
+ framework = new ProjectDetectionService_1.ProjectDetectionService().detectFramework(projectPath);
460
+ }
461
+ catch (err) {
462
+ const msg = err instanceof Error ? err.message : 'Unknown detection error';
463
+ return {
464
+ stage: 'failed',
465
+ errorCode: 'SCHEMA_VALIDATION_FAILED',
466
+ message: `Could not detect project at '${projectPath}': ${msg}. Ensure it has a package.json, or pass projectPath explicitly.`,
467
+ };
468
+ }
469
+ // ensureVisualEditorOpen is typed for framework='vite' (matches the
470
+ // zero-to-one entry point), but it works against any projectPath. For
471
+ // existing projects with non-vite frameworks, the agent can still open
472
+ // the editor itself via the standalone open_visual_editor tool.
473
+ const visualEditor = deps.ensureVisualEditorOpen && framework === 'vite'
474
+ ? await deps.ensureVisualEditorOpen({
475
+ projectPath,
476
+ framework: 'vite',
477
+ })
478
+ : undefined;
479
+ const result = await deps.orchestrator.startUnified({
480
+ prompt: args.prompt,
481
+ count: args.count,
482
+ target: args.target,
483
+ leaseOwner: deps.leaseOwner(),
484
+ });
485
+ return assembleStartVariantsResponse({
486
+ mode: 'existing',
487
+ result,
488
+ project: { projectPath, framework },
489
+ visualEditor,
490
+ });
491
+ }
492
+ /**
493
+ * Build the StartVariantsOutput from a startUnified result + the lease
494
+ * info it surfaced. Pairs each variant in the original `variants` list
495
+ * with its `leasedWorkItems[]` entry from requestWork so the agent sees
496
+ * one consistent per-variant object with everything it needs.
497
+ */
498
+ function assembleStartVariantsResponse(args) {
499
+ const { result } = args;
500
+ if (result.leaseId === undefined ||
501
+ result.leaseTtlMs === undefined ||
502
+ result.leasedWorkItems === undefined) {
503
+ return {
504
+ stage: 'failed',
505
+ errorCode: 'INVALID_STAGE_ACTION',
506
+ message: 'start_variants expected a lease to be issued by startUnified but none was returned.',
507
+ };
508
+ }
509
+ const itemById = new Map(result.leasedWorkItems.map((item) => [item.id, item]));
510
+ const variants = [];
511
+ for (const v of result.variants) {
512
+ const workItem = itemById.get(v.variantId);
513
+ if (!workItem) {
514
+ return {
515
+ stage: 'failed',
516
+ errorCode: 'INVALID_STAGE_ACTION',
517
+ message: `start_variants leased fewer items than variants — missing workItem for ${v.variantId}.`,
518
+ };
519
+ }
520
+ variants.push({ ...v, workItem });
521
+ }
522
+ return {
523
+ sessionId: result.sessionId,
524
+ stage: 'work_items_ready',
525
+ mode: args.mode,
526
+ leaseId: result.leaseId,
527
+ leaseTtlMs: result.leaseTtlMs,
528
+ variants,
529
+ scaffoldBaseWorkItemId: result.scaffoldBaseWorkItemId,
530
+ ...(args.destinationPath ? { destinationPath: args.destinationPath } : {}),
531
+ ...(args.visualEditor ? { visualEditor: args.visualEditor } : {}),
532
+ ...(args.project ? { project: args.project } : {}),
533
+ nextAction: 'report_variant_complete',
534
+ };
535
+ }
221
536
  //# sourceMappingURL=tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { ChangeItem, ChangeRequest } from '../types/change-request-types';
2
+ export type ImageContent = {
3
+ type: 'image';
4
+ data: string;
5
+ mimeType: string;
6
+ };
7
+ /**
8
+ * Extract base64 images from comment/chat changes into separate MCP image
9
+ * content items. Returns the changes with `images` stripped (replaced by
10
+ * `imageCount`) and an array of image content items to append to the tool
11
+ * response. All other fields on the change item — including the optional
12
+ * `variantRequest` marker on comments — pass through untouched.
13
+ */
14
+ export declare function extractImages(changes: ChangeItem[]): {
15
+ changes: unknown[];
16
+ imageContent: ImageContent[];
17
+ };
18
+ /**
19
+ * Returns true when an intent's pending batch is a single CommentChangeItem
20
+ * carrying `variantRequest`. Such batches are routed through the variants
21
+ * lifecycle instead of `beginApplyingRun`.
22
+ */
23
+ export declare function isSingleVariantRequestBatch(intent: ChangeRequest): boolean;
24
+ /**
25
+ * Returns true when a batch contains at least one item with `variantRequest`
26
+ * but is NOT a clean single-item variant-request batch. UI gating should make
27
+ * this unreachable; the server boundary still rejects defensively.
28
+ */
29
+ export declare function isMixedVariantBatch(intent: ChangeRequest): boolean;
30
+ //# sourceMappingURL=changeBatchClassification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeBatchClassification.d.ts","sourceRoot":"","sources":["../../src/mcp/changeBatchClassification.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACd,MAAM,+BAA+B,CAAC;AAIvC,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG;IACpD,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,YAAY,EAAE,YAAY,EAAE,CAAC;CAC9B,CAmCA;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAI1E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAKlE"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractImages = extractImages;
4
+ exports.isSingleVariantRequestBatch = isSingleVariantRequestBatch;
5
+ exports.isMixedVariantBatch = isMixedVariantBatch;
6
+ const index_core_1 = require("../index-core");
7
+ const log = (0, index_core_1.createLogger)('ChangeBatchClassification');
8
+ /**
9
+ * Extract base64 images from comment/chat changes into separate MCP image
10
+ * content items. Returns the changes with `images` stripped (replaced by
11
+ * `imageCount`) and an array of image content items to append to the tool
12
+ * response. All other fields on the change item — including the optional
13
+ * `variantRequest` marker on comments — pass through untouched.
14
+ */
15
+ function extractImages(changes) {
16
+ const imageContent = [];
17
+ const strippedChanges = changes.map((change) => {
18
+ if ((change.kind === 'comment' || change.kind === 'chat') &&
19
+ change.images?.length) {
20
+ let extractedCount = 0;
21
+ for (const img of change.images) {
22
+ const match = img.match(/^data:([^;]+);base64,(.+)$/s);
23
+ if (match) {
24
+ imageContent.push({
25
+ type: 'image',
26
+ data: match[2],
27
+ mimeType: match[1],
28
+ });
29
+ extractedCount++;
30
+ }
31
+ else {
32
+ const preview = img.slice(0, 80);
33
+ log.warn(`Failed to extract image from ${change.kind} change: not a valid data URI (starts with "${preview}")`);
34
+ }
35
+ }
36
+ const { images: _images, ...rest } = change;
37
+ void _images;
38
+ return { ...rest, imageCount: extractedCount };
39
+ }
40
+ return change;
41
+ });
42
+ return { changes: strippedChanges, imageContent };
43
+ }
44
+ /**
45
+ * Returns true when an intent's pending batch is a single CommentChangeItem
46
+ * carrying `variantRequest`. Such batches are routed through the variants
47
+ * lifecycle instead of `beginApplyingRun`.
48
+ */
49
+ function isSingleVariantRequestBatch(intent) {
50
+ if (intent.changes.length !== 1)
51
+ return false;
52
+ const item = intent.changes[0];
53
+ return item.kind === 'comment' && Boolean(item.variantRequest);
54
+ }
55
+ /**
56
+ * Returns true when a batch contains at least one item with `variantRequest`
57
+ * but is NOT a clean single-item variant-request batch. UI gating should make
58
+ * this unreachable; the server boundary still rejects defensively.
59
+ */
60
+ function isMixedVariantBatch(intent) {
61
+ if (intent.changes.length <= 1)
62
+ return false;
63
+ return intent.changes.some((c) => c.kind === 'comment' && Boolean(c.variantRequest));
64
+ }
65
+ //# sourceMappingURL=changeBatchClassification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeBatchClassification.js","sourceRoot":"","sources":["../../src/mcp/changeBatchClassification.ts"],"names":[],"mappings":";;AAiBA,sCAsCC;AAOD,kEAIC;AAOD,kDAKC;AA9ED,8CAA6C;AAM7C,MAAM,GAAG,GAAG,IAAA,yBAAY,EAAC,2BAA2B,CAAC,CAAC;AAItD;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,OAAqB;IAIjD,MAAM,YAAY,GAAmB,EAAE,CAAC;IAExC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC7C,IACE,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC;YACrD,MAAM,CAAC,MAAM,EAAE,MAAM,EACrB,CAAC;YACD,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBACvD,IAAI,KAAK,EAAE,CAAC;oBACV,YAAY,CAAC,IAAI,CAAC;wBAChB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;wBACd,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;qBACnB,CAAC,CAAC;oBACH,cAAc,EAAE,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACjC,GAAG,CAAC,IAAI,CACN,gCAAgC,MAAM,CAAC,IAAI,+CAA+C,OAAO,IAAI,CACtG,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,MAEpC,CAAC;YACF,KAAK,OAAO,CAAC;YACb,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAgB,2BAA2B,CAAC,MAAqB;IAC/D,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACjE,CAAC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,MAAqB;IACvD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CACzD,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAgeA,eAAO,MAAM,cAAc,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,IAAI,CAo/BrE,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AA+cA,eAAO,MAAM,cAAc,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,IAAI,CA0tCrE,CAAC"}