@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.
Files changed (54) hide show
  1. package/README.md +5 -1
  2. package/backend/dist/chat-process-manager.d.ts +43 -0
  3. package/backend/dist/chat-process-manager.d.ts.map +1 -0
  4. package/backend/dist/chat-process-manager.js +240 -0
  5. package/backend/dist/chat-process-manager.js.map +1 -0
  6. package/backend/dist/config.d.ts +2 -1
  7. package/backend/dist/config.d.ts.map +1 -1
  8. package/backend/dist/config.js +1 -0
  9. package/backend/dist/config.js.map +1 -1
  10. package/backend/dist/hooks-manager.d.ts +20 -0
  11. package/backend/dist/hooks-manager.d.ts.map +1 -0
  12. package/backend/dist/hooks-manager.js +139 -0
  13. package/backend/dist/hooks-manager.js.map +1 -0
  14. package/backend/dist/index.d.ts.map +1 -1
  15. package/backend/dist/index.js +216 -6
  16. package/backend/dist/index.js.map +1 -1
  17. package/backend/dist/routes/hooks.d.ts +14 -0
  18. package/backend/dist/routes/hooks.d.ts.map +1 -0
  19. package/backend/dist/routes/hooks.js +62 -0
  20. package/backend/dist/routes/hooks.js.map +1 -0
  21. package/backend/dist/routes/projects.d.ts.map +1 -1
  22. package/backend/dist/routes/projects.js +46 -0
  23. package/backend/dist/routes/projects.js.map +1 -1
  24. package/backend/dist/routes/update.d.ts.map +1 -1
  25. package/backend/dist/routes/update.js +22 -13
  26. package/backend/dist/routes/update.js.map +1 -1
  27. package/backend/dist/session-manager.d.ts +12 -2
  28. package/backend/dist/session-manager.d.ts.map +1 -1
  29. package/backend/dist/session-manager.js +45 -15
  30. package/backend/dist/session-manager.js.map +1 -1
  31. package/backend/dist/terminal-manager.d.ts +5 -1
  32. package/backend/dist/terminal-manager.d.ts.map +1 -1
  33. package/backend/dist/terminal-manager.js +13 -2
  34. package/backend/dist/terminal-manager.js.map +1 -1
  35. package/backend/dist/types.d.ts +2 -0
  36. package/backend/dist/types.d.ts.map +1 -1
  37. package/frontend/dist/assets/ChatView-CmGXAs2a.js +11 -0
  38. package/frontend/dist/assets/GraphPreview-0UgP3AnJ.js +22 -0
  39. package/frontend/dist/assets/OfficePreview-DhY6Py9Y.js +13 -0
  40. package/frontend/dist/assets/ProjectPage-9CEnUXvW.css +32 -0
  41. package/frontend/dist/assets/ProjectPage-Ckxkh4Nr.js +169 -0
  42. package/frontend/dist/assets/SettingsPage-Dmb7V9a0.js +36 -0
  43. package/frontend/dist/assets/SkillHubPage-C5zcxERj.js +11 -0
  44. package/frontend/dist/assets/chevron-down-BEvQLdWD.js +6 -0
  45. package/frontend/dist/assets/index-C9_Mp1hE.js +275 -0
  46. package/frontend/dist/assets/{index-lRhMzYm_.js → index-DEta9t2M.js} +1 -1
  47. package/frontend/dist/assets/index-DjgiG4hc.css +1 -0
  48. package/frontend/dist/assets/{jszip.min-JFbhTBvU.js → jszip.min-s-54SERU.js} +1 -1
  49. package/frontend/dist/assets/select-Cfjj__BG.js +11 -0
  50. package/frontend/dist/assets/user-_adqQY3y.js +11 -0
  51. package/frontend/dist/index.html +2 -2
  52. package/package.json +1 -1
  53. package/frontend/dist/assets/index-BTxKTqXV.js +0 -554
  54. 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
