@tom2012/cc-web 1.5.38 → 1.5.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.
- package/README.md +5 -1
- package/backend/dist/chat-process-manager.d.ts +43 -0
- package/backend/dist/chat-process-manager.d.ts.map +1 -0
- package/backend/dist/chat-process-manager.js +240 -0
- package/backend/dist/chat-process-manager.js.map +1 -0
- package/backend/dist/config.d.ts +2 -1
- package/backend/dist/config.d.ts.map +1 -1
- package/backend/dist/config.js +1 -0
- package/backend/dist/config.js.map +1 -1
- package/backend/dist/hooks-manager.d.ts +20 -0
- package/backend/dist/hooks-manager.d.ts.map +1 -0
- package/backend/dist/hooks-manager.js +139 -0
- package/backend/dist/hooks-manager.js.map +1 -0
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +216 -6
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/routes/hooks.d.ts +14 -0
- package/backend/dist/routes/hooks.d.ts.map +1 -0
- package/backend/dist/routes/hooks.js +62 -0
- package/backend/dist/routes/hooks.js.map +1 -0
- package/backend/dist/routes/projects.d.ts.map +1 -1
- package/backend/dist/routes/projects.js +46 -0
- package/backend/dist/routes/projects.js.map +1 -1
- package/backend/dist/routes/update.d.ts.map +1 -1
- package/backend/dist/routes/update.js +22 -13
- package/backend/dist/routes/update.js.map +1 -1
- package/backend/dist/session-manager.d.ts +12 -2
- package/backend/dist/session-manager.d.ts.map +1 -1
- package/backend/dist/session-manager.js +45 -15
- package/backend/dist/session-manager.js.map +1 -1
- package/backend/dist/terminal-manager.d.ts +5 -1
- package/backend/dist/terminal-manager.d.ts.map +1 -1
- package/backend/dist/terminal-manager.js +13 -2
- package/backend/dist/terminal-manager.js.map +1 -1
- package/backend/dist/types.d.ts +2 -0
- package/backend/dist/types.d.ts.map +1 -1
- package/frontend/dist/assets/ChatView-CmGXAs2a.js +11 -0
- package/frontend/dist/assets/GraphPreview-0UgP3AnJ.js +22 -0
- package/frontend/dist/assets/OfficePreview-DhY6Py9Y.js +13 -0
- package/frontend/dist/assets/ProjectPage-9CEnUXvW.css +32 -0
- package/frontend/dist/assets/ProjectPage-Ckxkh4Nr.js +169 -0
- package/frontend/dist/assets/SettingsPage-Dmb7V9a0.js +36 -0
- package/frontend/dist/assets/SkillHubPage-C5zcxERj.js +11 -0
- package/frontend/dist/assets/chevron-down-BEvQLdWD.js +6 -0
- package/frontend/dist/assets/index-C9_Mp1hE.js +275 -0
- package/frontend/dist/assets/{index-lRhMzYm_.js → index-DEta9t2M.js} +1 -1
- package/frontend/dist/assets/index-DjgiG4hc.css +1 -0
- package/frontend/dist/assets/{jszip.min-JFbhTBvU.js → jszip.min-s-54SERU.js} +1 -1
- package/frontend/dist/assets/select-Cfjj__BG.js +11 -0
- package/frontend/dist/assets/user-_adqQY3y.js +11 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/frontend/dist/assets/index-BTxKTqXV.js +0 -554
- package/frontend/dist/assets/index-DpzQcaS6.css +0 -32
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const express_1 = require("express");
|
|
4
4
|
const config_1 = require("../config");
|
|
5
5
|
const terminal_manager_1 = require("../terminal-manager");
|
|
6
|
+
const chat_process_manager_1 = require("../chat-process-manager");
|
|
6
7
|
const router = (0, express_1.Router)();
|
|
7
8
|
const MEMORY_SAVE_COMMAND = '请更新与本项目相关的全部记忆、工作计划、已完成工作、未完成工作和后台任务\n';
|
|
8
9
|
// Idle = no PTY output for this many ms
|
|
@@ -18,7 +19,7 @@ router.get('/check-running', (_req, res) => {
|
|
|
18
19
|
const running = projects.filter((p) => {
|
|
19
20
|
if (p.status !== 'running')
|
|
20
21
|
return false;
|
|
21
|
-
return terminal_manager_1.terminalManager.hasTerminal(p.id);
|
|
22
|
+
return terminal_manager_1.terminalManager.hasTerminal(p.id) || chat_process_manager_1.chatProcessManager.hasTerminal(p.id);
|
|
22
23
|
});
|
|
23
24
|
res.json({
|
|
24
25
|
runningCount: running.length,
|
|
@@ -35,7 +36,7 @@ router.get('/check-running', (_req, res) => {
|
|
|
35
36
|
*/
|
|
36
37
|
router.post('/prepare', async (_req, res) => {
|
|
37
38
|
const projects = (0, config_1.getProjects)();
|
|
38
|
-
const running = projects.filter((p) => p.status === 'running' && terminal_manager_1.terminalManager.hasTerminal(p.id));
|
|
39
|
+
const running = projects.filter((p) => p.status === 'running' && (terminal_manager_1.terminalManager.hasTerminal(p.id) || chat_process_manager_1.chatProcessManager.hasTerminal(p.id)));
|
|
39
40
|
if (running.length === 0) {
|
|
40
41
|
res.json({ success: true, results: [], message: 'No running projects' });
|
|
41
42
|
return;
|
|
@@ -48,21 +49,29 @@ router.post('/prepare', async (_req, res) => {
|
|
|
48
49
|
status: 'command_sent',
|
|
49
50
|
};
|
|
50
51
|
try {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
// 2. Wait for Claude to finish processing (go idle)
|
|
55
|
-
const idle = await waitForIdle(project.id, IDLE_THRESHOLD_MS, MAX_WAIT_MS);
|
|
56
|
-
if (!idle) {
|
|
52
|
+
if (project.mode === 'chat') {
|
|
53
|
+
// Chat mode has no PTY — stop directly (no memory-save command needed)
|
|
54
|
+
chat_process_manager_1.chatProcessManager.stop(project.id);
|
|
57
55
|
status.status = 'ready';
|
|
58
|
-
status.message = '
|
|
56
|
+
status.message = 'Chat mode — stopped directly';
|
|
59
57
|
}
|
|
60
58
|
else {
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
// 1. Send the memory-save command
|
|
60
|
+
terminal_manager_1.terminalManager.writeRaw(project.id, MEMORY_SAVE_COMMAND);
|
|
61
|
+
status.status = 'waiting_idle';
|
|
62
|
+
// 2. Wait for Claude to finish processing (go idle)
|
|
63
|
+
const idle = await waitForIdle(project.id, IDLE_THRESHOLD_MS, MAX_WAIT_MS);
|
|
64
|
+
if (!idle) {
|
|
65
|
+
status.status = 'ready';
|
|
66
|
+
status.message = 'Timed out waiting for idle — will resume after update';
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
status.status = 'ready';
|
|
70
|
+
status.message = 'Memory saved — will resume after update';
|
|
71
|
+
}
|
|
72
|
+
// Do NOT stop terminals — they keep 'running' status so resumeAll()
|
|
73
|
+
// can restart them with --continue after the server restarts.
|
|
63
74
|
}
|
|
64
|
-
// Do NOT stop terminals — they keep 'running' status so resumeAll()
|
|
65
|
-
// can restart them with --continue after the server restarts.
|
|
66
75
|
}
|
|
67
76
|
catch (err) {
|
|
68
77
|
status.status = 'error';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/routes/update.ts"],"names":[],"mappings":";;AAAA,qCAA2C;AAE3C,sCAAwC;AACxC,0DAAsD;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/routes/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* No PTY parsing, no ANSI stripping, no heuristics needed.
|
|
6
6
|
*/
|
|
7
|
+
import { EventEmitter } from 'events';
|
|
7
8
|
export interface SessionMessage {
|
|
8
9
|
role: 'user' | 'assistant';
|
|
9
10
|
content: string;
|
|
@@ -30,10 +31,11 @@ export interface SemanticStatus {
|
|
|
30
31
|
detail?: string;
|
|
31
32
|
updatedAt: number;
|
|
32
33
|
}
|
|
33
|
-
declare class SessionManager {
|
|
34
|
+
declare class SessionManager extends EventEmitter {
|
|
34
35
|
private watchers;
|
|
35
36
|
private chatListeners;
|
|
36
37
|
private semanticStatus;
|
|
38
|
+
constructor();
|
|
37
39
|
getSemanticStatus(projectId: string): SemanticStatus | null;
|
|
38
40
|
getAllSemanticStatus(): Record<string, SemanticStatus>;
|
|
39
41
|
/** Return all parsed ChatBlocks from the current JSONL file (for replay on chat_subscribe). */
|
|
@@ -46,7 +48,15 @@ declare class SessionManager {
|
|
|
46
48
|
/** Stop the session poller for a project (public for cleanup on terminal stop) */
|
|
47
49
|
stopWatcherForProject(projectId: string): void;
|
|
48
50
|
private stopWatcher;
|
|
49
|
-
|
|
51
|
+
/** Called by hooks route on PreToolUse.
|
|
52
|
+
* Updates semantic status directly from env var — does NOT read JSONL
|
|
53
|
+
* (JSONL has not been written yet at this point). */
|
|
54
|
+
handleHookPreTool(projectId: string, toolName: string): void;
|
|
55
|
+
/** Called by hooks route on PostToolUse/Stop.
|
|
56
|
+
* Immediately reads any new lines from the JSONL file. */
|
|
57
|
+
triggerRead(projectId: string): void;
|
|
58
|
+
/** Called by hooks route on Stop — clears semantic status before reading final text. */
|
|
59
|
+
clearSemanticStatus(projectId: string): void;
|
|
50
60
|
/** Find the newest JSONL created after startedAt in Claude's project dir */
|
|
51
61
|
private findJsonl;
|
|
52
62
|
/** Read any new lines from the JSONL file and extract messages */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,7 @@ exports.sessionManager = void 0;
|
|
|
43
43
|
const fs = __importStar(require("fs"));
|
|
44
44
|
const path = __importStar(require("path"));
|
|
45
45
|
const os = __importStar(require("os"));
|
|
46
|
+
const events_1 = require("events");
|
|
46
47
|
const uuid_1 = require("uuid");
|
|
47
48
|
const config_1 = require("./config");
|
|
48
49
|
// ── Path helpers ─────────────────────────────────────────────────────────────
|
|
@@ -86,8 +87,9 @@ function isInternalUserMessage(content) {
|
|
|
86
87
|
return content.startsWith('<command-') || content.startsWith('/');
|
|
87
88
|
}
|
|
88
89
|
// ── SessionManager ────────────────────────────────────────────────────────────
|
|
89
|
-
class SessionManager {
|
|
90
|
+
class SessionManager extends events_1.EventEmitter {
|
|
90
91
|
constructor() {
|
|
92
|
+
super();
|
|
91
93
|
this.watchers = new Map();
|
|
92
94
|
this.chatListeners = new Map();
|
|
93
95
|
this.semanticStatus = new Map();
|
|
@@ -150,14 +152,11 @@ class SessionManager {
|
|
|
150
152
|
folderPath,
|
|
151
153
|
jsonlPath: null,
|
|
152
154
|
fileOffset: 0,
|
|
153
|
-
pollTimer: null,
|
|
154
155
|
startedAt,
|
|
155
156
|
};
|
|
156
157
|
this.watchers.set(projectId, state);
|
|
157
158
|
// Prune old sessions (keep latest 20)
|
|
158
159
|
this.pruneOldSessions(folderPath, projectId);
|
|
159
|
-
// Poll: find Claude's JSONL file, then tail it
|
|
160
|
-
state.pollTimer = setInterval(() => this.poll(projectId, folderPath), 2000);
|
|
161
160
|
console.log(`[SessionManager] Started session ${sessionId} for project ${projectId}`);
|
|
162
161
|
}
|
|
163
162
|
pruneOldSessions(folderPath, projectId, keep = 20) {
|
|
@@ -188,26 +187,55 @@ class SessionManager {
|
|
|
188
187
|
this.stopWatcher(projectId);
|
|
189
188
|
}
|
|
190
189
|
stopWatcher(projectId) {
|
|
191
|
-
const state = this.watchers.get(projectId);
|
|
192
|
-
if (state?.pollTimer)
|
|
193
|
-
clearInterval(state.pollTimer);
|
|
194
190
|
this.watchers.delete(projectId);
|
|
195
191
|
this.semanticStatus.delete(projectId);
|
|
196
192
|
}
|
|
197
|
-
|
|
193
|
+
/** Called by hooks route on PreToolUse.
|
|
194
|
+
* Updates semantic status directly from env var — does NOT read JSONL
|
|
195
|
+
* (JSONL has not been written yet at this point). */
|
|
196
|
+
handleHookPreTool(projectId, toolName) {
|
|
197
|
+
const newStatus = {
|
|
198
|
+
phase: 'tool_use',
|
|
199
|
+
detail: toolName || undefined,
|
|
200
|
+
updatedAt: Date.now(),
|
|
201
|
+
};
|
|
202
|
+
this.semanticStatus.set(projectId, newStatus);
|
|
203
|
+
this.emit('semantic', { projectId, status: newStatus });
|
|
204
|
+
}
|
|
205
|
+
/** Called by hooks route on PostToolUse/Stop.
|
|
206
|
+
* Immediately reads any new lines from the JSONL file. */
|
|
207
|
+
triggerRead(projectId) {
|
|
198
208
|
const state = this.watchers.get(projectId);
|
|
199
209
|
if (!state)
|
|
200
210
|
return;
|
|
201
|
-
// If
|
|
211
|
+
// If JSONL not found yet, try once more (handles race where hook fires before first write)
|
|
202
212
|
if (!state.jsonlPath) {
|
|
203
|
-
state.jsonlPath = this.findJsonl(folderPath, state.startedAt);
|
|
204
|
-
if (!state.jsonlPath)
|
|
205
|
-
|
|
213
|
+
state.jsonlPath = this.findJsonl(state.folderPath, state.startedAt);
|
|
214
|
+
if (!state.jsonlPath) {
|
|
215
|
+
// Retry once after a short delay as a safety net
|
|
216
|
+
setTimeout(() => {
|
|
217
|
+
const s = this.watchers.get(projectId);
|
|
218
|
+
if (s && !s.jsonlPath) {
|
|
219
|
+
s.jsonlPath = this.findJsonl(s.folderPath, s.startedAt);
|
|
220
|
+
if (s.jsonlPath) {
|
|
221
|
+
s.fileOffset = 0;
|
|
222
|
+
this.readNewLines(projectId, s);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}, 500);
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
206
228
|
state.fileOffset = 0;
|
|
207
|
-
console.log(`[SessionManager] Watching Claude JSONL: ${state.jsonlPath}`);
|
|
208
229
|
}
|
|
209
230
|
this.readNewLines(projectId, state);
|
|
210
231
|
}
|
|
232
|
+
/** Called by hooks route on Stop — clears semantic status before reading final text. */
|
|
233
|
+
clearSemanticStatus(projectId) {
|
|
234
|
+
if (!this.semanticStatus.has(projectId))
|
|
235
|
+
return;
|
|
236
|
+
this.semanticStatus.delete(projectId);
|
|
237
|
+
this.emit('semantic', { projectId, status: null });
|
|
238
|
+
}
|
|
211
239
|
/** Find the newest JSONL created after startedAt in Claude's project dir */
|
|
212
240
|
findJsonl(folderPath, startedAt) {
|
|
213
241
|
const dir = claudeProjectDir(folderPath);
|
|
@@ -261,11 +289,13 @@ class SessionManager {
|
|
|
261
289
|
const detail = lastBlock.type === 'tool_use'
|
|
262
290
|
? lastBlock.content.split('(')[0] // extract tool name
|
|
263
291
|
: undefined;
|
|
264
|
-
|
|
292
|
+
const newStatus = {
|
|
265
293
|
phase: lastBlock.type,
|
|
266
294
|
detail,
|
|
267
295
|
updatedAt: Date.now(),
|
|
268
|
-
}
|
|
296
|
+
};
|
|
297
|
+
this.semanticStatus.set(projectId, newStatus);
|
|
298
|
+
this.emit('semantic', { projectId, status: newStatus });
|
|
269
299
|
}
|
|
270
300
|
// Push to chat listeners
|
|
271
301
|
const listeners = this.chatListeners.get(projectId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
1
2
|
import { Project } from './types';
|
|
2
3
|
type RawBroadcastFn = (data: string) => void;
|
|
3
|
-
declare class TerminalManager {
|
|
4
|
+
declare class TerminalManager extends EventEmitter {
|
|
4
5
|
private terminals;
|
|
5
6
|
/** Pending auto-restart timers, keyed by projectId. Tracked separately so stop() can cancel them. */
|
|
6
7
|
private restartTimers;
|
|
8
|
+
/** Throttle activity emissions to max once per 500ms per project */
|
|
9
|
+
private activityThrottles;
|
|
10
|
+
constructor();
|
|
7
11
|
getOrCreate(project: Project, rawBroadcast?: RawBroadcastFn): void;
|
|
8
12
|
updateBroadcast(projectId: string, rawBroadcast: RawBroadcastFn): void;
|
|
9
13
|
/** Write raw keystrokes directly to the PTY. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-manager.d.ts","sourceRoot":"","sources":["../src/terminal-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAW,MAAM,SAAS,CAAC;AAmB3C,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAgB7C,cAAM,
|
|
1
|
+
{"version":3,"file":"terminal-manager.d.ts","sourceRoot":"","sources":["../src/terminal-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,OAAO,EAAW,MAAM,SAAS,CAAC;AAmB3C,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAgB7C,cAAM,eAAgB,SAAQ,YAAY;IACxC,OAAO,CAAC,SAAS,CAAuC;IACxD,qGAAqG;IACrG,OAAO,CAAC,aAAa,CAAoD;IACzE,oEAAoE;IACpE,OAAO,CAAC,iBAAiB,CAA6B;;IAMtD,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,GAAE,cAAyB,GAAG,IAAI;IAS5E,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,GAAG,IAAI;IAKtE,gDAAgD;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/C,oDAAoD;IACpD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAU3D,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAkB7B,8GAA8G;IAC9G,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAetC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIvC,qFAAqF;IACrF,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIxC,iFAAiF;IACjF,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKnD,oFAAoF;IACpF,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUxC,SAAS,IAAI,IAAI;IASjB,OAAO,CAAC,aAAa;IA8DrB,OAAO,CAAC,UAAU;CAwBnB;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.terminalManager = void 0;
|
|
37
37
|
const pty = __importStar(require("node-pty"));
|
|
38
|
+
const events_1 = require("events");
|
|
38
39
|
const config_1 = require("./config");
|
|
39
40
|
const session_manager_1 = require("./session-manager");
|
|
40
41
|
function buildCommand(tool, permissionMode, continueSession = false) {
|
|
@@ -53,11 +54,14 @@ function buildCommand(tool, permissionMode, continueSession = false) {
|
|
|
53
54
|
}
|
|
54
55
|
// Maximum scrollback buffer size per terminal (~5M characters)
|
|
55
56
|
const SCROLLBACK_MAX_CHARS = 5 * 1024 * 1024;
|
|
56
|
-
class TerminalManager {
|
|
57
|
+
class TerminalManager extends events_1.EventEmitter {
|
|
57
58
|
constructor() {
|
|
59
|
+
super();
|
|
58
60
|
this.terminals = new Map();
|
|
59
61
|
/** Pending auto-restart timers, keyed by projectId. Tracked separately so stop() can cancel them. */
|
|
60
62
|
this.restartTimers = new Map();
|
|
63
|
+
/** Throttle activity emissions to max once per 500ms per project */
|
|
64
|
+
this.activityThrottles = new Map();
|
|
61
65
|
}
|
|
62
66
|
getOrCreate(project, rawBroadcast = () => { }) {
|
|
63
67
|
const existing = this.terminals.get(project.id);
|
|
@@ -191,7 +195,8 @@ class TerminalManager {
|
|
|
191
195
|
(0, config_1.saveProject)(project);
|
|
192
196
|
session_manager_1.sessionManager.startSession(project.id, project.folderPath);
|
|
193
197
|
ptyProcess.onData((data) => {
|
|
194
|
-
|
|
198
|
+
const now = Date.now();
|
|
199
|
+
instance.lastActivityAt = now;
|
|
195
200
|
// Append to scrollback, trimming from front if over cap
|
|
196
201
|
instance.scrollback += data;
|
|
197
202
|
if (instance.scrollback.length > SCROLLBACK_MAX_CHARS) {
|
|
@@ -199,6 +204,12 @@ class TerminalManager {
|
|
|
199
204
|
}
|
|
200
205
|
// Forward to all live terminal clients
|
|
201
206
|
instance.rawBroadcast(data);
|
|
207
|
+
// Emit activity event (throttled to 500ms per project)
|
|
208
|
+
const lastEmit = this.activityThrottles.get(project.id) ?? 0;
|
|
209
|
+
if (now - lastEmit >= 500) {
|
|
210
|
+
this.activityThrottles.set(project.id, now);
|
|
211
|
+
this.emit('activity', { projectId: project.id, lastActivityAt: now });
|
|
212
|
+
}
|
|
202
213
|
});
|
|
203
214
|
ptyProcess.onExit(({ exitCode }) => {
|
|
204
215
|
console.log(`[TerminalManager] Terminal exited for ${project.id} (code: ${exitCode})`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-manager.js","sourceRoot":"","sources":["../src/terminal-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAgC;
|
|
1
|
+
{"version":3,"file":"terminal-manager.js","sourceRoot":"","sources":["../src/terminal-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAgC;AAChC,mCAAsC;AAEtC,qCAAoD;AACpD,uDAAmD;AAEnD,SAAS,YAAY,CAAC,IAAa,EAAE,cAAuC,EAAE,eAAe,GAAG,KAAK;IACnG,MAAM,SAAS,GAAG,cAAc,KAAK,WAAW,CAAC;IACjD,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC,CAAC,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;QACtF,KAAK,UAAU;YACb,OAAO,SAAS,CAAC,CAAC,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;QAC1F,KAAK,OAAO;YACV,OAAO,SAAS,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,OAAO,CAAC;QAC7F,KAAK,MAAM;YACT,OAAO,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC;IACxD,CAAC;AACH,CAAC;AAID,+DAA+D;AAC/D,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAa7C,MAAM,eAAgB,SAAQ,qBAAY;IAOxC;QACE,KAAK,EAAE,CAAC;QAPF,cAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;QACxD,qGAAqG;QAC7F,kBAAa,GAAG,IAAI,GAAG,EAAyC,CAAC;QACzE,oEAAoE;QAC5D,sBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAItD,CAAC;IAED,WAAW,CAAC,OAAgB,EAAE,eAA+B,GAAG,EAAE,GAAE,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,eAAe,CAAC,SAAiB,EAAE,YAA4B;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,QAAQ;YAAE,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;IACrD,CAAC;IAED,gDAAgD;IAChD,QAAQ,CAAC,SAAiB,EAAE,IAAY;QACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,oDAAoD;IACpD,MAAM,CAAC,SAAiB,EAAE,IAAY,EAAE,IAAY;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,CAAC;YACH,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,SAAiB;QACpB,8CAA8C;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC;YAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,iEAAiE;QACjE,gCAAc,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAChD,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;QACpC,IAAA,oBAAW,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,8GAA8G;IAC9G,aAAa,CAAC,SAAiB;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC;YAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,gCAAc,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAChD,mEAAmE;IACrE,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,qFAAqF;IACrF,aAAa,CAAC,SAAiB;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC;IACzD,CAAC;IAED,iFAAiF;IACjF,iBAAiB,CAAC,SAAiB;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAED,oFAAoF;IACpF,cAAc;QACZ,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5C,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;gBACrC,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC;YACvC,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS;QACP,KAAK,MAAM,OAAO,IAAI,IAAA,oBAAW,GAAE,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACpE,OAAO,CAAC,GAAG,CAAC,uCAAuC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC;gBACnG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,OAAgB,EAAE,YAA4B,EAAE,eAAe,GAAG,KAAK;QAC3F,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,IAAI,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QAEnG,OAAO,CAAC,GAAG,CAAC,mDAAmD,OAAO,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;QAEzF,IAAI,UAAoB,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC;YAClD,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;gBACnD,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,EAAE,EAAI,oEAAoE;gBAChF,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,OAAO,CAAC,UAAU;gBACvB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAA+B;aACrD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,6CAA6C,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/E,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAC3B,IAAA,oBAAW,EAAC,OAAO,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAqB;YACjC,GAAG,EAAE,UAAU;YACf,OAAO;YACP,eAAe,EAAE,KAAK;YACtB,YAAY;YACZ,UAAU,EAAE,EAAE;YACd,cAAc,EAAE,IAAI;SACrB,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACzC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;QAC3B,IAAA,oBAAW,EAAC,OAAO,CAAC,CAAC;QACrB,gCAAc,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAE5D,UAAU,CAAC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,QAAQ,CAAC,cAAc,GAAG,GAAG,CAAC;YAC9B,wDAAwD;YACxD,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC;YAC5B,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;gBACtD,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAC7C,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,oBAAoB,CAClD,CAAC;YACJ,CAAC;YACD,uCAAuC;YACvC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC5B,uDAAuD;YACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,GAAG,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC;gBAC1B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YACjC,OAAO,CAAC,GAAG,CAAC,yCAAyC,OAAO,CAAC,EAAE,WAAW,QAAQ,GAAG,CAAC,CAAC;YACvF,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,UAAU,CAAC,SAAiB;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEjC,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC;QAC9B,IAAA,oBAAW,EAAC,OAAO,CAAC,CAAC;QACrB,YAAY,CAAC,+EAA+E,CAAC,CAAC;QAE9F,OAAO,CAAC,GAAG,CAAC,kDAAkD,SAAS,2BAA2B,CAAC,CAAC;QACpG,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACrC,6DAA6D;YAC7D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;CACF;AAEY,QAAA,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC"}
|
package/backend/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type CliTool = 'claude' | 'opencode' | 'codex' | 'qwen';
|
|
2
|
+
export type ProjectMode = 'terminal' | 'chat';
|
|
2
3
|
export interface ProjectShare {
|
|
3
4
|
username: string;
|
|
4
5
|
permission: 'view' | 'edit';
|
|
@@ -14,6 +15,7 @@ export interface Project {
|
|
|
14
15
|
archived?: boolean;
|
|
15
16
|
owner?: string;
|
|
16
17
|
shares?: ProjectShare[];
|
|
18
|
+
mode?: ProjectMode;
|
|
17
19
|
}
|
|
18
20
|
export interface Config {
|
|
19
21
|
username: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAC/D,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,SAAS,GAAG,WAAW,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAGD,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{c as g,r as l,j as e,o as p,e as m,C as k,A as v}from"./index-C9_Mp1hE.js";import{S as N,M as C,r as M,B as R}from"./ProjectPage-Ckxkh4Nr.js";import"./select-Cfjj__BG.js";import"./chevron-down-BEvQLdWD.js";import"./user-_adqQY3y.js";/**
|
|
2
|
+
* @license lucide-react v0.309.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const S=g("FileOutput",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4",key:"702lig"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["path",{d:"M2 15h10",key:"jfw4w8"}],["path",{d:"m5 12-3 3 3 3",key:"oke12k"}]]);/**
|
|
7
|
+
* @license lucide-react v0.309.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const O=g("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);function x({icon:n,label:s,content:r}){const[a,o]=l.useState(!1);return e.jsxs("div",{className:"border border-border rounded mt-1.5",children:[e.jsxs("button",{className:"flex items-center gap-1.5 w-full px-2.5 py-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors",onClick:()=>o(i=>!i),children:[e.jsx(k,{className:m("h-3 w-3 transition-transform",a&&"rotate-90")}),e.jsx(n,{className:"h-3 w-3"}),e.jsx("span",{className:"truncate",children:s})]}),e.jsx(v,{children:a&&e.jsx(p.pre,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2,ease:"easeInOut"},className:"px-3 pb-2 text-xs text-muted-foreground whitespace-pre-wrap break-words max-h-40 overflow-auto",children:r})})]})}function B({blocks:n}){return e.jsx(e.Fragment,{children:n.map((s,r)=>s.type==="text"?e.jsx("div",{className:"prose dark:prose-invert prose-sm max-w-none",children:e.jsx(C,{remarkPlugins:[M],children:s.content})},r):s.type==="thinking"?e.jsx(x,{icon:R,label:"Thinking...",content:s.content},r):s.type==="tool_use"?e.jsx(x,{icon:O,label:s.content.split("(")[0],content:s.content},r):s.type==="tool_result"?e.jsx(x,{icon:S,label:"Result",content:s.content},r):null)})}function K({messages:n,onSend:s,readOnly:r,streamingText:a,streamingThinking:o,isGenerating:i,currentToolName:c}){const[d,h]=l.useState(""),f=l.useRef(null),u=l.useRef(null);l.useEffect(()=>{var t;(t=f.current)==null||t.scrollIntoView({behavior:"smooth"})},[n.length]);const y=()=>{const t=d.trim();t&&(s(t+"\r"),h(""),u.current&&(u.current.style.height="auto"))},j=t=>{t.key==="Enter"&&!t.shiftKey&&(t.preventDefault(),y())},b=t=>{t.style.height="auto",t.style.height=Math.min(t.scrollHeight,120)+"px"};return e.jsxs("div",{className:"flex flex-col h-full bg-background",children:[e.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-3 min-h-0",children:[n.length===0&&e.jsx("p",{className:"text-sm text-muted-foreground text-center py-8",children:"等待对话..."}),n.map((t,w)=>e.jsx(p.div,{initial:{opacity:0,y:10,x:t.role==="user"?12:-12},animate:{opacity:1,y:0,x:0},transition:{duration:.25,ease:"easeOut"},className:m("flex",t.role==="user"?"justify-end":"justify-start"),children:e.jsxs("div",{className:m("max-w-[85%] rounded-lg px-3 py-2 text-sm",t.role==="user"?"bg-blue-100 text-blue-900 dark:bg-blue-600 dark:text-white":"bg-muted"),children:[e.jsx(B,{blocks:t.blocks}),e.jsx("div",{className:"text-[10px] opacity-50 mt-1",children:new Date(t.timestamp).toLocaleTimeString()})]})},w)),i&&(a||o||c)&&e.jsxs("div",{className:"flex flex-col gap-1 px-2",children:[c&&e.jsxs("div",{className:"text-xs text-blue-500 px-3 py-1 bg-blue-50 dark:bg-blue-950/30 rounded-md",children:["🔧 ",c,"..."]}),o&&e.jsxs("div",{className:"text-xs text-muted-foreground italic px-3 py-1 bg-muted/40 rounded-md line-clamp-3",children:["💭 ",o]}),a&&e.jsxs("div",{className:"text-sm px-3 py-2 bg-muted/20 border rounded-lg whitespace-pre-wrap",children:[a,e.jsx("span",{className:"inline-block w-1.5 h-4 bg-foreground/70 ml-0.5 align-middle animate-pulse"})]})]}),e.jsx("div",{ref:f})]}),!r&&e.jsxs("div",{className:"border-t border-border p-3 flex gap-2 items-end flex-shrink-0",children:[e.jsx("textarea",{ref:u,value:d,onChange:t=>{h(t.target.value),b(t.target)},onKeyDown:j,placeholder:"输入消息...",rows:1,className:"flex-1 resize-none bg-muted rounded-md px-3 py-2 text-sm outline-none focus:ring-1 focus:ring-ring",style:{maxHeight:"120px"}}),e.jsx(p.button,{onClick:y,disabled:!d.trim(),whileTap:{scale:.93},className:"p-2 rounded-md bg-primary text-primary-foreground hover:bg-primary/90 disabled:opacity-50 transition-colors flex-shrink-0",children:e.jsx(N,{className:"h-4 w-4"})})]})]})}export{K as ChatView};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import{c as je,r as C,d as De,j as y,K as q,l as he}from"./index-C9_Mp1hE.js";import{L as Ye,Z as Pe,a as Be}from"./ProjectPage-Ckxkh4Nr.js";import"./select-Cfjj__BG.js";import"./chevron-down-BEvQLdWD.js";import"./user-_adqQY3y.js";/**
|
|
2
|
+
* @license lucide-react v0.309.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const Re=je("Maximize2",[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */function Ce(e){return typeof e>"u"||e===null}function $e(e){return typeof e=="object"&&e!==null}function We(e){return Array.isArray(e)?e:Ce(e)?[]:[e]}function Ue(e,n){var i,o,r,c;if(n)for(c=Object.keys(n),i=0,o=c.length;i<o;i+=1)r=c[i],e[r]=n[r];return e}function Ge(e,n){var i="",o;for(o=0;o<n;o+=1)i+=e;return i}function He(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var qe=Ce,ze=$e,Ke=We,Xe=Ge,Ze=He,Ve=Ue,_={isNothing:qe,isObject:ze,toArray:Ke,repeat:Xe,isNegativeZero:Ze,extend:Ve};function ke(e,n){var i="",o=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(i+='in "'+e.mark.name+'" '),i+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!n&&e.mark.snippet&&(i+=`
|
|
7
|
+
|
|
8
|
+
`+e.mark.snippet),o+" "+i):o}function z(e,n){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=n,this.message=ke(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}z.prototype=Object.create(Error.prototype);z.prototype.constructor=z;z.prototype.toString=function(n){return this.name+": "+ke(this,n)};var F=z;function ie(e,n,i,o,r){var c="",l="",u=Math.floor(r/2)-1;return o-n>u&&(c=" ... ",n=o-u+c.length),i-o>u&&(l=" ...",i=o+u-l.length),{str:c+e.slice(n,i).replace(/\t/g,"→")+l,pos:o-n+c.length}}function re(e,n){return _.repeat(" ",n-e.length)+e}function Qe(e,n){if(n=Object.create(n||null),!e.buffer)return null;n.maxLength||(n.maxLength=79),typeof n.indent!="number"&&(n.indent=1),typeof n.linesBefore!="number"&&(n.linesBefore=3),typeof n.linesAfter!="number"&&(n.linesAfter=2);for(var i=/\r?\n|\r|\0/g,o=[0],r=[],c,l=-1;c=i.exec(e.buffer);)r.push(c.index),o.push(c.index+c[0].length),e.position<=c.index&&l<0&&(l=o.length-2);l<0&&(l=o.length-1);var u="",t,p,m=Math.min(e.line+n.linesAfter,r.length).toString().length,f=n.maxLength-(n.indent+m+3);for(t=1;t<=n.linesBefore&&!(l-t<0);t++)p=ie(e.buffer,o[l-t],r[l-t],e.position-(o[l]-o[l-t]),f),u=_.repeat(" ",n.indent)+re((e.line-t+1).toString(),m)+" | "+p.str+`
|
|
9
|
+
`+u;for(p=ie(e.buffer,o[l],r[l],e.position,f),u+=_.repeat(" ",n.indent)+re((e.line+1).toString(),m)+" | "+p.str+`
|
|
10
|
+
`,u+=_.repeat("-",n.indent+m+3+p.pos)+`^
|
|
11
|
+
`,t=1;t<=n.linesAfter&&!(l+t>=r.length);t++)p=ie(e.buffer,o[l+t],r[l+t],e.position-(o[l]-o[l+t]),f),u+=_.repeat(" ",n.indent)+re((e.line+t+1).toString(),m)+" | "+p.str+`
|
|
12
|
+
`;return u.replace(/\n$/,"")}var Je=Qe,en=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],nn=["scalar","sequence","mapping"];function rn(e){var n={};return e!==null&&Object.keys(e).forEach(function(i){e[i].forEach(function(o){n[String(o)]=i})}),n}function on(e,n){if(n=n||{},Object.keys(n).forEach(function(i){if(en.indexOf(i)===-1)throw new F('Unknown option "'+i+'" is met in definition of "'+e+'" YAML type.')}),this.options=n,this.tag=e,this.kind=n.kind||null,this.resolve=n.resolve||function(){return!0},this.construct=n.construct||function(i){return i},this.instanceOf=n.instanceOf||null,this.predicate=n.predicate||null,this.represent=n.represent||null,this.representName=n.representName||null,this.defaultStyle=n.defaultStyle||null,this.multi=n.multi||!1,this.styleAliases=rn(n.styleAliases||null),nn.indexOf(this.kind)===-1)throw new F('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var k=on;function de(e,n){var i=[];return e[n].forEach(function(o){var r=i.length;i.forEach(function(c,l){c.tag===o.tag&&c.kind===o.kind&&c.multi===o.multi&&(r=l)}),i[r]=o}),i}function ln(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},n,i;function o(r){r.multi?(e.multi[r.kind].push(r),e.multi.fallback.push(r)):e[r.kind][r.tag]=e.fallback[r.tag]=r}for(n=0,i=arguments.length;n<i;n+=1)arguments[n].forEach(o);return e}function le(e){return this.extend(e)}le.prototype.extend=function(n){var i=[],o=[];if(n instanceof k)o.push(n);else if(Array.isArray(n))o=o.concat(n);else if(n&&(Array.isArray(n.implicit)||Array.isArray(n.explicit)))n.implicit&&(i=i.concat(n.implicit)),n.explicit&&(o=o.concat(n.explicit));else throw new F("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");i.forEach(function(c){if(!(c instanceof k))throw new F("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(c.loadKind&&c.loadKind!=="scalar")throw new F("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(c.multi)throw new F("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),o.forEach(function(c){if(!(c instanceof k))throw new F("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var r=Object.create(le.prototype);return r.implicit=(this.implicit||[]).concat(i),r.explicit=(this.explicit||[]).concat(o),r.compiledImplicit=de(r,"implicit"),r.compiledExplicit=de(r,"explicit"),r.compiledTypeMap=ln(r.compiledImplicit,r.compiledExplicit),r};var cn=le,un=new k("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}}),tn=new k("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}}),fn=new k("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}}),an=new cn({explicit:[un,tn,fn]});function pn(e){if(e===null)return!0;var n=e.length;return n===1&&e==="~"||n===4&&(e==="null"||e==="Null"||e==="NULL")}function sn(){return null}function hn(e){return e===null}var dn=new k("tag:yaml.org,2002:null",{kind:"scalar",resolve:pn,construct:sn,predicate:hn,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function mn(e){if(e===null)return!1;var n=e.length;return n===4&&(e==="true"||e==="True"||e==="TRUE")||n===5&&(e==="false"||e==="False"||e==="FALSE")}function xn(e){return e==="true"||e==="True"||e==="TRUE"}function gn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}var vn=new k("tag:yaml.org,2002:bool",{kind:"scalar",resolve:mn,construct:xn,predicate:gn,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"});function yn(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function An(e){return 48<=e&&e<=55}function bn(e){return 48<=e&&e<=57}function wn(e){if(e===null)return!1;var n=e.length,i=0,o=!1,r;if(!n)return!1;if(r=e[i],(r==="-"||r==="+")&&(r=e[++i]),r==="0"){if(i+1===n)return!0;if(r=e[++i],r==="b"){for(i++;i<n;i++)if(r=e[i],r!=="_"){if(r!=="0"&&r!=="1")return!1;o=!0}return o&&r!=="_"}if(r==="x"){for(i++;i<n;i++)if(r=e[i],r!=="_"){if(!yn(e.charCodeAt(i)))return!1;o=!0}return o&&r!=="_"}if(r==="o"){for(i++;i<n;i++)if(r=e[i],r!=="_"){if(!An(e.charCodeAt(i)))return!1;o=!0}return o&&r!=="_"}}if(r==="_")return!1;for(;i<n;i++)if(r=e[i],r!=="_"){if(!bn(e.charCodeAt(i)))return!1;o=!0}return!(!o||r==="_")}function Cn(e){var n=e,i=1,o;if(n.indexOf("_")!==-1&&(n=n.replace(/_/g,"")),o=n[0],(o==="-"||o==="+")&&(o==="-"&&(i=-1),n=n.slice(1),o=n[0]),n==="0")return 0;if(o==="0"){if(n[1]==="b")return i*parseInt(n.slice(2),2);if(n[1]==="x")return i*parseInt(n.slice(2),16);if(n[1]==="o")return i*parseInt(n.slice(2),8)}return i*parseInt(n,10)}function kn(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!_.isNegativeZero(e)}var _n=new k("tag:yaml.org,2002:int",{kind:"scalar",resolve:wn,construct:Cn,predicate:kn,represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Sn=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Nn(e){return!(e===null||!Sn.test(e)||e[e.length-1]==="_")}function En(e){var n,i;return n=e.replace(/_/g,"").toLowerCase(),i=n[0]==="-"?-1:1,"+-".indexOf(n[0])>=0&&(n=n.slice(1)),n===".inf"?i===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:n===".nan"?NaN:i*parseFloat(n,10)}var In=/^[-+]?[0-9]+e/;function Tn(e,n){var i;if(isNaN(e))switch(n){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(n){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(n){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(_.isNegativeZero(e))return"-0.0";return i=e.toString(10),In.test(i)?i.replace("e",".e"):i}function Fn(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||_.isNegativeZero(e))}var On=new k("tag:yaml.org,2002:float",{kind:"scalar",resolve:Nn,construct:En,predicate:Fn,represent:Tn,defaultStyle:"lowercase"}),Mn=an.extend({implicit:[dn,vn,_n,On]}),Ln=Mn,_e=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Se=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function jn(e){return e===null?!1:_e.exec(e)!==null||Se.exec(e)!==null}function Dn(e){var n,i,o,r,c,l,u,t=0,p=null,m,f,A;if(n=_e.exec(e),n===null&&(n=Se.exec(e)),n===null)throw new Error("Date resolve error");if(i=+n[1],o=+n[2]-1,r=+n[3],!n[4])return new Date(Date.UTC(i,o,r));if(c=+n[4],l=+n[5],u=+n[6],n[7]){for(t=n[7].slice(0,3);t.length<3;)t+="0";t=+t}return n[9]&&(m=+n[10],f=+(n[11]||0),p=(m*60+f)*6e4,n[9]==="-"&&(p=-p)),A=new Date(Date.UTC(i,o,r,c,l,u,t)),p&&A.setTime(A.getTime()-p),A}function Yn(e){return e.toISOString()}var Pn=new k("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:jn,construct:Dn,instanceOf:Date,represent:Yn});function Bn(e){return e==="<<"||e===null}var Rn=new k("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Bn}),ce=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
|
|
13
|
+
\r`;function $n(e){if(e===null)return!1;var n,i,o=0,r=e.length,c=ce;for(i=0;i<r;i++)if(n=c.indexOf(e.charAt(i)),!(n>64)){if(n<0)return!1;o+=6}return o%8===0}function Wn(e){var n,i,o=e.replace(/[\r\n=]/g,""),r=o.length,c=ce,l=0,u=[];for(n=0;n<r;n++)n%4===0&&n&&(u.push(l>>16&255),u.push(l>>8&255),u.push(l&255)),l=l<<6|c.indexOf(o.charAt(n));return i=r%4*6,i===0?(u.push(l>>16&255),u.push(l>>8&255),u.push(l&255)):i===18?(u.push(l>>10&255),u.push(l>>2&255)):i===12&&u.push(l>>4&255),new Uint8Array(u)}function Un(e){var n="",i=0,o,r,c=e.length,l=ce;for(o=0;o<c;o++)o%3===0&&o&&(n+=l[i>>18&63],n+=l[i>>12&63],n+=l[i>>6&63],n+=l[i&63]),i=(i<<8)+e[o];return r=c%3,r===0?(n+=l[i>>18&63],n+=l[i>>12&63],n+=l[i>>6&63],n+=l[i&63]):r===2?(n+=l[i>>10&63],n+=l[i>>4&63],n+=l[i<<2&63],n+=l[64]):r===1&&(n+=l[i>>2&63],n+=l[i<<4&63],n+=l[64],n+=l[64]),n}function Gn(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}var Hn=new k("tag:yaml.org,2002:binary",{kind:"scalar",resolve:$n,construct:Wn,predicate:Gn,represent:Un}),qn=Object.prototype.hasOwnProperty,zn=Object.prototype.toString;function Kn(e){if(e===null)return!0;var n=[],i,o,r,c,l,u=e;for(i=0,o=u.length;i<o;i+=1){if(r=u[i],l=!1,zn.call(r)!=="[object Object]")return!1;for(c in r)if(qn.call(r,c))if(!l)l=!0;else return!1;if(!l)return!1;if(n.indexOf(c)===-1)n.push(c);else return!1}return!0}function Xn(e){return e!==null?e:[]}var Zn=new k("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Kn,construct:Xn}),Vn=Object.prototype.toString;function Qn(e){if(e===null)return!0;var n,i,o,r,c,l=e;for(c=new Array(l.length),n=0,i=l.length;n<i;n+=1){if(o=l[n],Vn.call(o)!=="[object Object]"||(r=Object.keys(o),r.length!==1))return!1;c[n]=[r[0],o[r[0]]]}return!0}function Jn(e){if(e===null)return[];var n,i,o,r,c,l=e;for(c=new Array(l.length),n=0,i=l.length;n<i;n+=1)o=l[n],r=Object.keys(o),c[n]=[r[0],o[r[0]]];return c}var ei=new k("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Qn,construct:Jn}),ni=Object.prototype.hasOwnProperty;function ii(e){if(e===null)return!0;var n,i=e;for(n in i)if(ni.call(i,n)&&i[n]!==null)return!1;return!0}function ri(e){return e!==null?e:{}}var oi=new k("tag:yaml.org,2002:set",{kind:"mapping",resolve:ii,construct:ri}),li=Ln.extend({implicit:[Pn,Rn],explicit:[Hn,Zn,ei,oi]}),D=Object.prototype.hasOwnProperty,V=1,Ne=2,Ee=3,Q=4,oe=1,ci=2,me=3,ui=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,ti=/[\x85\u2028\u2029]/,fi=/[,\[\]\{\}]/,Ie=/^(?:!|!!|![a-z\-]+!)$/i,Te=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function xe(e){return Object.prototype.toString.call(e)}function T(e){return e===10||e===13}function B(e){return e===9||e===32}function N(e){return e===9||e===32||e===10||e===13}function $(e){return e===44||e===91||e===93||e===123||e===125}function ai(e){var n;return 48<=e&&e<=57?e-48:(n=e|32,97<=n&&n<=102?n-97+10:-1)}function pi(e){return e===120?2:e===117?4:e===85?8:0}function si(e){return 48<=e&&e<=57?e-48:-1}function ge(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?`
|
|
14
|
+
`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"
":e===95?" ":e===76?"\u2028":e===80?"\u2029":""}function hi(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function Fe(e,n,i){n==="__proto__"?Object.defineProperty(e,n,{configurable:!0,enumerable:!0,writable:!0,value:i}):e[n]=i}var Oe=new Array(256),Me=new Array(256);for(var R=0;R<256;R++)Oe[R]=ge(R)?1:0,Me[R]=ge(R);function di(e,n){this.input=e,this.filename=n.filename||null,this.schema=n.schema||li,this.onWarning=n.onWarning||null,this.legacy=n.legacy||!1,this.json=n.json||!1,this.listener=n.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Le(e,n){var i={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return i.snippet=Je(i),new F(n,i)}function a(e,n){throw Le(e,n)}function J(e,n){e.onWarning&&e.onWarning.call(null,Le(e,n))}var ve={YAML:function(n,i,o){var r,c,l;n.version!==null&&a(n,"duplication of %YAML directive"),o.length!==1&&a(n,"YAML directive accepts exactly one argument"),r=/^([0-9]+)\.([0-9]+)$/.exec(o[0]),r===null&&a(n,"ill-formed argument of the YAML directive"),c=parseInt(r[1],10),l=parseInt(r[2],10),c!==1&&a(n,"unacceptable YAML version of the document"),n.version=o[0],n.checkLineBreaks=l<2,l!==1&&l!==2&&J(n,"unsupported YAML version of the document")},TAG:function(n,i,o){var r,c;o.length!==2&&a(n,"TAG directive accepts exactly two arguments"),r=o[0],c=o[1],Ie.test(r)||a(n,"ill-formed tag handle (first argument) of the TAG directive"),D.call(n.tagMap,r)&&a(n,'there is a previously declared suffix for "'+r+'" tag handle'),Te.test(c)||a(n,"ill-formed tag prefix (second argument) of the TAG directive");try{c=decodeURIComponent(c)}catch{a(n,"tag prefix is malformed: "+c)}n.tagMap[r]=c}};function j(e,n,i,o){var r,c,l,u;if(n<i){if(u=e.input.slice(n,i),o)for(r=0,c=u.length;r<c;r+=1)l=u.charCodeAt(r),l===9||32<=l&&l<=1114111||a(e,"expected valid JSON character");else ui.test(u)&&a(e,"the stream contains non-printable characters");e.result+=u}}function ye(e,n,i,o){var r,c,l,u;for(_.isObject(i)||a(e,"cannot merge mappings; the provided source object is unacceptable"),r=Object.keys(i),l=0,u=r.length;l<u;l+=1)c=r[l],D.call(n,c)||(Fe(n,c,i[c]),o[c]=!0)}function W(e,n,i,o,r,c,l,u,t){var p,m;if(Array.isArray(r))for(r=Array.prototype.slice.call(r),p=0,m=r.length;p<m;p+=1)Array.isArray(r[p])&&a(e,"nested arrays are not supported inside keys"),typeof r=="object"&&xe(r[p])==="[object Object]"&&(r[p]="[object Object]");if(typeof r=="object"&&xe(r)==="[object Object]"&&(r="[object Object]"),r=String(r),n===null&&(n={}),o==="tag:yaml.org,2002:merge")if(Array.isArray(c))for(p=0,m=c.length;p<m;p+=1)ye(e,n,c[p],i);else ye(e,n,c,i);else!e.json&&!D.call(i,r)&&D.call(n,r)&&(e.line=l||e.line,e.lineStart=u||e.lineStart,e.position=t||e.position,a(e,"duplicated mapping key")),Fe(n,r,c),delete i[r];return n}function ue(e){var n;n=e.input.charCodeAt(e.position),n===10?e.position++:n===13?(e.position++,e.input.charCodeAt(e.position)===10&&e.position++):a(e,"a line break is expected"),e.line+=1,e.lineStart=e.position,e.firstTabInLine=-1}function w(e,n,i){for(var o=0,r=e.input.charCodeAt(e.position);r!==0;){for(;B(r);)r===9&&e.firstTabInLine===-1&&(e.firstTabInLine=e.position),r=e.input.charCodeAt(++e.position);if(n&&r===35)do r=e.input.charCodeAt(++e.position);while(r!==10&&r!==13&&r!==0);if(T(r))for(ue(e),r=e.input.charCodeAt(e.position),o++,e.lineIndent=0;r===32;)e.lineIndent++,r=e.input.charCodeAt(++e.position);else break}return i!==-1&&o!==0&&e.lineIndent<i&&J(e,"deficient indentation"),o}function ee(e){var n=e.position,i;return i=e.input.charCodeAt(n),!!((i===45||i===46)&&i===e.input.charCodeAt(n+1)&&i===e.input.charCodeAt(n+2)&&(n+=3,i=e.input.charCodeAt(n),i===0||N(i)))}function te(e,n){n===1?e.result+=" ":n>1&&(e.result+=_.repeat(`
|
|
15
|
+
`,n-1))}function mi(e,n,i){var o,r,c,l,u,t,p,m,f=e.kind,A=e.result,s;if(s=e.input.charCodeAt(e.position),N(s)||$(s)||s===35||s===38||s===42||s===33||s===124||s===62||s===39||s===34||s===37||s===64||s===96||(s===63||s===45)&&(r=e.input.charCodeAt(e.position+1),N(r)||i&&$(r)))return!1;for(e.kind="scalar",e.result="",c=l=e.position,u=!1;s!==0;){if(s===58){if(r=e.input.charCodeAt(e.position+1),N(r)||i&&$(r))break}else if(s===35){if(o=e.input.charCodeAt(e.position-1),N(o))break}else{if(e.position===e.lineStart&&ee(e)||i&&$(s))break;if(T(s))if(t=e.line,p=e.lineStart,m=e.lineIndent,w(e,!1,-1),e.lineIndent>=n){u=!0,s=e.input.charCodeAt(e.position);continue}else{e.position=l,e.line=t,e.lineStart=p,e.lineIndent=m;break}}u&&(j(e,c,l,!1),te(e,e.line-t),c=l=e.position,u=!1),B(s)||(l=e.position+1),s=e.input.charCodeAt(++e.position)}return j(e,c,l,!1),e.result?!0:(e.kind=f,e.result=A,!1)}function xi(e,n){var i,o,r;if(i=e.input.charCodeAt(e.position),i!==39)return!1;for(e.kind="scalar",e.result="",e.position++,o=r=e.position;(i=e.input.charCodeAt(e.position))!==0;)if(i===39)if(j(e,o,e.position,!0),i=e.input.charCodeAt(++e.position),i===39)o=e.position,e.position++,r=e.position;else return!0;else T(i)?(j(e,o,r,!0),te(e,w(e,!1,n)),o=r=e.position):e.position===e.lineStart&&ee(e)?a(e,"unexpected end of the document within a single quoted scalar"):(e.position++,r=e.position);a(e,"unexpected end of the stream within a single quoted scalar")}function gi(e,n){var i,o,r,c,l,u;if(u=e.input.charCodeAt(e.position),u!==34)return!1;for(e.kind="scalar",e.result="",e.position++,i=o=e.position;(u=e.input.charCodeAt(e.position))!==0;){if(u===34)return j(e,i,e.position,!0),e.position++,!0;if(u===92){if(j(e,i,e.position,!0),u=e.input.charCodeAt(++e.position),T(u))w(e,!1,n);else if(u<256&&Oe[u])e.result+=Me[u],e.position++;else if((l=pi(u))>0){for(r=l,c=0;r>0;r--)u=e.input.charCodeAt(++e.position),(l=ai(u))>=0?c=(c<<4)+l:a(e,"expected hexadecimal character");e.result+=hi(c),e.position++}else a(e,"unknown escape sequence");i=o=e.position}else T(u)?(j(e,i,o,!0),te(e,w(e,!1,n)),i=o=e.position):e.position===e.lineStart&&ee(e)?a(e,"unexpected end of the document within a double quoted scalar"):(e.position++,o=e.position)}a(e,"unexpected end of the stream within a double quoted scalar")}function vi(e,n){var i=!0,o,r,c,l=e.tag,u,t=e.anchor,p,m,f,A,s,g=Object.create(null),b,v,h,d;if(d=e.input.charCodeAt(e.position),d===91)m=93,s=!1,u=[];else if(d===123)m=125,s=!0,u={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=u),d=e.input.charCodeAt(++e.position);d!==0;){if(w(e,!0,n),d=e.input.charCodeAt(e.position),d===m)return e.position++,e.tag=l,e.anchor=t,e.kind=s?"mapping":"sequence",e.result=u,!0;i?d===44&&a(e,"expected the node content, but found ','"):a(e,"missed comma between flow collection entries"),v=b=h=null,f=A=!1,d===63&&(p=e.input.charCodeAt(e.position+1),N(p)&&(f=A=!0,e.position++,w(e,!0,n))),o=e.line,r=e.lineStart,c=e.position,U(e,n,V,!1,!0),v=e.tag,b=e.result,w(e,!0,n),d=e.input.charCodeAt(e.position),(A||e.line===o)&&d===58&&(f=!0,d=e.input.charCodeAt(++e.position),w(e,!0,n),U(e,n,V,!1,!0),h=e.result),s?W(e,u,g,v,b,h,o,r,c):f?u.push(W(e,null,g,v,b,h,o,r,c)):u.push(b),w(e,!0,n),d=e.input.charCodeAt(e.position),d===44?(i=!0,d=e.input.charCodeAt(++e.position)):i=!1}a(e,"unexpected end of the stream within a flow collection")}function yi(e,n){var i,o,r=oe,c=!1,l=!1,u=n,t=0,p=!1,m,f;if(f=e.input.charCodeAt(e.position),f===124)o=!1;else if(f===62)o=!0;else return!1;for(e.kind="scalar",e.result="";f!==0;)if(f=e.input.charCodeAt(++e.position),f===43||f===45)oe===r?r=f===43?me:ci:a(e,"repeat of a chomping mode identifier");else if((m=si(f))>=0)m===0?a(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?a(e,"repeat of an indentation width identifier"):(u=n+m-1,l=!0);else break;if(B(f)){do f=e.input.charCodeAt(++e.position);while(B(f));if(f===35)do f=e.input.charCodeAt(++e.position);while(!T(f)&&f!==0)}for(;f!==0;){for(ue(e),e.lineIndent=0,f=e.input.charCodeAt(e.position);(!l||e.lineIndent<u)&&f===32;)e.lineIndent++,f=e.input.charCodeAt(++e.position);if(!l&&e.lineIndent>u&&(u=e.lineIndent),T(f)){t++;continue}if(e.lineIndent<u){r===me?e.result+=_.repeat(`
|
|
16
|
+
`,c?1+t:t):r===oe&&c&&(e.result+=`
|
|
17
|
+
`);break}for(o?B(f)?(p=!0,e.result+=_.repeat(`
|
|
18
|
+
`,c?1+t:t)):p?(p=!1,e.result+=_.repeat(`
|
|
19
|
+
`,t+1)):t===0?c&&(e.result+=" "):e.result+=_.repeat(`
|
|
20
|
+
`,t):e.result+=_.repeat(`
|
|
21
|
+
`,c?1+t:t),c=!0,l=!0,t=0,i=e.position;!T(f)&&f!==0;)f=e.input.charCodeAt(++e.position);j(e,i,e.position,!1)}return!0}function Ae(e,n){var i,o=e.tag,r=e.anchor,c=[],l,u=!1,t;if(e.firstTabInLine!==-1)return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=c),t=e.input.charCodeAt(e.position);t!==0&&(e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,a(e,"tab characters must not be used in indentation")),!(t!==45||(l=e.input.charCodeAt(e.position+1),!N(l))));){if(u=!0,e.position++,w(e,!0,-1)&&e.lineIndent<=n){c.push(null),t=e.input.charCodeAt(e.position);continue}if(i=e.line,U(e,n,Ee,!1,!0),c.push(e.result),w(e,!0,-1),t=e.input.charCodeAt(e.position),(e.line===i||e.lineIndent>n)&&t!==0)a(e,"bad indentation of a sequence entry");else if(e.lineIndent<n)break}return u?(e.tag=o,e.anchor=r,e.kind="sequence",e.result=c,!0):!1}function Ai(e,n,i){var o,r,c,l,u,t,p=e.tag,m=e.anchor,f={},A=Object.create(null),s=null,g=null,b=null,v=!1,h=!1,d;if(e.firstTabInLine!==-1)return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=f),d=e.input.charCodeAt(e.position);d!==0;){if(!v&&e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,a(e,"tab characters must not be used in indentation")),o=e.input.charCodeAt(e.position+1),c=e.line,(d===63||d===58)&&N(o))d===63?(v&&(W(e,f,A,s,g,null,l,u,t),s=g=b=null),h=!0,v=!0,r=!0):v?(v=!1,r=!0):a(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,d=o;else{if(l=e.line,u=e.lineStart,t=e.position,!U(e,i,Ne,!1,!0))break;if(e.line===c){for(d=e.input.charCodeAt(e.position);B(d);)d=e.input.charCodeAt(++e.position);if(d===58)d=e.input.charCodeAt(++e.position),N(d)||a(e,"a whitespace character is expected after the key-value separator within a block mapping"),v&&(W(e,f,A,s,g,null,l,u,t),s=g=b=null),h=!0,v=!1,r=!1,s=e.tag,g=e.result;else if(h)a(e,"can not read an implicit mapping pair; a colon is missed");else return e.tag=p,e.anchor=m,!0}else if(h)a(e,"can not read a block mapping entry; a multiline key may not be an implicit key");else return e.tag=p,e.anchor=m,!0}if((e.line===c||e.lineIndent>n)&&(v&&(l=e.line,u=e.lineStart,t=e.position),U(e,n,Q,!0,r)&&(v?g=e.result:b=e.result),v||(W(e,f,A,s,g,b,l,u,t),s=g=b=null),w(e,!0,-1),d=e.input.charCodeAt(e.position)),(e.line===c||e.lineIndent>n)&&d!==0)a(e,"bad indentation of a mapping entry");else if(e.lineIndent<n)break}return v&&W(e,f,A,s,g,null,l,u,t),h&&(e.tag=p,e.anchor=m,e.kind="mapping",e.result=f),h}function bi(e){var n,i=!1,o=!1,r,c,l;if(l=e.input.charCodeAt(e.position),l!==33)return!1;if(e.tag!==null&&a(e,"duplication of a tag property"),l=e.input.charCodeAt(++e.position),l===60?(i=!0,l=e.input.charCodeAt(++e.position)):l===33?(o=!0,r="!!",l=e.input.charCodeAt(++e.position)):r="!",n=e.position,i){do l=e.input.charCodeAt(++e.position);while(l!==0&&l!==62);e.position<e.length?(c=e.input.slice(n,e.position),l=e.input.charCodeAt(++e.position)):a(e,"unexpected end of the stream within a verbatim tag")}else{for(;l!==0&&!N(l);)l===33&&(o?a(e,"tag suffix cannot contain exclamation marks"):(r=e.input.slice(n-1,e.position+1),Ie.test(r)||a(e,"named tag handle cannot contain such characters"),o=!0,n=e.position+1)),l=e.input.charCodeAt(++e.position);c=e.input.slice(n,e.position),fi.test(c)&&a(e,"tag suffix cannot contain flow indicator characters")}c&&!Te.test(c)&&a(e,"tag name cannot contain such characters: "+c);try{c=decodeURIComponent(c)}catch{a(e,"tag name is malformed: "+c)}return i?e.tag=c:D.call(e.tagMap,r)?e.tag=e.tagMap[r]+c:r==="!"?e.tag="!"+c:r==="!!"?e.tag="tag:yaml.org,2002:"+c:a(e,'undeclared tag handle "'+r+'"'),!0}function wi(e){var n,i;if(i=e.input.charCodeAt(e.position),i!==38)return!1;for(e.anchor!==null&&a(e,"duplication of an anchor property"),i=e.input.charCodeAt(++e.position),n=e.position;i!==0&&!N(i)&&!$(i);)i=e.input.charCodeAt(++e.position);return e.position===n&&a(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(n,e.position),!0}function Ci(e){var n,i,o;if(o=e.input.charCodeAt(e.position),o!==42)return!1;for(o=e.input.charCodeAt(++e.position),n=e.position;o!==0&&!N(o)&&!$(o);)o=e.input.charCodeAt(++e.position);return e.position===n&&a(e,"name of an alias node must contain at least one character"),i=e.input.slice(n,e.position),D.call(e.anchorMap,i)||a(e,'unidentified alias "'+i+'"'),e.result=e.anchorMap[i],w(e,!0,-1),!0}function U(e,n,i,o,r){var c,l,u,t=1,p=!1,m=!1,f,A,s,g,b,v;if(e.listener!==null&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,c=l=u=Q===i||Ee===i,o&&w(e,!0,-1)&&(p=!0,e.lineIndent>n?t=1:e.lineIndent===n?t=0:e.lineIndent<n&&(t=-1)),t===1)for(;bi(e)||wi(e);)w(e,!0,-1)?(p=!0,u=c,e.lineIndent>n?t=1:e.lineIndent===n?t=0:e.lineIndent<n&&(t=-1)):u=!1;if(u&&(u=p||r),(t===1||Q===i)&&(V===i||Ne===i?b=n:b=n+1,v=e.position-e.lineStart,t===1?u&&(Ae(e,v)||Ai(e,v,b))||vi(e,b)?m=!0:(l&&yi(e,b)||xi(e,b)||gi(e,b)?m=!0:Ci(e)?(m=!0,(e.tag!==null||e.anchor!==null)&&a(e,"alias node should not have any properties")):mi(e,b,V===i)&&(m=!0,e.tag===null&&(e.tag="?")),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):t===0&&(m=u&&Ae(e,v))),e.tag===null)e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);else if(e.tag==="?"){for(e.result!==null&&e.kind!=="scalar"&&a(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),f=0,A=e.implicitTypes.length;f<A;f+=1)if(g=e.implicitTypes[f],g.resolve(e.result)){e.result=g.construct(e.result),e.tag=g.tag,e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);break}}else if(e.tag!=="!"){if(D.call(e.typeMap[e.kind||"fallback"],e.tag))g=e.typeMap[e.kind||"fallback"][e.tag];else for(g=null,s=e.typeMap.multi[e.kind||"fallback"],f=0,A=s.length;f<A;f+=1)if(e.tag.slice(0,s[f].tag.length)===s[f].tag){g=s[f];break}g||a(e,"unknown tag !<"+e.tag+">"),e.result!==null&&g.kind!==e.kind&&a(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+g.kind+'", not "'+e.kind+'"'),g.resolve(e.result,e.tag)?(e.result=g.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):a(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||m}function ki(e){var n=e.position,i,o,r,c=!1,l;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(l=e.input.charCodeAt(e.position))!==0&&(w(e,!0,-1),l=e.input.charCodeAt(e.position),!(e.lineIndent>0||l!==37));){for(c=!0,l=e.input.charCodeAt(++e.position),i=e.position;l!==0&&!N(l);)l=e.input.charCodeAt(++e.position);for(o=e.input.slice(i,e.position),r=[],o.length<1&&a(e,"directive name must not be less than one character in length");l!==0;){for(;B(l);)l=e.input.charCodeAt(++e.position);if(l===35){do l=e.input.charCodeAt(++e.position);while(l!==0&&!T(l));break}if(T(l))break;for(i=e.position;l!==0&&!N(l);)l=e.input.charCodeAt(++e.position);r.push(e.input.slice(i,e.position))}l!==0&&ue(e),D.call(ve,o)?ve[o](e,o,r):J(e,'unknown document directive "'+o+'"')}if(w(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,w(e,!0,-1)):c&&a(e,"directives end mark is expected"),U(e,e.lineIndent-1,Q,!1,!0),w(e,!0,-1),e.checkLineBreaks&&ti.test(e.input.slice(n,e.position))&&J(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&ee(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,w(e,!0,-1));return}if(e.position<e.length-1)a(e,"end of the stream or a document separator is expected");else return}function _i(e,n){e=String(e),n=n||{},e.length!==0&&(e.charCodeAt(e.length-1)!==10&&e.charCodeAt(e.length-1)!==13&&(e+=`
|
|
22
|
+
`),e.charCodeAt(0)===65279&&(e=e.slice(1)));var i=new di(e,n),o=e.indexOf("\0");for(o!==-1&&(i.position=o,a(i,"null byte is not allowed in input")),i.input+="\0";i.input.charCodeAt(i.position)===32;)i.lineIndent+=1,i.position+=1;for(;i.position<i.length-1;)ki(i);return i.documents}function Si(e,n){var i=_i(e,n);if(i.length!==0){if(i.length===1)return i[0];throw new F("expected a single document in the stream, but found more")}}var Ni=Si,Ei={load:Ni},Ii=Ei.load;function be(e){var v;const n=e.pages||[],i=e.relations||[];if(n.length===0)return{nodes:[],edges:[]};const o=new Map,r=new Map;for(const h of n)o.set(h.id,[]),r.set(h.id,0);for(const h of i)(v=o.get(h.from))==null||v.push(h.to),r.set(h.to,(r.get(h.to)||0)+1);const c=new Map,l=[];for(const h of n)(r.get(h.id)||0)===0&&(l.push(h.id),c.set(h.id,0));let u=0;for(;l.length>0;){const h=l.shift(),d=c.get(h)||0;for(const O of o.get(h)||[]){const M=d+1;M>(c.get(O)||0)&&(c.set(O,M),M>u&&(u=M));const L=(r.get(O)||1)-1;r.set(O,L),L<=0&&l.push(O)}}for(const h of n)c.has(h.id)||c.set(h.id,u+1);const t=new Map;for(const h of n){const d=c.get(h.id)||0;t.has(d)||t.set(d,[]),t.get(d).push(h.id)}const p=160,m=50,f=60,A=80,s=[],g=new Map(n.map(h=>[h.id,h]));for(const[h,d]of t){const M=-(d.length*p+(d.length-1)*f)/2;d.forEach((L,K)=>{const Y=g.get(L);s.push({id:L,title:(Y==null?void 0:Y.title)||L,x:M+K*(p+f)+p/2,y:h*(m+A),layer:h})})}const b=i.map(h=>({from:h.from,to:h.to,label:h.label}));return{nodes:s,edges:b}}const we=["#3b82f6","#8b5cf6","#ec4899","#f59e0b","#10b981","#06b6d4","#f97316","#6366f1"];function ji({folderPath:e}){const[n,i]=C.useState(null),[o,r]=C.useState(!0),[c,l]=C.useState(null),[u,t]=C.useState(1),[p,m]=C.useState({x:0,y:0}),[f,A]=C.useState(!1),[s,g]=C.useState({x:0,y:0}),b=C.useRef(null),v=C.useRef(null),h=`${e}/.notebook/graph.yaml`,d=C.useCallback(async()=>{r(!0),l(null);try{const x=await De(h);if(!x.content){l("graph.yaml is empty"),i(null);return}const I=Ii(x.content);i(I),t(1),m({x:0,y:0})}catch{l("Cannot read .notebook/graph.yaml"),i(null)}finally{r(!1)}},[h]);C.useEffect(()=>{d()},[d]);const O=C.useCallback(x=>{x.preventDefault();const I=x.deltaY>0?-.1:.1;t(S=>Math.max(.2,Math.min(3,S+I)))},[]),M=C.useCallback(x=>{x.button===0&&(A(!0),g({x:x.clientX-p.x,y:x.clientY-p.y}))},[p]),L=C.useCallback(x=>{f&&m({x:x.clientX-s.x,y:x.clientY-s.y})},[f,s]),K=C.useCallback(()=>{A(!1)},[]),Y=C.useCallback(()=>{if(!n||!v.current)return;const{nodes:x}=be(n);if(x.length===0)return;const I=Math.min(...x.map(P=>P.x))-100,S=Math.max(...x.map(P=>P.x))+100,E=Math.min(...x.map(P=>P.y))-40,G=Math.max(...x.map(P=>P.y))+60,Z=S-I,H=G-E,pe=v.current.clientWidth,se=v.current.clientHeight,ne=Math.min(pe/Z,se/H,1.5)*.9;t(ne),m({x:pe/2-(I+S)/2*ne,y:se/2-(E+G)/2*ne})},[n]),{nodes:X,edges:fe}=C.useMemo(()=>n?be(n):{nodes:[],edges:[]},[n]),ae=C.useMemo(()=>new Map(X.map(x=>[x.id,x])),[X]);return C.useEffect(()=>{n&&!o&&setTimeout(Y,50)},[n,o,Y]),o?y.jsx("div",{className:"flex items-center justify-center h-full text-muted-foreground",children:y.jsx(Ye,{className:"h-5 w-5 animate-spin"})}):c||!n?y.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-2 text-muted-foreground text-sm px-4 text-center",children:[y.jsx("p",{children:c||"No graph data"}),y.jsxs(q,{variant:"ghost",size:"sm",onClick:()=>void d(),children:[y.jsx(he,{className:"h-3 w-3 mr-1"})," Retry"]})]}):y.jsxs("div",{className:"flex flex-col h-full",children:[y.jsxs("div",{className:"flex items-center gap-1 px-2 py-1 border-b shrink-0",children:[y.jsxs("span",{className:"text-xs text-muted-foreground mr-auto",children:[X.length," pages, ",fe.length," relations"]}),y.jsx(q,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>t(x=>Math.min(3,x+.2)),children:y.jsx(Pe,{className:"h-3 w-3"})}),y.jsx(q,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>t(x=>Math.max(.2,x-.2)),children:y.jsx(Be,{className:"h-3 w-3"})}),y.jsx(q,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:Y,children:y.jsx(Re,{className:"h-3 w-3"})}),y.jsx(q,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>void d(),children:y.jsx(he,{className:"h-3 w-3"})})]}),y.jsx("div",{ref:v,className:"flex-1 overflow-hidden cursor-grab active:cursor-grabbing bg-muted/30",onWheel:O,onMouseDown:M,onMouseMove:L,onMouseUp:K,onMouseLeave:K,children:y.jsxs("svg",{ref:b,width:"100%",height:"100%",style:{userSelect:"none"},children:[y.jsx("defs",{children:y.jsx("marker",{id:"arrowhead",viewBox:"0 0 10 7",refX:"10",refY:"3.5",markerWidth:"8",markerHeight:"6",orient:"auto",children:y.jsx("polygon",{points:"0 0, 10 3.5, 0 7",className:"fill-muted-foreground/60"})})}),y.jsxs("g",{transform:`translate(${p.x}, ${p.y}) scale(${u})`,children:[fe.map((x,I)=>{const S=ae.get(x.from),E=ae.get(x.to);if(!S||!E)return null;const G=S.y+20,Z=E.y-20,H=(G+Z)/2;return y.jsxs("g",{children:[y.jsx("path",{d:`M ${S.x} ${G} C ${S.x} ${H}, ${E.x} ${H}, ${E.x} ${Z}`,fill:"none",className:"stroke-muted-foreground/40",strokeWidth:1.5,markerEnd:"url(#arrowhead)"}),x.label&&y.jsx("text",{x:(S.x+E.x)/2,y:H-4,textAnchor:"middle",className:"fill-muted-foreground/60",fontSize:9,children:x.label})]},`edge-${I}`)}),X.map(x=>{const I=we[x.layer%we.length],S=140,E=36;return y.jsxs("g",{transform:`translate(${x.x-S/2}, ${x.y-E/2})`,children:[y.jsx("rect",{width:S,height:E,rx:8,fill:I,fillOpacity:.15,stroke:I,strokeWidth:1.5}),y.jsx("text",{x:S/2,y:E/2+1,textAnchor:"middle",dominantBaseline:"middle",className:"fill-foreground",fontSize:11,fontWeight:500,children:x.title.length>14?x.title.slice(0,13)+"…":x.title})]},x.id)})]})]})})]})}export{ji as GraphPreview};
|