pi-mega-compact 0.13.5 → 0.13.7
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/dist/extensions/dashboard-server/api-contracts/endpoints/registry.js +50 -0
- package/dist/extensions/dashboard-server/api-contracts/rag-metrics.js +1 -0
- package/dist/extensions/dashboard-server/api-contracts/rag-settings.js +3 -3
- package/dist/extensions/dashboard-server/api-contracts/wiki.js +1 -0
- package/dist/extensions/dashboard-server/index-reader.js +3 -1
- package/dist/extensions/dashboard-server/resolve-snapshot.js +81 -0
- package/dist/extensions/dashboard-server/routes-core.js +8 -3
- package/dist/extensions/dashboard-server/routes-rag-metrics.js +60 -0
- package/dist/extensions/dashboard-server/routes-rag-settings-helpers.js +167 -0
- package/dist/extensions/dashboard-server/routes-rag-settings.js +136 -77
- package/dist/extensions/dashboard-server/routes-repo.js +5 -1
- package/dist/extensions/dashboard-server/routes-sessions.js +6 -3
- package/dist/extensions/dashboard-server/routes-wiki-helpers.js +97 -0
- package/dist/extensions/dashboard-server/routes-wiki.js +330 -0
- package/dist/extensions/dashboard-server/routes.js +2 -0
- package/dist/extensions/dashboard-server/server.js +17 -3
- package/dist/extensions/mega-events/context-handler/afterCompact.js +35 -2
- package/dist/extensions/mega-pipeline/recall.js +31 -0
- package/dist/extensions/mega-runtime/capture-model.js +5 -2
- package/dist/extensions/mega-turn-store.js +2 -1
- package/dist/src/config/turns.js +10 -0
- package/dist/src/config.js +2 -0
- package/dist/src/pricing.js +8 -0
- package/dist/src/recall/async.js +10 -1
- package/dist/src/recall/format.js +10 -1
- package/dist/src/recall/hydeTelemetry.js +22 -0
- package/dist/src/recall/sync.js +28 -2
- package/dist/src/store/turns/hydeStore.js +32 -0
- package/dist/src/store/turns/index.js +1 -0
- package/dist/src/store/turns/schema.js +102 -1
- package/dist/src/store/turns/sqlite-store/rows.js +23 -0
- package/dist/src/store/turns/sqlite-store/write.js +7 -3
- package/dist/src/topics/durability.js +187 -0
- package/dist/src/topics/index.js +2 -1
- package/dist/src/topics/store.js +28 -9
- package/dist/src/wiki/curation-helpers.js +71 -0
- package/dist/src/wiki/curation.js +147 -0
- package/dist/src/wiki/incremental.js +126 -0
- package/dist/src/wiki/index.js +5 -0
- package/extensions/dashboard-client/dist/assets/AreaChart-j2VOSRp6.js +70 -0
- package/extensions/dashboard-client/dist/assets/{SessionsTab-C30AwyoF.js.map → AreaChart-j2VOSRp6.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/CacheTab-Dr1HeMfc.js +2 -0
- package/extensions/dashboard-client/dist/assets/CacheTab-Dr1HeMfc.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/EventsTab-DRG2k7FS.js +2 -0
- package/extensions/dashboard-client/dist/assets/EventsTab-DRG2k7FS.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/HealthTab-DGE9PpW3.js +2 -0
- package/extensions/dashboard-client/dist/assets/HealthTab-DGE9PpW3.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/MaintenanceTab-DeYRhF4q.js +2 -0
- package/extensions/dashboard-client/dist/assets/MaintenanceTab-DeYRhF4q.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/MemoryMapTab-DSnSO3nG.js +2 -0
- package/extensions/dashboard-client/dist/assets/MemoryMapTab-DSnSO3nG.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/MetricsTab-RIzNc1Uj.js +2 -0
- package/extensions/dashboard-client/dist/assets/MetricsTab-RIzNc1Uj.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/OverviewTab-_1BJ4Bmh.js +2 -0
- package/extensions/dashboard-client/dist/assets/OverviewTab-_1BJ4Bmh.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/ReposTab-DkU7ywZB.js +2 -0
- package/extensions/dashboard-client/dist/assets/ReposTab-DkU7ywZB.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/SessionsTab-Bq_F_aOk.js +2 -0
- package/extensions/dashboard-client/dist/assets/SessionsTab-Bq_F_aOk.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/SetupTab-BkBD2Y97.js +2 -0
- package/extensions/dashboard-client/dist/assets/SetupTab-BkBD2Y97.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/TimeSavedCard-BXzFKU7C.js +2 -0
- package/extensions/dashboard-client/dist/assets/TimeSavedCard-BXzFKU7C.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/TurnsTab-Bjpp3vBH.js +5 -0
- package/extensions/dashboard-client/dist/assets/TurnsTab-Bjpp3vBH.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/WikiTab-dBN2EA5G.js +2 -0
- package/extensions/dashboard-client/dist/assets/WikiTab-dBN2EA5G.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/button-Bt0b5QVp.js +2 -0
- package/extensions/dashboard-client/dist/assets/button-Bt0b5QVp.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/card-D5CafXtg.js +2 -0
- package/extensions/dashboard-client/dist/assets/card-D5CafXtg.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/index-CUA6EDRF.css +1 -0
- package/extensions/dashboard-client/dist/assets/index-GPHRnEN7.js +137 -0
- package/extensions/dashboard-client/dist/assets/index-GPHRnEN7.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/pricing-DkYp8-vi.js +2 -0
- package/extensions/dashboard-client/dist/assets/pricing-DkYp8-vi.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/switch-CY5Gwj1o.js +2 -0
- package/extensions/dashboard-client/dist/assets/switch-CY5Gwj1o.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/toggle-C9HpkIfH.js +2 -0
- package/extensions/dashboard-client/dist/assets/toggle-C9HpkIfH.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/{useSSE-p1pOI_-P.js → useSSE-2JFrLDlE.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{useSSE-p1pOI_-P.js.map → useSSE-2JFrLDlE.js.map} +1 -1
- package/extensions/dashboard-client/dist/index.html +2 -2
- package/extensions/dashboard-client/package-lock.json +1995 -191
- package/extensions/dashboard-client/package.json +12 -1
- package/extensions/dashboard-client/postcss.config.js +6 -0
- package/extensions/dashboard-client/src/App.tsx +127 -88
- package/extensions/dashboard-client/src/api/client.ts +109 -10
- package/extensions/dashboard-client/src/components/ActiveReposTable.tsx +15 -7
- package/extensions/dashboard-client/src/components/ActiveSessionsTable.tsx +67 -55
- package/extensions/dashboard-client/src/components/CacheHitRateTrendCard.tsx +17 -13
- package/extensions/dashboard-client/src/components/CacheHitsCard.tsx +35 -30
- package/extensions/dashboard-client/src/components/CacheStatusPerModel.tsx +33 -28
- package/extensions/dashboard-client/src/components/EventCategoryFilter.tsx +5 -6
- package/extensions/dashboard-client/src/components/EventStream.tsx +17 -13
- package/extensions/dashboard-client/src/components/HydeDetailPanel.tsx +173 -0
- package/extensions/dashboard-client/src/components/LegendCard.tsx +16 -9
- package/extensions/dashboard-client/src/components/PerfCards.tsx +28 -20
- package/extensions/dashboard-client/src/components/PerfChart.tsx +9 -6
- package/extensions/dashboard-client/src/components/ProviderCacheCard.tsx +15 -7
- package/extensions/dashboard-client/src/components/RagDashboard.tsx +253 -0
- package/extensions/dashboard-client/src/components/RepoAllSessionsCard.tsx +15 -10
- package/extensions/dashboard-client/src/components/RepoContextStack.tsx +24 -16
- package/extensions/dashboard-client/src/components/RepoDetailModal.tsx +52 -49
- package/extensions/dashboard-client/src/components/RepoTable.tsx +26 -17
- package/extensions/dashboard-client/src/components/SessionContextGauges.tsx +11 -14
- package/extensions/dashboard-client/src/components/SessionInfo.tsx +20 -15
- package/extensions/dashboard-client/src/components/SessionsMemoryChart.tsx +8 -5
- package/extensions/dashboard-client/src/components/SummaryTiles.tsx +26 -17
- package/extensions/dashboard-client/src/components/TabBar.tsx +1 -3
- package/extensions/dashboard-client/src/components/layout/AppShell.tsx +42 -0
- package/extensions/dashboard-client/src/components/layout/BottomBar.tsx +88 -0
- package/extensions/dashboard-client/src/components/layout/Sidebar.tsx +83 -0
- package/extensions/dashboard-client/src/components/ui/badge.tsx +30 -0
- package/extensions/dashboard-client/src/components/ui/button.tsx +44 -0
- package/extensions/dashboard-client/src/components/ui/card.tsx +32 -0
- package/extensions/dashboard-client/src/components/ui/select.tsx +64 -0
- package/extensions/dashboard-client/src/components/ui/switch.tsx +26 -0
- package/extensions/dashboard-client/src/components/ui/tabs.tsx +36 -0
- package/extensions/dashboard-client/src/components/ui/toggle.tsx +28 -0
- package/extensions/dashboard-client/src/components/ui/tooltip.tsx +27 -0
- package/extensions/dashboard-client/src/config.ts +10 -0
- package/extensions/dashboard-client/src/main.tsx +2 -2
- package/extensions/dashboard-client/src/memory-map-layout.ts +1 -2
- package/extensions/dashboard-client/src/styles/index.css +79 -0
- package/extensions/dashboard-client/src/tabs/CacheTab.tsx +33 -26
- package/extensions/dashboard-client/src/tabs/EventsTab.tsx +22 -7
- package/extensions/dashboard-client/src/tabs/HealthTab.tsx +77 -46
- package/extensions/dashboard-client/src/tabs/MaintenanceTab/ActionsCard.tsx +60 -50
- package/extensions/dashboard-client/src/tabs/MaintenanceTab/DbStatsCard.tsx +61 -35
- package/extensions/dashboard-client/src/tabs/MaintenanceTab/DebugBundleCard.tsx +34 -23
- package/extensions/dashboard-client/src/tabs/MaintenanceTab/HealthMitigationCard.tsx +62 -43
- package/extensions/dashboard-client/src/tabs/MaintenanceTab/SchemaHealthCard.tsx +53 -32
- package/extensions/dashboard-client/src/tabs/MaintenanceTab.tsx +2 -2
- package/extensions/dashboard-client/src/tabs/MemoryMapTab/MemoryMapView.tsx +29 -46
- package/extensions/dashboard-client/src/tabs/MemoryMapTab/RaptorTreeView.tsx +10 -34
- package/extensions/dashboard-client/src/tabs/MemoryMapTab.tsx +14 -34
- package/extensions/dashboard-client/src/tabs/MetricsTab.tsx +5 -2
- package/extensions/dashboard-client/src/tabs/OverviewTab.tsx +11 -5
- package/extensions/dashboard-client/src/tabs/ReposTab.tsx +5 -5
- package/extensions/dashboard-client/src/tabs/SessionsTab.tsx +47 -33
- package/extensions/dashboard-client/src/tabs/SetupTab/EmbedderSetup.tsx +6 -2
- package/extensions/dashboard-client/src/tabs/SetupTab/RagHealthCard.tsx +78 -0
- package/extensions/dashboard-client/src/tabs/SetupTab/SettingsPanel.tsx +198 -0
- package/extensions/dashboard-client/src/tabs/SetupTab/SettingsSection.tsx +50 -0
- package/extensions/dashboard-client/src/tabs/SetupTab.tsx +21 -59
- package/extensions/dashboard-client/src/tabs/TopicsTab.tsx +75 -40
- package/extensions/dashboard-client/src/tabs/TurnsTab.tsx +150 -112
- package/extensions/dashboard-client/src/tabs/WikiTab/TopicEvolutionGraph.tsx +274 -0
- package/extensions/dashboard-client/src/tabs/WikiTab/TopicEvolutionView.tsx +71 -0
- package/extensions/dashboard-client/src/tabs/WikiTab/TopicTimeline.tsx +103 -0
- package/extensions/dashboard-client/src/tabs/WikiTab/WikiPage.tsx +213 -0
- package/extensions/dashboard-client/src/tabs/WikiTab/WikiPageControls.tsx +188 -0
- package/extensions/dashboard-client/src/tabs/WikiTab.tsx +222 -0
- package/extensions/dashboard-client/src/tabs/registry.ts +57 -0
- package/extensions/dashboard-client/src/utils/cn.ts +7 -0
- package/extensions/dashboard-client/tailwind.config.js +46 -0
- package/extensions/dashboard-server/api-contracts/core.ts +59 -0
- package/extensions/dashboard-server/api-contracts/endpoints/registry.ts +79 -0
- package/extensions/dashboard-server/api-contracts/index.ts +48 -2
- package/extensions/dashboard-server/api-contracts/rag-metrics.ts +22 -0
- package/extensions/dashboard-server/api-contracts/rag-settings.ts +30 -20
- package/extensions/dashboard-server/api-contracts/wiki.ts +138 -0
- package/extensions/dashboard-server/index-reader.ts +3 -1
- package/extensions/dashboard-server/resolve-snapshot.ts +98 -0
- package/extensions/dashboard-server/routes-core.ts +8 -3
- package/extensions/dashboard-server/routes-rag-metrics.ts +82 -0
- package/extensions/dashboard-server/routes-rag-settings-helpers.ts +314 -0
- package/extensions/dashboard-server/routes-rag-settings.ts +147 -97
- package/extensions/dashboard-server/routes-repo.ts +5 -1
- package/extensions/dashboard-server/routes-sessions.ts +6 -3
- package/extensions/dashboard-server/routes-wiki-helpers.ts +126 -0
- package/extensions/dashboard-server/routes-wiki.ts +376 -0
- package/extensions/dashboard-server/routes.ts +2 -0
- package/extensions/dashboard-server/server.ts +18 -2
- package/extensions/mega-events/context-handler/afterCompact.ts +44 -1
- package/extensions/mega-pipeline/recall.ts +31 -0
- package/extensions/mega-runtime/capture-model.ts +5 -2
- package/extensions/mega-turn-store.ts +13 -0
- package/package.json +1 -1
- package/src/config/turns.ts +17 -0
- package/src/config.ts +3 -0
- package/src/pricing.ts +8 -0
- package/src/recall/async.ts +10 -1
- package/src/recall/format.ts +15 -2
- package/src/recall/hydeTelemetry.ts +44 -0
- package/src/recall/sync.ts +34 -2
- package/src/recall/types.ts +36 -0
- package/src/store/turns/hydeStore.ts +82 -0
- package/src/store/turns/index.ts +4 -0
- package/src/store/turns/schema.ts +126 -1
- package/src/store/turns/sqlite-store/rows.ts +25 -0
- package/src/store/turns/sqlite-store/write.ts +20 -2
- package/src/store/turns/types.ts +33 -0
- package/src/topics/durability.ts +231 -0
- package/src/topics/index.ts +7 -1
- package/src/topics/store.ts +35 -9
- package/src/wiki/curation-helpers.ts +140 -0
- package/src/wiki/curation.ts +217 -0
- package/src/wiki/incremental.ts +164 -0
- package/src/wiki/index.ts +13 -0
- package/extensions/dashboard-client/dist/assets/CacheTab-Cqnc7lMg.js +0 -2
- package/extensions/dashboard-client/dist/assets/CacheTab-Cqnc7lMg.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/EventsTab-tYk3VFAp.js +0 -2
- package/extensions/dashboard-client/dist/assets/EventsTab-tYk3VFAp.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/HealthTab-D2_kjgxw.js +0 -2
- package/extensions/dashboard-client/dist/assets/HealthTab-D2_kjgxw.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/MaintenanceTab-Bc-uPYrz.js +0 -2
- package/extensions/dashboard-client/dist/assets/MaintenanceTab-Bc-uPYrz.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/MemoryMapTab-D1V9g_NC.js +0 -2
- package/extensions/dashboard-client/dist/assets/MemoryMapTab-D1V9g_NC.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/MetricsTab-DT_XfL96.js +0 -2
- package/extensions/dashboard-client/dist/assets/MetricsTab-DT_XfL96.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/OverviewTab-BY6KZCme.js +0 -2
- package/extensions/dashboard-client/dist/assets/OverviewTab-BY6KZCme.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/ReposTab-CeS-tpDM.js +0 -2
- package/extensions/dashboard-client/dist/assets/ReposTab-CeS-tpDM.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/SessionsTab-C30AwyoF.js +0 -70
- package/extensions/dashboard-client/dist/assets/SetupTab-BJUHOVK2.js +0 -2
- package/extensions/dashboard-client/dist/assets/SetupTab-BJUHOVK2.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/TimeSavedCard-p55K1tFP.js +0 -2
- package/extensions/dashboard-client/dist/assets/TimeSavedCard-p55K1tFP.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/TopicsTab-D8FqyAbK.js +0 -2
- package/extensions/dashboard-client/dist/assets/TopicsTab-D8FqyAbK.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/TurnsTab-ju-nXDys.js +0 -2
- package/extensions/dashboard-client/dist/assets/TurnsTab-ju-nXDys.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/index-BEj1Zahy.js +0 -42
- package/extensions/dashboard-client/dist/assets/index-BEj1Zahy.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/index-CUNn22iV.css +0 -1
- package/extensions/dashboard-client/dist/assets/pricing-CvE4NllQ.js +0 -2
- package/extensions/dashboard-client/dist/assets/pricing-CvE4NllQ.js.map +0 -1
- package/extensions/dashboard-client/src/styles/metrics-extra.css +0 -69
- package/extensions/dashboard-client/src/styles/turns.css +0 -142
- package/extensions/dashboard-client/src/tabs/SetupTab/RagSettingsCard.tsx +0 -160
|
@@ -151,6 +151,49 @@ export const ENDPOINTS = {
|
|
|
151
151
|
path: "/api/topics/:topicId/memories",
|
|
152
152
|
description: "Member memories assigned to a wiki topic (drill-down).",
|
|
153
153
|
},
|
|
154
|
+
// ─── Wiki Revival (W2) ───────────────────────────────────────────
|
|
155
|
+
/** GET /api/wiki/index — wiki landing page with resolved labels. */
|
|
156
|
+
wikiIndex: {
|
|
157
|
+
method: "GET",
|
|
158
|
+
path: "/api/wiki/index",
|
|
159
|
+
description: "Wiki index: auto-categorized topics with resolved (override-aware) labels.",
|
|
160
|
+
},
|
|
161
|
+
/** GET /api/wiki/topic/:topicId — single topic page + provenance. */
|
|
162
|
+
wikiTopic: {
|
|
163
|
+
method: "GET",
|
|
164
|
+
path: "/api/wiki/topic/:topicId",
|
|
165
|
+
description: "Single wiki topic page: summary, key memories, and memory provenance.",
|
|
166
|
+
},
|
|
167
|
+
/** PUT /api/wiki/topic/:topicId/label — rename a topic (user curation). */
|
|
168
|
+
renameTopic: {
|
|
169
|
+
method: "PUT",
|
|
170
|
+
path: "/api/wiki/topic/:topicId/label",
|
|
171
|
+
description: "Rename a wiki topic (persists a label override; emits wiki_topic_renamed).",
|
|
172
|
+
},
|
|
173
|
+
/** POST /api/wiki/merge — merge one topic into another. */
|
|
174
|
+
mergeTopics: {
|
|
175
|
+
method: "POST",
|
|
176
|
+
path: "/api/wiki/merge",
|
|
177
|
+
description: "Merge source topic into target (reassigns memories; emits wiki_topics_merged).",
|
|
178
|
+
},
|
|
179
|
+
/** POST /api/wiki/topic/:topicId/split — split listed memories into a new topic. */
|
|
180
|
+
splitTopic: {
|
|
181
|
+
method: "POST",
|
|
182
|
+
path: "/api/wiki/topic/:topicId/split",
|
|
183
|
+
description: "Split listed member memories into a new topic (emits wiki_topic_split).",
|
|
184
|
+
},
|
|
185
|
+
/** GET /api/wiki/topic/:topicId/timeline — per-topic time buckets. */
|
|
186
|
+
topicTimeline: {
|
|
187
|
+
method: "GET",
|
|
188
|
+
path: "/api/wiki/topic/:topicId/timeline",
|
|
189
|
+
description: "Per-topic memory-assignment timeline buckets for charts.",
|
|
190
|
+
},
|
|
191
|
+
/** GET /api/wiki/evolution — node/edge D3 evolution graph. */
|
|
192
|
+
topicEvolution: {
|
|
193
|
+
method: "GET",
|
|
194
|
+
path: "/api/wiki/evolution",
|
|
195
|
+
description: "Topic evolution nodes + edges + time buckets from topic_evolution.",
|
|
196
|
+
},
|
|
154
197
|
// ─── S49B Maintenance Tab ─────────────────────────────────────────
|
|
155
198
|
/** GET /api/maintenance — DB stats (table row counts + storage). */
|
|
156
199
|
maintenanceStats: {
|
|
@@ -235,4 +278,11 @@ export const ENDPOINTS = {
|
|
|
235
278
|
path: "/api/rag-settings",
|
|
236
279
|
description: "Update RAG feature flag states by writing _DISABLED env vars to .mega-compact.env.",
|
|
237
280
|
},
|
|
281
|
+
// ─── RAG Metrics (Sprint H2) ──────────────────────────────────────
|
|
282
|
+
/** GET /api/rag-metrics — HyDE + recall-quality telemetry aggregates. */
|
|
283
|
+
ragMetrics: {
|
|
284
|
+
method: "GET",
|
|
285
|
+
path: "/api/rag-metrics",
|
|
286
|
+
description: "HyDE invocation + recall-quality telemetry: flags, totals, recent turns, and daily series.",
|
|
287
|
+
},
|
|
238
288
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* api-contracts/rag-settings.ts —
|
|
2
|
+
* api-contracts/rag-settings.ts — comprehensive settings API response types.
|
|
3
3
|
*
|
|
4
|
-
* Types for the /api/rag-settings endpoint used by the dashboard
|
|
5
|
-
*
|
|
4
|
+
* Types for the /api/rag-settings endpoint used by the dashboard Setup panel to
|
|
5
|
+
* read and update every adjustable MEGACOMPACT_* setting, grouped by category.
|
|
6
6
|
*
|
|
7
7
|
* PREVENT-PI-004: type definitions only, no network code.
|
|
8
8
|
* PREVENT-011: no `any` type — all types are explicit.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -13,6 +13,7 @@ import { homedir } from "node:os";
|
|
|
13
13
|
import { join } from "node:path";
|
|
14
14
|
import { DatabaseSync } from "node:sqlite";
|
|
15
15
|
import { readProviderCacheForRepo, } from "../../src/store/sqlite/perf-samples.js";
|
|
16
|
+
import { lookupModelInputRate } from "../../src/pricing.js";
|
|
16
17
|
export function getIndexDir() {
|
|
17
18
|
const override = process.env.MEGACOMPACT_INDEX_DIR;
|
|
18
19
|
if (override && override.trim() !== "")
|
|
@@ -48,7 +49,8 @@ export function readIndex() {
|
|
|
48
49
|
provider: r.provider ?? null,
|
|
49
50
|
providerName: r.provider_name ?? null,
|
|
50
51
|
modelName: r.model_name ?? null,
|
|
51
|
-
inputRate: r.input_rate
|
|
52
|
+
inputRate: (r.input_rate ||
|
|
53
|
+
lookupModelInputRate(String(r.model_name ?? ""))) ?? null,
|
|
52
54
|
outputRate: r.output_rate ?? null,
|
|
53
55
|
lastSeen: Number(r.last_seen ?? 0),
|
|
54
56
|
// Defaults — enriched below from each repo's own store.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dashboard-server/resolve-snapshot.ts — dynamic per-repo snapshot resolver.
|
|
3
|
+
*
|
|
4
|
+
* The dashboard server is launched with a single static stateDir, but the
|
|
5
|
+
* active pi session may be running in a different repo. This module queries
|
|
6
|
+
* the repo registry to find the most recently active repo's dashboard.json,
|
|
7
|
+
* so the Overview always shows live data from the repo pi is actually running
|
|
8
|
+
* in — not the stale launcher dir.
|
|
9
|
+
*
|
|
10
|
+
* Resolution order:
|
|
11
|
+
* 1. Most recently seen repo (by last_seen in repo_registry) whose
|
|
12
|
+
* dashboard.json exists and has a non-null updatedAt
|
|
13
|
+
* 2. The static launch stateDir's dashboard.json (original behavior)
|
|
14
|
+
*/
|
|
15
|
+
import { existsSync } from "node:fs";
|
|
16
|
+
import { join } from "node:path";
|
|
17
|
+
import { createRequire } from "node:module";
|
|
18
|
+
import { readSnapshot } from "./snapshot.js";
|
|
19
|
+
import { getIndexDir } from "./index-reader.js";
|
|
20
|
+
const require = createRequire(import.meta.url);
|
|
21
|
+
/**
|
|
22
|
+
* Find the most recently active repo's stateDir by scanning the repo registry
|
|
23
|
+
* for repos whose dashboard.json exists and was written recently. Returns null
|
|
24
|
+
* if no suitable repo is found.
|
|
25
|
+
*/
|
|
26
|
+
function mostRecentRepoStateDir(staticStateDir) {
|
|
27
|
+
const indexPath = join(getIndexDir(), "index.sqlite");
|
|
28
|
+
if (!existsSync(indexPath))
|
|
29
|
+
return null;
|
|
30
|
+
let db;
|
|
31
|
+
try {
|
|
32
|
+
const { DatabaseSync } = require("node:sqlite");
|
|
33
|
+
db = new DatabaseSync(indexPath, { readOnly: true });
|
|
34
|
+
const rows = db
|
|
35
|
+
.prepare(`SELECT state_dir, last_seen FROM repo_registry
|
|
36
|
+
WHERE state_dir IS NOT NULL AND state_dir != ?
|
|
37
|
+
ORDER BY last_seen DESC`)
|
|
38
|
+
.all(staticStateDir);
|
|
39
|
+
for (const r of rows) {
|
|
40
|
+
const dashPath = join(r.state_dir, "dashboard.json");
|
|
41
|
+
if (!existsSync(dashPath))
|
|
42
|
+
continue;
|
|
43
|
+
const snap = readSnapshot(dashPath);
|
|
44
|
+
if (snap.updatedAt) {
|
|
45
|
+
return r.state_dir;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
try {
|
|
55
|
+
db?.close();
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
/* ignore */
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Resolve the best snapshot to serve. Tries the most recently active repo's
|
|
64
|
+
* dashboard.json first, then falls back to the static launch path.
|
|
65
|
+
*/
|
|
66
|
+
export function resolveSnapshot(staticSnapshotPath, staticStateDir) {
|
|
67
|
+
// Try the most recently active repo first.
|
|
68
|
+
const activeDir = mostRecentRepoStateDir(staticStateDir);
|
|
69
|
+
if (activeDir) {
|
|
70
|
+
const activePath = join(activeDir, "dashboard.json");
|
|
71
|
+
const snap = readSnapshot(activePath);
|
|
72
|
+
if (snap.updatedAt) {
|
|
73
|
+
return { snapshot: snap, stateDir: activeDir };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Fall back to the static launch path.
|
|
77
|
+
return {
|
|
78
|
+
snapshot: readSnapshot(staticSnapshotPath),
|
|
79
|
+
stateDir: staticStateDir,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* builds it. Route handler files import from here; the barrel (routes.ts)
|
|
6
6
|
* re-exports everything for server.ts.
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
8
|
+
import { resolveSnapshot } from "./resolve-snapshot.js";
|
|
9
9
|
// ---------------------------------------------------------------------------
|
|
10
10
|
// Helper: overlayCurrentRepo
|
|
11
11
|
// ---------------------------------------------------------------------------
|
|
@@ -13,16 +13,21 @@ function makeOverlayCurrentRepo(snapshotPath, stateDir) {
|
|
|
13
13
|
return (idx) => {
|
|
14
14
|
if (!idx || !idx.repos.length)
|
|
15
15
|
return;
|
|
16
|
+
// Dynamically resolve the most recently active repo's snapshot so the
|
|
17
|
+
// overlay matches what /api/snapshot serves (not the stale launch dir).
|
|
16
18
|
let snap = null;
|
|
19
|
+
let activeStateDir = stateDir;
|
|
17
20
|
try {
|
|
18
|
-
|
|
21
|
+
const resolved = resolveSnapshot(snapshotPath, stateDir);
|
|
22
|
+
snap = resolved.snapshot;
|
|
23
|
+
activeStateDir = resolved.stateDir;
|
|
19
24
|
}
|
|
20
25
|
catch {
|
|
21
26
|
return;
|
|
22
27
|
}
|
|
23
28
|
if (!snap || !snap.repo)
|
|
24
29
|
return;
|
|
25
|
-
const cur = idx.repos.find((r) => r.stateDir ===
|
|
30
|
+
const cur = idx.repos.find((r) => r.stateDir === activeStateDir);
|
|
26
31
|
if (!cur)
|
|
27
32
|
return;
|
|
28
33
|
const prevSaved = cur.tokensSaved;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dashboard-server/routes-rag-metrics.ts — GET /api/rag-metrics route (H2).
|
|
3
|
+
*
|
|
4
|
+
* Aggregates the H1 HyDE + recall-quality telemetry columns from turns.db into
|
|
5
|
+
* a compact response (flags, totals, recent rows, daily series).
|
|
6
|
+
*
|
|
7
|
+
* Guardrails: PREVENT-PI-004 (loopback-only), PREVENT-002 (parameterized),
|
|
8
|
+
* PREVENT-011 (no `any`).
|
|
9
|
+
*/
|
|
10
|
+
import { openTurnStore } from "../../src/store/turns/connection.js";
|
|
11
|
+
import { listTelemetryTurns, aggregateDailyTelemetry, } from "../../src/store/turns/hydeStore.js";
|
|
12
|
+
import { RAG_HYDE_ENABLED, RAG_RECALL_METRICS } from "../../src/config.js";
|
|
13
|
+
function sendJson(res, status, body) {
|
|
14
|
+
// guardrails-allow PREVENT-PI-004: loopback dashboard response (local)
|
|
15
|
+
res.writeHead(status, { "Content-Type": "application/json" });
|
|
16
|
+
res.end(JSON.stringify(body));
|
|
17
|
+
}
|
|
18
|
+
export function handleRagMetrics(req, res, ctx) {
|
|
19
|
+
const url = req.url ?? "";
|
|
20
|
+
if (url !== "/api/rag-metrics" || req.method !== "GET")
|
|
21
|
+
return false;
|
|
22
|
+
let db;
|
|
23
|
+
try {
|
|
24
|
+
db = openTurnStore(ctx.stateDir);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
db = null;
|
|
28
|
+
}
|
|
29
|
+
const recent = db ? listTelemetryTurns(db, { limit: 200 }) : [];
|
|
30
|
+
const daily = db ? aggregateDailyTelemetry(db, 14) : [];
|
|
31
|
+
const hydeRanTurns = recent.filter((t) => t.hydeRan === 1).length;
|
|
32
|
+
const liftSum = recent.reduce((s, t) => s + t.hydeLift, 0);
|
|
33
|
+
const genSum = recent.reduce((s, t) => s + t.hydeGenerationMs, 0);
|
|
34
|
+
const scored = recent.filter((t) => t.recallScore > 0 || t.recallPass === 1);
|
|
35
|
+
const avgScore = scored.length > 0
|
|
36
|
+
? Math.round((scored.reduce((s, t) => s + t.recallScore, 0) / scored.length) * 100) / 100
|
|
37
|
+
: null;
|
|
38
|
+
const passCount = scored.filter((t) => t.recallPass === 1).length;
|
|
39
|
+
const recentPassRate = scored.length > 0 ? Math.round((passCount / scored.length) * 100) / 100 : 0;
|
|
40
|
+
const body = {
|
|
41
|
+
flags: {
|
|
42
|
+
hydeEnabled: RAG_HYDE_ENABLED(),
|
|
43
|
+
recallMetricsEnabled: RAG_RECALL_METRICS(),
|
|
44
|
+
},
|
|
45
|
+
totals: {
|
|
46
|
+
telemetryTurns: recent.length,
|
|
47
|
+
hydeRanTurns,
|
|
48
|
+
avgLift: recent.length > 0
|
|
49
|
+
? Math.round((liftSum / recent.length) * 100) / 100
|
|
50
|
+
: 0,
|
|
51
|
+
avgScore,
|
|
52
|
+
avgGenerationMs: recent.length > 0 ? Math.round(genSum / recent.length) : 0,
|
|
53
|
+
recentPassRate,
|
|
54
|
+
},
|
|
55
|
+
recent: recent.slice(0, 50),
|
|
56
|
+
daily,
|
|
57
|
+
};
|
|
58
|
+
sendJson(res, 200, body);
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dashboard-server/routes-rag-settings-helpers.ts — SETTINGS inventory.
|
|
3
|
+
*
|
|
4
|
+
* The full catalog of user-adjustable MEGACOMPACT_* settings surfaced by the
|
|
5
|
+
* dashboard Setup panel, grouped by category. Kept separate from the route
|
|
6
|
+
* handler so the inventory can grow without bloating the handler file.
|
|
7
|
+
*
|
|
8
|
+
* PREVENT-011: no `any` type.
|
|
9
|
+
*/
|
|
10
|
+
// Shorthand builders to keep the inventory terse and unambiguous.
|
|
11
|
+
const boolFlag = (key, label, description, def, requiresLlm = false) => ({
|
|
12
|
+
key,
|
|
13
|
+
label,
|
|
14
|
+
description,
|
|
15
|
+
type: "boolean",
|
|
16
|
+
default: def,
|
|
17
|
+
disabledConvention: true,
|
|
18
|
+
requiresLlm,
|
|
19
|
+
});
|
|
20
|
+
const boolDirect = (key, label, description, def) => ({
|
|
21
|
+
key,
|
|
22
|
+
label,
|
|
23
|
+
description,
|
|
24
|
+
type: "boolean",
|
|
25
|
+
default: def,
|
|
26
|
+
disabledConvention: false,
|
|
27
|
+
requiresLlm: false,
|
|
28
|
+
});
|
|
29
|
+
const num = (key, label, description, def, min, max, unit) => ({
|
|
30
|
+
key,
|
|
31
|
+
label,
|
|
32
|
+
description,
|
|
33
|
+
type: "number",
|
|
34
|
+
default: def,
|
|
35
|
+
disabledConvention: false,
|
|
36
|
+
requiresLlm: false,
|
|
37
|
+
min,
|
|
38
|
+
max,
|
|
39
|
+
...(unit ? { unit } : {}),
|
|
40
|
+
});
|
|
41
|
+
const str = (key, label, description, def) => ({
|
|
42
|
+
key,
|
|
43
|
+
label,
|
|
44
|
+
description,
|
|
45
|
+
type: "string",
|
|
46
|
+
default: def,
|
|
47
|
+
disabledConvention: false,
|
|
48
|
+
requiresLlm: false,
|
|
49
|
+
});
|
|
50
|
+
/** Every adjustable setting, grouped by category. Read-only after module load. */
|
|
51
|
+
export const SETTINGS = [
|
|
52
|
+
{
|
|
53
|
+
name: "RAG Pipeline",
|
|
54
|
+
settings: [
|
|
55
|
+
boolFlag("MEGACOMPACT_QUERY_REFORMULATION", "Query Reformulation", "TF-IDF keyword expansion for vague recall queries", true),
|
|
56
|
+
boolFlag("MEGACOMPACT_TIERED_ROUTER", "Tiered Recall Router", "L0 cache → L1 FTS5 → L2 HNSW routing", true),
|
|
57
|
+
boolFlag("MEGACOMPACT_RECALL_METRICS", "Recall Quality Metrics", "Precision/recall scoring and logging", true),
|
|
58
|
+
boolFlag("MEGACOMPACT_MEMORY_GRAPH", "Memory Graph", "Dashboard-oriented memory graph traversal", true),
|
|
59
|
+
boolFlag("MEGACOMPACT_HYDE", "HyDE", "Generate hypothetical answer via LLM, embed it, RRF-fuse", true, true),
|
|
60
|
+
boolFlag("MEGACOMPACT_NEW_UI", "New Dashboard UI", "Tailwind + shadcn visual design (sidebar, glass panels)", true),
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: "Wiki / Turns",
|
|
65
|
+
settings: [
|
|
66
|
+
boolFlag("MEGACOMPACT_WIKI_ENHANCED", "Wiki Enhanced", "User curation (rename/merge/split) + topic evolution", true),
|
|
67
|
+
boolFlag("MEGACOMPACT_WIKI_INCREMENTAL", "Wiki Incremental", "Assign new memories to nearest centroid", true),
|
|
68
|
+
boolDirect("MEGACOMPACT_AUTO_WIKI", "Auto Wiki", "Auto-categorizing wiki (k-means + TF-IDF)", true),
|
|
69
|
+
boolDirect("MEGACOMPACT_WIKI_SEED_FROM_TURNS", "Wiki Seed from Turns", "Seed topic model from raw_transcript when chunks thin", true),
|
|
70
|
+
boolDirect("MEGACOMPACT_TURNS_DB", "Turns DB", "Isolated turns.db store", true),
|
|
71
|
+
num("MEGACOMPACT_WIKI_SILHOUETTE_MIN", "Silhouette Minimum", "Full rebuild trigger threshold", 0.2, 0, 1),
|
|
72
|
+
num("MEGACOMPACT_TURNS_RETENTION_DAYS", "Turn Retention", "Per-turn provenance retention window", 30, 1, 365, "days"),
|
|
73
|
+
num("MEGACOMPACT_TURNS_KEEP_MIN", "Turns Keep Minimum", "Min turns kept per conversation during prune", 5, 1, 100),
|
|
74
|
+
num("MEGACOMPACT_WIKI_LABEL_TOP_TERMS", "Wiki Label Terms", "How many TF-IDF terms form a topic label", 5, 1, 20),
|
|
75
|
+
num("MEGACOMPACT_WIKI_REBUILD_EVERY", "Wiki Rebuild Every", "Rebuild topic model every Nth compaction", 3, 1, 50),
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: "Dedup Tiers",
|
|
80
|
+
settings: [
|
|
81
|
+
boolDirect("MEGACOMPACT_L0_ENABLED", "L0 Exact Match", "Exact-hash dedup tier", true),
|
|
82
|
+
boolDirect("MEGACOMPACT_L1_ENABLED", "L1 MinHash/LSH", "Near-dup tier", true),
|
|
83
|
+
boolDirect("MEGACOMPACT_L2_ENABLED", "L2 Semantic", "Cosine similarity dedup tier", true),
|
|
84
|
+
boolDirect("MEGACOMPACT_RAPTOR_ENABLED", "RAPTOR", "Hierarchical clustering tier", true),
|
|
85
|
+
boolDirect("MEGACOMPACT_RAPTOR_MULTILEVEL", "RAPTOR Multi-level", "Multi-level retrieval (score all tree levels)", true),
|
|
86
|
+
boolDirect("MEGACOMPACT_RAPTOR_LEAF_EXPANSION", "RAPTOR Leaf Expansion", "Leaf node expansion in retrieval", true),
|
|
87
|
+
boolDirect("MEGACOMPACT_RAPTOR_INCREMENTAL", "RAPTOR Incremental", "Incremental rebuild mode", true),
|
|
88
|
+
boolDirect("MEGACOMPACT_RAPTOR_INJECT_SUMMARIES", "RAPTOR Inject Summaries", "Inject top-level summary nodes into recall", true),
|
|
89
|
+
boolDirect("MEGACOMPACT_MARK_ONLY_L0", "Mark Only L0", "L0 runs but does not collapse", false),
|
|
90
|
+
boolDirect("MEGACOMPACT_MARK_ONLY_L1", "Mark Only L1", "L1 runs but does not collapse", false),
|
|
91
|
+
boolDirect("MEGACOMPACT_MARK_ONLY_L2", "Mark Only L2", "L2 runs but does not collapse", false),
|
|
92
|
+
boolDirect("MEGACOMPACT_MINILM", "MiniLM Embedder", "Use MiniLM instead of trigram", false),
|
|
93
|
+
],
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: "Dedup Thresholds",
|
|
97
|
+
settings: [
|
|
98
|
+
num("MEGACOMPACT_L2_THRESHOLD", "L2 Cosine Threshold", "L2 semantic dedup firing point", 0.85, 0, 1),
|
|
99
|
+
num("MEGACOMPACT_L1_JACCARD", "L1 Jaccard Threshold", "L1 MinHash near-dup threshold", 0.8, 0, 1),
|
|
100
|
+
num("MEGACOMPACT_DEDUP_SIM", "Dedup Similarity", "Legacy content-similarity fallback", 0.9, 0, 1),
|
|
101
|
+
num("MEGACOMPACT_MMR_LAMBDA", "MMR Lambda", "Maximal Marginal Relevance diversity", 0.5, 0, 1),
|
|
102
|
+
num("MEGACOMPACT_SEMDEDUP_COSINE", "SemDeDup Cosine", "Offline SemDeDup pair threshold", 0.95, 0, 1),
|
|
103
|
+
num("MEGACOMPACT_CONSOLIDATE_COSINE", "Consolidate Cosine", "Memory consolidation merge threshold", 0.7, 0, 1),
|
|
104
|
+
num("MEGACOMPACT_SIMILARITY_BUDGET_MS", "Similarity Budget", "Time budget for similarity computation", 50, 1, 10000, "ms"),
|
|
105
|
+
num("MEGACOMPACT_L1_VERIFY_BUDGET_MS", "L1 Verify Budget", "L1 verification time budget", 20, 1, 10000, "ms"),
|
|
106
|
+
num("MEGACOMPACT_L1_CANDIDATE_CAP", "L1 Candidate Cap", "L1 candidate cap", 100, 1, 10000),
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
name: "RAPTOR Tuning",
|
|
111
|
+
settings: [
|
|
112
|
+
num("MEGACOMPACT_RAPTOR_BUDGET_MS", "RAPTOR Budget", "RAPTOR time budget", 5000, 100, 60000, "ms"),
|
|
113
|
+
num("MEGACOMPACT_RAPTOR_CLUSTERS", "RAPTOR Clusters", "Clusters per level", 5, 1, 50),
|
|
114
|
+
num("MEGACOMPACT_RAPTOR_CONSISTENCY", "RAPTOR Consistency", "Consistency threshold", 0.6, 0, 1),
|
|
115
|
+
num("MEGACOMPACT_RAPTOR_MAX_LEAF_EXP", "RAPTOR Max Leaf Expansion", "Max leaf expansion nodes", 10, 1, 100),
|
|
116
|
+
num("MEGACOMPACT_RAPTOR_FRESHNESS_HOURS", "RAPTOR Freshness", "Skip rebuild when tree is fresh", 4, 1, 168, "hours"),
|
|
117
|
+
num("MEGACOMPACT_FP_RATE_L0", "FP Rate L0", "FP alert threshold for exact tier", 0.01, 0, 1),
|
|
118
|
+
num("MEGACOMPACT_FP_RATE_L1L2", "FP Rate L1/L2", "FP alert threshold for fuzzy tiers", 0.05, 0, 1),
|
|
119
|
+
num("MEGACOMPACT_ALERT_WINDOW_MS", "Alert Window", "Alert evaluation window", 600000, 1000, 3600000, "ms"),
|
|
120
|
+
num("MEGACOMPACT_P95_BUDGET_MS", "P95 Budget", "Canary p95 budget per tier", 100, 1, 10000, "ms"),
|
|
121
|
+
],
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
name: "Models",
|
|
125
|
+
settings: [
|
|
126
|
+
str("MEGACOMPACT_HYDE_MODEL", "HyDE Model", "LLM model name for HyDE generation", "llama3.2"),
|
|
127
|
+
str("MEGACOMPACT_RAPTOR_MODEL", "RAPTOR Summary Model", "Ollama model for cluster summarization (empty = extractive)", ""),
|
|
128
|
+
str("MEGACOMPACT_RAPTOR_URL", "RAPTOR Ollama URL", "Ollama endpoint for RAPTOR summarization", "http://127.0.0.1:11434"),
|
|
129
|
+
num("MEGACOMPACT_EMBED_CACHE", "Embed Cache Size", "Embedding cache entries (0 = disabled)", 256, 0, 10000),
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
];
|
|
133
|
+
/** Flat index of every setting by key for O(1) lookup + validation. */
|
|
134
|
+
export const SETTING_BY_KEY = new Map(SETTINGS.flatMap((c) => c.settings).map((s) => [s.key, s]));
|
|
135
|
+
/**
|
|
136
|
+
* Adjustable MEGACOMPACT_* env vars intentionally NOT surfaced in the settings
|
|
137
|
+
* UI. Handled by other panels, install-time paths, dev-only, internal tuning,
|
|
138
|
+
* or special string formats the generic form cannot represent.
|
|
139
|
+
* Kept as string literals so regression_check.py's coverage scan sees them.
|
|
140
|
+
*/
|
|
141
|
+
export const EXCLUDED_SETTINGS = [
|
|
142
|
+
// Embedder telemetry — handled by EmbedderSetup.
|
|
143
|
+
"MEGACOMPACT_EMBEDDING_URL",
|
|
144
|
+
"MEGACOMPACT_EMBEDDING_KEY",
|
|
145
|
+
"MEGACOMPACT_EMBEDDING_HEADERS",
|
|
146
|
+
"MEGACOMPACT_EMBEDDING_DIM",
|
|
147
|
+
"MEGACOMPACT_OLLAMA_MODEL",
|
|
148
|
+
"MEGACOMPACT_ALLOW_REMOTE_EMBEDDER",
|
|
149
|
+
// Install-time paths.
|
|
150
|
+
"MEGACOMPACT_STATE_DIR",
|
|
151
|
+
"MEGACOMPACT_INDEX_DIR",
|
|
152
|
+
"MEGACOMPACT_VECTOR_INDEX_DIR",
|
|
153
|
+
"MEGACOMPACT_TURNS_DB_PATH",
|
|
154
|
+
// Dev-only.
|
|
155
|
+
"MEGACOMPACT_EXT_SCAN_DIR",
|
|
156
|
+
"MEGACOMPACT_EXT_USER_DIR",
|
|
157
|
+
// PGlite internal tuning.
|
|
158
|
+
"MEGACOMPACT_PGLITE_DISABLED",
|
|
159
|
+
"MEGACOMPACT_PGLITE_OPEN_TIMEOUT_MS",
|
|
160
|
+
"MEGACOMPACT_PGLITE_CLOSE_TIMEOUT_MS",
|
|
161
|
+
"MEGACOMPACT_PGLITE_QUERY_TIMEOUT_MS",
|
|
162
|
+
// Special string formats the generic form cannot represent.
|
|
163
|
+
"MEGACOMPACT_WIKI_K_RANGE",
|
|
164
|
+
"MEGACOMPACT_RAPTOR_LEVEL_WEIGHTS",
|
|
165
|
+
// Internal calibration, not user-facing.
|
|
166
|
+
"MEGACOMPACT_FTS5_MAX_BM25",
|
|
167
|
+
];
|