@wkoutre/teamwork-os 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +3 -2
  2. package/cli.jsc +0 -0
  3. package/dist/assets/AnalyticsPage-BoafbdRY.js +1 -0
  4. package/dist/assets/BriefsPage-BsBjNIJT.js +1 -0
  5. package/dist/assets/BriefsPage-C2lUZ05b.css +1 -0
  6. package/dist/assets/Button-BOCZ-tMU.css +1 -0
  7. package/dist/assets/Button-xBBZQ0ie.js +1 -0
  8. package/dist/assets/Card-Q-x7mRn3.css +1 -0
  9. package/dist/assets/Card-u29day7d.js +1 -0
  10. package/dist/assets/ChatPanel-BUNJ-rXp.js +29 -0
  11. package/dist/assets/ChatPanel-CK_zI3mg.css +1 -0
  12. package/dist/assets/ContinuousImprovementPage-DQDtZtX3.css +1 -0
  13. package/dist/assets/ContinuousImprovementPage-F6fizSUr.js +1 -0
  14. package/dist/assets/HeartbeatPanel-D5azjMkJ.css +1 -0
  15. package/dist/assets/HeartbeatPanel-q7mW5VDk.js +1 -0
  16. package/dist/assets/IdeasContainer-Cl1WkgLe.css +1 -0
  17. package/dist/assets/IdeasContainer-DDhsyl1f.js +3 -0
  18. package/dist/assets/Input-C6Eciq4Y.css +1 -0
  19. package/dist/assets/Input-HhV6M0tu.js +1 -0
  20. package/dist/assets/KpiTile-pXTBj77S.js +1 -0
  21. package/dist/assets/MemoryExplore-DXgmdeOp.css +1 -0
  22. package/dist/assets/MemoryExplore-wFiVBkXu.js +1 -0
  23. package/dist/assets/MemoryHygiene-C_lFMujk.js +2 -0
  24. package/dist/assets/MemoryHygiene-D9-lcjQc.css +1 -0
  25. package/dist/assets/MemoryInjections-CG5Jnfc2.css +1 -0
  26. package/dist/assets/MemoryInjections-F6D1_uAX.js +1 -0
  27. package/dist/assets/MemoryOverview-BG2lpis1.js +1 -0
  28. package/dist/assets/MemoryOverview-BuFrUzre.css +1 -0
  29. package/dist/assets/MemoryPage-DS6LWMdS.js +2 -0
  30. package/dist/assets/MemoryPage-DkvxMEXj.css +1 -0
  31. package/dist/assets/MemoryWiki-Mh-mjN1m.css +1 -0
  32. package/dist/assets/MemoryWiki-cypT6R3l.js +3 -0
  33. package/dist/assets/OrgPage-DP2-hcbf.js +33 -0
  34. package/dist/assets/OrgPage-nDdhTt3V.css +1 -0
  35. package/dist/assets/PipelinesPage-BzYkkX-n.js +1 -0
  36. package/dist/assets/PipelinesPage-VXjq7839.css +1 -0
  37. package/dist/assets/RelativeTime-CARWwY-H.js +1 -0
  38. package/dist/assets/ScheduleOptimizerPage-Cmje0CoX.js +10 -0
  39. package/dist/assets/SessionHistory-DwX-i9Io.js +2 -0
  40. package/dist/assets/SettingsPage-C6Xq22uB.js +49 -0
  41. package/dist/assets/SettingsRow-4w9Ab9mk.js +1 -0
  42. package/dist/assets/SupervisorDashboardPage-BEuElLHE.css +1 -0
  43. package/dist/assets/SupervisorDashboardPage-CrsOGBZ8.js +1 -0
  44. package/dist/assets/UsagePage-Cm8NsPw7.js +4 -0
  45. package/dist/assets/UsagePage-DlwHL1zI.css +1 -0
  46. package/dist/assets/dagre-CHpVij2M.css +1 -0
  47. package/dist/assets/dagre.esm-DBOl5nQa.js +7 -0
  48. package/dist/assets/events-CCBP4a9s.js +1 -0
  49. package/dist/assets/generateCategoricalChart-pfORgeJG.js +60 -0
  50. package/dist/assets/index-C57L9wdB.css +1 -0
  51. package/dist/assets/index-tOLuwPW6.js +93 -0
  52. package/dist/assets/jsx-runtime-Bq3x7umQ.js +1 -0
  53. package/dist/assets/lib-osArdP58.js +16 -0
  54. package/dist/assets/react-dom-Cnw6SoYl.js +8 -0
  55. package/dist/assets/shared-CHkcO7VT.css +1 -0
  56. package/dist/assets/shared-wI40KN7Y.js +1 -0
  57. package/dist/assets/styles-Ds5gMQAQ.js +1 -0
  58. package/dist/assets/types-CNhs8RVF.js +1 -0
  59. package/dist/assets/ui-Bx41p7g8.js +1 -0
  60. package/dist/assets/useGet-CU5_p7vA.js +1 -0
  61. package/dist/assets/useWebSocket-Hg3RO6sx.js +1 -0
  62. package/dist/assets/value-A1VqfRmL.js +1 -0
  63. package/dist/index.html +45 -0
  64. package/gateway.jsc +0 -0
  65. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ ._container_z76tk_1{flex-direction:column;gap:14px;display:flex}._empty_z76tk_7{text-align:center;border:1px dashed var(--color-border);background:var(--color-bg-raised);border-radius:12px;flex-direction:column;align-items:center;gap:4px;margin:0;padding:32px 16px;display:flex}._emptyTitle_z76tk_20{color:var(--color-text);font-size:14px;font-weight:600}._emptySub_z76tk_26{color:var(--color-text-muted);font-size:12px}._card_z76tk_31{border:1px solid var(--color-border);background:var(--color-bg-raised);opacity:0;border-radius:12px;flex-direction:column;gap:10px;padding:14px 16px;animation:.22s ease-out forwards _cardIn_z76tk_1;display:flex;transform:translateY(-4px)}@keyframes _cardIn_z76tk_1{to{opacity:1;transform:translateY(0)}}._cardHeader_z76tk_51{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}._typeBadge_z76tk_59{letter-spacing:.04em;text-transform:uppercase;border:1px solid #0000;border-radius:999px;align-items:center;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}._typeBadgeSynthesis_z76tk_71{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary)}._typeBadgeTombstone_z76tk_77{background:var(--color-muted-bg);color:var(--color-text-muted);border-color:var(--color-border)}._typeBadgeContradiction_z76tk_83{background:color-mix(in srgb, var(--color-warning) 14%, transparent);color:var(--color-warning);border-color:var(--color-warning)}._targetRow_z76tk_89{flex:auto;align-items:center;gap:8px;min-width:0;display:inline-flex}._primaryFile_z76tk_97{font-family:var(--font-mono,ui-monospace, monospace);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;max-width:100%;padding:2px 8px;font-size:12px;overflow:hidden}._extraFilesToggle_z76tk_111{color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:4px 10px;font-family:inherit;font-size:11px;font-weight:500;transition:border-color .15s,color .15s,background .15s;display:inline-flex;position:relative}._extraFilesToggle_z76tk_111:after{content:"";position:absolute;inset:-10px}._extraFilesToggle_z76tk_111:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft)}._extraFilesToggle_z76tk_111:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._timestamp_z76tk_146{color:var(--color-text-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}._extraFilesList_z76tk_153{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;flex-direction:column;gap:4px;margin:0;padding:8px 12px;list-style:none;animation:.18s ease-out _cardIn_z76tk_1;display:flex}._extraFilesList_z76tk_153 code{font-family:var(--font-mono,ui-monospace, monospace);color:var(--color-text);font-size:12px}._action_z76tk_172{color:var(--color-text);margin:0;font-size:13px;font-weight:500;line-height:1.5}._bodyDisclosure_z76tk_180{border:1px solid var(--color-border);background:var(--color-bg);border-radius:8px;overflow:hidden}._bodySummary_z76tk_187{min-height:44px;color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:12px;font-weight:500;list-style:none;transition:background .15s,color .15s;display:flex}._bodySummary_z76tk_187::-webkit-details-marker{display:none}._bodySummary_z76tk_187:before{content:"▸";color:var(--color-text-muted);transition:transform .15s;display:inline-block}._bodyDisclosure_z76tk_180[open] ._bodySummary_z76tk_187:before{transform:rotate(90deg)}._bodySummary_z76tk_187:hover{background:var(--color-hover);color:var(--color-text)}._bodySummary_z76tk_187:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}._bodyMeta_z76tk_228{font-variant-numeric:tabular-nums;color:var(--color-text-muted);margin-left:auto;font-size:11px}._bodyPre_z76tk_235{max-height:360px;font-family:var(--font-mono,ui-monospace, monospace);color:var(--color-text);background:var(--color-bg);border-top:1px solid var(--color-border);white-space:pre-wrap;word-break:break-word;margin:0;padding:12px 14px;font-size:12px;line-height:1.55;overflow:auto}._actions_z76tk_250{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}._rejectGroup_z76tk_257{flex-direction:column;gap:6px;padding-top:4px;animation:.18s ease-out _cardIn_z76tk_1;display:flex}._rejectLabel_z76tk_265{color:var(--color-text);letter-spacing:.02em;font-size:12px;font-weight:600}._rejectHint_z76tk_272{color:var(--color-text-muted);font-weight:400}._rejectInput_z76tk_277{resize:vertical;width:100%}._kbdHint_z76tk_282{font-family:var(--font-mono,ui-monospace, monospace);color:var(--color-text-muted);background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;line-height:1.4;display:inline-block}._actionError_z76tk_296{color:var(--color-negative);background:var(--color-negative-soft);border:1px solid var(--color-negative);border-radius:8px;padding:8px 12px;font-size:12px;animation:.18s ease-out _cardIn_z76tk_1}@media (prefers-reduced-motion:reduce){._card_z76tk_31,._extraFilesList_z76tk_153,._rejectGroup_z76tk_257{opacity:1;animation:none;transform:none}._bodyDisclosure_z76tk_180[open] ._bodySummary_z76tk_187:before{transition:none}}@media (width<=480px){._cardHeader_z76tk_51{flex-direction:column;align-items:flex-start}._timestamp_z76tk_146{margin-left:0}._actions_z76tk_250{flex-direction:column}._actions_z76tk_250>*{width:100%}}._wrap_1t8pi_1{border:1px solid var(--color-border);background:var(--color-bg-raised);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}._tableHeader_1t8pi_10{background:var(--color-bg);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);grid-template-columns:16px 1.6fr .9fr .9fr .9fr .9fr 1fr;align-items:center;gap:12px;padding:10px 16px;font-size:11px;font-weight:600;display:grid}._chevronSpacer_1t8pi_25{width:16px}._empty_1t8pi_29{text-align:center;border:1px dashed var(--color-border);background:var(--color-bg-raised);border-radius:12px;flex-direction:column;align-items:center;gap:4px;margin:0;padding:32px 16px;display:flex}._emptyTitle_1t8pi_42{color:var(--color-text);font-size:14px;font-weight:600}._emptySub_1t8pi_48{color:var(--color-text-muted);font-size:12px}._runGroup_1t8pi_53{border-top:1px solid var(--color-border)}._runGroup_1t8pi_53:first-of-type{border-top:none}._row_1t8pi_61{text-align:left;width:100%;font:inherit;cursor:pointer;color:var(--color-text);background:0 0;border:none;grid-template-columns:16px 1.6fr .9fr .9fr .9fr .9fr 1fr;align-items:center;gap:12px;padding:10px 16px;transition:background .15s;display:grid}._row_1t8pi_61:hover{background:var(--color-hover)}._row_1t8pi_61:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}._rowOpen_1t8pi_86,._rowOpen_1t8pi_86:hover{background:var(--color-bg)}._chevron_1t8pi_25{color:var(--color-text-muted);font-size:11px;transition:transform .15s;display:inline-block}._rowOpen_1t8pi_86 ._chevron_1t8pi_25{transform:rotate(90deg)}._col_1t8pi_105{flex-direction:column;min-width:0;font-size:12px;display:flex}._colPrimary_1t8pi_112{color:var(--color-text);font-weight:500}._colSecondary_1t8pi_117{color:var(--color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}._colValue_1t8pi_126{color:var(--color-text);font-variant-numeric:tabular-nums;font-weight:500}._status_1t8pi_132{letter-spacing:.04em;text-transform:uppercase;border:1px solid #0000;border-radius:999px;justify-self:start;align-items:center;gap:6px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-flex}._statusDot_1t8pi_146{background:currentColor;border-radius:50%;width:6px;height:6px}._statusOk_1t8pi_153{background:var(--color-positive-soft);color:var(--color-positive);border-color:var(--color-positive)}._statusError_1t8pi_159{background:var(--color-negative-soft);color:var(--color-negative);border-color:var(--color-negative)}._detail_1t8pi_165{opacity:0;background:var(--color-bg);max-height:0;transition:max-height .22s,opacity .22s;overflow:hidden}._detailOpen_1t8pi_173{opacity:1;border-top:1px solid var(--color-border);max-height:1200px}._detailInner_1t8pi_179{flex-direction:column;gap:10px;padding:12px 16px 14px;display:flex}._detailEmpty_1t8pi_186{color:var(--color-text-muted);margin:0;font-size:12px;font-style:italic}._projectList_1t8pi_193{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}._projectRow_1t8pi_202{background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:8px;grid-template-columns:1.2fr 1fr 1fr .8fr;align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:grid}._projectName_1t8pi_214{font-family:var(--font-mono,ui-monospace, monospace);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}._metric_1t8pi_223{color:var(--color-text-muted);align-items:baseline;gap:6px;display:inline-flex}._metricLabel_1t8pi_230{letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:600}._metricValue_1t8pi_237{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}._metricWarn_1t8pi_244 ._metricValue_1t8pi_237{color:var(--color-warning)}._errorBlock_1t8pi_248{color:var(--color-negative);background:var(--color-negative-soft);border:1px solid var(--color-negative);word-break:break-word;border-radius:8px;padding:10px 12px;font-size:12px}@media (prefers-reduced-motion:reduce){._detail_1t8pi_165,._chevron_1t8pi_25,._row_1t8pi_61{transition:none}}@media (width<=768px){._tableHeader_1t8pi_10{display:none}._row_1t8pi_61{flex-wrap:wrap;align-items:center;gap:8px 14px;padding:12px 14px;display:flex}._col_1t8pi_105[data-label]{flex-direction:row;align-items:baseline;gap:4px;font-size:11px}._col_1t8pi_105[data-label]:before{content:attr(data-label) ":";text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-weight:600}._colSecondary_1t8pi_117{display:none}._status_1t8pi_132{margin-left:auto}._projectRow_1t8pi_202{grid-template-columns:1fr 1fr}._projectName_1t8pi_214{grid-column:1/-1}}._wrap_1xug7_1{flex-direction:column;gap:10px;display:flex}._empty_1xug7_7{text-align:center;border:1px dashed var(--color-border);background:var(--color-bg-raised);border-radius:12px;flex-direction:column;align-items:center;gap:4px;margin:0;padding:32px 16px;display:flex}._emptyTitle_1xug7_20{color:var(--color-text);font-size:14px;font-weight:600}._emptySub_1xug7_26{color:var(--color-text-muted);font-size:12px}._row_1xug7_31{border:1px solid var(--color-border);background:var(--color-bg-raised);border-radius:12px;grid-template-columns:minmax(160px,1fr) 2fr 2fr;align-items:center;gap:16px;padding:14px 16px;transition:border-color .18s;display:grid}._row_1xug7_31:hover{border-color:var(--color-border-strong)}._project_1xug7_47{flex-direction:column;gap:2px;min-width:0;display:flex}._projectName_1xug7_54{font-family:var(--font-mono,ui-monospace, monospace);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}._projectMeta_1xug7_64{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:11px}._metric_1xug7_70{flex-direction:column;gap:4px;min-width:0;display:flex}._metricLabel_1xug7_77{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);font-size:10px;font-weight:600}._sparkWrap_1xug7_85{align-items:center;gap:10px;display:flex}._spark_1xug7_85{flex:1 1 0;width:100%;min-width:0;height:36px}._sparkEmpty_1xug7_98{color:var(--color-text-muted);padding:8px 0;font-size:11px;font-style:italic}._sparkMeta_1xug7_105{flex-shrink:0;align-items:baseline;gap:6px;display:inline-flex}._sparkValue_1xug7_112{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}._sparkValueWarn_1xug7_119{color:var(--color-warning)}._sparkDelta_1xug7_123{font-variant-numeric:tabular-nums;color:var(--color-text-muted);font-size:11px;font-weight:600}._sparkDeltaUp_1xug7_130{color:var(--color-positive)}._sparkDeltaDown_1xug7_134{color:var(--color-negative)}@media (prefers-reduced-motion:reduce){._row_1xug7_31{transition:none}}@media (width<=768px){._row_1xug7_31{grid-template-columns:1fr;gap:12px}}._backdrop_37dat_1{z-index:1000;background:0 0;justify-content:center;align-items:flex-end;animation:.15s ease-out forwards _fadeIn_37dat_1;display:flex;position:fixed;inset:0}@keyframes _fadeIn_37dat_1{to{background:#0009}}._panel_37dat_7{background:var(--color-surface,#fff);opacity:0;border-radius:12px 12px 0 0;width:100%;max-width:720px;max-height:90vh;padding:24px;animation:.2s ease-out forwards _slideUp_37dat_1;overflow:auto;transform:translateY(20px)}@keyframes _slideUp_37dat_1{to{opacity:1;transform:translateY(0)}}._header_37dat_17{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}._close_37dat_18{cursor:pointer;background:0 0;border:none;min-width:44px;min-height:44px;font-size:20px}._member_37dat_19{border:1px solid var(--color-border,#ddd);border-radius:6px;margin-bottom:8px;padding:12px}._synthBtn_37dat_20{background:var(--color-accent,#36c);color:#fff;cursor:pointer;border:none;border-radius:6px;min-height:44px;margin-top:12px;padding:8px 16px}@media (width>=600px){._backdrop_37dat_1{align-items:center}._panel_37dat_7{border-radius:12px}}@media (prefers-reduced-motion:reduce){._backdrop_37dat_1,._panel_37dat_7{opacity:1;background:#0009;animation:none;transform:none}}._card_u7jav_1{border:1px solid var(--color-border);background:var(--color-bg-raised);border-radius:12px;flex-direction:column;gap:12px;min-width:0;padding:16px;display:flex}._header_u7jav_12{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}._headerLeft_u7jav_19{flex-direction:column;gap:2px;min-width:0;display:flex}._title_u7jav_26{color:var(--color-text);margin:0;font-size:14px;font-weight:600}._generatedAt_u7jav_33{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:11px}._refreshBtn_u7jav_39{flex-shrink:0}._loading_u7jav_43{color:var(--color-text-muted);margin:0;font-size:13px}._error_u7jav_49{color:var(--color-negative);border:1px solid var(--color-negative);background:var(--color-bg);border-radius:8px;margin:0;padding:10px 12px;font-size:13px}._metaRow_u7jav_59{flex-wrap:wrap;gap:8px;display:flex}._metaChip_u7jav_65{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;transition:border-color .15s;display:inline-flex}._metaChipLabel_u7jav_78{text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}._metaChipValue_u7jav_85{color:var(--color-text);font-variant-numeric:tabular-nums;font-weight:700}._metaWarn_u7jav_91{border-color:var(--color-warning)}._metaWarn_u7jav_91 ._metaChipValue_u7jav_85{color:var(--color-warning)}._gaugeGrid_u7jav_99{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}._gaugeItem_u7jav_105{flex-direction:column;gap:5px;display:flex}._gaugeLabel_u7jav_111{letter-spacing:.03em;text-transform:uppercase;color:var(--color-text-muted);justify-content:space-between;align-items:baseline;font-size:11px;font-weight:500;display:flex}._gaugeValue_u7jav_122{font-variant-numeric:tabular-nums;color:var(--color-text);text-transform:none;letter-spacing:0;font-size:13px;font-weight:600}._gaugeTrack_u7jav_131{background:var(--color-bg);border-radius:3px;height:6px;position:relative;overflow:hidden}._gaugeFill_u7jav_139{width:var(--hc-gauge-fill,0%);background:var(--hc-gauge-color,var(--color-positive));border-radius:3px;transition:width .4s,background .3s;position:absolute;inset:0 auto 0 0}._issueList_u7jav_148{border:1px solid var(--color-border);border-radius:8px;flex-direction:column;gap:1px;display:flex;overflow:hidden}._issueRow_u7jav_157{background:var(--color-bg);border-bottom:1px solid var(--color-border);grid-template-rows:auto auto;grid-template-columns:130px 1fr auto;gap:0 8px;padding:8px 10px;font-size:12px;display:grid}._issueRow_u7jav_157:last-child{border-bottom:none}._issueKind_u7jav_172{color:var(--color-warning);white-space:nowrap;grid-area:1/1;font-weight:600}._issueFile_u7jav_180{font-family:var(--font-mono,ui-monospace, monospace);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;grid-area:1/2;overflow:hidden}._issueAction_u7jav_190{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;grid-area:1/3/span 2;align-self:center;padding:4px 10px;font-size:11px;font-weight:500;transition:border-color .15s,color .15s,background .15s}._issueAction_u7jav_190:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft)}._issueAction_u7jav_190:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._issueDetail_u7jav_217{color:var(--color-text-muted);grid-area:2/1/auto/3;margin-top:2px;line-height:1.4}._allClear_u7jav_225{color:var(--color-positive);margin:0;font-size:13px;font-weight:500}._clusters_u7jav_232{border-top:1px solid var(--color-border);flex-direction:column;gap:10px;margin-top:8px;padding-top:12px;display:flex}._clustersHeader_u7jav_241{flex-direction:column;gap:8px;display:flex}._clustersTitleRow_u7jav_247{align-items:baseline;gap:10px;display:flex}._clustersTitle_u7jav_247{color:var(--color-text);margin:0;font-size:13px;font-weight:600}._clustersCount_u7jav_260{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:11px}._clustersControls_u7jav_266{flex-wrap:wrap;align-items:center;gap:12px;display:flex}._clustersSearch_u7jav_273{flex:220px;min-width:0;max-width:320px}._minSizeControl_u7jav_279{color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:11px;display:inline-flex}._minSizeLabel_u7jav_289{text-transform:uppercase;letter-spacing:.04em;font-weight:600}._minSizeSlider_u7jav_295{width:110px;accent-color:var(--color-primary);cursor:pointer}._minSizeValue_u7jav_301{color:var(--color-text);font-variant-numeric:tabular-nums;min-width:2.4em;font-weight:600}._emptyClusters_u7jav_308{color:var(--color-text-muted);margin:8px 0 0;font-size:12px;font-style:italic}._clusterGrid_u7jav_315{flex-wrap:wrap;align-items:center;gap:6px;animation:.24s ease-out both _clustersFadeIn_u7jav_1;display:flex}@keyframes _clustersFadeIn_u7jav_1{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){._clusterGrid_u7jav_315{animation:none}._gaugeFill_u7jav_139{transition:none}}._showAllBtn_u7jav_333{border:1px dashed var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:6px;align-self:flex-start;align-items:center;gap:6px;margin-top:4px;padding:4px 10px;font-family:inherit;font-size:12px;transition:border-color .15s,color .15s,background .15s;display:inline-flex}._showAllBtn_u7jav_333:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft);border-style:solid}._showAllBtn_u7jav_333:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._showAllHint_u7jav_362{font-variant-numeric:tabular-nums;opacity:.7}@media (width<=640px){._issueRow_u7jav_157{grid-template-columns:1fr auto}._issueKind_u7jav_172{grid-column:1}._issueFile_u7jav_180{grid-area:2/1}._issueAction_u7jav_190{grid-area:1/2/span 2}._issueDetail_u7jav_217{grid-area:3/1/auto/-1}._clustersControls_u7jav_266{flex-direction:column;align-items:stretch}._clustersSearch_u7jav_273{max-width:none}}._root_c6kv5_1{flex-direction:column;gap:28px;display:flex}._section_c6kv5_7{flex-direction:column;gap:12px;margin:0;display:flex}._sectionHead_c6kv5_14{flex-direction:column;gap:2px;display:flex}._sectionTitle_c6kv5_20{color:var(--color-text);letter-spacing:-.005em;align-items:center;gap:10px;margin:0;font-size:15px;font-weight:600;display:inline-flex}._sectionCount_c6kv5_31{font-variant-numeric:tabular-nums;min-width:1.8em;color:var(--color-primary);background:var(--color-primary-soft);border:1px solid var(--color-primary);border-radius:999px;justify-content:center;align-items:center;padding:1px 8px;font-size:11px;font-weight:700;display:inline-flex}._sectionDescription_c6kv5_46{color:var(--color-text-muted);margin:0;font-size:12px;line-height:1.5}
@@ -0,0 +1 @@
1
+ ._root_1ifrf_1{flex-direction:column;gap:16px;min-width:0;display:flex}._header_1ifrf_8{flex-direction:column;gap:4px;display:flex}._headerMeta_1ifrf_14{color:var(--color-text-muted);font-size:12px}._errorText_1ifrf_19{color:var(--color-negative)}._controls_1ifrf_23{border:1px solid var(--color-border);background:var(--color-bg-raised);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;padding:12px;display:grid}._control_1ifrf_23{flex-direction:column;gap:4px;min-width:0;display:flex}._controlLabel_1ifrf_40{color:var(--color-text-muted);letter-spacing:.03em;text-transform:uppercase;font-size:11px;font-weight:500}._controlInput_1ifrf_48{border:1px solid var(--color-border);background:var(--color-bg);min-height:36px;color:var(--color-text);border-radius:6px;padding:8px 10px;font-family:inherit;font-size:13px}._controlInput_1ifrf_48:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary)}._controlButtons_1ifrf_65{align-self:end;gap:8px;padding-bottom:2px;display:flex}._button_1ifrf_72,._buttonSecondary_1ifrf_73{cursor:pointer;border-radius:6px;min-height:36px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:background-color .12s,border-color .12s}._button_1ifrf_72{background:var(--color-primary);color:var(--color-on-primary,#fff);border:1px solid var(--color-primary)}._button_1ifrf_72:hover{filter:brightness(1.1)}._buttonSecondary_1ifrf_73{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}._buttonSecondary_1ifrf_73:hover{background:var(--color-bg-hover,var(--color-bg-raised))}._emptyState_1ifrf_104{text-align:center;border:1px dashed var(--color-border);color:var(--color-text-muted);border-radius:10px;padding:24px;font-size:13px;line-height:1.6}._emptyState_1ifrf_104 code{background:var(--color-bg-raised);border-radius:4px;padding:1px 5px;font-size:12px}._tableWrap_1ifrf_121{border:1px solid var(--color-border);background:var(--color-bg-raised);border-radius:10px;overflow-x:auto}._table_1ifrf_121{border-collapse:collapse;width:100%;min-width:800px;font-size:13px}@media (width<=767px){._tableWrap_1ifrf_121{overflow-x:visible}._table_1ifrf_121{min-width:0;display:block}._table_1ifrf_121 thead{display:none}._table_1ifrf_121 tbody{display:block}._table_1ifrf_121 tbody tr{border-bottom:1px solid var(--color-border);grid-template-columns:max-content 1fr auto;grid-template-areas:"when employee obs""session session session";gap:6px 12px;padding:12px;display:grid}._table_1ifrf_121 tbody tr:last-child{border-bottom:none}._table_1ifrf_121 tbody td{border-bottom:none;padding:0}._table_1ifrf_121 tbody td:first-child{grid-area:when}._table_1ifrf_121 tbody td:nth-child(2){grid-area:employee;align-self:center;font-weight:500}._table_1ifrf_121 tbody td:nth-child(3){grid-area:session}._table_1ifrf_121 tbody td:nth-child(4){grid-area:obs;align-self:center}._hideOnMobile_1ifrf_175{display:none!important}._codeChip_1ifrf_184{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}._numericCell_1ifrf_190{text-align:right;color:var(--color-text-muted);font-size:12px}._numericCell_1ifrf_190:before{content:"obs ";color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.05em;font-size:10px}}._table_1ifrf_121 thead th{background:var(--color-bg-raised);border-bottom:1px solid var(--color-border);text-align:left;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;font-size:11px;font-weight:600;position:sticky;top:0}._numericHeader_1ifrf_218{text-align:right!important}._table_1ifrf_121 tbody td{border-bottom:1px solid var(--color-border);vertical-align:top;color:var(--color-text);padding:10px 12px}._table_1ifrf_121 tbody tr:last-child td{border-bottom:none}._row_1ifrf_233{cursor:pointer}._row_1ifrf_233:hover{background:var(--color-bg-hover,#ffffff08)}._row_1ifrf_233:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}._rowSelected_1ifrf_246{background:var(--color-bg-hover,#ffffff0a)}._timestampCell_1ifrf_250{flex-direction:column;gap:2px;min-width:110px;display:flex}._timestampAbs_1ifrf_257{color:var(--color-text-muted);font-size:11px}._idCell_1ifrf_262{flex-direction:column;gap:4px;display:flex}._codeChip_1ifrf_184{background:var(--color-bg);border:1px solid var(--color-border);font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;max-width:220px;padding:2px 6px;font-size:11px;display:inline-block;overflow:hidden}._numericCell_1ifrf_190{text-align:right;font-variant-numeric:tabular-nums;color:var(--color-text)}._semanticBadge_1ifrf_289,._metadataBadge_1ifrf_290{border:1px solid var(--color-border);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}._semanticBadge_1ifrf_289{background:color-mix(in oklab, var(--color-primary) 15%, transparent);color:var(--color-primary);border-color:color-mix(in oklab, var(--color-primary) 40%, transparent)}._metadataBadge_1ifrf_290{background:var(--color-bg);color:var(--color-text-muted)}._queryCell_1ifrf_310{-webkit-line-clamp:2;max-width:280px;color:var(--color-text);-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}._muted_1ifrf_321{color:var(--color-text-muted)}._drawerBackdrop_1ifrf_327{z-index:30;background:#0006;justify-content:flex-end;display:flex;position:fixed;inset:0}._drawer_1ifrf_327{background:var(--color-bg);border-left:1px solid var(--color-border);flex-direction:column;gap:16px;width:min(480px,100vw);height:100vh;padding:20px;display:flex;overflow-y:auto;box-shadow:-8px 0 24px #0003}._drawerHeader_1ifrf_349{justify-content:space-between;align-items:center;display:flex}._drawerTitle_1ifrf_355{color:var(--color-text);margin:0;font-size:15px;font-weight:600}._closeButton_1ifrf_362{color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:14px}._closeButton_1ifrf_362:hover{color:var(--color-text);background:var(--color-bg-raised)}._drawerMeta_1ifrf_377{border:1px solid var(--color-border);background:var(--color-bg-raised);border-radius:8px;flex-direction:column;gap:8px;margin:0;padding:12px;display:flex}._drawerMetaRow_1ifrf_388{grid-template-columns:110px 1fr;align-items:baseline;gap:12px;font-size:12px;display:grid}._drawerMetaRow_1ifrf_388 dt{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:11px}._drawerMetaRow_1ifrf_388 dd{color:var(--color-text);word-break:break-word;margin:0}._drawerQuery_1ifrf_410{font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;padding:6px 8px;font-size:12px;line-height:1.45}._drawerSection_1ifrf_420{flex-direction:column;gap:8px;display:flex}._drawerSectionLabel_1ifrf_426{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:500}._observationList_1ifrf_434{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}._observationItem_1ifrf_443{background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:6px;align-items:center;gap:8px;padding:6px 10px;display:flex}._obsId_1ifrf_453{min-width:0;font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}._jumpLink_1ifrf_464{color:var(--color-primary);border:1px solid color-mix(in oklab, var(--color-primary) 40%, transparent);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:500}._jumpLink_1ifrf_464:hover{background:color-mix(in oklab, var(--color-primary) 10%, transparent)}@media (width<=767px){._controls_1ifrf_23{grid-template-columns:1fr}._controlButtons_1ifrf_65{flex-direction:row;justify-content:flex-end;align-self:stretch}._drawer_1ifrf_327{width:100vw}}
@@ -0,0 +1 @@
1
+ import{n as e,s as t,t as n}from"./jsx-runtime-Bq3x7umQ.js";import{d as r}from"./index-tOLuwPW6.js";import"./ui-Bx41p7g8.js";import{n as i}from"./shared-wI40KN7Y.js";var a=t(e(),1),o={root:`_root_1ifrf_1`,header:`_header_1ifrf_8`,headerMeta:`_headerMeta_1ifrf_14`,errorText:`_errorText_1ifrf_19`,controls:`_controls_1ifrf_23`,control:`_control_1ifrf_23`,controlLabel:`_controlLabel_1ifrf_40`,controlInput:`_controlInput_1ifrf_48`,controlButtons:`_controlButtons_1ifrf_65`,button:`_button_1ifrf_72`,buttonSecondary:`_buttonSecondary_1ifrf_73`,emptyState:`_emptyState_1ifrf_104`,tableWrap:`_tableWrap_1ifrf_121`,table:`_table_1ifrf_121`,hideOnMobile:`_hideOnMobile_1ifrf_175`,codeChip:`_codeChip_1ifrf_184`,numericCell:`_numericCell_1ifrf_190`,numericHeader:`_numericHeader_1ifrf_218`,row:`_row_1ifrf_233`,rowSelected:`_rowSelected_1ifrf_246`,timestampCell:`_timestampCell_1ifrf_250`,timestampAbs:`_timestampAbs_1ifrf_257`,idCell:`_idCell_1ifrf_262`,semanticBadge:`_semanticBadge_1ifrf_289`,metadataBadge:`_metadataBadge_1ifrf_290`,queryCell:`_queryCell_1ifrf_310`,muted:`_muted_1ifrf_321`,drawerBackdrop:`_drawerBackdrop_1ifrf_327`,drawer:`_drawer_1ifrf_327`,drawerHeader:`_drawerHeader_1ifrf_349`,drawerTitle:`_drawerTitle_1ifrf_355`,closeButton:`_closeButton_1ifrf_362`,drawerMeta:`_drawerMeta_1ifrf_377`,drawerMetaRow:`_drawerMetaRow_1ifrf_388`,drawerQuery:`_drawerQuery_1ifrf_410`,drawerSection:`_drawerSection_1ifrf_420`,drawerSectionLabel:`_drawerSectionLabel_1ifrf_426`,observationList:`_observationList_1ifrf_434`,observationItem:`_observationItem_1ifrf_443`,obsId:`_obsId_1ifrf_453`,jumpLink:`_jumpLink_1ifrf_464`},s=n(),c=50;function l(e){try{return new Date(e).toLocaleString()}catch{return e}}function u(e){try{let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4);if(n<1)return`just now`;if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}catch{return e}}function d(e){let[t,n]=(0,a.useState)([]),[d,f]=(0,a.useState)(``),[p,m]=(0,a.useState)(``),[h,g]=(0,a.useState)(``),[_,v]=(0,a.useState)(null),[y,b]=(0,a.useState)({status:`idle`}),[x,S]=(0,a.useState)(0),C=(0,a.useRef)(null),[w,T]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=new AbortController;return fetch(`/api/memory/stats`,{signal:e.signal}).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);T(((await e.json()).byEmployee??[]).filter(e=>e.employee!==null).map(e=>({value:e.employee,count:e.count})).sort((e,t)=>(t.count??0)-(e.count??0)))}).catch(()=>{T([])}),()=>e.abort()},[x]);let E=(0,a.useMemo)(()=>{let e=new URLSearchParams;for(let n of t)e.append(`employee`,n);return d.trim()&&e.set(`jobId`,d.trim()),p.trim()&&e.set(`sessionId`,p.trim()),h.trim()&&e.set(`observationId`,h.trim()),e.set(`limit`,String(c)),e.toString()},[t,d,p,h]);(0,a.useEffect)(()=>{let e=window.setTimeout(()=>{C.current?.abort();let e=new AbortController;C.current=e,b({status:`loading`}),fetch(`/api/memory/injections?${E}`,{signal:e.signal}).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);b({status:`ok`,data:await e.json()})}).catch(e=>{e instanceof DOMException&&e.name===`AbortError`||b({status:`error`,error:e instanceof Error?e.message:String(e)})})},200);return()=>{window.clearTimeout(e),C.current?.abort()}},[E,x]);let D=(0,a.useCallback)(()=>S(e=>e+1),[]),O=(0,a.useCallback)(()=>{n([]),f(``),m(``),g(``)},[]),k=y.status===`ok`?y.data.injections:[],A=y.status===`ok`?y.data.total:0,j=k.length;return(0,s.jsxs)(`div`,{className:o.root,children:[(0,s.jsxs)(`div`,{className:o.header,children:[(0,s.jsx)(i,{title:`Retrieval observability`,subtitle:`Every call to retrieveContext() logs which observations actually landed in the agent prompt. Use this to judge whether retrieval is surfacing the right material.`}),(0,s.jsxs)(`div`,{className:o.headerMeta,children:[y.status===`loading`&&`Loading…`,y.status===`error`&&(0,s.jsxs)(`span`,{className:o.errorText,children:[`Error: `,y.error]}),y.status===`ok`&&(0,s.jsxs)(s.Fragment,{children:[`Showing `,j,` of `,A.toLocaleString(),` injection`,A===1?``:`s`,j<A?` — narrow the filters to drill in`:``]})]})]}),(0,s.jsxs)(`div`,{className:o.controls,children:[(0,s.jsxs)(`div`,{className:o.control,children:[(0,s.jsx)(`span`,{className:o.controlLabel,children:`Employee`}),(0,s.jsx)(r,{options:w??[],selected:t,onChange:n,emptyLabel:`Any employee`,searchPlaceholder:`Filter employees…`,loading:w===null})]}),(0,s.jsxs)(`div`,{className:o.control,children:[(0,s.jsx)(`label`,{className:o.controlLabel,htmlFor:`inj-job`,children:`Job ID contains`}),(0,s.jsx)(`input`,{id:`inj-job`,className:o.controlInput,value:d,onChange:e=>f(e.target.value),placeholder:`e.g. update-linear`})]}),(0,s.jsxs)(`div`,{className:o.control,children:[(0,s.jsx)(`label`,{className:o.controlLabel,htmlFor:`inj-session`,children:`Session ID contains`}),(0,s.jsx)(`input`,{id:`inj-session`,className:o.controlInput,value:p,onChange:e=>m(e.target.value),placeholder:`e.g. sess-abc`})]}),(0,s.jsxs)(`div`,{className:o.control,children:[(0,s.jsx)(`label`,{className:o.controlLabel,htmlFor:`inj-obs`,children:`Observation ID contains`}),(0,s.jsx)(`input`,{id:`inj-obs`,className:o.controlInput,value:h,onChange:e=>g(e.target.value),placeholder:`full ID (paste from drawer)`})]}),(0,s.jsxs)(`div`,{className:o.controlButtons,children:[(0,s.jsx)(`button`,{type:`button`,className:o.buttonSecondary,onClick:O,children:`Clear`}),(0,s.jsx)(`button`,{type:`button`,className:o.button,onClick:D,children:`Refresh`})]})]}),y.status===`ok`&&k.length===0?(0,s.jsxs)(`div`,{className:o.emptyState,children:[(0,s.jsx)(`strong`,{children:`No injections logged yet.`}),(0,s.jsx)(`br`,{}),`Run a cron job or trigger a session — every `,(0,s.jsx)(`code`,{children:`retrieveContext()`}),` call will append a row here.`]}):null,k.length>0?(0,s.jsx)(`div`,{className:o.tableWrap,children:(0,s.jsxs)(`table`,{className:o.table,children:[(0,s.jsx)(`thead`,{children:(0,s.jsxs)(`tr`,{children:[(0,s.jsx)(`th`,{scope:`col`,children:`When`}),(0,s.jsx)(`th`,{scope:`col`,children:`Employee`}),(0,s.jsx)(`th`,{scope:`col`,children:`Job / Session`}),(0,s.jsx)(`th`,{scope:`col`,className:o.numericHeader,children:`Obs`}),(0,s.jsx)(`th`,{scope:`col`,className:`${o.numericHeader} ${o.hideOnMobile}`,children:`Chars`}),(0,s.jsx)(`th`,{scope:`col`,className:o.hideOnMobile,children:`Retrieval`}),(0,s.jsx)(`th`,{scope:`col`,className:o.hideOnMobile,children:`Query`})]})}),(0,s.jsx)(`tbody`,{children:k.map(e=>(0,s.jsxs)(`tr`,{className:`${o.row} ${_?.id===e.id?o.rowSelected:``}`,onClick:()=>v(e),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),v(e))},tabIndex:0,role:`button`,"aria-label":`Injection for ${e.employee??`unknown employee`}, ${e.count} observations`,children:[(0,s.jsx)(`td`,{children:(0,s.jsxs)(`div`,{className:o.timestampCell,children:[(0,s.jsx)(`span`,{children:u(e.injectedAt)}),(0,s.jsx)(`span`,{className:o.timestampAbs,children:l(e.injectedAt)})]})}),(0,s.jsx)(`td`,{children:e.employee??(0,s.jsx)(`span`,{className:o.muted,children:`unattributed`})}),(0,s.jsxs)(`td`,{className:o.idCell,children:[e.jobId?(0,s.jsx)(`code`,{className:o.codeChip,children:e.jobId}):null,e.sessionId?(0,s.jsxs)(`code`,{className:o.codeChip,children:[`sess: `,e.sessionId.slice(0,12),`…`]}):null,!e.jobId&&!e.sessionId?(0,s.jsx)(`span`,{className:o.muted,children:`—`}):null]}),(0,s.jsx)(`td`,{className:o.numericCell,children:e.count}),(0,s.jsx)(`td`,{className:`${o.numericCell} ${o.hideOnMobile}`,children:e.charCount.toLocaleString()}),(0,s.jsx)(`td`,{className:o.hideOnMobile,children:e.semanticUsed?(0,s.jsx)(`span`,{className:o.semanticBadge,children:`hybrid`}):(0,s.jsx)(`span`,{className:o.metadataBadge,children:`metadata`})}),(0,s.jsx)(`td`,{className:o.hideOnMobile,children:(0,s.jsx)(`span`,{className:o.queryCell,title:e.query??``,children:e.query??(0,s.jsx)(`span`,{className:o.muted,children:`—`})})})]},e.id))})]})}):null,_?(0,s.jsx)(`div`,{className:o.drawerBackdrop,onClick:()=>v(null),role:`presentation`,children:(0,s.jsxs)(`div`,{className:o.drawer,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`injection-drawer-title`,onClick:e=>e.stopPropagation(),onKeyDown:e=>{e.key===`Escape`&&v(null)},children:[(0,s.jsxs)(`div`,{className:o.drawerHeader,children:[(0,s.jsxs)(`h3`,{id:`injection-drawer-title`,className:o.drawerTitle,children:[`Injection #`,_.id]}),(0,s.jsx)(`button`,{type:`button`,className:o.closeButton,onClick:()=>v(null),"aria-label":`Close`,children:`✕`})]}),(0,s.jsxs)(`dl`,{className:o.drawerMeta,children:[(0,s.jsxs)(`div`,{className:o.drawerMetaRow,children:[(0,s.jsx)(`dt`,{children:`When`}),(0,s.jsx)(`dd`,{children:l(_.injectedAt)})]}),(0,s.jsxs)(`div`,{className:o.drawerMetaRow,children:[(0,s.jsx)(`dt`,{children:`Employee`}),(0,s.jsx)(`dd`,{children:_.employee??`unattributed`})]}),(0,s.jsxs)(`div`,{className:o.drawerMetaRow,children:[(0,s.jsx)(`dt`,{children:`Job`}),(0,s.jsx)(`dd`,{children:_.jobId??`—`})]}),(0,s.jsxs)(`div`,{className:o.drawerMetaRow,children:[(0,s.jsx)(`dt`,{children:`Session`}),(0,s.jsx)(`dd`,{children:_.sessionId??`—`})]}),(0,s.jsxs)(`div`,{className:o.drawerMetaRow,children:[(0,s.jsx)(`dt`,{children:`Retrieval`}),(0,s.jsx)(`dd`,{children:_.semanticUsed?`hybrid (semantic + metadata)`:`metadata-only`})]}),(0,s.jsxs)(`div`,{className:o.drawerMetaRow,children:[(0,s.jsx)(`dt`,{children:`Prompt size`}),(0,s.jsxs)(`dd`,{children:[_.charCount.toLocaleString(),` chars (`,_.count,` obs)`]})]}),_.query?(0,s.jsxs)(`div`,{className:o.drawerMetaRow,children:[(0,s.jsx)(`dt`,{children:`Query`}),(0,s.jsx)(`dd`,{className:o.drawerQuery,children:_.query})]}):null]}),(0,s.jsxs)(`div`,{className:o.drawerSection,children:[(0,s.jsxs)(`div`,{className:o.drawerSectionLabel,children:[`Injected observations (`,_.observationIds.length,`)`]}),(0,s.jsx)(`ul`,{className:o.observationList,children:_.observationIds.map(e=>(0,s.jsxs)(`li`,{className:o.observationItem,children:[(0,s.jsx)(`code`,{className:o.obsId,children:e}),(0,s.jsx)(`button`,{type:`button`,className:o.jumpLink,onClick:()=>{g(e),v(null)},title:`Filter injections containing this observation ID`,children:`Filter`})]},e))})]})]})}):null]})}export{d as MemoryInjections};
@@ -0,0 +1 @@
1
+ import{n as e,s as t,t as n}from"./jsx-runtime-Bq3x7umQ.js";import{t as r}from"./useGet-CU5_p7vA.js";import{i,n as a,r as o,t as s}from"./shared-wI40KN7Y.js";var c=t(e(),1);function l(e=30,t){return r(`/api/memory/stats?days=${e}`,{refreshToken:t})}function u(e={}){return r(`/api/memory/top-retrieved?days=${e.days??7}&limit=${e.limit??20}`,{refreshToken:e.refreshToken})}function d(e={}){return r(`/api/memory/dead-weight?days=${e.days??7}&limit=${e.limit??20}`,{refreshToken:e.refreshToken})}var f={root:`_root_1yuyd_1`,leadRow:`_leadRow_1yuyd_8`,lead:`_lead_1yuyd_8`,leadMuted:`_leadMuted_1yuyd_24`,refreshButton:`_refreshButton_1yuyd_28`,placeholder:`_placeholder_1yuyd_50`,statGrid:`_statGrid_1yuyd_57`,sparkCard:`_sparkCard_1yuyd_65`,sparkHeader:`_sparkHeader_1yuyd_72`,sparkTitle:`_sparkTitle_1yuyd_81`,sparkMeta:`_sparkMeta_1yuyd_87`,sparkSvg:`_sparkSvg_1yuyd_93`,sparkAxis:`_sparkAxis_1yuyd_100`,sparkLineA:`_sparkLineA_1yuyd_105`,sparkLineB:`_sparkLineB_1yuyd_113`,sparkLabel:`_sparkLabel_1yuyd_122`,sparkTickLabel:`_sparkTickLabel_1yuyd_128`,legend:`_legend_1yuyd_133`,legendItemA:`_legendItemA_1yuyd_142`,legendItemB:`_legendItemB_1yuyd_143`,legendSwatch:`_legendSwatch_1yuyd_149`,twoCol:`_twoCol_1yuyd_166`,panel:`_panel_1yuyd_172`,panelHeader:`_panelHeader_1yuyd_183`,panelTitle:`_panelTitle_1yuyd_190`,panelMeta:`_panelMeta_1yuyd_197`,panelBody:`_panelBody_1yuyd_202`,retrievedList:`_retrievedList_1yuyd_210`,deadList:`_deadList_1yuyd_211`,retrievedRow:`_retrievedRow_1yuyd_220`,deadRow:`_deadRow_1yuyd_221`,retrievedHeader:`_retrievedHeader_1yuyd_231`,retrievedCount:`_retrievedCount_1yuyd_240`,retrievedEmployee:`_retrievedEmployee_1yuyd_251`,deadEmployee:`_deadEmployee_1yuyd_252`,retrievedMeta:`_retrievedMeta_1yuyd_258`,retrievedContent:`_retrievedContent_1yuyd_262`,deadContent:`_deadContent_1yuyd_263`,retrievedTags:`_retrievedTags_1yuyd_270`,deadTags:`_deadTags_1yuyd_271`,deadMeta:`_deadMeta_1yuyd_277`,chipPersistent:`_chipPersistent_1yuyd_287`,tagChip:`_tagChip_1yuyd_299`},p=n();function m(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=0,r=e;for(;r>=1024&&n<t.length-1;)r/=1024,n+=1;return`${r.toFixed(r>=10||n===0?0:1)} ${t[n]}`}function h(e){return Number.isFinite(e)?`${Math.round(e*100)}%`:`0%`}function g(e){let t=Date.parse(e);if(Number.isNaN(t))return e;let n=Date.now()-t,r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<30?`${a}d ago`:new Date(t).toISOString().slice(0,10)}function _({series:e,labelA:t,labelB:n}){if(e.length===0)return(0,p.jsx)(`div`,{className:f.sparkMeta,children:`No daily data yet.`});let r=Math.max(...e.map(e=>e.a),0),i=Math.max(...e.map(e=>e.b),0),a=Math.max(r,i,1),o=e.length>1?520/(e.length-1):0,s=t=>e.map((e,n)=>{let r=32+n*o,i=110-e[t]/a*98;return`${n===0?`M`:`L`} ${r.toFixed(2)} ${i.toFixed(2)}`}).join(` `),c=e[0]?.date.slice(5)??``,l=e[e.length-1]?.date.slice(5)??``;return(0,p.jsxs)(`div`,{children:[(0,p.jsxs)(`svg`,{className:f.sparkSvg,viewBox:`0 0 560 140`,preserveAspectRatio:`none`,role:`img`,"aria-label":`Daily activity: ${t} and ${n} over ${e.length} days, peak ${a}`,children:[(0,p.jsx)(`line`,{className:f.sparkAxis,x1:32,x2:552,y1:110,y2:110}),(0,p.jsx)(`path`,{className:f.sparkLineA,d:s(`a`)}),(0,p.jsx)(`path`,{className:f.sparkLineB,d:s(`b`)}),(0,p.jsx)(`text`,{className:f.sparkLabel,x:28,y:16,textAnchor:`end`,children:a}),(0,p.jsx)(`text`,{className:f.sparkLabel,x:28,y:113,textAnchor:`end`,children:`0`}),(0,p.jsx)(`text`,{className:f.sparkTickLabel,x:32,y:136,textAnchor:`start`,children:c}),(0,p.jsx)(`text`,{className:f.sparkTickLabel,x:552,y:136,textAnchor:`end`,children:l})]}),(0,p.jsxs)(`div`,{className:f.legend,children:[(0,p.jsxs)(`span`,{className:f.legendItemA,children:[(0,p.jsx)(`span`,{className:f.legendSwatch,"aria-hidden":`true`}),` `,t]}),(0,p.jsxs)(`span`,{className:f.legendItemB,children:[(0,p.jsx)(`span`,{className:f.legendSwatch,"aria-hidden":`true`}),` `,n]})]})]})}function v(e,t=160){return e.length<=t?e:`${e.slice(0,t-1).trimEnd()}…`}function y(e){let[t,n]=(0,c.useState)(0),r=(0,c.useCallback)(()=>n(e=>e+1),[]),i=l(30,t),o=u({days:7,limit:20,refreshToken:t}),m=d({days:7,limit:20,refreshToken:t}),h=i.status===`loading`,_=i.status===`error`||o.status===`error`||m.status===`error`;return(0,p.jsxs)(`div`,{className:f.root,children:[(0,p.jsxs)(`div`,{className:f.leadRow,children:[(0,p.jsxs)(`p`,{className:f.lead,children:[`Live view of the observation store — every counter queries the gateway directly.`,(0,p.jsxs)(`span`,{className:f.leadMuted,children:[` `,`Aggregates cover the last 30 days. The daily chart layers `,(0,p.jsx)(`em`,{children:`new observations`}),` against `,(0,p.jsx)(`em`,{children:`retrievals`}),` so you can see whether writes correlate with agent usage.`]})]}),(0,p.jsx)(`button`,{type:`button`,className:f.refreshButton,onClick:r,disabled:h,children:h?`Loading…`:`Refresh`})]}),_?(0,p.jsxs)(s,{children:[(0,p.jsx)(`strong`,{children:`Gateway unreachable.`}),` `,i.status===`error`?i.error:null,o.status===`error`?` · ${o.error}`:null,m.status===`error`?` · ${m.error}`:null,(0,p.jsx)(`br`,{}),(0,p.jsxs)(`small`,{children:[`The Memory Explorer requires the gateway at `,(0,p.jsx)(`code`,{children:`http://localhost:7463`}),`. Start it with `,(0,p.jsx)(`code`,{children:`npm run server`}),` and click Refresh.`]})]}):null,i.status===`ok`?(0,p.jsx)(b,{stats:i.data}):_?null:(0,p.jsx)(`div`,{className:f.placeholder,children:`Loading stats…`}),o.status===`ok`?(0,p.jsxs)(`section`,{className:f.panel,children:[(0,p.jsx)(a,{title:`Top retrieved (last 7 days)`,subtitle:o.data.results.length===0?`No retrievals logged yet — kick off a cron job or session to populate.`:`Observations most often injected into agent prompts. High repetition is the P1 signal.`}),(0,p.jsx)(`ul`,{className:f.retrievedList,children:o.data.results.map(e=>(0,p.jsxs)(`li`,{className:f.retrievedRow,children:[(0,p.jsxs)(`div`,{className:f.retrievedHeader,children:[(0,p.jsxs)(`span`,{className:f.retrievedCount,children:[e.injectionCount,`×`]}),(0,p.jsx)(`span`,{className:f.retrievedEmployee,children:e.employee??`unattributed`}),(0,p.jsxs)(`span`,{className:f.retrievedMeta,children:[`last `,g(e.lastSeen)]}),e.persistent?(0,p.jsx)(`span`,{className:f.chipPersistent,children:`persistent`}):null]}),(0,p.jsx)(`div`,{className:f.retrievedContent,children:v(e.content,180)}),(0,p.jsx)(`div`,{className:f.retrievedTags,children:e.tags.slice(0,4).map(e=>(0,p.jsx)(`span`,{className:f.tagChip,children:e},e))})]},e.id))})]}):null,m.status===`ok`?(0,p.jsxs)(`section`,{className:f.panel,children:[(0,p.jsx)(a,{title:`Dead weight (last 7 days)`,subtitle:m.data.results.length===0?`Every indexed observation was retrieved at least once — clean corpus.`:`Observations indexed but never retrieved in the window. Candidates for pruning or re-ranking.`}),m.data.results.length>0?(0,p.jsx)(`ul`,{className:f.deadList,children:m.data.results.map(e=>(0,p.jsxs)(`li`,{className:f.deadRow,children:[(0,p.jsxs)(`div`,{className:f.deadMeta,children:[(0,p.jsx)(`span`,{className:f.deadEmployee,children:e.employee??`unattributed`}),(0,p.jsxs)(`span`,{children:[e.ageDays,`d old`]}),e.persistent?(0,p.jsx)(`span`,{className:f.chipPersistent,children:`persistent`}):null]}),(0,p.jsx)(`div`,{className:f.deadContent,children:v(e.content,160)}),(0,p.jsx)(`div`,{className:f.deadTags,children:e.tags.slice(0,3).map(e=>(0,p.jsx)(`span`,{className:f.tagChip,children:e},e))})]},e.id))}):null]}):null]})}function b({stats:e}){let{byEmployee:t,byTag:n,daily:r,total:a,embeddedFraction:s,persistentCount:l}=e,u=(0,c.useMemo)(()=>{let e=r.length,t=r.reduce((e,t)=>e+t.newObservations,0);return{dailyAvg:e>0?t/e:0,persistentPct:a>0?l/a:0}},[r,a,l]),d=(0,c.useMemo)(()=>t.filter(e=>e.employee!==null).slice(0,10),[t]),g=(0,c.useMemo)(()=>t.find(e=>e.employee===null)?.count??0,[t]),v=(0,c.useMemo)(()=>n.slice(0,10),[n]),y=(0,c.useMemo)(()=>r.map(e=>({date:e.date,a:e.newObservations,b:e.injections})),[r]),b=d.length>0?Math.max(...d.map(e=>e.count)):1,x=v.length>0?Math.max(...v.map(e=>e.count)):1,S=Math.max(...y.map(e=>e.a),0),C=Math.max(...y.map(e=>e.b),0);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`div`,{className:f.statGrid,children:[(0,p.jsx)(o,{label:`Total observations`,value:e.total,hint:`${m(e.contentBytes.total)} of content`}),(0,p.jsx)(o,{label:`Embedded`,value:h(s),hint:`Vectors in sqlite-vec`}),(0,p.jsx)(o,{label:`Persistent`,value:h(u.persistentPct),hint:`${l} of ${a}`}),(0,p.jsx)(o,{label:`Distinct employees`,value:e.distinctEmployees,hint:g>0?`${g} null-owner`:void 0}),(0,p.jsx)(o,{label:`Distinct tags`,value:e.distinctTags}),(0,p.jsx)(o,{label:`Archive rows`,value:e.archiveCount,hint:`Pruned non-persistent observations`}),(0,p.jsx)(o,{label:`Daily avg ingest`,value:u.dailyAvg.toFixed(1),hint:`${r.length}d window`}),(0,p.jsx)(o,{label:`Disk size`,value:m(e.diskBytes),hint:`memory.db`})]}),(0,p.jsxs)(`div`,{className:f.sparkCard,children:[(0,p.jsxs)(`div`,{className:f.sparkHeader,children:[(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`div`,{className:f.sparkTitle,children:`Daily activity`}),(0,p.jsxs)(`div`,{className:f.sparkMeta,children:[`New observations vs retrievals per day (UTC). Peak obs `,S,`, peak retrievals `,C,`.`]})]}),(0,p.jsxs)(`div`,{className:f.sparkMeta,children:[r.length,` days tracked`]})]}),(0,p.jsx)(_,{series:y,labelA:`New observations`,labelB:`Retrievals`})]}),(0,p.jsxs)(`div`,{className:f.twoCol,children:[(0,p.jsxs)(`section`,{className:f.panel,children:[(0,p.jsxs)(`div`,{className:f.panelHeader,children:[(0,p.jsx)(`h2`,{className:f.panelTitle,children:`Top employees`}),(0,p.jsx)(`span`,{className:f.panelMeta,children:`by observation count`})]}),(0,p.jsx)(`div`,{className:f.panelBody,children:d.length===0?(0,p.jsx)(`span`,{className:f.panelMeta,children:`No named employees yet.`}):d.map(e=>(0,p.jsx)(i,{label:e.employee??`unattributed`,count:e.count,total:b},e.employee??`null`))})]}),(0,p.jsxs)(`section`,{className:f.panel,children:[(0,p.jsxs)(`div`,{className:f.panelHeader,children:[(0,p.jsx)(`h2`,{className:f.panelTitle,children:`Top tags`}),(0,p.jsx)(`span`,{className:f.panelMeta,children:`by observation count`})]}),(0,p.jsx)(`div`,{className:f.panelBody,children:v.length===0?(0,p.jsx)(`span`,{className:f.panelMeta,children:`No tags recorded.`}):v.map(e=>(0,p.jsx)(i,{label:e.tag,count:e.count,total:x},e.tag))})]})]})]})}export{y as MemoryOverview};
@@ -0,0 +1 @@
1
+ ._root_1yuyd_1{flex-direction:column;gap:24px;min-width:0;display:flex}._leadRow_1yuyd_8{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}._lead_1yuyd_8{color:var(--color-text);max-width:72ch;margin:0;font-size:14px;line-height:1.55}._leadMuted_1yuyd_24{color:var(--color-text-muted)}._refreshButton_1yuyd_28{background:var(--color-bg);min-height:36px;color:var(--color-text);border:1px solid var(--color-border);cursor:pointer;border-radius:6px;flex-shrink:0;padding:8px 14px;font-size:13px;font-weight:500}._refreshButton_1yuyd_28:hover:not(:disabled){background:var(--color-bg-hover,var(--color-bg-raised))}._refreshButton_1yuyd_28:disabled{opacity:.6;cursor:not-allowed}._placeholder_1yuyd_50{text-align:center;color:var(--color-text-muted);padding:32px;font-size:13px}._statGrid_1yuyd_57{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}._sparkCard_1yuyd_65{border:1px solid var(--color-border);background:var(--color-bg-raised);border-radius:12px;padding:16px}._sparkHeader_1yuyd_72{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}._sparkTitle_1yuyd_81{color:var(--color-text);font-size:13px;font-weight:600}._sparkMeta_1yuyd_87{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:11px}._sparkSvg_1yuyd_93{width:100%;height:140px;display:block;overflow:visible}._sparkAxis_1yuyd_100{stroke:var(--color-border);stroke-width:1px}._sparkLineA_1yuyd_105{stroke:var(--color-primary);stroke-width:1.75px;fill:none;stroke-linejoin:round;stroke-linecap:round}._sparkLineB_1yuyd_113{stroke:var(--color-positive);stroke-width:1.75px;fill:none;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:4 2}._sparkLabel_1yuyd_122{fill:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:10px}._sparkTickLabel_1yuyd_128{fill:var(--color-text-muted);font-size:10px}._legend_1yuyd_133{color:var(--color-text-muted);flex-wrap:wrap;gap:16px;margin-top:8px;font-size:11px;display:flex}._legendItemA_1yuyd_142,._legendItemB_1yuyd_143{align-items:center;gap:6px;display:inline-flex}._legendItemA_1yuyd_142 ._legendSwatch_1yuyd_149{background:var(--color-primary)}._legendItemB_1yuyd_143 ._legendSwatch_1yuyd_149{background:var(--color-positive)}._legendSwatch_1yuyd_149{border-radius:1px;width:10px;height:2px;display:inline-block}._twoCol_1yuyd_166{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}._panel_1yuyd_172{border:1px solid var(--color-border);background:var(--color-bg-raised);border-radius:12px;flex-direction:column;gap:10px;min-width:0;padding:16px;display:flex}._panelHeader_1yuyd_183{justify-content:space-between;align-items:baseline;gap:8px;display:flex}._panelTitle_1yuyd_190{color:var(--color-text);margin:0;font-size:13px;font-weight:600}._panelMeta_1yuyd_197{color:var(--color-text-muted);font-size:11px}._panelBody_1yuyd_202{flex-direction:column;gap:2px;display:flex}._retrievedList_1yuyd_210,._deadList_1yuyd_211{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}._retrievedRow_1yuyd_220,._deadRow_1yuyd_221{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}._retrievedHeader_1yuyd_231{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;display:flex}._retrievedCount_1yuyd_240{background:color-mix(in oklab, var(--color-primary) 20%, transparent);color:var(--color-primary);font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}._retrievedEmployee_1yuyd_251,._deadEmployee_1yuyd_252{color:var(--color-text);font-size:12px;font-weight:500}._retrievedMeta_1yuyd_258{font-variant-numeric:tabular-nums}._retrievedContent_1yuyd_262,._deadContent_1yuyd_263{color:var(--color-text);word-break:break-word;font-size:13px;line-height:1.45}._retrievedTags_1yuyd_270,._deadTags_1yuyd_271{flex-wrap:wrap;gap:4px;display:flex}._deadMeta_1yuyd_277{color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:10px;font-size:11px;display:flex}._chipPersistent_1yuyd_287{background:color-mix(in oklab, var(--color-warning,#f59e0b) 20%, transparent);color:var(--color-warning,#f59e0b);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:1px 8px;font-size:10px;font-weight:500;display:inline-block}._tagChip_1yuyd_299{background:color-mix(in oklab, var(--color-primary) 14%, transparent);color:var(--color-primary);white-space:nowrap;border-radius:999px;padding:2px 6px;font-size:10px}@media (width<=767px){._leadRow_1yuyd_8{flex-direction:column}._retrievedHeader_1yuyd_231{gap:6px}._sparkSvg_1yuyd_93{height:110px}}
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MemoryOverview-BG2lpis1.js","assets/jsx-runtime-Bq3x7umQ.js","assets/shared-wI40KN7Y.js","assets/shared-CHkcO7VT.css","assets/useGet-CU5_p7vA.js","assets/MemoryOverview-BuFrUzre.css","assets/MemoryExplore-wFiVBkXu.js","assets/index-tOLuwPW6.js","assets/react-dom-Cnw6SoYl.js","assets/events-CCBP4a9s.js","assets/RelativeTime-CARWwY-H.js","assets/useWebSocket-Hg3RO6sx.js","assets/styles-Ds5gMQAQ.js","assets/Button-xBBZQ0ie.js","assets/Button-BOCZ-tMU.css","assets/Card-u29day7d.js","assets/Card-Q-x7mRn3.css","assets/Input-HhV6M0tu.js","assets/Input-C6Eciq4Y.css","assets/index-C57L9wdB.css","assets/ui-Bx41p7g8.js","assets/SettingsRow-4w9Ab9mk.js","assets/MemoryExplore-DXgmdeOp.css","assets/MemoryInjections-F6D1_uAX.js","assets/MemoryInjections-CG5Jnfc2.css","assets/MemoryHygiene-C_lFMujk.js","assets/MemoryHygiene-D9-lcjQc.css","assets/MemoryWiki-cypT6R3l.js","assets/MemoryWiki-Mh-mjN1m.css"])))=>i.map(i=>d[i]);
2
+ import{n as e,s as t,t as n}from"./jsx-runtime-Bq3x7umQ.js";import{a as r,i,s as a}from"./index-tOLuwPW6.js";var o=t(e(),1),s={page:`_page_laiz0_1`,header:`_header_laiz0_7`,title:`_title_laiz0_16`,subtitle:`_subtitle_laiz0_23`,liveToggleRow:`_liveToggleRow_laiz0_29`,liveToggleLabel:`_liveToggleLabel_laiz0_35`,tabHint:`_tabHint_laiz0_41`,tabHintFadeIn:`_tabHintFadeIn_laiz0_1`,tab:`_tab_laiz0_41`,srOnly:`_srOnly_laiz0_59`,tabBar:`_tabBar_laiz0_71`,tabActive:`_tabActive_laiz0_116`,viewShell:`_viewShell_laiz0_126`,loading:`_loading_laiz0_133`,snapshotMeta:`_snapshotMeta_laiz0_142`},c=n(),l={overview:(0,o.lazy)(()=>a(()=>import(`./MemoryOverview-BG2lpis1.js`).then(e=>({default:e.MemoryOverview})),__vite__mapDeps([0,1,2,3,4,5]))),explore:(0,o.lazy)(()=>a(()=>import(`./MemoryExplore-wFiVBkXu.js`).then(e=>({default:e.MemoryExplore})),__vite__mapDeps([6,1,7,8,9,10,4,11,12,13,14,15,16,17,18,19,2,3,20,21,22]))),injections:(0,o.lazy)(()=>a(()=>import(`./MemoryInjections-F6D1_uAX.js`).then(e=>({default:e.MemoryInjections})),__vite__mapDeps([23,1,7,8,9,10,4,11,12,13,14,15,16,17,18,19,2,3,20,21,24]))),hygiene:(0,o.lazy)(()=>a(()=>import(`./MemoryHygiene-C_lFMujk.js`).then(e=>({default:e.MemoryHygiene})),__vite__mapDeps([25,1,7,8,9,10,4,11,12,13,14,15,16,17,18,19,26]))),wiki:(0,o.lazy)(()=>a(()=>import(`./MemoryWiki-cypT6R3l.js`).then(e=>({default:e.MemoryWiki})),__vite__mapDeps([27,1,7,8,9,10,4,11,12,13,14,15,16,17,18,19,2,3,28])))},u=[{id:`injections`,label:`Injections`,hint:`Live retrieval log: which observations get injected into which prompts.`},{id:`overview`,label:`Overview`,hint:`Live stats, top-retrieved observations, dead-weight signals.`},{id:`explore`,label:`Explore`,hint:`Filterable observation table with a nearest-neighbor drawer.`},{id:`hygiene`,label:`Hygiene`,hint:`Memory steward: health, clusters, proposals, run log, trends.`},{id:`wiki`,label:`Wiki`,hint:`Compile-pages run history and wiki-page library with ancestor drilldown.`}];function d(){let{subView:e,navigateMemory:t}=r(),n=e??`injections`;(0,o.useEffect)(()=>{e===null&&t(i)},[e,t]);let a=(0,o.useCallback)(e=>{t(e)},[t]),d=(0,o.useMemo)(()=>u.find(e=>e.id===n)?.hint??``,[n]),f=(0,o.useMemo)(()=>{let e=l[n];return(0,c.jsx)(o.Suspense,{fallback:(0,c.jsx)(`div`,{className:s.loading,children:`Loading view…`}),children:(0,c.jsx)(e,{})})},[n]);return(0,c.jsxs)(`div`,{className:`page-content-frame ${s.page}`,children:[(0,c.jsx)(`div`,{className:s.header,children:(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`h1`,{className:s.title,children:`Memory`}),(0,c.jsx)(`p`,{className:s.subtitle,children:`Live view of the observation store powering long-term agent context. All data comes directly from the running gateway.`})]})}),(0,c.jsx)(`div`,{className:s.tabBar,role:`tablist`,"aria-label":`Memory views`,children:u.map(e=>{let t=e.id===n,r=`memory-tab-hint-${e.id}`;return(0,c.jsxs)(`button`,{role:`tab`,type:`button`,"aria-selected":t,"aria-controls":`memory-view-${e.id}`,"aria-describedby":r,className:`${s.tab} ${t?s.tabActive:``}`,onClick:()=>a(e.id),children:[e.label,(0,c.jsx)(`span`,{id:r,className:s.srOnly,children:e.hint})]},e.id)})}),d&&(0,c.jsx)(`p`,{className:s.tabHint,"aria-live":`polite`,children:d},n),(0,c.jsx)(`div`,{id:`memory-view-${n}`,role:`tabpanel`,"aria-labelledby":`memory-tab-${n}`,className:s.viewShell,children:f})]})}export{d as MemoryPage};
@@ -0,0 +1 @@
1
+ ._page_laiz0_1{min-width:0;max-width:1280px;padding:24px 32px 96px}._header_laiz0_7{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}._title_laiz0_16{color:var(--color-text);margin:0;font-size:22px;font-weight:600}._subtitle_laiz0_23{color:var(--color-text-muted);margin:4px 0 0;font-size:13px}._liveToggleRow_laiz0_29{align-items:center;gap:8px;display:flex}._liveToggleLabel_laiz0_35{color:var(--color-text-muted);-webkit-user-select:none;user-select:none;font-size:12px}._tabHint_laiz0_41{color:var(--color-text-muted);margin:-12px 0 16px;font-size:12px;line-height:1.5;animation:.22s ease-out both _tabHintFadeIn_laiz0_1}@keyframes _tabHintFadeIn_laiz0_1{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){._tabHint_laiz0_41{animation:none}._tab_laiz0_41{transition:none}}._srOnly_laiz0_59{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}._tabBar_laiz0_71{border:1px solid var(--color-border);background:var(--color-bg-raised);scrollbar-width:thin;border-radius:10px;flex-wrap:wrap;gap:4px;margin-bottom:20px;padding:4px;display:flex;overflow-x:auto}._tabBar_laiz0_71::-webkit-scrollbar{height:4px}._tab_laiz0_41{min-height:44px;color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:inline-flex}._tab_laiz0_41:hover{background:var(--color-bg-raised-alt,#8b949e1a);color:var(--color-text)}._tab_laiz0_41:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}._tabActive_laiz0_116{color:var(--color-primary);background:#bc8cff24}._tabActive_laiz0_116:hover{color:var(--color-primary);background:#bc8cff2e}._viewShell_laiz0_126{flex-direction:column;gap:16px;min-width:0;display:flex}._loading_laiz0_133{color:var(--color-text-muted);justify-content:center;align-items:center;padding:48px 16px;font-size:13px;display:flex}._snapshotMeta_laiz0_142{color:var(--color-text-muted);margin-top:6px;font-size:11px}@media (width<=767px){._page_laiz0_1{padding:16px 14px 96px}._title_laiz0_16{font-size:19px}._tabBar_laiz0_71{flex-wrap:nowrap}._tab_laiz0_41{padding:8px 12px;font-size:12px}}
@@ -0,0 +1 @@
1
+ ._root_ecd9u_1{flex-direction:column;gap:20px;min-width:0;display:flex}._section_ecd9u_8{flex-direction:column;gap:10px;display:flex}._runsTableWrap_ecd9u_14{border:1px solid var(--color-border);background:var(--color-bg-raised);border-radius:10px;overflow-x:auto}._runsTable_ecd9u_14{border-collapse:collapse;width:100%;font-size:13px}._runsTable_ecd9u_14 thead th{background:var(--color-bg-raised);text-align:left;border-bottom:1px solid var(--color-border);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:600;position:sticky;top:0}._runsTable_ecd9u_14 tbody td{border-bottom:1px solid var(--color-border);white-space:nowrap;vertical-align:middle;color:var(--color-text);padding:10px 12px}._runsTable_ecd9u_14 tbody tr:last-child td{border-bottom:none}._runsTable_ecd9u_14 tbody tr:hover{background:var(--color-hover)}._numericCell_ecd9u_58{text-align:right;font-variant-numeric:tabular-nums}._compiledPositive_ecd9u_63{color:var(--color-positive);font-weight:500}._pagesList_ecd9u_68{flex-direction:column;gap:12px;display:flex}._pageCard_ecd9u_74{border:1px solid var(--color-border);background:var(--color-bg-raised);border-radius:10px;flex-direction:column;gap:10px;padding:14px 16px;transition:border-color .16s,background-color .16s;display:flex}._pageCard_ecd9u_74:hover{border-color:var(--color-border-strong)}._pageTitle_ecd9u_89{color:var(--color-text);letter-spacing:-.005em;margin:0;font-size:15px;font-weight:600;line-height:1.3}._pageContent_ecd9u_98{color:var(--color-text-muted);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:13.5px;line-height:1.55}._pageMeta_ecd9u_107{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}._tagRow_ecd9u_116{flex-wrap:wrap;gap:6px;display:inline-flex}._tagChip_ecd9u_122{background:var(--color-muted-bg,#6e768126);color:var(--color-text-muted);letter-spacing:.02em;border-radius:999px;padding:2px 8px;font-size:11px;display:inline-block}._expandRow_ecd9u_132{justify-content:flex-end;display:flex}._drilldown_ecd9u_137{overflow:hidden}._drilldownInner_ecd9u_141{border-top:1px dashed var(--color-border);flex-direction:column;gap:10px;padding-top:10px;display:flex}._ancestorList_ecd9u_149{flex-direction:column;gap:8px;display:flex}._ancestorRow_ecd9u_155{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}._ancestorIdLine_ecd9u_165{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;display:flex}._ancestorIdMono_ecd9u_176{font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);letter-spacing:0;text-transform:none}._ancestorContent_ecd9u_182{color:var(--color-text);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.45}._uncompileArea_ecd9u_191{border-top:1px dashed var(--color-border);flex-direction:column;gap:8px;margin-top:6px;padding-top:10px;display:flex}._confirmRow_ecd9u_200{flex-wrap:wrap;align-items:center;gap:8px;display:flex}._confirmText_ecd9u_207{color:var(--color-text);flex:200px;min-width:0;font-size:13px}._successText_ecd9u_214{color:var(--color-positive);margin:0;font-size:13px}._errorText_ecd9u_220{color:var(--color-negative);margin:0;font-size:13px}._emptyState_ecd9u_226{text-align:center;border:1px dashed var(--color-border);color:var(--color-text-muted);border-radius:10px;margin:0;padding:24px;font-size:13px;line-height:1.6}._footerRow_ecd9u_237{justify-content:flex-end;align-items:center;gap:8px;display:flex}@media (width<=600px){._pageMeta_ecd9u_107{flex-direction:column;align-items:flex-start;gap:6px}._runsTable_ecd9u_14 thead th,._runsTable_ecd9u_14 tbody td{padding:10px 8px}._pageCard_ecd9u_74{padding:12px}._confirmRow_ecd9u_200{flex-direction:column;align-items:stretch}}
@@ -0,0 +1,3 @@
1
+ import{n as e,s as t,t as n}from"./jsx-runtime-Bq3x7umQ.js";import{t as r}from"./Button-xBBZQ0ie.js";import{F as i,lt as a}from"./index-tOLuwPW6.js";import{n as o,t as s}from"./shared-wI40KN7Y.js";var c=t(e(),1);function l(e){let[t,n]=(0,c.useState)({status:`loading`});return(0,c.useEffect)(()=>{let e=new AbortController;return n({status:`loading`}),fetch(`/api/memory/compile-pages/runs?limit=50`,{signal:e.signal}).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);n({status:`ok`,data:await e.json()})}).catch(e=>{e instanceof DOMException&&e.name===`AbortError`||n({status:`error`,error:e instanceof Error?e.message:String(e)})}),()=>e.abort()},[e]),t}function u(e){let[t,n]=(0,c.useState)({status:`loading`});return(0,c.useEffect)(()=>{let e=new AbortController;return n({status:`loading`}),fetch(`/api/memory/compile-pages/wiki-pages?limit=100`,{signal:e.signal}).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);n({status:`ok`,data:await e.json()})}).catch(e=>{e instanceof DOMException&&e.name===`AbortError`||n({status:`error`,error:e instanceof Error?e.message:String(e)})}),()=>e.abort()},[e]),t}function d(e,t){let[n,r]=(0,c.useState)({status:`loading`});return(0,c.useEffect)(()=>{if(!e){r({status:`loading`});return}let t=new AbortController;return r({status:`loading`}),fetch(`/api/memory/compile-pages/wiki-pages/${encodeURIComponent(e)}/ancestors`,{signal:t.signal}).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);r({status:`ok`,data:await e.json()})}).catch(e=>{e instanceof DOMException&&e.name===`AbortError`||r({status:`error`,error:e instanceof Error?e.message:String(e)})}),()=>t.abort()},[e,t]),n}var f={root:`_root_ecd9u_1`,section:`_section_ecd9u_8`,runsTableWrap:`_runsTableWrap_ecd9u_14`,runsTable:`_runsTable_ecd9u_14`,numericCell:`_numericCell_ecd9u_58`,compiledPositive:`_compiledPositive_ecd9u_63`,pagesList:`_pagesList_ecd9u_68`,pageCard:`_pageCard_ecd9u_74`,pageTitle:`_pageTitle_ecd9u_89`,pageContent:`_pageContent_ecd9u_98`,pageMeta:`_pageMeta_ecd9u_107`,tagRow:`_tagRow_ecd9u_116`,tagChip:`_tagChip_ecd9u_122`,expandRow:`_expandRow_ecd9u_132`,drilldown:`_drilldown_ecd9u_137`,drilldownInner:`_drilldownInner_ecd9u_141`,ancestorList:`_ancestorList_ecd9u_149`,ancestorRow:`_ancestorRow_ecd9u_155`,ancestorIdLine:`_ancestorIdLine_ecd9u_165`,ancestorIdMono:`_ancestorIdMono_ecd9u_176`,ancestorContent:`_ancestorContent_ecd9u_182`,uncompileArea:`_uncompileArea_ecd9u_191`,confirmRow:`_confirmRow_ecd9u_200`,confirmText:`_confirmText_ecd9u_207`,successText:`_successText_ecd9u_214`,errorText:`_errorText_ecd9u_220`,emptyState:`_emptyState_ecd9u_226`,footerRow:`_footerRow_ecd9u_237`},p=n();function m(e){let t=Date.parse(e);if(Number.isNaN(t))return e;let n=Date.now()-t,r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<30?`${a}d ago`:new Date(t).toISOString().slice(0,10)}function h(e){return e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}function g(e){return`$${e.toFixed(4)}`}function _(e){return e.replace(/\\n/g,`
2
+ `).replace(/\\t/g,` `).trimEnd()}function v(e){let t=_(e),n=t.match(/^\s*#\s+(.+?)\s*(?:\n+([\s\S]*))?$/);if(n)return{title:n[1],body:n[2]??``};let r=t.indexOf(`
3
+ `);return r===-1?{title:t,body:``}:{title:t.slice(0,r).trim(),body:t.slice(r+1)}}function y(e,t){return e.length<=t?e:`${e.slice(0,t).trimEnd()}…`}function b({page:e,expanded:t,onToggle:n,onUncompiled:o,refreshToken:l}){let u=d(t?e.id:null,l),[h,g]=(0,c.useState)({phase:`idle`}),b=(0,c.useRef)(null);(0,c.useEffect)(()=>()=>{b.current?.abort()},[]);let x=(0,c.useCallback)(async()=>{if(h.phase===`submitting`)return;let t=new AbortController;b.current=t,g({phase:`submitting`});try{let n=await fetch(`/api/memory/compile-pages/wiki-pages/${encodeURIComponent(e.id)}`,{method:`DELETE`,signal:t.signal});if(!n.ok){let e,t;try{let r=await n.json();typeof r.error==`string`&&(t=r.error),typeof r.detail==`string`&&(e=r.detail)}catch{}let r=t?e?`${t}: ${e}`:t:`HTTP ${n.status}`;throw Error(r)}let r=await n.json();g({phase:`success`,message:`Restored ${r.ancestorsRestored} ancestors.`}),o(e.id,r.ancestorsRestored)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;g({phase:`error`,message:e instanceof Error?e.message:String(e)})}},[e.id,o,h.phase]),{title:S,body:C}=v(e.content),w=t?C:y(C,240);return(0,p.jsxs)(`div`,{className:f.pageCard,children:[(0,p.jsx)(`h3`,{className:f.pageTitle,children:S}),w&&(0,p.jsx)(`p`,{className:f.pageContent,children:w}),(0,p.jsxs)(`div`,{className:f.pageMeta,children:[e.employee&&(0,p.jsx)(`span`,{children:e.employee}),(0,p.jsx)(`span`,{children:m(e.timestamp)}),e.tags.length>0&&(0,p.jsx)(`span`,{className:f.tagRow,children:e.tags.map(e=>(0,p.jsx)(`span`,{className:f.tagChip,children:e},e))})]}),(0,p.jsx)(`div`,{className:f.expandRow,children:(0,p.jsx)(r,{variant:`ghost`,size:`sm`,onClick:n,children:t?`Hide ancestors`:`Show ancestors`})}),(0,p.jsx)(a,{initial:!1,children:t&&(0,p.jsx)(i.div,{className:f.drilldown,initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:{height:0,opacity:0},transition:{duration:.22,ease:`easeInOut`},children:(0,p.jsxs)(`div`,{className:f.drilldownInner,children:[u.status===`loading`&&(0,p.jsx)(`p`,{className:f.emptyState,children:`Loading ancestors…`}),u.status===`error`&&(0,p.jsx)(s,{children:u.error}),u.status===`ok`&&(0,p.jsxs)(`div`,{className:f.ancestorList,children:[u.data.ancestors.length===0?(0,p.jsx)(`p`,{className:f.emptyState,children:`No ancestor observations found.`}):u.data.ancestors.map(e=>(0,p.jsxs)(`div`,{className:f.ancestorRow,children:[(0,p.jsxs)(`div`,{className:f.ancestorIdLine,children:[(0,p.jsx)(`span`,{className:f.ancestorIdMono,children:e.id.slice(0,12)}),(0,p.jsx)(`span`,{children:m(e.timestamp)}),e.employee&&(0,p.jsx)(`span`,{children:e.employee})]}),(0,p.jsx)(`p`,{className:f.ancestorContent,children:y(_(e.content),240)})]},e.id)),(0,p.jsxs)(`div`,{className:f.uncompileArea,children:[h.phase===`idle`&&(0,p.jsx)(r,{variant:`danger`,size:`sm`,onClick:()=>g({phase:`confirming`}),children:`Uncompile this page`}),h.phase===`confirming`&&(0,p.jsxs)(`div`,{className:f.confirmRow,children:[(0,p.jsxs)(`span`,{className:f.confirmText,children:[`Restore `,u.data.ancestors.length,` observation`,u.data.ancestors.length===1?``:`s`,` and delete this page?`]}),(0,p.jsx)(r,{variant:`default`,size:`sm`,onClick:()=>g({phase:`idle`}),children:`Cancel`}),(0,p.jsx)(r,{variant:`danger`,size:`sm`,onClick:x,children:`Confirm`})]}),h.phase===`submitting`&&(0,p.jsx)(`p`,{className:f.confirmText,children:`Uncompiling…`}),h.phase===`success`&&(0,p.jsx)(`p`,{className:f.successText,children:h.message}),h.phase===`error`&&(0,p.jsxs)(`p`,{className:f.errorText,children:[`Error: `,h.message]})]})]})]})},e.id)})]})}function x(e){let[t,n]=(0,c.useState)(0),[d,_]=(0,c.useState)(null),[v,y]=(0,c.useState)(new Set),x=(0,c.useRef)(null),S=(0,c.useRef)(!0);(0,c.useEffect)(()=>(S.current=!0,()=>{S.current=!1,x.current!==null&&(clearTimeout(x.current),x.current=null)}),[]);let C=l(t),w=u(t),T=(0,c.useCallback)(e=>{_(t=>t===e?null:e)},[]),E=(0,c.useCallback)((e,t)=>{y(t=>{let n=new Set(t);return n.add(e),n}),_(null),x.current!==null&&clearTimeout(x.current),x.current=setTimeout(()=>{x.current=null,S.current&&(n(e=>e+1),y(new Set))},800)},[]),D=(0,c.useCallback)(()=>n(e=>e+1),[]),O=w.status===`ok`?w.data.pages.filter(e=>!v.has(e.id)):[];return(0,p.jsxs)(`div`,{className:f.root,children:[(0,p.jsxs)(`section`,{className:f.section,children:[(0,p.jsx)(o,{title:`Run history`,subtitle:`Recent nightly compile-pages runs`}),C.status===`loading`&&(0,p.jsx)(`p`,{className:f.emptyState,children:`Loading…`}),C.status===`error`&&(0,p.jsx)(s,{children:C.error}),C.status===`ok`&&C.data.runs.length===0&&(0,p.jsx)(`p`,{className:f.emptyState,children:`No runs yet. The compile-pages job hasn't run.`}),C.status===`ok`&&C.data.runs.length>0&&(0,p.jsx)(`div`,{className:f.runsTableWrap,children:(0,p.jsxs)(`table`,{className:f.runsTable,children:[(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`th`,{children:`Run at`}),(0,p.jsx)(`th`,{className:f.numericCell,children:`Clusters`}),(0,p.jsx)(`th`,{className:f.numericCell,children:`Compiled`}),(0,p.jsx)(`th`,{className:f.numericCell,children:`Skipped`}),(0,p.jsx)(`th`,{className:f.numericCell,children:`Cost`}),(0,p.jsx)(`th`,{className:f.numericCell,children:`Duration`})]})}),(0,p.jsx)(`tbody`,{children:(0,p.jsx)(a,{initial:!1,children:C.data.runs.map((e,t)=>(0,p.jsxs)(i.tr,{initial:{opacity:0,y:-4},animate:{opacity:1,y:0},exit:{opacity:0},transition:{duration:.18,delay:Math.min(t,12)*.03},children:[(0,p.jsx)(`td`,{children:m(e.runAt)}),(0,p.jsx)(`td`,{className:f.numericCell,children:e.clustersFound}),(0,p.jsx)(`td`,{className:[f.numericCell,e.pagesCompiled>0?f.compiledPositive:``].filter(Boolean).join(` `),children:e.pagesCompiled}),(0,p.jsx)(`td`,{className:f.numericCell,children:e.pagesSkipped}),(0,p.jsx)(`td`,{className:f.numericCell,children:g(e.totalCostUsd)}),(0,p.jsx)(`td`,{className:f.numericCell,children:h(e.durationMs)})]},e.id))})})]})})]}),(0,p.jsxs)(`section`,{className:f.section,children:[(0,p.jsx)(o,{title:`Wiki-pages`,subtitle:`Compiled knowledge pages synthesized from memory observations`}),w.status===`loading`&&(0,p.jsx)(`p`,{className:f.emptyState,children:`Loading…`}),w.status===`error`&&(0,p.jsx)(s,{children:w.error}),w.status===`ok`&&O.length===0&&(0,p.jsx)(`p`,{className:f.emptyState,children:`No wiki-pages yet. Run the compile-pages job to generate them.`}),w.status===`ok`&&(0,p.jsx)(`div`,{className:f.pagesList,children:O.map(e=>(0,p.jsx)(b,{page:e,expanded:d===e.id,onToggle:()=>T(e.id),onUncompiled:E,refreshToken:t},e.id))})]}),(0,p.jsx)(`div`,{className:f.footerRow,children:(0,p.jsx)(r,{variant:`ghost`,size:`sm`,onClick:D,children:`Refresh`})})]})}export{x as MemoryWiki};
@@ -0,0 +1,33 @@
1
+ import{n as e,s as t,t as n}from"./jsx-runtime-Bq3x7umQ.js";import{t as r}from"./react-dom-Cnw6SoYl.js";import{r as i}from"./useWebSocket-Hg3RO6sx.js";import{c as a,n as o}from"./styles-Ds5gMQAQ.js";import{a as s,c,j as l,l as u}from"./index-tOLuwPW6.js";import{a as d,c as f,i as p,n as m,o as h,r as g,s as _,t as v,u as y}from"./dagre.esm-DBOl5nQa.js";var b=t(e(),1),x=n(),S=220,C=80,w={executive:o.warning,manager:`var(--color-info)`,senior:`var(--color-text-muted)`,employee:o.textSecondary},T=[`#bc8cff`,`var(--color-info)`,`var(--color-positive)`,o.warning,`var(--color-negative)`,`#56d4dd`,`#f0883e`,`#db61a2`,`var(--color-text-muted)`,`var(--color-code)`];function ee(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return T[Math.abs(t)%T.length]}var E={width:20,height:10,borderRadius:`4px 4px 0 0`,background:o.hover,border:`1.5px solid ${o.muted}`,top:-5,cursor:`crosshair`},D={width:20,height:10,borderRadius:`0 0 4px 4px`,background:o.hover,border:`1.5px solid ${o.muted}`,bottom:-5,cursor:`crosshair`};function te({data:e}){let{employee:t,deptColor:n}=e,r=w[t.rank]||w.employee;return(0,x.jsxs)(`div`,{className:`org-node`,style:{width:S,height:C,background:o.cardBg,border:`2px solid ${n}`,borderRadius:10,padding:`10px 14px`,cursor:`pointer`,display:`flex`,alignItems:`center`,gap:10,transition:`box-shadow 0.15s`,boxShadow:`0 2px 8px rgba(0,0,0,0.3)`},onMouseEnter:e=>{e.currentTarget.style.boxShadow=`0 4px 16px ${n}44`},onMouseLeave:e=>{e.currentTarget.style.boxShadow=`0 2px 8px rgba(0,0,0,0.3)`},children:[(0,x.jsx)(p,{type:`target`,position:y.Top,id:`target`,style:E}),(0,x.jsx)(p,{type:`source`,position:y.Bottom,id:`source`,style:D}),(0,x.jsx)(`span`,{style:{fontSize:24,flexShrink:0},children:t.emoji||`👤`}),(0,x.jsxs)(`div`,{style:{overflow:`hidden`,minWidth:0},children:[(0,x.jsx)(`div`,{style:{fontSize:13,fontWeight:600,color:o.text,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:t.displayName||t.name}),(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,marginTop:3},children:[(0,x.jsx)(`span`,{style:{fontSize:10,fontWeight:600,textTransform:`uppercase`,padding:`1px 6px`,borderRadius:3,background:`${r}22`,color:r,letterSpacing:.3},children:t.rank}),(0,x.jsx)(`span`,{style:{fontSize:10,color:o.muted,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:t.department}),t.engine&&t.engine!==`claude`&&(0,x.jsx)(`span`,{style:{fontSize:10,fontWeight:600,padding:`1px 6px`,borderRadius:3,background:`rgba(86,212,221,0.15)`,color:`#56d4dd`,letterSpacing:.3,flexShrink:0},children:t.engine.toUpperCase()})]})]})]})}var O={employeeNode:te};function ne(e,t){let n=new v.graphlib.Graph;n.setDefaultEdgeLabel(()=>({})),n.setGraph({rankdir:`TB`,nodesep:60,ranksep:80});for(let t of e)n.setNode(t.name,{width:S+40,height:C+20});let r=t.nodes,i=[];for(let[e,t]of Object.entries(r))for(let r of t.directReports)n.setEdge(e,r),i.push({id:`${e}->${r}`,source:e,sourceHandle:`source`,target:r,targetHandle:`target`,type:`smoothstep`,style:{stroke:o.border,strokeWidth:2},animated:!1});return v.layout(n),{nodes:e.map(e=>{let t=n.node(e.name),r=ee(e.department);return{id:e.name,type:`employeeNode`,position:{x:(t?.x??0)-S/2,y:(t?.y??0)-C/2},data:{employee:e,deptColor:r},sourcePosition:y.Bottom,targetPosition:y.Top,draggable:!1}}),edges:i}}function re({employees:e,hierarchy:t,onSelect:n,onReparent:r}){let i=_(),a=(0,b.useMemo)(()=>ne(e,t),[e,t]);(0,b.useEffect)(()=>{i.fitView({padding:.2})},[a,i]);let s=(0,b.useCallback)((e,t)=>{n(t.id)},[n]),c=(0,b.useCallback)(e=>{let{source:t,target:n,sourceHandle:i,targetHandle:a}=e;!t||!n||t===n||!i||!a||i===a||r&&r(i===`target`?t:n,i===`target`?n:t)},[r]),l=(0,b.useRef)(null);return(0,b.useEffect)(()=>{let e=l.current;if(!e)return;let t=new IntersectionObserver(([e])=>{e.isIntersecting&&setTimeout(()=>i.fitView({padding:.2}),50)},{threshold:.1});return t.observe(e),()=>t.disconnect()},[i]),(0,x.jsx)(`div`,{ref:l,style:{width:`100%`,height:`100%`,minHeight:500,background:o.darkBg,borderRadius:8,border:`1px solid ${o.border}`},children:(0,x.jsxs)(h,{nodes:a.nodes,edges:a.edges,onNodeClick:s,onConnect:c,isValidConnection:()=>!0,connectionMode:f.Loose,connectionLineStyle:{stroke:`var(--color-primary)`,strokeWidth:2,strokeDasharray:`5 5`},nodesDraggable:!1,nodeTypes:O,fitView:!0,fitViewOptions:{padding:.2},minZoom:.2,maxZoom:2,proOptions:{hideAttribution:!0},style:{background:o.darkBg},children:[(0,x.jsx)(m,{color:o.border,gap:20}),(0,x.jsx)(g,{showInteractive:!1,style:{background:o.cardBg,borderColor:o.border},className:`dark-controls`}),(0,x.jsx)(`style`,{children:`
2
+ .dark-controls .react-flow__controls-button {
3
+ background: #21262d;
4
+ border: 1px solid ${o.border};
5
+ fill: #e6edf3;
6
+ color: #e6edf3;
7
+ }
8
+ .dark-controls .react-flow__controls-button:hover {
9
+ background: #30363d;
10
+ }
11
+ .dark-controls .react-flow__controls-button svg {
12
+ fill: #e6edf3;
13
+ }
14
+ .org-node .react-flow__handle {
15
+ opacity: 0.3;
16
+ transition: opacity 0.15s, background 0.15s, border-color 0.15s;
17
+ }
18
+ .org-node:hover .react-flow__handle {
19
+ opacity: 0.8;
20
+ }
21
+ .org-node .react-flow__handle:hover {
22
+ opacity: 1;
23
+ background: rgba(201,160,255,0.3) !important;
24
+ border-color: #c9a0ff !important;
25
+ }
26
+ .react-flow__connection-line {
27
+ stroke: #c9a0ff;
28
+ }
29
+ `})]},`org-map`)})}function k(e){return(0,x.jsx)(d,{children:(0,x.jsx)(re,{...e})})}var A={executive:o.warning,manager:`var(--color-info)`,senior:`var(--color-text-muted)`,employee:o.textSecondary};function ie({employees:e,onSelect:t}){let n={executive:0,manager:1,senior:2,employee:3};return(0,x.jsx)(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(auto-fill, minmax(240px, 1fr))`,gap:12},children:[...e].sort((e,t)=>(n[e.rank]??3)-(n[t.rank]??3)).map(e=>{let n=A[e.rank]||A.employee;return(0,x.jsxs)(`button`,{onClick:()=>t(e.name),style:{background:o.cardBg,border:`1px solid ${o.border}`,borderRadius:10,padding:`16px 18px`,cursor:`pointer`,textAlign:`left`,display:`flex`,alignItems:`center`,gap:12,transition:`border-color 0.15s, box-shadow 0.15s`,width:`100%`},onMouseEnter:e=>{e.currentTarget.style.borderColor=n,e.currentTarget.style.boxShadow=`0 2px 12px ${n}22`},onMouseLeave:e=>{e.currentTarget.style.borderColor=o.border,e.currentTarget.style.boxShadow=`none`},children:[(0,x.jsx)(`span`,{style:{fontSize:28,flexShrink:0},children:e.emoji||`👤`}),(0,x.jsxs)(`div`,{style:{overflow:`hidden`,minWidth:0},children:[(0,x.jsx)(`div`,{style:{fontSize:14,fontWeight:600,color:o.text,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:e.displayName||e.name}),(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,marginTop:4},children:[(0,x.jsx)(`span`,{style:{fontSize:10,fontWeight:600,textTransform:`uppercase`,padding:`2px 8px`,borderRadius:4,background:`${n}22`,color:n,letterSpacing:.3},children:e.rank}),(0,x.jsx)(`span`,{style:{fontSize:11,color:o.muted,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:e.department}),e.engine&&e.engine!==`claude`&&(0,x.jsx)(`span`,{style:{fontSize:10,fontWeight:600,padding:`1px 6px`,borderRadius:3,background:`rgba(86,212,221,0.15)`,color:`#56d4dd`,letterSpacing:.3,flexShrink:0},children:e.engine.toUpperCase()})]})]})]},e.name)})})}var ae={executive:o.warning,manager:`var(--color-info)`,senior:`var(--color-text-muted)`,employee:o.textSecondary};function j({name:e,hierarchy:t,employeeMap:n,depth:r,expanded:i,onToggle:a,onSelect:s}){let c=t.nodes[e],l=n.get(e);if(!c||!l)return null;let u=c.directReports.length>0,d=i.has(e),f=ae[l.rank]||ae.employee;return(0,x.jsxs)(`div`,{children:[(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,paddingLeft:r*24,padding:`6px 12px 6px ${r*24+12}px`,cursor:`pointer`,borderRadius:6,transition:`background 0.1s`},onMouseEnter:e=>{e.currentTarget.style.background=`${o.cardBg}`},onMouseLeave:e=>{e.currentTarget.style.background=`transparent`},onClick:()=>s(e),children:[(0,x.jsx)(`button`,{onClick:t=>{t.stopPropagation(),u&&a(e)},style:{width:20,height:20,flexShrink:0,background:`none`,border:`none`,cursor:u?`pointer`:`default`,color:u?o.muted:`transparent`,fontSize:12,padding:0,display:`flex`,alignItems:`center`,justifyContent:`center`,transition:`transform 0.15s`,transform:d?`rotate(90deg)`:`rotate(0deg)`},children:u?`▶`:``}),(0,x.jsx)(`span`,{style:{fontSize:18,flexShrink:0},children:l.emoji||`👤`}),(0,x.jsx)(`span`,{style:{fontSize:13,fontWeight:500,color:o.text},children:l.displayName||l.name}),(0,x.jsx)(`span`,{style:{fontSize:10,fontWeight:600,textTransform:`uppercase`,padding:`1px 6px`,borderRadius:3,background:`${f}22`,color:f,letterSpacing:.3},children:l.rank}),(0,x.jsx)(`span`,{style:{fontSize:11,color:o.muted},children:l.department})]}),u&&d&&(0,x.jsx)(`div`,{children:c.directReports.map(e=>(0,x.jsx)(j,{name:e,hierarchy:t,employeeMap:n,depth:r+1,expanded:i,onToggle:a,onSelect:s},e))})]})}function oe({employees:e,hierarchy:t,onSelect:n}){let[r,i]=(0,b.useState)(()=>new Set(e.map(e=>e.name))),a=new Map(e.map(e=>[e.name,e])),s=(0,b.useCallback)(e=>{i(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),c=[];t.root&&c.push(t.root);for(let n of e)!t.nodes[n.name]?.parentName&&n.name!==t.root&&c.push(n.name);return c.length===0?(0,x.jsx)(`div`,{style:{padding:20,color:o.muted,fontSize:13},children:`No hierarchy data available`}):(0,x.jsx)(`div`,{style:{background:o.darkBg,border:`1px solid ${o.border}`,borderRadius:8,padding:`8px 0`},children:c.map(e=>(0,x.jsx)(j,{name:e,hierarchy:t,employeeMap:a,depth:0,expanded:r,onToggle:s,onSelect:n},e))})}var M=t(r());function se(){var e=[...arguments];return(0,b.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var N=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function P(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function F(e){return`nodeType`in e}function I(e){return e?P(e)?e:F(e)?e.ownerDocument?.defaultView??window:window:window}function L(e){let{Document:t}=I(e);return e instanceof t}function R(e){return P(e)?!1:e instanceof I(e).HTMLElement}function z(e){return e instanceof I(e).SVGElement}function B(e){return e?P(e)?e.document:F(e)?L(e)?e:R(e)||z(e)?e.ownerDocument:document:document:document}var V=N?b.useLayoutEffect:b.useEffect;function H(e){let t=(0,b.useRef)(e);return V(()=>{t.current=e}),(0,b.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function ce(){let e=(0,b.useRef)(null);return[(0,b.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,b.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function le(e,t){t===void 0&&(t=[e]);let n=(0,b.useRef)(e);return V(()=>{n.current!==e&&(n.current=e)},t),n}function ue(e,t){let n=(0,b.useRef)();return(0,b.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function de(e){let t=H(e),n=(0,b.useRef)(null);return[n,(0,b.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function U(e){let t=(0,b.useRef)();return(0,b.useEffect)(()=>{t.current=e},[e]),t.current}var W={};function fe(e,t){return(0,b.useMemo)(()=>{if(t)return t;let n=W[e]==null?0:W[e]+1;return W[e]=n,e+`-`+n},[e,t])}function pe(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}var me=pe(1),he=pe(-1);function ge(e){return`clientX`in e&&`clientY`in e}function _e(e){if(!e)return!1;let{KeyboardEvent:t}=I(e.target);return t&&e instanceof t}function ve(e){if(!e)return!1;let{TouchEvent:t}=I(e.target);return t&&e instanceof t}function ye(e){if(ve(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return ge(e)?{x:e.clientX,y:e.clientY}:null}var G=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[G.Translate.toString(e),G.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),K=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function be(e){return e.matches(K)?e:e.querySelector(K)}var xe={display:`none`};function q(e){let{id:t,value:n}=e;return b.createElement(`div`,{id:t,style:xe},n)}function Se(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return b.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function Ce(){let[e,t]=(0,b.useState)(``);return{announce:(0,b.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var we=(0,b.createContext)(null);function Te(e){let t=(0,b.useContext)(we);(0,b.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function Ee(){let[e]=(0,b.useState)(()=>new Set),t=(0,b.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,b.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var De={draggable:`
30
+ To pick up a draggable item, press the space bar.
31
+ While dragging, use the arrow keys to move the item.
32
+ Press space again to drop the item in its new position, or press escape to cancel.
33
+ `},Oe={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function ke(e){let{announcements:t=Oe,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=De}=e,{announce:a,announcement:o}=Ce(),s=fe(`DndLiveRegion`),[c,l]=(0,b.useState)(!1);if((0,b.useEffect)(()=>{l(!0)},[]),Te((0,b.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=b.createElement(b.Fragment,null,b.createElement(q,{id:r,value:i.draggable}),b.createElement(Se,{id:s,announcement:o}));return n?(0,M.createPortal)(u,n):u}var J;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(J||={});function Ae(){}function je(e,t){return(0,b.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function Me(){var e=[...arguments];return(0,b.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var Y=Object.freeze({x:0,y:0});function Ne(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function Pe(e,t){let n=ye(e);if(!n)return`0 0`;let r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+`% `+r.y+`%`}function Fe(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function Ie(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function Le(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function Re(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}var ze=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=Re(t,t.left,t.top),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=Ne(Re(r),i);a.push({id:t,data:{droppableContainer:e,value:n}})}}return a.sort(Fe)};function Be(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var Ve=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=Be(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(Ie)};function He(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function Ue(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Y}function We(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var Ge=We(1);function Ke(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function qe(e,t,n){let r=Ke(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var Je={ignoreTransform:!1};function Ye(e,t){t===void 0&&(t=Je);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=I(e).getComputedStyle(e);t&&(n=qe(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function Xe(e){return Ye(e,{ignoreTransform:!0})}function Ze(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Qe(e,t){return t===void 0&&(t=I(e).getComputedStyle(e)),t.position===`fixed`}function $e(e,t){t===void 0&&(t=I(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`?n.test(r):!1})}function et(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(L(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!R(i)||z(i)||n.includes(i))return n;let a=I(e).getComputedStyle(i);return i!==e&&$e(i,a)&&n.push(i),Qe(i,a)?n:r(i.parentNode)}return e?r(e):n}function tt(e){let[t]=et(e,1);return t??null}function nt(e){return!N||!e?null:P(e)?e:F(e)?L(e)||e===B(e).scrollingElement?window:R(e)?e:null:null}function rt(e){return P(e)?e.scrollX:e.scrollLeft}function it(e){return P(e)?e.scrollY:e.scrollTop}function at(e){return{x:rt(e),y:it(e)}}var X;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(X||={});function ot(e){return!N||!e?!1:e===document.scrollingElement}function st(e){let t={x:0,y:0},n=ot(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var ct={x:.2,y:.2};function lt(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=ct);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=st(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=X.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=X.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=X.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=X.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function ut(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function dt(e){return e.reduce((e,t)=>me(e,at(t)),Y)}function ft(e){return e.reduce((e,t)=>e+rt(t),0)}function pt(e){return e.reduce((e,t)=>e+it(t),0)}function mt(e,t){if(t===void 0&&(t=Ye),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);tt(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var ht=[[`x`,[`left`,`right`],ft],[`y`,[`top`,`bottom`],pt]],gt=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=et(t),r=dt(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of ht)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,`rect`,{enumerable:!1})}},_t=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function vt(e){let{EventTarget:t}=I(e);return e instanceof t?e:B(e)}function yt(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t?r>t.y:!1}var Z;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(Z||={});function bt(e){e.preventDefault()}function xt(e){e.stopPropagation()}var Q;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})(Q||={});var St={start:[Q.Space,Q.Enter],cancel:[Q.Esc],end:[Q.Space,Q.Enter,Q.Tab]},Ct=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case Q.Right:return{...n,x:n.x+25};case Q.Left:return{...n,x:n.x-25};case Q.Down:return{...n,y:n.y+25};case Q.Up:return{...n,y:n.y-25}}},wt=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new _t(B(t)),this.windowListeners=new _t(I(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Z.Resize,this.handleCancel),this.windowListeners.add(Z.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Z.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&mt(n),t(Y)}handleKeyDown(e){if(_e(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=St,coordinateGetter:a=Ct,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:Y;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=he(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=st(n),p=ut(n),m={x:Math.min(i===Q.Right?p.right-p.width/2:p.right,Math.max(i===Q.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===Q.Down?p.bottom-p.height/2:p.bottom,Math.max(i===Q.Down?p.top:p.top+p.height/2,u.y))},h=i===Q.Right&&!s||i===Q.Left&&!c,g=i===Q.Down&&!l||i===Q.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===Q.Right&&e<=d.x||i===Q.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}a?r.x=n.scrollLeft-e:r.x=i===Q.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}else if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===Q.Down&&e<=d.y||i===Q.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}a?r.y=n.scrollTop-e:r.y=i===Q.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,me(he(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};wt.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=St,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function Tt(e){return!!(e&&`distance`in e)}function Et(e){return!!(e&&`delay`in e)}var Dt=class{constructor(e,t,n){n===void 0&&(n=vt(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=B(i),this.documentListeners=new _t(this.document),this.listeners=new _t(n),this.windowListeners=new _t(I(i)),this.initialCoordinates=ye(r)??Y,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(Z.Resize,this.handleCancel),this.windowListeners.add(Z.DragStart,bt),this.windowListeners.add(Z.VisibilityChange,this.handleCancel),this.windowListeners.add(Z.ContextMenu,bt),this.documentListeners.add(Z.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(Et(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(Tt(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(Z.Click,xt,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Z.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=ye(e)??Y,s=he(n,o);if(!t&&a){if(Tt(a)){if(a.tolerance!=null&&yt(s,a.tolerance))return this.handleCancel();if(yt(s,a.distance))return this.handleStart()}if(Et(a)&&yt(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===Q.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},Ot={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},kt=class extends Dt{constructor(e){let{event:t}=e,n=B(t.target);super(e,Ot,n)}};kt.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var At={move:{name:`mousemove`},end:{name:`mouseup`}},jt;(function(e){e[e.RightClick=2]=`RightClick`})(jt||={});var Mt=class extends Dt{constructor(e){super(e,At,B(e.event.target))}};Mt.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===jt.RightClick?!1:(r?.({event:n}),!0)}}];var Nt={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},Pt=class extends Dt{constructor(e){super(e,Nt)}static setup(){return window.addEventListener(Nt.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(Nt.move.name,e)};function e(){}}};Pt.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var Ft;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(Ft||={});var It;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(It||={});function Lt(e){let{acceleration:t,activator:n=Ft.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=It.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=zt({delta:d,disabled:!a}),[m,h]=ce(),g=(0,b.useRef)({x:0,y:0}),_=(0,b.useRef)({x:0,y:0}),v=(0,b.useMemo)(()=>{switch(n){case Ft.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Ft.DraggableRect:return i}},[n,i,c]),y=(0,b.useRef)(null),x=(0,b.useCallback)(()=>{let e=y.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),S=(0,b.useMemo)(()=>s===It.TreeOrder?[...l].reverse():l,[s,l]);(0,b.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of S){if(r?.(e)===!1)continue;let n=u[l.indexOf(e)];if(!n)continue;let{direction:i,speed:a}=lt(e,n,v,t,f);for(let e of[`x`,`y`])p[e][i[e]]||(a[e]=0,i[e]=0);if(a.x>0||a.y>0){h(),y.current=e,m(x,o),g.current=a,_.current=i;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,x,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,S,u,JSON.stringify(f)])}var Rt={x:{[X.Backward]:!1,[X.Forward]:!1},y:{[X.Backward]:!1,[X.Forward]:!1}};function zt(e){let{delta:t,disabled:n}=e,r=U(t);return ue(e=>{if(n||!r||!e)return Rt;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[X.Backward]:e.x[X.Backward]||i.x===-1,[X.Forward]:e.x[X.Forward]||i.x===1},y:{[X.Backward]:e.y[X.Backward]||i.y===-1,[X.Forward]:e.y[X.Forward]||i.y===1}}},[n,t,r])}function Bt(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return ue(e=>t==null?null:r??e??null,[r,t])}function Vt(e,t){return(0,b.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var Ht;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(Ht||={});var Ut;(function(e){e.Optimized=`optimized`})(Ut||={});var Wt=new Map;function Gt(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,b.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,b.useRef)(e),d=g(),f=le(d),p=(0,b.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,b.useRef)(null),h=ue(t=>{if(d&&!n)return Wt;if(!t||t===Wt||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new gt(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,b.useEffect)(()=>{u.current=e},[e]),(0,b.useEffect)(()=>{d||p()},[n,d]),(0,b.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,b.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case Ht.Always:return!1;case Ht.BeforeDragging:return n;default:return!n}}}function Kt(e,t){return ue(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function qt(e,t){return Kt(e,t)}function Jt(e){let{callback:t,disabled:n}=e,r=H(t),i=(0,b.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,b.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Yt(e){let{callback:t,disabled:n}=e,r=H(t),i=(0,b.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,b.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Xt(e){return new gt(Ye(e),e)}function Zt(e,t,n){t===void 0&&(t=Xt);let[r,i]=(0,b.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=Jt({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=Yt({callback:a});return V(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function Qt(e){return Ue(e,Kt(e))}var $t=[];function en(e){let t=(0,b.useRef)(e),n=ue(n=>e?n&&n!==$t&&e&&t.current&&e.parentNode===t.current.parentNode?n:et(e):$t,[e]);return(0,b.useEffect)(()=>{t.current=e},[e]),n}function tn(e){let[t,n]=(0,b.useState)(null),r=(0,b.useRef)(e),i=(0,b.useCallback)(e=>{let t=nt(e.target);t&&n(e=>e?(e.set(t,at(t)),new Map(e)):null)},[]);return(0,b.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=nt(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,at(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{nt(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,b.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>me(e,t),Y):dt(e):Y,[e,t])}function nn(e,t){t===void 0&&(t=[]);let n=(0,b.useRef)(null);return(0,b.useEffect)(()=>{n.current=null},t),(0,b.useEffect)(()=>{let t=e!==Y;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?he(e,n.current):Y}function rn(e){(0,b.useEffect)(()=>{if(!N)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function an(e,t){return(0,b.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function on(e){return(0,b.useMemo)(()=>e?Ze(e):null,[e])}var sn=[];function cn(e,t){t===void 0&&(t=Ye);let[n]=e,r=on(n?I(n):null),[i,a]=(0,b.useState)(sn);function o(){a(()=>e.length?e.map(e=>ot(e)?r:new gt(t(e),e)):sn)}let s=Yt({callback:o});return V(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function ln(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return R(t)?t:e}function un(e){let{measure:t}=e,[n,r]=(0,b.useState)(null),i=Yt({callback:(0,b.useCallback)(e=>{for(let{target:n}of e)if(R(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=de((0,b.useCallback)(e=>{let n=ln(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,b.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var dn=[{sensor:kt,options:{}},{sensor:wt,options:{}}],fn={current:{}},pn={draggable:{measure:Xe},droppable:{measure:Xe,strategy:Ht.WhileDragging,frequency:Ut.Optimized},dragOverlay:{measure:Ye}},mn=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},hn={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new mn,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Ae},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:pn,measureDroppableContainers:Ae,windowRect:null,measuringScheduled:!1},gn={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:Ae,draggableNodes:new Map,over:null,measureDroppableContainers:Ae},_n=(0,b.createContext)(gn),vn=(0,b.createContext)(hn);function yn(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new mn}}}function bn(e,t){switch(t.type){case J.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case J.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case J.DragEnd:case J.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case J.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new mn(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case J.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new mn(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case J.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new mn(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function xn(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,b.useContext)(_n),a=U(r),o=U(n?.id);return(0,b.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!_e(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=be(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function Sn(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function Cn(e){return(0,b.useMemo)(()=>({draggable:{...pn.draggable,...e?.draggable},droppable:{...pn.droppable,...e?.droppable},dragOverlay:{...pn.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function wn(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,b.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;V(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=Ue(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=tt(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var Tn=(0,b.createContext)({...Y,scaleX:1,scaleY:1}),En;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(En||={});var Dn=(0,b.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=dn,collisionDetection:o=Ve,measuring:s,modifiers:c,...l}=e,[u,d]=(0,b.useReducer)(bn,void 0,yn),[f,p]=Ee(),[m,h]=(0,b.useState)(En.Uninitialized),g=m===En.Initialized,{draggable:{active:_,nodes:v,translate:y},droppable:{containers:x}}=u,S=_==null?null:v.get(_),C=(0,b.useRef)({initial:null,translated:null}),w=(0,b.useMemo)(()=>_==null?null:{id:_,data:S?.data??fn,rect:C},[_,S]),T=(0,b.useRef)(null),[ee,E]=(0,b.useState)(null),[D,te]=(0,b.useState)(null),O=le(l,Object.values(l)),ne=fe(`DndDescribedBy`,t),re=(0,b.useMemo)(()=>x.getEnabled(),[x]),k=Cn(s),{droppableRects:A,measureDroppableContainers:ie,measuringScheduled:ae}=Gt(re,{dragging:g,dependencies:[y.x,y.y],config:k.droppable}),j=Bt(v,_),oe=(0,b.useMemo)(()=>D?ye(D):null,[D]),se=Me(),N=qt(j,k.draggable.measure);wn({activeNode:_==null?null:v.get(_),config:se.layoutShiftCompensation,initialRect:N,measure:k.draggable.measure});let P=Zt(j,k.draggable.measure,N),F=Zt(j?j.parentElement:null),L=(0,b.useRef)({activatorEvent:null,active:null,activeNode:j,collisionRect:null,collisions:null,droppableRects:A,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:x,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),R=x.getNodeFor(L.current.over?.id),z=un({measure:k.dragOverlay.measure}),B=z.nodeRef.current??j,H=g?z.rect??P:null,ce=!!(z.nodeRef.current&&z.rect),ue=Qt(ce?null:P),de=on(B?I(B):null),U=en(g?R??j:null),W=cn(U),pe=Sn(c,{transform:{x:y.x-ue.x,y:y.y-ue.y,scaleX:1,scaleY:1},activatorEvent:D,active:w,activeNodeRect:P,containerNodeRect:F,draggingNodeRect:H,over:L.current.over,overlayNodeRect:z.rect,scrollableAncestors:U,scrollableAncestorRects:W,windowRect:de}),he=oe?me(oe,y):null,ge=tn(U),_e=nn(ge),ve=nn(ge,[P]),G=me(pe,_e),K=H?Ge(H,pe):null,be=w&&K?o({active:w,collisionRect:K,droppableRects:A,droppableContainers:re,pointerCoordinates:he}):null,xe=Le(be,`id`),[q,Se]=(0,b.useState)(null),Ce=He(ce?pe:me(pe,ve),q?.rect??null,P),Te=(0,b.useRef)(null),De=(0,b.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(T.current==null)return;let i=v.get(T.current);if(!i)return;let a=e.nativeEvent;Te.current=new n({active:T.current,activeNode:i,event:a,options:r,context:L,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=O.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=O.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=T.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=O.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:C}};(0,M.unstable_batchedUpdates)(()=>{r?.(i),h(En.Initializing),d({type:J.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),E(Te.current),te(a)})},onMove(e){d({type:J.DragMove,coordinates:e})},onEnd:o(J.DragEnd),onCancel:o(J.DragCancel)});function o(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=L.current,o=null;if(t&&i){let{cancelDrop:s}=O.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===J.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=J.DragCancel)}T.current=null,(0,M.unstable_batchedUpdates)(()=>{d({type:e}),h(En.Uninitialized),Se(null),E(null),te(null),Te.current=null;let t=e===J.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=O.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),Oe=Vt(a,(0,b.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(T.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},T.current=r,De(n,t))},[v,De]));rn(a),V(()=>{P&&m===En.Initializing&&h(En.Initialized)},[P,m]),(0,b.useEffect)(()=>{let{onDragMove:e}=O.current,{active:t,activatorEvent:n,collisions:r,over:i}=L.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:G.x,y:G.y},over:i};(0,M.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[G.x,G.y]),(0,b.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=L.current;if(!e||T.current==null||!t||!i)return;let{onDragOver:a}=O.current,o=r.get(xe),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,M.unstable_batchedUpdates)(()=>{Se(s),a?.(c),f({type:`onDragOver`,event:c})})},[xe]),V(()=>{L.current={activatorEvent:D,active:w,activeNode:j,collisionRect:K,collisions:be,droppableRects:A,draggableNodes:v,draggingNode:B,draggingNodeRect:H,droppableContainers:x,over:q,scrollableAncestors:U,scrollAdjustedTranslate:G},C.current={initial:H,translated:K}},[w,j,be,K,v,B,H,A,x,q,U,G]),Lt({...se,delta:y,draggingRect:K,pointerCoordinates:he,scrollableAncestors:U,scrollableAncestorRects:W});let Ae=(0,b.useMemo)(()=>({active:w,activeNode:j,activeNodeRect:P,activatorEvent:D,collisions:be,containerNodeRect:F,dragOverlay:z,draggableNodes:v,droppableContainers:x,droppableRects:A,over:q,measureDroppableContainers:ie,scrollableAncestors:U,scrollableAncestorRects:W,measuringConfiguration:k,measuringScheduled:ae,windowRect:de}),[w,j,P,D,be,F,z,v,x,A,q,ie,U,W,k,ae,de]),je=(0,b.useMemo)(()=>({activatorEvent:D,activators:Oe,active:w,activeNodeRect:P,ariaDescribedById:{draggable:ne},dispatch:d,draggableNodes:v,over:q,measureDroppableContainers:ie}),[D,Oe,w,P,d,ne,v,q,ie]);return b.createElement(we.Provider,{value:p},b.createElement(_n.Provider,{value:je},b.createElement(vn.Provider,{value:Ae},b.createElement(Tn.Provider,{value:Ce},i)),b.createElement(xn,{disabled:n?.restoreFocus===!1})),b.createElement(ke,{...n,hiddenTextDescribedById:ne}));function Me(){let e=ee?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),On=(0,b.createContext)(null),kn=`button`,An=`Draggable`;function jn(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=fe(An),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,b.useContext)(_n),{role:p=kn,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,b.useContext)(g?Tn:On),[v,y]=de(),[x,S]=de(),C=an(o,t),w=le(n);return V(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:x,data:w}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,b.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===kn?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:C,node:v,over:f,setNodeRef:y,setActivatorNodeRef:S,transform:_}}function Mn(){return(0,b.useContext)(vn)}var Nn=`Droppable`,Pn={timeout:25};function Fn(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=fe(Nn),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,b.useContext)(_n),u=(0,b.useRef)({disabled:n}),d=(0,b.useRef)(!1),f=(0,b.useRef)(null),p=(0,b.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...Pn,...i},_=le(h??r),v=Yt({callback:(0,b.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[y,x]=de((0,b.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),S=le(t);return(0,b.useEffect)(()=>{!v||!y.current||(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,b.useEffect)(()=>(s({type:J.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:S}}),()=>s({type:J.UnregisterDroppable,key:a,id:r})),[r]),(0,b.useEffect)(()=>{n!==u.current.disabled&&(s({type:J.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:y,over:c,setNodeRef:x}}function In(e){let{animation:t,children:n}=e,[r,i]=(0,b.useState)(null),[a,o]=(0,b.useState)(null),s=U(n);return!n&&!r&&s&&i(s),V(()=>{if(!a)return;let e=r?.key,n=r?.props.id;if(e==null||n==null){i(null);return}Promise.resolve(t(n,a)).then(()=>{i(null)})},[t,r,a]),b.createElement(b.Fragment,null,n,r?(0,b.cloneElement)(r,{ref:o}):null)}var Ln={x:0,y:0,scaleX:1,scaleY:1};function Rn(e){let{children:t}=e;return b.createElement(_n.Provider,{value:gn},b.createElement(Tn.Provider,{value:Ln},t))}var zn={position:`fixed`,touchAction:`none`},Bn=e=>_e(e)?`transform 250ms ease`:void 0,Vn=(0,b.forwardRef)((e,t)=>{let{as:n,activatorEvent:r,adjustScale:i,children:a,className:o,rect:s,style:c,transform:l,transition:u=Bn}=e;if(!s)return null;let d=i?l:{...l,scaleX:1,scaleY:1},f={...zn,width:s.width,height:s.height,top:s.top,left:s.left,transform:G.Transform.toString(d),transformOrigin:i&&r?Pe(r,s):void 0,transition:typeof u==`function`?u(r):u,...c};return b.createElement(n,{className:o,style:f,ref:t},a)}),Hn={duration:250,easing:`ease`,keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:G.Transform.toString(t)},{transform:G.Transform.toString(n)}]},sideEffects:(e=>t=>{let{active:n,dragOverlay:r}=t,i={},{styles:a,className:o}=e;if(a!=null&&a.active)for(let[e,t]of Object.entries(a.active))t!==void 0&&(i[e]=n.node.style.getPropertyValue(e),n.node.style.setProperty(e,t));if(a!=null&&a.dragOverlay)for(let[e,t]of Object.entries(a.dragOverlay))t!==void 0&&r.node.style.setProperty(e,t);return o!=null&&o.active&&n.node.classList.add(o.active),o!=null&&o.dragOverlay&&r.node.classList.add(o.dragOverlay),function(){for(let[e,t]of Object.entries(i))n.node.style.setProperty(e,t);o!=null&&o.active&&n.node.classList.remove(o.active)}})({styles:{active:{opacity:`0`}}})};function Un(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:i}=e;return H((e,a)=>{if(t===null)return;let o=n.get(e);if(!o)return;let s=o.node.current;if(!s)return;let c=ln(a);if(!c)return;let{transform:l}=I(a).getComputedStyle(a),u=Ke(l);if(!u)return;let d=typeof t==`function`?t:Wn(t);return mt(s,i.draggable.measure),d({active:{id:e,data:o.data,node:s,rect:i.draggable.measure(s)},draggableNodes:n,dragOverlay:{node:a,rect:i.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:i,transform:u})})}function Wn(e){let{duration:t,easing:n,sideEffects:r,keyframes:i}={...Hn,...e};return e=>{let{active:a,dragOverlay:o,transform:s,...c}=e;if(!t)return;let l={x:o.rect.left-a.rect.left,y:o.rect.top-a.rect.top},u={scaleX:s.scaleX===1?1:a.rect.width*s.scaleX/o.rect.width,scaleY:s.scaleY===1?1:a.rect.height*s.scaleY/o.rect.height},d={x:s.x-l.x,y:s.y-l.y,...u},f=i({...c,active:a,dragOverlay:o,transform:{initial:s,final:d}}),[p]=f,m=f[f.length-1];if(JSON.stringify(p)===JSON.stringify(m))return;let h=r?.({active:a,dragOverlay:o,...c}),g=o.node.animate(f,{duration:t,easing:n,fill:`forwards`});return new Promise(e=>{g.onfinish=()=>{h?.(),e()}})}}var Gn=0;function Kn(e){return(0,b.useMemo)(()=>{if(e!=null)return Gn++,Gn},[e])}var qn=b.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:i,transition:a,modifiers:o,wrapperElement:s=`div`,className:c,zIndex:l=999}=e,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggableNodes:m,droppableContainers:h,dragOverlay:g,over:_,measuringConfiguration:v,scrollableAncestors:y,scrollableAncestorRects:x,windowRect:S}=Mn(),C=(0,b.useContext)(Tn),w=Kn(d?.id),T=Sn(o,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggingNodeRect:g.rect,over:_,overlayNodeRect:g.rect,scrollableAncestors:y,scrollableAncestorRects:x,transform:C,windowRect:S}),ee=Kt(f),E=Un({config:r,draggableNodes:m,droppableContainers:h,measuringConfiguration:v}),D=ee?g.setRef:void 0;return b.createElement(Rn,null,b.createElement(In,{animation:E},d&&w?b.createElement(Vn,{key:w,id:d.id,ref:D,as:s,activatorEvent:u,adjustScale:t,className:c,transition:a,rect:ee,style:{zIndex:l,...i},transform:T},n):null))});function Jn(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Yn(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function Xn(e){return e!==null&&e>=0}function Zn(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Qn(e){return typeof e==`boolean`?{draggable:e,droppable:e}:e}var $n=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=Jn(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},er={scaleX:1,scaleY:1},tr=e=>{let{activeIndex:t,activeNodeRect:n,index:r,rects:i,overIndex:a}=e,o=i[t]??n;if(!o)return null;if(r===t){let e=i[a];return e?{x:0,y:t<a?e.top+e.height-(o.top+o.height):e.top-o.top,...er}:null}let s=nr(i,r,t);return r>t&&r<=a?{x:0,y:-o.height-s,...er}:r<t&&r>=a?{x:0,y:o.height+s,...er}:{x:0,y:0,...er}};function nr(e,t,n){let r=e[t],i=e[t-1],a=e[t+1];return r?n<t?i?r.top-(i.top+i.height):a?a.top-(r.top+r.height):0:a?a.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}var rr=`Sortable`,ir=b.createContext({activeIndex:-1,containerId:rr,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:$n,disabled:{draggable:!1,droppable:!1}});function ar(e){let{children:t,id:n,items:r,strategy:i=$n,disabled:a=!1}=e,{active:o,dragOverlay:s,droppableRects:c,over:l,measureDroppableContainers:u}=Mn(),d=fe(rr,n),f=s.rect!==null,p=(0,b.useMemo)(()=>r.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),m=o!=null,h=o?p.indexOf(o.id):-1,g=l?p.indexOf(l.id):-1,_=(0,b.useRef)(p),v=!Zn(p,_.current),y=g!==-1&&h===-1||v,x=Qn(a);V(()=>{v&&m&&u(p)},[v,p,m,u]),(0,b.useEffect)(()=>{_.current=p},[p]);let S=(0,b.useMemo)(()=>({activeIndex:h,containerId:d,disabled:x,disableTransforms:y,items:p,overIndex:g,useDragOverlay:f,sortedRects:Yn(p,c),strategy:i}),[h,d,x.draggable,x.droppable,y,p,g,c,f,i]);return b.createElement(ir.Provider,{value:S},t)}var or=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return Jn(n,r,i).indexOf(t)},sr=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},cr={duration:200,easing:`ease`},lr=`transform`,ur=G.Transition.toString({property:lr,duration:0,easing:`linear`}),dr={roleDescription:`sortable`};function fr(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,b.useState)(null),s=(0,b.useRef)(n);return V(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=Ye(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,b.useEffect)(()=>{a&&o(null)},[a]),a}function pr(e){let{animateLayoutChanges:t=sr,attributes:n,disabled:r,data:i,getNewIndex:a=or,id:o,strategy:s,resizeObserverConfig:c,transition:l=cr}=e,{items:u,containerId:d,activeIndex:f,disabled:p,disableTransforms:m,sortedRects:h,overIndex:g,useDragOverlay:_,strategy:v}=(0,b.useContext)(ir),y=mr(r,p),x=u.indexOf(o),S=(0,b.useMemo)(()=>({sortable:{containerId:d,index:x,items:u},...i}),[d,i,x,u]),C=(0,b.useMemo)(()=>u.slice(u.indexOf(o)),[u,o]),{rect:w,node:T,isOver:ee,setNodeRef:E}=Fn({id:o,data:S,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...c}}),{active:D,activatorEvent:te,activeNodeRect:O,attributes:ne,setNodeRef:re,listeners:k,isDragging:A,over:ie,setActivatorNodeRef:ae,transform:j}=jn({id:o,data:S,attributes:{...dr,...n},disabled:y.draggable}),oe=se(E,re),M=!!D,N=M&&!m&&Xn(f)&&Xn(g),P=!_&&A,F=N?(P&&N?j:null)??(s??v)({rects:h,activeNodeRect:O,activeIndex:f,overIndex:g,index:x}):null,I=Xn(f)&&Xn(g)?a({id:o,items:u,activeIndex:f,overIndex:g}):x,L=D?.id,R=(0,b.useRef)({activeId:L,items:u,newIndex:I,containerId:d}),z=u!==R.current.items,B=t({active:D,containerId:d,isDragging:A,isSorting:M,id:o,index:x,items:u,newIndex:R.current.newIndex,previousItems:R.current.items,previousContainerId:R.current.containerId,transition:l,wasDragging:R.current.activeId!=null}),V=fr({disabled:!B,index:x,node:T,rect:w});return(0,b.useEffect)(()=>{M&&R.current.newIndex!==I&&(R.current.newIndex=I),d!==R.current.containerId&&(R.current.containerId=d),u!==R.current.items&&(R.current.items=u)},[M,I,d,u]),(0,b.useEffect)(()=>{if(L===R.current.activeId)return;if(L!=null&&R.current.activeId==null){R.current.activeId=L;return}let e=setTimeout(()=>{R.current.activeId=L},50);return()=>clearTimeout(e)},[L]),{active:D,activeIndex:f,attributes:ne,data:S,rect:w,index:x,newIndex:I,items:u,isOver:ee,isSorting:M,isDragging:A,listeners:k,node:T,overIndex:g,over:ie,setNodeRef:oe,setActivatorNodeRef:ae,setDroppableNodeRef:E,setDraggableNodeRef:re,transform:V??F,transition:H()};function H(){if(V||z&&R.current.newIndex===x)return ur;if(!(P&&!_e(te)||!l)&&(M||B))return G.Transition.toString({...l,property:lr})}}function mr(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}Q.Down,Q.Right,Q.Up,Q.Left;var hr=[{id:`backlog`,label:`Backlog`,color:o.muted},{id:`in-progress`,label:`In Progress`,color:o.blue},{id:`done`,label:`Done`,color:o.green}],gr={high:o.red,medium:o.warning,low:o.muted};function _r({departments:e,initialDepartment:t}){let[n,r]=(0,b.useState)(t||e[0]||``),[a,s]=(0,b.useState)([]),[c,l]=(0,b.useState)(!0),[u,d]=(0,b.useState)(null),[f,p]=(0,b.useState)(!1),m=Me(je(kt,{activationConstraint:{distance:5}})),h=(0,b.useCallback)(async()=>{if(n)try{let e=await fetch(`/api/org/departments/${encodeURIComponent(n)}/board`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();s(Array.isArray(t)?t:[])}catch{s([])}finally{l(!1)}},[n]);(0,b.useEffect)(()=>{l(!0),h()},[h]),i(`board:updated`,(0,b.useCallback)(e=>{e.department===n&&h()},[n,h])),i(`ws:reconnected`,h);let g=(0,b.useCallback)(async e=>{s(e),await fetch(`/api/org/departments/${encodeURIComponent(n)}/board`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},[n]),_=(0,b.useCallback)(e=>{d(a.find(t=>t.id===e.active.id)||null)},[a]),v=(0,b.useRef)(null),y=(0,b.useCallback)(e=>{let{over:t}=e;if(!t){v.current=null;return}let n=hr.find(e=>e.id===t.id);if(n)v.current=n.id;else{let e=a.find(e=>e.id===t.id);e&&(v.current=e.status)}},[a]),S=(0,b.useCallback)(e=>{d(null);let{active:t,over:n}=e;if(!n)return;let r=t.id,i=null,o=hr.find(e=>e.id===n.id);if(o)i=o.id;else{let e=a.find(e=>e.id===n.id);e&&(i=e.status)}if(!i)return;let s=a.find(e=>e.id===r);!s||s.status===i||g(a.map(e=>e.id===r?{...e,status:i}:e))},[a,g]),C=(0,b.useCallback)((e,t)=>{let n={id:`task-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`,title:e,status:`backlog`,priority:t,createdAt:new Date().toISOString()};g([...a,n]),p(!1)},[a,g]),w=e=>a.filter(t=>t.status===e);return n?(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,marginBottom:16},children:e.map(e=>(0,x.jsx)(`button`,{onClick:()=>r(e),style:{padding:`6px 14px`,fontSize:12,borderRadius:6,cursor:`pointer`,border:`1px solid ${n===e?`var(--color-primary)66`:o.border}`,background:n===e?`var(--color-primary)22`:o.cardBg,color:n===e?`var(--color-primary)`:o.muted,fontWeight:n===e?600:400,transition:`all 0.15s`,textTransform:`capitalize`},children:e},e))}),c?(0,x.jsx)(`div`,{style:{padding:40,textAlign:`center`,color:o.muted},children:`Loading board...`}):(0,x.jsxs)(Dn,{sensors:m,collisionDetection:ze,onDragStart:_,onDragOver:y,onDragEnd:S,children:[(0,x.jsx)(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(3, 1fr)`,gap:12,minHeight:300},children:hr.map(e=>(0,x.jsx)(vr,{column:e,tasks:w(e.id),onShowAddForm:e.id===`backlog`?()=>p(!0):void 0},e.id))}),(0,x.jsx)(qn,{children:u?(0,x.jsx)(br,{task:u,isDragging:!0}):null})]}),f&&(0,x.jsx)(xr,{onAdd:C,onCancel:()=>p(!1)})]}):(0,x.jsx)(`div`,{style:{padding:40,textAlign:`center`,color:o.muted},children:`No departments found`})}function vr({column:e,tasks:t,onShowAddForm:n}){let{setNodeRef:r}=pr({id:e.id});return(0,x.jsxs)(`div`,{ref:r,style:{background:o.cardBg,borderRadius:8,border:`1px solid ${o.border}`,padding:12,minHeight:200,display:`flex`,flexDirection:`column`},children:[(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:12,paddingBottom:8,borderBottom:`2px solid ${e.color}44`},children:[(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,x.jsx)(`span`,{style:{width:8,height:8,borderRadius:`50%`,background:e.color,display:`inline-block`}}),(0,x.jsx)(`span`,{style:{fontSize:13,fontWeight:600,color:o.textSecondary},children:e.label}),(0,x.jsx)(`span`,{style:{fontSize:11,color:o.muted,background:`var(--color-muted-bg)`,padding:`1px 6px`,borderRadius:8},children:t.length})]}),n&&(0,x.jsx)(`button`,{onClick:n,style:{background:`none`,border:`none`,color:o.muted,cursor:`pointer`,fontSize:18,padding:`0 4px`,lineHeight:1},title:`Add task`,children:`+`})]}),(0,x.jsx)(ar,{items:t.map(e=>e.id),strategy:tr,children:(0,x.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8,flex:1},children:t.length===0?(0,x.jsx)(`div`,{style:{padding:20,textAlign:`center`,fontSize:12,color:o.muted,border:`1px dashed ${o.border}`,borderRadius:6},children:`No tasks`}):t.map(e=>(0,x.jsx)(yr,{task:e},e.id))})})]})}function yr({task:e}){let{attributes:t,listeners:n,setNodeRef:r,transform:i,transition:a,isDragging:o}=pr({id:e.id});return(0,x.jsx)(`div`,{ref:r,style:{transform:G.Transform.toString(i),transition:a,opacity:o?.4:1},...t,...n,children:(0,x.jsx)(br,{task:e})})}function br({task:e,isDragging:t}){return(0,x.jsxs)(`div`,{style:{background:t?o.focusBg:o.darkBg,border:`1px solid ${t?`var(--color-primary)66`:o.border}`,borderRadius:6,padding:`10px 12px`,cursor:`grab`,boxShadow:t?`0 4px 12px rgba(0,0,0,0.4)`:`none`,transition:`box-shadow 0.15s, border-color 0.15s`},children:[(0,x.jsx)(`div`,{style:{fontSize:13,color:o.textSecondary,marginBottom:6,lineHeight:1.4},children:e.title}),(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[e.priority&&(0,x.jsx)(`span`,{style:{fontSize:10,fontWeight:600,textTransform:`uppercase`,padding:`1px 6px`,borderRadius:4,color:gr[e.priority],background:gr[e.priority]+`18`,letterSpacing:.3},children:e.priority}),e.assignee&&(0,x.jsx)(`span`,{style:{fontSize:11,color:o.muted},children:e.assignee})]})]})}function xr({onAdd:e,onCancel:t}){let[n,r]=(0,b.useState)(``),[i,a]=(0,b.useState)(``),s=(0,b.useRef)(null);return(0,b.useEffect)(()=>{s.current?.focus()},[]),(0,x.jsx)(`div`,{style:{position:`fixed`,inset:0,zIndex:300,display:`flex`,alignItems:`center`,justifyContent:`center`,background:`rgba(0,0,0,0.5)`},onClick:t,children:(0,x.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),n.trim()&&e(n.trim(),i||void 0)},onClick:e=>e.stopPropagation(),style:{background:o.cardBg,border:`1px solid ${o.border}`,borderRadius:10,padding:20,width:360,maxWidth:`90vw`},children:[(0,x.jsx)(`div`,{style:{fontSize:14,fontWeight:600,marginBottom:16,color:o.textSecondary},children:`Add Task`}),(0,x.jsx)(`input`,{ref:s,value:n,onChange:e=>r(e.target.value),placeholder:`Task title...`,style:{width:`100%`,padding:`8px 12px`,fontSize:13,background:o.darkBg,border:`1px solid ${o.border}`,borderRadius:6,color:o.textSecondary,marginBottom:12,boxSizing:`border-box`}}),(0,x.jsx)(`div`,{style:{display:`flex`,gap:6,marginBottom:16},children:[`high`,`medium`,`low`].map(e=>(0,x.jsx)(`button`,{type:`button`,onClick:()=>a(t=>t===e?``:e),style:{fontSize:11,padding:`4px 10px`,borderRadius:4,border:`1px solid ${i===e?gr[e]+`66`:o.border}`,background:i===e?gr[e]+`22`:`transparent`,color:i===e?gr[e]:o.muted,cursor:`pointer`,textTransform:`capitalize`},children:e},e))}),(0,x.jsxs)(`div`,{style:{display:`flex`,gap:8,justifyContent:`flex-end`},children:[(0,x.jsx)(`button`,{type:`button`,onClick:t,style:{padding:`8px 16px`,fontSize:13,borderRadius:6,background:`transparent`,border:`1px solid ${o.border}`,color:o.muted,cursor:`pointer`},children:`Cancel`}),(0,x.jsx)(`button`,{type:`submit`,disabled:!n.trim(),style:{padding:`8px 16px`,fontSize:13,borderRadius:6,background:`var(--color-primary)22`,border:`1px solid var(--color-primary)44`,color:`var(--color-primary)`,cursor:n.trim()?`pointer`:`not-allowed`,opacity:n.trim()?1:.5},children:`Add`})]})]})})}var Sr={executive:0,manager:1,senior:2,employee:3},Cr={executive:`var(--color-warning)`,manager:`var(--color-info)`,senior:`var(--color-text-muted)`,employee:`var(--color-text)`};function wr({employees:e,onSelect:t}){let[n,r]=(0,b.useState)(``),[i,a]=(0,b.useState)(``),[s,c]=(0,b.useState)(``),[l,u]=(0,b.useState)(``),[d,f]=(0,b.useState)(`rank`),[p,m]=(0,b.useState)(`asc`),[h,g]=(0,b.useState)({});(0,b.useEffect)(()=>{fetch(`/api/jobs`).then(e=>e.json()).then(e=>{let t={};for(let n of e)n.employee&&(t[n.employee]=(t[n.employee]||0)+1);g(t)}).catch(()=>{})},[]);let _=(0,b.useMemo)(()=>[...new Set(e.map(e=>e.department))].sort(),[e]),v=(0,b.useMemo)(()=>[...new Set(e.map(e=>e.rank))].sort((e,t)=>(Sr[e]??3)-(Sr[t]??3)),[e]),y=(0,b.useMemo)(()=>{let t=new Set;for(let n of e)t.add(n.engine||`claude`);return[...t].sort()},[e]),S=(0,b.useMemo)(()=>{let t=n.toLowerCase();return e.filter(e=>!(i&&e.department!==i||s&&e.rank!==s||l&&(e.engine||`claude`)!==l||t&&![e.name,e.displayName,e.department,e.rank,e.engine,e.model,e.reportsTo,e.persona].filter(Boolean).join(` `).toLowerCase().includes(t))).sort((e,t)=>{let n=p===`asc`?1:-1;switch(d){case`name`:return n*(e.displayName||e.name).localeCompare(t.displayName||t.name);case`department`:return n*e.department.localeCompare(t.department);case`rank`:return n*((Sr[e.rank]??3)-(Sr[t.rank]??3));case`engine`:return n*(e.engine||`claude`).localeCompare(t.engine||`claude`);case`model`:return n*(e.model||``).localeCompare(t.model||``);case`reportsTo`:return n*(e.reportsTo||``).localeCompare(t.reportsTo||``);case`jobs`:return n*((h[e.name]||0)-(h[t.name]||0));default:return 0}})},[e,n,i,s,l,d,p,h]);function C(e){d===e?m(e=>e===`asc`?`desc`:`asc`):(f(e),m(`asc`))}let w=e=>d===e?p===`asc`?` ↑`:` ↓`:``,T=n||i||s||l;return(0,x.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:12,height:`100%`},children:[(0,x.jsxs)(`div`,{style:{display:`flex`,gap:8,flexWrap:`wrap`,alignItems:`center`},children:[(0,x.jsx)(`input`,{type:`text`,placeholder:`Search employees...`,value:n,onChange:e=>r(e.target.value),style:{flex:`1 1 200px`,minWidth:160,padding:`7px 12px`,fontSize:12,background:o.cardBg,border:`1px solid ${o.border}`,borderRadius:6,color:`var(--color-text)`,outline:`none`}}),(0,x.jsx)(Dr,{label:`Department`,value:i,onChange:a,options:_}),(0,x.jsx)(Dr,{label:`Rank`,value:s,onChange:c,options:v}),(0,x.jsx)(Dr,{label:`Engine`,value:l,onChange:u,options:y}),T&&(0,x.jsx)(`button`,{onClick:()=>{r(``),a(``),c(``),u(``)},style:{fontSize:11,padding:`5px 10px`,borderRadius:6,background:`rgba(248,81,73,0.12)`,color:o.red,border:`none`,cursor:`pointer`},children:`Clear`}),(0,x.jsxs)(`span`,{style:{fontSize:11,color:o.muted,marginLeft:`auto`},children:[S.length,` of `,e.length]})]}),(0,x.jsx)(`div`,{style:{flex:1,minHeight:0,overflow:`auto`,borderRadius:8,border:`1px solid ${o.border}`},children:(0,x.jsxs)(`table`,{style:{width:`100%`,borderCollapse:`collapse`,fontSize:12},children:[(0,x.jsx)(`thead`,{children:(0,x.jsx)(`tr`,{children:Tr.map(e=>(0,x.jsxs)(`th`,{onClick:()=>C(e.key),style:{position:`sticky`,top:0,zIndex:2,padding:`8px 12px`,textAlign:`left`,cursor:`pointer`,background:`var(--color-bg-raised)`,borderBottom:`1px solid ${o.border}`,color:d===e.key?`var(--color-primary)`:o.muted,fontWeight:600,fontSize:11,whiteSpace:`nowrap`,userSelect:`none`,transition:`color 0.1s`},children:[e.label,w(e.key)]},e.key))})}),(0,x.jsxs)(`tbody`,{children:[S.map(e=>{let n=Cr[e.rank]||Cr.employee,r=h[e.name]||0;return(0,x.jsxs)(`tr`,{onClick:()=>t(e.name),style:{cursor:`pointer`,transition:`background 0.1s`},onMouseEnter:e=>{e.currentTarget.style.background=o.focusBg},onMouseLeave:e=>{e.currentTarget.style.background=`transparent`},children:[(0,x.jsx)(`td`,{style:Er,children:(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,x.jsx)(`span`,{style:{fontSize:18,flexShrink:0},children:e.emoji||`👤`}),(0,x.jsxs)(`div`,{style:{minWidth:0},children:[(0,x.jsx)(`div`,{style:{fontWeight:500,color:`var(--color-text)`,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:e.displayName||e.name}),e.displayName&&(0,x.jsx)(`div`,{style:{fontSize:10,color:o.muted},children:e.name})]})]})}),(0,x.jsx)(`td`,{style:Er,children:e.department}),(0,x.jsx)(`td`,{style:Er,children:(0,x.jsx)(`span`,{style:{fontSize:10,fontWeight:600,textTransform:`uppercase`,padding:`2px 7px`,borderRadius:4,background:`${n}22`,color:n},children:e.rank})}),(0,x.jsx)(`td`,{style:Er,children:(0,x.jsx)(`span`,{style:{fontSize:10,fontWeight:500,padding:`2px 6px`,borderRadius:3,background:e.engine&&e.engine!==`claude`?`rgba(86,212,221,0.15)`:`rgba(188,140,255,0.1)`,color:e.engine&&e.engine!==`claude`?`#56d4dd`:`var(--color-primary)`},children:(e.engine||`claude`).toUpperCase()})}),(0,x.jsx)(`td`,{style:{...Er,color:o.muted,fontSize:11},children:e.model?e.model.replace(/^claude-/,``):`—`}),(0,x.jsx)(`td`,{style:{...Er,color:o.muted},children:e.reportsTo||`—`}),(0,x.jsx)(`td`,{style:{...Er,textAlign:`center`},children:r>0?(0,x.jsx)(`span`,{style:{fontSize:11,fontWeight:600,padding:`2px 8px`,borderRadius:10,background:`rgba(63,185,80,0.12)`,color:o.green},children:r}):(0,x.jsx)(`span`,{style:{color:o.muted},children:`—`})})]},e.name)}),S.length===0&&(0,x.jsx)(`tr`,{children:(0,x.jsx)(`td`,{colSpan:Tr.length,style:{padding:32,textAlign:`center`,color:o.muted},children:`No employees match the current filters.`})})]})]})})]})}var Tr=[{key:`name`,label:`Name`},{key:`department`,label:`Department`},{key:`rank`,label:`Rank`},{key:`engine`,label:`Engine`},{key:`model`,label:`Model`},{key:`reportsTo`,label:`Reports To`},{key:`jobs`,label:`Jobs`}],Er={padding:`10px 12px`,borderBottom:`1px solid ${o.border}`,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`,maxWidth:200};function Dr({label:e,value:t,onChange:n,options:r}){return(0,x.jsxs)(`select`,{value:t,onChange:e=>n(e.target.value),style:{padding:`6px 8px`,fontSize:11,borderRadius:6,background:o.cardBg,border:`1px solid ${o.border}`,color:t?`var(--color-text)`:o.muted,cursor:`pointer`,outline:`none`},children:[(0,x.jsx)(`option`,{value:``,children:e}),r.map(e=>(0,x.jsx)(`option`,{value:e,children:e},e))]})}var $={section:`_section_177cr_1`,row:`_row_177cr_5`,rowExceeded:`_rowExceeded_177cr_18`,empName:`_empName_177cr_25`,gaugeArea:`_gaugeArea_177cr_36`,gaugeTrack:`_gaugeTrack_177cr_44`,gaugeFill:`_gaugeFill_177cr_51`,gaugeFillExceeded:`_gaugeFillExceeded_177cr_58`,gaugeLabel:`_gaugeLabel_177cr_62`,exceededBadge:`_exceededBadge_177cr_70`,noCapLabel:`_noCapLabel_177cr_78`,empty:`_empty_177cr_84`,errorMsg:`_errorMsg_177cr_91`};function Or(e){return[...e].sort((e,t)=>{if(e.exceeded!==t.exceeded)return e.exceeded?-1:1;if(e.capped&&t.capped){let n=e.maxCostUsd?e.spentToday/e.maxCostUsd:0;return(t.maxCostUsd?t.spentToday/t.maxCostUsd:0)-n}return e.capped===t.capped?e.displayName.localeCompare(t.displayName):e.capped?-1:1})}async function kr(e){let t=await fetch(`/api/budget/daily`,{signal:e});if(!t.ok)throw Error(`budget/daily: ${t.statusText||t.status}`);return t.json()}function Ar(){let[e,t]=(0,b.useState)([]),[n,r]=(0,b.useState)(null),a=(0,b.useRef)(null),o=(0,b.useRef)(!0),s=(0,b.useCallback)(e=>{a.current?.abort();let n=new AbortController;a.current=n,kr(n.signal).then(e=>{!o.current||n.signal.aborted||(t(e),r(null))}).catch(t=>{if(!o.current||n.signal.aborted||t instanceof Error&&t.name===`AbortError`)return;let i=t instanceof Error?t.message:String(t);e?r(i):console.warn(`[BudgetPanel] refresh failed:`,i)})},[]);(0,b.useEffect)(()=>(o.current=!0,s(!0),()=>{o.current=!1,a.current?.abort()}),[s]),i(`budget:daily-updated`,(0,b.useCallback)(()=>{s(!1)},[s]));let c=e.some(e=>e.capped),u=Or(e);return(0,x.jsxs)(l,{title:`Daily Budget`,defaultExpanded:c,persistKey:`budgetPanel`,className:$.section,children:[n&&(0,x.jsx)(`p`,{className:$.errorMsg,children:n}),!n&&e.length===0&&(0,x.jsx)(`p`,{className:$.empty,children:`No employees configured.`}),!n&&e.length>0&&!c&&(0,x.jsx)(`p`,{className:$.empty,children:`No employees have a daily cap configured.`}),u.map(e=>(0,x.jsxs)(`div`,{className:`${$.row} ${e.exceeded?$.rowExceeded:``}`,children:[(0,x.jsx)(`span`,{className:$.empName,children:e.displayName}),e.capped&&e.maxCostUsd!==null?(0,x.jsxs)(`div`,{className:$.gaugeArea,children:[(0,x.jsx)(`div`,{className:$.gaugeTrack,children:(0,x.jsx)(`div`,{className:`${$.gaugeFill} ${e.exceeded?$.gaugeFillExceeded:``}`,style:{width:`${Math.min(100,e.spentToday/e.maxCostUsd*100)}%`}})}),(0,x.jsxs)(`span`,{className:$.gaugeLabel,children:[`$`,e.spentToday.toFixed(2),` / $`,e.maxCostUsd.toFixed(2),` today`,e.exceeded&&(0,x.jsx)(`span`,{className:$.exceededBadge,children:`exceeded`})]})]}):(0,x.jsx)(`span`,{className:$.noCapLabel,children:`no cap`})]},e.name))]})}var jr=[{id:`map`,label:`Map`},{id:`grid`,label:`Grid`},{id:`tree`,label:`Tree`},{id:`board`,label:`Board`},{id:`list`,label:`List`}],Mr=`/create-agent`;function Nr({onClose:e,onGoToChat:t}){let[n,r]=(0,b.useState)(!1);function i(){navigator.clipboard.writeText(Mr).then(()=>{r(!0),setTimeout(()=>r(!1),2e3)})}return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`div`,{onClick:e,style:{position:`fixed`,inset:0,background:`rgba(0,0,0,0.5)`,zIndex:999,transition:`opacity 0.2s ease`}}),(0,x.jsxs)(`div`,{style:{position:`fixed`,top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`,width:420,maxWidth:`calc(100vw - 32px)`,background:`var(--color-bg)`,border:`1px solid ${o.border}`,borderRadius:12,padding:24,zIndex:1e3},children:[(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:16},children:[(0,x.jsx)(`h3`,{style:{fontSize:15,fontWeight:600,margin:0},children:`Create New Agent`}),(0,x.jsx)(`button`,{onClick:e,style:{background:`none`,border:`none`,color:o.muted,fontSize:18,cursor:`pointer`,padding:`2px 6px`},children:`×`})]}),(0,x.jsxs)(`p`,{style:{fontSize:13,color:o.muted,lineHeight:1.5,marginBottom:16},children:[`New agents are created through Claude Code using the `,(0,x.jsx)(`code`,{style:{background:`rgba(110,118,129,0.25)`,padding:`1px 5px`,borderRadius:3,fontSize:12},children:`/create-agent`}),` skill. Use one of the options below:`]}),(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,padding:`10px 12px`,background:`var(--color-bg-raised)`,border:`1px solid ${o.border}`,borderRadius:8,marginBottom:10},children:[(0,x.jsx)(`code`,{style:{flex:1,fontSize:13,color:o.text,fontFamily:a},children:Mr}),(0,x.jsx)(`button`,{onClick:i,style:{background:n?`var(--color-positive-soft)`:`var(--color-muted-bg)`,border:`1px solid ${n?`rgba(63,185,80,0.4)`:o.border}`,color:n?o.green:o.text,fontSize:12,fontWeight:500,padding:`5px 12px`,borderRadius:6,cursor:`pointer`,whiteSpace:`nowrap`,minHeight:32,transition:`all 0.15s ease`},children:n?`Copied!`:`Copy`})]}),(0,x.jsx)(`div`,{style:{fontSize:11,color:o.muted,marginBottom:16,lineHeight:1.5},children:`Paste this in Claude Code (terminal or IDE) to start the guided agent creation workflow.`}),(0,x.jsx)(`div`,{style:{borderTop:`1px solid ${o.border}`,marginBottom:16}}),(0,x.jsx)(`button`,{onClick:()=>{t(),e()},style:{width:`100%`,padding:`10px 0`,background:`rgba(188,140,255,0.1)`,border:`1px solid rgba(188,140,255,0.3)`,color:`var(--color-primary)`,fontSize:13,fontWeight:500,borderRadius:8,cursor:`pointer`,transition:`all 0.15s ease`,minHeight:44},children:`Create via Dashboard Chat`}),(0,x.jsx)(`div`,{style:{fontSize:11,color:o.muted,marginTop:6,textAlign:`center`,lineHeight:1.5},children:`Opens the chat panel where you can ask the assistant to create an agent for you.`})]})]})}function Pr(){let{employees:e,hierarchy:t,warnings:n,loading:r,error:i,refresh:a}=c(),{navigate:l}=s(),[d,f]=(0,b.useState)(()=>typeof window<`u`&&window.matchMedia?.(`(max-width: 767px)`).matches?`grid`:`map`),[p,m]=(0,b.useState)(null),[h,g]=(0,b.useState)(void 0),[_,v]=(0,b.useState)(!1),[y,S]=(0,b.useState)(!1),C=(0,b.useRef)(null);(0,b.useEffect)(()=>{if(!y)return;let e=e=>{C.current&&!C.current.contains(e.target)&&S(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[y]);let w=(0,b.useCallback)(e=>{m(e)},[]),T=(0,b.useCallback)(()=>{m(null)},[]),ee=(0,b.useCallback)(e=>{g(e),f(`board`),m(null)},[]),E=(0,b.useCallback)(e=>{localStorage.setItem(`pendingChatSession`,e),m(null),l(`chat`)},[l]),D=p?e.find(e=>e.name===p):null,te=p&&t?t.nodes[p]:null;return r?(0,x.jsx)(`div`,{style:{padding:40,textAlign:`center`,color:o.muted},children:`Loading org data...`}):i?(0,x.jsxs)(`div`,{style:{padding:40,textAlign:`center`,color:o.red},children:[`Error: `,i]}):e.length===0?(0,x.jsxs)(`div`,{style:{textAlign:`center`,padding:`60px 20px`,color:o.muted},children:[(0,x.jsx)(`div`,{style:{fontSize:48,marginBottom:16,opacity:.5},children:`👥`}),(0,x.jsxs)(`p`,{style:{fontSize:14},children:[`No employees defined. Add JSON files to the `,(0,x.jsx)(`code`,{children:`org/`}),` directory to get started.`]})]}):(0,x.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`calc(100dvh - 64px)`,minHeight:0},children:[(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:16,flexWrap:`wrap`,gap:10,rowGap:10},children:[(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10,flexWrap:`wrap`},children:[(0,x.jsx)(`h2`,{style:{fontSize:20,fontWeight:600,margin:0,letterSpacing:`-0.01em`},children:`Organization`}),(0,x.jsx)(`button`,{onClick:()=>v(!0),title:`Create new agent`,style:{background:`var(--color-positive-soft)`,border:`1px solid rgba(63,185,80,0.3)`,color:o.green,fontSize:16,fontWeight:600,width:28,height:28,borderRadius:6,cursor:`pointer`,display:`flex`,alignItems:`center`,justifyContent:`center`,transition:`all 0.15s ease`,lineHeight:1},children:`+`}),(0,x.jsxs)(`span`,{style:{fontSize:12,color:o.muted},children:[e.length,` employee`,e.length===1?``:`s`]}),n.length>0&&(0,x.jsxs)(`div`,{ref:C,style:{position:`relative`},children:[(0,x.jsxs)(`button`,{onClick:()=>S(e=>!e),style:{fontSize:11,padding:`2px 8px`,borderRadius:10,background:`var(--color-negative-soft)`,color:o.red,border:`none`,cursor:`pointer`,transition:`background 0.15s`},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(248,81,73,0.25)`},onMouseLeave:e=>{e.currentTarget.style.background=`var(--color-negative-soft)`},children:[n.length,` warning`,n.length===1?``:`s`]}),y&&(0,x.jsxs)(`div`,{style:{position:`absolute`,top:`100%`,left:0,marginTop:6,background:o.cardBg,border:`1px solid ${o.border}`,borderRadius:8,padding:8,minWidth:280,maxWidth:400,zIndex:100,boxShadow:`0 8px 24px rgba(0,0,0,0.4)`},children:[(0,x.jsx)(`div`,{style:{fontSize:11,fontWeight:600,color:o.muted,marginBottom:6,padding:`0 4px`},children:`Org Warnings`}),n.map((e,t)=>(0,x.jsxs)(`div`,{style:{fontSize:12,padding:`6px 8px`,borderRadius:4,background:t%2==0?`rgba(248,81,73,0.06)`:`transparent`,display:`flex`,flexDirection:`column`,gap:2},children:[(0,x.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,x.jsx)(`span`,{style:{fontSize:10,padding:`1px 5px`,borderRadius:4,background:`var(--color-negative-soft)`,color:o.red,fontWeight:600,textTransform:`uppercase`,whiteSpace:`nowrap`},children:e.type}),(0,x.jsx)(`span`,{style:{fontWeight:500,color:o.text},children:e.employee})]}),(0,x.jsx)(`span`,{style:{color:o.muted},children:e.message})]},t))]})]})]}),(0,x.jsx)(`div`,{className:`tw-org-tabs`,style:{display:`flex`,gap:0,flexShrink:0,maxWidth:`100%`,overflowX:`auto`},children:jr.map((e,t)=>(0,x.jsx)(`button`,{onClick:()=>f(e.id),style:{padding:`8px 16px`,fontSize:13,border:`1px solid ${o.border}`,background:d===e.id?`rgba(188,140,255,0.15)`:`var(--color-hover)`,color:d===e.id?`var(--color-primary)`:o.textSecondary,borderRadius:t===0?`8px 0 0 8px`:t===jr.length-1?`0 8px 8px 0`:0,cursor:`pointer`,marginLeft:t>0?-1:0,fontWeight:d===e.id?600:500,transition:`background 0.1s, color 0.1s`,whiteSpace:`nowrap`,minHeight:40},children:e.label},e.id))})]}),(0,x.jsxs)(`div`,{style:{flex:1,minHeight:0,border:`1px solid ${o.border}`,borderRadius:12,overflow:`hidden`,background:o.cardBg},children:[d===`map`&&t&&(0,x.jsx)(`div`,{style:{height:`100%`},children:(0,x.jsx)(k,{employees:e,hierarchy:t,onSelect:w,onReparent:async(e,t)=>{try{(await fetch(`/api/org/employees/${e}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({reportsTo:t})})).ok&&a()}catch{}}})}),d===`grid`&&(0,x.jsx)(ie,{employees:e,onSelect:w}),d===`tree`&&t&&(0,x.jsx)(oe,{employees:e,hierarchy:t,onSelect:w}),d===`board`&&(0,x.jsx)(_r,{departments:[...new Set(e.map(e=>e.department))].sort(),initialDepartment:h}),d===`list`&&(0,x.jsx)(wr,{employees:e,onSelect:w})]}),(0,x.jsx)(Ar,{}),D&&(0,x.jsx)(u,{employee:D,node:te||null,allEmployees:e,onClose:T,onSelectEmployee:w,onViewBoard:ee,onStartSession:E,onDelete:T}),_&&(0,x.jsx)(Nr,{onClose:()=>v(!1),onGoToChat:()=>l(`chat`)})]})}export{Pr as OrgPage};
@@ -0,0 +1 @@
1
+ ._section_177cr_1{margin-top:16px}._row_177cr_5{border-bottom:1px solid var(--color-border);align-items:center;gap:12px;min-height:44px;padding:8px 0;display:flex}._row_177cr_5:last-child{border-bottom:none}._rowExceeded_177cr_18{background:var(--color-warning-soft,#ffb40012);border-radius:var(--radius-sm);padding-left:8px;padding-right:8px}._empName_177cr_25{font-size:var(--text-body-size);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;min-width:120px;font-weight:500;overflow:hidden}._gaugeArea_177cr_36{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}._gaugeTrack_177cr_44{background:var(--color-muted-bg);border-radius:3px;height:6px;overflow:hidden}._gaugeFill_177cr_51{background:var(--color-primary);border-radius:3px;height:100%;transition:width .3s}._gaugeFillExceeded_177cr_58{background:var(--color-warning,var(--color-negative))}._gaugeLabel_177cr_62{font-size:var(--text-hint-size);color:var(--color-text-muted);align-items:center;gap:6px;display:flex}._exceededBadge_177cr_70{color:var(--color-warning,var(--color-negative));text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}._noCapLabel_177cr_78{font-size:var(--text-hint-size);color:var(--color-text-subtle);flex:1}._empty_177cr_84{font-size:var(--text-caption-size);color:var(--color-text-muted);margin:0;padding:8px 0}._errorMsg_177cr_91{font-size:var(--text-caption-size);color:var(--color-negative);margin:0;padding:8px 0}@media (width<=640px){._empName_177cr_25{min-width:80px}}
@@ -0,0 +1 @@
1
+ import{n as e,s as t,t as n}from"./jsx-runtime-Bq3x7umQ.js";import{a as r,i,l as a,n as o,o as s,r as c,t as l,u}from"./dagre.esm-DBOl5nQa.js";var d=t(e(),1);function f(){let[e,t]=(0,d.useState)(null),[n,r]=(0,d.useState)(!0),[i,a]=(0,d.useState)(null),o=(0,d.useRef)(!0),s=(0,d.useCallback)(async()=>{r(!0);try{let e=await fetch(`/api/pipeline/graph`);if(!e.ok)throw Error(e.statusText||String(e.status));let n=await e.json();o.current&&(t(n),a(null))}catch(e){o.current&&(a(e instanceof Error?e.message:`fetch failed`),t(null))}finally{o.current&&r(!1)}},[]);return(0,d.useEffect)(()=>{o.current=!0,s();function e(){document.visibilityState===`visible`&&s()}return document.addEventListener(`visibilitychange`,e),()=>{o.current=!1,document.removeEventListener(`visibilitychange`,e)}},[s]),{graph:e,loading:n,error:i,refetch:s}}var p={node:`_node_kl9z1_1`,disabled:`_disabled_kl9z1_15`,statusSuccess:`_statusSuccess_kl9z1_16`,statusFailed:`_statusFailed_kl9z1_17`,statusRunning:`_statusRunning_kl9z1_18`,title:`_title_kl9z1_19`,row:`_row_kl9z1_20`,pill:`_pill_kl9z1_21`,pillSuccess:`_pillSuccess_kl9z1_27`,pillFailed:`_pillFailed_kl9z1_28`,pillRunning:`_pillRunning_kl9z1_29`,pillDisabled:`_pillDisabled_kl9z1_30`,dot:`_dot_kl9z1_31`},m=n();function h(e){return e===`success`?p.statusSuccess:e===`failed`||e===`timeout`||e===`cancelled`?p.statusFailed:e===`running`?p.statusRunning:``}function g(e){return e===`success`?p.pillSuccess:e===`failed`||e===`timeout`||e===`cancelled`?p.pillFailed:e===`running`?p.pillRunning:p.pill}function _(e){if(!e)return``;let t=Date.now()-Date.parse(e);if(Number.isNaN(t))return``;let n=Math.round(t/1e3);if(n<60)return`${n}s ago`;let r=Math.round(n/60);if(r<60)return`${r}m ago`;let i=Math.round(r/60);return i<24?`${i}h ago`:`${Math.round(i/24)}d ago`}var v=(0,d.memo)(function({data:e}){let{name:t,enabled:n,lastStatus:r,hasOutput:a,outputTimestamp:o}=e;return(0,m.jsxs)(`div`,{className:`${p.node} ${n?``:p.disabled} ${h(r)}`,children:[(0,m.jsx)(i,{type:`target`,position:u.Left}),(0,m.jsx)(`div`,{className:p.title,children:t}),(0,m.jsxs)(`div`,{className:p.row,children:[!n&&(0,m.jsx)(`span`,{className:`${p.pill} ${p.pillDisabled}`,children:`disabled`}),n&&r&&(0,m.jsx)(`span`,{className:`${p.pill} ${g(r)}`,children:r}),a&&(0,m.jsx)(`span`,{"data-testid":`has-output-dot`,className:p.dot,title:o?`output ${_(o)}`:`has output`}),a&&o&&(0,m.jsx)(`span`,{className:p.pill,children:_(o)})]}),(0,m.jsx)(i,{type:`source`,position:u.Right})]})}),y={container:`_container_22c3i_1`,legend:`_legend_22c3i_9`,legendRow:`_legendRow_22c3i_23`,legendDataLine:`_legendDataLine_22c3i_24`,legendDepLine:`_legendDepLine_22c3i_24`},b=200,x=80;function S(e){let t=new l.graphlib.Graph;t.setDefaultEdgeLabel(()=>({})),t.setGraph({rankdir:`LR`,nodesep:60,ranksep:100});for(let n of e.nodes)t.setNode(n.id,{width:b,height:x});for(let n of e.edges)t.setEdge(n.from,n.to);return l.layout(t),{nodes:e.nodes.map(e=>{let n=t.node(e.id);return{id:e.id,type:`pipelineNode`,data:e,position:{x:n.x-b/2,y:n.y-x/2}}}),edges:e.edges.map((e,t)=>({id:`${e.from}->${e.to}-${t}`,source:e.from,target:e.to,type:`default`,animated:!1,style:e.type===`data`?{stroke:`#4ade80`,strokeWidth:2}:{stroke:`#888`,strokeWidth:1.5,strokeDasharray:`5 5`},markerEnd:{type:a.ArrowClosed,color:e.type===`data`?`#4ade80`:`#888`}}))}}var C={pipelineNode:v};function w({graph:e,onSelectNode:t}){let{nodes:n,edges:r}=(0,d.useMemo)(()=>S(e),[e]);return(0,m.jsxs)(`div`,{className:y.container,children:[(0,m.jsxs)(s,{nodes:n,edges:r,nodeTypes:C,onNodeClick:(e,n)=>t(n.id),fitView:!0,panOnScroll:!0,zoomOnPinch:!0,minZoom:.4,maxZoom:1.5,proOptions:{hideAttribution:!0},children:[(0,m.jsx)(c,{}),(0,m.jsx)(o,{gap:16,size:1,color:`#222`})]}),(0,m.jsxs)(`div`,{className:y.legend,children:[(0,m.jsxs)(`div`,{className:y.legendRow,children:[(0,m.jsx)(`span`,{className:y.legendDataLine}),(0,m.jsx)(`span`,{children:`data flow`})]}),(0,m.jsxs)(`div`,{className:y.legendRow,children:[(0,m.jsx)(`span`,{className:y.legendDepLine}),(0,m.jsx)(`span`,{children:`depends on`})]})]})]})}var T=e=>typeof e==`boolean`||e instanceof Boolean,E=e=>typeof e==`number`||e instanceof Number,D=e=>typeof e==`bigint`||e instanceof BigInt,O=e=>!!e&&e instanceof Date,k=e=>typeof e==`string`||e instanceof String,A=e=>Array.isArray(e),j=e=>typeof e==`object`&&!!e,M=e=>!!e&&e instanceof Object&&typeof e==`function`;function N(e,t){return t===void 0&&(t=!1),!e||t?`"${e}"`:e}function P(e,t,n){return n?JSON.stringify(e):t?`"${e}"`:e}function F(e){let{field:t,value:n,data:r,lastElement:i,openBracket:a,closeBracket:o,level:s,style:c,shouldExpandNode:l,clickToExpandNode:u,outerRef:f,beforeExpandChange:p}=e,m=(0,d.useRef)(!1),[h,g]=(0,d.useState)(()=>l(s,n,t)),_=(0,d.useRef)(null);(0,d.useEffect)(()=>{m.current?g(l(s,n,t)):m.current=!0},[l]);let v=(0,d.useId)();if(r.length===0)return I({field:t,openBracket:a,closeBracket:o,lastElement:i,style:c});let y=h?c.collapseIcon:c.expandIcon,b=h?c.ariaLables.collapseJson:c.ariaLables.expandJson,x=s+1,S=r.length-1,C=e=>{h!==e&&(!p||p({level:s,value:n,field:t,newExpandValue:e}))&&g(e)},w=e=>{if(e.key===`ArrowRight`||e.key===`ArrowLeft`)e.preventDefault(),C(e.key===`ArrowRight`);else if(e.key===`ArrowUp`||e.key===`ArrowDown`){e.preventDefault();let t=e.key===`ArrowUp`?-1:1;if(!f.current)return;let n=f.current.querySelectorAll(`[role=button]`),r=-1;for(let e=0;e<n.length;e++)if(n[e].tabIndex===0){r=e;break}if(r<0)return;let i=(r+t+n.length)%n.length;n[r].tabIndex=-1,n[i].tabIndex=0,n[i].focus()}},T=()=>{C(!h);let e=_.current;if(!e)return;let t=f.current?.querySelector(`[role=button][tabindex="0"]`);t&&(t.tabIndex=-1),e.tabIndex=0,e.focus()};return(0,d.createElement)(`div`,{className:c.basicChildStyle,role:`treeitem`,"aria-expanded":h,"aria-selected":void 0},(0,d.createElement)(`span`,{className:y,onClick:T,onKeyDown:w,role:`button`,"aria-label":b,"aria-expanded":h,"aria-controls":h?v:void 0,ref:_,tabIndex:s===0?0:-1}),(t||t===``)&&(u?(0,d.createElement)(`span`,{className:c.clickableLabel,onClick:T,onKeyDown:w},N(t,c.quotesForFieldNames),`:`):(0,d.createElement)(`span`,{className:c.label},N(t,c.quotesForFieldNames),`:`)),(0,d.createElement)(`span`,{className:c.punctuation},a),h?(0,d.createElement)(`ul`,{id:v,role:`group`,className:c.childFieldsContainer},r.map((e,t)=>(0,d.createElement)(B,{key:e[0]||t,field:e[0],value:e[1],style:c,lastElement:t===S,level:x,shouldExpandNode:l,clickToExpandNode:u,beforeExpandChange:p,outerRef:f}))):(0,d.createElement)(`span`,{className:c.collapsedContent,onClick:T,onKeyDown:w}),(0,d.createElement)(`span`,{className:c.punctuation},o),!i&&(0,d.createElement)(`span`,{className:c.punctuation},`,`))}function I(e){let{field:t,openBracket:n,closeBracket:r,lastElement:i,style:a}=e;return(0,d.createElement)(`div`,{className:a.basicChildStyle,role:`treeitem`,"aria-selected":void 0},(t||t===``)&&(0,d.createElement)(`span`,{className:a.label},N(t,a.quotesForFieldNames),`:`),(0,d.createElement)(`span`,{className:a.punctuation},n),(0,d.createElement)(`span`,{className:a.punctuation},r),!i&&(0,d.createElement)(`span`,{className:a.punctuation},`,`))}function L(e){let{field:t,value:n,style:r,lastElement:i,shouldExpandNode:a,clickToExpandNode:o,level:s,outerRef:c,beforeExpandChange:l}=e;return F({field:t,value:n,lastElement:i||!1,level:s,openBracket:`{`,closeBracket:`}`,style:r,shouldExpandNode:a,clickToExpandNode:o,data:Object.keys(n).map(e=>[e,n[e]]),outerRef:c,beforeExpandChange:l})}function R(e){let{field:t,value:n,style:r,lastElement:i,level:a,shouldExpandNode:o,clickToExpandNode:s,outerRef:c,beforeExpandChange:l}=e;return F({field:t,value:n,lastElement:i||!1,level:a,openBracket:`[`,closeBracket:`]`,style:r,shouldExpandNode:o,clickToExpandNode:s,data:n.map(e=>[void 0,e]),outerRef:c,beforeExpandChange:l})}function z(e){let{field:t,value:n,style:r,lastElement:i}=e,a,o=r.otherValue;return n===null?(a=`null`,o=r.nullValue):n===void 0?(a=`undefined`,o=r.undefinedValue):k(n)?(a=P(n,!r.noQuotesForStringValues,r.stringifyStringValues),o=r.stringValue):T(n)?(a=n?`true`:`false`,o=r.booleanValue):E(n)?(a=n.toString(),o=r.numberValue):D(n)?(a=`${n.toString()}n`,o=r.numberValue):a=O(n)?n.toISOString():M(n)?`function() { }`:n.toString(),(0,d.createElement)(`div`,{className:r.basicChildStyle,role:`treeitem`,"aria-selected":void 0},(t||t===``)&&(0,d.createElement)(`span`,{className:r.label},N(t,r.quotesForFieldNames),`:`),(0,d.createElement)(`span`,{className:o},a),!i&&(0,d.createElement)(`span`,{className:r.punctuation},`,`))}function B(e){let t=e.value;return A(t)?(0,d.createElement)(R,Object.assign({},e)):j(t)&&!O(t)&&!M(t)?(0,d.createElement)(L,Object.assign({},e)):(0,d.createElement)(z,Object.assign({},e))}var V={"container-base":`_GzYRV`,"punctuation-base":`_3eOF8`,pointer:`_1MFti`,"expander-base":`_f10Tu _1MFti`,"expand-icon":`_1UmXx`,"collapse-icon":`_1LId0`,"collapsed-content-base":`_1pNG9 _1MFti`,"container-light":`_2IvMF _GzYRV`,"basic-element-style":`_2bkNM`,"child-fields-container":`_1BXBN`,"label-light":`_1MGIk`,"clickable-label-light":`_2YKJg _1MGIk _1MFti`,"punctuation-light":`_3uHL6 _3eOF8`,"value-null-light":`_2T6PJ`,"value-undefined-light":`_1Gho6`,"value-string-light":`_vGjyY`,"value-number-light":`_1bQdo`,"value-boolean-light":`_3zQKs`,"value-other-light":`_1xvuR`,"collapse-icon-light":`_oLqym _f10Tu _1MFti _1LId0`,"expand-icon-light":`_2AXVT _f10Tu _1MFti _1UmXx`,"collapsed-content-light":`_2KJWg _1pNG9 _1MFti`,"container-dark":`_11RoI _GzYRV`,"expand-icon-dark":`_17H2C _f10Tu _1MFti _1UmXx`,"collapse-icon-dark":`_3QHg2 _f10Tu _1MFti _1LId0`,"collapsed-content-dark":`_3fDAz _1pNG9 _1MFti`,"label-dark":`_2bSDX`,"clickable-label-dark":`_1RQEj _2bSDX _1MFti`,"punctuation-dark":`_gsbQL _3eOF8`,"value-null-dark":`_LaAZe`,"value-undefined-dark":`_GTKgm`,"value-string-dark":`_Chy1W`,"value-number-dark":`_2bveF`,"value-boolean-dark":`_2vRm-`,"value-other-dark":`_1prJR`},H={container:V[`container-light`],basicChildStyle:V[`basic-element-style`],childFieldsContainer:V[`child-fields-container`],label:V[`label-light`],clickableLabel:V[`clickable-label-light`],nullValue:V[`value-null-light`],undefinedValue:V[`value-undefined-light`],stringValue:V[`value-string-light`],booleanValue:V[`value-boolean-light`],numberValue:V[`value-number-light`],otherValue:V[`value-other-light`],punctuation:V[`punctuation-light`],collapseIcon:V[`collapse-icon-light`],expandIcon:V[`expand-icon-light`],collapsedContent:V[`collapsed-content-light`],noQuotesForStringValues:!1,quotesForFieldNames:!1,ariaLables:{collapseJson:`collapse JSON`,expandJson:`expand JSON`},stringifyStringValues:!1};V[`container-dark`],V[`basic-element-style`],V[`child-fields-container`],V[`label-dark`],V[`clickable-label-dark`],V[`value-null-dark`],V[`value-undefined-dark`],V[`value-string-dark`],V[`value-boolean-dark`],V[`value-number-dark`],V[`value-other-dark`],V[`punctuation-dark`],V[`collapse-icon-dark`],V[`expand-icon-dark`],V[`collapsed-content-dark`];var U=()=>!0,W=e=>{let{data:t,style:n=H,shouldExpandNode:r=U,clickToExpandNode:i=!1,beforeExpandChange:a,compactTopLevel:o,...s}=e,c=(0,d.useRef)(null);return(0,d.createElement)(`div`,Object.assign({"aria-label":`JSON view`},s,{className:n.container,ref:c,role:`tree`}),o&&j(t)?Object.entries(t).map(e=>{let[t,o]=e;return(0,d.createElement)(B,{key:t,field:t,value:o,style:{...H,...n},lastElement:!0,level:1,shouldExpandNode:r,clickToExpandNode:i,beforeExpandChange:a,outerRef:c})}):(0,d.createElement)(B,{value:t,style:{...H,...n},lastElement:!0,level:0,shouldExpandNode:r,clickToExpandNode:i,outerRef:c,beforeExpandChange:a}))},G={backdrop:`_backdrop_9bk4g_1`,drawer:`_drawer_9bk4g_7`,header:`_header_9bk4g_35`,title:`_title_9bk4g_41`,closeBtn:`_closeBtn_9bk4g_42`,summary:`_summary_9bk4g_52`,section:`_section_9bk4g_58`,list:`_list_9bk4g_59`,listItem:`_listItem_9bk4g_60`,empty:`_empty_9bk4g_61`,error:`_error_9bk4g_62`,dataTree:`_dataTree_9bk4g_63`};function K({jobId:e,jobName:t,onClose:n}){let[r,i]=(0,d.useState)({kind:`loading`});return(0,d.useEffect)(()=>{let t=!1;return(async()=>{try{let n=await fetch(`/api/jobs/${e}/pipeline-output`);if(t)return;if(n.status===404){i({kind:`empty`});return}if(!n.ok){i({kind:`error`,message:`${n.status}`});return}i({kind:`loaded`,output:await n.json()})}catch(e){t||i({kind:`error`,message:e.message})}})(),()=>{t=!0}},[e]),(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`div`,{className:G.backdrop,onClick:n}),(0,m.jsxs)(`div`,{className:G.drawer,role:`dialog`,"aria-label":`Output for ${t}`,children:[(0,m.jsxs)(`div`,{className:G.header,children:[(0,m.jsx)(`div`,{className:G.title,children:t}),(0,m.jsx)(`button`,{type:`button`,className:G.closeBtn,"aria-label":`close`,onClick:n,children:`×`})]}),r.kind===`loading`&&(0,m.jsx)(`div`,{className:G.empty,children:`Loading...`}),r.kind===`empty`&&(0,m.jsx)(`div`,{className:G.empty,children:`No output recorded for this job yet.`}),r.kind===`error`&&(0,m.jsxs)(`div`,{className:G.error,children:[`Failed to load output: `,r.message]}),r.kind===`loaded`&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`div`,{className:G.summary,children:r.output.summary}),r.output.timestamp&&(0,m.jsxs)(`div`,{className:G.section,children:[(0,m.jsx)(`h3`,{children:`Timestamp`}),(0,m.jsx)(`div`,{className:G.listItem,children:r.output.timestamp})]}),(0,m.jsxs)(`div`,{className:G.section,children:[(0,m.jsx)(`h3`,{children:`Data`}),(0,m.jsx)(`div`,{className:G.dataTree,children:(0,m.jsx)(W,{data:r.output.data,style:H,shouldExpandNode:()=>!0})})]}),r.output.artifacts.length>0&&(0,m.jsxs)(`div`,{className:G.section,children:[(0,m.jsx)(`h3`,{children:`Artifacts`}),(0,m.jsx)(`ul`,{className:G.list,children:r.output.artifacts.map((e,t)=>(0,m.jsx)(`li`,{className:G.listItem,children:e},t))})]}),r.output.nextActions.length>0&&(0,m.jsxs)(`div`,{className:G.section,children:[(0,m.jsx)(`h3`,{children:`Next Actions`}),(0,m.jsx)(`ul`,{className:G.list,children:r.output.nextActions.map((e,t)=>(0,m.jsx)(`li`,{className:G.listItem,children:e},t))})]})]})]})]})}var q={page:`_page_m0wyz_1`,header:`_header_m0wyz_2`,h1:`_h1_m0wyz_3`,refreshBtn:`_refreshBtn_m0wyz_4`,graphWrapper:`_graphWrapper_m0wyz_10`,error:`_error_m0wyz_11`,loading:`_loading_m0wyz_12`};function J(){let{graph:e,loading:t,error:n,refetch:i}=f(),[a,o]=(0,d.useState)(null),s=e?.nodes.find(e=>e.id===a)??null;return(0,m.jsxs)(`div`,{className:q.page,children:[(0,m.jsxs)(`div`,{className:q.header,children:[(0,m.jsx)(`h1`,{className:q.h1,children:`Pipelines`}),(0,m.jsx)(`button`,{type:`button`,className:q.refreshBtn,onClick:()=>void i(),disabled:t,children:t?`Refreshing...`:`Refresh`})]}),n&&(0,m.jsxs)(`div`,{className:q.error,children:[`Failed to load graph: `,n]}),t&&!e&&(0,m.jsx)(`div`,{className:q.loading,children:`Loading topology...`}),e&&(0,m.jsx)(`div`,{className:q.graphWrapper,children:(0,m.jsx)(r,{children:(0,m.jsx)(w,{graph:e,onSelectNode:o})})}),s&&(0,m.jsx)(K,{jobId:s.id,jobName:s.name,onClose:()=>o(null)})]})}export{J as PipelinesPage};
@@ -0,0 +1 @@
1
+ ._node_kl9z1_1{color:#e8e8e8;cursor:pointer;background:#1a1a1a;border:1px solid #444;border-radius:8px;flex-direction:column;gap:4px;min-width:180px;min-height:56px;padding:10px 12px;font-size:13px;display:flex}._node_kl9z1_1._disabled_kl9z1_15{opacity:.55;background:#222}._node_kl9z1_1._statusSuccess_kl9z1_16{border-left:4px solid #2da44e}._node_kl9z1_1._statusFailed_kl9z1_17{border-left:4px solid #cf222e}._node_kl9z1_1._statusRunning_kl9z1_18{border-left:4px solid #d4a017}._title_kl9z1_19{font-size:14px;font-weight:600}._row_kl9z1_20{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._pill_kl9z1_21{background:#2a2a2a;border-radius:999px;padding:2px 6px;font-size:11px}._pillSuccess_kl9z1_27{color:#4ade80;background:#1f3d27}._pillFailed_kl9z1_28{color:#f87171;background:#3d1f23}._pillRunning_kl9z1_29{color:#fbbf24;background:#3d3520}._pillDisabled_kl9z1_30{color:#888;background:#2a2a2a}._dot_kl9z1_31{background:#4ade80;border-radius:50%;width:8px;height:8px;display:inline-block}._container_22c3i_1{background:#0f0f0f;border-radius:8px;width:100%;height:100%;min-height:500px;position:relative}._legend_22c3i_9{color:#ccc;z-index:5;background:#141414e6;border-radius:6px;flex-direction:column;gap:4px;padding:8px 12px;font-size:12px;display:flex;position:absolute;top:12px;right:12px}._legendRow_22c3i_23{align-items:center;gap:6px;display:flex}._legendDataLine_22c3i_24,._legendDepLine_22c3i_24{border-top:2px solid;width:24px;height:0}._legendDataLine_22c3i_24{border-color:#4ade80}._legendDepLine_22c3i_24{border-style:dashed;border-color:#888}._GzYRV{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;line-height:1.2}._3eOF8{margin-right:5px;font-weight:700}._3eOF8+._3eOF8{margin-left:-5px}._1MFti{cursor:pointer}._f10Tu{-webkit-user-select:none;user-select:none;margin-right:5px;font-size:1.2em}._1UmXx:after{content:"▸"}._1LId0:after{content:"▾"}._1pNG9{margin-right:5px}._1pNG9:after{content:"...";font-size:.8em}._2IvMF{background:#eee}._2bkNM{margin:0;padding:0 10px}._1BXBN{margin:0;padding:0}._1MGIk{color:#000;margin-right:5px;font-weight:600}._3uHL6{color:#000}._2T6PJ,._1Gho6{color:#df113a}._vGjyY{color:#2a3f3c}._1bQdo{color:#0b75f5}._3zQKs{color:#469038}._1xvuR{color:#43413d}._oLqym,._2AXVT,._2KJWg{color:#000}._11RoI{background:#002b36}._17H2C,._3QHg2,._3fDAz{color:#fdf6e3}._2bSDX{color:#fdf6e3;margin-right:5px;font-weight:bolder}._gsbQL{color:#fdf6e3}._LaAZe,._GTKgm{color:#81b5ac}._Chy1W{color:#cb4b16}._2bveF{color:#d33682}._2vRm-{color:#ae81ff}._1prJR{color:#268bd2}._backdrop_9bk4g_1{z-index:100;background:#00000080;position:fixed;inset:0}._drawer_9bk4g_7{color:#e8e8e8;z-index:101;background:#181818;flex-direction:column;gap:16px;width:min(480px,100vw);height:100vh;padding:20px;display:flex;position:fixed;top:0;right:0;overflow-y:auto;box-shadow:-2px 0 16px #0009}@media (width<=768px){._drawer_9bk4g_7{border-top-left-radius:16px;border-top-right-radius:16px;width:100vw;height:80vh;inset:auto 0 0}}._header_9bk4g_35{justify-content:space-between;align-items:center;gap:12px;display:flex}._title_9bk4g_41{font-size:18px;font-weight:600}._closeBtn_9bk4g_42{color:#e8e8e8;cursor:pointer;background:0 0;border:1px solid #444;border-radius:6px;min-width:44px;min-height:44px;font-size:20px}._summary_9bk4g_52{background:#222;border-radius:6px;padding:12px;font-size:14px}._section_9bk4g_58 h3{color:#aaa;text-transform:uppercase;letter-spacing:.05em;margin:12px 0 6px;font-size:13px}._list_9bk4g_59{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}._listItem_9bk4g_60{color:#ccc;word-break:break-all;font-family:ui-monospace,monospace;font-size:12px}._empty_9bk4g_61{color:#888;font-style:italic}._error_9bk4g_62{color:#f87171}._dataTree_9bk4g_63{background:#111;border-radius:6px;padding:8px;overflow-x:auto}._page_m0wyz_1{flex-direction:column;gap:12px;height:calc(100vh - 80px);padding:16px;display:flex}._header_m0wyz_2{justify-content:space-between;align-items:center;display:flex}._h1_m0wyz_3{margin:0;font-size:22px;font-weight:600}._refreshBtn_m0wyz_4{color:#e8e8e8;cursor:pointer;background:#2a2a2a;border:1px solid #444;border-radius:6px;min-width:44px;min-height:44px;padding:0 14px}._refreshBtn_m0wyz_4:disabled{opacity:.6;cursor:progress}._graphWrapper_m0wyz_10{flex:1;min-height:400px}._error_m0wyz_11{color:#f87171;background:#2a1818;border-radius:6px;padding:12px}._loading_m0wyz_12{color:#888;padding:12px}@media (width<=768px){._page_m0wyz_1{height:calc(100vh - 64px);padding:8px}._h1_m0wyz_3{font-size:18px}}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-Bq3x7umQ.js";var t=e();function n(e,t=Date.now()){let n=t-e,r=Math.abs(n),i=n<0,a=Math.floor(r/6e4);if(a<1)return i?`in a moment`:`just now`;if(a<60)return i?`in ${a}m`:`${a}m ago`;let o=Math.floor(a/60);if(o<24)return i?`in ${o}h`:`${o}h ago`;let s=Math.floor(o/24);if(s<14)return i?`in ${s}d`:`${s}d ago`;let c=Math.floor(s/7);if(c<8)return i?`in ${c}w`:`${c}w ago`;let l=Math.floor(s/30);return i?`in ${l}mo`:`${l}mo ago`}function r({iso:e,fallback:r=`—`,absoluteTooltip:i=!0,className:a,style:o}){if(!e)return(0,t.jsx)(`span`,{className:a,style:o,children:r});let s=Date.parse(e);if(Number.isNaN(s))return(0,t.jsx)(`span`,{className:a,style:o,children:r});let c=n(s);return(0,t.jsx)(`time`,{dateTime:e,title:i?new Date(s).toLocaleString():void 0,className:a,style:o,children:c})}export{r as t};
@@ -0,0 +1,10 @@
1
+ import{n as e,s as t,t as n}from"./jsx-runtime-Bq3x7umQ.js";import{c as r,n as i}from"./styles-Ds5gMQAQ.js";var a=t(e(),1);function o(){let[e,t]=(0,a.useState)(null),[n,r]=(0,a.useState)(!0),i=(0,a.useCallback)(async()=>{r(!0);try{let e=await fetch(`/api/schedule-optimizer/analysis`);if(!e.ok)return;t(await e.json())}catch{}finally{r(!1)}},[]);return(0,a.useEffect)(()=>{i()},[i]),{plan:e,loading:n,refresh:i,applySuggestion:(0,a.useCallback)(async(e,t,n)=>{try{if(!(await fetch(`/api/schedule-optimizer/apply`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({jobId:e,newSchedule:t,newScheduleHuman:n})})).ok)return}catch{}await i()},[i])}}function s(e){return e===0?`12a`:e<12?`${e}a`:e===12?`12p`:`${e-12}p`}function c(e){let t=e.minute===0?`00`:`30`;return`${s(e.hour)}:${t}`}function l(e){return e>=.8?i.red:e>=.4?`var(--color-warning)`:i.green}function u(e){return e===0?`var(--color-subtle-bg)`:e>=.8?`rgba(248, 81, 73, ${.15+e*.4})`:e>=.4?`rgba(210, 153, 34, ${.15+e*.4})`:`rgba(63, 185, 80, ${.15+e*.4})`}var d=n();function f({slots:e}){let[t,n]=(0,a.useState)(null),r=e.filter(e=>e.minute===0),o=e.filter(e=>e.minute===30),l=(0,a.useCallback)(e=>{n(t=>t?.hour===e.hour&&t?.minute===e.minute?null:e)},[]);return(0,d.jsxs)(`section`,{"aria-label":`Schedule Load Heatmap`,style:{marginBottom:32},children:[(0,d.jsx)(`h2`,{style:{fontSize:15,fontWeight:600,marginBottom:4,color:`var(--color-text)`},children:`Schedule Load Heatmap`}),(0,d.jsx)(`p`,{style:{fontSize:12,color:i.muted,marginBottom:12},children:`24-hour view across 30-minute slots. Click a cell to see which jobs run then.`}),(0,d.jsxs)(`div`,{style:{background:i.cardBg,border:`1px solid ${i.border}`,borderRadius:10,padding:`16px 16px 12px`,overflowX:`auto`,animation:`fadeInUp 0.25s ease both`},children:[(0,d.jsx)(`div`,{style:{display:`flex`,marginLeft:32,marginBottom:4,minWidth:520},children:r.map(e=>(0,d.jsx)(`div`,{style:{flex:1,fontSize:9,color:i.muted,textAlign:`center`,visibility:e.hour%3==0?`visible`:`hidden`},children:s(e.hour)},e.hour))}),(0,d.jsx)(p,{label:`:00`,slots:r,selectedSlot:t,onCellClick:l}),(0,d.jsx)(p,{label:`:30`,slots:o,selectedSlot:t,onCellClick:l}),(0,d.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12,marginTop:10,fontSize:10,color:i.muted},children:[(0,d.jsx)(m,{color:i.green,label:`0–40% load`}),(0,d.jsx)(m,{color:`var(--color-warning)`,label:`40–80%`}),(0,d.jsx)(m,{color:i.red,label:`80%+`})]})]}),t&&(0,d.jsxs)(`div`,{style:{marginTop:8,background:i.cardBg,border:`1px solid ${i.border}`,borderRadius:8,padding:`12px 16px`,animation:`fadeInUp 0.15s ease both`},children:[(0,d.jsxs)(`div`,{style:{fontSize:12,fontWeight:600,color:`var(--color-text)`,marginBottom:4},children:[c(t),` — `,Math.round(t.load*100),`% load`]}),t.jobIds.length===0?(0,d.jsx)(`p`,{style:{fontSize:12,color:i.muted,margin:0},children:`No jobs scheduled in this slot.`}):(0,d.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:6},children:t.jobIds.map(e=>(0,d.jsx)(`span`,{style:{fontSize:11,padding:`2px 8px`,background:`rgba(88,166,255,0.1)`,border:`1px solid rgba(88,166,255,0.25)`,borderRadius:4,color:i.blue},children:e},e))})]})]})}function p({label:e,slots:t,selectedSlot:n,onCellClick:r}){let[o,s]=(0,a.useState)(null);return(0,d.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,marginBottom:3,minWidth:520},children:[(0,d.jsx)(`div`,{style:{width:28,fontSize:9,color:i.muted,textAlign:`right`,paddingRight:6,flexShrink:0},children:e}),(0,d.jsx)(`div`,{style:{display:`flex`,flex:1,gap:2},children:t.map((e,t)=>{let i=n?.hour===e.hour&&n?.minute===e.minute,a=o===t,f=e.load,p=f===0?a||i?`rgba(255,255,255,0.06)`:`var(--color-subtle-bg)`:u(f);return(0,d.jsx)(`div`,{role:`button`,tabIndex:0,onClick:()=>r(e),onKeyDown:t=>t.key===`Enter`&&r(e),onMouseEnter:()=>s(t),onMouseLeave:()=>s(null),title:`${c(e)} — ${Math.round(e.load*100)}% load`,style:{flex:1,height:22,minHeight:22,borderRadius:3,background:p,border:i?`1px solid ${l(f)}`:`1px solid transparent`,cursor:`pointer`,transition:`background 0.12s ease, border 0.12s ease`,display:`flex`,alignItems:`center`,justifyContent:`center`,outline:`none`},children:f>0&&(0,d.jsx)(`span`,{style:{fontSize:7,color:f>=.6?`var(--color-text)`:l(f),fontWeight:700,lineHeight:1,opacity:.95},children:Math.round(f*100)})},`${e.hour}-${e.minute}`)})})]})}function m({color:e,label:t}){return(0,d.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[(0,d.jsx)(`div`,{style:{width:10,height:10,borderRadius:2,background:e,opacity:.7}}),(0,d.jsx)(`span`,{children:t})]})}var h=[{value:`max-5h`,label:`Max (5h/day)`},{value:`max-unlimited`,label:`Max (Unlimited)`},{value:`pro`,label:`Pro`},{value:`custom`,label:`Custom`}],g={"spread-load":i.blue,"reduce-frequency":`var(--color-warning)`,combine:`var(--color-primary)`,defer:i.muted},_={"spread-load":`Spread Load`,"reduce-frequency":`Reduce Frequency`,combine:`Combine`,defer:`Defer`};function v({suggestion:e,onApply:t}){let[n,o]=(0,a.useState)(!1),[s,c]=(0,a.useState)(!1),l=g[e.impact],u=_[e.impact];async function f(){c(!0),await t(e.jobId,e.suggestedSchedule,e.suggestedSchedule),c(!1),o(!1)}return(0,d.jsxs)(`div`,{style:{background:i.cardBg,border:`1px solid ${i.border}`,borderRadius:10,padding:`14px 16px`,animation:`fadeInUp 0.2s ease both`},children:[(0,d.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,justifyContent:`space-between`,gap:12,flexWrap:`wrap`,marginBottom:8},children:[(0,d.jsx)(`div`,{style:{minWidth:0,flex:1},children:(0,d.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,flexWrap:`wrap`},children:[(0,d.jsx)(`span`,{style:{fontSize:14,fontWeight:600,color:`var(--color-text)`},children:e.jobName}),(0,d.jsx)(`span`,{style:{fontSize:10,fontWeight:600,padding:`2px 7px`,borderRadius:4,background:`${l}18`,border:`1px solid ${l}40`,color:l},children:u}),e.savingsPerDay!==void 0&&e.savingsPerDay>0&&(0,d.jsx)(`span`,{style:{fontSize:10,color:i.muted,background:`rgba(255,255,255,0.04)`,border:`1px solid ${i.border}`,borderRadius:4,padding:`2px 7px`},children:`−${e.savingsPerDay} run${e.savingsPerDay===1?``:`s`}/day`})]})}),(0,d.jsx)(`div`,{style:{display:`flex`,gap:6,flexShrink:0},children:n?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`button`,{onClick:()=>o(!1),disabled:s,style:{background:`transparent`,border:`1px solid ${i.border}`,color:i.muted,fontSize:12,fontWeight:500,padding:`5px 10px`,borderRadius:6,cursor:`pointer`,minHeight:30},children:`Cancel`}),(0,d.jsx)(`button`,{onClick:f,disabled:s,style:{background:s?`rgba(63,185,80,0.05)`:`var(--color-positive-soft)`,border:`1px solid rgba(63,185,80,0.4)`,color:s?i.muted:i.green,fontSize:12,fontWeight:600,padding:`5px 12px`,borderRadius:6,cursor:s?`not-allowed`:`pointer`,minHeight:30,transition:`all 0.12s ease`},children:s?`Applying…`:`Confirm Apply`})]}):(0,d.jsx)(`button`,{onClick:()=>o(!0),style:{background:`rgba(63,185,80,0.1)`,border:`1px solid rgba(63,185,80,0.3)`,color:i.green,fontSize:12,fontWeight:500,padding:`5px 12px`,borderRadius:6,cursor:`pointer`,minHeight:30,transition:`all 0.12s ease`},children:`Apply`})})]}),(0,d.jsxs)(`div`,{style:{display:`flex`,gap:12,alignItems:`center`,flexWrap:`wrap`,marginBottom:8,fontSize:12},children:[(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`span`,{style:{color:i.muted,fontSize:10,textTransform:`uppercase`,letterSpacing:.4},children:`Current`}),(0,d.jsx)(`div`,{style:{color:`var(--color-text)`,fontFamily:r,marginTop:2},children:e.currentSchedule})]}),(0,d.jsx)(`span`,{style:{color:i.border,fontSize:16,marginTop:12},children:`→`}),(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`span`,{style:{color:i.muted,fontSize:10,textTransform:`uppercase`,letterSpacing:.4},children:`Suggested`}),(0,d.jsx)(`div`,{style:{color:i.green,fontFamily:r,marginTop:2},children:e.suggestedSchedule})]})]}),(0,d.jsx)(`p`,{style:{fontSize:12,color:i.muted,margin:0,lineHeight:1.5},children:e.reason}),n&&(0,d.jsxs)(`div`,{style:{marginTop:10,padding:`8px 12px`,background:`rgba(63,185,80,0.06)`,border:`1px solid rgba(63,185,80,0.2)`,borderRadius:6,fontSize:12,color:`var(--color-text)`,animation:`fadeInUp 0.12s ease both`},children:[`Apply `,(0,d.jsx)(`strong`,{children:e.suggestedSchedule}),` to `,(0,d.jsx)(`strong`,{children:e.jobName}),`? This will update the job's cron schedule immediately.`]})]})}function y({suggestions:e,onApply:t}){return e.length===0?(0,d.jsxs)(`section`,{"aria-label":`Suggestions`,style:{marginBottom:32},children:[(0,d.jsx)(`h2`,{style:{fontSize:15,fontWeight:600,marginBottom:4,color:`var(--color-text)`},children:`Suggestions`}),(0,d.jsxs)(`div`,{style:{padding:32,textAlign:`center`,color:i.muted,border:`1px dashed ${i.border}`,borderRadius:10,animation:`fadeInUp 0.25s ease both`},children:[(0,d.jsx)(`div`,{style:{fontSize:36,marginBottom:10,opacity:.4},children:`✅`}),(0,d.jsx)(`p`,{style:{fontSize:13},children:`Schedule looks good — no suggestions at this time.`})]})]}):(0,d.jsxs)(`section`,{"aria-label":`Suggestions`,style:{marginBottom:32},children:[(0,d.jsxs)(`h2`,{style:{fontSize:15,fontWeight:600,marginBottom:4,color:`var(--color-text)`},children:[`Suggestions`,(0,d.jsx)(`span`,{style:{marginLeft:8,fontSize:11,fontWeight:500,color:i.muted,background:`rgba(255,255,255,0.06)`,borderRadius:10,padding:`1px 8px`},children:e.length})]}),(0,d.jsx)(`p`,{style:{fontSize:12,color:i.muted,marginBottom:12},children:`Apply schedule changes to reduce concurrency and stay within your daily run budget.`}),(0,d.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:10},children:e.map(e=>(0,d.jsx)(v,{suggestion:e,onApply:t},e.jobId))})]})}function b({planTier:e,dailyRunBudget:t}){let[n,r]=(0,a.useState)(e),[o,s]=(0,a.useState)(t),[c,l]=(0,a.useState)(!1),[u,f]=(0,a.useState)(!1);(0,a.useEffect)(()=>{r(e)},[e]),(0,a.useEffect)(()=>{s(t)},[t]);let p=(0,a.useCallback)(async(e,t)=>{l(!0),f(!1);try{await fetch(`/api/settings`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({schedulerSettings:{planTier:e,dailyRunBudget:t}})}),f(!0),setTimeout(()=>f(!1),2e3)}catch{}finally{l(!1)}},[]);function m(e){let t=e.target.value;r(t),p(t,o)}function g(e){let t=parseInt(e.target.value,10);!isNaN(t)&&t>=1&&t<=500&&s(t)}function _(){p(n,o)}return(0,d.jsxs)(`section`,{"aria-label":`Plan Settings`,style:{marginBottom:32},children:[(0,d.jsx)(`h2`,{style:{fontSize:15,fontWeight:600,marginBottom:4,color:`var(--color-text)`},children:`Plan Settings`}),(0,d.jsx)(`p`,{style:{fontSize:12,color:i.muted,marginBottom:12},children:`Declare your Claude plan tier and daily run budget for accurate load analysis.`}),(0,d.jsxs)(`div`,{style:{background:i.cardBg,border:`1px solid ${i.border}`,borderRadius:10,padding:`16px 20px`,animation:`fadeInUp 0.3s ease both`,display:`flex`,gap:24,flexWrap:`wrap`,alignItems:`flex-end`},children:[(0,d.jsxs)(`div`,{style:{minWidth:180,flex:1},children:[(0,d.jsx)(`label`,{style:{display:`block`,fontSize:11,fontWeight:600,color:i.muted,textTransform:`uppercase`,letterSpacing:.5,marginBottom:6},children:`Plan Tier`}),(0,d.jsx)(`select`,{value:n,onChange:m,style:{width:`100%`,background:`var(--color-bg)`,border:`1px solid ${i.border}`,borderRadius:6,color:`var(--color-text)`,fontSize:13,padding:`7px 10px`,minHeight:36,cursor:`pointer`,outline:`none`},children:h.map(e=>(0,d.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),(0,d.jsxs)(`div`,{style:{minWidth:160,flex:1},children:[(0,d.jsx)(`label`,{style:{display:`block`,fontSize:11,fontWeight:600,color:i.muted,textTransform:`uppercase`,letterSpacing:.5,marginBottom:6},children:`Daily Run Budget`}),(0,d.jsx)(`input`,{type:`number`,min:1,max:500,value:o,onChange:g,onBlur:_,style:{width:`100%`,background:`var(--color-bg)`,border:`1px solid ${i.border}`,borderRadius:6,color:`var(--color-text)`,fontSize:13,padding:`7px 10px`,minHeight:36,outline:`none`,boxSizing:`border-box`}}),(0,d.jsx)(`div`,{style:{fontSize:10,color:i.muted,marginTop:4},children:`Max total cron runs per 24-hour period (1–500)`})]}),(0,d.jsxs)(`div`,{style:{minHeight:36,display:`flex`,alignItems:`center`},children:[c&&(0,d.jsx)(`span`,{style:{fontSize:12,color:i.muted},children:`Saving…`}),u&&!c&&(0,d.jsx)(`span`,{style:{fontSize:12,color:i.green,animation:`fadeInUp 0.15s ease both`},children:`Saved`})]})]})]})}function x(){let{plan:e,loading:t,applySuggestion:n}=o();return t?(0,d.jsxs)(`div`,{className:`page-content-frame`,style:{padding:`32px 48px`},children:[(0,d.jsx)(S,{}),(0,d.jsx)(`p`,{style:{color:i.muted,fontSize:14},children:`Analyzing schedule…`})]}):e?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`style`,{children:`
2
+ @keyframes fadeInUp {
3
+ from { opacity: 0; transform: translateY(8px); }
4
+ to { opacity: 1; transform: translateY(0); }
5
+ }
6
+ @media (max-width: 640px) {
7
+ .sop-header { padding: 20px 16px 0 !important; }
8
+ .sop-body { padding: 16px !important; }
9
+ }
10
+ `}),(0,d.jsx)(`div`,{className:`sop-header`,style:{padding:`32px 48px 0`,maxWidth:1100},children:(0,d.jsx)(S,{})}),(0,d.jsxs)(`div`,{className:`sop-body`,style:{padding:`24px 48px`,maxWidth:1100},children:[(0,d.jsx)(f,{slots:e.slots}),(0,d.jsx)(y,{suggestions:e.suggestions,onApply:n}),(0,d.jsx)(b,{planTier:e.planTier??`max-5h`,dailyRunBudget:e.dailyRunBudget??20})]})]}):(0,d.jsxs)(`div`,{className:`page-content-frame`,style:{padding:`32px 48px`},children:[(0,d.jsx)(S,{}),(0,d.jsxs)(`div`,{style:{marginTop:32,padding:40,textAlign:`center`,color:i.muted,border:`1px dashed ${i.border}`,borderRadius:12},children:[(0,d.jsx)(`div`,{style:{fontSize:48,marginBottom:16,opacity:.4},children:`📅`}),(0,d.jsx)(`p`,{style:{fontSize:13},children:`No schedule data available. Enable some cron jobs to see optimization analysis.`})]})]})}function S(){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`h1`,{style:{fontSize:22,fontWeight:600,marginBottom:4},children:`Schedule Optimizer`}),(0,d.jsx)(`p`,{style:{fontSize:13,color:i.muted,marginBottom:24},children:`Visualize schedule load, resolve concurrency hotspots, and stay within your daily run budget.`})]})}export{x as ScheduleOptimizerPage};
@@ -0,0 +1,2 @@
1
+ import{n as e,s as t,t as n}from"./jsx-runtime-Bq3x7umQ.js";import{r}from"./useWebSocket-Hg3RO6sx.js";import{c as i,n as a}from"./styles-Ds5gMQAQ.js";import{Nt as o,c as s,d as c}from"./index-tOLuwPW6.js";import"./ui-Bx41p7g8.js";var l=t(e(),1),u=50;function d(){let[e,t]=(0,l.useState)([]),[n,i]=(0,l.useState)({}),[a,o]=(0,l.useState)(0),[s,c]=(0,l.useState)(!0),[d,f]=(0,l.useState)(null),[p,m]=(0,l.useState)(0),[h,g]=(0,l.useState)({}),_=(0,l.useCallback)(async()=>{try{let e=new URLSearchParams;for(let t of h.employees??[])e.append(`employee`,t);h.status&&e.set(`status`,h.status),h.from&&e.set(`from`,h.from),h.to&&e.set(`to`,h.to),e.set(`limit`,String(u)),e.set(`offset`,String(p*u));let n=await fetch(`/api/sessions?${e}`);if(!n.ok)throw Error(`HTTP ${n.status}`);let r=await n.json();t(r.sessions),o(r.total),i(r.messageCounts??{}),f(null)}catch(e){f(e instanceof Error?e.message:`Failed to fetch sessions`)}finally{c(!1)}},[h,p]);return(0,l.useEffect)(()=>{_()},[_]),r(`session:created`,_),r(`session:completed`,_),r(`session:error`,_),r(`session:deleted`,_),r(`ws:reconnected`,_),{sessions:e,total:a,messageCounts:n,loading:s,error:d,page:p,pageSize:u,setPage:m,filters:h,setFilters:g,refetch:_}}var f=n();function p(e){if(e<1e3)return`${e}ms`;let t=Math.round(e/1e3);return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}function m(e){return`${`$${e.costUsd.toFixed(2)} USD`} \u00b7 ${`${e.numTurns} turn${e.numTurns===1?``:`s`}`} \u00b7 ${p(e.durationMs)}`}var h={user:{borderLeft:`3px solid ${a.blue}`,paddingLeft:12,background:`rgba(88,166,255,0.06)`},assistant:{borderLeft:`3px solid #484f58`,paddingLeft:12,background:`var(--color-subtle-bg)`},system:{borderLeft:`3px solid ${a.muted}`,paddingLeft:12,background:`rgba(139,148,158,0.06)`,fontSize:13,color:a.muted}},g={user:`👤 User`,assistant:`🤖 Assistant`,system:`🔔 System`},_={idle:a.muted,running:a.blue,error:a.red,waiting:a.warning,interrupted:`var(--color-primary)`},v={p:({children:e})=>(0,f.jsx)(`p`,{style:{margin:`4px 0`},children:e}),strong:({children:e})=>(0,f.jsx)(`strong`,{children:e}),em:({children:e})=>(0,f.jsx)(`em`,{children:e}),code:({children:e,className:t})=>{let n=t?.startsWith(`language-`),r=typeof e==`string`&&e.includes(`
2
+ `);return n||r?(0,f.jsx)(`code`,{style:{display:`block`,background:`var(--color-bg)`,padding:`10px 12px`,borderRadius:6,fontSize:12,overflowX:`auto`,whiteSpace:`pre`},children:e}):(0,f.jsx)(`code`,{style:{background:`rgba(110,118,129,0.2)`,padding:`1px 5px`,borderRadius:3,fontSize:12},children:e})},pre:({children:e})=>(0,f.jsx)(`pre`,{style:{margin:`6px 0`,background:`var(--color-bg)`,borderRadius:6,overflow:`auto`},children:e}),ol:({children:e})=>(0,f.jsx)(`ol`,{style:{margin:`4px 0`,paddingLeft:20},children:e}),ul:({children:e})=>(0,f.jsx)(`ul`,{style:{margin:`4px 0`,paddingLeft:20},children:e}),li:({children:e})=>(0,f.jsx)(`li`,{style:{marginBottom:2},children:e}),h1:({children:e})=>(0,f.jsx)(`div`,{style:{fontSize:16,fontWeight:600,margin:`8px 0 4px`},children:e}),h2:({children:e})=>(0,f.jsx)(`div`,{style:{fontSize:15,fontWeight:600,margin:`6px 0 3px`},children:e}),h3:({children:e})=>(0,f.jsx)(`div`,{style:{fontSize:14,fontWeight:600,margin:`4px 0 2px`},children:e}),blockquote:({children:e})=>(0,f.jsx)(`blockquote`,{style:{borderLeft:`3px solid #484f58`,margin:`4px 0`,paddingLeft:12,color:`var(--color-text-muted)`},children:e}),a:({href:e,children:t})=>(0,f.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,style:{color:a.blue},children:t})};function y({session:e,onBack:t}){let[n,r]=(0,l.useState)([]),[s,c]=(0,l.useState)(!0);return(0,l.useEffect)(()=>{let t=!1;return c(!0),fetch(`/api/sessions/${e.id}/messages`).then(e=>e.json()).then(e=>{t||(r(e.messages),c(!1))}).catch(()=>{t||c(!1)}),()=>{t=!0}},[e.id]),(0,f.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100%`},children:[(0,f.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12,padding:`12px 16px`,borderBottom:`1px solid ${a.border}`,background:a.cardBg,flexShrink:0},children:[(0,f.jsx)(`button`,{onClick:t,style:{background:`none`,border:`none`,color:a.blue,cursor:`pointer`,fontSize:14,padding:`4px 8px`,borderRadius:6},children:`← Back`}),(0,f.jsxs)(`div`,{style:{flex:1},children:[(0,f.jsx)(`div`,{style:{fontSize:14,fontWeight:600,color:a.text},children:e.title||`Session ${e.id.slice(0,8)}`}),(0,f.jsx)(`div`,{style:{fontSize:12,color:a.muted,marginTop:2,fontFamily:i},children:m(e)})]}),(0,f.jsx)(`span`,{style:{padding:`2px 8px`,borderRadius:10,fontSize:11,fontWeight:600,textTransform:`uppercase`,background:`${_[e.status]??a.muted}22`,color:_[e.status]??a.muted},children:e.status})]}),(0,f.jsxs)(`div`,{style:{padding:`8px 16px`,fontSize:12,color:a.muted,borderBottom:`1px solid ${a.border}`,display:`flex`,gap:16,flexWrap:`wrap`},children:[e.employee&&(0,f.jsxs)(`span`,{children:[`Employee: `,(0,f.jsx)(`strong`,{style:{color:a.text},children:e.employee})]}),(0,f.jsxs)(`span`,{children:[`Created: `,new Date(e.createdAt).toLocaleString()]}),(0,f.jsxs)(`span`,{children:[`Messages: `,n.length]})]}),(0,f.jsx)(`div`,{style:{flex:1,overflowY:`auto`,padding:16,display:`flex`,flexDirection:`column`,gap:12},children:s?(0,f.jsx)(`div`,{style:{color:a.muted,textAlign:`center`,padding:32},children:`Loading messages...`}):n.length===0?(0,f.jsx)(`div`,{style:{color:a.muted,textAlign:`center`,padding:32},children:`No messages in this session`}):n.map(e=>(0,f.jsxs)(`div`,{style:{padding:`10px 12px`,borderRadius:8,...h[e.role]??h.system},children:[(0,f.jsxs)(`div`,{style:{fontSize:11,color:a.muted,marginBottom:4,display:`flex`,justifyContent:`space-between`},children:[(0,f.jsx)(`span`,{children:g[e.role]??e.role}),(0,f.jsx)(`span`,{style:{fontFamily:i,fontSize:10},children:new Date(e.createdAt).toLocaleTimeString()})]}),(0,f.jsx)(`div`,{style:{fontSize:13,lineHeight:1.5,wordBreak:`break-word`,color:e.role===`system`?a.muted:a.text,...e.role===`assistant`?{}:{whiteSpace:`pre-wrap`}},children:e.role===`assistant`?(0,f.jsx)(o,{components:v,children:e.content}):e.content})]},e.id))})]})}function b(e){if(e<1e3)return`${e}ms`;let t=Math.round(e/1e3);return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}function x(e){return`$${e.toFixed(2)}`}var S={idle:a.muted,running:a.blue,error:a.red,waiting:a.warning,interrupted:`var(--color-primary)`},C=[{value:``,label:`All Statuses`},{value:`idle`,label:`Idle`},{value:`running`,label:`Running`},{value:`error`,label:`Error`},{value:`interrupted`,label:`Interrupted`},{value:`waiting`,label:`Waiting`}],w={display:`flex`,flexDirection:`column`,height:`100%`,background:a.darkBg,borderRadius:12,border:`1px solid ${a.border}`,overflow:`hidden`},T={display:`flex`,gap:8,padding:`10px 16px`,borderBottom:`1px solid ${a.border}`,background:a.cardBg,flexWrap:`wrap`,alignItems:`center`,flexShrink:0},E={background:`var(--color-bg)`,color:a.text,border:`1px solid ${a.border}`,borderRadius:6,padding:`6px 10px`,fontSize:12,fontFamily:i,minHeight:32},D={...E,colorScheme:`dark`},O={display:`flex`,flexDirection:`column`,gap:4,padding:`12px 16px`,borderBottom:`1px solid ${a.border}`,cursor:`pointer`,transition:`background 0.15s`},k={display:`flex`,justifyContent:`space-between`,alignItems:`center`,padding:`10px 16px`,borderTop:`1px solid ${a.border}`,background:a.cardBg,flexShrink:0,fontSize:12,color:a.muted};function A(){let{sessions:e,total:t,messageCounts:n,loading:r,page:i,pageSize:o,setPage:u,filters:p,setFilters:m}=d(),{employees:h}=s(),[g,_]=(0,l.useState)(null),v=(0,l.useMemo)(()=>h.map(e=>({value:e.name,label:`${e.emoji??``} ${e.displayName??e.name}`.trim()})),[h]),b=Math.max(1,Math.ceil(t/o));return g?(0,f.jsx)(`div`,{style:w,children:(0,f.jsx)(y,{session:g,onBack:()=>_(null)})}):(0,f.jsxs)(`div`,{style:w,children:[(0,f.jsxs)(`div`,{style:T,children:[(0,f.jsx)(`div`,{style:{minWidth:220},children:(0,f.jsx)(c,{options:v,selected:p.employees??[],onChange:e=>{m({...p,employees:e.length>0?e:void 0}),u(0)},emptyLabel:`All employees`,searchPlaceholder:`Filter employees…`})}),(0,f.jsx)(`select`,{value:p.status??``,onChange:e=>{m({...p,status:e.target.value||void 0}),u(0)},style:E,children:C.map(e=>(0,f.jsx)(`option`,{value:e.value,children:e.label},e.value))}),(0,f.jsx)(`input`,{type:`date`,value:p.from??``,onChange:e=>{let t=e.target.value;m({...p,from:t?`${t}T00:00:00.000Z`:void 0}),u(0)},style:D,title:`From date`}),(0,f.jsx)(`input`,{type:`date`,value:p.to??``,onChange:e=>{let t=e.target.value;m({...p,to:t?`${t}T23:59:59.999Z`:void 0}),u(0)},style:D,title:`To date`}),(0,f.jsxs)(`span`,{style:{fontSize:11,color:a.muted,marginLeft:`auto`},children:[t,` session`,t===1?``:`s`]})]}),(0,f.jsx)(`div`,{style:{flex:1,overflowY:`auto`},children:r?(0,f.jsx)(`div`,{style:{color:a.muted,textAlign:`center`,padding:32},children:`Loading sessions...`}):e.length===0?(0,f.jsx)(`div`,{style:{color:a.muted,textAlign:`center`,padding:32},children:`No sessions found`}):e.map(e=>(0,f.jsx)(j,{session:e,messageCount:n[e.id]??0,onClick:()=>_(e)},e.id))}),t>o&&(0,f.jsxs)(`div`,{style:k,children:[(0,f.jsx)(`button`,{onClick:()=>u(Math.max(0,i-1)),disabled:i===0,style:{background:`none`,border:`1px solid ${a.border}`,color:i===0?`var(--color-border-strong)`:a.blue,borderRadius:6,padding:`4px 12px`,cursor:i===0?`default`:`pointer`,fontSize:12},children:`Prev`}),(0,f.jsxs)(`span`,{children:[`Page `,i+1,` of `,b]}),(0,f.jsx)(`button`,{onClick:()=>u(Math.min(b-1,i+1)),disabled:i>=b-1,style:{background:`none`,border:`1px solid ${a.border}`,color:i>=b-1?`var(--color-border-strong)`:a.blue,borderRadius:6,padding:`4px 12px`,cursor:i>=b-1?`default`:`pointer`,fontSize:12},children:`Next`})]})]})}function j({session:e,messageCount:t,onClick:n}){let[r,o]=(0,l.useState)(!1);return(0,f.jsxs)(`div`,{style:{...O,background:r?`rgba(88,166,255,0.04)`:`transparent`},onClick:n,onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),children:[(0,f.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10,minWidth:0},children:[(0,f.jsx)(`div`,{style:{flex:1,minWidth:0,fontSize:14,fontWeight:500,color:a.text,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,letterSpacing:`-0.005em`},children:e.title||`Session ${e.id.slice(0,8)}`}),(0,f.jsx)(`span`,{style:{padding:`2px 8px`,borderRadius:10,fontSize:10,fontWeight:600,textTransform:`uppercase`,letterSpacing:.3,background:`${S[e.status]??a.muted}22`,color:S[e.status]??a.muted,flexShrink:0},children:e.status})]}),(0,f.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10,flexWrap:`wrap`,fontSize:11,color:a.muted,fontFamily:i},children:[(0,f.jsx)(`span`,{style:{color:a.textSecondary},children:e.employee||`No employee`}),(0,f.jsx)(`span`,{children:new Date(e.createdAt).toLocaleDateString()}),(0,f.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,f.jsx)(`span`,{children:b(e.durationMs)}),(0,f.jsxs)(`span`,{children:[e.numTurns,`t`]}),(0,f.jsxs)(`span`,{children:[t,`m`]}),(0,f.jsx)(`span`,{style:{marginLeft:`auto`,color:a.green},children:x(e.costUsd)})]})]})}export{A as SessionHistory};