@0xmaxma/claude-gateway 2.0.5 → 2.0.6

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 (118) hide show
  1. package/dist/agent/runner.d.ts +14 -0
  2. package/dist/agent/runner.d.ts.map +1 -1
  3. package/dist/agent/runner.js +75 -71
  4. package/dist/agent/runner.js.map +1 -1
  5. package/dist/agent/session-compaction-scheduler.d.ts +22 -0
  6. package/dist/agent/session-compaction-scheduler.d.ts.map +1 -0
  7. package/dist/agent/session-compaction-scheduler.js +40 -0
  8. package/dist/agent/session-compaction-scheduler.js.map +1 -0
  9. package/dist/api/gateway-router.d.ts.map +1 -1
  10. package/dist/api/gateway-router.js +100 -10
  11. package/dist/api/gateway-router.js.map +1 -1
  12. package/dist/api/memory-activity.d.ts +18 -0
  13. package/dist/api/memory-activity.d.ts.map +1 -0
  14. package/dist/api/memory-activity.js +97 -0
  15. package/dist/api/memory-activity.js.map +1 -0
  16. package/dist/orchestration/agent-tool-schemas.js +1 -1
  17. package/dist/orchestration/agent-tool-schemas.js.map +1 -1
  18. package/dist/orchestration/bridge.js +1 -1
  19. package/dist/orchestration/bridge.js.map +1 -1
  20. package/dist/orchestration/compact-measurements.d.ts +21 -0
  21. package/dist/orchestration/compact-measurements.d.ts.map +1 -0
  22. package/dist/orchestration/compact-measurements.js +62 -0
  23. package/dist/orchestration/compact-measurements.js.map +1 -0
  24. package/dist/orchestration/config.d.ts +4 -0
  25. package/dist/orchestration/config.d.ts.map +1 -1
  26. package/dist/orchestration/config.js +1 -1
  27. package/dist/orchestration/config.js.map +1 -1
  28. package/dist/orchestration/context-delivery.d.ts +32 -0
  29. package/dist/orchestration/context-delivery.d.ts.map +1 -0
  30. package/dist/orchestration/context-delivery.js +101 -0
  31. package/dist/orchestration/context-delivery.js.map +1 -0
  32. package/dist/orchestration/conversation-intake.d.ts +10 -6
  33. package/dist/orchestration/conversation-intake.d.ts.map +1 -1
  34. package/dist/orchestration/conversation-intake.js +22 -8
  35. package/dist/orchestration/conversation-intake.js.map +1 -1
  36. package/dist/orchestration/dashboard-charts.d.ts +32 -0
  37. package/dist/orchestration/dashboard-charts.d.ts.map +1 -0
  38. package/dist/orchestration/dashboard-charts.js +77 -0
  39. package/dist/orchestration/dashboard-charts.js.map +1 -0
  40. package/dist/orchestration/dashboard-reader-worker.js +21 -3
  41. package/dist/orchestration/dashboard-reader-worker.js.map +1 -1
  42. package/dist/orchestration/dashboard-reader.d.ts +1 -1
  43. package/dist/orchestration/dashboard-reader.d.ts.map +1 -1
  44. package/dist/orchestration/dashboard-reader.js +2 -2
  45. package/dist/orchestration/dashboard-reader.js.map +1 -1
  46. package/dist/orchestration/decision-context.d.ts +1 -1
  47. package/dist/orchestration/decision-context.d.ts.map +1 -1
  48. package/dist/orchestration/decision-context.js +2 -2
  49. package/dist/orchestration/decision-context.js.map +1 -1
  50. package/dist/orchestration/mutation-recovery.d.ts +3 -2
  51. package/dist/orchestration/mutation-recovery.d.ts.map +1 -1
  52. package/dist/orchestration/mutation-recovery.js +8 -0
  53. package/dist/orchestration/mutation-recovery.js.map +1 -1
  54. package/dist/orchestration/native-compact.d.ts +4 -1
  55. package/dist/orchestration/native-compact.d.ts.map +1 -1
  56. package/dist/orchestration/native-compact.js +6 -2
  57. package/dist/orchestration/native-compact.js.map +1 -1
  58. package/dist/orchestration/process-turn.d.ts +1 -0
  59. package/dist/orchestration/process-turn.d.ts.map +1 -1
  60. package/dist/orchestration/process-turn.js +1 -1
  61. package/dist/orchestration/process-turn.js.map +1 -1
  62. package/dist/orchestration/runtime.d.ts +13 -1
  63. package/dist/orchestration/runtime.d.ts.map +1 -1
  64. package/dist/orchestration/runtime.js +161 -18
  65. package/dist/orchestration/runtime.js.map +1 -1
  66. package/dist/orchestration/session-compaction.d.ts +59 -0
  67. package/dist/orchestration/session-compaction.d.ts.map +1 -0
  68. package/dist/orchestration/session-compaction.js +212 -0
  69. package/dist/orchestration/session-compaction.js.map +1 -0
  70. package/dist/orchestration/tasks/driver.js +1 -1
  71. package/dist/orchestration/tasks/driver.js.map +1 -1
  72. package/dist/orchestration/token-ledger.d.ts +7 -0
  73. package/dist/orchestration/token-ledger.d.ts.map +1 -1
  74. package/dist/orchestration/token-ledger.js +1 -0
  75. package/dist/orchestration/token-ledger.js.map +1 -1
  76. package/dist/types.d.ts +3 -0
  77. package/dist/types.d.ts.map +1 -1
  78. package/dist/ui/dashboard-charts.d.ts +3 -0
  79. package/dist/ui/dashboard-charts.d.ts.map +1 -0
  80. package/dist/ui/dashboard-charts.js +130 -0
  81. package/dist/ui/dashboard-charts.js.map +1 -0
  82. package/dist/ui/dashboard-client.d.ts.map +1 -1
  83. package/dist/ui/dashboard-client.js +10 -14
  84. package/dist/ui/dashboard-client.js.map +1 -1
  85. package/dist/ui/dashboard-controls.d.ts +4 -0
  86. package/dist/ui/dashboard-controls.d.ts.map +1 -0
  87. package/dist/ui/dashboard-controls.js +27 -0
  88. package/dist/ui/dashboard-controls.js.map +1 -0
  89. package/dist/ui/dashboard-presentation.d.ts +3 -0
  90. package/dist/ui/dashboard-presentation.d.ts.map +1 -1
  91. package/dist/ui/dashboard-presentation.js +11 -5
  92. package/dist/ui/dashboard-presentation.js.map +1 -1
  93. package/dist/ui/dashboard-range.d.ts +3 -3
  94. package/dist/ui/dashboard-range.d.ts.map +1 -1
  95. package/dist/ui/dashboard-range.js +21 -5
  96. package/dist/ui/dashboard-range.js.map +1 -1
  97. package/dist/ui/dashboard-theme.d.ts +3 -1
  98. package/dist/ui/dashboard-theme.d.ts.map +1 -1
  99. package/dist/ui/dashboard-theme.js +80 -3
  100. package/dist/ui/dashboard-theme.js.map +1 -1
  101. package/dist/ui/memory-activity.d.ts +4 -0
  102. package/dist/ui/memory-activity.d.ts.map +1 -0
  103. package/dist/ui/memory-activity.js +115 -0
  104. package/dist/ui/memory-activity.js.map +1 -0
  105. package/dist/ui/token-report-client.d.ts +1 -1
  106. package/dist/ui/token-report-client.d.ts.map +1 -1
  107. package/dist/ui/token-report-client.js +1 -1
  108. package/dist/ui/token-report.d.ts +1 -0
  109. package/dist/ui/token-report.d.ts.map +1 -1
  110. package/dist/ui/token-report.js +18 -15
  111. package/dist/ui/token-report.js.map +1 -1
  112. package/dist/ui/web-ui.d.ts +1 -1
  113. package/dist/ui/web-ui.d.ts.map +1 -1
  114. package/dist/ui/web-ui.js +15 -238
  115. package/dist/ui/web-ui.js.map +1 -1
  116. package/mcp/tools/telegram/receiver-server.ts +31 -17
  117. package/mcp/tools/telegram/session-browser.ts +10 -0
  118. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"token-report.js","sourceRoot":"","sources":["../../src/ui/token-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-report.js","sourceRoot":"","sources":["../../src/ui/token-report.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Generates a self-contained HTML dashboard page for the gateway status UI.
3
3
  * No external dependencies except xterm.js CDN for PTY viewer.
4
4
  */
5
- export declare function generateDashboardHtml(): string;
5
+ export declare function generateDashboardHtml(timezone?: string): string;
6
6
  /**
7
7
  * Minimal, self-contained login page served at GET /dashboard when API keys are
8
8
  * configured and the request has no valid dashboard session cookie. Posts the
@@ -1 +1 @@
1
- {"version":3,"file":"web-ui.d.ts","sourceRoot":"","sources":["../../src/ui/web-ui.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA07D9C;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,SAAK,GAAG,MAAM,CA6F7D"}
1
+ {"version":3,"file":"web-ui.d.ts","sourceRoot":"","sources":["../../src/ui/web-ui.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,SAAQ,GAAG,MAAM,CAwtD9D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,SAAK,GAAG,MAAM,CA6F7D"}
package/dist/ui/web-ui.js CHANGED
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateDashboardHtml = generateDashboardHtml;
4
4
  exports.generateLoginHtml = generateLoginHtml;
5
+ const dashboard_charts_1 = require("./dashboard-charts");
6
+ const dashboard_controls_1 = require("./dashboard-controls");
7
+ const memory_activity_1 = require("./memory-activity");
5
8
  const dashboard_range_1 = require("./dashboard-range");
6
9
  const dashboard_theme_1 = require("./dashboard-theme");
7
10
  const dashboard_client_1 = require("./dashboard-client");
@@ -9,7 +12,7 @@ const dashboard_client_1 = require("./dashboard-client");
9
12
  * Generates a self-contained HTML dashboard page for the gateway status UI.
10
13
  * No external dependencies except xterm.js CDN for PTY viewer.
11
14
  */
12
- function generateDashboardHtml() {
15
+ function generateDashboardHtml(timezone = 'UTC') {
13
16
  return `<!DOCTYPE html>
14
17
  <html lang="en" data-theme="light">
15
18
  <head>
@@ -300,48 +303,6 @@ function generateDashboardHtml() {
300
303
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
301
304
  color: #718096; font-size: 0.9rem; text-align: center; padding: 20px; pointer-events: none;
302
305
  }
303
- /* --- Nightly dreaming report --- */
304
- .dreams-list { display: flex; flex-direction: column; gap: 12px; padding: 4px 2px 20px; }
305
- .dreams-empty { color: #718096; font-size: 0.9rem; text-align: center; padding: 40px 20px; }
306
- .dream-run {
307
- background: #131a2b; border: 1px solid #222c40; border-radius: 8px; padding: 12px 14px;
308
- }
309
- .dream-run-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
310
- .dream-run-head .agent { color: #63b3ed; font-weight: 600; }
311
- .dream-run-head .when { color: #718096; font-size: 0.78rem; font-family: monospace; }
312
- .dream-badge { border-radius: 4px; padding: 1px 7px; font-size: 0.7rem; font-weight: 600; }
313
- .dream-badge.auto { background: #22543d; color: #9ae6b4; border: 1px solid #2f855a; }
314
- .dream-badge.propose { background: #2a4365; color: #90cdf4; border: 1px solid #2b6cb0; }
315
- .dream-badge.outcome { background: #2d3748; color: #cbd5e0; border: 1px solid #4a5568; }
316
- .dream-summary { color: #cbd5e0; font-size: 0.86rem; margin: 4px 0 8px; }
317
- .dream-meta { color: #718096; font-size: 0.75rem; margin-top: 8px; }
318
- .dream-props { display: flex; flex-direction: column; gap: 6px; }
319
- .dream-prop {
320
- background: #0e1420; border: 1px solid #1e2740; border-radius: 6px; padding: 7px 9px; font-size: 0.82rem;
321
- }
322
- .dream-prop .op { font-weight: 600; text-transform: uppercase; font-size: 0.7rem; margin-right: 6px; }
323
- .dream-prop .op.add { color: #68d391; } .dream-prop .op.replace { color: #f6ad55; } .dream-prop .op.remove { color: #fc8181; }
324
- .dream-prop .file { color: #90cdf4; font-family: monospace; font-size: 0.76rem; }
325
- .dream-prop .score { color: #718096; font-size: 0.72rem; float: right; }
326
- .dream-prop .reason { color: #a0aec0; margin-top: 3px; }
327
- .dream-prop .content { color: #cbd5e0; margin-top: 5px; white-space: pre-wrap; word-break: break-word;
328
- background: #070a12; border-radius: 4px; padding: 6px 8px; font-size: 0.78rem; max-height: 140px; overflow: auto; }
329
- .dream-prop .anchor { color: #f6ad55; font-family: monospace; font-size: 0.72rem; margin-top: 3px; }
330
- .dream-prop.accepted { border-color: #2f855a; }
331
- .dream-prop-actions { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
332
- .dream-accept-btn { background: #22543d; color: #9ae6b4; border: 1px solid #2f855a; border-radius: 4px;
333
- padding: 2px 10px; font-size: 0.74rem; font-weight: 600; cursor: pointer; }
334
- .dream-accept-btn:hover { background: #276749; }
335
- .dream-accept-btn:disabled { opacity: 0.55; cursor: default; }
336
- .prop-status { font-size: 0.72rem; font-weight: 600; }
337
- .prop-status.applied { color: #9ae6b4; }
338
- .prop-status.applied-auto { color: #68d391; }
339
- .prop-status.pending { color: #90cdf4; }
340
- .prop-status.failed { color: #fc8181; }
341
- .dream-accept-all { background: #22543d; color: #9ae6b4; border: 1px solid #2f855a; border-radius: 4px;
342
- padding: 1px 9px; font-size: 0.7rem; font-weight: 600; cursor: pointer; }
343
- .dream-accept-all:hover { background: #276749; }
344
- .dream-accept-all:disabled { opacity: 0.55; cursor: default; }
345
306
  /* Note detail — full-width card below the graph. Shows the whole file. */
346
307
  .kb-note {
347
308
  margin-top: 12px; background: var(--panel); border: 1px solid var(--line); border-radius: 8px;
@@ -409,9 +370,9 @@ function generateDashboardHtml() {
409
370
  ${dashboard_theme_1.dashboardTheme}
410
371
  </style>
411
372
  ${dashboard_theme_1.dashboardFontLink}<script>try{document.documentElement.dataset.sidebarCollapsed=localStorage.getItem("gateway-sidebar-collapsed")==="true"?"true":"false";}catch{}</script></head>
412
- <body><div class="layout"><aside class="sidebar" id="dashboard-sidebar"><div class="brand row" id="sidebar-brand" role="button" tabindex="0" aria-label="Collapse sidebar" aria-expanded="true" aria-controls="dashboard-sidebar"><div class="brandmark">✳</div><div>Claude Gateway<small>OPERATIONS CONSOLE</small></div></div><div class="navlabel">WORKSPACE</div><nav class="tabs" aria-label="Main navigation"><button class="tab active" id="tab-overview" data-view="view-overview"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M3 3h7v7H3zM14 3h7v4h-7zM14 11h7v10h-7zM3 14h7v7H3z"/></svg>Overview</button><button class="tab " id="tab-sessions" data-view="view-sessions"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11a8 8 0 0 1-8 8H6l-4 3 1-7a8 8 0 1 1 18-4Z"/></svg>Conversations</button><button class="tab " id="tab-tasks" data-view="view-tasks"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M9 5h12M9 12h12M9 19h12M3 5l1 1 2-3M3 12l1 1 2-3M3 19l1 1 2-3"/></svg>Tasks</button><button class="tab " id="tab-usage" data-view="view-usage"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M4 20V10m8 10V4m8 16v-7"/></svg>Usage & tokens</button><button class="tab " id="tab-kb" data-view="view-kb"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M4 3h7v18H4zM14 3h7v18h-7zM7 7h1m9 0h1"/></svg>Knowledge base</button><button class="tab " id="tab-dreams" data-view="view-dreams"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 15A9 9 0 0 1 9 4 9 9 0 1 0 20 15Z"/></svg>Nightly dreaming</button><button class="tab " id="tab-system" data-view="view-system"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M3 4h18v6H3zM3 14h18v6H3zM6 7h1M6 17h1"/></svg>System</button></nav><div class="sidebarfoot"><div class="instance">Claude Gateway<br><span id="gateway-version"></span></div></div></aside><div class="main"><header class="topbar"><div class="row"><button id="dash-menu" class="mobilemenu" aria-label="Collapse sidebar" aria-expanded="true" aria-controls="dashboard-sidebar" title="Collapse sidebar"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M9 4v16"/></svg></button><h1 id="dash-current-view">Overview</h1></div><div id="top-right"><span id="refresh-indicator">Connecting…</span><button class="theme-toggle" id="dash-theme" aria-label="Toggle light and dark theme">◐</button><button id="logout-btn">Logout</button></div></header><main class="shell-content"><div class="meta">Uptime: <span id="uptime">—</span> · Started: <span id="started-at">—</span> · Updated: <span id="last-updated">—</span></div>
413
- <div id="view-overview" class="view"><div class="heading" style="margin-top:24px"><div class="eyebrow">ONE WORKSPACE. EVERY CONVERSATION.</div><h1>Good work, <span class="gradient-title">in motion.</span></h1><p>Your agents, ongoing work, and what needs your attention.</p></div><div class="dash-grid" id="overview-stats"></div><div class="columns"><section class="dash-panel"><h2>Token activity</h2><p class="live-note">Today · UTC · Workers (violet) / Agent (blue)</p><div id="overview-chart"></div><p class="live-note">Recorded token volume, including cache. Not billing cost.</p></section><section class="dash-panel"><h2>Needs your attention</h2><div class="dash-mini-list" id="overview-attention"></div></section></div><section class="dash-panel"><h2>Agents</h2><div class="agents-bar" id="agents-bar"></div></section><section class="dash-panel"><h2>Active & recent work</h2><div id="overview-tasks"></div></section></div>
414
- <div class="dash-filter"><input id="dash-search" type="search" aria-label="Filter displayed sessions" placeholder="Filter this page by session, chat or model…">${(0, dashboard_range_1.rangeButtons)("dash-scope", "24h")}<select id="dash-agent-filter" aria-label="Filter agent"><option value="">All agents</option></select></div><div class="dash-pager"><span data-dash-page></span><div class="row"><button data-dash-prev disabled>← Previous</button><button data-dash-next disabled>Next →</button></div></div>
373
+ <body><div class="layout"><aside class="sidebar" id="dashboard-sidebar"><div class="brand row" id="sidebar-brand" role="button" tabindex="0" aria-label="Collapse sidebar" aria-expanded="true" aria-controls="dashboard-sidebar"><div class="brandmark" aria-hidden="true">✳</div><div>Claude Gateway<small>OPERATIONS CONSOLE</small></div></div><div class="navlabel">WORKSPACE</div><nav class="tabs" aria-label="Main navigation"><button class="tab active" id="tab-overview" data-view="view-overview"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M3 3h7v7H3zM14 3h7v4h-7zM14 11h7v10h-7zM3 14h7v7H3z"/></svg>Overview</button><button class="tab " id="tab-sessions" data-view="view-sessions"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11a8 8 0 0 1-8 8H6l-4 3 1-7a8 8 0 1 1 18-4Z"/></svg>Conversations</button><button class="tab " id="tab-tasks" data-view="view-tasks"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M9 5h12M9 12h12M9 19h12M3 5l1 1 2-3M3 12l1 1 2-3M3 19l1 1 2-3"/></svg>Tasks</button><button class="tab " id="tab-usage" data-view="view-usage"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M4 20V10m8 10V4m8 16v-7"/></svg>Usage & tokens</button><button class="tab " id="tab-kb" data-view="view-kb"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M4 3h7v18H4zM14 3h7v18h-7zM7 7h1m9 0h1"/></svg>Knowledge base</button><button class="tab " id="tab-dreams" data-view="view-dreams"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 15A9 9 0 0 1 9 4 9 9 0 1 0 20 15Z"/></svg>Nightly dreaming</button><button class="tab " id="tab-system" data-view="view-system"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M3 4h18v6H3zM3 14h18v6H3zM6 7h1M6 17h1"/></svg>System</button></nav><div class="sidebarfoot"><div class="instance">Claude Gateway<br><span id="gateway-version"></span></div></div></aside><div class="main"><header class="topbar"><div class="row"><button id="dash-menu" class="mobilemenu" aria-label="Collapse sidebar" aria-expanded="true" aria-controls="dashboard-sidebar" title="Collapse sidebar"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M9 4v16"/></svg></button><h1 id="dash-current-view">Overview</h1></div><div id="top-right"><span id="refresh-indicator">Connecting…</span>${(0, dashboard_controls_1.themeButtonHtml)('dash-theme')}<button id="logout-btn">Logout</button></div></header><main class="shell-content"><div class="meta">Uptime: <span id="uptime">—</span> · Started: <span id="started-at">—</span> · Updated: <span id="last-updated">—</span></div>
374
+ <div id="view-overview" class="view"><div class="heading" style="margin-top:24px"><div class="eyebrow">ONE WORKSPACE. EVERY CONVERSATION.</div><h1>Good work, <span class="gradient-title">in motion.</span></h1><p>Your agents, ongoing work, and what needs your attention.</p></div><div class="dash-grid" id="overview-stats"></div>${(0, dashboard_charts_1.dashboardChartsHtml)(timezone)}<section class="dash-panel" id="overview-attention-panel" hidden><h2>Needs your attention</h2><p class="live-note">Inspect the task here, then reply to your agent in the original chat.</p><div class="dash-mini-list" id="overview-attention"></div></section><section class="dash-panel"><h2>Agents</h2><div class="agents-bar" id="agents-bar"></div></section><section class="dash-panel"><h2>Active & recent work</h2><div id="overview-tasks"></div></section></div>
375
+ <div class="dash-filter turn-filters"><input id="dash-search" type="search" aria-label="Filter displayed sessions" placeholder="Filter this page by session, chat or model…">${(0, dashboard_range_1.rangeButtons)("dash-scope", "24h", timezone)}<select id="dash-agent-filter" aria-label="Filter agent"><option value="">All agents</option></select></div><div class="dash-pager"><span data-dash-page></span><div class="row"><button data-dash-prev disabled>← Previous</button><button data-dash-next disabled>Next →</button></div></div>
415
376
  <div id="view-tasks" class="view" style="display:none"><h2>Tasks & workers</h2><p id="tasks-scope" class="live-note"></p><div id="task-results"></div></div><div id="view-usage" class="view" style="display:none"><h2>Usage & tokens</h2><p class="live-note">Session totals include every recorded attempt, including retries. Missing measurements are shown as —. Open a report for input, cache write, cache read, output and per-turn details.</p><div id="usage-results"></div></div>
416
377
  <div id="view-system" class="view" style="display:none">
417
378
  <h2>Processes</h2>
@@ -478,15 +439,7 @@ ${dashboard_theme_1.dashboardFontLink}<script>try{document.documentElement.datas
478
439
 
479
440
  <!-- Nightly dreaming — the memory-consolidation audit trail (.dreaming/) per agent. -->
480
441
  <div id="view-dreams" class="view" style="display:none;">
481
- <div class="kb-toolbar">
482
- <button id="dreams-refresh" title="Reload the dreaming audit trail">&#x21bb; Refresh</button>
483
- <label id="dreams-agent-wrap">Agent
484
- <select id="dreams-agent"><option value="">All agents</option></select>
485
- </label>
486
- <span id="dreams-stats"></span>
487
- </div>
488
- <div id="dreams-list" class="dreams-list"></div>
489
- <div id="dreams-empty" class="dreams-empty" style="display:none;"></div>
442
+ ${memory_activity_1.memoryActivityHtml}
490
443
  </div><!-- /view-dreams -->
491
444
 
492
445
  <div id="error-msg" class="error" style="display:none;" role="status"></div><footer class="footer">Claude Gateway · Admin dashboard</footer></main></div></div><div id="dash-drawer-back" class="dash-drawer-back"><section id="dash-drawer" class="dash-drawer" role="dialog" aria-modal="true" aria-label="Recorded session and task details" tabindex="-1"></section></div>
@@ -494,6 +447,7 @@ ${dashboard_theme_1.dashboardFontLink}<script>try{document.documentElement.datas
494
447
  <script src="https://cdn.jsdelivr.net/npm/@xterm/xterm@6.0.0/lib/xterm.min.js"
495
448
  integrity="sha384-pELe6ZHtFxFcuYBq3gMkqvmnNIqUWnAYjBG5gThqQQCjWp8PJ/65MLK4lMIfEK1e" crossorigin="anonymous"></script>
496
449
  <script>
450
+ const dashboardTimezone = ${JSON.stringify(timezone).replace(/</g, '\\u003c')};
497
451
  // Auth is carried by the HttpOnly 'dash_session' cookie the browser sends
498
452
  // automatically on every same-origin request — no token is embedded in the
499
453
  // page (nothing for view-source/XSS to steal). If any read returns 401 the
@@ -520,7 +474,7 @@ ${dashboard_theme_1.dashboardFontLink}<script>try{document.documentElement.datas
520
474
  if (!ts) return '<span class="ts">&mdash;</span>';
521
475
  try {
522
476
  const d = new Date(ts);
523
- return '<span class="ts">' + d.toLocaleString('en-US', {
477
+ return '<span class="ts">' + d.toLocaleString('en-US', {timeZone:dashboardTimezone,
524
478
  year: 'numeric', month: 'numeric', day: 'numeric',
525
479
  hour: 'numeric', minute: '2-digit', second: '2-digit', hour12: true
526
480
  }) + '</span>';
@@ -896,8 +850,8 @@ ${dashboard_theme_1.dashboardFontLink}<script>try{document.documentElement.datas
896
850
  function applyDashboardSnapshot(data) {
897
851
  document.getElementById('uptime').textContent = fmtUptime(data.uptime || 0);
898
852
  document.getElementById('started-at').textContent = data.startedAt
899
- ? new Date(data.startedAt).toLocaleString() : '\\u2014';
900
- document.getElementById('last-updated').textContent = new Date().toLocaleTimeString();
853
+ ? new Date(data.startedAt).toLocaleString('en-GB',{timeZone:dashboardTimezone}) : '\\u2014';
854
+ document.getElementById('last-updated').textContent = new Date().toLocaleTimeString('en-GB',{timeZone:dashboardTimezone});
901
855
  if (data.version) document.getElementById('gateway-version').textContent = 'v' + data.version;
902
856
  document.getElementById('error-msg').style.display = 'none';
903
857
 
@@ -1094,6 +1048,7 @@ ${dashboard_theme_1.dashboardFontLink}<script>try{document.documentElement.datas
1094
1048
  window.location.reload();
1095
1049
  });
1096
1050
 
1051
+ ${dashboard_controls_1.dashboardControlsClient}
1097
1052
  ${dashboard_client_1.dashboardClient}
1098
1053
  refresh();
1099
1054
  connectDashboardStream();
@@ -1806,185 +1761,7 @@ ${dashboard_theme_1.dashboardFontLink}<script>try{document.documentElement.datas
1806
1761
  })();
1807
1762
  </script>
1808
1763
 
1809
- <script id="kb-dreams">
1810
- // Nightly dreaming report renderer. Fetches /knowledge/dreams (parsed audit
1811
- // trail across all agents), renders a newest-first timeline with per-run
1812
- // proposals, and an agent filter. All text goes through textContent (no HTML
1813
- // injection). Uses the global apiUrl/onUnauthorized helpers.
1814
- (function(){
1815
- var listEl = document.getElementById('dreams-list');
1816
- var emptyEl = document.getElementById('dreams-empty');
1817
- var statsEl = document.getElementById('dreams-stats');
1818
- var agentSel = document.getElementById('dreams-agent');
1819
- var refreshBtn = document.getElementById('dreams-refresh');
1820
- var allRuns = [];
1821
- var loaded = false;
1822
- // Notice to show once, after the next render (a reload overwrites statsEl,
1823
- // so an accept result set directly on statsEl would be lost immediately).
1824
- var pendingNotice = '';
1825
-
1826
- function el(tag, cls, text){
1827
- var e = document.createElement(tag);
1828
- if (cls) e.className = cls;
1829
- if (text != null) e.textContent = text;
1830
- return e;
1831
- }
1832
-
1833
- // Apply one or more proposals of a run to the agent's memory via the K4
1834
- // applier. indexes === null ⇒ accept every pending proposal in the run.
1835
- function acceptDreams(agent, ts, indexes, btn){
1836
- var origText = btn ? btn.textContent : '';
1837
- if (btn){ btn.disabled = true; btn.textContent = 'Applying…'; }
1838
- var payload = { agentId: agent, ts: ts };
1839
- if (indexes) payload.indexes = indexes;
1840
- fetch(apiUrl('/knowledge/dreams/apply'), {
1841
- method: 'POST',
1842
- headers: { 'Content-Type': 'application/json' },
1843
- body: JSON.stringify(payload)
1844
- }).then(function(res){
1845
- if (res.status === 401){ onUnauthorized(); return null; }
1846
- return res.json().then(function(data){ return { ok: res.ok, data: data || {} }; });
1847
- }).then(function(r){
1848
- if (!r) return;
1849
- if (!r.ok){
1850
- if (btn){ btn.disabled = false; btn.textContent = origText || 'Accept'; }
1851
- statsEl.textContent = 'Apply failed: ' + (r.data.error || 'error');
1852
- return;
1853
- }
1854
- // Reload so applied proposals show ✓ and any anchor-stale skips stay
1855
- // pending; the memory files themselves were already updated on disk.
1856
- // The message is stashed in pendingNotice because loadDreams → render
1857
- // rewrites statsEl.
1858
- pendingNotice = 'Applied ' + (r.data.applied || 0)
1859
- + (r.data.skipped ? ', skipped ' + r.data.skipped + ' (anchor changed / net-negative)' : '')
1860
- + (r.data.alreadyAccepted ? ', ' + r.data.alreadyAccepted + ' already applied' : '');
1861
- loadDreams(true);
1862
- }).catch(function(e){
1863
- if (btn){ btn.disabled = false; btn.textContent = origText || 'Accept'; }
1864
- statsEl.textContent = 'Apply error: ' + e.message;
1865
- });
1866
- }
1867
-
1868
- function renderRun(run){
1869
- var box = el('div', 'dream-run');
1870
- var head = el('div', 'dream-run-head');
1871
- if (run.agent) { var agentEl=el('span'); agentEl.innerHTML=agentBadge(run.agent); head.appendChild(agentEl); }
1872
- var modeCls = run.mode === 'auto' ? 'auto' : 'propose';
1873
- head.appendChild(el('span', 'dream-badge ' + modeCls, run.mode));
1874
- head.appendChild(el('span', 'dream-badge outcome', run.outcome));
1875
- head.appendChild(el('span', 'when', new Date(run.iso).toLocaleString()));
1876
-
1877
- // Pending = a propose-run proposal not yet manually accepted. Accept-all
1878
- // shows only when there is something to apply.
1879
- var pending = (run.proposals || []).filter(function(p){ return run.mode !== 'auto' && !p.accepted; });
1880
- if (pending.length){
1881
- var allBtn = el('button', 'dream-accept-all', 'Accept all (' + pending.length + ')');
1882
- allBtn.title = 'Apply every pending proposal in this run to memory';
1883
- allBtn.addEventListener('click', function(){
1884
- acceptDreams(run.agent, run.ts, pending.map(function(p){ return p.index; }), allBtn);
1885
- });
1886
- head.appendChild(allBtn);
1887
- }
1888
- box.appendChild(head);
1889
-
1890
- if (run.summary) box.appendChild(el('div', 'dream-summary', run.summary));
1891
-
1892
- if (run.proposals && run.proposals.length){
1893
- var props = el('div', 'dream-props');
1894
- run.proposals.forEach(function(p){
1895
- var pe = el('div', 'dream-prop' + (p.accepted ? ' accepted' : ''));
1896
- var top = el('div');
1897
- top.appendChild(el('span', 'op ' + (p.op || ''), p.op || '?'));
1898
- top.appendChild(el('span', 'file', p.file || ''));
1899
- top.appendChild(el('span', 'score', 'score ' + (p.score != null ? p.score : '?') + ' · recall ' + (p.recallCount != null ? p.recallCount : '?')));
1900
- pe.appendChild(top);
1901
- if (p.reason) pe.appendChild(el('div', 'reason', p.reason));
1902
- if (p.target) pe.appendChild(el('div', 'anchor', 'anchor: ' + p.target));
1903
- if (p.content) pe.appendChild(el('div', 'content', p.content));
1904
-
1905
- // Per-proposal status + accept action.
1906
- var actions = el('div', 'dream-prop-actions');
1907
- if (p.accepted){
1908
- actions.appendChild(el('span', 'prop-status applied', '✓ applied'));
1909
- } else if (run.mode === 'auto'){
1910
- actions.appendChild(el('span', 'prop-status applied-auto', '✓ applied (auto)'));
1911
- } else {
1912
- actions.appendChild(el('span', 'prop-status pending', 'pending'));
1913
- var accBtn = el('button', 'dream-accept-btn', 'Accept');
1914
- accBtn.title = 'Apply this proposal to ' + (p.file || 'memory');
1915
- accBtn.addEventListener('click', function(){
1916
- acceptDreams(run.agent, run.ts, [p.index], accBtn);
1917
- });
1918
- actions.appendChild(accBtn);
1919
- }
1920
- pe.appendChild(actions);
1921
- props.appendChild(pe);
1922
- });
1923
- box.appendChild(props);
1924
- }
1925
-
1926
- var applied = (run.applied != null) ? (', applied ' + run.applied) : '';
1927
- box.appendChild(el('div', 'dream-meta', 'tokens ' + compactNumber(run.tokens||0) + ' · sessions ' + compactNumber(run.sessions||0) + applied));
1928
- return box;
1929
- }
1930
-
1931
- function render(){
1932
- var filter = agentSel ? agentSel.value : '';
1933
- var runs = filter ? allRuns.filter(function(r){ return r.agent === filter; }) : allRuns;
1934
- runs=runs.filter(function(r){return Date.parse(r.iso)>=dashboardSince(dashboardScope);}).sort(function(a,b){return Date.parse(b.iso)-Date.parse(a.iso);});
1935
- listEl.textContent = '';
1936
- if (!runs.length){
1937
- emptyEl.textContent = allRuns.length ? 'No dream runs for this agent.' : 'No dream runs yet. The nightly dreaming pass writes here after it first runs (auto or propose mode).';
1938
- emptyEl.style.display = '';
1939
- statsEl.textContent = '';
1940
- return;
1941
- }
1942
- emptyEl.style.display = 'none';
1943
- var pendingTotal = 0;
1944
- runs.forEach(function(r){
1945
- if (r.mode === 'auto') return;
1946
- (r.proposals || []).forEach(function(p){ if (!p.accepted) pendingTotal++; });
1947
- });
1948
- statsEl.textContent = compactNumber(runs.length) + ' run' + (runs.length === 1 ? '' : 's')
1949
- + (pendingTotal ? ' · ' + compactNumber(pendingTotal) + ' pending' : '');
1950
- if (pendingNotice){
1951
- statsEl.textContent += ' — ' + pendingNotice;
1952
- pendingNotice = '';
1953
- }
1954
- runs.forEach(function(r){ listEl.appendChild(renderRun(r)); });
1955
- }
1956
-
1957
- function loadDreams(force){
1958
- if (loaded && !force) return;
1959
- loaded = true;
1960
- statsEl.textContent = 'Loading…';
1961
- fetch(apiUrl('/knowledge/dreams'), { headers: { 'Accept': 'application/json' } }).then(function(res){
1962
- if (res.status === 401) { onUnauthorized(); return null; }
1963
- if (!res.ok) throw new Error('HTTP ' + res.status);
1964
- return res.json();
1965
- }).then(function(data){
1966
- if (!data) return;
1967
- allRuns = data.runs || [];
1968
- // Populate the agent filter, preserving the current pick.
1969
- if (agentSel){
1970
- var prev = agentSel.value;
1971
- agentSel.textContent = '';
1972
- agentSel.appendChild(el('option', null, 'All agents')); agentSel.lastChild.value = '';
1973
- (data.agents || []).forEach(function(a){ var o = el('option', null, a); o.value = a; agentSel.appendChild(o); });
1974
- agentSel.value = prev; if (agentSel.value !== prev) agentSel.value = '';
1975
- }
1976
- render();
1977
- }).catch(function(err){
1978
- statsEl.textContent = ''; emptyEl.textContent = 'Failed to load dreams: ' + err.message; emptyEl.style.display = '';
1979
- });
1980
- }
1981
-
1982
- if (agentSel) agentSel.addEventListener('change', render);
1983
- if (refreshBtn) refreshBtn.addEventListener('click', function(){ loadDreams(true); });
1984
- // Exposed so the tab switcher (in the kb-graph script) can lazy-load on first open.
1985
- window.__loadDreams = loadDreams;
1986
- })();
1987
- </script>
1764
+ <script id="kb-dreams">${memory_activity_1.memoryActivityClient}</script>
1988
1765
  </body>
1989
1766
  </html>`;
1990
1767
  }
@@ -2046,7 +1823,7 @@ function generateLoginHtml(disabledReason = '') {
2046
1823
  </style>
2047
1824
  ${dashboard_theme_1.dashboardFontLink}</head>
2048
1825
  <body>
2049
- <main class="login-layout"><section class="login-intro"><div class="brand row" style="padding:0"><div class="brandmark">✳</div>Claude Gateway</div><div><h2>Your agents.<br>Your workspace.</h2><p class="login-description">A clear view of conversations, worker activity and token usage. All in one place.</p></div><p>Orchestration · Voice · Multi-channel</p></section><section class="login-card">${bodyInner}<p class="login-caption">Admin access only. Your key is exchanged for a secure session cookie and is not saved in browser storage.</p></section></main>
1826
+ <main class="login-layout"><section class="login-intro"><div class="brand row" style="padding:0"><div class="brandmark" aria-hidden="true">✳</div>Claude Gateway</div><div><h2>Your agents.<br>Your workspace.</h2><p class="login-description">A clear view of conversations, worker activity and token usage. All in one place.</p></div><p>Orchestration · Voice · Multi-channel</p></section><section class="login-card">${bodyInner}<p class="login-caption">Admin access only. Your key is exchanged for a secure session cookie and is not saved in browser storage.</p></section></main>
2050
1827
  <script>
2051
1828
  function basePath() {
2052
1829
  var p = window.location.pathname;
@@ -1 +1 @@
1
- {"version":3,"file":"web-ui.js","sourceRoot":"","sources":["../../src/ui/web-ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-ui.js","sourceRoot":"","sources":["../../src/ui/web-ui.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env bun
2
+ import { parseSessionInfo } from './session-browser';
2
3
  /**
3
4
  * Telegram channel for Claude Gateway.
4
5
  *
@@ -1514,24 +1515,37 @@ bot.command('voice', async ctx => {
1514
1515
  } catch { await ctx.reply('Voice settings are unavailable. Check the agent TTS configuration.') }
1515
1516
  })
1516
1517
 
1517
- // /session show current session info (direct command, no typing manager)
1518
- bot.command('session', async ctx => {
1519
- if (ctx.chat?.type !== 'private') return
1520
- const access = loadAccess()
1521
- if (!access.allowFrom.includes(String(ctx.from!.id))) return
1522
- if (!CALLBACK_URL_BASE) return
1523
-
1524
- try {
1525
- const res = await fetch(CALLBACK_URL_BASE + '/command', {
1526
- method: 'POST',
1527
- headers: { 'Content-Type': 'application/json' },
1528
- body: JSON.stringify({ command: 'session_info', chat_id: String(ctx.chat.id) }),
1518
+ // Reuse the /tasks live-message lifecycle: serialize reads/replacement, edit only
1519
+ // changes, persist the last message across restart, and honor Telegram backoff.
1520
+ const SESSION_BROWSER_FILE = join(STATE_DIR, 'session-browser.json')
1521
+ let restoredSessionBrowsers: TaskBrowserMessage[] = []
1522
+ try { const saved = JSON.parse(readFileSync(SESSION_BROWSER_FILE, 'utf8')); if (Array.isArray(saved)) restoredSessionBrowsers = saved } catch {}
1523
+ const liveSessionBrowser = new LiveTaskBrowser({
1524
+ read: async (chat) => {
1525
+ if (!CALLBACK_URL_BASE) throw new Error('not_configured')
1526
+ const response = await fetch(CALLBACK_URL_BASE + '/command', {
1527
+ method:'POST', headers:{'Content-Type':'application/json'}, signal:AbortSignal.timeout(10000),
1528
+ body:JSON.stringify({command:'session_info',chat_id:chat}),
1529
1529
  })
1530
- const data = await res.json() as { success: boolean; text?: string }
1531
- await ctx.reply(data.text ?? '⚠️ Could not get session info.', { parse_mode: 'HTML' })
1532
- } catch {
1533
- await ctx.reply('⚠️ Could not connect to gateway.')
1534
- }
1530
+ return parseSessionInfo(response.ok, await response.json())
1531
+ },
1532
+ render: result => ({text:(result as {sessionId:string;text:string}).text,reply_markup:{inline_keyboard:[]}}),
1533
+ send: async (chat,menu) => (await bot.api.sendMessage(chat,menu.text,{parse_mode:'HTML'})).message_id,
1534
+ edit: (chat,id,menu) => bot.api.editMessageText(chat,id,menu.text,{parse_mode:'HTML'}),
1535
+ remove: (chat,id) => bot.api.deleteMessage(chat,id),
1536
+ close: (chat,id) => bot.api.editMessageText(chat,id,'Session view closed.'),
1537
+ allowed: (chat,user) => chat === user && loadAccess().allowFrom.includes(user),
1538
+ persist: entries => {
1539
+ mkdirSync(STATE_DIR,{recursive:true,mode:0o700})
1540
+ const temp=SESSION_BROWSER_FILE+'.tmp'
1541
+ writeFileSync(temp,JSON.stringify(entries),{mode:0o600});renameSync(temp,SESSION_BROWSER_FILE)
1542
+ },
1543
+ },restoredSessionBrowsers)
1544
+ setInterval(()=>{void liveSessionBrowser.tick().catch(()=>{})},3000).unref()
1545
+ bot.command('session',async ctx=>{
1546
+ if(ctx.chat?.type!=='private'||!isCallbackAuthorized(ctx))return
1547
+ try{await liveSessionBrowser.open(String(ctx.chat.id),String(ctx.from!.id))}
1548
+ catch{await ctx.reply('Could not load session info. Please try /session again.')}
1535
1549
  })
1536
1550
 
1537
1551
  // /sessions — list sessions with inline keyboard for switching/deleting
@@ -0,0 +1,10 @@
1
+ /** A successful empty session is a status, not a transport failure. The empty
2
+ * ID binds its live message until a real session appears, when it is retired. */
3
+ export function parseSessionInfo(ok: boolean, value: unknown): { sessionId: string; text: string } {
4
+ const result = value as { success?: unknown; sessionId?: unknown; text?: unknown } | null;
5
+ if (!ok || result?.success !== true || typeof result.text !== 'string' ||
6
+ !(result.sessionId === null || (typeof result.sessionId === 'string' && result.sessionId.length > 0))) {
7
+ throw new Error('Session info unavailable');
8
+ }
9
+ return { sessionId: result.sessionId ?? '', text: result.text };
10
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xmaxma/claude-gateway",
3
- "version": "2.0.5",
3
+ "version": "2.0.6",
4
4
  "description": "Multi-agent gateway for Claude",
5
5
  "repository": {
6
6
  "type": "git",