rivet-design 0.10.0 → 0.10.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 (88) hide show
  1. package/dist/index.d.ts +32 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +249 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts +5 -0
  6. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  7. package/dist/mcp/agent-variants/WorktreeOrchestrator.js +7 -0
  8. package/dist/mcp/agent-variants/WorktreeOrchestrator.js.map +1 -1
  9. package/dist/mcp/server.d.ts +19 -0
  10. package/dist/mcp/server.d.ts.map +1 -1
  11. package/dist/mcp/server.js +67 -102
  12. package/dist/mcp/server.js.map +1 -1
  13. package/dist/proxy-middleware/preview-bridge.d.ts +24 -0
  14. package/dist/proxy-middleware/preview-bridge.d.ts.map +1 -0
  15. package/dist/proxy-middleware/preview-bridge.js +358 -0
  16. package/dist/proxy-middleware/preview-bridge.js.map +1 -0
  17. package/dist/proxy-middleware/proxy-config.d.ts +5 -1
  18. package/dist/proxy-middleware/proxy-config.d.ts.map +1 -1
  19. package/dist/proxy-middleware/proxy-config.js +62 -18
  20. package/dist/proxy-middleware/proxy-config.js.map +1 -1
  21. package/dist/routes/mcp.d.ts +3 -1
  22. package/dist/routes/mcp.d.ts.map +1 -1
  23. package/dist/routes/mcp.js +33 -3
  24. package/dist/routes/mcp.js.map +1 -1
  25. package/dist/routes/static.d.ts +6 -1
  26. package/dist/routes/static.d.ts.map +1 -1
  27. package/dist/routes/static.js +15 -3
  28. package/dist/routes/static.js.map +1 -1
  29. package/dist/server.d.ts +48 -0
  30. package/dist/server.d.ts.map +1 -1
  31. package/dist/server.js +228 -33
  32. package/dist/server.js.map +1 -1
  33. package/dist/services/AgentSessionService.d.ts +87 -0
  34. package/dist/services/AgentSessionService.d.ts.map +1 -0
  35. package/dist/services/AgentSessionService.js +275 -0
  36. package/dist/services/AgentSessionService.js.map +1 -0
  37. package/dist/services/ConfigManager.d.ts +7 -0
  38. package/dist/services/ConfigManager.d.ts.map +1 -1
  39. package/dist/services/ConfigManager.js +13 -0
  40. package/dist/services/ConfigManager.js.map +1 -1
  41. package/dist/services/HostedDemoAuthSessionService.d.ts +6 -0
  42. package/dist/services/HostedDemoAuthSessionService.d.ts.map +1 -1
  43. package/dist/services/HostedDemoAuthSessionService.js +13 -0
  44. package/dist/services/HostedDemoAuthSessionService.js.map +1 -1
  45. package/dist/services/InlineVariantGenerationService.d.ts +50 -0
  46. package/dist/services/InlineVariantGenerationService.d.ts.map +1 -0
  47. package/dist/services/InlineVariantGenerationService.js +394 -0
  48. package/dist/services/InlineVariantGenerationService.js.map +1 -0
  49. package/dist/services/SessionBridgeService.d.ts +3 -3
  50. package/dist/services/SessionBridgeService.d.ts.map +1 -1
  51. package/dist/services/SessionBridgeService.js +15 -3
  52. package/dist/services/SessionBridgeService.js.map +1 -1
  53. package/dist/services/TerminalAgentRunner.d.ts +65 -0
  54. package/dist/services/TerminalAgentRunner.d.ts.map +1 -0
  55. package/dist/services/TerminalAgentRunner.js +511 -0
  56. package/dist/services/TerminalAgentRunner.js.map +1 -0
  57. package/dist/services/WorktreeManager.d.ts +5 -4
  58. package/dist/services/WorktreeManager.d.ts.map +1 -1
  59. package/dist/services/WorktreeManager.js +22 -12
  60. package/dist/services/WorktreeManager.js.map +1 -1
  61. package/dist/services/accessTokenRefresh.d.ts +8 -0
  62. package/dist/services/accessTokenRefresh.d.ts.map +1 -1
  63. package/dist/services/accessTokenRefresh.js +30 -1
  64. package/dist/services/accessTokenRefresh.js.map +1 -1
  65. package/dist/services/createAgentVariantsOrchestrator.d.ts +16 -0
  66. package/dist/services/createAgentVariantsOrchestrator.d.ts.map +1 -0
  67. package/dist/services/createAgentVariantsOrchestrator.js +42 -0
  68. package/dist/services/createAgentVariantsOrchestrator.js.map +1 -0
  69. package/dist/types/change-request-types.d.ts +12 -0
  70. package/dist/types/change-request-types.d.ts.map +1 -1
  71. package/dist/utils/elementFileHintSignals.d.ts +8 -0
  72. package/dist/utils/elementFileHintSignals.d.ts.map +1 -0
  73. package/dist/utils/elementFileHintSignals.js +40 -0
  74. package/dist/utils/elementFileHintSignals.js.map +1 -0
  75. package/dist/utils/formatElementTargetingContext.d.ts +34 -0
  76. package/dist/utils/formatElementTargetingContext.d.ts.map +1 -0
  77. package/dist/utils/formatElementTargetingContext.js +88 -0
  78. package/dist/utils/formatElementTargetingContext.js.map +1 -0
  79. package/dist/utils/queueAccess.d.ts +11 -0
  80. package/dist/utils/queueAccess.d.ts.map +1 -0
  81. package/dist/utils/queueAccess.js +15 -0
  82. package/dist/utils/queueAccess.js.map +1 -0
  83. package/package.json +1 -1
  84. package/src/ui/dist/assets/main-CJ9ZAQrU.css +1 -0
  85. package/src/ui/dist/assets/main-D-FdZGgx.js +640 -0
  86. package/src/ui/dist/index.html +2 -2
  87. package/src/ui/dist/assets/main-BZEruoyc.css +0 -1
  88. package/src/ui/dist/assets/main-CIJUZXe8.js +0 -382
