@glwhappen/web-code 1.32.0 → 1.32.1

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 (51) hide show
  1. package/dist/assets/{index-u6XmIqLb.js → index-CfT-2Nkf.js} +2 -2
  2. package/dist/index.html +1 -1
  3. package/dist-server/server/cursor-cli.js +33 -15
  4. package/dist-server/server/cursor-cli.js.map +1 -1
  5. package/dist-server/server/gemini-cli.js +48 -29
  6. package/dist-server/server/gemini-cli.js.map +1 -1
  7. package/dist-server/server/index.js +20 -17
  8. package/dist-server/server/index.js.map +1 -1
  9. package/dist-server/server/modules/database/repositories/push-subscriptions.js +11 -5
  10. package/dist-server/server/modules/database/repositories/push-subscriptions.js.map +1 -1
  11. package/dist-server/server/modules/projects/projects.routes.js +14 -0
  12. package/dist-server/server/modules/projects/projects.routes.js.map +1 -1
  13. package/dist-server/server/modules/projects/services/project-authorization.service.js +54 -0
  14. package/dist-server/server/modules/projects/services/project-authorization.service.js.map +1 -0
  15. package/dist-server/server/modules/projects/services/project-clone.service.js +13 -4
  16. package/dist-server/server/modules/projects/services/project-clone.service.js.map +1 -1
  17. package/dist-server/server/modules/projects/services/project-management.service.js +4 -2
  18. package/dist-server/server/modules/projects/services/project-management.service.js.map +1 -1
  19. package/dist-server/server/modules/projects/tests/project-authorization.service.test.js +51 -0
  20. package/dist-server/server/modules/projects/tests/project-authorization.service.test.js.map +1 -0
  21. package/dist-server/server/modules/projects/tests/project-clone.service.test.js +10 -1
  22. package/dist-server/server/modules/projects/tests/project-clone.service.test.js.map +1 -1
  23. package/dist-server/server/modules/projects/tests/project-management.service.test.js +31 -10
  24. package/dist-server/server/modules/projects/tests/project-management.service.test.js.map +1 -1
  25. package/dist-server/server/modules/websocket/services/chat-websocket.service.js +77 -13
  26. package/dist-server/server/modules/websocket/services/chat-websocket.service.js.map +1 -1
  27. package/dist-server/server/routes/agent.js +35 -7
  28. package/dist-server/server/routes/agent.js.map +1 -1
  29. package/dist-server/server/routes/settings.js +1 -1
  30. package/dist-server/server/routes/settings.js.map +1 -1
  31. package/dist-server/server/services/notification-orchestrator.js +1 -1
  32. package/dist-server/server/services/notification-orchestrator.js.map +1 -1
  33. package/dist-server/server/shared/utils.js +60 -9
  34. package/dist-server/server/shared/utils.js.map +1 -1
  35. package/package.json +1 -1
  36. package/server/cursor-cli.js +33 -15
  37. package/server/gemini-cli.js +48 -28
  38. package/server/index.js +21 -17
  39. package/server/modules/database/repositories/push-subscriptions.ts +14 -5
  40. package/server/modules/projects/projects.routes.ts +16 -0
  41. package/server/modules/projects/services/project-authorization.service.ts +70 -0
  42. package/server/modules/projects/services/project-clone.service.ts +18 -4
  43. package/server/modules/projects/services/project-management.service.ts +12 -3
  44. package/server/modules/projects/tests/project-authorization.service.test.ts +68 -0
  45. package/server/modules/projects/tests/project-clone.service.test.ts +11 -1
  46. package/server/modules/projects/tests/project-management.service.test.ts +38 -10
  47. package/server/modules/websocket/services/chat-websocket.service.ts +87 -19
  48. package/server/routes/agent.js +34 -7
  49. package/server/routes/settings.js +1 -1
  50. package/server/services/notification-orchestrator.js +1 -1
  51. package/server/shared/utils.ts +70 -9
package/dist/index.html CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
  <!-- Prevent zoom on iOS -->
27
27
  <meta name="format-detection" content="telephone=no" />
28
- <script type="module" crossorigin src="/assets/index-u6XmIqLb.js"></script>
28
+ <script type="module" crossorigin src="/assets/index-CfT-2Nkf.js"></script>
29
29
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-BGZc9oRE.js">
30
30
  <link rel="modulepreload" crossorigin href="/assets/vendor-codemirror-OwyKSvPE.js">
