clitrigger 0.1.12 → 0.1.13

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 (64) hide show
  1. package/README.md +6 -3
  2. package/README_KR.md +6 -3
  3. package/dist/client/assets/index-BWNQgE_E.js +649 -0
  4. package/dist/client/assets/index-Ck_mmrzu.css +32 -0
  5. package/dist/client/index.html +2 -2
  6. package/dist/server/db/queries.d.ts +39 -3
  7. package/dist/server/db/queries.d.ts.map +1 -1
  8. package/dist/server/db/queries.js +118 -3
  9. package/dist/server/db/queries.js.map +1 -1
  10. package/dist/server/db/schema.d.ts.map +1 -1
  11. package/dist/server/db/schema.js +65 -0
  12. package/dist/server/db/schema.js.map +1 -1
  13. package/dist/server/index.d.ts.map +1 -1
  14. package/dist/server/index.js +2 -0
  15. package/dist/server/index.js.map +1 -1
  16. package/dist/server/routes/favorites.d.ts +3 -0
  17. package/dist/server/routes/favorites.d.ts.map +1 -0
  18. package/dist/server/routes/favorites.js +201 -0
  19. package/dist/server/routes/favorites.js.map +1 -0
  20. package/dist/server/routes/memory.d.ts.map +1 -1
  21. package/dist/server/routes/memory.js +396 -4
  22. package/dist/server/routes/memory.js.map +1 -1
  23. package/dist/server/routes/projects.js +2 -2
  24. package/dist/server/routes/projects.js.map +1 -1
  25. package/dist/server/routes/sessions.d.ts.map +1 -1
  26. package/dist/server/routes/sessions.js +24 -2
  27. package/dist/server/routes/sessions.js.map +1 -1
  28. package/dist/server/services/claude-manager.d.ts +18 -1
  29. package/dist/server/services/claude-manager.d.ts.map +1 -1
  30. package/dist/server/services/claude-manager.js +99 -5
  31. package/dist/server/services/claude-manager.js.map +1 -1
  32. package/dist/server/services/discussion-orchestrator.d.ts.map +1 -1
  33. package/dist/server/services/discussion-orchestrator.js +22 -0
  34. package/dist/server/services/discussion-orchestrator.js.map +1 -1
  35. package/dist/server/services/memory-ingest.d.ts +16 -0
  36. package/dist/server/services/memory-ingest.d.ts.map +1 -0
  37. package/dist/server/services/memory-ingest.js +488 -0
  38. package/dist/server/services/memory-ingest.js.map +1 -0
  39. package/dist/server/services/memory-injector.d.ts.map +1 -1
  40. package/dist/server/services/memory-injector.js +32 -2
  41. package/dist/server/services/memory-injector.js.map +1 -1
  42. package/dist/server/services/memory-wikilinks.d.ts +34 -0
  43. package/dist/server/services/memory-wikilinks.d.ts.map +1 -0
  44. package/dist/server/services/memory-wikilinks.js +86 -0
  45. package/dist/server/services/memory-wikilinks.js.map +1 -0
  46. package/dist/server/services/orchestrator.d.ts.map +1 -1
  47. package/dist/server/services/orchestrator.js +10 -0
  48. package/dist/server/services/orchestrator.js.map +1 -1
  49. package/dist/server/services/session-manager.d.ts +22 -1
  50. package/dist/server/services/session-manager.d.ts.map +1 -1
  51. package/dist/server/services/session-manager.js +82 -5
  52. package/dist/server/services/session-manager.js.map +1 -1
  53. package/dist/server/websocket/broadcaster.d.ts +11 -0
  54. package/dist/server/websocket/broadcaster.d.ts.map +1 -1
  55. package/dist/server/websocket/broadcaster.js +67 -0
  56. package/dist/server/websocket/broadcaster.js.map +1 -1
  57. package/dist/server/websocket/events.d.ts +3 -0
  58. package/dist/server/websocket/events.d.ts.map +1 -1
  59. package/dist/server/websocket/index.d.ts.map +1 -1
  60. package/dist/server/websocket/index.js +45 -2
  61. package/dist/server/websocket/index.js.map +1 -1
  62. package/package.json +1 -1
  63. package/dist/client/assets/index-CcsvxPmx.css +0 -1
  64. package/dist/client/assets/index-qSpSlrcM.js +0 -606
