@ai-setting/roy-plugin-task-show 0.6.11 → 0.8.4

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 (43) hide show
  1. package/README.md +121 -1
  2. package/dist/cli-tasks-adapter.d.ts +142 -0
  3. package/dist/cli-tasks-adapter.d.ts.map +1 -0
  4. package/dist/cli-tasks-adapter.js +379 -0
  5. package/dist/cli-tasks-adapter.js.map +1 -0
  6. package/dist/cli-tasks-tree-adapter.d.ts +143 -0
  7. package/dist/cli-tasks-tree-adapter.d.ts.map +1 -0
  8. package/dist/cli-tasks-tree-adapter.js +400 -0
  9. package/dist/cli-tasks-tree-adapter.js.map +1 -0
  10. package/dist/operations-cache.d.ts +44 -0
  11. package/dist/operations-cache.d.ts.map +1 -0
  12. package/dist/operations-cache.js +103 -0
  13. package/dist/operations-cache.js.map +1 -0
  14. package/dist/plugin.d.ts +14 -0
  15. package/dist/plugin.d.ts.map +1 -1
  16. package/dist/plugin.js +82 -0
  17. package/dist/plugin.js.map +1 -1
  18. package/dist/server.d.ts +30 -0
  19. package/dist/server.d.ts.map +1 -1
  20. package/dist/server.js +289 -89
  21. package/dist/server.js.map +1 -1
  22. package/dist/task-detail-mermaid.d.ts +171 -0
  23. package/dist/task-detail-mermaid.d.ts.map +1 -0
  24. package/dist/task-detail-mermaid.js +697 -0
  25. package/dist/task-detail-mermaid.js.map +1 -0
  26. package/dist/task-operations-html.d.ts +50 -0
  27. package/dist/task-operations-html.d.ts.map +1 -0
  28. package/dist/task-operations-html.js +187 -0
  29. package/dist/task-operations-html.js.map +1 -0
  30. package/dist/tasks-tree-cache.d.ts +44 -0
  31. package/dist/tasks-tree-cache.d.ts.map +1 -0
  32. package/dist/tasks-tree-cache.js +111 -0
  33. package/dist/tasks-tree-cache.js.map +1 -0
  34. package/dist/types.d.ts +16 -0
  35. package/dist/types.d.ts.map +1 -1
  36. package/dist/types.js.map +1 -1
  37. package/package.json +6 -1
  38. package/plugin.json +2 -2
  39. package/public/app.js +534 -34
  40. package/public/index.html +54 -21
  41. package/public/style.css +697 -1
  42. package/public/task-operations.js +290 -0
  43. package/public/tasks-tree.js +449 -0
package/dist/server.js CHANGED
@@ -23,6 +23,9 @@ import * as http from "node:http";
23
23
  import * as os from "node:os";
24
24
  import { fileURLToPath } from "node:url";
25
25
  import { EventBus as DefaultEventBus, writeSSEHeaders } from "./event-bus.js";
26
+ import { AdapterError, TaskNotFoundError, } from "./cli-tasks-adapter.js";
27
+ import { renderOperationsPipeline } from "./task-operations-html.js";
28
+ import { buildTaskLifecycleDiagram } from "./task-detail-mermaid.js";
26
29
  /** Upper bound of the TCP user port range. Probing never wraps past this. */
27
30
  export const MAX_TCP_PORT = 65535;
28
31
  /** Smallest legal TCP user port (avoid binding to well-known 0..1023). */
