opencandle 0.8.0 → 0.10.0

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 (46) hide show
  1. package/dist/cli-main.js +48 -24
  2. package/dist/cli-main.js.map +1 -1
  3. package/dist/pi/session-writer-lock.d.ts +30 -0
  4. package/dist/pi/session-writer-lock.js +111 -0
  5. package/dist/pi/session-writer-lock.js.map +1 -0
  6. package/dist/prompts/workflow-prompts.js +15 -0
  7. package/dist/prompts/workflow-prompts.js.map +1 -1
  8. package/dist/routing/classify-intent.js +8 -9
  9. package/dist/routing/classify-intent.js.map +1 -1
  10. package/dist/routing/entity-extractor.js +1 -1
  11. package/dist/routing/entity-extractor.js.map +1 -1
  12. package/dist/routing/router-llm-client.d.ts +1 -1
  13. package/dist/routing/router-llm-client.js +1 -1
  14. package/dist/routing/router-llm-client.js.map +1 -1
  15. package/dist/routing/router.js +37 -0
  16. package/dist/routing/router.js.map +1 -1
  17. package/dist/workflows/compare-assets.js +4 -1
  18. package/dist/workflows/compare-assets.js.map +1 -1
  19. package/gui/server/ask-user-bridge.ts +26 -19
  20. package/gui/server/chat-event-adapter.ts +49 -3
  21. package/gui/server/http-routes.ts +173 -15
  22. package/gui/server/invoke-tool.ts +102 -7
  23. package/gui/server/live-chat-event-adapter.ts +16 -4
  24. package/gui/server/server.ts +42 -5
  25. package/gui/server/session-actions.ts +7 -1
  26. package/gui/server/session-entry-wait.ts +79 -0
  27. package/gui/server/writer-lock.ts +1 -122
  28. package/gui/server/ws-hub.ts +25 -0
  29. package/gui/shared/chat-events.ts +42 -19
  30. package/gui/shared/event-reducer.ts +41 -26
  31. package/gui/web/dist/assets/CatalogOverlay-CYptsda-.js +1 -0
  32. package/gui/web/dist/assets/index-B7QAjY5g.js +65 -0
  33. package/gui/web/dist/assets/index-D5dbWPfM.css +2 -0
  34. package/gui/web/dist/index.html +2 -2
  35. package/package.json +16 -16
  36. package/src/cli-main.ts +64 -27
  37. package/src/pi/session-writer-lock.ts +156 -0
  38. package/src/prompts/workflow-prompts.ts +15 -0
  39. package/src/routing/classify-intent.ts +11 -11
  40. package/src/routing/entity-extractor.ts +1 -1
  41. package/src/routing/router-llm-client.ts +2 -1
  42. package/src/routing/router.ts +46 -0
  43. package/src/workflows/compare-assets.ts +4 -2
  44. package/gui/web/dist/assets/CatalogOverlay-CCVKwBUB.js +0 -1
  45. package/gui/web/dist/assets/index-Dm4Aom2_.js +0 -69
  46. package/gui/web/dist/assets/index-UzZUg3dx.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/routing/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/routing/router.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,9 @@ export function buildCompareAssetsWorkflowDefinition(resolution) {
55
55
  : timeHorizon
56
56
  ? `End with a concise verdict on which asset best fits the ${timeHorizon} horizon and why.`
57
57
  : "End with a concise verdict on which asset looks strongest right now and why.";
58
+ const actionPlanGuidance = timeHorizon
59
+ ? `\n- Required action section: immediately after the summary verdict and before caveats, add a section exactly titled "Cautious action plan" for the ${timeHorizon} horizon. Include preferred tilt, entry conditions, position-sizing caution, downside risk/invalidation trigger, and the missing data that would change the plan. Do not end at Caveats.`
60
+ : "";
58
61
  return {
59
62
  workflowType: "compare_assets",
60
63
  steps: [
@@ -65,7 +68,7 @@ export function buildCompareAssetsWorkflowDefinition(resolution) {
65
68
  promptStep("compare_and_present", "Present side-by-side comparison", `Now present the side-by-side comparison for ${symbols}:
66
69
  - Keep any unavailable fundamentals marked as unavailable instead of retrying the same failed provider calls.
67
70
  - Use the ${evidenceList} you already fetched to finish the comparison even if some fundamentals are missing.
68
- - ${verdictInstruction}${horizonGuidance}${macroHedgeGuidance}${interestRateGuidance}${overlapGuidance}`, {
71
+ - ${verdictInstruction}${horizonGuidance}${macroHedgeGuidance}${interestRateGuidance}${overlapGuidance}${actionPlanGuidance}`, {
69
72
  requiredInputs: ["asset_data"],
70
73
  expectedOutputs: ["comparison_summary"],
71
74
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"compare-assets.js","sourceRoot":"","sources":["../../src/workflows/compare-assets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare-assets.js","sourceRoot":"","sources":["../../src/workflows/compare-assets.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ export function createAskUserBridge({
23
23
  getSessionId: () => string;
24
24
  }): {
25
25
  ask: AskUserHandler;
26
+ askForSession: (sessionId: string) => AskUserHandler;
26
27
  answer: (id: string, answer: string) => boolean;
27
28
  cancel: (id: string) => boolean;
28
29
  getPrompts: () => GuiAskUserPrompt[];
@@ -31,26 +32,29 @@ export function createAskUserBridge({
31
32
  const prompts = new Map<string, GuiAskUserPrompt>();
32
33
  const pending = new Map<string, PendingPrompt>();
33
34
 
34
- const ask: AskUserHandler = async (params) => {
35
- const id = `ask-user-${Date.now()}-${nextId++}`;
36
- const prompt: GuiAskUserPrompt = {
37
- id,
38
- sessionId: getSessionId(),
39
- question: params.question,
40
- questionType: params.questionType,
41
- options: params.options,
42
- placeholder: params.placeholder,
43
- reason: params.reason,
44
- status: "pending",
45
- answer: null,
46
- };
47
- prompts.set(id, prompt);
48
- broadcast({ type: "ask_user.prompt", prompt });
35
+ const createAskHandler =
36
+ (resolveSessionId: () => string): AskUserHandler =>
37
+ async (params) => {
38
+ const id = `ask-user-${Date.now()}-${nextId++}`;
39
+ const prompt: GuiAskUserPrompt = {
40
+ id,
41
+ sessionId: resolveSessionId(),
42
+ question: params.question,
43
+ questionType: params.questionType,
44
+ options: params.options,
45
+ placeholder: params.placeholder,
46
+ reason: params.reason,
47
+ status: "pending",
48
+ answer: null,
49
+ };
50
+ prompts.set(id, prompt);
51
+ broadcast({ type: "ask_user.prompt", prompt });
49
52
 
50
- return new Promise<AskUserResult>((resolve) => {
51
- pending.set(id, { prompt, resolve });
52
- });
53
- };
53
+ return new Promise<AskUserResult>((resolve) => {
54
+ pending.set(id, { prompt, resolve });
55
+ });
56
+ };
57
+ const ask = createAskHandler(getSessionId);
54
58
 
55
59
  const resolvePrompt = (id: string, result: AskUserResult): boolean => {
56
60
  const item = pending.get(id);
@@ -69,6 +73,9 @@ export function createAskUserBridge({
69
73
 
70
74
  return {
71
75
  ask,
76
+ askForSession(sessionId) {
77
+ return createAskHandler(() => sessionId);
78
+ },
72
79
  answer(id, answer) {
73
80
  return resolvePrompt(id, { answer, cancelled: false });
74
81
  },
@@ -7,6 +7,7 @@ export interface SessionEventOptions {
7
7
  title?: string;
8
8
  updatedAt?: string;
9
9
  startSeq?: number;
10
+ markUnresolvedToolCalls?: boolean;
10
11
  }
11
12
 
12
13
  export function sessionEntriesToChatEvents(
@@ -16,6 +17,8 @@ export function sessionEntriesToChatEvents(
16
17
  let seq = options.startSeq ?? 1;
17
18
  const events: ChatEvent[] = [];
18
19
  const seenToolCalls = new Set<string>();
20
+ const resolvedToolCalls = new Set<string>();
21
+ const pendingToolCalls = new Map<string, { name: string }>();
19
22
  // Set by an opencandle-user-input marker: the user's words before a workflow
20
23
  // transform expanded the turn. The next user message renders this instead.
21
24
  let pendingOriginalInput: string | null = null;
@@ -39,6 +42,7 @@ export function sessionEntriesToChatEvents(
39
42
  const messageId = entry.id;
40
43
  events.push({
41
44
  type: "custom.message",
45
+ sessionId: options.sessionId,
42
46
  messageId,
43
47
  customType: String((entry as { customType?: unknown }).customType || "custom"),
44
48
  content: [{ type: "text", text: customMessageText(entry.content) }],
@@ -52,9 +56,16 @@ export function sessionEntriesToChatEvents(
52
56
  const messageId = entry.id;
53
57
 
54
58
  if (message.role === "user") {
55
- events.push({ type: "message.created", messageId, role: "user", seq: seq++ });
59
+ events.push({
60
+ type: "message.created",
61
+ sessionId: options.sessionId,
62
+ messageId,
63
+ role: "user",
64
+ seq: seq++,
65
+ });
56
66
  events.push({
57
67
  type: "message.completed",
68
+ sessionId: options.sessionId,
58
69
  messageId,
59
70
  content: [{ type: "text", text: pendingOriginalInput ?? messageText(message.content) }],
60
71
  seq: seq++,
@@ -64,7 +75,13 @@ export function sessionEntriesToChatEvents(
64
75
  }
65
76
 
66
77
  if (message.role === "assistant") {
67
- events.push({ type: "message.created", messageId, role: "assistant", seq: seq++ });
78
+ events.push({
79
+ type: "message.created",
80
+ sessionId: options.sessionId,
81
+ messageId,
82
+ role: "assistant",
83
+ seq: seq++,
84
+ });
68
85
  const content: MessageContent[] = [];
69
86
  for (const part of Array.isArray(message.content) ? message.content : []) {
70
87
  if (part.type === "text") {
@@ -73,9 +90,11 @@ export function sessionEntriesToChatEvents(
73
90
  }
74
91
  if (part.type === "toolCall") {
75
92
  seenToolCalls.add(part.id);
93
+ pendingToolCalls.set(part.id, { name: part.name });
76
94
  content.push({ type: "tool", toolCallId: part.id });
77
95
  events.push({
78
96
  type: "tool.started",
97
+ sessionId: options.sessionId,
79
98
  toolCallId: part.id,
80
99
  messageId,
81
100
  name: part.name,
@@ -87,16 +106,25 @@ export function sessionEntriesToChatEvents(
87
106
  content.push({ type: "image", url: part.url });
88
107
  }
89
108
  }
90
- events.push({ type: "message.completed", messageId, content, seq: seq++ });
109
+ events.push({
110
+ type: "message.completed",
111
+ sessionId: options.sessionId,
112
+ messageId,
113
+ content,
114
+ seq: seq++,
115
+ });
91
116
  continue;
92
117
  }
93
118
 
94
119
  if (message.role === "toolResult") {
95
120
  const tool = message as ToolResultMessage;
96
121
  const toolCallId = tool.toolCallId || `tool-${entry.id}`;
122
+ resolvedToolCalls.add(toolCallId);
123
+ pendingToolCalls.delete(toolCallId);
97
124
  if (!seenToolCalls.has(toolCallId)) {
98
125
  events.push({
99
126
  type: "tool.started",
127
+ sessionId: options.sessionId,
100
128
  toolCallId,
101
129
  messageId,
102
130
  name: tool.toolName || "tool",
@@ -106,6 +134,7 @@ export function sessionEntriesToChatEvents(
106
134
  }
107
135
  events.push({
108
136
  type: tool.isError ? "tool.failed" : "tool.completed",
137
+ sessionId: options.sessionId,
109
138
  toolCallId,
110
139
  ...(tool.isError
111
140
  ? { error: { message: messageText(tool.content), details: tool.details } }
@@ -115,6 +144,23 @@ export function sessionEntriesToChatEvents(
115
144
  }
116
145
  }
117
146
 
147
+ if (options.markUnresolvedToolCalls !== false) {
148
+ for (const [toolCallId, tool] of pendingToolCalls) {
149
+ if (resolvedToolCalls.has(toolCallId)) continue;
150
+ events.push({
151
+ type: "tool.failed",
152
+ sessionId: options.sessionId,
153
+ toolCallId,
154
+ error: {
155
+ message:
156
+ "Tool call did not finish. The run may have been interrupted before OpenCandle received a tool result.",
157
+ details: { toolName: tool.name, reason: "missing_tool_result" },
158
+ },
159
+ seq: seq++,
160
+ });
161
+ }
162
+ }
163
+
118
164
  return events;
119
165
  }
120
166
 
@@ -11,11 +11,19 @@ import { createLiveChatEventAdapter } from "./live-chat-event-adapter.js";
11
11
  import { buildMarketStateSnapshot, searchInstrumentCandidates } from "./market-state-api.js";
12
12
  import { buildModelSetupState, type ModelSetupController } from "./model-setup.js";
13
13
  import { isTrustedPrivateApiRequest, privateApiCookieHeader } from "./private-api-access.js";
14
+ import { projectDashboard } from "./projector.js";
14
15
  import { createPromptObservation, observePromptEvent } from "./prompt-observation.js";
15
16
  import type { QuoteSnapshotStore } from "./quote-snapshot-store.js";
16
17
  import { promptAndSettle, type SessionActionsController } from "./session-actions.js";
17
18
  import { waitForNewEntryId } from "./session-entry-wait.js";
18
19
  import { buildCatalog } from "./tool-metadata.js";
20
+ import {
21
+ acquireWriterLock,
22
+ readWriterLock,
23
+ refreshWriterLock,
24
+ releaseWriterLock,
25
+ writerLockScopeForSession,
26
+ } from "./writer-lock.js";
19
27
  import type { WsHub } from "./ws-hub.js";
20
28
 
21
29
  interface GuiHttpRouteOptions {
@@ -30,6 +38,7 @@ interface GuiHttpRouteOptions {
30
38
  allowRemotePrivateApi: boolean;
31
39
  getSession: () => AgentSession;
32
40
  getSessionManager: () => SessionManager;
41
+ createSessionForManager: (sessionManager: SessionManager) => Promise<{ session: AgentSession }>;
33
42
  wsHub: WsHub;
34
43
  modelSetupController: ModelSetupController;
35
44
  sessionActionsController: SessionActionsController;
@@ -37,6 +46,8 @@ interface GuiHttpRouteOptions {
37
46
  }
38
47
 
39
48
  export function createHttpRequestHandler(options: GuiHttpRouteOptions) {
49
+ const activeRunSessionIds = new Set<string>();
50
+
40
51
  return async function handleHttpRequest(
41
52
  req: IncomingMessage,
42
53
  res: ServerResponse,
@@ -76,6 +87,18 @@ export function createHttpRequestHandler(options: GuiHttpRouteOptions) {
76
87
  return;
77
88
  }
78
89
 
90
+ const sessionBootstrapId = sessionIdFromRoute(url.pathname, "bootstrap");
91
+ if (sessionBootstrapId && req.method === "GET") {
92
+ if (!allowTrustedGuiRequest(req, res, "Session API", options)) return;
93
+ const sessionManager = await resolveSessionManagerById(options, sessionBootstrapId);
94
+ if (!sessionManager) {
95
+ writeJson(res, { error: "Unknown saved session" }, 404);
96
+ return;
97
+ }
98
+ writeJson(res, await buildSessionBootstrapPayload(options, sessionManager));
99
+ return;
100
+ }
101
+
79
102
  if (url.pathname === "/api/session/events" && req.method === "GET") {
80
103
  if (!allowTrustedGuiRequest(req, res, "Session API", options)) return;
81
104
  writeJson(res, {
@@ -188,7 +211,19 @@ export function createHttpRequestHandler(options: GuiHttpRouteOptions) {
188
211
 
189
212
  if (url.pathname === "/api/chat/run" && req.method === "POST") {
190
213
  if (!allowTrustedGuiRequest(req, res, "Chat run API", options)) return;
191
- await handleSseChatRun(req, res, options);
214
+ await handleSseChatRun(req, res, options, activeRunSessionIds);
215
+ return;
216
+ }
217
+
218
+ const runSessionId = sessionIdFromRoute(url.pathname, "runs");
219
+ if (runSessionId && req.method === "POST") {
220
+ if (!allowTrustedGuiRequest(req, res, "Chat run API", options)) return;
221
+ const sessionManager = await resolveSessionManagerById(options, runSessionId);
222
+ if (!sessionManager) {
223
+ writeJson(res, { error: "Unknown saved session" }, 404);
224
+ return;
225
+ }
226
+ await handleSseChatRun(req, res, options, activeRunSessionIds, sessionManager);
192
227
  return;
193
228
  }
194
229
 
@@ -200,6 +235,8 @@ async function handleSseChatRun(
200
235
  req: IncomingMessage,
201
236
  res: ServerResponse,
202
237
  options: GuiHttpRouteOptions,
238
+ activeRunSessionIds: Set<string>,
239
+ targetSessionManager?: SessionManager,
203
240
  ): Promise<void> {
204
241
  if (options.role !== "writer") {
205
242
  writeJson(res, { error: "Read-only follower mode" }, 409);
@@ -213,13 +250,58 @@ async function handleSseChatRun(
213
250
  return;
214
251
  }
215
252
 
216
- const sessionManager = options.getSessionManager();
217
- const sessionConflict = chatRunSessionConflict(
218
- asRecord(body).sessionId,
219
- sessionManager.getSessionId(),
220
- );
221
- if (sessionConflict) {
222
- writeJson(res, sessionConflict, 409);
253
+ const currentSessionManager = options.getSessionManager();
254
+ const requestedSessionId = String(asRecord(body).sessionId ?? "").trim();
255
+ const runSessionManager = targetSessionManager ?? currentSessionManager;
256
+ const sessionId = runSessionManager.getSessionId();
257
+ if (!targetSessionManager) {
258
+ const sessionConflict = chatRunSessionConflict(requestedSessionId, sessionId);
259
+ if (sessionConflict) {
260
+ writeJson(res, sessionConflict, 409);
261
+ return;
262
+ }
263
+ } else if (requestedSessionId && requestedSessionId !== sessionId) {
264
+ writeJson(
265
+ res,
266
+ { error: "Session route and request body disagree", code: "session_changed" },
267
+ 409,
268
+ );
269
+ return;
270
+ }
271
+
272
+ if (activeRunSessionIds.has(sessionId)) {
273
+ writeJson(res, { error: "Session already has an active run", code: "session_busy" }, 409);
274
+ return;
275
+ }
276
+
277
+ const currentSessionFile = currentSessionManager.getSessionFile();
278
+ const targetSessionFile = runSessionManager.getSessionFile();
279
+ const useCurrentSession = !targetSessionManager || currentSessionFile === targetSessionFile;
280
+ let acquiredLockScope = "";
281
+ let lockHeartbeat: ReturnType<typeof setInterval> | undefined;
282
+ if (!useCurrentSession) {
283
+ const lockScope = writerLockScopeForSession(runSessionManager);
284
+ const lockResult = await acquireWriterLock(lockScope, "gui");
285
+ if (lockResult.role !== "writer") {
286
+ writeJson(res, { error: "Read-only follower mode", lock: lockResult.lock }, 409);
287
+ return;
288
+ }
289
+ acquiredLockScope = lockScope;
290
+ lockHeartbeat = setInterval(() => refreshWriterLock(lockScope), 5000);
291
+ }
292
+
293
+ activeRunSessionIds.add(sessionId);
294
+ let createdSession: { session: AgentSession } | null = null;
295
+ try {
296
+ createdSession = useCurrentSession
297
+ ? null
298
+ : await options.createSessionForManager(runSessionManager);
299
+ } catch (error) {
300
+ activeRunSessionIds.delete(sessionId);
301
+ if (lockHeartbeat) clearInterval(lockHeartbeat);
302
+ if (acquiredLockScope) releaseWriterLock(acquiredLockScope);
303
+ const message = error instanceof Error ? error.message : String(error);
304
+ writeJson(res, { error: message }, 500);
223
305
  return;
224
306
  }
225
307
 
@@ -231,9 +313,7 @@ async function handleSseChatRun(
231
313
 
232
314
  let seq = 1;
233
315
  const runId = `gui-run-${Date.now()}`;
234
- const runSession = options.getSession();
235
- const runSessionManager = options.getSessionManager();
236
- const sessionId = runSessionManager.getSessionId();
316
+ const runSession = createdSession?.session ?? options.getSession();
237
317
  if (!prompt.startsWith("/") && !runSessionManager.getSessionName()) {
238
318
  runSessionManager.appendSessionInfo(prompt.length > 80 ? `${prompt.slice(0, 77)}...` : prompt);
239
319
  }
@@ -268,10 +348,10 @@ async function handleSseChatRun(
268
348
  source: "gui",
269
349
  requirement: modelSetup.requirement,
270
350
  });
271
- options.wsHub.broadcastState();
351
+ broadcastRunSessionSnapshot(options, runSessionManager, useCurrentSession);
272
352
  } else {
273
353
  await promptAndSettle(runSession, prompt, beforeIds, observation);
274
- options.wsHub.broadcastState();
354
+ broadcastRunSessionSnapshot(options, runSessionManager, useCurrentSession);
275
355
  }
276
356
  seq = liveAdapter.nextSeq();
277
357
  if (seq === liveStartSeq) {
@@ -293,17 +373,95 @@ async function handleSseChatRun(
293
373
  seq = event.seq + 1;
294
374
  }
295
375
  }
296
- writeSse(res, { type: "run.completed", runId, seq });
376
+ writeSse(res, { type: "run.completed", runId, sessionId, seq });
297
377
  } catch (error) {
298
378
  seq = liveAdapter.nextSeq();
299
379
  const message = error instanceof Error ? error.message : String(error);
300
- writeSse(res, { type: "run.failed", runId, error: { message }, seq });
380
+ writeSse(res, { type: "run.failed", runId, sessionId, error: { message }, seq });
301
381
  } finally {
382
+ activeRunSessionIds.delete(sessionId);
302
383
  unsubscribeLive();
384
+ createdSession?.session.dispose();
385
+ if (lockHeartbeat) clearInterval(lockHeartbeat);
386
+ if (acquiredLockScope) releaseWriterLock(acquiredLockScope);
303
387
  res.end();
304
388
  }
305
389
  }
306
390
 
391
+ function broadcastRunSessionSnapshot(
392
+ options: GuiHttpRouteOptions,
393
+ sessionManager: SessionManager,
394
+ useCurrentSession: boolean,
395
+ ): void {
396
+ if (useCurrentSession) {
397
+ options.wsHub.broadcastState();
398
+ } else {
399
+ options.wsHub.broadcastSessionSnapshot(sessionManager);
400
+ options.wsHub.broadcastSessions();
401
+ }
402
+ }
403
+
404
+ export async function buildSessionBootstrapPayload(
405
+ options: Pick<
406
+ GuiHttpRouteOptions,
407
+ "cwd" | "sessionDir" | "role" | "modelSetupController" | "getSessionManager" | "wsHub"
408
+ >,
409
+ sessionManager: SessionManager,
410
+ ): Promise<Record<string, unknown>> {
411
+ const sessionId = sessionManager.getSessionId();
412
+ const entries = sessionManager.getEntries();
413
+ const bootstrap = await options.wsHub.buildBootstrapPayload();
414
+ return {
415
+ role: roleForSessionBootstrap(options, sessionManager),
416
+ sessionId,
417
+ catalog: buildCatalog(),
418
+ modelSetup: options.modelSetupController.buildCurrentModelSetupState(),
419
+ askUserPrompts: Array.isArray(bootstrap.askUserPrompts) ? bootstrap.askUserPrompts : [],
420
+ sessions: await SessionManager.list(options.cwd, options.sessionDir),
421
+ snapshot: {
422
+ sessionId,
423
+ state: projectDashboard(entries, sessionId),
424
+ entries,
425
+ events: sessionEntriesToChatEvents(entries, {
426
+ sessionId,
427
+ title: sessionManager.getSessionName(),
428
+ }),
429
+ },
430
+ };
431
+ }
432
+
433
+ function roleForSessionBootstrap(
434
+ options: Pick<GuiHttpRouteOptions, "role" | "getSessionManager">,
435
+ sessionManager: SessionManager,
436
+ ): string {
437
+ if (options.role !== "writer") return options.role;
438
+ const currentSessionManager = options.getSessionManager();
439
+ if (currentSessionManager.getSessionFile() === sessionManager.getSessionFile()) return "writer";
440
+ const lock = readWriterLock(writerLockScopeForSession(sessionManager));
441
+ return lock && lock.pid !== process.pid ? "follower" : "writer";
442
+ }
443
+
444
+ export async function resolveSessionManagerById(
445
+ options: Pick<GuiHttpRouteOptions, "cwd" | "sessionDir" | "getSessionManager">,
446
+ sessionId: string,
447
+ ): Promise<SessionManager | null> {
448
+ const currentSessionManager = options.getSessionManager();
449
+ if (currentSessionManager.getSessionId() === sessionId) return currentSessionManager;
450
+ const sessions = await SessionManager.list(options.cwd, options.sessionDir);
451
+ const match = sessions.find((candidate) => candidate.id === sessionId);
452
+ return match ? SessionManager.open(match.path, options.sessionDir, options.cwd) : null;
453
+ }
454
+
455
+ export function sessionIdFromRoute(pathname: string, action: "bootstrap" | "runs"): string {
456
+ const match = pathname.match(new RegExp(`^/api/sessions/([^/]+)/${action}$`));
457
+ if (!match) return "";
458
+ try {
459
+ return decodeURIComponent(match[1] ?? "");
460
+ } catch {
461
+ return "";
462
+ }
463
+ }
464
+
307
465
  async function handleTrustedGuiMutation(
308
466
  req: IncomingMessage,
309
467
  res: ServerResponse,