@@ -0,0 +1,87 @@
1
+ import type { ChangeRequest, ElementRef } from '../types/change-request-types';
2
+ import type { TerminalAgentRunResult } from './TerminalAgentRunner';
3
+ import { SessionBridgeService } from './SessionBridgeService';
4
+ type AgentRunner = {
5
+ getDisplayName?: () => string;
6
+ stopActiveRuns?: (signal?: string) => number;
7
+ runChangeRequest: (params: {
8
+ request: ChangeRequest;
9
+ cwd: string;
10
+ sessionId: string;
11
+ resumeSession?: boolean;
12
+ onFeedback: (message: string) => void;
13
+ }) => Promise<TerminalAgentRunResult>;
14
+ };
15
+ type InlineVariantService = {
16
+ processVariantRequest: (request: ChangeRequest) => Promise<TerminalAgentRunResult>;
17
+ };
18
+ type FileResolver = {
19
+ findMatchingFiles: (projectPath: string, element: ElementRef) => Promise<string[]>;
20
+ };
21
+ type WorktreeProjectLocator = {
22
+ getProjectCwdInWorktree: (worktreePath: string) => Promise<string>;
23
+ };
24
+ export type AgentSessionServiceOptions = {
25
+ bridge: SessionBridgeService;
26
+ projectPath: string;
27
+ runner: AgentRunner;
28
+ fileResolver?: FileResolver;
29
+ inlineVariantService?: InlineVariantService;
30
+ worktreeProjectLocator?: WorktreeProjectLocator;
31
+ continuousSessionId?: string;
32
+ createSessionId?: () => string;
33
+ };
34
+ export declare class AgentSessionService {
35
+ private bridge;
36
+ private projectPath;
37
+ private runner;
38
+ private fileResolver;
39
+ private inlineVariantService?;
40
+ private worktreeProjectLocator?;
41
+ private continuousSessionId;
42
+ private createSessionId;
43
+ private hasContinuousSessionStarted;
44
+ private isStopped;
45
+ private loopPromise;
46
+ constructor(options: AgentSessionServiceOptions);
47
+ getContinuousSessionId(): string;
48
+ /**
49
+ * @effect Starts the bridge consumption loop for queued Rivet visual changes.
50
+ */
51
+ start(): void;
52
+ /**
53
+ * @effect Stops the bridge consumption loop after the current wait/run settles.
54
+ */
55
+ stop(): void;
56
+ /**
57
+ * @effect Requests cancellation of active terminal-agent child processes.
58
+ */
59
+ cancelActiveRun(): {
60
+ stoppedCount: number;
61
+ };
62
+ /**
63
+ * @effect Applies one queued change request by spawning the configured terminal agent and updating bridge status.
64
+ */
65
+ processChangeRequest(request: ChangeRequest): Promise<TerminalAgentRunResult>;
66
+ /**
67
+ * Resolves the project directory where a terminal agent should apply a queued request.
68
+ */
69
+ private resolveRunCwd;
70
+ /**
71
+ * @effect Resolves missing element file hints before handing the request to the agent.
72
+ */
73
+ private enrichRequestFileHints;
74
+ /**
75
+ * @effect Resolves file hints for every element-bearing change item in a request.
76
+ */
77
+ private enrichChangeFileHints;
78
+ /**
79
+ * @effect Searches source files when an element does not already carry file hints.
80
+ */
81
+ private enrichElementFileHints;
82
+ private filterFilePathsForProject;
83
+ private getChangeElements;
84
+ private runLoop;
85
+ }
86
+ export {};
87
+ //# sourceMappingURL=AgentSessionService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentSessionService.d.ts","sourceRoot":"","sources":["../../src/services/AgentSessionService.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,aAAa,EACb,UAAU,EACX,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAK9D,KAAK,WAAW,GAAG;IACjB,cAAc,CAAC,EAAE,MAAM,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,gBAAgB,EAAE,CAAC,MAAM,EAAE;QACzB,OAAO,EAAE,aAAa,CAAC;QACvB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;KACvC,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACvC,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,qBAAqB,EAAE,CACrB,OAAO,EAAE,aAAa,KACnB,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,iBAAiB,EAAE,CACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,UAAU,KAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACxB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,uBAAuB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACpE,CAAC;AAoBF,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC;CAChC,CAAC;AAIF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,oBAAoB,CAAC,CAAuB;IACpD,OAAO,CAAC,sBAAsB,CAAC,CAAyB;IACxD,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,2BAA2B,CAAS;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAA8B;gBAErC,OAAO,EAAE,0BAA0B;IAW/C,sBAAsB,IAAI,MAAM;IAIhC;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,eAAe,IAAI;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE;IAI3C;;OAEG;IACG,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAoGnF;;OAEG;YACW,aAAa;IAW3B;;OAEG;YACW,sBAAsB;IA6BpC;;OAEG;YACW,qBAAqB;IA0BnC;;OAEG;YACW,sBAAsB;IAgCpC,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,iBAAiB;YAUX,OAAO;CAuBtB"}
@@ -0,0 +1,275 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AgentSessionService = void 0;
7
+ const crypto_1 = require("crypto");
8
+ const path_1 = __importDefault(require("path"));
9
+ const index_core_1 = require("../index-core");
10
+ const changeBatchClassification_1 = require("../mcp/changeBatchClassification");
11
+ const ComponentSearchService_1 = require("./ComponentSearchService");
12
+ const elementFileHintSignals_1 = require("../utils/elementFileHintSignals");
13
+ const log = (0, index_core_1.createLogger)('AgentSessionService');
14
+ class ComponentFileResolver {
15
+ searchService = new ComponentSearchService_1.ComponentSearchService();
16
+ /**
17
+ * @effect Searches project source files for the component most likely to contain an element.
18
+ */
19
+ async findMatchingFiles(projectPath, element) {
20
+ const matches = await this.searchService.findMatchingComponents(projectPath, element);
21
+ return matches.map((match) => match.filePath);
22
+ }
23
+ }
24
+ const WAIT_FOR_CHANGES_TIMEOUT_MS = 60_000;
25
+ class AgentSessionService {
26
+ bridge;
27
+ projectPath;
28
+ runner;
29
+ fileResolver;
30
+ inlineVariantService;
31
+ worktreeProjectLocator;
32
+ continuousSessionId;
33
+ createSessionId;
34
+ hasContinuousSessionStarted = false;
35
+ isStopped = false;
36
+ loopPromise = null;
37
+ constructor(options) {
38
+ this.bridge = options.bridge;
39
+ this.projectPath = options.projectPath;
40
+ this.runner = options.runner;
41
+ this.fileResolver = options.fileResolver ?? new ComponentFileResolver();
42
+ this.inlineVariantService = options.inlineVariantService;
43
+ this.worktreeProjectLocator = options.worktreeProjectLocator;
44
+ this.continuousSessionId = options.continuousSessionId ?? (0, crypto_1.randomUUID)();
45
+ this.createSessionId = options.createSessionId ?? crypto_1.randomUUID;
46
+ }
47
+ getContinuousSessionId() {
48
+ return this.continuousSessionId;
49
+ }
50
+ /**
51
+ * @effect Starts the bridge consumption loop for queued Rivet visual changes.
52
+ */
53
+ start() {
54
+ if (this.loopPromise) {
55
+ return;
56
+ }
57
+ this.loopPromise = this.runLoop();
58
+ }
59
+ /**
60
+ * @effect Stops the bridge consumption loop after the current wait/run settles.
61
+ */
62
+ stop() {
63
+ this.isStopped = true;
64
+ }
65
+ /**
66
+ * @effect Requests cancellation of active terminal-agent child processes.
67
+ */
68
+ cancelActiveRun() {
69
+ return { stoppedCount: this.runner.stopActiveRuns?.('SIGTERM') ?? 0 };
70
+ }
71
+ /**
72
+ * @effect Applies one queued change request by spawning the configured terminal agent and updating bridge status.
73
+ */
74
+ async processChangeRequest(request) {
75
+ if ((0, changeBatchClassification_1.isMixedVariantBatch)(request)) {
76
+ const rejectedRequest = this.bridge.rejectMixedVariantRequestBatch(request);
77
+ if (rejectedRequest === undefined) {
78
+ this.bridge.setStatus('READY');
79
+ return {
80
+ success: false,
81
+ error: 'Mixed variant request was superseded',
82
+ };
83
+ }
84
+ this.bridge.reportFeedback('Variant requests must be sent separately from other edits.');
85
+ this.bridge.setStatus('READY');
86
+ return { success: false, error: 'Mixed variant request batch' };
87
+ }
88
+ if ((0, changeBatchClassification_1.isSingleVariantRequestBatch)(request)) {
89
+ if (!this.inlineVariantService) {
90
+ const unavailableRequest = this.bridge.consumeVariantRequestBatch(request);
91
+ if (!unavailableRequest) {
92
+ this.bridge.setStatus('READY');
93
+ return {
94
+ success: false,
95
+ error: 'Variant request was superseded',
96
+ };
97
+ }
98
+ this.bridge.reportFeedback('Inline variants are not available in this session.');
99
+ this.bridge.setStatus('READY');
100
+ return { success: false, error: 'Inline variants unavailable' };
101
+ }
102
+ const variantRequest = this.bridge.consumeVariantRequestBatch(request);
103
+ if (!variantRequest) {
104
+ this.bridge.setStatus('READY');
105
+ return {
106
+ success: false,
107
+ error: 'Variant request was superseded',
108
+ };
109
+ }
110
+ return this.inlineVariantService.processVariantRequest(variantRequest);
111
+ }
112
+ const isVariantWork = Boolean(request.worktreePath) ||
113
+ request.changes.some((change) => change.kind === 'variant');
114
+ let cwd;
115
+ try {
116
+ cwd = await this.resolveRunCwd(request);
117
+ }
118
+ catch (error) {
119
+ const message = error instanceof Error ? error.message : String(error);
120
+ this.bridge.clearPending(request);
121
+ this.bridge.reportFeedback(`Failed to prepare terminal agent run: ${message}`);
122
+ this.bridge.setStatus('READY');
123
+ return { success: false, error: message };
124
+ }
125
+ const sessionId = isVariantWork
126
+ ? this.createSessionId()
127
+ : this.continuousSessionId;
128
+ const resumeSession = !isVariantWork && this.hasContinuousSessionStarted;
129
+ this.bridge.setStatus('APPLYING');
130
+ this.bridge.startApplyingRun(request);
131
+ this.bridge.clearPending(request);
132
+ const agentLabel = this.runner.getDisplayName?.() ?? 'Claude Code';
133
+ this.bridge.reportFeedback(isVariantWork
134
+ ? `${agentLabel} is applying this variant in an isolated session.`
135
+ : `${agentLabel} is applying your Rivet changes.`);
136
+ const enrichedRequest = await this.enrichRequestFileHints(request, cwd);
137
+ const result = await this.runner.runChangeRequest({
138
+ request: enrichedRequest,
139
+ cwd,
140
+ sessionId,
141
+ resumeSession,
142
+ onFeedback: (message) => this.bridge.reportFeedback(message),
143
+ });
144
+ this.bridge.completeActiveRunCorrelation();
145
+ if (result.success) {
146
+ if (!isVariantWork) {
147
+ this.hasContinuousSessionStarted = true;
148
+ }
149
+ this.bridge.reportFeedback(`${agentLabel} finished applying changes.`);
150
+ }
151
+ else {
152
+ this.bridge.reportFeedback(`${agentLabel} failed: ${result.error ?? 'unknown error'}`);
153
+ }
154
+ this.bridge.reportFeedback('__RIVET_REFRESH_GIT__');
155
+ this.bridge.setStatus('READY');
156
+ return result;
157
+ }
158
+ /**
159
+ * Resolves the project directory where a terminal agent should apply a queued request.
160
+ */
161
+ async resolveRunCwd(request) {
162
+ if (!request.worktreePath) {
163
+ return this.projectPath;
164
+ }
165
+ return ((await this.worktreeProjectLocator?.getProjectCwdInWorktree(request.worktreePath)) ?? request.worktreePath);
166
+ }
167
+ /**
168
+ * @effect Resolves missing element file hints before handing the request to the agent.
169
+ */
170
+ async enrichRequestFileHints(request, projectPath) {
171
+ const changes = [];
172
+ const sourceFiles = new Set(this.filterFilePathsForProject(request.sourceFiles ?? [], projectPath));
173
+ for (const change of request.changes) {
174
+ const enrichedChange = await this.enrichChangeFileHints(change, projectPath);
175
+ changes.push(enrichedChange);
176
+ for (const element of this.getChangeElements(enrichedChange)) {
177
+ for (const filePath of element.filePaths) {
178
+ sourceFiles.add(filePath);
179
+ }
180
+ }
181
+ }
182
+ return {
183
+ ...request,
184
+ changes,
185
+ sourceFiles: Array.from(sourceFiles),
186
+ };
187
+ }
188
+ /**
189
+ * @effect Resolves file hints for every element-bearing change item in a request.
190
+ */
191
+ async enrichChangeFileHints(change, projectPath) {
192
+ if (change.kind === 'variant' || change.kind === 'chat') {
193
+ return change;
194
+ }
195
+ const element = await this.enrichElementFileHints(change.element, projectPath);
196
+ if (change.kind === 'comment') {
197
+ const elements = change.elements
198
+ ? await Promise.all(change.elements.map((item) => this.enrichElementFileHints(item, projectPath)))
199
+ : undefined;
200
+ return { ...change, element, ...(elements ? { elements } : {}) };
201
+ }
202
+ return { ...change, element };
203
+ }
204
+ /**
205
+ * @effect Searches source files when an element does not already carry file hints.
206
+ */
207
+ async enrichElementFileHints(element, projectPath) {
208
+ const currentFilePaths = this.filterFilePathsForProject(element.filePaths ?? [], projectPath);
209
+ if (currentFilePaths.length > 0) {
210
+ return currentFilePaths.length === element.filePaths.length
211
+ ? element
212
+ : { ...element, filePaths: currentFilePaths };
213
+ }
214
+ if (!(0, elementFileHintSignals_1.shouldSearchElementFileHints)(element)) {
215
+ return element;
216
+ }
217
+ try {
218
+ const filePaths = await this.fileResolver.findMatchingFiles(projectPath, element);
219
+ return filePaths.length > 0 ? { ...element, filePaths } : element;
220
+ }
221
+ catch (error) {
222
+ log.warn('Failed to enrich agent element file paths', {
223
+ xpath: element.xpath,
224
+ error: error instanceof Error ? error.message : String(error),
225
+ });
226
+ return element;
227
+ }
228
+ }
229
+ filterFilePathsForProject(filePaths, projectPath) {
230
+ return filePaths.filter((filePath) => {
231
+ const candidatePath = path_1.default.isAbsolute(filePath)
232
+ ? filePath
233
+ : path_1.default.resolve(projectPath, filePath);
234
+ const relative = path_1.default.relative(projectPath, candidatePath);
235
+ const isInsideProject = relative === '' ||
236
+ (!relative.startsWith('..') && !path_1.default.isAbsolute(relative));
237
+ return isInsideProject;
238
+ });
239
+ }
240
+ getChangeElements(change) {
241
+ if (change.kind === 'variant' || change.kind === 'chat') {
242
+ return [];
243
+ }
244
+ if (change.kind === 'comment') {
245
+ return [change.element, ...(change.elements ?? [])];
246
+ }
247
+ return [change.element];
248
+ }
249
+ async runLoop() {
250
+ this.bridge.setStatus('READY');
251
+ while (!this.isStopped && this.bridge.isActive()) {
252
+ let request;
253
+ try {
254
+ request = await this.bridge.waitForChanges(WAIT_FOR_CHANGES_TIMEOUT_MS);
255
+ }
256
+ catch {
257
+ continue;
258
+ }
259
+ try {
260
+ await this.processChangeRequest(request);
261
+ }
262
+ catch (error) {
263
+ const message = error instanceof Error ? error.message : String(error);
264
+ log.error('Agent session failed to process change request', error);
265
+ this.bridge.completeActiveRunCorrelation();
266
+ const agentLabel = this.runner.getDisplayName?.() ?? 'Claude Code';
267
+ this.bridge.reportFeedback(`${agentLabel} failed: ${message}`);
268
+ this.bridge.reportFeedback('__RIVET_REFRESH_GIT__');
269
+ this.bridge.setStatus('READY');
270
+ }
271
+ }
272
+ }
273
+ }
274
+ exports.AgentSessionService = AgentSessionService;
275
+ //# sourceMappingURL=AgentSessionService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentSessionService.js","sourceRoot":"","sources":["../../src/services/AgentSessionService.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,13 @@ declare class ConfigManager {
50
50
  * trust the token locally). Backfill persists so we only decode once.