31
31
  <link rel="modulepreload" crossorigin href="/assets/vendor-xterm-CJZjLICi.js">
@@ -6,7 +6,19 @@ import { providerAuthService } from './modules/providers/services/provider-auth.
6
6
  import { createNormalizedMessage } from './shared/utils.js';
7
7
  // Use cross-spawn on Windows for better command execution
8
8
  const spawnFunction = process.platform === 'win32' ? crossSpawn : spawn;
9
- let activeCursorProcesses = new Map(); // Track active processes by session ID
9
+ // Active Cursor sessions keyed by session ID. Each value is
10
+ // `{ process, userId }` so abort/check helpers can refuse to act on a
11
+ // session that does not belong to the calling user — without the userId
12
+ // tag, knowing any session ID was enough to kill another user's run.
13
+ let activeCursorProcesses = new Map();
14
+ function ownerMatches(entry, userId) {
15
+ if (!entry)
16
+ return false;
17
+ if (userId === null || userId === undefined) {
18
+ return entry.userId === null || entry.userId === undefined;
19
+ }
20
+ return entry.userId === userId;
21
+ }
10
22
  const WORKSPACE_TRUST_PATTERNS = [
11
23
  /workspace trust required/i,
12
24
  /do you trust the contents of this directory/i,
@@ -104,7 +116,7 @@ async function spawnCursor(command, options = {}, ws) {
104
116
  stdio: ['pipe', 'pipe', 'pipe'],
105
117
  env: { ...process.env } // Inherit all environment variables
106
118
  });