- // 1. Send the memory-save command
52
- terminal_manager_1.terminalManager.writeRaw(project.id, MEMORY_SAVE_COMMAND);
53
- status.status = 'waiting_idle';
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 = 'Timed out waiting for idle will resume after update';
56
+ status.message = 'Chat modestopped directly';
59
57
  }
60
58
  else {
61
- status.status = 'ready';
62
- status.message = 'Memory saved — will resume after update';
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;AAEtD,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,MAAM,mBAAmB,GACvB,wCAAwC,CAAC;AAE3C,wCAAwC;AACxC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,4BAA4B;AASxD;;;GAGG;AACH,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,IAAiB,EAAE,GAAa,EAAQ,EAAE;IACtE,MAAM,QAAQ,GAAG,IAAA,oBAAW,GAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACpC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACzC,OAAO,kCAAe,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC;QACP,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;KAC7E,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAiB,EAAE,GAAa,EAAiB,EAAE;IAChF,MAAM,QAAQ,GAAG,IAAA,oBAAW,GAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,kCAAe,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CACnE,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAA0B,EAAE,CAAC;IAE1C,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAwB;YAClC,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,cAAc;SACvB,CAAC;QAEF,IAAI,CAAC;YACH,kCAAkC;YAClC,kCAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC;YAE/B,oDAAoD;YACpD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;YAC3E,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;gBACxB,MAAM,CAAC,OAAO,GAAG,uDAAuD,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;gBACxB,MAAM,CAAC,OAAO,GAAG,yCAAyC,CAAC;YAC7D,CAAC;YAED,oEAAoE;YACpE,8DAA8D;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;YACxB,MAAM,CAAC,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACxE,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,SAAS,WAAW,CAAC,SAAiB,EAAE,MAAc,EAAE,SAAiB;IACvE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAExC,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,OAAO;YACT,CAAC;YAED,IAAI,CAAC,kCAAe,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5C,0BAA0B;gBAC1B,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAED,MAAM,YAAY,GAAG,kCAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAClE,IAAI,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,IAAI,MAAM,EAAE,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAED,UAAU,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,gEAAgE;QAChE,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,kBAAe,MAAM,CAAC"}
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
- private poll;
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;AAUH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAqBD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAID,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,MAAM,CAAC;AAE7E,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAgED,cAAM,cAAc;IAClB,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,aAAa,CAAoD;IACzE,OAAO,CAAC,cAAc,CAAqC;IAE3D,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAI3D,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAQtD,+FAA+F;IAC/F,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE;IAkB9C,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI;IAK3E,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI;IAO7E,+CAA+C;IAC/C,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IA8BzD,OAAO,CAAC,gBAAgB;IAkBxB,kFAAkF;IAClF,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI9C,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,IAAI;IAeZ,4EAA4E;IAC5E,OAAO,CAAC,SAAS;IAiBjB,kEAAkE;IAClE,OAAO,CAAC,YAAY;IAgEpB,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,cAAc;IAetB,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB;IAOzB,0CAA0C;IAC1C,OAAO,CAAC,mBAAmB;IAqB3B,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,EAAE;IAyB7G,mDAAmD;IACnD,OAAO,CAAC,gBAAgB;IAIxB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;CAmBjE;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
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
- poll(projectId, folderPath) {
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 we haven't found the JSONL yet, look for it
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
- return; // not yet created
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
- this.semanticStatus.set(projectId, {
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":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,mCAAsC;AACtC,+BAAoC;AACpC,qCAAkE;AAyDlE,gFAAgF;AAEhF,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAQ,EAAE,UAAU,CAAC,CAAC;AAE5D,qEAAqE;AACrE,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,6DAA6D;IAC7D,OAAO,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,kDAAkD;AAClD,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,OAAO,IAAA,yBAAgB,EAAC,UAAU,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB,EAAE,SAAiB;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;AACxE,CAAC;AAED,kDAAkD;AAClD,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB,EAAE,SAAiB;IAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;AACtE,CAAC;AAED,iFAAiF;AAEjF,SAAS,WAAW,CAAC,OAA4C;IAC/D,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IACvD,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAK,CAAC,IAAI,EAAE,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe;IAC5C,4CAA4C;IAC5C,OAAO,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AAYD,iFAAiF;AAEjF,MAAM,cAAe,SAAQ,qBAAY;IAKvC;QACE,KAAK,EAAE,CAAC;QALF,aAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;QACzC,kBAAa,GAAG,IAAI,GAAG,EAAyC,CAAC;QACjE,mBAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;IAI3D,CAAC;IAED,iBAAiB,CAAC,SAAiB;QACjC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IACpD,CAAC;IAED,oBAAoB;QAClB,MAAM,MAAM,GAAmC,EAAE,CAAC;QAClD,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QACtB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,+FAA+F;IAC/F,cAAc,CAAC,SAAiB;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,SAAS;YAAE,OAAO,EAAE,CAAC;QAEjC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAgB,EAAE,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,KAAK;oBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,SAAiB,EAAE,EAA4B;QAClE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,sBAAsB,CAAC,SAAiB,EAAE,EAA4B;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;YAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,+CAA+C;IAC/C,YAAY,CAAC,SAAiB,EAAE,UAAkB;QAChD,4BAA4B;QAC5B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAE5B,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAA,SAAM,GAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,8CAA8C;QAC9C,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,OAAO,GAAY,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAClH,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAEvG,MAAM,KAAK,GAAe;YACxB,SAAS;YACT,UAAU;YACV,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,CAAC;YACb,SAAS;SACV,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEpC,sCAAsC;QACtC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,oCAAoC,SAAS,gBAAgB,SAAS,EAAE,CAAC,CAAC;IACxF,CAAC;IAEO,gBAAgB,CAAC,UAAkB,EAAE,SAAiB,EAAE,IAAI,GAAG,EAAE;QACvE,MAAM,IAAI,GAAG,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAClC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;qBAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;qBAClC,IAAI,EAAE,CAAC,CAAC,kEAAkE;gBAC7E,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI;oBAAE,SAAS;gBACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;gBACrD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACzB,IAAI,CAAC;wBAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,2BAA2B,QAAQ,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC,CAAC;YACnF,CAAC;YAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,kFAAkF;IAClF,qBAAqB,CAAC,SAAiB;QACrC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAEO,WAAW,CAAC,SAAiB;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED;;0DAEsD;IACtD,iBAAiB,CAAC,SAAiB,EAAE,QAAgB;QACnD,MAAM,SAAS,GAAmB;YAChC,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,QAAQ,IAAI,SAAS;YAC7B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;+DAC2D;IAC3D,WAAW,CAAC,SAAiB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,2FAA2F;QAC3F,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACpE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACrB,iDAAiD;gBACjD,UAAU,CAAC,GAAG,EAAE;oBACd,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACvC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;wBACtB,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;wBACxD,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;4BAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;4BAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;wBAAC,CAAC;oBACzE,CAAC;gBACH,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,OAAO;YACT,CAAC;YACD,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,wFAAwF;IACxF,mBAAmB,CAAC,SAAiB;QACnC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QAChD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,4EAA4E;IACpE,SAAS,CAAC,UAAkB,EAAE,SAAiB;QACrD,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;iBAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;iBACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;iBAClE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW;iBAC5D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAErC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,kEAAkE;IAC1D,YAAY,CAAC,SAAiB,EAAE,KAAiB;QACvD,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO;QAE7B,IAAI,EAAE,GAAkB,IAAI,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU;gBAAE,OAAO,CAAC,cAAc;YAEzD,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;YAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAClD,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;YAE7B,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACxE,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,MAAM,OAAO,GAAqB,EAAE,CAAC;YACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,GAAG;oBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAChE,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YAED,kDAAkD;YAClD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,KAAK,EAAE,CAAC;oBACV,mEAAmE;oBACnE,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACxD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,KAAK,UAAU;4BAC1C,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,oBAAoB;4BACvD,CAAC,CAAC,SAAS,CAAC;wBACd,MAAM,SAAS,GAAmB;4BAChC,KAAK,EAAE,SAAS,CAAC,IAAI;4BACrB,MAAM;4BACN,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;yBACtB,CAAC;wBACF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;wBAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC1D,CAAC;oBACD,yBAAyB;oBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACpD,IAAI,SAAS,EAAE,CAAC;wBACd,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;4BAC3B,IAAI,CAAC;gCAAC,EAAE,CAAC,KAAK,CAAC,CAAC;4BAAC,CAAC;4BAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;wBACnC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,oCAAoC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;QACpE,CAAC;gBAAS,CAAC;YACT,IAAI,EAAE,KAAK,IAAI;gBAAE,IAAI,CAAC;oBAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,IAAY;QAC5B,IAAI,MAAoB,CAAC;QACzB,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAEzE,eAAe;QACf,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACtD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAClG,CAAC;QAED,oEAAoE;QACpE,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YACxE,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC1C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACvG,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,eAAe,CAAC,IAAY;QAClC,IAAI,MAAoB,CAAC;QACzB,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QACzE,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAExD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACtD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACpF,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YACxE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7G,CAAC;YACD,MAAM,MAAM,GAAoB,EAAE,CAAC;YACnC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;oBACxC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxD,CAAC;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACjC,MAAM,IAAI,GAAI,CAAS,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC;oBAC3C,IAAI,IAAI,EAAE,IAAI,EAAE;wBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5E,CAAC;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACjC,MAAM,IAAI,GAAI,CAAS,CAAC,IAAI,IAAI,MAAM,CAAC;oBACvC,MAAM,KAAK,GAAI,CAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAE,CAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;gBAClE,CAAC;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACpC,MAAM,IAAI,GAAI,CAAS,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC;oBAC1C,IAAI,IAAI,EAAE,IAAI,EAAE;wBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/I,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,cAAc,CAAC,UAAkB,EAAE,SAAiB,EAAE,IAAsB;QAClF,MAAM,IAAI,GAAG,kBAAkB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,OAAO,GAAY,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,GAAG,QAAQ,OAAO,CAAC,GAAG,EAAE,CAAC;YAC7C,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACrE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,yDAAyD,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,8EAA8E;IAE9E,+EAA+E;IACvE,iBAAiB,CAAC,SAAiB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC,UAAU,CAAC;QACvC,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;QACtC,OAAO,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,0CAA0C;IAClC,mBAAmB,CAAC,GAAW,EAAE,SAA6B;QACpE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;iBACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,IAAI,CAAC;oBACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAY,CAAC;oBAC7E,OAAO;wBACL,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,SAAS,EAAE,CAAC,CAAC,SAAS;wBACtB,SAAS,EAAE,CAAC,CAAC,SAAS;wBACtB,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM;wBAC/B,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,SAAS;qBAC9B,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,IAAI,CAAC;gBAAC,CAAC;YAC1B,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAAiF,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9G,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAErD,+EAA+E;QAC/E,MAAM,OAAO,GAAiF,EAAE,CAAC;QACjG,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;gBACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;YAClF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,mDAAmD;IAC3C,gBAAgB,CAAC,SAAiB;QACxC,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,UAAU,CAAC,SAAiB,EAAE,SAAiB;QAC7C,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAErD,oBAAoB;QACpB,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,kBAAkB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACvD,IAAI,CAAC;gBACH,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAY,CAAC;gBAC/D,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAChC,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAY,CAAC;QAClG,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;IAC1B,CAAC;CACF;AAEY,QAAA,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC"}
@@ -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,eAAe;IACnB,OAAO,CAAC,SAAS,CAAuC;IACxD,qGAAqG;IACrG,OAAO,CAAC,aAAa,CAAoD;IAEzE,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;IAuDrB,OAAO,CAAC,UAAU;CAwBnB;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
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
- instance.lastActivityAt = Date.now();
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":"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"}
1
+ {"version":3,"file":"terminal-manager.js","sourceRoot":"","sources":["../src/terminal-manager.ts"],"names":[],"mappings":"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"}
@@ -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;AAE/D,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;CACzB;AAGD,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB"}
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};