51
51
  */
52
52
  getUserId(): string | undefined;
53
+ /**
54
+ * Get the user's display name (e.g. "Sam Gorman"), decoded from the access
55
+ * token's `user_metadata`. Not all tokens carry it (e.g. email-only logins),
56
+ * so callers should fall back to the email for initials. Decoded on demand —
57
+ * the token is the source of truth, so nothing is persisted here.
58
+ */
59
+ getDisplayName(): string | undefined;
53
60
  /**
54
61
  * Check if user is authenticated
55
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../src/services/ConfigManager.ts"],"names":[],"mappings":"AAWA,KAAK,WAAW,GAAG;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,cAAM,aAAa;IACjB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAc;;IAiB5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAalB;;OAEG;IACH,OAAO,CAAC,UAAU;IAYlB;;;;;OAKG;IACH,OAAO,CACL,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI;IAWP;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IAQlC;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,SAAS;IAQrC;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,SAAS;IAQ9B;;;;;OAKG;IACH,SAAS,IAAI,MAAM,GAAG,SAAS;IAmB/B;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,SAAS,IAAI,IAAI;IAWjB;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM9B;;;OAGG;IACH,cAAc,IAAI,MAAM;IASxB;;;;OAIG;IACH,2BAA2B,IAAI,MAAM,GAAG,SAAS;IAIjD,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhD;;;OAGG;IACH,4BAA4B,IAAI,MAAM,GAAG,SAAS;IAIlD,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKlD;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,SAAS,IAAI,WAAW;IAIxB;;OAEG;IACH,aAAa,IAAI,MAAM;CAGxB;AAKD,eAAO,MAAM,gBAAgB,QAAO,aAKnC,CAAC"}
1
+ {"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../src/services/ConfigManager.ts"],"names":[],"mappings":"AAWA,KAAK,WAAW,GAAG;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,cAAM,aAAa;IACjB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAc;;IAiB5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAalB;;OAEG;IACH,OAAO,CAAC,UAAU;IAYlB;;;;;OAKG;IACH,OAAO,CACL,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI;IAWP;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IAQlC;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,SAAS;IAQrC;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,SAAS;IAQ9B;;;;;OAKG;IACH,SAAS,IAAI,MAAM,GAAG,SAAS;IAmB/B;;;;;OAKG;IACH,cAAc,IAAI,MAAM,GAAG,SAAS;IAQpC;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,SAAS,IAAI,IAAI;IAWjB;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM9B;;;OAGG;IACH,cAAc,IAAI,MAAM;IASxB;;;;OAIG;IACH,2BAA2B,IAAI,MAAM,GAAG,SAAS;IAIjD,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhD;;;OAGG;IACH,4BAA4B,IAAI,MAAM,GAAG,SAAS;IAIlD,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKlD;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,SAAS,IAAI,WAAW;IAIxB;;OAEG;IACH,aAAa,IAAI,MAAM;CAGxB;AAKD,eAAO,MAAM,gBAAgB,QAAO,aAKnC,CAAC"}
@@ -133,6 +133,19 @@ class ConfigManager {
133
133
  }
134
134
  return undefined;
135
135
  }
136
+ /**
137
+ * Get the user's display name (e.g. "Sam Gorman"), decoded from the access
138
+ * token's `user_metadata`. Not all tokens carry it (e.g. email-only logins),
139
+ * so callers should fall back to the email for initials. Decoded on demand —
140
+ * the token is the source of truth, so nothing is persisted here.
141
+ */
142
+ getDisplayName() {
143
+ const token = this.getAuthToken();
144
+ if (!token) {
145
+ return undefined;
146
+ }
147
+ return (0, accessTokenRefresh_1.getJwtDisplayName)(token) ?? undefined;
148
+ }
136
149
  /**
137
150
  * Check if user is authenticated
138
151
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/services/ConfigManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/services/ConfigManager.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,12 @@ export declare class HostedDemoAuthSessionService {
36
36
  storeActiveDemoSessionIdForSessionId(sessionId: string, res: Response, demoSessionId: string): void;
37
37
  clearActiveDemoSessionIdForRequest(req: Request, res: Response): void;
38
38
  clearActiveDemoSessionIdForSessionId(sessionId: string, res: Response): void;
39
+ /**
40
+ * Fully clears the browser-scoped auth for this request (logout): drops the
41
+ * in-memory + persisted record and expires the session cookie so the next
42
+ * /api/config read sees an unauthenticated session.
43
+ */
44
+ clearAuthForRequest(req: Request, res: Response): void;
39
45
  shutdown(): void;
