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.
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +249 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts +5 -0
- package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
- package/dist/mcp/agent-variants/WorktreeOrchestrator.js +7 -0
- package/dist/mcp/agent-variants/WorktreeOrchestrator.js.map +1 -1
- package/dist/mcp/server.d.ts +19 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +67 -102
- package/dist/mcp/server.js.map +1 -1
- package/dist/proxy-middleware/preview-bridge.d.ts +24 -0
- package/dist/proxy-middleware/preview-bridge.d.ts.map +1 -0
- package/dist/proxy-middleware/preview-bridge.js +358 -0
- package/dist/proxy-middleware/preview-bridge.js.map +1 -0
- package/dist/proxy-middleware/proxy-config.d.ts +5 -1
- package/dist/proxy-middleware/proxy-config.d.ts.map +1 -1
- package/dist/proxy-middleware/proxy-config.js +62 -18
- package/dist/proxy-middleware/proxy-config.js.map +1 -1
- package/dist/routes/mcp.d.ts +3 -1
- package/dist/routes/mcp.d.ts.map +1 -1
- package/dist/routes/mcp.js +33 -3
- package/dist/routes/mcp.js.map +1 -1
- package/dist/routes/static.d.ts +6 -1
- package/dist/routes/static.d.ts.map +1 -1
- package/dist/routes/static.js +15 -3
- package/dist/routes/static.js.map +1 -1
- package/dist/server.d.ts +48 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +228 -33
- package/dist/server.js.map +1 -1
- package/dist/services/AgentSessionService.d.ts +87 -0
- package/dist/services/AgentSessionService.d.ts.map +1 -0
- package/dist/services/AgentSessionService.js +275 -0
- package/dist/services/AgentSessionService.js.map +1 -0
- package/dist/services/ConfigManager.d.ts +7 -0
- package/dist/services/ConfigManager.d.ts.map +1 -1
- package/dist/services/ConfigManager.js +13 -0
- package/dist/services/ConfigManager.js.map +1 -1
- package/dist/services/HostedDemoAuthSessionService.d.ts +6 -0
- package/dist/services/HostedDemoAuthSessionService.d.ts.map +1 -1
- package/dist/services/HostedDemoAuthSessionService.js +13 -0
- package/dist/services/HostedDemoAuthSessionService.js.map +1 -1
- package/dist/services/InlineVariantGenerationService.d.ts +50 -0
- package/dist/services/InlineVariantGenerationService.d.ts.map +1 -0
- package/dist/services/InlineVariantGenerationService.js +394 -0
- package/dist/services/InlineVariantGenerationService.js.map +1 -0
- package/dist/services/SessionBridgeService.d.ts +3 -3
- package/dist/services/SessionBridgeService.d.ts.map +1 -1
- package/dist/services/SessionBridgeService.js +15 -3
- package/dist/services/SessionBridgeService.js.map +1 -1
- package/dist/services/TerminalAgentRunner.d.ts +65 -0
- package/dist/services/TerminalAgentRunner.d.ts.map +1 -0
- package/dist/services/TerminalAgentRunner.js +511 -0
- package/dist/services/TerminalAgentRunner.js.map +1 -0
- package/dist/services/WorktreeManager.d.ts +5 -4
- package/dist/services/WorktreeManager.d.ts.map +1 -1
- package/dist/services/WorktreeManager.js +22 -12
- package/dist/services/WorktreeManager.js.map +1 -1
- package/dist/services/accessTokenRefresh.d.ts +8 -0
- package/dist/services/accessTokenRefresh.d.ts.map +1 -1
- package/dist/services/accessTokenRefresh.js +30 -1
- package/dist/services/accessTokenRefresh.js.map +1 -1
- package/dist/services/createAgentVariantsOrchestrator.d.ts +16 -0
- package/dist/services/createAgentVariantsOrchestrator.d.ts.map +1 -0
- package/dist/services/createAgentVariantsOrchestrator.js +42 -0
- package/dist/services/createAgentVariantsOrchestrator.js.map +1 -0
- package/dist/types/change-request-types.d.ts +12 -0
- package/dist/types/change-request-types.d.ts.map +1 -1
- package/dist/utils/elementFileHintSignals.d.ts +8 -0
- package/dist/utils/elementFileHintSignals.d.ts.map +1 -0
- package/dist/utils/elementFileHintSignals.js +40 -0
- package/dist/utils/elementFileHintSignals.js.map +1 -0
- package/dist/utils/formatElementTargetingContext.d.ts +34 -0
- package/dist/utils/formatElementTargetingContext.d.ts.map +1 -0
- package/dist/utils/formatElementTargetingContext.js +88 -0
- package/dist/utils/formatElementTargetingContext.js.map +1 -0
- package/dist/utils/queueAccess.d.ts +11 -0
- package/dist/utils/queueAccess.d.ts.map +1 -0
- package/dist/utils/queueAccess.js +15 -0
- package/dist/utils/queueAccess.js.map +1 -0
- package/package.json +1 -1
- package/src/ui/dist/assets/main-CJ9ZAQrU.css +1 -0
- package/src/ui/dist/assets/main-D-FdZGgx.js +640 -0
- package/src/ui/dist/index.html +2 -2
- package/src/ui/dist/assets/main-BZEruoyc.css +0 -1
- 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":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AACpB,mCAAoC;AACpC,4CAA+C;AAC/C,2CAA4C;AAC5C,6DAA6D;AAC7D,
|
|
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"}
|