107
- activeCursorProcesses.set(processKey, cursorProcess);
119
+ activeCursorProcesses.set(processKey, { process: cursorProcess, userId: ws?.userId ?? null });
108
120
  const shouldSuppressForTrustRetry = (text) => {
109
121
  if (hasRetriedWithTrust || args.includes('--trust')) {
110
122
  return false;
@@ -131,7 +143,7 @@ async function spawnCursor(command, options = {}, ws) {
131
143
  // Update process key with captured session ID
132
144
  if (processKey !== capturedSessionId) {
133
145
  activeCursorProcesses.delete(processKey);
134
- activeCursorProcesses.set(capturedSessionId, cursorProcess);
146
+ activeCursorProcesses.set(capturedSessionId, { process: cursorProcess, userId: ws?.userId ?? null });
135
147
  }
136
148
  // Set session ID on writer (for API endpoint compatibility)
137
149
  if (ws.setSessionId && typeof ws.setSessionId === 'function') {
@@ -251,21 +263,27 @@ async function spawnCursor(command, options = {}, ws) {
251
263
  runCursorProcess(baseArgs, 'initial');
252
264
  });
253
265
  }
254
- function abortCursorSession(sessionId) {
255
- const process = activeCursorProcesses.get(sessionId);
256
- if (process) {
257
- console.log(`Aborting Cursor session: ${sessionId}`);
258
- process.kill('SIGTERM');
259
- activeCursorProcesses.delete(sessionId);
260
- return true;
266
+ function abortCursorSession(sessionId, userId) {
267
+ const entry = activeCursorProcesses.get(sessionId);
268
+ if (!ownerMatches(entry, userId)) {
269
+ return false;
261
270
  }
262
- return false;
271
+ console.log(`Aborting Cursor session: ${sessionId}`);
272
+ entry.process.kill('SIGTERM');
273
+ activeCursorProcesses.delete(sessionId);
274
+ return true;
263
275
  }
264
- function isCursorSessionActive(sessionId) {
265
- return activeCursorProcesses.has(sessionId);
276
+ function isCursorSessionActive(sessionId, userId) {
277
+ return ownerMatches(activeCursorProcesses.get(sessionId), userId);
266
278
  }
267
- function getActiveCursorSessions() {
268
- return Array.from(activeCursorProcesses.keys());
279
+ function getActiveCursorSessions(userId) {
280
+ const sessions = [];
281
+ for (const [sessionId, entry] of activeCursorProcesses.entries()) {
282
+ if (ownerMatches(entry, userId)) {
283
+ sessions.push(sessionId);
284
+ }
285
+ }
286
+ return sessions;
269
287
  }
270
288
  export { spawnCursor, abortCursorSession, isCursorSessionActive, getActiveCursorSessions };
271
289
  //# sourceMappingURL=cursor-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-cli.js","sourceRoot":"","sources":["../../server/cursor-cli.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cursor-cli.js","sourceRoot":"","sources":["../../server/cursor-cli.js"],"names":[],"mappings":"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"}
@@ -10,7 +10,19 @@ import { providerAuthService } from './modules/providers/services/provider-auth.
10
10
  import { createNormalizedMessage } from './shared/utils.js';
11
11
  // Use cross-spawn on Windows for correct .cmd resolution (same pattern as cursor-cli.js)
12
12
  const spawnFunction = process.platform === 'win32' ? crossSpawn : spawn;
13
- let activeGeminiProcesses = new Map(); // Track active processes by session ID
13
+ // Active Gemini sessions keyed by session ID. Each value is
14
+ // `{ process, userId }` so abort/check helpers can refuse to act on a
15
+ // session that does not belong to the calling user — without the userId
16
+ // tag, knowing any session ID was enough to kill another user's run.
17
+ let activeGeminiProcesses = new Map();
18
+ function geminiOwnerMatches(entry, userId) {
19
+ if (!entry)
20
+ return false;
21
+ if (userId === null || userId === undefined) {
22
+ return entry.userId === null || entry.userId === undefined;
23
+ }
24
+ return entry.userId === userId;
25
+ }
14
26
  function mapGeminiExitCodeToMessage(exitCode) {
15
27
  switch (exitCode) {
16
28
  case 42:
@@ -275,7 +287,7 @@ async function spawnGemini(command, options = {}, ws) {
275
287
  geminiProcess.tempDir = tempDir;
276
288
  // Store process reference for potential abort
277
289
  const processKey = capturedSessionId || sessionId || Date.now().toString();
278
- activeGeminiProcesses.set(processKey, geminiProcess);
290
+ activeGeminiProcesses.set(processKey, { process: geminiProcess, userId: ws?.userId ?? null });
279
291
  // Store sessionId on the process object for debugging
280
292
  geminiProcess.sessionId = processKey;
281
293
  // Close stdin to signal we're done sending input
@@ -353,7 +365,7 @@ async function spawnGemini(command, options = {}, ws) {
353
365
  }
354
366
  if (processKey !== capturedSessionId) {
355
367
  activeGeminiProcesses.delete(processKey);
356
- activeGeminiProcesses.set(capturedSessionId, geminiProcess);
368
+ activeGeminiProcesses.set(capturedSessionId, { process: geminiProcess, userId: ws?.userId ?? null });
357
369
  }
358
370
  geminiProcess.sessionId = capturedSessionId;
359
371
  if (ws.setSessionId && typeof ws.setSessionId === 'function') {
@@ -498,42 +510,49 @@ async function spawnGemini(command, options = {}, ws) {
498
510
  });
499
511
  });
500
512
  }
501
- function abortGeminiSession(sessionId) {
502
- let geminiProc = activeGeminiProcesses.get(sessionId);
513
+ function abortGeminiSession(sessionId, userId) {
514
+ let entry = activeGeminiProcesses.get(sessionId);
503
515
  let processKey = sessionId;
504
- if (!geminiProc) {
505
- for (const [key, proc] of activeGeminiProcesses.entries()) {
506
- if (proc.sessionId === sessionId) {
507
- geminiProc = proc;
516
+ if (!entry) {
517
+ for (const [key, candidate] of activeGeminiProcesses.entries()) {
518
+ if (candidate.process?.sessionId === sessionId) {
519
+ entry = candidate;
508
520
  processKey = key;
509
521
  break;
510
522
  }
511
523
  }
512
524
  }
513
- if (geminiProc) {
514
- try {
515
- geminiProc.kill('SIGTERM');
516
- setTimeout(() => {
517
- if (activeGeminiProcesses.has(processKey)) {
518
- try {
519
- geminiProc.kill('SIGKILL');
520
- }
521
- catch (e) { }
525
+ if (!geminiOwnerMatches(entry, userId)) {
526
+ return false;
527
+ }
528
+ const geminiProc = entry.process;
529
+ try {
530
+ geminiProc.kill('SIGTERM');
531
+ setTimeout(() => {
532
+ if (activeGeminiProcesses.has(processKey)) {
533
+ try {
534
+ geminiProc.kill('SIGKILL');
522
535
  }
523
- }, 2000); // Wait 2 seconds before force kill
524
- return true;
525
- }
526
- catch (error) {
527
- return false;
528
- }
536
+ catch (e) { }
537
+ }
538
+ }, 2000); // Wait 2 seconds before force kill
539
+ return true;
540
+ }
541
+ catch (error) {
542
+ return false;
529
543
  }
530
- return false;
531
544
  }
532
- function isGeminiSessionActive(sessionId) {
533
- return activeGeminiProcesses.has(sessionId);
545
+ function isGeminiSessionActive(sessionId, userId) {
546
+ return geminiOwnerMatches(activeGeminiProcesses.get(sessionId), userId);
534
547
  }
535
- function getActiveGeminiSessions() {
536
- return Array.from(activeGeminiProcesses.keys());
548
+ function getActiveGeminiSessions(userId) {
549
+ const sessions = [];
550
+ for (const [sessionId, entry] of activeGeminiProcesses.entries()) {
551
+ if (geminiOwnerMatches(entry, userId)) {
552
+ sessions.push(sessionId);
553
+ }
554
+ }
555
+ return sessions;
537
556
  }
538
557
  export { spawnGemini, abortGeminiSession, isGeminiSessionActive, getActiveGeminiSessions };
539
558
  //# sourceMappingURL=gemini-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-cli.js","sourceRoot":"","sources":["../../server/gemini-cli.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,qBAAqB,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,yFAAyF;AACzF,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;AAExE,IAAI,qBAAqB,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,uCAAuC;AAE9E,SAAS,0BAA0B,CAAC,QAAQ;IACxC,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,EAAE;YACH,OAAO,mDAAmD,CAAC;QAC/D,KAAK,EAAE;YACH,OAAO,8EAA8E,CAAC;QAC1F,KAAK,EAAE;YACH,OAAO,sGAAsG,CAAC;QAClH,KAAK,EAAE;YACH,OAAO,oFAAoF,CAAC;QAChG;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC;AAED,MAAM,oBAAoB,GAAG;IACzB,gBAAgB;IAChB,gBAAgB;IAChB,sBAAsB;IACtB,yBAAyB;IACzB,uBAAuB;IACvB,gCAAgC;CACnC,CAAC;AAEF,SAAS,mBAAmB,CAAC,OAAO;IAChC,MAAM,MAAM,GAAG,EAAE,CAAC;IAElB,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,SAAS;QACb,CAAC;QAED,MAAM,YAAY,GAAG,SAAS,CAAC;QAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACrG,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEnD,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;YACtB,SAAS;QACb,CAAC;QAED,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,SAAS;QACb,CAAC;QAED,IAAI,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrE,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEvE,IAAI,eAAe,IAAI,eAAe,EAAE,CAAC;YACrC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,kEAAkE;YAClE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,sBAAsB;IACjC,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACjF,MAAM,aAAa,GAAG;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;KACnC,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACnD,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACL,wCAAwC;QAC5C,CAAC;IACL,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,KAAK,UAAU,qBAAqB;IAChC,MAAM,UAAU,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,IAAI,UAAU,CAAC,cAAc,IAAI,UAAU,CAAC,cAAc,IAAI,UAAU,CAAC,8BAA8B,EAAE,CAAC;QACtG,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,kFAAkF;IAClF,iFAAiF;IACjF,wEAAwE;IACxE,MAAM,OAAO,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC/C,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;IAChD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACvG,MAAM,MAAM,GAAG,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC;IAClC,IAAI,iBAAiB,GAAG,SAAS,CAAC,CAAC,0CAA0C;IAC7E,IAAI,kBAAkB,GAAG,KAAK,CAAC,CAAC,oDAAoD;IACpF,IAAI,eAAe,GAAG,EAAE,CAAC,CAAC,sDAAsD;IAEhF,uDAAuD;IACvD,MAAM,QAAQ,GAAG,aAAa,IAAI;QAC9B,YAAY,EAAE,EAAE;QAChB,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,KAAK;KACzB,CAAC;IAEF,iEAAiE;IACjE,MAAM,IAAI,GAAG,EAAE,CAAC;IAEhB,oDAAoD;IACpD,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,4CAA4C;IAC5C,IAAI,SAAS,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtF,IAAI,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAED,0FAA0F;IAC1F,0DAA0D;IAC1D,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5F,MAAM,UAAU,GAAG,SAAS,CAAC;IAE7B,8EAA8E;IAC9E,MAAM,cAAc,GAAG,EAAE,CAAC;IAC1B,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACD,yEAAyE;YACzE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzE,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE7C,iCAAiC;YACjC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5C,oCAAoC;gBACpC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;oBACX,SAAS;gBACb,CAAC;gBAED,MAAM,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC;gBACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;gBAClD,MAAM,QAAQ,GAAG,SAAS,KAAK,IAAI,SAAS,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAE9C,4BAA4B;gBAC5B,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAChE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC;YAED,qEAAqE;YACrE,2DAA2D;YAC3D,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBACzD,MAAM,SAAS,GAAG,sBAAsB,cAAc,CAAC,MAAM,iDAAiD,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1K,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,CAAC;gBAE5C,6BAA6B;gBAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC7C,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;oBAC1D,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC;gBAC5C,CAAC;qBAAM,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC5B,iDAAiD;oBACjD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;gBAC9D,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IAED,6BAA6B;IAC7B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;IAED,iFAAiF;IACjF,wEAAwE;IACxE,iEAAiE;IACjE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE1B,yDAAyD;IACzD,IAAI,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;QACjE,IAAI,aAAa,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAClC,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YACpE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAEjD,2BAA2B;YAC3B,IAAI,YAAY,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7E,aAAa,GAAG,IAAI,CAAC;YACzB,CAAC;YAED,qCAAqC;YACrC,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;gBAChD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;gBACzC,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;gBACtE,IAAI,aAAa,IAAI,aAAa,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChG,aAAa,GAAG,IAAI,CAAC;gBACzB,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,iDAAiD;QACrD,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,sBAAsB;IAC1B,CAAC;IAED,oDAAoD;IACpD,IAAI,UAAU,GAAG,OAAO,CAAC,KAAK,IAAI,kBAAkB,CAAC;IACrD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAE5C,0CAA0C;IAC1C,IAAI,QAAQ,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;QACnF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;SAAM,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,2EAA2E;IAC3E,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,QAAQ,CAAC;IACvD,IAAI,QAAQ,GAAG,UAAU,CAAC;IAC1B,IAAI,SAAS,GAAG,IAAI,CAAC;IAErB,2EAA2E;IAC3E,+DAA+D;IAC/D,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;QAC5B,QAAQ,GAAG,IAAI,CAAC;QAChB,8EAA8E;QAC9E,SAAS,GAAG,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAE/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE;YACrD,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,GAAG,EAAE,QAAQ;SAChB,CAAC,CAAC;QACH,IAAI,wBAAwB,GAAG,KAAK,CAAC;QACrC,IAAI,qBAAqB,GAAG,IAAI,CAAC;QAEjC,MAAM,mBAAmB,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;YAC/D,IAAI,wBAAwB,EAAE,CAAC;gBAC3B,OAAO;YACX,CAAC;YAED,wBAAwB,GAAG,IAAI,CAAC;YAEhC,MAAM,cAAc,GAAG,iBAAiB,IAAI,SAAS,IAAI,UAAU,CAAC;YACpE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACvB,gBAAgB,CAAC;oBACb,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,IAAI;oBAC1B,QAAQ,EAAE,QAAQ;oBAClB,SAAS,EAAE,cAAc;oBACzB,WAAW,EAAE,cAAc;oBAC3B,UAAU,EAAE,WAAW;iBAC1B,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YAED,eAAe,CAAC;gBACZ,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,IAAI;gBAC1B,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,cAAc;gBACzB,WAAW,EAAE,cAAc;gBAC3B,KAAK,EAAE,KAAK,IAAI,qBAAqB,IAAI,+BAA+B,IAAI,EAAE;aACjF,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,qDAAqD;QACrD,aAAa,CAAC,cAAc,GAAG,cAAc,CAAC;QAC9C,aAAa,CAAC,OAAO,GAAG,OAAO,CAAC;QAEhC,8CAA8C;QAC9C,MAAM,UAAU,GAAG,iBAAiB,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC3E,qBAAqB,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAErD,sDAAsD;QACtD,aAAa,CAAC,SAAS,GAAG,UAAU,CAAC;QAErC,iDAAiD;QACjD,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAE1B,sBAAsB;QACtB,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,gCAAgC;QAC1D,IAAI,OAAO,CAAC;QAEZ,MAAM,YAAY,GAAG,GAAG,EAAE;YACtB,IAAI,OAAO;gBAAE,YAAY,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,MAAM,eAAe,GAAG,OAAO,EAAE,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,SAAS,IAAI,UAAU,CAAC,CAAC;gBACnI,qBAAqB,GAAG,iDAAiD,SAAS,GAAG,IAAI,UAAU,CAAC;gBACpG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACpI,IAAI,CAAC;oBACD,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YACnB,CAAC,EAAE,SAAS,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,YAAY,EAAE,CAAC;QAEf,6CAA6C;QAC7C,IAAI,OAAO,IAAI,iBAAiB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClD,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC;QAED,+CAA+C;QAC/C,IAAI,eAAe,CAAC;QACpB,IAAI,EAAE,EAAE,CAAC;YACL,eAAe,GAAG,IAAI,qBAAqB,CAAC,EAAE,EAAE;gBAC5C,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE;oBAC3B,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC5F,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC;oBAChE,CAAC;yBAAM,CAAC;wBACJ,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC1D,CAAC;gBACL,CAAC;gBACD,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjB,eAAe,CAAC,IAAI,CAAC;wBACjB,IAAI,EAAE,UAAU;wBAChB,EAAE,EAAE,KAAK,CAAC,OAAO;wBACjB,IAAI,EAAE,KAAK,CAAC,SAAS;wBACrB,KAAK,EAAE,KAAK,CAAC,UAAU;qBAC1B,CAAC,CAAC;gBACP,CAAC;gBACD,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;oBACpB,IAAI,iBAAiB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;wBACvC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC7B,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;4BACxF,eAAe,GAAG,EAAE,CAAC;wBACzB,CAAC;wBACD,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC;gCAC1D,IAAI,EAAE,aAAa;gCACnB,WAAW,EAAE,KAAK,CAAC,OAAO;gCAC1B,OAAO,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;gCACzD,QAAQ,EAAE,KAAK,CAAC,MAAM,KAAK,OAAO;6BACrC,CAAC,CAAC,CAAC;oBACR,CAAC;gBACL,CAAC;gBACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBACd,MAAM,mBAAmB,GAAG,KAAK,EAAE,UAAU,CAAC;oBAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBACvB,OAAO;oBACX,CAAC;oBAED,yEAAyE;oBACzE,qEAAqE;oBACrE,4EAA4E;oBAC5E,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACrB,iBAAiB,GAAG,mBAAmB,CAAC;wBAExC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;4BAClB,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;4BAC9E,IAAI,OAAO,EAAE,CAAC;gCACV,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;4BAC1E,CAAC;wBACL,CAAC;wBAED,IAAI,UAAU,KAAK,iBAAiB,EAAE,CAAC;4BACnC,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;4BACzC,qBAAqB,CAAC,GAAG,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;wBAChE,CAAC;wBAED,aAAa,CAAC,SAAS,GAAG,iBAAiB,CAAC;wBAE5C,IAAI,EAAE,CAAC,YAAY,IAAI,OAAO,EAAE,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;4BAC3D,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;wBACvC,CAAC;wBAED,IAAI,CAAC,SAAS,IAAI,CAAC,kBAAkB,EAAE,CAAC;4BACpC,kBAAkB,GAAG,IAAI,CAAC;4BAC1B,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACrJ,CAAC;oBACL,CAAC;oBAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;wBAClB,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;wBAClE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;4BAC7B,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC;4BACxC,cAAc,CAAC,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;wBAC1D,CAAC;oBACL,CAAC;gBACL,CAAC;aACJ,CAAC,CAAC;QACP,CAAC;QAED,gBAAgB;QAChB,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,YAAY,EAAE,CAAC,CAAC,qBAAqB;YAErC,IAAI,eAAe,EAAE,CAAC;gBAClB,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACnB,yDAAyD;gBACzD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC5F,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC;gBAClE,CAAC;qBAAM,CAAC;oBACJ,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM,eAAe,GAAG,OAAO,EAAE,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,SAAS,CAAC,CAAC;gBACrH,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACnI,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEjC,0EAA0E;YAC1E,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAC9B,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBACvC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC;gBACxC,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;gBACjD,OAAO;YACX,CAAC;YAED,MAAM,eAAe,GAAG,OAAO,EAAE,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,SAAS,CAAC,CAAC;YACrH,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3H,CAAC,CAAC,CAAC;QAEH,4BAA4B;QAC5B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrC,YAAY,CAAC,OAAO,CAAC,CAAC;YAEtB,uCAAuC;YACvC,IAAI,eAAe,EAAE,CAAC;gBAClB,eAAe,CAAC,UAAU,EAAE,CAAC;gBAC7B,eAAe,CAAC,OAAO,EAAE,CAAC;YAC9B,CAAC;YAED,6BAA6B;YAC7B,MAAM,cAAc,GAAG,iBAAiB,IAAI,SAAS,IAAI,UAAU,CAAC;YACpE,qBAAqB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAE7C,oDAAoD;YACpD,IAAI,cAAc,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClE,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;YACpF,CAAC;YAED,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAE7J,wCAAwC;YACxC,IAAI,aAAa,CAAC,cAAc,IAAI,aAAa,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1E,KAAK,MAAM,SAAS,IAAI,aAAa,CAAC,cAAc,EAAE,CAAC;oBACnD,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBACjD,CAAC;gBACD,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;oBACxB,MAAM,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC3F,CAAC;YACL,CAAC;YAED,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACb,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9B,OAAO,EAAE,CAAC;YACd,CAAC;iBAAM,CAAC;gBACJ,MAAM,eAAe,GAAG,OAAO,EAAE,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;gBAEnG,4DAA4D;gBAC5D,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;oBACf,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;oBAC1E,IAAI,CAAC,SAAS,EAAE,CAAC;wBACb,qBAAqB,GAAG,mGAAmG,CAAC;wBAC5H,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBACxI,CAAC;gBACL,CAAC;qBAAM,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;oBACrB,iEAAiE;oBACjE,2EAA2E;oBAC3E,IAAI,eAAe,GAAG,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;wBAC7E,IAAI,CAAC,UAAU,EAAE,aAAa,IAAI,UAAU,EAAE,KAAK,EAAE,CAAC;4BAClD,eAAe,GAAG,aAAa,UAAU,CAAC,KAAK,EAAE,CAAC;wBACtD,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACL,4DAA4D;oBAChE,CAAC;oBAED,qBAAqB;wBACjB,+CAA+C;8BAC7C,6FAA6F;8BAC7F,eAAe,CAAC;oBACtB,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACxI,CAAC;qBAAM,CAAC;oBACJ,MAAM,WAAW,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;oBACrD,IAAI,WAAW,EAAE,CAAC;wBACd,qBAAqB,GAAG,WAAW,CAAC;wBACpC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBACxI,CAAC;gBACL,CAAC;gBAED,mBAAmB,CAAC;oBAChB,IAAI;oBACJ,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,IAAI;iBACjF,CAAC,CAAC;gBACH,MAAM,CACF,IAAI,KAAK,CACL,qBAAqB;uBAClB,CAAC,IAAI,KAAK,IAAI;wBACb,CAAC,CAAC,gDAAgD;wBAClD,CAAC,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAC/C,CACJ,CAAC;YACN,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACtC,sCAAsC;YACtC,MAAM,cAAc,GAAG,iBAAiB,IAAI,SAAS,IAAI,UAAU,CAAC;YACpE,qBAAqB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAE7C,+DAA+D;YAC/D,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC1E,MAAM,YAAY,GAAG,CAAC,SAAS;gBAC3B,CAAC,CAAC,mGAAmG;gBACrG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YAEpB,MAAM,cAAc,GAAG,OAAO,EAAE,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;YAClG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC1H,mBAAmB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAE/B,MAAM,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IAEP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAS;IACjC,IAAI,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,UAAU,GAAG,SAAS,CAAC;IAE3B,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,qBAAqB,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC/B,UAAU,GAAG,IAAI,CAAC;gBAClB,UAAU,GAAG,GAAG,CAAC;gBACjB,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACb,IAAI,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBACxC,IAAI,CAAC;wBACD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC/B,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnB,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,mCAAmC;YAE7C,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAS;IACpC,OAAO,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,uBAAuB;IAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,OAAO,EACH,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EAC1B,CAAC"}
1
+ {"version":3,"file":"gemini-cli.js","sourceRoot":"","sources":["../../server/gemini-cli.js"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { spawn } from 'child_process';
9
9
  import express from 'express';
10
10
  import cors from 'cors';
11
11
  import mime from 'mime-types';
12
- import { AppError, WORKSPACES_ROOT, validateWorkspacePath } from './shared/utils.js';
12
+ import { AppError, WORKSPACES_ROOT, ensureUserWorkspaceRoot, validateWorkspacePath } from './shared/utils.js';
13
13
  import { closeSessionsWatcher, initializeSessionsWatcher } from './modules/providers/index.js';
14
14
  import { createWebSocketServer } from './modules/websocket/index.js';
15
15
  import { getConnectableHost } from '../shared/networkHosts.js';
@@ -223,14 +223,17 @@ app.post('/api/system/update', authenticateToken, async (req, res) => {
223
223
  });
224
224
  }
225
225
  });
226
- const expandWorkspacePath = (inputPath) => {
226
+ // `~` expands to the caller's per-user workspace root so the file browser
227
+ // lands in the user's own sandbox instead of the host user's home.
228
+ const expandWorkspacePath = (inputPath, userWorkspaceRoot) => {
229
+ const root = userWorkspaceRoot || WORKSPACES_ROOT;
227
230
  if (!inputPath)
228
- return inputPath;
231
+ return root;
229
232
  if (inputPath === '~') {
230
- return WORKSPACES_ROOT;
233
+ return root;
231
234
  }
232
235
  if (inputPath.startsWith('~/') || inputPath.startsWith('~\\')) {
233
- return path.join(WORKSPACES_ROOT, inputPath.slice(2));
236
+ return path.join(root, inputPath.slice(2));
234
237
  }
235
238
  return inputPath;
236
239
  };
@@ -238,15 +241,14 @@ const expandWorkspacePath = (inputPath) => {
238
241
  app.get('/api/browse-filesystem', authenticateToken, async (req, res) => {
239
242
  try {
240
243
  const { path: dirPath } = req.query;
244
+ const userWorkspaceRoot = await ensureUserWorkspaceRoot(req.user?.username);
241
245
  console.log('[API] Browse filesystem request for path:', dirPath);
242
- console.log('[API] WORKSPACES_ROOT is:', WORKSPACES_ROOT);
243
- // Default to home directory if no path provided
244
- const defaultRoot = WORKSPACES_ROOT;
245
- let targetPath = dirPath ? expandWorkspacePath(dirPath) : defaultRoot;
246
+ console.log('[API] User workspace root:', userWorkspaceRoot);
247
+ let targetPath = expandWorkspacePath(dirPath, userWorkspaceRoot);
246
248
  // Resolve and normalize the path
247
249
  targetPath = path.resolve(targetPath);
248
- // Security check - ensure path is within allowed workspace root
249
- const validation = await validateWorkspacePath(targetPath);
250
+ // Security check - confine browsing to the caller's per-user root
251
+ const validation = await validateWorkspacePath(targetPath, userWorkspaceRoot);
250
252
  if (!validation.valid) {
251
253
  return res.status(403).json({ error: validation.error });
252
254
  }
@@ -281,14 +283,14 @@ app.get('/api/browse-filesystem', authenticateToken, async (req, res) => {
281
283
  return -1;
282
284
  return a.name.localeCompare(b.name);
283
285
  });
284
- // Add common directories if browsing home directory
286
+ // At the user's root, surface common project folders (if present) first.
285
287
  const suggestions = [];
286
- let resolvedWorkspaceRoot = defaultRoot;
288
+ let resolvedWorkspaceRoot = userWorkspaceRoot;
287
289
  try {
288
- resolvedWorkspaceRoot = await fsPromises.realpath(defaultRoot);
290
+ resolvedWorkspaceRoot = await fsPromises.realpath(userWorkspaceRoot);
289
291
  }
290
292
  catch (error) {
291
- // Use default root as-is if realpath fails
293
+ // Use user root as-is if realpath fails
292
294
  }
293
295
  if (resolvedPath === resolvedWorkspaceRoot) {
294
296
  const commonDirs = ['Desktop', 'Documents', 'Projects', 'Development', 'Dev', 'Code', 'workspace'];
@@ -315,9 +317,10 @@ app.post('/api/create-folder', authenticateToken, async (req, res) => {
315
317
  if (!folderPath) {
316
318
  return res.status(400).json({ error: 'Path is required' });
317
319
  }
318
- const expandedPath = expandWorkspacePath(folderPath);
320
+ const userWorkspaceRoot = await ensureUserWorkspaceRoot(req.user?.username);
321
+ const expandedPath = expandWorkspacePath(folderPath, userWorkspaceRoot);
319
322
  const resolvedInput = path.resolve(expandedPath);
320
- const validation = await validateWorkspacePath(resolvedInput);
323
+ const validation = await validateWorkspacePath(resolvedInput, userWorkspaceRoot);
321
324
  if (!validation.valid) {
322
325
  return res.status(403).json({ error: validation.error });
323
326
  }