opencandle 0.8.0 → 0.9.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.
- package/dist/cli-main.js +48 -24
- package/dist/cli-main.js.map +1 -1
- package/dist/pi/session-writer-lock.d.ts +30 -0
- package/dist/pi/session-writer-lock.js +111 -0
- package/dist/pi/session-writer-lock.js.map +1 -0
- package/dist/prompts/workflow-prompts.js +15 -0
- package/dist/prompts/workflow-prompts.js.map +1 -1
- package/dist/routing/classify-intent.js +8 -9
- package/dist/routing/classify-intent.js.map +1 -1
- package/dist/routing/entity-extractor.js +1 -1
- package/dist/routing/entity-extractor.js.map +1 -1
- package/dist/routing/router-llm-client.d.ts +1 -1
- package/dist/routing/router-llm-client.js +1 -1
- package/dist/routing/router-llm-client.js.map +1 -1
- package/dist/routing/router.js +37 -0
- package/dist/routing/router.js.map +1 -1
- package/dist/workflows/compare-assets.js +4 -1
- package/dist/workflows/compare-assets.js.map +1 -1
- package/gui/server/ask-user-bridge.ts +26 -19
- package/gui/server/chat-event-adapter.ts +49 -3
- package/gui/server/http-routes.ts +173 -15
- package/gui/server/invoke-tool.ts +102 -7
- package/gui/server/live-chat-event-adapter.ts +16 -4
- package/gui/server/server.ts +42 -5
- package/gui/server/session-actions.ts +7 -1
- package/gui/server/session-entry-wait.ts +79 -0
- package/gui/server/writer-lock.ts +1 -122
- package/gui/server/ws-hub.ts +25 -0
- package/gui/shared/chat-events.ts +42 -19
- package/gui/shared/event-reducer.ts +41 -26
- package/gui/web/dist/assets/CatalogOverlay-DcTXLc7u.js +1 -0
- package/gui/web/dist/assets/index-DdMnIvZ7.css +2 -0
- package/gui/web/dist/assets/index-YlMaahAS.js +65 -0
- package/gui/web/dist/index.html +2 -2
- package/package.json +15 -15
- package/src/cli-main.ts +64 -27
- package/src/pi/session-writer-lock.ts +156 -0
- package/src/prompts/workflow-prompts.ts +15 -0
- package/src/routing/classify-intent.ts +11 -11
- package/src/routing/entity-extractor.ts +1 -1
- package/src/routing/router-llm-client.ts +2 -1
- package/src/routing/router.ts +46 -0
- package/src/workflows/compare-assets.ts +4 -2
- package/gui/web/dist/assets/CatalogOverlay-CCVKwBUB.js +0 -1
- package/gui/web/dist/assets/index-Dm4Aom2_.js +0 -69
- 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":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,MAAM,UAAU,oCAAoC,CAClD,UAA8C;IAE9C,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;IACpD,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC;IACnF,MAAM,uBAAuB,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;IACjG,MAAM,mBAAmB,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;IACtF,MAAM,cAAc,GAClB,uBAAuB,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;QACvD,2BAA2B,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,sBAAsB,GAC1B,CAAC,mBAAmB,IAAI,uBAAuB,CAAC,WAAW,CAAC,IAAI,cAAc,CAAC;IACjF,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC;QACrE,CAAC,CAAC,4CAA4C;QAC9C,CAAC,CAAC,mBAAmB;YACnB,CAAC,CAAC,+CAA+C;YACjD,CAAC,CAAC,sBAAsB;gBACtB,CAAC,CAAC,gFAAgF;gBAClF,CAAC,CAAC,iCAAiC,CAAC;IAC1C,MAAM,eAAe,GAAG,WAAW;QACjC,CAAC,CAAC;qFAC+E,WAAW;;sHAEsB;QAClH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,kBAAkB,GAAG,YAAY;QACrC,CAAC,CAAC;;;mOAG6N;QAC/N,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,oBAAoB,GAAG,uBAAuB;QAClD,CAAC,CAAC;;;sKAGgK;QAClK,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,eAAe,GAAG,mBAAmB;QACzC,CAAC,CAAC;;;4GAGsG;QACxG,CAAC,CAAC,sBAAsB;YACtB,CAAC,CAAC;;;;4GAIoG;YACtG,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,kBAAkB,GAAG,mBAAmB;QAC5C,CAAC,CAAC,uHAAuH;QACzH,CAAC,CAAC,sBAAsB;YACtB,CAAC,CAAC,6HAA6H;YAC/H,CAAC,CAAC,WAAW;gBACX,CAAC,CAAC,2DAA2D,WAAW,mBAAmB;gBAC3F,CAAC,CAAC,8EAA8E,CAAC;
|
|
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
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
id
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
51
|
-
|
|
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({
|
|
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({
|
|
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({
|
|
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
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
)
|
|
221
|
-
|
|
222
|
-
|
|
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
|
|
351
|
+
broadcastRunSessionSnapshot(options, runSessionManager, useCurrentSession);
|
|
272
352
|
} else {
|
|
273
353
|
await promptAndSettle(runSession, prompt, beforeIds, observation);
|
|
274
|
-
options
|
|
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,
|