@@ -174,12 +177,18 @@ export class TaskShowServer {
174
177
  eventBus;
175
178
  publicRoot;
176
179
  logger;
180
+ /** Optional operations cache (v0.7.0+). Used by /api/tasks/:id/operations. */
181
+ operationsCache;
182
+ /** Optional tasks tree cache (v0.8.0+). Used by /api/tasks/tree. */
183
+ tasksTreeCache;
177
184
  constructor(opts) {
178
185
  this.cfg = opts.cfg;
179
186
  this.collector = opts.collector;
180
187
  this.eventBus = opts.eventBus ?? new DefaultEventBus();
181
188
  this.publicRoot = resolvePublicDir(opts.publicDir ?? PUBLIC_DIR, opts.metaUrl);
182
189
  this.logger = opts.logger ?? console;
190
+ this.operationsCache = opts.operationsCache ?? null;
191
+ this.tasksTreeCache = opts.tasksTreeCache ?? null;
183
192
  }
184
193
  /**
185
194
  * Get the SSE event bus (for tests / health checks).
@@ -339,6 +348,23 @@ export class TaskShowServer {
339
348
  this.handleFileContent(url, res);
340
349
  return;
341
350
  }
351
+ // /api/tasks/:id/operations — task lifecycle pipeline data
352
+ const opsMatch = pathname.match(/^\/api\/tasks\/([^/]+)\/operations$/);
353
+ if (opsMatch) {
354
+ const id = decodeURIComponent(opsMatch[1]);
355
+ const numericId = Number(id);
356
+ if (!Number.isFinite(numericId)) {
357
+ this.text(res, 400, `Invalid task id: ${id}`);
358
+ return;
359
+ }
360
+ await this.handleOperations(numericId, url, res);
361
+ return;
362
+ }
363
+ // /api/tasks/tree — hierarchical task list (v0.8.0+).
364
+ if (pathname === "/api/tasks/tree") {
365
+ await this.handleTasksTree(url, res);
366
+ return;
367
+ }
342
368
  // /task/:taskId
343
369
  const taskMatch = pathname.match(/^\/task\/([^/]+)$/);
344
370
  if (taskMatch) {
@@ -464,6 +490,134 @@ export class TaskShowServer {
464
490
  const sessions = this.collector.listSessions();
465
491
  this.sendHtml(res, 200, renderIndexPage(sessions));
466
492
  }
493
+ /**
494
+ * Handle /api/tasks/:id/operations — fetch the parsed operations envelope
495
+ * via the operations cache. Maps typed errors to HTTP status codes and
496
+ * sanitizes the payload to the public schema (no raw CLI output).
497
+ */
498
+ async handleOperations(taskId, url, res) {
499
+ if (!this.operationsCache) {
500
+ this.json(res, 503, { error: "operations_not_configured", id: taskId });
501
+ return;
502
+ }
503
+ if (!Number.isInteger(taskId) || taskId <= 0 || taskId > Number.MAX_SAFE_INTEGER) {
504
+ this.json(res, 400, { error: "bad_id", id: String(taskId) });
505
+ return;
506
+ }
507
+ const allowStale = url.searchParams.get("stale") !== "0";
508
+ try {
509
+ const cached = await this.operationsCache.get(taskId, { allowStale });
510
+ // Public schema — strip the raw `processDescription` (it's an
511
+ // internal process hint, not safe to surface verbatim) and keep
512
+ // only what the UI consumes.
513
+ const publicOps = cached.operations.map((op) => ({
514
+ id: op.id,
515
+ sequence: op.sequence,
516
+ milestoneType: op.milestoneType,
517
+ title: op.title,
518
+ description: op.description,
519
+ timestamp: op.timestamp,
520
+ sessionShort: op.sessionShort,
521
+ }));
522
+ this.json(res, 200, {
523
+ task: cached.task,
524
+ operations: publicOps,
525
+ fetchedAt: cached.fetchedAt,
526
+ stale: cached.stale,
527
+ });
528
+ }
529
+ catch (err) {
530
+ if (err instanceof TaskNotFoundError) {
531
+ this.json(res, 404, { error: "not_found", id: taskId });
532
+ return;
533
+ }
534
+ if (err instanceof AdapterError) {
535
+ this.logger.error(`operations: CLI error for task ${taskId}: ${err.message}`);
536
+ this.json(res, 503, { error: "cli_failed", id: taskId });
537
+ return;
538
+ }
539
+ this.logger.error(`operations: unexpected error for task ${taskId}: ${err}`);
540
+ this.json(res, 500, { error: "internal_error", id: taskId });
541
+ }
542
+ }
543
+ /**
544
+ * Handle /api/tasks/tree — fetch a parsed task tree from the host CLI
545
+ * via the TasksTreeCache. Query parameters map directly to CLI flags:
546
+ * - status (todo | active | completed | paused | cancelled)
547
+ * - priority (low | medium | high)
548
+ * - type (normal | cycle | longterm)
549
+ * - rootId (positive integer)
550
+ * - includeArchived (boolean)
551
+ * - stale=0 forces a fresh fetch
552
+ *
553
+ * Errors are mapped to HTTP status codes (503 when the cache isn't
554
+ * configured, 502 on CLI / parse failures, 500 on the unexpected).
555
+ */
556
+ async handleTasksTree(url, res) {
557
+ if (!this.tasksTreeCache) {
558
+ this.json(res, 503, { error: "tasks_tree_not_configured" });
559
+ return;
560
+ }
561
+ const filter = {};
562
+ const sp = url.searchParams;
563
+ const status = sp.get("status");
564
+ if (status) {
565
+ const allowed = ["todo", "active", "completed", "paused", "cancelled"];
566
+ if (!allowed.includes(status)) {
567
+ this.json(res, 400, { error: "bad_status", value: status });
568
+ return;
569
+ }
570
+ filter.status = status;
571
+ }
572
+ const priority = sp.get("priority");
573
+ if (priority) {
574
+ const allowed = ["low", "medium", "high"];
575
+ if (!allowed.includes(priority)) {
576
+ this.json(res, 400, { error: "bad_priority", value: priority });
577
+ return;
578
+ }
579
+ filter.priority = priority;
580
+ }
581
+ const type = sp.get("type");
582
+ if (type) {
583
+ const allowed = ["normal", "cycle", "longterm"];
584
+ if (!allowed.includes(type)) {
585
+ this.json(res, 400, { error: "bad_type", value: type });
586
+ return;
587
+ }
588
+ filter.type = type;
589
+ }
590
+ const rootIdStr = sp.get("rootId") ?? sp.get("root_id");
591
+ if (rootIdStr !== null && rootIdStr !== "") {
592
+ const rootId = Number(rootIdStr);
593
+ if (!Number.isInteger(rootId) || rootId <= 0 || rootId > Number.MAX_SAFE_INTEGER) {
594
+ this.json(res, 400, { error: "bad_root_id", value: rootIdStr });
595
+ return;
596
+ }
597
+ filter.rootId = rootId;
598
+ }
599
+ if (sp.get("includeArchived") === "1" || sp.get("include-archived") === "1" || sp.get("includeArchived") === "true") {
600
+ filter.includeArchived = true;
601
+ }
602
+ const allowStale = sp.get("stale") !== "0";
603
+ try {
604
+ const envelope = await this.tasksTreeCache.get(filter, { allowStale });
605
+ this.json(res, 200, {
606
+ ...envelope,
607
+ // Echo back the effective filter so the UI can update its URL bar.
608
+ filter,
609
+ });
610
+ }
611
+ catch (err) {
612
+ if (err instanceof AdapterError) {
613
+ this.logger.error(`tasks_tree: CLI error: ${err.message}`);
614
+ this.json(res, 502, { error: "cli_failed", message: err.message });
615
+ return;
616
+ }
617
+ this.logger.error(`tasks_tree: unexpected error: ${err}`);
618
+ this.json(res, 500, { error: "internal_error" });
619
+ }
620
+ }
467
621
  /**
468
622
  * Send a 404 page that still includes nav + helpful hint.
469
623
  */
@@ -570,7 +724,35 @@ function renderTaskPage(session) {
570
724
  `<td>${s.count}</td><td>${s.success}</td><td>${s.fail}</td><td>${s.totalMs} ms</td></tr>`)
571
725
  .join("");
572
726
  const toolcallsTable = renderToolcallsTable(session.toolCalls);
573
- const mermaid = buildMermaidDiagram(session);
727
+ // v0.8.0: replace the flat "Execution flow (Mermaid)" with the
728
+ // hierarchical "Task lifecycle + tools" diagram. Operations are
729
+ // empty server-side (the client-side task-operations.js fetches them
730
+ // async) so we render a one-line "loading..." placeholder below the
731
+ // linear tool chain. Once the operations arrive the client re-renders
732
+ // the diagram with subgraphs. When there are no operations yet we
733
+ // still pass the session status as the end label so the diagram
734
+ // reflects reality (e.g. "❌ Task failed") instead of a generic
735
+ // "end".
736
+ const status = session.status ?? "running";
737
+ const fallbackEndLabel = status === "failed"
738
+ ? `❌ Task ${status}`
739
+ : status === "completed"
740
+ ? `✅ Task ${status}`
741
+ : "end";
742
+ const initialMermaid = buildTaskLifecycleDiagram({
743
+ taskId: session.taskId,
744
+ operations: [],
745
+ toolCalls: session.toolCalls,
746
+ endLabel: fallbackEndLabel,
747
+ });
748
+ // The pipeline section is server-rendered in an empty/loading state;
749
+ // the client-side task-operations.js fetches /api/tasks/:id/operations
750
+ // and replaces it with the real timeline. This keeps the initial
751
+ // response fast and lets the pipeline work even when no CLI is present
752
+ // (graceful degradation). We pass `taskId` so the rendered section
753
+ // carries `data-task-id` and the client `boot()` can wire it up;
754
+ // without it the controller silently bails (the bug fixed in v0.6.12).
755
+ const pipelineHtml = renderOperationsPipeline({ operations: [], taskTitle: session.title, taskId: session.taskId });
574
756
  return /* html */ `<!DOCTYPE html>
575
757
  <html lang="en">
576
758
  <head>
@@ -594,9 +776,9 @@ function renderTaskPage(session) {
594
776
  </p>
595
777
  </header>
596
778
 
597
- <section class="panel">
598
- <h2>Execution flow (Mermaid)</h2>
599
- <div class="mermaid">${mermaid}</div>
779
+ <section class="panel panel-lifecycle" data-lifecycle-root data-task-id="${session.taskId}">
780
+ <h2>Task lifecycle + tools <span class="lifecycle-hint">click any tool node to highlight its row below</span></h2>
781
+ <div class="mermaid" data-mermaid-lifecycle>${initialMermaid}</div>
600
782
  </section>
601
783
 
602
784
  <section class="panel">
@@ -612,6 +794,8 @@ function renderTaskPage(session) {
612
794
  ${toolcallsTable}
613
795
  </section>
614
796
 
797
+ ${pipelineHtml}
798
+
615
799
  <section class="panel">
616
800
  <h2>Raw JSON</h2>
617
801
  <details>
@@ -622,6 +806,7 @@ function renderTaskPage(session) {
622
806
 
623
807
  <script src="/static/app.js"></script>
624
808
  <script src="/static/mermaid-renderer.js"></script>
809
+ <script src="/static/task-operations.js"></script>
625
810
  <script>
626
811
  if (window.mermaid) {
627
812
  window.mermaid.initialize({ startOnLoad: true, theme: 'default', securityLevel: 'loose' });
@@ -632,7 +817,7 @@ function renderTaskPage(session) {
632
817
  }
633
818
  function renderToolcallsTable(toolCalls) {
634
819
  const rows = toolCalls
635
- .map((call, idx) => {
820
+ .map((call) => {
636
821
  const argsJson = JSON.stringify(redactArgs(call.args), null, 2);
637
822
  const preview = call.error ? call.error : (call.outputPreview || "");
638
823
  const status = call.success ? "ok" : "fail";
@@ -650,22 +835,27 @@ function renderToolcallsTable(toolCalls) {
650
835
  const diffPanel = (oldStr != null && newStr != null)
651
836
  ? renderDiffPanel(argPath ?? "", String(oldStr), String(newStr))
652
837
  : "";
838
+ // v0.8.0: collapsed-by-default (no `open` attribute) so the table
839
+ // stays compact for sessions with hundreds of tool calls. Each
840
+ // row also carries `data-tool-id="<sequence>"` so the Mermaid
841
+ // callback (window.__toolClick) can scroll-into-view + highlight
842
+ // the right row.
653
843
  return `
654
- <tr class="row-${status}" data-args="${htmlEscape(argsJson)}">
844
+ <tr class="tool-row row-${status} collapsed" data-tool-id="${call.sequence}" data-args="${htmlEscape(argsJson)}">
655
845
  <td class="seq">${call.sequence}</td>
656
846
  <td><code>${htmlEscape(call.toolName)}</code>${attach}</td>
657
847
  <td class="status status-${status}">${status}</td>
658
848
  <td>${call.durationMs}</td>
659
849
  <td>${htmlEscape(fmtTs(call.timestamp))}</td>
660
850
  <td class="args-cell">
661
- <details><summary>show args</summary>
851
+ <details class="tool-detail"><summary>show args</summary>
662
852
  <pre class="json">${htmlEscape(argsJson)}</pre>
663
853
  </details>
664
854
  ${fileLink}
665
855
  ${diffPanel}
666
856
  </td>
667
857
  <td class="result-cell">
668
- <details><summary>show result</summary>
858
+ <details class="tool-detail"><summary>show result</summary>
669
859
  <pre class="json">${htmlEscape(preview)}</pre>
670
860
  </details>
671
861
  </td>
@@ -723,110 +913,120 @@ function renderDiffPanel(path, oldStr, newStr) {
723
913
  </details>`;
724
914
  }
725
915
  function renderIndexPage(sessions) {
726
- const row = sessions.length === 0
727
- ? `<p class="empty">No tasks recorded yet. Trigger a tool call (e.g. send a message in <code>interactive</code> mode) and refresh this page.</p>`
728
- : sessions
729
- .map((s) => {
730
- const tools = new Set(s.toolCalls.map((c) => c.toolName));
731
- const totalMs = s.toolCalls.reduce((a, c) => a + c.durationMs, 0);
732
- return `
733
- <tr>
734
- <td><a href="/task/${s.taskId}">#${s.taskId}</a></td>
735
- <td><span class="badge badge-${s.status}">${htmlEscape(s.status)}</span></td>
736
- <td>${s.toolCalls.length} calls · ${totalMs} ms</td>
737
- <td>${htmlEscape(s.title || "(no title)")}</td>
738
- <td>${htmlEscape(fmtTs(s.startedAt))}</td>
739
- <td class="tools">${Array.from(tools).map((t) => `<code>${htmlEscape(t)}</code>`).join(" ")}</td>
740
- </tr>`;
741
- })
742
- .join("");
916
+ // SSR hint the tree container is always rendered; if /api/tasks/tree
917
+ // returns 503 the JS shows a graceful empty state with a hint to
918
+ // check the CLI is on PATH.
743
919
  return /* html */ `<!DOCTYPE html>
744
920
  <html lang="en">
745
921
  <head>
746
922
  <meta charset="utf-8">
747
- <title>roy-plugin-task-show · index</title>
923
+ <title>roy-plugin-task-show · tasks tree</title>
748
924
  <link rel="stylesheet" href="/static/style.css">
749
- <script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
750
925
  </head>
751
- <body data-live-refresh>
926
+ <body data-live-refresh data-view="tasks-tree">
752
927
  <header class="topbar">
753
- <h1>📊 roy-plugin-task-show</h1>
928
+ <h1>🌳 roy-plugin-task-show · Tasks Tree</h1>
754
929
  <p class="meta">
755
- ${sessions.length} task session(s) collected this run.
756
- Live updates stream over <code>/api/events</code> (SSE).
930
+ Hierarchical view of <code>roy-agent</code> tasks (driven by <code>roy-agent tasks tree --json</code>).
931
+ ${sessions.length} live tool-call session(s) tracked this run.
757
932
  </p>
758
933
  <p class="meta connection-status" data-connection>
759
934
  <span class="conn-dot conn-disconnected"></span>
760
935
  <span class="conn-label">Connecting…</span>
761
936
  </p>
762
937
  </header>
763
- <section class="panel">
764
- <table class="sessions">
765
- <thead>
766
- <tr><th>Task ID</th><th>Status</th><th>Stats</th><th>Title</th><th>Started</th><th>Tools</th></tr>
767
- </thead>
768
- <tbody>${row}</tbody>
769
- </table>
938
+
939
+ <section class="panel tree-controls">
940
+ <div class="tree-controls-row">
941
+ <label class="tree-search">
942
+ <span>🔎</span>
943
+ <input type="search" data-tree-search placeholder="Filter by id or title (case-insensitive)" />
944
+ </label>
945
+ <div class="tree-filter-group" role="group" aria-label="Status filter">
946
+ <button type="button" class="tree-filter-btn is-active" data-tree-status="">all</button>
947
+ <button type="button" class="tree-filter-btn" data-tree-status="active">active</button>
948
+ <button type="button" class="tree-filter-btn" data-tree-status="todo">todo</button>
949
+ <button type="button" class="tree-filter-btn" data-tree-status="completed">completed</button>
950
+ <button type="button" class="tree-filter-btn" data-tree-status="paused">paused</button>
951
+ <button type="button" class="tree-filter-btn" data-tree-status="cancelled">cancelled</button>
952
+ </div>
953
+ <div class="tree-filter-group" role="group" aria-label="Priority filter">
954
+ <button type="button" class="tree-filter-btn is-active" data-tree-priority="">all priority</button>
955
+ <button type="button" class="tree-filter-btn" data-tree-priority="high">high</button>
956
+ <button type="button" class="tree-filter-btn" data-tree-priority="medium">medium</button>
957
+ <button type="button" class="tree-filter-btn" data-tree-priority="low">low</button>
958
+ </div>
959
+ <div class="tree-filter-group" role="group" aria-label="Tree actions">
960
+ <button type="button" class="tree-filter-btn" data-tree-action="expand">expand all</button>
961
+ <button type="button" class="tree-filter-btn" data-tree-action="collapse">collapse all</button>
962
+ <button type="button" class="tree-filter-btn" data-tree-action="refresh">↻ refresh</button>
963
+ </div>
964
+ </div>
965
+ <p class="meta tree-summary" data-tree-summary>
966
+ Loading…
967
+ </p>
770
968
  </section>
771
- <section class="panel">
772
- <h2>How to read this page</h2>
969
+
970
+ <section class="panel tree-panel" aria-label="Task hierarchy">
971
+ <div class="tasks-tree" data-tasks-tree role="tree" aria-busy="true">
972
+ <p class="empty">Loading task tree…</p>
973
+ </div>
974
+ </section>
975
+
976
+ <section class="panel tree-legend">
977
+ <h2>How to read this tree</h2>
773
978
  <ul>
774
- <li>Click a task ID to open the mermaid flow + tool call table for that task.</li>
775
- <li>The page subscribes to <code>GET /api/events</code> for real-time updates (created / recorded / completed).</li>
776
- <li>A 3-second polling fallback keeps the page fresh if SSE is blocked (e.g. behind certain proxies).</li>
777
- <li>Sessions are kept in memory only. Restart the host process to clear all data.</li>
979
+ <li>Each <strong>chevron (▶ / ▼)</strong> expands or collapses a node's children. By default the first <strong>three levels</strong> are open so the hierarchy is obvious at a glance.</li>
980
+ <li>Use <strong>expand all</strong> / <strong>collapse all</strong> at the top to control the whole tree, or click a single chevron to drill into one branch.</li>
981
+ <li>Filter chips restrict by <strong>status</strong> or <strong>priority</strong>; the search box matches against id or title.</li>
982
+ <li>Click any task title or id (<code>#1234</code>) to open its per-task detail page (tool-call flow + operations timeline).</li>
778
983
  </ul>
779
984
  </section>
985
+
986
+ ${
987
+ // v0.8.3: the legacy "Live tool-call sessions (legacy view)"
988
+ // panel duplicated the old flat-task table on the same page. With
989
+ // the tree view as the primary navigation surface, that legacy
990
+ // section actively confused users (it looked like the page was
991
+ // showing both a flat list AND a tree). Hide it by default but
992
+ // keep the data + handler around for /api/sessions and SSE so
993
+ // any external tooling still works. The id="legacy-sessions" hook
994
+ // is preserved so a future "show legacy table" toggle can restore
995
+ // it without code changes.
996
+ `<section class="panel tree-legacy-hidden" id="legacy-sessions" hidden>
997
+ <h2>Live tool-call sessions (legacy view)</h2>
998
+ ${sessions.length === 0
999
+ ? `<p class="empty">No tool calls recorded yet. Trigger a tool call in <code>interactive</code> mode and watch this table update.</p>`
1000
+ : `<table class="sessions">
1001
+ <thead>
1002
+ <tr><th>Task ID</th><th>Status</th><th>Stats</th><th>Title</th><th>Started</th><th>Tools</th></tr>
1003
+ </thead>
1004
+ <tbody>
1005
+ ${sessions
1006
+ .map((s) => {
1007
+ const tools = new Set(s.toolCalls.map((c) => c.toolName));
1008
+ const totalMs = s.toolCalls.reduce((a, c) => a + c.durationMs, 0);
1009
+ return `
1010
+ <tr>
1011
+ <td><a href="/task/${s.taskId}">#${s.taskId}</a></td>
1012
+ <td><span class="badge badge-${s.status}">${htmlEscape(s.status)}</span></td>
1013
+ <td>${s.toolCalls.length} calls · ${totalMs} ms</td>
1014
+ <td>${htmlEscape(s.title || "(no title)")}</td>
1015
+ <td>${htmlEscape(fmtTs(s.startedAt))}</td>
1016
+ <td class="tools">${Array.from(tools).map((t) => `<code>${htmlEscape(t)}</code>`).join(" ")}</td>
1017
+ </tr>`;
1018
+ })
1019
+ .join("")}
1020
+ </tbody>
1021
+ </table>`}
1022
+ </section>`}
1023
+
780
1024
  <script src="/static/app.js"></script>
781
1025
  <script src="/static/mermaid-renderer.js"></script>
782
- <script>
783
- if (window.mermaid) {
784
- window.mermaid.initialize({ startOnLoad: true, theme: 'default', securityLevel: 'loose' });
785
- }
786
- </script>
1026
+ <script src="/static/tasks-tree.js"></script>
787
1027
  </body>
788
1028
  </html>`;
789
1029
  }
790
- function buildMermaidDiagram(session) {
791
- // Mermaid `flowchart TD` with one node per tool call. We use `subgraph` to
792
- // group all calls under the task so multiple sessions on one page stay
793
- // visually separated.
794
- const lines = [];
795
- lines.push(`flowchart TD`);
796
- lines.push(` classDef ok fill:#dcfce7,stroke:#16a34a,color:#064e3b`);
797
- lines.push(` classDef fail fill:#fee2e2,stroke:#dc2626,color:#7f1d1d`);
798
- lines.push(` classDef runtime fill:#dbeafe,stroke:#2563eb,color:#1e3a8a`);
799
- lines.push(` Start([Task #${session.taskId} start]):::runtime`);
800
- let prev = "Start";
801
- if (session.toolCalls.length === 0) {
802
- lines.push(` End([end]):::runtime`);
803
- lines.push(` Start --> End`);
804
- return lines.join("\n");
805
- }
806
- session.toolCalls.forEach((call) => {
807
- const nodeId = `n${call.sequence}`;
808
- const label = `${call.sequence}. ${escapeMermaidLabel(call.toolName)}${call.hasAttachment ? " 📎" : ""}`;
809
- lines.push(` ${nodeId}["${label}<br/><small>${call.durationMs}ms · ${call.success ? "ok" : "FAIL"}</small>"]`);
810
- if (call.success) {
811
- lines.push(` class ${nodeId} ok`);
812
- }
813
- else {
814
- lines.push(` class ${nodeId} fail`);
815
- }
816
- lines.push(` ${prev} --> ${nodeId}`);
817
- prev = nodeId;
818
- });
819
- const status = session.status ?? "running";
820
- const endLabel = status === "failed" ? `❌ Task ${status}` : `✅ Task ${status}`;
821
- lines.push(` End([${endLabel}]):::runtime`);
822
- lines.push(` ${prev} --> End`);
823
- return lines.join("\n");
824
- }
825
- function escapeMermaidLabel(s) {
826
- // Mermaid is sensitive to a few chars. We mostly limit to ASCII and escape
827
- // brackets/quotes so node labels render safely.
828
- return s.replace(/[<>"#]/g, "").replace(/[^A-Za-z0-9_.\-]/g, "_");
829
- }
830
1030
  function aggregateStats(toolCalls) {
831
1031
  const out = {};
832
1032
  for (const c of toolCalls) {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAOzC,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAgB9E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAElC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AAEjC,MAAM,UAAU,GAAG,QAAQ,CAAC;AAiB5B,+EAA+E;AAC/E,qDAAqD;AACrD,+EAA+E;AAE/E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAKjC;IACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC;IAEtC,sEAAsE;IACtE,iEAAiE;IACjE,mEAAmE;IACnE,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,OAAO,GAAG,CAAC,GAA0B,EAAE,EAAE;gBAC7C,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;gBAC1B,IAAI,OAAO;oBAAE,OAAO;gBACpB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACxC,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC9C,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;oBACvE,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gEAAgE;IAChE,gEAAgE;IAChE,gBAAgB;IAChB,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;QAC5B,SAAS,GAAG,YAAY;QACxB,SAAS,GAAG,YAAY,EACxB,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,qBAAqB,SAAS,+CAA+C,YAAY,KAAK,YAAY,GAAG,CAC9G,CACF,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxD,IAAI,IAAI,GAAG,SAAS,CAAC;QACrB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,sEAAsE;QACtE,mEAAmE;QACnE,IAAI,OAAO,GAAkD,IAAI,CAAC;QAElE,MAAM,WAAW,GAAG,CAAC,GAA0B,EAAE,EAAE;YACjD,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACxC,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,EAAE;YAC1C,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACxC,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,OAAO,CAAC;gBACN,IAAI,EAAE,SAAS;gBACf,aAAa,EAAE,SAAS,KAAK,SAAS;aACvC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,IAAI,OAAO;gBAAE,OAAO;YAEpB,IAAI,IAAI,GAAG,YAAY,EAAE,CAAC;gBACxB,WAAW,CACT,MAAM,CAAC,MAAM,CACX,IAAI,KAAK,CACP,wBAAwB,SAAS,KAAK,YAAY,iCAAiC,CACpF,EACD,EAAE,IAAI,EAAE,YAAY,EAAE,CACvB,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,OAAO,GAAG,CAAC,GAA0B,EAAE,EAAE;gBACvC,IAAI,OAAO;oBAAE,OAAO;gBACpB,MAAM,IAAI,GAAG,GAAG,IAAK,GAA6B,CAAC,IAAI,CAAC;gBACxD,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,CACT,QAAQ,IAAI,kBAAkB,IAAI,GAAG,CAAC,EAAE,CACzC,CAAC;oBACF,yDAAyD;oBACzD,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBACxC,OAAO,GAAG,IAAI,CAAC;oBACjB,CAAC;oBACD,IAAI,IAAI,CAAC,CAAC;oBACV,SAAS,EAAE,CAAC;oBACZ,OAAO;gBACT,CAAC;gBACD,qCAAqC;gBACrC,WAAW,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE9B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;gBAC7B,IAAI,OAAO;oBAAE,OAAO;gBACpB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC9C,WAAW,CACT,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAC9D,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,8DAA8D;gBAC9D,6DAA6D;gBAC7D,0DAA0D;gBAC1D,cAAc;gBACd,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,SAAS,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,2CAA2C;AAC3C,SAAS,UAAU,CAAC,OAA2B;IAC7C,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,OAAO,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AACtE,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,MAAM,OAAO,cAAc;IACjB,MAAM,GAAuB,IAAI,CAAC;IACzB,GAAG,CAAiB;IACpB,SAAS,CAAoB;IAC7B,QAAQ,CAAW;IACnB,UAAU,CAAS;IACnB,MAAM,CAAuF;IAE9G,YAAY,IASX;QACC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,eAAe,EAAE,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,eAAe,GAAG,CAAC,GAAyB,EAAE,GAAwB,EAAE,EAAE;YAC9E,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;gBAC7D,IAAI,CAAC;oBACH,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;oBACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,2BAA2B,CAAC,CAAC;oBAC3D,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;gBACnC,CAAC;gBAAC,MAAM,CAAC;oBACP,wCAAwC;gBAC1C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAElD,OAAO,iBAAiB,CAAC;YACvB,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;YACnB,SAAS,EAAE,WAAW;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC,IAAI,CACL,CAAC,KAAK,EAAE,EAAE;YACR,eAAe;YACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;YACjG,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,6BAA6B,GAAG,EAAE;gBAChC,CAAC,KAAK,CAAC,aAAa;oBAClB,CAAC,CAAC,yBAAyB,WAAW,mBAAmB;oBACzD,CAAC,CAAC,EAAE,CAAC,CACV,CAAC;YACF,MAAM,IAAI,GAAe;gBACvB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;gBACnB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG;gBACH,MAAM;gBACN,aAAa,EAAE,KAAK,CAAC,aAAa;aACnC,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,kEAAkE;YAClE,mEAAmE;YACnE,qCAAqC;YACrC,IAAI,CAAC;gBACH,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;oBAChB,2BAA2B;gBAC7B,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3D,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,UAAU,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG;SACzF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YACD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,8DAA8D;YAC9D,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACzB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACzB,kDAAkD;YAClD,IAAI,CAAC;gBACH,mDAAmD;gBACnD,IAAI,OAAQ,CAAS,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;oBACxD,CAAS,CAAC,mBAAmB,EAAE,CAAC;gBACnC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,eAAe;IACf,0EAA0E;IAElE,KAAK,CAAC,MAAM,CAClB,GAAyB,EACzB,GAAwB;QAExB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAEnD,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAE9B,2BAA2B;QAC3B,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QAED,gBAAgB;QAChB,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC9D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,EAAE,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAW,CAAC,CAAC;YACrD,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,SAAS,YAAY,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,+EAA+E;QAC/E,oDAAoD;QACpD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC1D,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QAED,gBAAgB;QAChB,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACtD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAW,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAClC,OAAO;YACT,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,wCAAwC;QACxC,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YACnD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACvD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAW,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH;;;;;;;;;;;OAWG;IACK,iBAAiB,CAAC,GAAQ,EAAE,GAAwB;QAC1D,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,yCAAyC,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,uEAAuE;QACvE,0DAA0D;QAC1D,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACxG,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,sDAAsD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChG,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,mBAAmB,GAAG,EAAE,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,uBAAuB,GAAG,EAAE,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,EACjE,CAAC,GAAG,IAAI,GAAG,IAAI,CAChB,CAAC;QACF,IAAI,KAAK,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACnC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;oBAClB,IAAI,EAAE,EAAE;oBACR,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAC7B,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,KAAK,CAAC,IAAI;iBACrB,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC;IAEO,SAAS,CACf,IAA0B,EAC1B,GAAwB;QAExB,eAAe,CAAC,GAAG,CAAC,CAAC;QAErB,sEAAsE;QACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE,UAAmB;YACzB,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,aAAa,EAAE,QAAQ;YACvB,IAAI,EAAE,EAAE,QAAQ,EAAE;SACnB,CAAC;QACF,IAAI,CAAC;YACH,GAAG,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;YAC/B,OAAO;QACT,CAAC;QAED,sEAAsE;QACtE,mCAAmC;QACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,GAAwB;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,GAAwB,EAAE,MAAc;QAC3D,IAAI,CAAC,QAAQ,CACX,GAAG,EACH,GAAG,EACH,iEAAiE,MAAM,2BAA2B;YAChG,mBAAmB,MAAM,iBAAiB;YAC1C,0FAA0F;YAC1F,oDAAoD,CACvD,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,GAAwB,EAAE,OAAe;QAC3D,wCAAwC;QACxC,MAAM,IAAI,GAAG,IAAI;aACd,SAAS,CAAC,OAAO,CAAC;aAClB,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QACD,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAChC,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,OAAO,EAAE,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YAChC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACpC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAC3C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,IAAI,CAAC,GAAwB,EAAE,MAAc,EAAE,IAAa;QAClE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9C,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;QACxB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;QACjE,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAEO,IAAI,CAAC,GAAwB,EAAE,MAAc,EAAE,IAAY;QACjE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;QACxB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,2BAA2B,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEO,QAAQ,CAAC,GAAwB,EAAE,MAAc,EAAE,IAAY;QACrE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;QACxB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;QAC1D,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;CACF;AAED,+EAA+E;AAC/E,2DAA2D;AAC3D,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACrD,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpE,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,IAAI,CAAC;QACH,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,SAAS,UAAU,CAAC,IAA6B;IAC/C,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAChD,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3B,IAAI,0CAA0C,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACxD,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,OAAoB;IAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACvE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC;IAC1D,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;SACxC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SACvC,GAAG,CACF,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CACZ,iBAAiB,UAAU,CAAC,IAAI,CAAC,cAAc;QAC/C,OAAO,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,OAAO,eAAe,CAC5F;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE7C,OAAO,UAAU,CAAC;;;;iBAIH,OAAO,CAAC,MAAM;;;;wCAIS,OAAO,CAAC,MAAM,kBAAkB,WAAW;;;mBAGhE,OAAO,CAAC,MAAM;4BACL,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC;;iCAEpC,WAAW,KAAK,WAAW;UAClD,OAAO,CAAC,SAAS,CAAC,MAAM;UACxB,OAAO;UACP,YAAY,SAAS,SAAS;kBACtB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;2BAMnD,OAAO;;;;;;;eAOnB,SAAS,IAAI,qEAAqE;;;;;;MAM3F,cAAc;;;;;;;0BAOM,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;;;;;;;;;;;;QAY9D,CAAC;AACT,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAmC;IAC/D,MAAM,IAAI,GAAG,SAAS;SACnB,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,qEAAqE;QACrE,oEAAoE;QACpE,0DAA0D;QAC1D,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,OAAO;YACtB,CAAC,CAAC,qDAAqD,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,gDAAgD;YAC9I,CAAC,CAAC,EAAE,CAAC;QACP,0EAA0E;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC;QAC3G,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;QACxG,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC;YAClD,CAAC,CAAC,eAAe,CAAC,OAAO,IAAI,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAChE,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;yBACY,MAAM,gBAAgB,UAAU,CAAC,QAAQ,CAAC;4BACvC,IAAI,CAAC,QAAQ;sBACnB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,MAAM;qCAC1B,MAAM,KAAK,MAAM;gBACtC,IAAI,CAAC,UAAU;gBACf,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;;kCAGf,UAAU,CAAC,QAAQ,CAAC;;cAExC,QAAQ;cACR,SAAS;;;;kCAIW,UAAU,CAAC,OAAO,CAAC;;;cAGvC,CAAC;IACX,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO;;;;;;;eAOM,IAAI;aACN,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,IAAyC;IAC/D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;QACpF,MAAM,CAAC,GAAI,IAAY,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,IAAY,EAAE,MAAc,EAAE,MAAc;IACnE,oEAAoE;IACpE,gEAAgE;IAChE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,CAAC,KAAe,EAAE,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACtE,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,oBAAoB,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACpH,OAAO;;mDAE0C,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;;UAE/D,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC;UAC9B,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC;;eAEtB,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,QAAuB;IAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC/B,CAAC,CAAC,+IAA+I;QACjJ,CAAC,CAAC,QAAQ;aACL,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAClE,OAAO;;mCAEkB,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,MAAM;6CACZ,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC1D,CAAC,CAAC,SAAS,CAAC,MAAM,YAAY,OAAO;oBACrC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,YAAY,CAAC;oBACnC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;kCAChB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;kBACvF,CAAC;QACX,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,UAAU,CAAC;;;;;;;;;;;;QAYZ,QAAQ,CAAC,MAAM;;;;;;;;;;;;;eAaR,GAAG;;;;;;;;;;;;;;;;;;;;QAoBV,CAAC;AACT,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAoB;IAC/C,2EAA2E;IAC3E,uEAAuE;IACvE,sBAAsB;IACtB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IACxE,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IAC3E,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,MAAM,oBAAoB,CAAC,CAAC;IACjE,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,QAAQ,KAAK,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACzG,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,KAAK,KAAK,eAAe,IAAI,CAAC,UAAU,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC;QAChH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,KAAK,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,MAAM,EAAE,CAAC,CAAC;QACtC,IAAI,GAAG,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC;IAC/E,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,cAAc,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAS;IACnC,2EAA2E;IAC3E,gDAAgD;IAChD,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,cAAc,CACrB,SAAmC;IAEnC,MAAM,GAAG,GAAsF,EAAE,CAAC;IAClG,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,GACP,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACf,IAAI,CAAC,CAAC,OAAO;YAAE,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;;YAC3B,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;QACnB,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,CAAC;QAC5B,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;IACxB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAoI;IAEpI,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,KAA+B;IACxD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QACxB,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,SAAS,EAAE,CAAC,CAAC,SAAS;KACvB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,+EAA+E;AAC/E,kCAAkC;AAClC,+EAA+E;AAE/E,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,yBAAyB,CAAC;QACnC,KAAK,KAAK;YACR,OAAO,uCAAuC,CAAC;QACjD,KAAK,OAAO;YACV,OAAO,iCAAiC,CAAC;QAC3C,KAAK,MAAM;YACT,OAAO,eAAe,CAAC;QACzB,KAAK,MAAM;YACT,OAAO,WAAW,CAAC;QACrB,KAAK,MAAM;YACT,OAAO,cAAc,CAAC;QACxB;YACE,OAAO,2BAA2B,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,OAA2B;IAClE,0CAA0C;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAChF,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QAC9F,OAAO,GAAG,CAAC;IACb,CAAC;IACD,qCAAqC;IACrC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,GAAG,CAAC,CAAC,wDAAwD;AACtE,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}