40
46
  private cleanupExpiredSessions;
41
47
  private persist;
@@ -1 +1 @@
1
- {"version":3,"file":"HostedDemoAuthSessionService.d.ts","sourceRoot":"","sources":["../../src/services/HostedDemoAuthSessionService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAE9B,MAAM,8BAA8B,CAAC;AAEtC,KAAK,0BAA0B,GAAG,wBAAwB,CAAC;AAO3D;;GAEG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiD;IACjF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEvB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,0BAA0B,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;KAAE;IAS1E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,kBAAkB;IAU1B,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM;IAYzD,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,0BAA0B,GAAG,IAAI;IAQlE,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI;IAmBzE,mBAAmB,CACjB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7E,MAAM;IAKT,qBAAqB,CACnB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7E,MAAM;IAaT,gCAAgC,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAK7D,kCAAkC,CAChC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,aAAa,EAAE,MAAM,GACpB,IAAI;IAKP,oCAAoC,CAClC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,QAAQ,EACb,aAAa,EAAE,MAAM,GACpB,IAAI;IAeP,kCAAkC,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI;IAQrE,oCAAoC,CAClC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,QAAQ,GACZ,IAAI;IAeP,QAAQ,IAAI,IAAI;IAMhB,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,OAAO;CAOhB"}
1
+ {"version":3,"file":"HostedDemoAuthSessionService.d.ts","sourceRoot":"","sources":["../../src/services/HostedDemoAuthSessionService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAE9B,MAAM,8BAA8B,CAAC;AAEtC,KAAK,0BAA0B,GAAG,wBAAwB,CAAC;AAO3D;;GAEG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiD;IACjF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEvB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,0BAA0B,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;KAAE;IAS1E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,kBAAkB;IAU1B,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM;IAYzD,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,0BAA0B,GAAG,IAAI;IAQlE,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI;IAmBzE,mBAAmB,CACjB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7E,MAAM;IAKT,qBAAqB,CACnB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7E,MAAM;IAaT,gCAAgC,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAK7D,kCAAkC,CAChC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,aAAa,EAAE,MAAM,GACpB,IAAI;IAKP,oCAAoC,CAClC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,QAAQ,EACb,aAAa,EAAE,MAAM,GACpB,IAAI;IAeP,kCAAkC,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI;IAQrE,oCAAoC,CAClC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,QAAQ,GACZ,IAAI;IAeP;;;;OAIG;IACH,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI;IAStD,QAAQ,IAAI,IAAI;IAMhB,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,OAAO;CAOhB"}
@@ -153,6 +153,19 @@ class HostedDemoAuthSessionService {
153
153
  this.authBySessionId.set(sessionId, nextValue);
154
154
  this.persist(sessionId, nextValue);
155
155
  }
156
+ /**
157
+ * Fully clears the browser-scoped auth for this request (logout): drops the
158
+ * in-memory + persisted record and expires the session cookie so the next
159
+ * /api/config read sees an unauthenticated session.
160
+ */
161
+ clearAuthForRequest(req, res) {
162
+ const sessionId = this.getCookieSessionId(req);
163
+ if (sessionId) {
164
+ this.authBySessionId.delete(sessionId);
165
+ void this.store.delete(sessionId);
166
+ }
167
+ res.clearCookie(AUTH_SESSION_COOKIE_NAME, { path: '/' });
168
+ }
156
169
  shutdown() {
157
170
  clearInterval(this.cleanupTimer);
158
171
  this.authBySessionId.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"HostedDemoAuthSessionService.js","sourceRoot":"","sources":["../../src/services/HostedDemoAuthSessionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HostedDemoAuthSessionService.js","sourceRoot":"","sources":["../../src/services/HostedDemoAuthSessionService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { AgentVariantsOrchestrator } from '../mcp/agent-variants';
2
+ import type { ChangeRequest } from '../types/change-request-types';
3
+ import type { TerminalAgentRunResult } from './TerminalAgentRunner';
4
+ import { SessionBridgeService } from './SessionBridgeService';
5
+ type AgentRunner = {
6
+ getDisplayName?: () => string;
7
+ runChangeRequest: (params: {
8
+ request: ChangeRequest;
9
+ cwd: string;
10
+ sessionId: string;
11
+ resumeSession?: boolean;
12
+ onFeedback: (message: string) => void;
13
+ }) => Promise<TerminalAgentRunResult>;
14
+ };
15
+ export type InlineVariantGenerationServiceOptions = {
16
+ bridge: SessionBridgeService;
17
+ orchestrator: AgentVariantsOrchestrator;
18
+ runner: AgentRunner;
19
+ createSessionId?: () => string;
20
+ leaseHeartbeatMs?: number;
21
+ };
22
+ /**
23
+ * Runs selected-element variant requests through the server-owned variants lifecycle.
24
+ */
25
+ export declare class InlineVariantGenerationService {
26
+ private bridge;
27
+ private orchestrator;
28
+ private runner;
29
+ private createSessionId;
30
+ private leaseHeartbeatMs;
31
+ constructor(options: InlineVariantGenerationServiceOptions);
32
+ /**
33
+ * @effect Starts an inline variants session, runs each leased worktree with an isolated terminal agent, and reports each result.
34
+ */
35
+ processVariantRequest(request: ChangeRequest): Promise<TerminalAgentRunResult>;
36
+ /**
37
+ * @effect Converts per-variant setup/reporting failures into failed results after sibling runs settle.
38
+ */
39
+ private runLeasedVariantSafely;
40
+ /**
41
+ * @effect Runs one leased code-generation item and reports its terminal status to the variants orchestrator.
42
+ */
43
+ private runLeasedVariant;
44
+ /**
45
+ * @effect Periodically reports a running status so long terminal agent runs keep their variant lease.
46
+ */
47
+ private startLeaseHeartbeat;
48
+ }
49
+ export {};
50
+ //# sourceMappingURL=InlineVariantGenerationService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InlineVariantGenerationService.d.ts","sourceRoot":"","sources":["../../src/services/InlineVariantGenerationService.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,yBAAyB,EAG1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,aAAa,EAGd,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAuC9D,KAAK,WAAW,GAAG;IACjB,cAAc,CAAC,EAAE,MAAM,MAAM,CAAC;IAC9B,gBAAgB,EAAE,CAAC,MAAM,EAAE;QACzB,OAAO,EAAE,aAAa,CAAC;QACvB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;KACvC,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAAG;IAClD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,YAAY,EAAE,yBAAyB,CAAC;IACxC,MAAM,EAAE,WAAW,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAkMF;;GAEG;AACH,qBAAa,8BAA8B;IACzC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,gBAAgB,CAAS;gBAErB,OAAO,EAAE,qCAAqC;IAS1D;;OAEG;IACG,qBAAqB,CACzB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,sBAAsB,CAAC;IAmFlC;;OAEG;YACW,sBAAsB;IA+BpC;;OAEG;YACW,gBAAgB;IA2F9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAoB5B"}