@intrect/openswarm 0.17.0 → 0.17.2
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/README.md +5 -4
- package/dist/adapters/agenticLoop.js +1 -1
- package/dist/adapters/agenticLoop.js.map +1 -1
- package/dist/adapters/codexResponses.js +1 -1
- package/dist/adapters/errorClassification.d.ts.map +1 -1
- package/dist/adapters/errorClassification.js +1 -0
- package/dist/adapters/errorClassification.js.map +1 -1
- package/dist/adapters/gpt.js +1 -1
- package/dist/adapters/local.js +1 -1
- package/dist/adapters/openrouter.js +1 -1
- package/dist/agents/worker.d.ts.map +1 -1
- package/dist/agents/worker.js +3 -1
- package/dist/agents/worker.js.map +1 -1
- package/dist/auth/linearPkce.d.ts.map +1 -1
- package/dist/auth/linearPkce.js +1 -12
- package/dist/auth/linearPkce.js.map +1 -1
- package/dist/auth/oauthPkce.d.ts.map +1 -1
- package/dist/auth/oauthPkce.js +1 -14
- package/dist/auth/oauthPkce.js.map +1 -1
- package/dist/auth/oauthStore.d.ts.map +1 -1
- package/dist/auth/oauthStore.js +28 -2
- package/dist/auth/oauthStore.js.map +1 -1
- package/dist/auth/openBrowser.d.ts +2 -0
- package/dist/auth/openBrowser.d.ts.map +1 -0
- package/dist/auth/openBrowser.js +32 -0
- package/dist/auth/openBrowser.js.map +1 -0
- package/dist/auth/openrouterPkce.d.ts.map +1 -1
- package/dist/auth/openrouterPkce.js +1 -14
- package/dist/auth/openrouterPkce.js.map +1 -1
- package/dist/automation/autonomousRunner.d.ts +6 -0
- package/dist/automation/autonomousRunner.d.ts.map +1 -1
- package/dist/automation/autonomousRunner.js +33 -2
- package/dist/automation/autonomousRunner.js.map +1 -1
- package/dist/cli/reviewMaxCommand.d.ts.map +1 -1
- package/dist/cli/reviewMaxCommand.js +4 -1
- package/dist/cli/reviewMaxCommand.js.map +1 -1
- package/dist/linear/linear.d.ts.map +1 -1
- package/dist/linear/linear.js +18 -6
- package/dist/linear/linear.js.map +1 -1
- package/dist/linear/projectUpdater.d.ts.map +1 -1
- package/dist/linear/projectUpdater.js +40 -13
- package/dist/linear/projectUpdater.js.map +1 -1
- package/dist/locale/prompts/en.js +4 -4
- package/dist/locale/prompts/ko.js +4 -4
- package/dist/mcp/mcpClient.d.ts.map +1 -1
- package/dist/mcp/mcpClient.js +85 -4
- package/dist/mcp/mcpClient.js.map +1 -1
- package/dist/memory/memoryCore.d.ts +1 -0
- package/dist/memory/memoryCore.d.ts.map +1 -1
- package/dist/memory/memoryCore.js +49 -6
- package/dist/memory/memoryCore.js.map +1 -1
- package/dist/memory/memoryOps.d.ts.map +1 -1
- package/dist/memory/memoryOps.js +8 -11
- package/dist/memory/memoryOps.js.map +1 -1
- package/dist/notify/notifier.d.ts.map +1 -1
- package/dist/notify/notifier.js +23 -16
- package/dist/notify/notifier.js.map +1 -1
- package/dist/orchestration/conflictDetector.d.ts.map +1 -1
- package/dist/orchestration/conflictDetector.js +28 -11
- package/dist/orchestration/conflictDetector.js.map +1 -1
- package/dist/orchestration/taskParser.d.ts.map +1 -1
- package/dist/orchestration/taskParser.js +18 -7
- package/dist/orchestration/taskParser.js.map +1 -1
- package/dist/orchestration/taskScheduler.d.ts.map +1 -1
- package/dist/orchestration/taskScheduler.js +2 -1
- package/dist/orchestration/taskScheduler.js.map +1 -1
- package/dist/registry/bsDetector.d.ts.map +1 -1
- package/dist/registry/bsDetector.js +23 -3
- package/dist/registry/bsDetector.js.map +1 -1
- package/dist/registry/entityScanner.d.ts.map +1 -1
- package/dist/registry/entityScanner.js +10 -5
- package/dist/registry/entityScanner.js.map +1 -1
- package/dist/registry/graphql/resolvers.d.ts +1 -1
- package/dist/registry/graphql/resolvers.d.ts.map +1 -1
- package/dist/registry/graphql/resolvers.js +92 -15
- package/dist/registry/graphql/resolvers.js.map +1 -1
- package/dist/registry/sqliteStore.d.ts +1 -1
- package/dist/registry/sqliteStore.d.ts.map +1 -1
- package/dist/registry/sqliteStore.js +20 -5
- package/dist/registry/sqliteStore.js.map +1 -1
- package/dist/support/projectMapper.d.ts.map +1 -1
- package/dist/support/projectMapper.js +5 -0
- package/dist/support/projectMapper.js.map +1 -1
- package/dist/support/rollback.d.ts.map +1 -1
- package/dist/support/rollback.js +10 -3
- package/dist/support/rollback.js.map +1 -1
- package/dist/support/timeWindow.d.ts.map +1 -1
- package/dist/support/timeWindow.js +46 -40
- package/dist/support/timeWindow.js.map +1 -1
- package/dist/support/web.d.ts.map +1 -1
- package/dist/support/web.js +69 -5
- package/dist/support/web.js.map +1 -1
- package/dist/support/worktreeManager.d.ts.map +1 -1
- package/dist/support/worktreeManager.js +12 -5
- package/dist/support/worktreeManager.js.map +1 -1
- package/dist/taskState/store.d.ts.map +1 -1
- package/dist/taskState/store.js +2 -3
- package/dist/taskState/store.js.map +1 -1
- package/dist/tui/chatModel.d.ts +2 -4
- package/dist/tui/chatModel.d.ts.map +1 -1
- package/dist/tui/chatModel.js +5 -10
- package/dist/tui/chatModel.js.map +1 -1
- package/dist/tui/components/ChatInput.js +1 -1
- package/dist/tui/components/ChatLog.js +1 -1
- package/dist/tui/components/ChatLog.js.map +1 -1
- package/dist/tui/components/DataTable.d.ts.map +1 -1
- package/dist/tui/components/DataTable.js +3 -2
- package/dist/tui/components/DataTable.js.map +1 -1
- package/dist/tui/components/LiveLog.js +1 -1
- package/dist/tui/components/LiveLog.js.map +1 -1
- package/dist/tui/components/StageTimeline.js +1 -1
- package/dist/tui/components/StageTimeline.js.map +1 -1
- package/dist/tui/components/SubagentTree.d.ts.map +1 -1
- package/dist/tui/components/SubagentTree.js +7 -3
- package/dist/tui/components/SubagentTree.js.map +1 -1
- package/dist/tui/hooks/useMonitor.d.ts +3 -1
- package/dist/tui/hooks/useMonitor.d.ts.map +1 -1
- package/dist/tui/hooks/useMonitor.js +17 -1
- package/dist/tui/hooks/useMonitor.js.map +1 -1
- package/dist/tui/hooks/useTerminalSize.d.ts.map +1 -1
- package/dist/tui/hooks/useTerminalSize.js +3 -1
- package/dist/tui/hooks/useTerminalSize.js.map +1 -1
- package/dist/tui/monitorApi.d.ts +4 -4
- package/dist/tui/monitorApi.d.ts.map +1 -1
- package/dist/tui/monitorApi.js +13 -7
- package/dist/tui/monitorApi.js.map +1 -1
- package/dist/tui/panels/ChatPanel.d.ts.map +1 -1
- package/dist/tui/panels/ChatPanel.js +70 -15
- package/dist/tui/panels/ChatPanel.js.map +1 -1
- package/dist/tui/sse.d.ts.map +1 -1
- package/dist/tui/sse.js +29 -3
- package/dist/tui/sse.js.map +1 -1
- package/package.json +1 -1
package/dist/tui/monitorApi.js
CHANGED
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
// ============================================
|
|
6
6
|
import { projectsToTable, pipelineToTable, stuckToTable, issuesToTable } from './monitorRows.js';
|
|
7
7
|
const base = (port) => `http://127.0.0.1:${port}`;
|
|
8
|
+
const MONITOR_FETCH_TIMEOUT_MS = 15_000;
|
|
9
|
+
function timeoutSignal(signal) {
|
|
10
|
+
const timeout = AbortSignal.timeout(MONITOR_FETCH_TIMEOUT_MS);
|
|
11
|
+
return signal ? AbortSignal.any([signal, timeout]) : timeout;
|
|
12
|
+
}
|
|
8
13
|
async function assertOk(res, label) {
|
|
9
14
|
if (res.ok)
|
|
10
15
|
return;
|
|
@@ -22,27 +27,28 @@ async function assertOk(res, label) {
|
|
|
22
27
|
}
|
|
23
28
|
throw new Error(`${label} failed: HTTP ${res.status}: ${message}`);
|
|
24
29
|
}
|
|
25
|
-
export async function fetchProjects(port) {
|
|
26
|
-
const res = await fetch(`${base(port)}/api/projects
|
|
30
|
+
export async function fetchProjects(port, signal) {
|
|
31
|
+
const res = await fetch(`${base(port)}/api/projects`, { signal: timeoutSignal(signal) });
|
|
27
32
|
await assertOk(res, 'GET /api/projects');
|
|
28
33
|
return projectsToTable(await res.json());
|
|
29
34
|
}
|
|
30
|
-
export async function fetchTasks(port) {
|
|
31
|
-
const res = await fetch(`${base(port)}/api/pipeline
|
|
35
|
+
export async function fetchTasks(port, signal) {
|
|
36
|
+
const res = await fetch(`${base(port)}/api/pipeline`, { signal: timeoutSignal(signal) });
|
|
32
37
|
await assertOk(res, 'GET /api/pipeline');
|
|
33
38
|
const { stages } = (await res.json());
|
|
34
39
|
return pipelineToTable((stages ?? []));
|
|
35
40
|
}
|
|
36
|
-
export async function fetchStuck(port) {
|
|
37
|
-
const res = await fetch(`${base(port)}/api/stuck-issues
|
|
41
|
+
export async function fetchStuck(port, signal) {
|
|
42
|
+
const res = await fetch(`${base(port)}/api/stuck-issues`, { signal: timeoutSignal(signal) });
|
|
38
43
|
await assertOk(res, 'GET /api/stuck-issues');
|
|
39
44
|
const { stuckIssues, failedIssues } = (await res.json());
|
|
40
45
|
return stuckToTable(stuckIssues ?? [], failedIssues ?? []);
|
|
41
46
|
}
|
|
42
|
-
export async function fetchIssues(port) {
|
|
47
|
+
export async function fetchIssues(port, signal) {
|
|
43
48
|
const res = await fetch(`${base(port)}/graphql`, {
|
|
44
49
|
method: 'POST',
|
|
45
50
|
headers: { 'Content-Type': 'application/json' },
|
|
51
|
+
signal: timeoutSignal(signal),
|
|
46
52
|
body: JSON.stringify({
|
|
47
53
|
query: '{ issues(filter: { limit: 50 }) { issues { id title status priority } total } }',
|
|
48
54
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitorApi.js","sourceRoot":"","sources":["../../src/tui/monitorApi.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,+DAA+D;AAC/D,4EAA4E;AAC5E,6EAA6E;AAC7E,+CAA+C;AAE/C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAc,MAAM,kBAAkB,CAAC;AAE7G,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,oBAAoB,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"monitorApi.js","sourceRoot":"","sources":["../../src/tui/monitorApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/panels/ChatPanel.tsx"],"names":[],"mappings":"AAUA,OAAO,EAUL,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AAqBzB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5B,uFAAuF;IACvF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,cAAc,+
|
|
1
|
+
{"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/panels/ChatPanel.tsx"],"names":[],"mappings":"AAUA,OAAO,EAUL,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AAqBzB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5B,uFAAuF;IACvF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,cAAc,+BA4YpK"}
|
|
@@ -41,6 +41,9 @@ export function ChatPanel({ active, provider: providerProp, model: modelProp, pr
|
|
|
41
41
|
const createdAtRef = useRef(new Date().toISOString());
|
|
42
42
|
const goalRef = useRef(goalProp);
|
|
43
43
|
const abortRef = useRef(null);
|
|
44
|
+
const mountedRef = useRef(true);
|
|
45
|
+
const modelSelectorRequestRef = useRef(0);
|
|
46
|
+
const resumedGoalRef = useRef(false);
|
|
44
47
|
const persistenceErrorRef = useRef(null);
|
|
45
48
|
// When set, the next submitted line is routed here (a /plan confirm or edit)
|
|
46
49
|
// instead of being treated as chat — the Ink analogue of blessed pendingInput.
|
|
@@ -52,9 +55,20 @@ export function ChatPanel({ active, provider: providerProp, model: modelProp, pr
|
|
|
52
55
|
const [selector, setSelector] = useState(null);
|
|
53
56
|
const [selectorIndex, setSelectorIndex] = useState(0);
|
|
54
57
|
const cwd = projectPath ?? process.cwd();
|
|
58
|
+
useEffect(() => {
|
|
59
|
+
mountedRef.current = true;
|
|
60
|
+
return () => {
|
|
61
|
+
mountedRef.current = false;
|
|
62
|
+
modelSelectorRequestRef.current += 1;
|
|
63
|
+
abortRef.current?.abort();
|
|
64
|
+
};
|
|
65
|
+
}, []);
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
modelSelectorRequestRef.current += 1;
|
|
68
|
+
}, [provider]);
|
|
55
69
|
// Persist the conversation on every change so it survives exit and can be
|
|
56
70
|
// reopened with `openswarm resume`. System/UI lines are dropped by
|
|
57
|
-
// historyToMessages;
|
|
71
|
+
// historyToMessages; an active goal rides along so resume can restart it. (INT-2014)
|
|
58
72
|
useEffect(() => {
|
|
59
73
|
if (state.history.length === 0)
|
|
60
74
|
return;
|
|
@@ -70,22 +84,34 @@ export function ChatPanel({ active, provider: providerProp, model: modelProp, pr
|
|
|
70
84
|
goal: goalRef.current,
|
|
71
85
|
})
|
|
72
86
|
.then(() => {
|
|
87
|
+
if (!mountedRef.current)
|
|
88
|
+
return;
|
|
73
89
|
persistenceErrorRef.current = null;
|
|
74
90
|
})
|
|
75
91
|
.catch((e) => {
|
|
92
|
+
if (!mountedRef.current)
|
|
93
|
+
return;
|
|
76
94
|
const msg = e instanceof Error ? e.message : String(e);
|
|
77
95
|
if (persistenceErrorRef.current === msg)
|
|
78
96
|
return;
|
|
79
97
|
persistenceErrorRef.current = msg;
|
|
80
98
|
dispatch({ type: 'system', content: `✖ failed to save session: ${msg}` });
|
|
81
99
|
});
|
|
82
|
-
}, [state.history, provider, model]);
|
|
100
|
+
}, [state.history, provider, model, goalActive]);
|
|
83
101
|
const ask = useCallback((prompt) => new Promise((resolve) => {
|
|
102
|
+
if (!mountedRef.current) {
|
|
103
|
+
resolve('no');
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
84
106
|
dispatch({ type: 'system', content: prompt });
|
|
85
107
|
setPending({ resolve });
|
|
86
108
|
}), []);
|
|
87
109
|
const planIO = {
|
|
88
|
-
print: (line) =>
|
|
110
|
+
print: (line) => {
|
|
111
|
+
if (!mountedRef.current)
|
|
112
|
+
return;
|
|
113
|
+
dispatch({ type: 'system', content: line });
|
|
114
|
+
},
|
|
89
115
|
confirm: async (prompt) => normalizeConfirm(await ask(prompt)),
|
|
90
116
|
promptText: (prompt) => ask(prompt),
|
|
91
117
|
};
|
|
@@ -95,10 +121,13 @@ export function ChatPanel({ active, provider: providerProp, model: modelProp, pr
|
|
|
95
121
|
await runPlanCommand(goal, planIO, { projectPath: cwd, model });
|
|
96
122
|
}
|
|
97
123
|
catch (e) {
|
|
124
|
+
if (!mountedRef.current)
|
|
125
|
+
return;
|
|
98
126
|
dispatch({ type: 'system', content: `✖ plan failed: ${e instanceof Error ? e.message : String(e)}` });
|
|
99
127
|
}
|
|
100
128
|
finally {
|
|
101
|
-
|
|
129
|
+
if (mountedRef.current)
|
|
130
|
+
setBusy(false);
|
|
102
131
|
}
|
|
103
132
|
},
|
|
104
133
|
// planIO is rebuilt each render but only closes over stable dispatch/ask.
|
|
@@ -117,9 +146,13 @@ export function ChatPanel({ active, provider: providerProp, model: modelProp, pr
|
|
|
117
146
|
// buffer — that's the /goal token-spam (INT-2013). Drop them here; codex
|
|
118
147
|
// surfaces reasoning separately via onLog ('💭 …'). (INT-2014)
|
|
119
148
|
(t, isThinking) => {
|
|
149
|
+
if (!mountedRef.current)
|
|
150
|
+
return;
|
|
120
151
|
if (!isThinking)
|
|
121
152
|
dispatch({ type: 'stream', chunk: t });
|
|
122
153
|
}, (line) => {
|
|
154
|
+
if (!mountedRef.current)
|
|
155
|
+
return;
|
|
123
156
|
if (isActivityNoise(line))
|
|
124
157
|
return;
|
|
125
158
|
setActivity((a) => [...a, line].slice(-10));
|
|
@@ -127,16 +160,21 @@ export function ChatPanel({ active, provider: providerProp, model: modelProp, pr
|
|
|
127
160
|
cwd);
|
|
128
161
|
}
|
|
129
162
|
catch (e) {
|
|
163
|
+
if (!mountedRef.current)
|
|
164
|
+
return;
|
|
130
165
|
const msg = e instanceof Error ? e.message : String(e);
|
|
131
166
|
// An abort (from /goal clear) is intentional, not an error.
|
|
132
167
|
if (!ac.signal.aborted)
|
|
133
168
|
dispatch({ type: 'stream', chunk: `\n[error] ${msg}` });
|
|
134
169
|
}
|
|
135
170
|
finally {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
171
|
+
if (mountedRef.current) {
|
|
172
|
+
dispatch({ type: 'commit' });
|
|
173
|
+
setActivity([]);
|
|
174
|
+
setBusy(false);
|
|
175
|
+
if (abortRef.current === ac)
|
|
176
|
+
abortRef.current = null;
|
|
177
|
+
}
|
|
140
178
|
}
|
|
141
179
|
}, [provider, model, cwd]);
|
|
142
180
|
// /goal routes by complexity: simple → pursue in-session (streamed), complex →
|
|
@@ -149,28 +187,45 @@ export function ChatPanel({ active, provider: providerProp, model: modelProp, pr
|
|
|
149
187
|
await runGoalCommand(goal, planIO, { projectPath: cwd, model, provider }, { pursue: (g) => streamChat(buildGoalPursuitPrompt(g), GOAL_PURSUIT_MAX_TURNS) });
|
|
150
188
|
}
|
|
151
189
|
catch (e) {
|
|
190
|
+
if (!mountedRef.current)
|
|
191
|
+
return;
|
|
152
192
|
dispatch({ type: 'system', content: `✖ goal failed: ${e instanceof Error ? e.message : String(e)}` });
|
|
153
193
|
}
|
|
154
194
|
finally {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
195
|
+
if (mountedRef.current) {
|
|
196
|
+
goalRef.current = undefined;
|
|
197
|
+
setBusy(false);
|
|
198
|
+
// Pursuit turn finished — unblock input and remove the completed goal
|
|
199
|
+
// from the persisted session.
|
|
200
|
+
setGoalActive(false);
|
|
201
|
+
}
|
|
159
202
|
}
|
|
160
203
|
}, [cwd, model, provider, streamChat]);
|
|
204
|
+
useEffect(() => {
|
|
205
|
+
if (!goalProp || resumedGoalRef.current)
|
|
206
|
+
return;
|
|
207
|
+
resumedGoalRef.current = true;
|
|
208
|
+
void runGoal(goalProp);
|
|
209
|
+
}, [goalProp, runGoal]);
|
|
161
210
|
// Open the /model selector for the current provider (async catalog). (INT-1961)
|
|
162
211
|
const openModelSelector = useCallback(async () => {
|
|
212
|
+
const requestId = ++modelSelectorRequestRef.current;
|
|
213
|
+
const requestedProvider = provider;
|
|
163
214
|
dispatch({ type: 'system', content: `Fetching models for ${provider}…` });
|
|
164
215
|
try {
|
|
165
|
-
const models = await listChatModels(
|
|
216
|
+
const models = await listChatModels(requestedProvider);
|
|
217
|
+
if (!mountedRef.current || requestId !== modelSelectorRequestRef.current)
|
|
218
|
+
return;
|
|
166
219
|
if (!models.length) {
|
|
167
|
-
dispatch({ type: 'system', content: `No models listed for ${
|
|
220
|
+
dispatch({ type: 'system', content: `No models listed for ${requestedProvider}. Use /model <name>.` });
|
|
168
221
|
return;
|
|
169
222
|
}
|
|
170
223
|
setSelectorIndex(Math.max(0, models.indexOf(model)));
|
|
171
|
-
setSelector({ kind: 'model', title: `Switch model (${
|
|
224
|
+
setSelector({ kind: 'model', title: `Switch model (${requestedProvider}):`, items: models });
|
|
172
225
|
}
|
|
173
226
|
catch (e) {
|
|
227
|
+
if (!mountedRef.current || requestId !== modelSelectorRequestRef.current)
|
|
228
|
+
return;
|
|
174
229
|
dispatch({ type: 'system', content: `✖ failed to list models: ${e instanceof Error ? e.message : String(e)}` });
|
|
175
230
|
}
|
|
176
231
|
}, [provider, model]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatPanel.js","sourceRoot":"","sources":["../../../src/tui/panels/ChatPanel.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChatPanel.js","sourceRoot":"","sources":["../../../src/tui/panels/ChatPanel.tsx"],"names":[],"mappings":"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"}
|
package/dist/tui/sse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/tui/sse.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/tui/sse.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAoBnF;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAE3D;AAaD,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,GAAG,iBAAiB,CA2D9E"}
|
package/dist/tui/sse.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// replacing the old 5-second poll in the TUI.
|
|
6
6
|
// ============================================
|
|
7
7
|
import http from 'node:http';
|
|
8
|
+
const MAX_SSE_PARTIAL_BUFFER_CHARS = 64 * 1024;
|
|
8
9
|
/**
|
|
9
10
|
* Parse accumulated SSE text into events + the leftover (incomplete) tail.
|
|
10
11
|
* Wire format (eventHub): `data: <json>\n\n` per event. Malformed frames are
|
|
@@ -37,6 +38,16 @@ export function parseSseFrames(buffer) {
|
|
|
37
38
|
export function eventStreamPath(skipReplay) {
|
|
38
39
|
return skipReplay ? '/api/events?skipReplay=1' : '/api/events';
|
|
39
40
|
}
|
|
41
|
+
function isValidSseResponse(res) {
|
|
42
|
+
if (typeof res.statusCode === 'number' && (res.statusCode < 200 || res.statusCode >= 300))
|
|
43
|
+
return false;
|
|
44
|
+
// Unit tests use a tiny EventEmitter mock; real IncomingMessage always has headers.
|
|
45
|
+
if (!Object.prototype.hasOwnProperty.call(res, 'headers'))
|
|
46
|
+
return true;
|
|
47
|
+
const rawContentType = res.headers['content-type'];
|
|
48
|
+
const contentType = Array.isArray(rawContentType) ? rawContentType.join(';') : rawContentType;
|
|
49
|
+
return typeof contentType === 'string' && contentType.toLowerCase().includes('text/event-stream');
|
|
50
|
+
}
|
|
40
51
|
/** Subscribe to the daemon's /api/events SSE stream, auto-reconnecting on drop. */
|
|
41
52
|
export function connectEventStream(opts) {
|
|
42
53
|
const host = opts.host ?? '127.0.0.1';
|
|
@@ -47,25 +58,40 @@ export function connectEventStream(opts) {
|
|
|
47
58
|
let req = null;
|
|
48
59
|
let timer = null;
|
|
49
60
|
const scheduleReconnect = () => {
|
|
50
|
-
|
|
51
|
-
if (closed)
|
|
61
|
+
if (closed || timer)
|
|
52
62
|
return;
|
|
53
|
-
|
|
63
|
+
buffer = '';
|
|
64
|
+
opts.onStatus?.(false);
|
|
65
|
+
timer = setTimeout(() => {
|
|
66
|
+
timer = null;
|
|
67
|
+
connect();
|
|
68
|
+
}, reconnectMs);
|
|
54
69
|
};
|
|
55
70
|
function connect() {
|
|
56
71
|
if (closed)
|
|
57
72
|
return;
|
|
58
73
|
req = http.get({ host, port: opts.port, path: eventStreamPath(connectedOnce), headers: { Accept: 'text/event-stream' } }, (res) => {
|
|
74
|
+
if (!isValidSseResponse(res)) {
|
|
75
|
+
res.resume();
|
|
76
|
+
scheduleReconnect();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
59
79
|
connectedOnce = true;
|
|
60
80
|
opts.onStatus?.(true);
|
|
61
81
|
res.setEncoding('utf-8');
|
|
62
82
|
res.on('data', (chunk) => {
|
|
63
83
|
buffer += chunk;
|
|
84
|
+
if (buffer.length > MAX_SSE_PARTIAL_BUFFER_CHARS) {
|
|
85
|
+
buffer = '';
|
|
86
|
+
res.destroy(new Error('SSE partial buffer exceeded limit'));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
64
89
|
const { events, rest } = parseSseFrames(buffer);
|
|
65
90
|
buffer = rest;
|
|
66
91
|
for (const e of events)
|
|
67
92
|
opts.onEvent(e);
|
|
68
93
|
});
|
|
94
|
+
res.on('error', scheduleReconnect);
|
|
69
95
|
res.on('end', scheduleReconnect);
|
|
70
96
|
});
|
|
71
97
|
req.on('error', scheduleReconnect);
|
package/dist/tui/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/tui/sse.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,wEAAwE;AACxE,0EAA0E;AAC1E,2EAA2E;AAC3E,8CAA8C;AAC9C,+CAA+C;AAE/C,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,IAAI,GAAG,MAAM,CAAC;IAClB,IAAI,GAAW,CAAC;IAChB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS;YAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAeD,MAAM,UAAU,eAAe,CAAC,UAAmB;IACjD,OAAO,UAAU,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,aAAa,CAAC;AACjE,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,kBAAkB,CAAC,IAAwB;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;IAC7C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,GAAG,GAA8B,IAAI,CAAC;IAC1C,IAAI,KAAK,GAAyC,IAAI,CAAC;IAEvD,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;QACvB,
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/tui/sse.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED