claude-memory-layer 1.0.31 → 1.0.33
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.
- package/README.md +9 -2
- package/dist/cli/index.js +1110 -72
- package/dist/cli/index.js.map +4 -4
- package/dist/core/index.js +414 -25
- package/dist/core/index.js.map +2 -2
- package/dist/hooks/post-tool-use.js +416 -27
- package/dist/hooks/post-tool-use.js.map +2 -2
- package/dist/hooks/semantic-daemon.js +416 -27
- package/dist/hooks/semantic-daemon.js.map +2 -2
- package/dist/hooks/session-end.js +416 -27
- package/dist/hooks/session-end.js.map +2 -2
- package/dist/hooks/session-start.js +416 -27
- package/dist/hooks/session-start.js.map +2 -2
- package/dist/hooks/stop.js +416 -27
- package/dist/hooks/stop.js.map +2 -2
- package/dist/hooks/user-prompt-submit.js +504 -34
- package/dist/hooks/user-prompt-submit.js.map +2 -2
- package/dist/index.js +416 -27
- package/dist/index.js.map +2 -2
- package/dist/mcp/index.js +407 -32
- package/dist/mcp/index.js.map +2 -2
- package/dist/server/api/index.js +850 -44
- package/dist/server/api/index.js.map +3 -3
- package/dist/server/index.js +1073 -64
- package/dist/server/index.js.map +3 -3
- package/dist/services/memory-service.js +416 -27
- package/dist/services/memory-service.js.map +2 -2
- package/dist/ui/assets/js/bootstrap.js +2 -0
- package/dist/ui/assets/js/overview.js +166 -3
- package/dist/ui/assets/js/state.js +3 -0
- package/dist/ui/index.html +20 -0
- package/dist/ui/style.css +193 -0
- package/package.json +15 -2
- package/scripts/postinstall-embedding-backend.cjs +16 -12
- package/AGENTS.md +0 -71
- package/CLAUDE.md +0 -30
- package/HANDOFF.md +0 -92
- package/Memo.txt +0 -558
- package/benchmarks/replay/anonymized-real-sessions.json +0 -48
- package/config/kpi-thresholds.json +0 -7
- package/context.md +0 -636
- package/docs/ARCHITECTURE_COMPARISON_AND_RECOMMENDATIONS.md +0 -627
- package/docs/HERMES_MEMORY_INGESTION_ANALYSIS.md +0 -440
- package/docs/MCP_MEMORY_SERVICE_COMPARATIVE_REVIEW.md +0 -271
- package/docs/MEMORY_USEFULNESS_AUDIT.md +0 -371
- package/docs/MEMORY_USEFULNESS_AUDIT_RAW.json +0 -80
- package/docs/MEMSEARCH_PROJECT_STRUCTURE_ANALYSIS.md +0 -333
- package/docs/MEMU_ADOPTION.md +0 -40
- package/docs/OPERATIONS.md +0 -18
- package/docs/PRODUCT_VALIDATION_MATRIX.md +0 -82
- package/docs/PROJECT_STRUCTURE_ANALYSIS.md +0 -421
- package/docs/REFACTORING_MILESTONES_AND_ISSUES.md +0 -501
- package/docs/REFACTORING_PLAN_THIN_CORE.md +0 -414
- package/docs/REFERENCE_PROJECT_ANALYSES.md +0 -25
- package/docs/SUPERLOCALMEMORY_PROJECT_STRUCTURE_ANALYSIS.md +0 -452
- package/docs/TARGET_ARCHITECTURE_AND_FOLDER_STRUCTURE.md +0 -446
- package/docs/architecture/comparison-index.md +0 -47
- package/docs/reports/codex-real-data-validation-20260505T040447Z.md +0 -46
- package/plan.md +0 -1642
- package/scripts/build.ts +0 -159
- package/scripts/bump-patch-version.sh +0 -18
- package/scripts/delete-unknown-projects.js +0 -154
- package/scripts/fix-sync-gap.js +0 -32
- package/scripts/generate-session-qrels.ts +0 -126
- package/scripts/heartbeat-memory-orchestrator.sh +0 -28
- package/scripts/replay-retrieval-benchmark.ts +0 -69
- package/scripts/report-sync-gap.js +0 -26
- package/scripts/review-queue-auto-resolve.js +0 -21
- package/scripts/sync-gap-auto-heal.sh +0 -17
- package/spec.md +0 -624
- package/specs/20260207-dashboard-upgrade/context.md +0 -38
- package/specs/20260207-dashboard-upgrade/spec.md +0 -96
- package/specs/citations-system/context.md +0 -243
- package/specs/citations-system/plan.md +0 -495
- package/specs/citations-system/spec.md +0 -371
- package/specs/endless-mode/context.md +0 -305
- package/specs/endless-mode/plan.md +0 -620
- package/specs/endless-mode/spec.md +0 -455
- package/specs/entity-edge-model/context.md +0 -401
- package/specs/entity-edge-model/plan.md +0 -459
- package/specs/entity-edge-model/spec.md +0 -391
- package/specs/evidence-aligner-v2/context.md +0 -401
- package/specs/evidence-aligner-v2/plan.md +0 -303
- package/specs/evidence-aligner-v2/spec.md +0 -312
- package/specs/mcp-desktop-integration/context.md +0 -278
- package/specs/mcp-desktop-integration/plan.md +0 -550
- package/specs/mcp-desktop-integration/spec.md +0 -494
- package/specs/memory-utilization-improvements/context.md +0 -145
- package/specs/memory-utilization-improvements/plan.md +0 -361
- package/specs/memory-utilization-improvements/spec.md +0 -361
- package/specs/post-tool-use-hook/context.md +0 -319
- package/specs/post-tool-use-hook/plan.md +0 -469
- package/specs/post-tool-use-hook/spec.md +0 -364
- package/specs/private-tags/context.md +0 -288
- package/specs/private-tags/plan.md +0 -412
- package/specs/private-tags/spec.md +0 -345
- package/specs/progressive-disclosure/context.md +0 -346
- package/specs/progressive-disclosure/plan.md +0 -663
- package/specs/progressive-disclosure/spec.md +0 -415
- package/specs/selective-tool-observation/context.md +0 -100
- package/specs/selective-tool-observation/plan.md +0 -158
- package/specs/selective-tool-observation/spec.md +0 -127
- package/specs/task-entity-system/context.md +0 -297
- package/specs/task-entity-system/plan.md +0 -301
- package/specs/task-entity-system/spec.md +0 -314
- package/specs/thin-core-refactor/context.md +0 -275
- package/specs/thin-core-refactor/plan.md +0 -536
- package/specs/thin-core-refactor/spec.md +0 -465
- package/specs/vector-outbox-v2/context.md +0 -470
- package/specs/vector-outbox-v2/plan.md +0 -562
- package/specs/vector-outbox-v2/spec.md +0 -466
- package/specs/web-viewer-ui/context.md +0 -384
- package/specs/web-viewer-ui/plan.md +0 -797
- package/specs/web-viewer-ui/spec.md +0 -516
- package/src/adapters/claude/capture/index.ts +0 -3
- package/src/adapters/claude/context/index.ts +0 -3
- package/src/adapters/claude/hooks/index.ts +0 -21
- package/src/adapters/claude/hooks/post-tool-use.ts +0 -239
- package/src/adapters/claude/hooks/prompt-injection-policy.ts +0 -104
- package/src/adapters/claude/hooks/semantic-daemon-client.ts +0 -209
- package/src/adapters/claude/hooks/semantic-daemon.ts +0 -283
- package/src/adapters/claude/hooks/session-end.ts +0 -59
- package/src/adapters/claude/hooks/session-start.ts +0 -73
- package/src/adapters/claude/hooks/stop.ts +0 -128
- package/src/adapters/claude/hooks/user-prompt-submit.ts +0 -361
- package/src/adapters/claude/index.ts +0 -4
- package/src/adapters/claude/transcript/index.ts +0 -4
- package/src/adapters/claude/transcript/transcript-reader.ts +0 -57
- package/src/adapters/claude/transcript/turn-reconstructor.ts +0 -65
- package/src/apps/cli/claude-settings-hooks.ts +0 -138
- package/src/apps/cli/codex-import-runner.ts +0 -125
- package/src/apps/cli/codex-validation-output.ts +0 -95
- package/src/apps/cli/hermes-import-runner.ts +0 -130
- package/src/apps/cli/hermes-validation-output.ts +0 -91
- package/src/apps/cli/index.ts +0 -1735
- package/src/apps/cli/mcp-install.ts +0 -106
- package/src/apps/cli/retrieval-disclosure-output.ts +0 -196
- package/src/apps/dashboard/assets/js/bootstrap.js +0 -244
- package/src/apps/dashboard/assets/js/chat.js +0 -373
- package/src/apps/dashboard/assets/js/disclosure.js +0 -232
- package/src/apps/dashboard/assets/js/modals.js +0 -298
- package/src/apps/dashboard/assets/js/overview.js +0 -655
- package/src/apps/dashboard/assets/js/state.js +0 -72
- package/src/apps/dashboard/assets/js/views.js +0 -468
- package/src/apps/dashboard/index.html +0 -543
- package/src/apps/dashboard/index.ts +0 -3
- package/src/apps/dashboard/style.css +0 -1750
- package/src/apps/index.ts +0 -5
- package/src/apps/server/api/chat.ts +0 -244
- package/src/apps/server/api/citations.ts +0 -105
- package/src/apps/server/api/events.ts +0 -137
- package/src/apps/server/api/health.ts +0 -53
- package/src/apps/server/api/index.ts +0 -26
- package/src/apps/server/api/projects.ts +0 -74
- package/src/apps/server/api/search.ts +0 -184
- package/src/apps/server/api/sessions.ts +0 -115
- package/src/apps/server/api/stats.ts +0 -723
- package/src/apps/server/api/turns.ts +0 -143
- package/src/apps/server/api/utils.ts +0 -65
- package/src/apps/server/index.ts +0 -111
- package/src/cli/index.ts +0 -3
- package/src/cli/retrieval-disclosure-output.ts +0 -2
- package/src/compat/index.ts +0 -5
- package/src/core/canonical-key.ts +0 -186
- package/src/core/citation-generator.ts +0 -63
- package/src/core/consolidated-store.ts +0 -356
- package/src/core/consolidation-worker.ts +0 -493
- package/src/core/context-formatter.ts +0 -276
- package/src/core/continuity-manager.ts +0 -341
- package/src/core/db-wrapper.ts +0 -64
- package/src/core/derive/fact-deriver.ts +0 -170
- package/src/core/derive/index.ts +0 -2
- package/src/core/derive/summary-deriver.ts +0 -76
- package/src/core/edge-repo.ts +0 -333
- package/src/core/embedder.ts +0 -4
- package/src/core/engine/embedding-maintenance-service.ts +0 -187
- package/src/core/engine/endless-memory-services.ts +0 -4
- package/src/core/engine/index.ts +0 -19
- package/src/core/engine/memory-engine-services.ts +0 -170
- package/src/core/engine/memory-ingest-service.ts +0 -317
- package/src/core/engine/memory-query-service.ts +0 -173
- package/src/core/engine/memory-runtime-service.ts +0 -162
- package/src/core/engine/memory-service-composition.ts +0 -231
- package/src/core/engine/retrieval-analytics-service.ts +0 -181
- package/src/core/engine/retrieval-disclosure-service.ts +0 -420
- package/src/core/engine/retrieval-orchestrator.ts +0 -377
- package/src/core/engine/retrieval-services.ts +0 -176
- package/src/core/engine/shared-memory-services.ts +0 -4
- package/src/core/entity-repo.ts +0 -349
- package/src/core/event-store.ts +0 -779
- package/src/core/evidence-aligner.ts +0 -635
- package/src/core/external-market-context.ts +0 -582
- package/src/core/graduation-worker.ts +0 -171
- package/src/core/graduation.ts +0 -377
- package/src/core/index.ts +0 -64
- package/src/core/ingest-interceptor.ts +0 -80
- package/src/core/markdown-mirror.ts +0 -70
- package/src/core/matcher.ts +0 -208
- package/src/core/md-mirror.ts +0 -92
- package/src/core/metadata-extractor.ts +0 -203
- package/src/core/model/memory-fact.ts +0 -30
- package/src/core/model/memory-rule.ts +0 -14
- package/src/core/model/memory-summary.ts +0 -21
- package/src/core/model/raw-event.ts +0 -28
- package/src/core/model/retrieval-result.ts +0 -35
- package/src/core/mongo-sync-config.ts +0 -165
- package/src/core/mongo-sync-worker.ts +0 -381
- package/src/core/privacy/filter.ts +0 -190
- package/src/core/privacy/index.ts +0 -20
- package/src/core/privacy/tag-parser.ts +0 -145
- package/src/core/product-validation-matrix.ts +0 -314
- package/src/core/progressive-retriever.ts +0 -414
- package/src/core/registry/project-path.ts +0 -54
- package/src/core/registry/session-registry.ts +0 -69
- package/src/core/replay-evaluator.ts +0 -625
- package/src/core/retrieval-benchmark.ts +0 -117
- package/src/core/retrieval-quality.ts +0 -109
- package/src/core/retriever.ts +0 -800
- package/src/core/session-qrels.ts +0 -360
- package/src/core/shared-event-store.ts +0 -114
- package/src/core/shared-promoter.ts +0 -249
- package/src/core/shared-store.ts +0 -289
- package/src/core/shared-vector-store.ts +0 -203
- package/src/core/sqlite-event-store.ts +0 -1846
- package/src/core/sqlite-wrapper.ts +0 -116
- package/src/core/sync-worker.ts +0 -228
- package/src/core/tag-taxonomy.ts +0 -51
- package/src/core/task/blocker-resolver.ts +0 -333
- package/src/core/task/index.ts +0 -9
- package/src/core/task/task-matcher.ts +0 -240
- package/src/core/task/task-projector.ts +0 -358
- package/src/core/task/task-resolver.ts +0 -421
- package/src/core/turn-state.ts +0 -207
- package/src/core/types.ts +0 -952
- package/src/core/vector-outbox.ts +0 -299
- package/src/core/vector-store.ts +0 -231
- package/src/core/vector-worker.ts +0 -521
- package/src/core/working-set-store.ts +0 -257
- package/src/extensions/endless-memory/endless-memory-services.ts +0 -350
- package/src/extensions/endless-memory/index.ts +0 -1
- package/src/extensions/index.ts +0 -5
- package/src/extensions/mcp/handlers.ts +0 -960
- package/src/extensions/mcp/index.ts +0 -48
- package/src/extensions/mcp/tools.ts +0 -252
- package/src/extensions/shared-memory/index.ts +0 -1
- package/src/extensions/shared-memory/shared-memory-services.ts +0 -211
- package/src/extensions/vector/embedder.ts +0 -234
- package/src/extensions/vector/index.ts +0 -1
- package/src/hooks/post-tool-use.ts +0 -9
- package/src/hooks/semantic-daemon-client.ts +0 -1
- package/src/hooks/semantic-daemon.ts +0 -11
- package/src/hooks/session-end.ts +0 -9
- package/src/hooks/session-start.ts +0 -9
- package/src/hooks/stop.ts +0 -9
- package/src/hooks/user-prompt-submit.ts +0 -9
- package/src/index.ts +0 -13
- package/src/mcp/handlers.ts +0 -2
- package/src/mcp/index.ts +0 -4
- package/src/mcp/tools.ts +0 -2
- package/src/server/api/chat.ts +0 -2
- package/src/server/api/citations.ts +0 -2
- package/src/server/api/events.ts +0 -2
- package/src/server/api/health.ts +0 -2
- package/src/server/api/index.ts +0 -2
- package/src/server/api/projects.ts +0 -2
- package/src/server/api/search.ts +0 -2
- package/src/server/api/sessions.ts +0 -2
- package/src/server/api/stats.ts +0 -2
- package/src/server/api/turns.ts +0 -2
- package/src/server/api/utils.ts +0 -2
- package/src/server/index.ts +0 -2
- package/src/services/bootstrap-organizer.ts +0 -463
- package/src/services/codex-session-history-importer.ts +0 -966
- package/src/services/hermes-session-history-importer.ts +0 -733
- package/src/services/memory-service-config.ts +0 -36
- package/src/services/memory-service-registry.ts +0 -150
- package/src/services/memory-service.ts +0 -688
- package/src/services/session-history-importer.ts +0 -629
- package/tests/README.md +0 -23
- package/tests/adapters/claude/claude-semantic-daemon-adapter.test.ts +0 -54
- package/tests/adapters/claude/claude-transcript-reconstructor.test.ts +0 -98
- package/tests/adapters/claude-hook-prompt-injection-policy.test.ts +0 -99
- package/tests/apps/app-layer-boundary.test.ts +0 -48
- package/tests/apps/claude-settings-hooks.test.ts +0 -107
- package/tests/apps/cli-disclosure-output.test.ts +0 -212
- package/tests/apps/codex-import-runner.test.ts +0 -99
- package/tests/apps/codex-validation-output.test.ts +0 -100
- package/tests/apps/hermes-import-runner.test.ts +0 -99
- package/tests/apps/mcp-install-command.test.ts +0 -59
- package/tests/apps/package-build-entrypoints.test.ts +0 -30
- package/tests/apps/postinstall-embedding-backend.test.ts +0 -185
- package/tests/apps/search-api-disclosure.test.ts +0 -162
- package/tests/apps/stats-api-lightweight.test.ts +0 -67
- package/tests/apps/ui-disclosure-output.test.ts +0 -140
- package/tests/core/bootstrap-organizer.test.ts +0 -111
- package/tests/core/canonical-key.test.ts +0 -101
- package/tests/core/codex-session-history-importer-validation.test.ts +0 -185
- package/tests/core/consolidation-worker.test.ts +0 -75
- package/tests/core/embedding-maintenance-service.test.ts +0 -282
- package/tests/core/evidence-aligner.test.ts +0 -152
- package/tests/core/external-market-context.test.ts +0 -209
- package/tests/core/fact-deriver.test.ts +0 -79
- package/tests/core/hermes-session-history-importer-validation.test.ts +0 -609
- package/tests/core/ingest-interceptor.test.ts +0 -38
- package/tests/core/markdown-mirror.test.ts +0 -85
- package/tests/core/matcher.test.ts +0 -112
- package/tests/core/md-mirror.test.ts +0 -50
- package/tests/core/memory-engine-services.test.ts +0 -240
- package/tests/core/memory-ingest-service.test.ts +0 -296
- package/tests/core/memory-query-service.test.ts +0 -129
- package/tests/core/memory-runtime-service.test.ts +0 -201
- package/tests/core/memory-service-composition.test.ts +0 -192
- package/tests/core/memory-service-config.test.ts +0 -41
- package/tests/core/memory-service-facade.test.ts +0 -30
- package/tests/core/memory-service-registry.test.ts +0 -206
- package/tests/core/product-validation-matrix.test.ts +0 -61
- package/tests/core/project-registry.test.ts +0 -78
- package/tests/core/replay-evaluator.test.ts +0 -181
- package/tests/core/retrieval-analytics-service.test.ts +0 -210
- package/tests/core/retrieval-benchmark.test.ts +0 -93
- package/tests/core/retrieval-disclosure-service.test.ts +0 -264
- package/tests/core/retrieval-orchestrator.test.ts +0 -403
- package/tests/core/retrieval-quality.test.ts +0 -31
- package/tests/core/retrieval-services.test.ts +0 -185
- package/tests/core/retriever-fallback-chain.test.ts +0 -223
- package/tests/core/retriever-strategy-scope.test.ts +0 -164
- package/tests/core/retriever.memu-adoption.test.ts +0 -122
- package/tests/core/session-history-importer-filter.test.ts +0 -78
- package/tests/core/session-qrels.test.ts +0 -250
- package/tests/core/sqlite-event-store-replication.test.ts +0 -127
- package/tests/core/summary-deriver.test.ts +0 -66
- package/tests/extensions/embedder-warning-suppression.test.ts +0 -84
- package/tests/extensions/endless-memory-extension-boundary.test.ts +0 -17
- package/tests/extensions/endless-memory-services.test.ts +0 -325
- package/tests/extensions/mcp-context-tools.test.ts +0 -905
- package/tests/extensions/mcp-extension-boundary.test.ts +0 -21
- package/tests/extensions/mcp-package-build.test.ts +0 -22
- package/tests/extensions/mcp-project-aware-tools.test.ts +0 -102
- package/tests/extensions/shared-memory-extension-boundary.test.ts +0 -24
- package/tests/extensions/shared-memory-services.test.ts +0 -309
- package/tests/extensions/vector-extension-boundary.test.ts +0 -21
- package/tsconfig.json +0 -24
- package/vitest.config.ts +0 -15
|
@@ -1,543 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Code Memory | Deep Space Dashboard</title>
|
|
7
|
-
|
|
8
|
-
<!-- Fonts -->
|
|
9
|
-
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
10
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
11
|
-
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap" rel="stylesheet">
|
|
12
|
-
|
|
13
|
-
<!-- Icons -->
|
|
14
|
-
<link href="https://cdn.jsdelivr.net/npm/remixicon@3.5.0/fonts/remixicon.css" rel="stylesheet">
|
|
15
|
-
|
|
16
|
-
<!-- Styles -->
|
|
17
|
-
<link rel="stylesheet" href="style.css">
|
|
18
|
-
|
|
19
|
-
<!-- Charts -->
|
|
20
|
-
<script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>
|
|
21
|
-
</head>
|
|
22
|
-
<body>
|
|
23
|
-
|
|
24
|
-
<div class="app-container">
|
|
25
|
-
|
|
26
|
-
<!-- Sidebar -->
|
|
27
|
-
<aside class="sidebar">
|
|
28
|
-
<div class="logo-area">
|
|
29
|
-
<div class="logo-icon">🧠</div>
|
|
30
|
-
<div class="logo-text">CodeMemory</div>
|
|
31
|
-
</div>
|
|
32
|
-
|
|
33
|
-
<div class="project-selector">
|
|
34
|
-
<label class="project-label"><i class="ri-folder-line"></i> Project</label>
|
|
35
|
-
<select id="project-select" class="project-dropdown">
|
|
36
|
-
<option value="">All (Global)</option>
|
|
37
|
-
</select>
|
|
38
|
-
</div>
|
|
39
|
-
|
|
40
|
-
<nav>
|
|
41
|
-
<ul class="nav-menu">
|
|
42
|
-
<li class="nav-item active" data-nav="overview">
|
|
43
|
-
<i class="ri-dashboard-line"></i>
|
|
44
|
-
<span>Overview</span>
|
|
45
|
-
</li>
|
|
46
|
-
<li class="nav-item" data-nav="knowledge-graph">
|
|
47
|
-
<i class="ri-database-2-line"></i>
|
|
48
|
-
<span>Knowledge Graph</span>
|
|
49
|
-
</li>
|
|
50
|
-
<li class="nav-item" data-nav="memory-banks">
|
|
51
|
-
<i class="ri-brain-line"></i>
|
|
52
|
-
<span>Memory Banks</span>
|
|
53
|
-
</li>
|
|
54
|
-
<li class="nav-item" data-nav="user-prompts">
|
|
55
|
-
<i class="ri-message-2-line"></i>
|
|
56
|
-
<span>User Prompts</span>
|
|
57
|
-
</li>
|
|
58
|
-
<li class="nav-item" data-nav="configuration">
|
|
59
|
-
<i class="ri-settings-4-line"></i>
|
|
60
|
-
<span>Configuration</span>
|
|
61
|
-
</li>
|
|
62
|
-
</ul>
|
|
63
|
-
</nav>
|
|
64
|
-
|
|
65
|
-
<div class="sidebar-bottom">
|
|
66
|
-
<button id="chat-toggle-btn" class="chat-toggle-btn">
|
|
67
|
-
<i class="ri-chat-ai-line"></i>
|
|
68
|
-
<span>Ask Memory</span>
|
|
69
|
-
</button>
|
|
70
|
-
</div>
|
|
71
|
-
</aside>
|
|
72
|
-
|
|
73
|
-
<!-- Main Content -->
|
|
74
|
-
<main class="main-content">
|
|
75
|
-
|
|
76
|
-
<!-- ========== VIEW: Overview (default) ========== -->
|
|
77
|
-
<div id="view-overview" class="page-view active">
|
|
78
|
-
|
|
79
|
-
<!-- Header -->
|
|
80
|
-
<header class="top-header">
|
|
81
|
-
<div class="page-title">
|
|
82
|
-
<h1>Dashboard</h1>
|
|
83
|
-
<p>Real-time memory visualization & management</p>
|
|
84
|
-
</div>
|
|
85
|
-
|
|
86
|
-
<div class="header-actions">
|
|
87
|
-
<div class="search-wrapper">
|
|
88
|
-
<i class="ri-search-line"></i>
|
|
89
|
-
<input type="text" id="search-input" class="search-input" placeholder="Search memories...">
|
|
90
|
-
</div>
|
|
91
|
-
|
|
92
|
-
<button id="refresh-btn" class="btn btn-secondary">
|
|
93
|
-
<i class="ri-refresh-line"></i>
|
|
94
|
-
<span>Refresh</span>
|
|
95
|
-
</button>
|
|
96
|
-
</div>
|
|
97
|
-
</header>
|
|
98
|
-
|
|
99
|
-
<!-- Stats Grid -->
|
|
100
|
-
<div class="stats-grid">
|
|
101
|
-
<div class="stat-card" data-stat="events">
|
|
102
|
-
<div class="stat-value" id="stat-events">0</div>
|
|
103
|
-
<div class="stat-label">
|
|
104
|
-
<i class="ri-file-list-3-line"></i> Total Events
|
|
105
|
-
</div>
|
|
106
|
-
</div>
|
|
107
|
-
<div class="stat-card" data-stat="sessions">
|
|
108
|
-
<div class="stat-value" id="stat-sessions">0</div>
|
|
109
|
-
<div class="stat-label">
|
|
110
|
-
<i class="ri-discuss-line"></i> Active Sessions
|
|
111
|
-
</div>
|
|
112
|
-
</div>
|
|
113
|
-
<div class="stat-card" data-stat="retrieval">
|
|
114
|
-
<div class="stat-value" id="stat-retrieval-queries">0</div>
|
|
115
|
-
<div class="stat-label">
|
|
116
|
-
<i class="ri-search-eye-line"></i> Retrieval Queries
|
|
117
|
-
</div>
|
|
118
|
-
<div id="stat-retrieval-rate" style="font-size:11px; color:var(--text-muted); margin-top:2px;">-</div>
|
|
119
|
-
</div>
|
|
120
|
-
<div class="stat-card" data-stat="vectors">
|
|
121
|
-
<div class="stat-value" id="stat-vectors">0</div>
|
|
122
|
-
<div class="stat-label">
|
|
123
|
-
<i class="ri-node-tree"></i> Vector Nodes
|
|
124
|
-
</div>
|
|
125
|
-
</div>
|
|
126
|
-
</div>
|
|
127
|
-
|
|
128
|
-
<!-- KPI Cards -->
|
|
129
|
-
<div class="stats-grid kpi-grid" style="margin-top:-4px;">
|
|
130
|
-
<div class="stat-card kpi-card">
|
|
131
|
-
<div class="stat-value" id="kpi-useful-recall">-</div>
|
|
132
|
-
<div class="kpi-delta" id="kpi-useful-recall-delta">-</div>
|
|
133
|
-
<div class="stat-label"><i class="ri-thumb-up-line"></i> Useful Recall Rate</div>
|
|
134
|
-
</div>
|
|
135
|
-
<div class="stat-card kpi-card">
|
|
136
|
-
<div class="stat-value" id="kpi-completion-turns">-</div>
|
|
137
|
-
<div class="kpi-delta" id="kpi-completion-turns-delta">-</div>
|
|
138
|
-
<div class="stat-label"><i class="ri-repeat-line"></i> Avg Completion Turns</div>
|
|
139
|
-
</div>
|
|
140
|
-
<div class="stat-card kpi-card">
|
|
141
|
-
<div class="stat-value" id="kpi-rework-rate">-</div>
|
|
142
|
-
<div class="kpi-delta" id="kpi-rework-rate-delta">-</div>
|
|
143
|
-
<div class="stat-label"><i class="ri-hammer-line"></i> Rework Rate</div>
|
|
144
|
-
</div>
|
|
145
|
-
<div class="stat-card kpi-card">
|
|
146
|
-
<div class="stat-value" id="kpi-failure-rate">-</div>
|
|
147
|
-
<div class="kpi-delta" id="kpi-failure-rate-delta">-</div>
|
|
148
|
-
<div class="stat-label"><i class="ri-error-warning-line"></i> Post-change Failure</div>
|
|
149
|
-
</div>
|
|
150
|
-
</div>
|
|
151
|
-
|
|
152
|
-
<div class="card" style="margin-bottom:24px;">
|
|
153
|
-
<div class="card-header">
|
|
154
|
-
<div class="card-title">
|
|
155
|
-
<i class="ri-line-chart-line"></i>
|
|
156
|
-
<span>KPI Trend</span>
|
|
157
|
-
</div>
|
|
158
|
-
<div style="display:flex; gap:8px;">
|
|
159
|
-
<button class="sort-btn active" data-kpi-window="7d">7d</button>
|
|
160
|
-
<button class="sort-btn" data-kpi-window="30d">30d</button>
|
|
161
|
-
</div>
|
|
162
|
-
</div>
|
|
163
|
-
<div id="kpi-alerts" style="font-size:12px; color:var(--text-muted); margin-bottom:10px;">Loading...</div>
|
|
164
|
-
<div id="kpi-trend-chart" style="height:240px;"></div>
|
|
165
|
-
</div>
|
|
166
|
-
|
|
167
|
-
<!-- Main Grid -->
|
|
168
|
-
<div class="dashboard-grid">
|
|
169
|
-
|
|
170
|
-
<!-- Left Column -->
|
|
171
|
-
<div class="left-col">
|
|
172
|
-
|
|
173
|
-
<!-- Memory Pipeline -->
|
|
174
|
-
<div class="card">
|
|
175
|
-
<div class="card-header">
|
|
176
|
-
<div class="card-title">
|
|
177
|
-
<i class="ri-flow-chart"></i>
|
|
178
|
-
<span>Memory Pipeline</span>
|
|
179
|
-
</div>
|
|
180
|
-
</div>
|
|
181
|
-
|
|
182
|
-
<!-- Pipeline Steps (Tabs) -->
|
|
183
|
-
<div class="pipeline-container">
|
|
184
|
-
<div class="pipeline-steps">
|
|
185
|
-
<div class="p-step active" data-level="L0">
|
|
186
|
-
<span class="p-step-name">Raw Events</span>
|
|
187
|
-
<span class="p-step-count">0</span>
|
|
188
|
-
</div>
|
|
189
|
-
<div class="p-step" data-level="L1">
|
|
190
|
-
<span class="p-step-name">Structured</span>
|
|
191
|
-
<span class="p-step-count">0</span>
|
|
192
|
-
</div>
|
|
193
|
-
<div class="p-step" data-level="L2">
|
|
194
|
-
<span class="p-step-name">Validated</span>
|
|
195
|
-
<span class="p-step-count">0</span>
|
|
196
|
-
</div>
|
|
197
|
-
<div class="p-step" data-level="L3">
|
|
198
|
-
<span class="p-step-name">Verified</span>
|
|
199
|
-
<span class="p-step-count">0</span>
|
|
200
|
-
</div>
|
|
201
|
-
<div class="p-step" data-level="L4">
|
|
202
|
-
<span class="p-step-name">Active</span>
|
|
203
|
-
<span class="p-step-count">0</span>
|
|
204
|
-
</div>
|
|
205
|
-
</div>
|
|
206
|
-
</div>
|
|
207
|
-
|
|
208
|
-
<!-- Sort Controls -->
|
|
209
|
-
<div class="sort-controls">
|
|
210
|
-
<span class="sort-label">Sort:</span>
|
|
211
|
-
<button class="sort-btn active" data-sort="recent">Latest</button>
|
|
212
|
-
<button class="sort-btn" data-sort="accessed">Recently Used</button>
|
|
213
|
-
<button class="sort-btn" data-sort="most-accessed">Most Used</button>
|
|
214
|
-
</div>
|
|
215
|
-
|
|
216
|
-
<!-- Events List -->
|
|
217
|
-
<div id="event-list-container" class="event-list">
|
|
218
|
-
<!-- Events injected by JS -->
|
|
219
|
-
<div class="event-item">
|
|
220
|
-
<div class="event-header">
|
|
221
|
-
<span class="event-type-badge type-system">System</span>
|
|
222
|
-
<span class="event-time">Just now</span>
|
|
223
|
-
</div>
|
|
224
|
-
<div class="event-content">Initializing dashboard interface...</div>
|
|
225
|
-
</div>
|
|
226
|
-
</div>
|
|
227
|
-
</div>
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
<!-- Progressive Disclosure Search -->
|
|
231
|
-
<div class="card disclosure-card">
|
|
232
|
-
<div class="card-header" style="align-items:flex-end;">
|
|
233
|
-
<div class="card-title">
|
|
234
|
-
<i class="ri-search-eye-line"></i>
|
|
235
|
-
<span>Progressive Retrieval Disclosure</span>
|
|
236
|
-
</div>
|
|
237
|
-
<div class="disclosure-controls">
|
|
238
|
-
<label class="disclosure-toggle"><input type="checkbox" id="disclosure-include-shared"> Shared</label>
|
|
239
|
-
<select id="disclosure-strategy" class="project-dropdown compact">
|
|
240
|
-
<option value="auto">auto</option>
|
|
241
|
-
<option value="fast">fast</option>
|
|
242
|
-
<option value="deep">deep</option>
|
|
243
|
-
</select>
|
|
244
|
-
<input id="disclosure-topk" class="search-input compact" type="number" min="1" max="20" value="8" title="Top K">
|
|
245
|
-
</div>
|
|
246
|
-
</div>
|
|
247
|
-
<div class="disclosure-search-row">
|
|
248
|
-
<div class="search-wrapper disclosure-search-wrapper">
|
|
249
|
-
<i class="ri-search-line"></i>
|
|
250
|
-
<input type="text" id="disclosure-search-input" class="search-input" placeholder="Search memory with search → expand → source...">
|
|
251
|
-
</div>
|
|
252
|
-
<button id="disclosure-search-btn" class="btn btn-secondary"><i class="ri-search-eye-line"></i><span>Search</span></button>
|
|
253
|
-
</div>
|
|
254
|
-
<div id="disclosure-status" class="disclosure-status"></div>
|
|
255
|
-
<div class="disclosure-layout">
|
|
256
|
-
<div id="disclosure-results" class="disclosure-results">
|
|
257
|
-
<div class="disclosure-empty">Search memory to inspect compact envelopes, expansion context, and raw sources.</div>
|
|
258
|
-
</div>
|
|
259
|
-
<div id="disclosure-drilldown" class="disclosure-drilldown">
|
|
260
|
-
<div class="disclosure-empty">No result selected.</div>
|
|
261
|
-
</div>
|
|
262
|
-
</div>
|
|
263
|
-
</div>
|
|
264
|
-
|
|
265
|
-
<!-- Activity Chart -->
|
|
266
|
-
<div class="card">
|
|
267
|
-
<div class="card-header">
|
|
268
|
-
<div class="card-title">
|
|
269
|
-
<i class="ri-bar-chart-grouped-line"></i>
|
|
270
|
-
<span>Activity Persistence</span>
|
|
271
|
-
</div>
|
|
272
|
-
</div>
|
|
273
|
-
<div id="activity-chart"></div>
|
|
274
|
-
</div>
|
|
275
|
-
|
|
276
|
-
</div>
|
|
277
|
-
|
|
278
|
-
<!-- Right Column -->
|
|
279
|
-
<div class="right-col">
|
|
280
|
-
|
|
281
|
-
<!-- Endless Mode Status -->
|
|
282
|
-
<div class="card endless-card">
|
|
283
|
-
<div class="card-header">
|
|
284
|
-
<div class="card-title">
|
|
285
|
-
<i class="ri-infinite-loop-line"></i>
|
|
286
|
-
<span>Endless Mode</span>
|
|
287
|
-
</div>
|
|
288
|
-
</div>
|
|
289
|
-
<div style="display:flex; align-items:center; gap:12px; margin-top:10px;">
|
|
290
|
-
<div id="status-dot" class="status-dot"></div>
|
|
291
|
-
<span id="status-text" style="color:var(--text-muted); font-weight:500;">Idle</span>
|
|
292
|
-
</div>
|
|
293
|
-
</div>
|
|
294
|
-
|
|
295
|
-
<!-- Shared Knowledge -->
|
|
296
|
-
<div class="card">
|
|
297
|
-
<div class="card-header">
|
|
298
|
-
<div class="card-title">
|
|
299
|
-
<i class="ri-global-line"></i>
|
|
300
|
-
<span>Global Knowledge</span>
|
|
301
|
-
</div>
|
|
302
|
-
</div>
|
|
303
|
-
|
|
304
|
-
<div class="shared-list">
|
|
305
|
-
<div class="shared-item">
|
|
306
|
-
<div class="shared-info">
|
|
307
|
-
<div class="shared-icon">🔧</div>
|
|
308
|
-
<span>Troubleshooting</span>
|
|
309
|
-
</div>
|
|
310
|
-
<div class="shared-count" id="shared-troubleshooting">0</div>
|
|
311
|
-
</div>
|
|
312
|
-
<div class="shared-item">
|
|
313
|
-
<div class="shared-info">
|
|
314
|
-
<div class="shared-icon">✨</div>
|
|
315
|
-
<span>Best Practices</span>
|
|
316
|
-
</div>
|
|
317
|
-
<div class="shared-count" id="shared-best-practices">0</div>
|
|
318
|
-
</div>
|
|
319
|
-
<div class="shared-item">
|
|
320
|
-
<div class="shared-info">
|
|
321
|
-
<div class="shared-icon">⚠️</div>
|
|
322
|
-
<span>Common Errors</span>
|
|
323
|
-
</div>
|
|
324
|
-
<div class="shared-count" id="shared-errors">0</div>
|
|
325
|
-
</div>
|
|
326
|
-
</div>
|
|
327
|
-
</div>
|
|
328
|
-
|
|
329
|
-
<!-- Memory Usage -->
|
|
330
|
-
<div class="card">
|
|
331
|
-
<div class="card-header">
|
|
332
|
-
<div class="card-title">
|
|
333
|
-
<i class="ri-bar-chart-box-line"></i>
|
|
334
|
-
<span>Memory Usage</span>
|
|
335
|
-
</div>
|
|
336
|
-
</div>
|
|
337
|
-
|
|
338
|
-
<div class="graduation-stats">
|
|
339
|
-
<div class="section-label">Graduation Distribution</div>
|
|
340
|
-
<div id="graduation-bars"></div>
|
|
341
|
-
</div>
|
|
342
|
-
|
|
343
|
-
<div style="margin-top:20px;">
|
|
344
|
-
<div class="section-label">Helpfulness</div>
|
|
345
|
-
<div id="helpfulness-summary" style="padding:8px 0; font-size:13px; color:var(--text-muted);">Loading...</div>
|
|
346
|
-
</div>
|
|
347
|
-
|
|
348
|
-
<div style="margin-top:20px;">
|
|
349
|
-
<div class="section-label">Most Helpful Memories</div>
|
|
350
|
-
<div id="most-helpful-list" class="shared-list">
|
|
351
|
-
<div style="padding:12px; text-align:center; color:var(--text-muted); font-size:13px;">Loading...</div>
|
|
352
|
-
</div>
|
|
353
|
-
</div>
|
|
354
|
-
|
|
355
|
-
<div style="margin-top:20px;">
|
|
356
|
-
<div class="section-label" style="display:flex; justify-content:space-between; align-items:center;">
|
|
357
|
-
<span>Adherence Reasons</span>
|
|
358
|
-
<span id="adherence-window-controls" style="display:flex; gap:6px;">
|
|
359
|
-
<button class="sort-btn active" data-adh-window="24h">24h</button>
|
|
360
|
-
<button class="sort-btn" data-adh-window="7d">7d</button>
|
|
361
|
-
<button class="sort-btn" data-adh-window="30d">30d</button>
|
|
362
|
-
</span>
|
|
363
|
-
</div>
|
|
364
|
-
<div id="adherence-summary" style="padding:8px 0; font-size:13px; color:var(--text-muted);">Loading...</div>
|
|
365
|
-
</div>
|
|
366
|
-
|
|
367
|
-
<div style="margin-top:20px;">
|
|
368
|
-
<div class="section-label">Top Accessed Events</div>
|
|
369
|
-
<div id="top-accessed-events-list" class="shared-list">
|
|
370
|
-
<div style="padding:12px; text-align:center; color:var(--text-muted); font-size:13px;">Loading...</div>
|
|
371
|
-
</div>
|
|
372
|
-
</div>
|
|
373
|
-
|
|
374
|
-
<div style="margin-top:20px;">
|
|
375
|
-
<div class="section-label">Retrieval Trace (1:1)</div>
|
|
376
|
-
<div id="retrieval-trace-summary" style="padding:8px 0; font-size:13px; color:var(--text-muted);">Loading...</div>
|
|
377
|
-
<div id="retrieval-trace-list" class="shared-list">
|
|
378
|
-
<div style="padding:12px; text-align:center; color:var(--text-muted); font-size:13px;">Loading...</div>
|
|
379
|
-
</div>
|
|
380
|
-
</div>
|
|
381
|
-
</div>
|
|
382
|
-
|
|
383
|
-
</div>
|
|
384
|
-
|
|
385
|
-
</div>
|
|
386
|
-
</div>
|
|
387
|
-
|
|
388
|
-
<!-- ========== VIEW: Knowledge Graph ========== -->
|
|
389
|
-
<div id="view-knowledge-graph" class="page-view">
|
|
390
|
-
<header class="top-header">
|
|
391
|
-
<div class="page-title">
|
|
392
|
-
<h1>Knowledge Graph</h1>
|
|
393
|
-
<p>Most accessed memories and topic distribution</p>
|
|
394
|
-
</div>
|
|
395
|
-
</header>
|
|
396
|
-
<div id="kg-content">
|
|
397
|
-
<div style="text-align:center; padding:60px; color:var(--text-muted);">Loading...</div>
|
|
398
|
-
</div>
|
|
399
|
-
</div>
|
|
400
|
-
|
|
401
|
-
<!-- ========== VIEW: Memory Banks ========== -->
|
|
402
|
-
<div id="view-memory-banks" class="page-view">
|
|
403
|
-
<header class="top-header">
|
|
404
|
-
<div class="page-title">
|
|
405
|
-
<h1>Memory Banks</h1>
|
|
406
|
-
<p>Memory levels and graduation pipeline</p>
|
|
407
|
-
</div>
|
|
408
|
-
</header>
|
|
409
|
-
<div id="mb-content">
|
|
410
|
-
<div style="text-align:center; padding:60px; color:var(--text-muted);">Loading...</div>
|
|
411
|
-
</div>
|
|
412
|
-
</div>
|
|
413
|
-
|
|
414
|
-
<!-- ========== VIEW: User Prompts ========== -->
|
|
415
|
-
<div id="view-user-prompts" class="page-view">
|
|
416
|
-
<header class="top-header">
|
|
417
|
-
<div class="page-title">
|
|
418
|
-
<h1>User Prompts</h1>
|
|
419
|
-
<p>Search and browse recent user prompts</p>
|
|
420
|
-
</div>
|
|
421
|
-
</header>
|
|
422
|
-
<div class="card" style="margin-bottom:16px;">
|
|
423
|
-
<div style="display:flex; gap:10px; align-items:center;">
|
|
424
|
-
<div class="search-wrapper" style="width:420px; max-width:100%;">
|
|
425
|
-
<i class="ri-search-line"></i>
|
|
426
|
-
<input type="text" id="user-prompt-search" class="search-input" placeholder="Search user prompts...">
|
|
427
|
-
</div>
|
|
428
|
-
<button id="user-prompt-refresh" class="btn btn-secondary"><i class="ri-refresh-line"></i><span>Refresh</span></button>
|
|
429
|
-
</div>
|
|
430
|
-
</div>
|
|
431
|
-
<div class="card">
|
|
432
|
-
<div class="card-header" style="align-items:flex-end;">
|
|
433
|
-
<div>
|
|
434
|
-
<div class="card-title"><i class="ri-history-line"></i><span>Latest User Prompt History</span></div>
|
|
435
|
-
<div id="user-prompt-meta" style="font-size:12px; color:var(--text-muted); margin-top:6px;"></div>
|
|
436
|
-
</div>
|
|
437
|
-
<div style="display:flex; gap:8px; align-items:center;">
|
|
438
|
-
<button id="user-prompt-prev" class="sort-btn">Prev</button>
|
|
439
|
-
<span id="user-prompt-page" style="font-size:12px; color:var(--text-muted);">1 / 1</span>
|
|
440
|
-
<button id="user-prompt-next" class="sort-btn">Next</button>
|
|
441
|
-
</div>
|
|
442
|
-
</div>
|
|
443
|
-
<div id="user-prompt-list" class="event-list">
|
|
444
|
-
<div style="padding:20px; text-align:center; color:var(--text-muted);">Loading...</div>
|
|
445
|
-
</div>
|
|
446
|
-
</div>
|
|
447
|
-
</div>
|
|
448
|
-
|
|
449
|
-
<!-- ========== VIEW: Configuration ========== -->
|
|
450
|
-
<div id="view-configuration" class="page-view">
|
|
451
|
-
<header class="top-header">
|
|
452
|
-
<div class="page-title">
|
|
453
|
-
<h1>Configuration</h1>
|
|
454
|
-
<p>System settings and graduation criteria</p>
|
|
455
|
-
</div>
|
|
456
|
-
</header>
|
|
457
|
-
<div id="cfg-content">
|
|
458
|
-
<div style="text-align:center; padding:60px; color:var(--text-muted);">Loading...</div>
|
|
459
|
-
</div>
|
|
460
|
-
</div>
|
|
461
|
-
|
|
462
|
-
</main>
|
|
463
|
-
</div>
|
|
464
|
-
|
|
465
|
-
<!-- Chat Panel (slide-out) -->
|
|
466
|
-
<div id="chat-panel" class="chat-panel">
|
|
467
|
-
<div class="chat-header">
|
|
468
|
-
<div class="chat-title">
|
|
469
|
-
<i class="ri-chat-ai-line"></i>
|
|
470
|
-
<span>Ask Memory</span>
|
|
471
|
-
</div>
|
|
472
|
-
<div class="chat-header-tabs">
|
|
473
|
-
<button class="chat-header-tab active" data-chat-tab="chat">Chat</button>
|
|
474
|
-
<button class="chat-header-tab" data-chat-tab="history">History</button>
|
|
475
|
-
<button id="chat-new-btn" class="chat-new-btn" title="New conversation"><i class="ri-add-line"></i></button>
|
|
476
|
-
</div>
|
|
477
|
-
<button id="chat-close-btn" class="modal-close-btn"><i class="ri-close-line"></i></button>
|
|
478
|
-
</div>
|
|
479
|
-
|
|
480
|
-
<div id="chat-messages" class="chat-messages">
|
|
481
|
-
<div class="chat-welcome">
|
|
482
|
-
<div class="chat-welcome-icon">🧠</div>
|
|
483
|
-
<div class="chat-welcome-title">Ask about your memories</div>
|
|
484
|
-
<div class="chat-welcome-text">
|
|
485
|
-
I can search through your coding sessions, tool usage, and stored knowledge to answer questions.
|
|
486
|
-
</div>
|
|
487
|
-
</div>
|
|
488
|
-
</div>
|
|
489
|
-
|
|
490
|
-
<div id="chat-history-view" class="chat-history-view">
|
|
491
|
-
<div class="chat-history-empty">No conversation history yet.</div>
|
|
492
|
-
</div>
|
|
493
|
-
|
|
494
|
-
<div class="chat-input-area">
|
|
495
|
-
<div class="chat-input-wrapper">
|
|
496
|
-
<textarea id="chat-input" class="chat-input"
|
|
497
|
-
placeholder="Ask about your code memories..."
|
|
498
|
-
rows="1"></textarea>
|
|
499
|
-
<button id="chat-send-btn" class="chat-send-btn" disabled>
|
|
500
|
-
<i class="ri-send-plane-2-fill"></i>
|
|
501
|
-
</button>
|
|
502
|
-
</div>
|
|
503
|
-
<div class="chat-input-hint">
|
|
504
|
-
<span id="chat-project-scope"></span>
|
|
505
|
-
</div>
|
|
506
|
-
</div>
|
|
507
|
-
</div>
|
|
508
|
-
|
|
509
|
-
<!-- Detail Modal -->
|
|
510
|
-
<div id="detail-modal" class="modal-overlay" style="display:none;">
|
|
511
|
-
<div class="modal-container">
|
|
512
|
-
<div class="modal-header">
|
|
513
|
-
<div class="modal-title">Event Detail</div>
|
|
514
|
-
<button class="modal-close-btn" data-modal="detail-modal"><i class="ri-close-line"></i></button>
|
|
515
|
-
</div>
|
|
516
|
-
<div class="modal-body" id="detail-modal-body">
|
|
517
|
-
<div style="text-align:center; padding:40px; color:var(--text-muted);">Loading...</div>
|
|
518
|
-
</div>
|
|
519
|
-
</div>
|
|
520
|
-
</div>
|
|
521
|
-
|
|
522
|
-
<!-- List Modal -->
|
|
523
|
-
<div id="list-modal" class="modal-overlay" style="display:none;">
|
|
524
|
-
<div class="modal-container modal-lg">
|
|
525
|
-
<div class="modal-header">
|
|
526
|
-
<div class="modal-title" id="list-modal-title">List</div>
|
|
527
|
-
<button class="modal-close-btn" data-modal="list-modal"><i class="ri-close-line"></i></button>
|
|
528
|
-
</div>
|
|
529
|
-
<div class="modal-body" id="list-modal-body">
|
|
530
|
-
<div style="text-align:center; padding:40px; color:var(--text-muted);">Loading...</div>
|
|
531
|
-
</div>
|
|
532
|
-
</div>
|
|
533
|
-
</div>
|
|
534
|
-
|
|
535
|
-
<script src="assets/js/state.js"></script>
|
|
536
|
-
<script src="assets/js/bootstrap.js"></script>
|
|
537
|
-
<script src="assets/js/overview.js"></script>
|
|
538
|
-
<script src="assets/js/modals.js"></script>
|
|
539
|
-
<script src="assets/js/views.js"></script>
|
|
540
|
-
<script src="assets/js/chat.js"></script>
|
|
541
|
-
<script src="assets/js/disclosure.js"></script>
|
|
542
|
-
</body>
|
|
543
|
-
</html>
|