vibe-coding-master 0.4.39 → 0.4.40
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.
|
@@ -14,8 +14,8 @@ export function registerTranslationRoutes(app, deps) {
|
|
|
14
14
|
});
|
|
15
15
|
});
|
|
16
16
|
app.get("/api/translation/sessions/:sessionId/events", async (request) => {
|
|
17
|
-
await requireCurrentProject(deps.projectService);
|
|
18
|
-
return deps.translationService.pollSessionEvents(request.params.sessionId, Number(request.query.after ?? "1"), request.query.limit === undefined ? undefined : Number(request.query.limit));
|
|
17
|
+
const project = await requireCurrentProject(deps.projectService);
|
|
18
|
+
return deps.translationService.pollSessionEvents(request.params.sessionId, Number(request.query.after ?? "1"), request.query.limit === undefined ? undefined : Number(request.query.limit), { repoRoot: project.repoRoot });
|
|
19
19
|
});
|
|
20
20
|
app.post("/api/tasks/:taskSlug/sessions/:role/translation/input", async (request) => {
|
|
21
21
|
const project = await requireCurrentProject(deps.projectService);
|
|
@@ -551,6 +551,24 @@ export function createTranslationService(deps) {
|
|
|
551
551
|
await state.persistChain?.catch(() => undefined);
|
|
552
552
|
sessionStates.delete(sessionId);
|
|
553
553
|
}
|
|
554
|
+
async function ensureSessionForPoll(sessionId, context) {
|
|
555
|
+
const roleSession = deps.sessionRegistry.get(sessionId);
|
|
556
|
+
const existing = sessionStates.get(sessionId);
|
|
557
|
+
if (!roleSession || roleSession.status !== "running") {
|
|
558
|
+
return existing;
|
|
559
|
+
}
|
|
560
|
+
const state = context
|
|
561
|
+
? await prepareCache({
|
|
562
|
+
repoRoot: roleSession.cwd,
|
|
563
|
+
baseRepoRoot: context.repoRoot,
|
|
564
|
+
taskSlug: roleSession.taskSlug,
|
|
565
|
+
role: roleSession.role,
|
|
566
|
+
sessionId: roleSession.id
|
|
567
|
+
})
|
|
568
|
+
: getState(sessionId);
|
|
569
|
+
startTranscriptTail(roleSession);
|
|
570
|
+
return state;
|
|
571
|
+
}
|
|
554
572
|
return {
|
|
555
573
|
async startSession(input) {
|
|
556
574
|
const roleSession = await deps.sessionService.getRoleSession(input.repoRoot, input.taskSlug, input.role);
|
|
@@ -575,9 +593,9 @@ export function createTranslationService(deps) {
|
|
|
575
593
|
nextCursor: 1
|
|
576
594
|
};
|
|
577
595
|
},
|
|
578
|
-
async pollSessionEvents(sessionId, after, limit = 200) {
|
|
596
|
+
async pollSessionEvents(sessionId, after, limit = 200, context) {
|
|
579
597
|
const cursor = Number.isFinite(after) ? Math.max(1, Math.floor(after)) : 1;
|
|
580
|
-
const state =
|
|
598
|
+
const state = await ensureSessionForPoll(sessionId, context);
|
|
581
599
|
if (!state) {
|
|
582
600
|
return {
|
|
583
601
|
sessionId,
|