@@ -0,0 +1,86 @@
1
+ import * as queries from '../db/queries.js';
2
+ const WIKILINK_PATTERN = /\[\[([^\]\n|#]+)(?:#[^\]\n|]+)?(?:\|([^\]\n]+))?\]\]/g;
3
+ export function parseWikilinks(body) {
4
+ if (!body)
5
+ return [];
6
+ const refs = [];
7
+ WIKILINK_PATTERN.lastIndex = 0;
8
+ let match;
9
+ while ((match = WIKILINK_PATTERN.exec(body)) !== null) {
10
+ const title = match[1].trim();
11
+ if (!title)
12
+ continue;
13
+ refs.push({
14
+ raw: match[0],
15
+ title,
16
+ alias: match[2]?.trim() || undefined,
17
+ start: match.index,
18
+ end: match.index + match[0].length,
19
+ });
20
+ }
21
+ return refs;
22
+ }
23
+ export function resolveWikilinks(projectId, titles) {
24
+ const seen = new Set();
25
+ const results = [];
26
+ for (const title of titles) {
27
+ const key = title.toLowerCase();
28
+ if (seen.has(key))
29
+ continue;
30
+ seen.add(key);
31
+ const node = queries.getMemoryNodeByTitle(projectId, title);
32
+ results.push({ title, nodeId: node?.id ?? null });
33
+ }
34
+ return results;
35
+ }
36
+ /**
37
+ * Replace `[[oldTitle]]` (case-insensitive title match) with `[[newTitle]]`,
38
+ * preserving any alias (`|alias`) or heading (`#section`) suffix the user wrote.
39
+ */
40
+ export function replaceTitleInBody(body, oldTitle, newTitle) {
41
+ if (!body)
42
+ return body;
43
+ const escaped = oldTitle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
44
+ const re = new RegExp(`\\[\\[\\s*${escaped}\\s*((?:#[^\\]\\n|]+)?(?:\\|[^\\]\\n]+)?)\\]\\]`, 'gi');
45
+ return body.replace(re, (_full, suffix) => `[[${newTitle}${suffix ?? ''}]]`);
46
+ }
47
+ export function findBacklinks(projectId, targetTitle, excludeNodeId) {
48
+ const all = queries.getMemoryNodesByProjectId(projectId);
49
+ const hits = [];
50
+ const lowerTarget = targetTitle.toLowerCase();
51
+ for (const node of all) {
52
+ if (node.id === excludeNodeId)
53
+ continue;
54
+ if (!node.body)
55
+ continue;
56
+ const refs = parseWikilinks(node.body);
57
+ const ref = refs.find(r => r.title.toLowerCase() === lowerTarget);
58
+ if (!ref)
59
+ continue;
60
+ hits.push({ source: node, snippet: buildSnippet(node.body, ref.start, ref.end) });
61
+ }
62
+ return hits;
63
+ }
64
+ function buildSnippet(body, start, end, radius = 30) {
65
+ const left = Math.max(0, start - radius);
66
+ const right = Math.min(body.length, end + radius);
67
+ const slice = body.slice(left, right).replace(/\s+/g, ' ').trim();
68
+ const prefix = left > 0 ? '…' : '';
69
+ const suffix = right < body.length ? '…' : '';
70
+ return `${prefix}${slice}${suffix}`;
71
+ }
72
+ /**
73
+ * Append `[[targetTitle]]` to the end of an existing body, separated by a blank line
74
+ * so it doesn't accidentally fuse with prior markdown. If the link already exists, no-op.
75
+ */
76
+ export function appendWikilinkToBody(body, targetTitle) {
77
+ const refs = parseWikilinks(body);
78
+ const exists = refs.some(r => r.title.toLowerCase() === targetTitle.toLowerCase());
79
+ if (exists)
80
+ return body;
81
+ const link = `[[${targetTitle}]]`;
82
+ if (!body.trim())
83
+ return link;
84
+ return `${body.trimEnd()}\n\n${link}`;
85
+ }
86
+ //# sourceMappingURL=memory-wikilinks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-wikilinks.js","sourceRoot":"","sources":["../../../src/server/services/memory-wikilinks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/server/services/orchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAiBrE,qBAAa,YAAY;IACvB,OAAO,CAAC,eAAe,CAA+C;IAEtE;;;OAGG;IACH,wBAAwB,IAAI,IAAI;IAKhC,uBAAuB,IAAI,IAAI;IAO/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,cAAc;IAStB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAkBnB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;;;OAIG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BpD;;;OAGG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,UAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC7E;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,GAAE,UAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCxG;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7C;;;;OAIG;YACW,eAAe;IA8d7B;;;OAGG;YACW,kBAAkB;IAsDhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAuBnC;;;;;;;;OAQG;YACW,sBAAsB;CAiCrC;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/server/services/orchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAkBrE,qBAAa,YAAY;IACvB,OAAO,CAAC,eAAe,CAA+C;IAEtE;;;OAGG;IACH,wBAAwB,IAAI,IAAI;IAKhC,uBAAuB,IAAI,IAAI;IAO/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,cAAc;IAStB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAkBnB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;;;OAIG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BpD;;;OAGG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,UAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC7E;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,GAAE,UAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCxG;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7C;;;;OAIG;YACW,eAAe;IAue7B;;;OAGG;YACW,kBAAkB;IAsDhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAuBnC;;;;;;;;OAQG;YACW,sBAAsB;CAiCrC;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -12,6 +12,7 @@ import { broadcaster } from '../websocket/broadcaster.js';
12
12
  import { validatePromptContent } from './prompt-guard.js';
13
13
  import { debugLogger } from './debug-logger.js';
14
14
  import { captureReviewMetadata } from './review-capture.js';
15
+ import { ingestSource, buildSourceTextFromTodo } from './memory-ingest.js';
15
16
  import * as queries from '../db/queries.js';
16
17
  const MAX_CONTEXT_SWITCHES = 3;
17
18
  const STALE_CHECK_INTERVAL_MS = 30_000; // 30 seconds
@@ -694,6 +695,15 @@ Complete the task in the current directory.`;
694
695
  catch { /* ignore */ }
695
696
  }
696
697
  captureReviewMetadata(todoId).catch(() => { });
698
+ if (project.memory_auto_ingest) {
699
+ const sourceText = buildSourceTextFromTodo(todoId);
700
+ if (sourceText) {
701
+ const todo = queries.getTodoById(todoId);
702
+ ingestSource(projectId, sourceText, 'todo', todoId, todo?.title ?? null).catch((err) => {
703
+ console.error('[memory-ingest] auto-ingest failed:', err);
704
+ });
705
+ }
706
+ }
697
707
  broadcaster.broadcast({ type: 'todo:log', todoId, message: doneMsg, logType: 'output' });
698
708
  broadcaster.broadcast({ type: 'todo:status-changed', todoId, status: 'completed' });
699
709
  this.broadcastProjectStatus(projectId);
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/server/services/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAmB,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAkC,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAyB,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAqB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B,MAAM,uBAAuB,GAAG,MAAM,CAAC,CAAC,aAAa;AAErD,MAAM,OAAO,YAAY;IACf,eAAe,GAA0C,IAAI,CAAC;IAEtE;;;OAGG;IACH,wBAAwB;QACtB,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QACjC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAC9F,CAAC;IAED,uBAAuB;QACrB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACzD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC;gBAAE,SAAS;YAC1D,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACH,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;oBAC5C,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,2DAA2D,CAAC,CAAC;oBACrG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;gBAClD,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBACxB,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC1F,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,GAAW;QAChC,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,SAAiB;QACxC,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC;QACvB,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,YAAY;YAAE,OAAO,CAAC,CAAC;QAC3D,OAAO,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACK,kBAAkB,CAAC,OAAwB,EAAE,IAAkB;QACrE,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QACvC,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,OAAO,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACK,WAAW,CACjB,OAAwB,EACxB,IAAkB,EAClB,YAA4B;QAE5B,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACpD,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oGAAoG,EAAE,CAAC;QACrI,CAAC;QACD,MAAM,gBAAgB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACzF,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iFAAiF,EAAE,CAAC;QAClH,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,SAAiB;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACnE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;QACvE,WAAW,CAAC,SAAS,CAAC;YACpB,IAAI,EAAE,wBAAwB;YAC9B,SAAS;YACT,OAAO;YACP,SAAS;YACT,KAAK,EAAE,KAAK,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,SAAiB;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEvD,sDAAsD;QACtD,IAAI,OAAO,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,CAAC,MAAM,uBAAuB,aAAa,GAAG,CAAC,CAAC;QAChG,CAAC;QAED,yDAAyD;QACzD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAE9E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QAExD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAE5D,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,OAAmB,UAAU;QAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,2CAA2C;QAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,yBAAyB;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAEvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,8DAA8D;YAC9D,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,2EAA2E;YAC3E,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,4BAA4B,IAAI,CAAC,KAAK,gCAAgC,CAAC,CAAC;YAChH,OAAO;QACT,CAAC;QAED,wDAAwD;QACxD,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,yBAAyB,IAAI,CAAC,KAAK,yDAAyD,CAAC,CAAC;QACtI,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,cAAsB,EAAE,OAAmB,UAAU;QACtF,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAClF,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;QAEvD,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACxE,cAAc,EAAE,OAAO;YACvB,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5C,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAEjE,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,eAAe,CAC3B,MAAc,EACd,WAAmB,EACnB,SAAiB,EACjB,OAAmB,UAAU,EAC7B,YAAqB,KAAK,EAC1B,eAAiE;QAEjE,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,UAAU,GAAG,CAAC,CAAC,eAAe,CAAC;QACrC,MAAM,WAAW,GAAG,eAAe,EAAE,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;QAE5E,MAAM,WAAW,GAAG,CAAC,UAAU;YAC7B,CAAC,CAAC,eAAgB,CAAC,cAAc;YACjC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CACzC,CAAC,IAAI,EAAE,CAAC;QACT,iFAAiF;QACjF,8EAA8E;QAC9E,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC3C,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;gBACrE,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,CAAC,CAAC;gBAClF,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACjF,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBACvC,OAAO;YACT,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,gFAAgF;QAChF,4BAA4B;QAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAChG,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;YACjF,OAAO;QACT,CAAC;QAED,yEAAyE;QACzE,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5C,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAE1C,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,YAAY,GAAkB,IAAI,CAAC;QACvC,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,IAAI,OAAe,CAAC;QACpB,IAAI,MAAc,CAAC;QAEnB,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,mBAAmB,GAAkB,IAAI,CAAC;YAE9C,qFAAqF;YACrF,kFAAkF;YAClF,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;gBACxG,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;gBAClC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC9B,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,uCAAuC,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;YAC5G,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACtB,4DAA4D;gBAC5D,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC3C,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;gBACrE,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,uEAAuE,EAAE,WAAW,CAAC,CAAC;gBAC7H,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACjF,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBACvC,OAAO;YACT,CAAC;iBAAM,CAAC;gBACN,yCAAyC;gBACzC,UAAU,GAAG,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5D,IAAI,CAAC;oBACH,YAAY,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBAC3G,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACjE,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;oBAC3C,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,8BAA8B,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;oBAC7F,OAAO;gBACT,CAAC;YACH,CAAC;YAED,mGAAmG;YACnG,kGAAkG;YAClG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;gBACjG,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACxD,IAAI,UAAU,IAAI,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC9E,MAAM,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC;oBAC5C,IAAI,CAAC;wBACH,MAAM,eAAe,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;wBACpE,mBAAmB,GAAG,YAAY,CAAC;wBACnC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,2CAA2C,UAAU,CAAC,KAAK,cAAc,YAAY,GAAG,CAAC,CAAC;wBAElI,wCAAwC;wBACxC,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;4BAC7B,IAAI,CAAC;gCACH,MAAM,eAAe,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;gCAC3F,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gCAC3D,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,kDAAkD,IAAI,CAAC,KAAK,cAAc,UAAU,GAAG,CAAC,CAAC;gCACxI,qDAAqD;gCACrD,WAAW,CAAC,SAAS,CAAC;oCACpB,IAAI,EAAE,qBAAqB;oCAC3B,MAAM,EAAE,UAAU,CAAC,EAAE;oCACrB,MAAM,EAAE,UAAU,CAAC,MAAM;oCACzB,aAAa,EAAE,IAAI;oCACnB,WAAW,EAAE,UAAU,CAAC,WAAW;iCACpC,CAAC,CAAC;4BACL,CAAC;4BAAC,OAAO,UAAU,EAAE,CAAC;gCACpB,MAAM,GAAG,GAAG,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gCAClF,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,sCAAsC,GAAG,EAAE,CAAC,CAAC;4BACtF,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,OAAO,QAAQ,EAAE,CAAC;wBAClB,MAAM,GAAG,GAAG,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAC5E,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,8CAA8C,YAAY,MAAM,GAAG,EAAE,CAAC,CAAC;wBAC9G,uDAAuD;oBACzD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,GAAG,YAAa,CAAC;YACxB,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,GAAG,wEAAwE,UAAU;;;;EAIjG,WAAW;;;qJAGwI,CAAC;YAChJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC;gBAC5C,MAAM,eAAe,GAAG,mBAAmB;oBACzC,CAAC,CAAC,6FAA6F;oBAC/F,CAAC,CAAC,oCAAoC,CAAC;gBACzC,MAAM,GAAG,GAAG,eAAe;;;;EAIjC,IAAI;;;iFAG2E,CAAC;gBAE1E,sEAAsE;gBACtE,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;oBAClC,MAAM,IAAI,8NAA8N,CAAC;gBAC3O,CAAC;YACH,CAAC;YAED,iFAAiF;YACjF,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE;gBACzB,WAAW,EAAE,UAAU;gBACvB,aAAa,EAAE,YAAY;gBAC3B,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,WAAW,CAAC;YACtB,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,GAAG;;;;EAIf,WAAW;;;+CAGkC,SAAS,CAAC,CAAC,CAAC,kEAAkE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC/H,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC;gBAC5C,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,GAAG;;;;EAIjB,IAAI;;;4GAGsG,CAAC;oBACnG,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,KAAK,CAAC;wBAC9C,CAAC,CAAC,wEAAwE;wBAC1E,CAAC,CAAC,qFAAqF,CAAC;oBAC1F,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;gBACzE,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG;;;;EAIjB,IAAI;;;4CAGsC,CAAC;oBACnC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,+EAA+E,EAAE,WAAW,CAAC,CAAC;gBACxI,CAAC;YACH,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YACrD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM,WAAW,GAAa,EAAE,CAAC;gBACjC,KAAK,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,UAAU,EAAE,CAAC;oBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;oBAC5C,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAChC,WAAW,CAAC,IAAI,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM,IAAI,8FAA8F,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpJ,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,WAAW,CAAC,MAAM,wBAAwB,CAAC,CAAC;YAChG,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,0BAA0B,GAAG,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,MAAM,OAAO,GAAI,IAAI,CAAC,QAAoB,IAAK,OAAO,CAAC,QAAoB,IAAI,QAAQ,CAAC;QACxF,MAAM,WAAW,GAAI,OAAO,CAAC,YAA4B,IAAI,QAAQ,CAAC;QAEtE,8EAA8E;QAC9E,IAAI,WAAW,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACrD,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAChD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;gBAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBACD,sGAAsG;gBACtG,MAAM,gBAAgB,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;oBAClD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;oBACpD,CAAC,CAAC,EAAE,CAAC;gBACP,gBAAgB,CAAC,WAAW,GAAG;oBAC7B,KAAK,EAAE;wBACL,QAAQ,OAAO,MAAM,EAAC,QAAQ,OAAO,MAAM,EAAC,SAAS,OAAO,MAAM;wBAClE,SAAS,EAAC,SAAS,EAAC,SAAS;wBAC7B,UAAU,EAAC,WAAW,EAAC,aAAa;qBACrC;oBACD,IAAI,EAAE,EAAE;iBACT,CAAC;gBACF,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC1E,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,8EAA8E,CAAC,CAAC;YAC1H,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,mDAAmD,GAAG,EAAE,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,4CAA4C,OAAO,0IAA0I,CAAC;QAC1M,CAAC;QAED,2DAA2D;QAC3D,MAAM,WAAW,GAAG,uBAAuB,EAAE,CAAC;QAC9C,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,iBAAkB,CAAC;oBAC9B,OAAO;oBACP,MAAM;oBACN,OAAO;oBACP,OAAO;oBACP,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;iBACrE,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,MAAM,CAAC,EAAE,kBAAkB,GAAG,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,MAAM,OAAO,GAAG,CAAE,IAAI,CAAC,kBAA8C,IAAI,MAAM,CAAqB,CAAC;QACrG,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,oBAAoB,CAAC;gBACpC,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC;gBACjD,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;aAClF,CAAC,CAAC;YACH,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,QAAQ,OAAO,MAAM,EAAE,CAAC;YACtC,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,YAAY,IAAI,SAAS,CAAC;QACxE,MAAM,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,MAAM,iBAAiB,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;QAClF,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAEpC,yCAAyC;QACzC,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,CAAC,eAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3G,MAAM,UAAU,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACpC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,WAAW,KAAK,EAAE,WAAW,CAAC,CAAC;QACrF,CAAC;QAED,mEAAmE;QACnE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9F,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAElE,IAAI,GAAW,CAAC;QAChB,IAAI,WAA4B,CAAC;QAEjC,IAAI,YAAY,GAAwB,IAAI,CAAC;QAE7C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YAC3J,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;YACjB,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YAEjC,0DAA0D;YAC1D,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;oBACtC,MAAM,EAAE,WAAW,EAAE,OAAO;oBAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI;oBAC1C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW;iBACzC,CAAC,CAAC;gBACH,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAChC,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC;YAED,kFAAkF;YAClF,mFAAmF;YACnF,IAAI,OAAO,KAAK,QAAQ,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;gBACnD,WAAW,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3C,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,mBAAmB,OAAO,CAAC,WAAW,KAAK,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;YAC1G,0EAA0E;YAC1E,IAAI,CAAC,UAAU,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;gBAC/C,IAAI,CAAC;oBACH,MAAM,eAAe,CAAC,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;oBAChE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzE,CAAC;gBAAC,MAAM,CAAC;oBACP,kFAAkF;gBACpF,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAEjD,MAAM,MAAM,GAAG,WAAW;YACxB,CAAC,CAAC,WAAW,OAAO,CAAC,WAAW,UAAU,GAAG,eAAe,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,WAAW,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAChI,CAAC,CAAC,WAAW,OAAO,CAAC,WAAW,UAAU,GAAG,2BAA2B,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,WAAW,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAChI,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAE7D,sDAAsD;QACtD,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9I,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAEvC,qCAAqC;QACrC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC5B,0BAA0B;YAC1B,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC;oBAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAChD,+DAA+D;YAC/D,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACpD,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;oBACnB,8DAA8D;oBAC9D,MAAM,kBAAkB,GAAG,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;oBAClE,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBAErD,6EAA6E;oBAC7E,MAAM,kBAAkB,GAAG,OAAO,KAAK,QAAQ;2BAC1C,UAAU,EAAE,cAAc;2BAC1B,UAAU,EAAE,YAAY;2BACxB,CAAC,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;oBAElE,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAChE,MAAM,gBAAgB,GAAG,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,IAAI,QAAQ,CAAC;oBAEhF,IAAI,gBAAgB,EAAE,CAAC;wBACrB,wCAAwC;wBACxC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE;4BACzB,WAAW,EAAE,CAAC;4BACd,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACnE,CAAC,CAAC;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;4BAClF,IAAI,CAAC;gCACH,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gCAC3C,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,gCAAgC,EAAE,WAAW,CAAC,CAAC;4BACxF,CAAC;4BAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;4BACxB,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;4BACjF,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;wBACzC,CAAC,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBAED,sBAAsB;oBACtB,MAAM,OAAO,GAAG,GAAG,OAAO,CAAC,WAAW,qBAAqB,QAAQ,GAAG,CAAC;oBACvE,IAAI,CAAC;wBACH,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBAC3C,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;wBAC7D,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE;4BACzB,WAAW,EAAE,CAAC;4BACd,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;gCACf,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;gCACvC,cAAc,EAAE,UAAU,CAAC,UAAU,IAAI,IAAI;gCAC7C,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI;6BACzF,CAAC,CAAC,CAAC,EAAE,CAAC;yBACR,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACP,IAAI,CAAC;4BAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBAAC,CAAC;wBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;oBAC5E,CAAC;oBAED,qBAAqB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAgB,CAAC,CAAC,CAAC;oBAC5D,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;oBACxF,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACjF,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,eAAe;oBACf,MAAM,OAAO,GAAG,GAAG,OAAO,CAAC,WAAW,2BAA2B,UAAU,CAAC,CAAC,CAAC,WAAW,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBAC/G,IAAI,CAAC;wBACH,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;wBAC9C,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;wBAC9D,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;wBACrD,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE;4BACzB,WAAW,EAAE,CAAC;4BACd,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;gCACf,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;gCACvC,cAAc,EAAE,UAAU,CAAC,UAAU,IAAI,IAAI;gCAC7C,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI;6BACzF,CAAC,CAAC,CAAC,EAAE,CAAC;yBACR,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACP,IAAI,CAAC;4BAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;wBAAC,CAAC;wBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;oBAC/E,CAAC;oBAED,qBAAqB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAgB,CAAC,CAAC,CAAC;oBAC5D,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACzF,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;oBACpF,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YAED,uEAAuE;YACvE,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBACxD,iDAAiD;gBACnD,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACZ,kEAAkE;YAClE,IAAI,CAAC;gBACH,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC3C,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACxB,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kBAAkB,CAC9B,MAAc,EACd,SAAiB,EACjB,OAAe,EACf,QAA6C,EAC7C,SAAkB;QAElB,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,oBAAoB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEhE,IAAI,WAAW,GAAG,oBAAoB,EAAE,CAAC;YACvC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3C,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EACnC,6BAA6B,oBAAoB,4BAA4B,CAAC,CAAC;YACjF,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/C,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EACpC,+CAA+C,OAAO,OAAO,KAAK,aAAa,WAAW,MAAM,CAAC,CAAC;QAEpG,sBAAsB;QACtB,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAEvC,2DAA2D;QAC3D,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE;YACzB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAyB;YACpC,oBAAoB,EAAE,WAAW;YACjC,WAAW,EAAE,CAAC;SACf,CAAC,CAAC;QACH,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAE5C,qCAAqC;QACrC,WAAW,CAAC,SAAS,CAAC;YACpB,IAAI,EAAE,qBAAqB;YAC3B,MAAM;YACN,OAAO;YACP,KAAK;YACL,WAAW;SACZ,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,IAAkB,EAAE,QAAwB;QACxE,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC;IACnD,CAAC;IAED;;;OAGG;IACK,2BAA2B,CAAC,MAAc;QAChD,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,IAAI,SAAS,GAAkB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,UAAU,IAAI,IAAI,CAAC;QAE/E,OAAO,SAAS,EAAE,CAAC;YACjB,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEvB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ;gBAAE,MAAM;YACrB,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW;gBAAE,MAAM;YAE3C,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxB,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;gBAAE,MAAM;YACzC,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC;QAClC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,sBAAsB,CAAC,SAAiB,EAAE,YAAoB;QAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEvD,+DAA+D;QAC/D,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,YAAY,CAC/D,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QAE3D,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAClF,CAAC;QAED,uEAAuE;QACvE,wEAAwE;QACxE,MAAM,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,cAAc,KAAK,CAAC;YAAE,OAAO;QACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,EAAE,KAAK,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,SAAS,CAAC,CAC1I,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAE/C,8EAA8E;AAC9E,gFAAgF;AAChF,kEAAkE;AAClE,WAAW,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,EAAE;IAC1C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC9C,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAgB,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/server/services/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,29 @@
1
1
  export declare class SessionManager {
2
+ private pendingFlushers;
3
+ /**
4
+ * Hook the raw PTY byte stream of `pid` into:
5
+ * 1. live binary WS frames to currently subscribed clients
6
+ * 2. batched (≥4KB or 100ms) appends to `session_raw_chunks` for replay
7
+ *
8
+ * Memory-bounded by the upstream ring buffer in claudeManager and by
9
+ * `trimSessionRawChunks` (~2MB rolling) on the DB side.
10
+ */
11
+ private subscribeRawForSession;
12
+ private flushAndForgetRaw;
2
13
  /**
3
14
  * Start a session (always interactive mode).
15
+ *
16
+ * `opts.cols` / `opts.rows` come from the client xterm.js after FitAddon
17
+ * resolves. Spawning the PTY at the actual rendered size avoids the
18
+ * 200x50-default-then-resize race where Claude Code's TUI banner ends up
19
+ * misaligned in scrollback. If the caller doesn't supply dims (e.g.
20
+ * plugin or curl direct hit), fall back to 100x30 — small enough that a
21
+ * later wider client still renders the welcome banner cleanly.
4
22
  */
5
- startSession(sessionId: string): Promise<void>;
23
+ startSession(sessionId: string, opts?: {
24
+ cols?: number;
25
+ rows?: number;
26
+ }): Promise<void>;
6
27
  /**
7
28
  * Stop a running session.
8
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../../src/server/services/session-manager.ts"],"names":[],"mappings":"AAMA,qBAAa,cAAc;IACzB;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2GpD;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAenD;;;OAGG;IACH,OAAO,CAAC,eAAe;IAsBvB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAkF5B;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../../src/server/services/session-manager.ts"],"names":[],"mappings":"AAUA,qBAAa,cAAc;IAGzB,OAAO,CAAC,eAAe,CAAsC;IAE7D;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IAqC9B,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;;;OASG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmH7F;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnD;;;OAGG;IACH,OAAO,CAAC,eAAe;IAsBvB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAkF5B;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -1,13 +1,82 @@
1
1
  import { claudeManager } from './claude-manager.js';
2
2
  import { worktreeManager } from './worktree-manager.js';
3
3
  import { getAdapter, supportsInteractiveMode } from './cli-adapters.js';
4
- import { broadcaster } from '../websocket/broadcaster.js';
4
+ import { broadcaster, encodeSessionFrame } from '../websocket/broadcaster.js';
5
5
  import * as queries from '../db/queries.js';
6
+ const RAW_FLUSH_BYTES = 4 * 1024;
7
+ const RAW_FLUSH_MS = 100;
8
+ const RAW_DB_CAP_BYTES = 2 * 1024 * 1024;
6
9
  export class SessionManager {
10
+ // Per-session pending-flush callback so we can drain the byte buffer when
11
+ // the PTY exits or the user stops the session.
12
+ pendingFlushers = new Map();
13
+ /**
14
+ * Hook the raw PTY byte stream of `pid` into:
15
+ * 1. live binary WS frames to currently subscribed clients
16
+ * 2. batched (≥4KB or 100ms) appends to `session_raw_chunks` for replay
17
+ *
18
+ * Memory-bounded by the upstream ring buffer in claudeManager and by
19
+ * `trimSessionRawChunks` (~2MB rolling) on the DB side.
20
+ */
21
+ subscribeRawForSession(sessionId, pid) {
22
+ let pending = [];
23
+ let pendingBytes = 0;
24
+ let timer = null;
25
+ const flush = () => {
26
+ if (timer) {
27
+ clearTimeout(timer);
28
+ timer = null;
29
+ }
30
+ if (pending.length === 0)
31
+ return;
32
+ const buf = Buffer.concat(pending);
33
+ pending = [];
34
+ pendingBytes = 0;
35
+ try {
36
+ queries.appendSessionRawChunk(sessionId, buf);
37
+ queries.trimSessionRawChunks(sessionId, RAW_DB_CAP_BYTES);
38
+ }
39
+ catch { /* DB may be locked or session deleted; drop chunk */ }
40
+ };
41
+ claudeManager.subscribeRaw(pid, (chunk) => {
42
+ const buf = Buffer.from(chunk, 'utf8');
43
+ pending.push(buf);
44
+ pendingBytes += buf.length;
45
+ // Live broadcast — only currently-subscribed clients receive the bytes.
46
+ try {
47
+ broadcaster.sendBinaryToSubscribers(sessionId, encodeSessionFrame(sessionId, buf));
48
+ }
49
+ catch { /* ignore */ }
50
+ if (pendingBytes >= RAW_FLUSH_BYTES) {
51
+ flush();
52
+ }
53
+ else if (!timer) {
54
+ timer = setTimeout(flush, RAW_FLUSH_MS);
55
+ }
56
+ });
57
+ this.pendingFlushers.set(sessionId, flush);
58
+ }
59
+ flushAndForgetRaw(sessionId) {
60
+ const flusher = this.pendingFlushers.get(sessionId);
61
+ if (flusher) {
62
+ try {
63
+ flusher();
64
+ }
65
+ catch { /* ignore */ }
66
+ this.pendingFlushers.delete(sessionId);
67
+ }
68
+ }
7
69
  /**
8
70
  * Start a session (always interactive mode).
71
+ *
72
+ * `opts.cols` / `opts.rows` come from the client xterm.js after FitAddon
73
+ * resolves. Spawning the PTY at the actual rendered size avoids the
74
+ * 200x50-default-then-resize race where Claude Code's TUI banner ends up
75
+ * misaligned in scrollback. If the caller doesn't supply dims (e.g.
76
+ * plugin or curl direct hit), fall back to 100x30 — small enough that a
77
+ * later wider client still renders the welcome banner cleanly.
9
78
  */
10
- async startSession(sessionId) {
79
+ async startSession(sessionId, opts) {
11
80
  const session = queries.getSessionById(sessionId);
12
81
  if (!session)
13
82
  throw new Error('Session not found');
@@ -55,11 +124,14 @@ export class SessionManager {
55
124
  let pid;
56
125
  let exitPromise;
57
126
  try {
58
- const result = await claudeManager.startClaude(workDir, prompt, cliModel, undefined, 'interactive', cliTool, undefined, project.path, undefined, false);
127
+ const result = await claudeManager.startClaude(workDir, prompt, cliModel, undefined, 'interactive', cliTool, undefined, project.path, undefined, false, opts?.cols ?? 100, opts?.rows ?? 30);
59
128
  pid = result.pid;
60
129
  exitPromise = result.exitPromise;
61
- // Stream stdout/stderr to session_logs
62
- this.streamToSessionLogs(sessionId, result.stdout, result.stderr);
130
+ // Subscribe to raw PTY bytes for the xterm.js terminal channel.
131
+ // The legacy stripped-text streamToSessionLogs path is intentionally
132
+ // skipped — Sessions now show the real terminal, and storing classified
133
+ // session_logs on every spinner frame is wasted DB churn.
134
+ this.subscribeRawForSession(sessionId, pid);
63
135
  }
64
136
  catch (err) {
65
137
  const message = err instanceof Error ? err.message : String(err);
@@ -83,6 +155,9 @@ export class SessionManager {
83
155
  broadcaster.broadcast({ type: 'session:status-changed', sessionId, status: 'running' });
84
156
  // Handle process exit
85
157
  exitPromise.then((exitCode) => {
158
+ // Flush any pending raw bytes before status update so re-opening the
159
+ // session immediately shows the final output.
160
+ this.flushAndForgetRaw(sessionId);
86
161
  const current = queries.getSessionById(sessionId);
87
162
  if (current && current.status === 'running') {
88
163
  const status = exitCode === 0 ? 'completed' : 'failed';
@@ -104,6 +179,7 @@ export class SessionManager {
104
179
  broadcaster.broadcast({ type: 'session:status-changed', sessionId, status });
105
180
  }
106
181
  }).catch(() => {
182
+ this.flushAndForgetRaw(sessionId);
107
183
  try {
108
184
  queries.updateSessionStatus(sessionId, 'failed');
109
185
  queries.updateSession(sessionId, { process_pid: 0 });
@@ -122,6 +198,7 @@ export class SessionManager {
122
198
  if (session.process_pid) {
123
199
  await claudeManager.stopClaude(session.process_pid);
124
200
  }
201
+ this.flushAndForgetRaw(sessionId);
125
202
  queries.updateSessionStatus(sessionId, 'stopped');
126
203
  queries.updateSession(sessionId, { process_pid: 0 });
127
204
  queries.createSessionLog(sessionId, 'output', 'Session stopped by user.');
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../../src/server/services/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../../src/server/services/session-manager.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,21 @@
1
1
  import { WebSocket } from 'ws';
2
2
  import type { WSEvent } from './events.js';
3
+ export declare const BINARY_FRAME_SESSION_OUTPUT = 1;
4
+ export declare function encodeSessionFrame(sessionId: string, payload: Buffer | Uint8Array | string): Buffer;
3
5
  declare class Broadcaster {
4
6
  private clients;
7
+ private subscriptions;
5
8
  addClient(ws: WebSocket): void;
6
9
  removeClient(ws: WebSocket): void;
10
+ /** Subscribe a client to high-frequency binary output for a sessionId. */
11
+ subscribe(ws: WebSocket, sessionId: string): void;
12
+ unsubscribe(ws: WebSocket, sessionId: string): void;
13
+ isSubscribed(ws: WebSocket, sessionId: string): boolean;
7
14
  broadcast(event: WSEvent): void;
15
+ /** Send a pre-encoded binary frame only to clients subscribed to sessionId. */
16
+ sendBinaryToSubscribers(sessionId: string, frame: Buffer): void;
17
+ /** Send a JSON event only to clients subscribed to sessionId. */
18
+ sendJsonToSubscribers(sessionId: string, event: WSEvent): void;
8
19
  getClientCount(): number;
9
20
  }
10
21
  export declare const broadcaster: Broadcaster;
@@ -1 +1 @@
1
- {"version":3,"file":"broadcaster.d.ts","sourceRoot":"","sources":["../../../src/server/websocket/broadcaster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,cAAM,WAAW;IACf,OAAO,CAAC,OAAO,CAA6B;IAE5C,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAI9B,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAS/B,cAAc,IAAI,MAAM;CAGzB;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
1
+ {"version":3,"file":"broadcaster.d.ts","sourceRoot":"","sources":["../../../src/server/websocket/broadcaster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAU3C,eAAO,MAAM,2BAA2B,IAAO,CAAC;AAEhD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAUnG;AAED,cAAM,WAAW;IACf,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,aAAa,CAAkD;IAEvE,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAI9B,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAKjC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IASjD,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAMnD,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAIvD,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAS/B,+EAA+E;IAC/E,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAa/D,iEAAiE;IACjE,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAS9D,cAAc,IAAI,MAAM;CAGzB;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
@@ -1,11 +1,52 @@
1
1
  import { WebSocket } from 'ws';
2
+ // Binary frame format for high-frequency PTY output:
3
+ // byte 0: kind (0x01 = session output)
4
+ // byte 1: sessionId UTF-8 byte length (max 255)
5
+ // bytes 2..2+L-1: sessionId bytes
6
+ // bytes 2+L..end: payload (raw PTY chunk, UTF-8)
7
+ //
8
+ // Kept binary (not base64+JSON) so spinner-frequency output doesn't
9
+ // inflate by ~33% and bypass the JSON.stringify hot path.
10
+ export const BINARY_FRAME_SESSION_OUTPUT = 0x01;
11
+ export function encodeSessionFrame(sessionId, payload) {
12
+ const sidBytes = Buffer.from(sessionId, 'utf8');
13
+ if (sidBytes.length > 255)
14
+ throw new Error('sessionId too long for binary frame');
15
+ const payloadBuf = typeof payload === 'string' ? Buffer.from(payload, 'utf8') : Buffer.from(payload);
16
+ const out = Buffer.alloc(2 + sidBytes.length + payloadBuf.length);
17
+ out[0] = BINARY_FRAME_SESSION_OUTPUT;
18
+ out[1] = sidBytes.length;
19
+ sidBytes.copy(out, 2);
20
+ payloadBuf.copy(out, 2 + sidBytes.length);
21
+ return out;
22
+ }
2
23
  class Broadcaster {
3
24
  clients = new Set();
25
+ subscriptions = new WeakMap();
4
26
  addClient(ws) {
5
27
  this.clients.add(ws);
6
28
  }
7
29
  removeClient(ws) {
8
30
  this.clients.delete(ws);
31
+ this.subscriptions.delete(ws);
32
+ }
33
+ /** Subscribe a client to high-frequency binary output for a sessionId. */
34
+ subscribe(ws, sessionId) {
35
+ let set = this.subscriptions.get(ws);
36
+ if (!set) {
37
+ set = new Set();
38
+ this.subscriptions.set(ws, set);
39
+ }
40
+ set.add(sessionId);
41
+ }
42
+ unsubscribe(ws, sessionId) {
43
+ const set = this.subscriptions.get(ws);
44
+ if (!set)
45
+ return;
46
+ set.delete(sessionId);
47
+ }
48
+ isSubscribed(ws, sessionId) {
49
+ return !!this.subscriptions.get(ws)?.has(sessionId);
9
50
  }
10
51
  broadcast(event) {
11
52
  const data = JSON.stringify(event);
@@ -15,6 +56,32 @@ class Broadcaster {
15
56
  }
16
57
  }
17
58
  }
59
+ /** Send a pre-encoded binary frame only to clients subscribed to sessionId. */
60
+ sendBinaryToSubscribers(sessionId, frame) {
61
+ for (const client of this.clients) {
62
+ if (client.readyState !== WebSocket.OPEN)
63
+ continue;
64
+ if (!this.isSubscribed(client, sessionId))
65
+ continue;
66
+ // Drop subscribers that have backed up too far (e.g. tab in background).
67
+ if (client.bufferedAmount > 4 * 1024 * 1024) {
68
+ this.unsubscribe(client, sessionId);
69
+ continue;
70
+ }
71
+ client.send(frame, { binary: true });
72
+ }
73
+ }
74
+ /** Send a JSON event only to clients subscribed to sessionId. */
75
+ sendJsonToSubscribers(sessionId, event) {
76
+ const data = JSON.stringify(event);
77
+ for (const client of this.clients) {
78
+ if (client.readyState !== WebSocket.OPEN)
79
+ continue;
80
+ if (!this.isSubscribed(client, sessionId))
81
+ continue;
82
+ client.send(data);
83
+ }
84
+ }
18
85
  getClientCount() {
19
86
  return this.clients.size;
20
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"broadcaster.js","sourceRoot":"","sources":["../../../src/server/websocket/broadcaster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAG/B,MAAM,WAAW;IACP,OAAO,GAAmB,IAAI,GAAG,EAAE,CAAC;IAE5C,SAAS,CAAC,EAAa;QACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,YAAY,CAAC,EAAa;QACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS,CAAC,KAAc;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"broadcaster.js","sourceRoot":"","sources":["../../../src/server/websocket/broadcaster.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,9 @@ export type WSEvent = {
77
77
  sessionId: string;
78
78
  message: string;
79
79
  logType: string;
80
+ } | {
81
+ type: 'session:replay-end';
82
+ sessionId: string;
80
83
  } | {
81
84
  type: 'rate-limit:updated';
82
85
  resetsAt: number;