pi-mega-compact 0.11.4 → 0.11.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.
- package/dist/extensions/dashboard-server/api-contracts/cache-stripes.js +8 -0
- package/dist/extensions/dashboard-server/api-contracts/endpoints.js +32 -0
- package/dist/extensions/dashboard-server/api-contracts/memory-map.js +1 -0
- package/dist/extensions/dashboard-server/api-contracts/memory.js +8 -0
- package/dist/extensions/dashboard-server/api-contracts/provider-cache.js +1 -0
- package/dist/extensions/dashboard-server/api-contracts/setup.js +10 -0
- package/dist/extensions/dashboard-server/index-reader.js +6 -2
- package/dist/extensions/dashboard-server/routes-cache.js +135 -47
- package/dist/extensions/dashboard-server/routes-game.js +3 -0
- package/dist/extensions/dashboard-server/routes-memory-map.js +50 -0
- package/dist/extensions/dashboard-server/routes-memory.js +51 -0
- package/dist/extensions/dashboard-server/routes-repo.js +2 -2
- package/dist/extensions/dashboard-server/routes-setup.js +267 -0
- package/dist/extensions/dashboard-server/routes.js +4 -0
- package/dist/extensions/dashboard-server/server.js +13 -1
- package/dist/extensions/mega-commands.js +189 -1
- package/dist/extensions/mega-compact.js +5 -0
- package/dist/extensions/mega-config.js +7 -0
- package/dist/extensions/mega-events/agent-handlers.js +19 -4
- package/dist/extensions/mega-events/compact-handlers.js +1 -0
- package/dist/extensions/mega-events/context-handler.js +45 -92
- package/dist/extensions/mega-events/context-hwm.js +51 -0
- package/dist/extensions/mega-events/error-classifier.js +16 -5
- package/dist/extensions/mega-events/mirror-append.js +107 -0
- package/dist/extensions/mega-events/outage-advisor.js +7 -1
- package/dist/extensions/mega-events/perf-handler.js +134 -2
- package/dist/extensions/mega-events/recall-tail.js +59 -0
- package/dist/extensions/mega-events/separated-prompt.js +248 -0
- package/dist/extensions/mega-events/session-handlers.js +15 -8
- package/dist/extensions/mega-runtime/env-loader.js +56 -0
- package/dist/extensions/mega-runtime/reset-runtime.js +6 -0
- package/dist/extensions/mega-runtime/runtime-snapshot.js +1 -0
- package/dist/extensions/mega-runtime/runtime.js +7 -0
- package/dist/extensions/mega-runtime/snapshot.js +1 -0
- package/dist/extensions/mega-runtime/widget.js +5 -0
- package/dist/src/cache-stripe-impl.js +288 -0
- package/dist/src/cache-stripe.js +11 -0
- package/dist/src/config/stopwords.js +24 -0
- package/dist/src/config.js +17 -0
- package/dist/src/embedder.js +41 -2
- package/dist/src/memoryGraph.js +299 -0
- package/dist/src/memoryStats.js +75 -0
- package/dist/src/monitoring.js +13 -0
- package/dist/src/prefix-break.js +43 -0
- package/dist/src/pricing.js +1 -1
- package/dist/src/queryExpansion.js +163 -0
- package/dist/src/queryReformulation/cache.js +123 -0
- package/dist/src/queryReformulation/rrf.js +29 -0
- package/dist/src/queryReformulation/tfidf.js +61 -0
- package/dist/src/queryReformulation/vagueness.js +33 -0
- package/dist/src/queryReformulation.js +225 -0
- package/dist/src/recallMetrics.js +258 -0
- package/dist/src/store/sqlite/cache-stripes.js +133 -0
- package/dist/src/store/sqlite/fts5-search.js +68 -0
- package/dist/src/store/sqlite/perf-samples.js +145 -16
- package/dist/src/store/sqlite/schema.js +60 -1
- package/dist/src/store/sqlite.js +1 -0
- package/dist/src/store/turns/memory-store.js +8 -0
- package/dist/src/store/turns/sqlite-store.js +14 -3
- package/dist/src/store/turns/types.js +18 -1
- package/dist/src/store/vectorIndex.js +55 -10
- package/dist/src/tiered-router/types.js +18 -0
- package/dist/src/tieredRouter.js +421 -0
- package/dist/src/vectorStore.js +8 -6
- package/extensions/dashboard-client/dist/assets/{AchievementTiles-vEo2MtE2.js → AchievementTiles-DR9cLGDL.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{AchievementTiles-vEo2MtE2.js.map → AchievementTiles-DR9cLGDL.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/AchievementsTab-svNUgJ1e.js +2 -0
- package/extensions/dashboard-client/dist/assets/{AchievementsTab-DjxfYrDc.js.map → AchievementsTab-svNUgJ1e.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/CacheTab-ASwhOMjR.js +2 -0
- package/extensions/dashboard-client/dist/assets/CacheTab-ASwhOMjR.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/{ConfigTab-Cm6ymbmx.js → ConfigTab-CmmWheuW.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{ConfigTab-Cm6ymbmx.js.map → ConfigTab-CmmWheuW.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{EventsTab-DXWl_YzI.js → EventsTab-CFE7jLsa.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{EventsTab-DXWl_YzI.js.map → EventsTab-CFE7jLsa.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/GameTab-CJAX_th_.js +2 -0
- package/extensions/dashboard-client/dist/assets/{GameTab-BLDudcO5.js.map → GameTab-CJAX_th_.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{MaintenanceTab-DLkKCztn.js → MaintenanceTab-P4SUsvMf.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{MaintenanceTab-DLkKCztn.js.map → MaintenanceTab-P4SUsvMf.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/MemoryMapTab-BBiH76eF.js +2 -0
- package/extensions/dashboard-client/dist/assets/MemoryMapTab-BBiH76eF.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/{MetricsTab-Cq4u-rZF.js → MetricsTab-CHQscixy.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{MetricsTab-Cq4u-rZF.js.map → MetricsTab-CHQscixy.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/OverviewTab-DBs4DJdd.js +2 -0
- package/extensions/dashboard-client/dist/assets/{OverviewTab-D4kGvsiQ.js.map → OverviewTab-DBs4DJdd.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/ReposTab-DeFz76L5.js +2 -0
- package/extensions/dashboard-client/dist/assets/ReposTab-DeFz76L5.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/{SessionsTab-DZC2-GCn.js → SessionsTab-BWNsj1OB.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{SessionsTab-DZC2-GCn.js.map → SessionsTab-BWNsj1OB.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/SetupTab-uS6A0xmw.js +2 -0
- package/extensions/dashboard-client/dist/assets/SetupTab-uS6A0xmw.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/TimeSavedCard-CiqCOQuL.js +2 -0
- package/extensions/dashboard-client/dist/assets/TimeSavedCard-CiqCOQuL.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/{TopicsTab-01G71hv1.js → TopicsTab-BWWQxltv.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{TopicsTab-01G71hv1.js.map → TopicsTab-BWWQxltv.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{TurnsTab-DLRg0LZT.js → TurnsTab-CVz4f4-o.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{TurnsTab-DLRg0LZT.js.map → TurnsTab-CVz4f4-o.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/format-COjDIVGj.js +2 -0
- package/extensions/dashboard-client/dist/assets/format-COjDIVGj.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/index-CUNn22iV.css +1 -0
- package/extensions/dashboard-client/dist/assets/index-DrktNOoT.js +42 -0
- package/extensions/dashboard-client/dist/assets/index-DrktNOoT.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/pricing-CvE4NllQ.js +2 -0
- package/extensions/dashboard-client/dist/assets/pricing-CvE4NllQ.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/{useSSE-BBYt5UPB.js → useSSE-Bf5LOLSi.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{useSSE-BBYt5UPB.js.map → useSSE-Bf5LOLSi.js.map} +1 -1
- package/extensions/dashboard-client/dist/index.html +2 -2
- package/extensions/dashboard-client/src/App.tsx +28 -8
- package/extensions/dashboard-client/src/api/client.ts +29 -0
- package/extensions/dashboard-client/src/components/ActiveReposTable.tsx +21 -12
- package/extensions/dashboard-client/src/components/CacheHitRateTrendCard.tsx +100 -0
- package/extensions/dashboard-client/src/components/ProviderCacheCard.tsx +56 -0
- package/extensions/dashboard-client/src/components/SavingsByModelTable.tsx +38 -57
- package/extensions/dashboard-client/src/components/StripeDistributionCard.tsx +110 -0
- package/extensions/dashboard-client/src/components/TabBar.tsx +49 -4
- package/extensions/dashboard-client/src/main.tsx +1 -0
- package/extensions/dashboard-client/src/styles/base.css +30 -0
- package/extensions/dashboard-client/src/styles/cache.css +167 -0
- package/extensions/dashboard-client/src/tabs/CacheTab.tsx +75 -12
- package/extensions/dashboard-client/src/tabs/MemoryMapTab.tsx +440 -0
- package/extensions/dashboard-client/src/tabs/SetupTab.tsx +418 -0
- package/extensions/dashboard-client/tsconfig.json +3 -2
- package/extensions/dashboard-client/vite.config.ts +2 -0
- package/extensions/dashboard-server/api-contracts/cache-stripes.ts +49 -0
- package/extensions/dashboard-server/api-contracts/endpoints.ts +66 -3
- package/extensions/dashboard-server/api-contracts/index.ts +22 -0
- package/extensions/dashboard-server/api-contracts/memory-map.ts +50 -0
- package/extensions/dashboard-server/api-contracts/memory.ts +27 -0
- package/extensions/dashboard-server/api-contracts/multi-repo.ts +231 -231
- package/extensions/dashboard-server/api-contracts/provider-cache.ts +37 -0
- package/extensions/dashboard-server/api-contracts/setup.ts +80 -0
- package/extensions/dashboard-server/index-reader.ts +138 -121
- package/extensions/dashboard-server/routes-cache.ts +186 -75
- package/extensions/dashboard-server/routes-game.ts +3 -0
- package/extensions/dashboard-server/routes-memory-map.ts +105 -0
- package/extensions/dashboard-server/routes-memory.ts +63 -0
- package/extensions/dashboard-server/routes-repo.ts +36 -36
- package/extensions/dashboard-server/routes-setup.ts +293 -0
- package/extensions/dashboard-server/routes.ts +4 -0
- package/extensions/dashboard-server/server.ts +12 -0
- package/extensions/mega-commands.ts +211 -1
- package/extensions/mega-compact.ts +5 -0
- package/extensions/mega-config.ts +27 -0
- package/extensions/mega-events/agent-handlers.ts +20 -4
- package/extensions/mega-events/compact-handlers.ts +1 -0
- package/extensions/mega-events/context-handler.ts +53 -110
- package/extensions/mega-events/context-hwm.ts +85 -0
- package/extensions/mega-events/error-classifier.ts +15 -4
- package/extensions/mega-events/mirror-append.ts +155 -0
- package/extensions/mega-events/outage-advisor.ts +11 -5
- package/extensions/mega-events/perf-handler.ts +190 -6
- package/extensions/mega-events/recall-tail.ts +88 -0
- package/extensions/mega-events/separated-prompt.ts +329 -0
- package/extensions/mega-events/session-handlers.ts +14 -7
- package/extensions/mega-runtime/env-loader.ts +55 -0
- package/extensions/mega-runtime/helpers.ts +14 -0
- package/extensions/mega-runtime/reset-runtime.ts +6 -0
- package/extensions/mega-runtime/runtime-snapshot.ts +1 -0
- package/extensions/mega-runtime/runtime.ts +7 -0
- package/extensions/mega-runtime/snapshot.ts +6 -0
- package/extensions/mega-runtime/widget-types.ts +3 -0
- package/extensions/mega-runtime/widget.ts +5 -0
- package/package.json +5 -2
- package/src/cache-stripe-impl.ts +385 -0
- package/src/cache-stripe.ts +18 -0
- package/src/config/stopwords.ts +25 -0
- package/src/config.ts +26 -0
- package/src/embedder.ts +42 -2
- package/src/memoryGraph.ts +438 -0
- package/src/memoryStats.ts +107 -0
- package/src/monitoring.ts +35 -0
- package/src/prefix-break.ts +83 -0
- package/src/pricing.ts +2 -2
- package/src/queryExpansion.ts +206 -0
- package/src/queryReformulation/cache.ts +169 -0
- package/src/queryReformulation/rrf.ts +51 -0
- package/src/queryReformulation/tfidf.ts +79 -0
- package/src/queryReformulation/vagueness.ts +38 -0
- package/src/queryReformulation.ts +355 -0
- package/src/recallMetrics.ts +388 -0
- package/src/store/sqlite/cache-stripes.ts +196 -0
- package/src/store/sqlite/fts5-search.ts +90 -0
- package/src/store/sqlite/perf-samples.ts +218 -23
- package/src/store/sqlite/schema.ts +60 -1
- package/src/store/sqlite.ts +1 -0
- package/src/store/turns/memory-store.ts +10 -1
- package/src/store/turns/sqlite-store.ts +27 -15
- package/src/store/turns/types.ts +21 -0
- package/src/store/vectorIndex.ts +71 -11
- package/src/tiered-router/types.ts +64 -0
- package/src/tieredRouter.ts +489 -0
- package/src/vectorStore.ts +9 -5
- package/dist/extensions/conflict-scan.test.js +0 -115
- package/dist/extensions/dashboard-server/api-contracts.test.js +0 -884
- package/dist/extensions/dashboard-server/html.test.js +0 -52
- package/dist/extensions/dashboard-server/perf-server.test.js +0 -80
- package/dist/extensions/dashboard-server/routes-cache.test.js +0 -248
- package/dist/extensions/dashboard-server/server.test.js +0 -120
- package/dist/extensions/dashboard-server-s32.test.js +0 -181
- package/dist/extensions/dashboard-server.test.js +0 -339
- package/dist/extensions/mega-cache-replay.test.js +0 -400
- package/dist/extensions/mega-compact-s38.test.js +0 -1383
- package/dist/extensions/mega-compact.test.js +0 -1112
- package/dist/extensions/mega-events.test.js +0 -47
- package/dist/extensions/mega-game-cmds.test.js +0 -163
- package/dist/extensions/mega-runtime/snapshot.test.js +0 -127
- package/dist/extensions/mega-runtime/state.test.js +0 -266
- package/dist/extensions/mega-runtime/widget.test.js +0 -343
- package/dist/extensions/mega-shutdown-widget.test.js +0 -121
- package/dist/extensions/mega-teamrun.test.js +0 -156
- package/dist/extensions/mega-trim.test.js +0 -58
- package/dist/extensions/mega-turn-store.test.js +0 -68
- package/dist/src/boundary.test.js +0 -170
- package/dist/src/compact.test.js +0 -78
- package/dist/src/config/themes.test.js +0 -94
- package/dist/src/dedup/dedup.test.js +0 -41
- package/dist/src/dedup/l1.test.js +0 -50
- package/dist/src/dedup/raptor/buildHistory.test.js +0 -292
- package/dist/src/dedup/raptor/multilevel-serve.test.js +0 -229
- package/dist/src/dedup/raptor/multilevel.test.js +0 -238
- package/dist/src/dedup/raptor/promote.test.js +0 -69
- package/dist/src/dedup/raptor/raptor.test.js +0 -248
- package/dist/src/dedup/raptor/retrieval.test.js +0 -95
- package/dist/src/dedup/raptor/serve-gate.test.js +0 -298
- package/dist/src/dedup/sprint12.test.js +0 -219
- package/dist/src/dedup-engine.test.js +0 -472
- package/dist/src/driftDetection.test.js +0 -87
- package/dist/src/e2e.test.js +0 -698
- package/dist/src/engine.test.js +0 -111
- package/dist/src/extractive.test.js +0 -147
- package/dist/src/fork.test.js +0 -81
- package/dist/src/game/scoring.test.js +0 -98
- package/dist/src/httpEmbedder.test.js +0 -277
- package/dist/src/importance.test.js +0 -372
- package/dist/src/intent.test.js +0 -78
- package/dist/src/log.test.js +0 -42
- package/dist/src/mechanical-fix.test.js +0 -65
- package/dist/src/memory.test.js +0 -70
- package/dist/src/memoryConsolidate.test.js +0 -38
- package/dist/src/memoryOps.test.js +0 -129
- package/dist/src/memoryRecall.test.js +0 -171
- package/dist/src/memoryRoundtrip.test.js +0 -137
- package/dist/src/metrics/turns.test.js +0 -152
- package/dist/src/mirror/mirror.test.js +0 -185
- package/dist/src/raptor-inject-summaries.test.js +0 -162
- package/dist/src/ratio.bench.test.js +0 -897
- package/dist/src/recall.integration.test.js +0 -77
- package/dist/src/recall.test.js +0 -379
- package/dist/src/sprint14.test.js +0 -219
- package/dist/src/sprint4x-rag-verification.test.js +0 -93
- package/dist/src/store/compression.test.js +0 -139
- package/dist/src/store/memoryIndex.test.js +0 -51
- package/dist/src/store/migrate.test.js +0 -139
- package/dist/src/store/pgOpenGuard.test.js +0 -74
- package/dist/src/store/phase01.test.js +0 -81
- package/dist/src/store/phase04.test.js +0 -54
- package/dist/src/store/sprint10.test.js +0 -186
- package/dist/src/store/sqlite/game-achievements.test.js +0 -67
- package/dist/src/store/sqlite/game-scores.test.js +0 -106
- package/dist/src/store/sqlite/game-state.test.js +0 -76
- package/dist/src/store/sqlite/global-index.test.js +0 -136
- package/dist/src/store/sqlite/mechanical-fix.test.js +0 -146
- package/dist/src/store/sqlite/perf-samples.test.js +0 -146
- package/dist/src/store/sqlite/raptor.test.js +0 -106
- package/dist/src/store/sqlite/turns.test.js +0 -183
- package/dist/src/store/sqlite.cachehit.test.js +0 -55
- package/dist/src/store/sqlite.dbmaint.test.js +0 -158
- package/dist/src/store/sqlite.dbmirror.test.js +0 -184
- package/dist/src/store/turns/contract-compliance.test.js +0 -428
- package/dist/src/store/turns/memory-store.test.js +0 -9
- package/dist/src/store/turns/migrations.test.js +0 -138
- package/dist/src/store/turns/sqlite-store.test.js +0 -144
- package/dist/src/store/vectorIndex.test.js +0 -123
- package/dist/src/store.test.js +0 -161
- package/dist/src/supersede.test.js +0 -36
- package/dist/src/topics/cluster.test.js +0 -150
- package/dist/src/topics/store.test.js +0 -117
- package/dist/src/types.test.js +0 -9
- package/dist/src/vector-search-cache.test.js +0 -157
- package/dist/src/vectorStore.test.js +0 -479
- package/dist/src/wiki.test.js +0 -171
- package/extensions/conflict-scan.test.ts +0 -129
- package/extensions/dashboard-client/dist/assets/AchievementsTab-DjxfYrDc.js +0 -2
- package/extensions/dashboard-client/dist/assets/CacheTab-Dnpv94wq.js +0 -2
- package/extensions/dashboard-client/dist/assets/CacheTab-Dnpv94wq.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/GameTab-BLDudcO5.js +0 -2
- package/extensions/dashboard-client/dist/assets/OverviewTab-D4kGvsiQ.js +0 -2
- package/extensions/dashboard-client/dist/assets/ReposTab-C0Wnrf2u.js +0 -2
- package/extensions/dashboard-client/dist/assets/ReposTab-C0Wnrf2u.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/TimeSavedCard-UqljSyP-.js +0 -2
- package/extensions/dashboard-client/dist/assets/TimeSavedCard-UqljSyP-.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/index-BEdKlpAB.css +0 -1
- package/extensions/dashboard-client/dist/assets/index-BX0bcgLu.js +0 -42
- package/extensions/dashboard-client/dist/assets/index-BX0bcgLu.js.map +0 -1
- package/extensions/dashboard-server/api-contracts.test.ts +0 -1065
- package/extensions/dashboard-server/html.test.ts +0 -62
- package/extensions/dashboard-server/perf-server.test.ts +0 -101
- package/extensions/dashboard-server/routes-cache.test.ts +0 -302
- package/extensions/dashboard-server/server.test.ts +0 -131
- package/extensions/dashboard-server-s32.test.ts +0 -195
- package/extensions/dashboard-server.test.ts +0 -382
- package/extensions/mega-cache-replay.test.ts +0 -526
- package/extensions/mega-compact-s38.test.ts +0 -1433
- package/extensions/mega-compact.test.ts +0 -1509
- package/extensions/mega-events.test.ts +0 -55
- package/extensions/mega-game-cmds.test.ts +0 -197
- package/extensions/mega-runtime/snapshot.test.ts +0 -139
- package/extensions/mega-runtime/state.test.ts +0 -262
- package/extensions/mega-runtime/widget.test.ts +0 -468
- package/extensions/mega-shutdown-widget.test.ts +0 -141
- package/extensions/mega-teamrun.test.ts +0 -176
- package/extensions/mega-trim.test.ts +0 -64
- package/extensions/mega-turn-store.test.ts +0 -108
- package/src/boundary.test.ts +0 -187
- package/src/compact.test.ts +0 -99
- package/src/config/themes.test.ts +0 -116
- package/src/dedup/dedup.test.ts +0 -46
- package/src/dedup/l1.test.ts +0 -57
- package/src/dedup/raptor/buildHistory.test.ts +0 -353
- package/src/dedup/raptor/multilevel-serve.test.ts +0 -273
- package/src/dedup/raptor/multilevel.test.ts +0 -325
- package/src/dedup/raptor/promote.test.ts +0 -82
- package/src/dedup/raptor/raptor.test.ts +0 -297
- package/src/dedup/raptor/retrieval.test.ts +0 -118
- package/src/dedup/raptor/serve-gate.test.ts +0 -348
- package/src/dedup/sprint12.test.ts +0 -242
- package/src/dedup-engine.test.ts +0 -670
- package/src/driftDetection.test.ts +0 -100
- package/src/e2e.test.ts +0 -843
- package/src/engine.test.ts +0 -123
- package/src/extractive.test.ts +0 -174
- package/src/fork.test.ts +0 -94
- package/src/game/scoring.test.ts +0 -103
- package/src/httpEmbedder.test.ts +0 -286
- package/src/importance.test.ts +0 -538
- package/src/intent.test.ts +0 -87
- package/src/log.test.ts +0 -47
- package/src/mechanical-fix.test.ts +0 -70
- package/src/memory.test.ts +0 -92
- package/src/memoryConsolidate.test.ts +0 -47
- package/src/memoryOps.test.ts +0 -148
- package/src/memoryRecall.test.ts +0 -194
- package/src/memoryRoundtrip.test.ts +0 -155
- package/src/metrics/turns.test.ts +0 -165
- package/src/mirror/mirror.test.ts +0 -240
- package/src/raptor-inject-summaries.test.ts +0 -228
- package/src/ratio.bench.test.ts +0 -1316
- package/src/recall.integration.test.ts +0 -96
- package/src/recall.test.ts +0 -467
- package/src/sprint14.test.ts +0 -245
- package/src/sprint4x-rag-verification.test.ts +0 -119
- package/src/store/compression.test.ts +0 -168
- package/src/store/memoryIndex.test.ts +0 -61
- package/src/store/migrate.test.ts +0 -158
- package/src/store/pgOpenGuard.test.ts +0 -89
- package/src/store/phase01.test.ts +0 -88
- package/src/store/phase04.test.ts +0 -58
- package/src/store/sprint10.test.ts +0 -214
- package/src/store/sqlite/game-achievements.test.ts +0 -80
- package/src/store/sqlite/game-scores.test.ts +0 -132
- package/src/store/sqlite/game-state.test.ts +0 -89
- package/src/store/sqlite/global-index.test.ts +0 -222
- package/src/store/sqlite/mechanical-fix.test.ts +0 -162
- package/src/store/sqlite/perf-samples.test.ts +0 -169
- package/src/store/sqlite/raptor.test.ts +0 -139
- package/src/store/sqlite/turns.test.ts +0 -218
- package/src/store/sqlite.cachehit.test.ts +0 -68
- package/src/store/sqlite.dbmaint.test.ts +0 -193
- package/src/store/sqlite.dbmirror.test.ts +0 -229
- package/src/store/turns/contract-compliance.test.ts +0 -562
- package/src/store/turns/memory-store.test.ts +0 -15
- package/src/store/turns/migrations.test.ts +0 -161
- package/src/store/turns/sqlite-store.test.ts +0 -161
- package/src/store/vectorIndex.test.ts +0 -140
- package/src/store.test.ts +0 -191
- package/src/supersede.test.ts +0 -42
- package/src/topics/cluster.test.ts +0 -176
- package/src/topics/store.test.ts +0 -132
- package/src/types.test.ts +0 -10
- package/src/vector-search-cache.test.ts +0 -190
- package/src/vectorStore.test.ts +0 -533
- package/src/wiki.test.ts +0 -217
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ACHIEVEMENT_DEFS } from "../../game/scoring.js";
|
|
2
|
-
const SCHEMA_VERSION =
|
|
2
|
+
const SCHEMA_VERSION = 4;
|
|
3
3
|
/**
|
|
4
4
|
* Add `column` (with `decl`, e.g. "INTEGER") to `table` if it does not already
|
|
5
5
|
* exist. Idempotent: checks PRAGMA table_info first, so it is safe to run on
|
|
@@ -353,6 +353,65 @@ export function initSchema(db) {
|
|
|
353
353
|
);
|
|
354
354
|
CREATE INDEX IF NOT EXISTS idx_perf_samples_ts ON perf_samples(ts);
|
|
355
355
|
CREATE INDEX IF NOT EXISTS idx_perf_samples_kind_ts ON perf_samples(kind, ts);
|
|
356
|
+
|
|
357
|
+
-- A1 PLAN_V2 Phase 2: Message Separation tables (SCHEMA_VERSION 3).
|
|
358
|
+
-- Stable conversation thread: user + assistant turns ONLY. Tool results are
|
|
359
|
+
-- stored in tool_results to keep the conversation thread cache-predictable.
|
|
360
|
+
-- Parameterized queries only (PREVENT-002). CREATE TABLE IF NOT EXISTS is
|
|
361
|
+
-- a no-op on re-open — no migration needed.
|
|
362
|
+
CREATE TABLE IF NOT EXISTS conversation_thread (
|
|
363
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
364
|
+
conversation_id TEXT NOT NULL,
|
|
365
|
+
role TEXT NOT NULL CHECK(role IN ('user','assistant')),
|
|
366
|
+
content TEXT NOT NULL,
|
|
367
|
+
turn_index INTEGER NOT NULL,
|
|
368
|
+
timestamp INTEGER NOT NULL
|
|
369
|
+
);
|
|
370
|
+
CREATE INDEX IF NOT EXISTS idx_conv_thread_conv_turn
|
|
371
|
+
ON conversation_thread(conversation_id, turn_index);
|
|
372
|
+
|
|
373
|
+
-- Volatile tool results: appended at END so they never disrupt the
|
|
374
|
+
-- conversation thread prefix (the prompt-cache-friendly prefix).
|
|
375
|
+
CREATE TABLE IF NOT EXISTS tool_results (
|
|
376
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
377
|
+
conversation_id TEXT NOT NULL,
|
|
378
|
+
tool_call_id TEXT NOT NULL,
|
|
379
|
+
tool_result TEXT NOT NULL,
|
|
380
|
+
turn_index INTEGER NOT NULL,
|
|
381
|
+
timestamp INTEGER NOT NULL
|
|
382
|
+
);
|
|
383
|
+
CREATE INDEX IF NOT EXISTS idx_tool_results_conv_turn
|
|
384
|
+
ON tool_results(conversation_id, turn_index);
|
|
385
|
+
|
|
386
|
+
-- A2 PLAN_V2 Phase 3: Vector-Aware Cache Striping (SCHEMA_VERSION 4).
|
|
387
|
+
-- Cache stripe assignments: maps each context chunk to a cache stability
|
|
388
|
+
-- tier (stripe). Layer 0=permanent, 1=epoch, 2=topic, 3=thread, 4=volatile.
|
|
389
|
+
-- stability is the composite score (0.0-1.0) from computeStabilityScore.
|
|
390
|
+
-- Primary key is (chunk_id, epoch_id) so the same chunk can be reassigned
|
|
391
|
+
-- across epochs without conflict. See cache-stripe.ts for scoring details.
|
|
392
|
+
-- Parameterized queries only (PREVENT-002). IF NOT EXISTS is a no-op on re-open.
|
|
393
|
+
CREATE TABLE IF NOT EXISTS cache_stripes (
|
|
394
|
+
chunk_id TEXT NOT NULL,
|
|
395
|
+
stripe INTEGER NOT NULL,
|
|
396
|
+
stability REAL NOT NULL,
|
|
397
|
+
assigned_at INTEGER NOT NULL,
|
|
398
|
+
epoch_id TEXT,
|
|
399
|
+
PRIMARY KEY (chunk_id, epoch_id)
|
|
400
|
+
);
|
|
401
|
+
CREATE INDEX IF NOT EXISTS idx_cs_stripe_stability
|
|
402
|
+
ON cache_stripes(stripe, stability DESC);
|
|
403
|
+
|
|
404
|
+
-- Embedding computation cache: avoids re-embedding content every time
|
|
405
|
+
-- stability scores are recomputed across epochs. Keyed by content_hash
|
|
406
|
+
-- (SHA-256 64-hex-char string). Embeddings are serialized via
|
|
407
|
+
-- Float64Array-to-Buffer to match the embedding_blob convention.
|
|
408
|
+
CREATE TABLE IF NOT EXISTS embedding_cache (
|
|
409
|
+
content_hash TEXT PRIMARY KEY,
|
|
410
|
+
embedding BLOB NOT NULL,
|
|
411
|
+
computed_at INTEGER NOT NULL
|
|
412
|
+
);
|
|
413
|
+
CREATE INDEX IF NOT EXISTS idx_emb_cache_computed
|
|
414
|
+
ON embedding_cache(computed_at DESC);
|
|
356
415
|
`);
|
|
357
416
|
// Idempotent column migrations. `CREATE TABLE IF NOT EXISTS` is a no-op on a
|
|
358
417
|
// pre-existing table, so new columns added to context_chunks after a store was
|
package/dist/src/store/sqlite.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* PREVENT-PI-004: no network. PREVENT-002: no SQL here.
|
|
8
8
|
*/
|
|
9
9
|
import { randomBytes } from "node:crypto";
|
|
10
|
+
import { DuplicateTurnError, } from "./types.js";
|
|
10
11
|
function newConversationId() {
|
|
11
12
|
return `conv_${randomBytes(8).toString("hex")}`;
|
|
12
13
|
}
|
|
@@ -134,6 +135,13 @@ export class InMemoryTurnStore {
|
|
|
134
135
|
}
|
|
135
136
|
// ── TurnWriter ──────────────────────────────────────────────
|
|
136
137
|
appendTurn(entry) {
|
|
138
|
+
// Check for duplicate (conversationId, turnIndex)
|
|
139
|
+
for (const [, row] of this.turns) {
|
|
140
|
+
if (row.entry.conversationId === entry.conversationId &&
|
|
141
|
+
row.entry.turnIndex === entry.turnIndex) {
|
|
142
|
+
throw new DuplicateTurnError(entry.conversationId, entry.turnIndex);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
137
145
|
const id = allocId();
|
|
138
146
|
const sid = normalizeSessionId(entry.sessionId);
|
|
139
147
|
const normalized = { ...entry, sessionId: sid };
|
|
@@ -13,6 +13,7 @@ import { randomBytes } from "node:crypto";
|
|
|
13
13
|
import { statSync } from "node:fs";
|
|
14
14
|
import { join } from "node:path";
|
|
15
15
|
import { openTurnDb, closeTurnDb } from "./connection.js";
|
|
16
|
+
import { DuplicateTurnError } from "./types.js";
|
|
16
17
|
// ─── Helpers ──────────────────────────────────────────────────────
|
|
17
18
|
function newConversationId() {
|
|
18
19
|
return `conv_${randomBytes(8).toString("hex")}`;
|
|
@@ -172,11 +173,21 @@ export class SqliteTurnStore {
|
|
|
172
173
|
appendTurn(entry) {
|
|
173
174
|
const sid = normalizeSessionId(entry.sessionId);
|
|
174
175
|
this.persistSessionConv(sid, entry.conversationId);
|
|
175
|
-
|
|
176
|
-
.
|
|
176
|
+
try {
|
|
177
|
+
this.db
|
|
178
|
+
.prepare(`INSERT INTO turns (conversation_id, session_id, turn_index, role, ended_at,
|
|
177
179
|
ctx_tokens, ctx_percent, pressure_band, model)
|
|
178
180
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
179
|
-
|
|
181
|
+
.run(entry.conversationId, sid, entry.turnIndex, entry.role, entry.endedAt, entry.ctxTokens ?? null, entry.ctxPercent ?? null, entry.pressureBand ?? null, entry.model ?? null);
|
|
182
|
+
}
|
|
183
|
+
catch (e) {
|
|
184
|
+
if (e instanceof Error &&
|
|
185
|
+
e.message.includes("UNIQUE constraint") &&
|
|
186
|
+
e.code === "ERR_SQLITE_ERROR") {
|
|
187
|
+
throw new DuplicateTurnError(entry.conversationId, entry.turnIndex);
|
|
188
|
+
}
|
|
189
|
+
throw e;
|
|
190
|
+
}
|
|
180
191
|
const row = this.db
|
|
181
192
|
.prepare("SELECT id FROM turns WHERE conversation_id = ? AND turn_index = ?")
|
|
182
193
|
.get(entry.conversationId, entry.turnIndex);
|
|
@@ -13,4 +13,21 @@
|
|
|
13
13
|
*
|
|
14
14
|
* PREVENT-PI-004: zero network. PREVENT-002: no SQL here (private to impls).
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
// ─── Domain types ───────────────────────────────────────────────────
|
|
17
|
+
/**
|
|
18
|
+
* Thrown when appendTurn is called with a (conversationId, turnIndex) pair
|
|
19
|
+
* that already exists. Both backends must throw this in lieu of a raw
|
|
20
|
+
* SQLite error (SqliteTurnStore) or silent success (InMemoryTurnStore).
|
|
21
|
+
*/
|
|
22
|
+
export class DuplicateTurnError extends Error {
|
|
23
|
+
/** The conversation that already has this turn index. */
|
|
24
|
+
conversationId;
|
|
25
|
+
/** The duplicate turn index. */
|
|
26
|
+
turnIndex;
|
|
27
|
+
constructor(conversationId, turnIndex) {
|
|
28
|
+
super(`Duplicate turn: conversation "${conversationId}" already has turnIndex ${turnIndex}`);
|
|
29
|
+
this.name = "DuplicateTurnError";
|
|
30
|
+
this.conversationId = conversationId;
|
|
31
|
+
this.turnIndex = turnIndex;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -195,10 +195,15 @@ export async function upsertEmbedding(repoId, sessionId, checkpointId, embedding
|
|
|
195
195
|
if (!pg)
|
|
196
196
|
return;
|
|
197
197
|
const lit = toVectorLiteral(embedding);
|
|
198
|
-
await pg.query(`INSERT INTO vector_index (repo_id, session_id, checkpoint_id, embedding)
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
198
|
+
const upserted = await withOpenTimeout(pg.query(`INSERT INTO vector_index (repo_id, session_id, checkpoint_id, embedding)
|
|
199
|
+
VALUES ($1, $2, $3, $4::vector)
|
|
200
|
+
ON CONFLICT (repo_id, session_id, checkpoint_id)
|
|
201
|
+
DO UPDATE SET embedding = EXCLUDED.embedding;`, [repoId, sessionId, checkpointId, lit]), (reason) => {
|
|
202
|
+
disabled = true;
|
|
203
|
+
logWarn(`upsert query timed out after ${queryTimeoutMs()}ms: ${reason}`);
|
|
204
|
+
}, queryTimeoutMs());
|
|
205
|
+
if (upserted === undefined)
|
|
206
|
+
return; // timed out — non-fatal
|
|
202
207
|
}
|
|
203
208
|
catch (err) {
|
|
204
209
|
disabled = true;
|
|
@@ -227,7 +232,12 @@ export async function searchAsync(query, opts = {}) {
|
|
|
227
232
|
params.push(repoId);
|
|
228
233
|
}
|
|
229
234
|
sql += " ORDER BY embedding <=> $1::vector LIMIT $2";
|
|
230
|
-
const res = await pg.query(sql, params)
|
|
235
|
+
const res = await withOpenTimeout(pg.query(sql, params), (reason) => {
|
|
236
|
+
disabled = true;
|
|
237
|
+
logWarn(`search query timed out after ${queryTimeoutMs()}ms: ${reason}`);
|
|
238
|
+
}, queryTimeoutMs());
|
|
239
|
+
if (!res)
|
|
240
|
+
return []; // query timed out — degrade to empty (non-fatal)
|
|
231
241
|
return res.rows.map((r) => ({
|
|
232
242
|
repoId: r.repo_id,
|
|
233
243
|
sessionId: r.session_id,
|
|
@@ -241,14 +251,49 @@ export async function searchAsync(query, opts = {}) {
|
|
|
241
251
|
return [];
|
|
242
252
|
}
|
|
243
253
|
}
|
|
254
|
+
/** Default cap for the WASM close (PGlite can stall ~40 min on teardown). */
|
|
255
|
+
export const DEFAULT_CLOSE_TIMEOUT_MS = 5_000;
|
|
256
|
+
function closeTimeoutMs() {
|
|
257
|
+
const raw = process.env.MEGACOMPACT_PGLITE_CLOSE_TIMEOUT_MS;
|
|
258
|
+
if (raw) {
|
|
259
|
+
const n = Number(raw);
|
|
260
|
+
if (Number.isFinite(n) && n > 0)
|
|
261
|
+
return n;
|
|
262
|
+
}
|
|
263
|
+
return DEFAULT_CLOSE_TIMEOUT_MS;
|
|
264
|
+
}
|
|
265
|
+
/** Default cap for a PGlite search query. A WASM query that never resolves would
|
|
266
|
+
* otherwise hang the calling turn (and node --test) forever — the catch below
|
|
267
|
+
* only handles thrown errors, not a stalled promise. 0 disables the guard
|
|
268
|
+
* (preserve original unbounded behavior). Mirrors the open/close timeouts. */
|
|
269
|
+
export const DEFAULT_QUERY_TIMEOUT_MS = 10_000;
|
|
270
|
+
function queryTimeoutMs() {
|
|
271
|
+
const raw = process.env.MEGACOMPACT_PGLITE_QUERY_TIMEOUT_MS;
|
|
272
|
+
if (raw !== undefined) {
|
|
273
|
+
const n = Number(raw);
|
|
274
|
+
if (Number.isFinite(n) && n >= 0)
|
|
275
|
+
return n;
|
|
276
|
+
}
|
|
277
|
+
return DEFAULT_QUERY_TIMEOUT_MS;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Race a promise against a timeout. If the inner promise never settles, the
|
|
281
|
+
* timer fires, resolves with `undefined`, and the caller proceeds. This mirrors
|
|
282
|
+
* `withOpenTimeout` (pgOpenGuard.ts) but is local to the close path.
|
|
283
|
+
*/
|
|
284
|
+
function withCloseTimeout(promise, timeoutMs) {
|
|
285
|
+
return Promise.race([
|
|
286
|
+
promise,
|
|
287
|
+
new Promise((resolve) => setTimeout(() => resolve(undefined), timeoutMs)),
|
|
288
|
+
]);
|
|
289
|
+
}
|
|
244
290
|
/** Close the index (test teardown / shutdown). Safe to call when unopened. */
|
|
245
291
|
export async function closeVectorIndex() {
|
|
246
292
|
if (db) {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
/* ignore */
|
|
293
|
+
const closePromise = db.close().catch(() => { });
|
|
294
|
+
const result = await withCloseTimeout(closePromise, closeTimeoutMs());
|
|
295
|
+
if (result === undefined) {
|
|
296
|
+
logWarn(`close timed out after ${closeTimeoutMs()}ms (WASM teardown stalled; OS will reclaim)`);
|
|
252
297
|
}
|
|
253
298
|
}
|
|
254
299
|
db = undefined;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tiered-router/types.ts — S44 tiered router types, interfaces, and defaults.
|
|
3
|
+
*
|
|
4
|
+
* Shell file: pure data/type definitions. Zero runtime dependencies on store
|
|
5
|
+
* internals. Imported by tieredRouter.ts and any consumer that needs the
|
|
6
|
+
* RecallResult / TieredRouterMetrics shapes.
|
|
7
|
+
*/
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
// Defaults
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
/** Default LRU cache size. */
|
|
12
|
+
export const DEFAULT_CACHE_SIZE = 256;
|
|
13
|
+
/** Default latency budgets per tier (ms). */
|
|
14
|
+
export const DEFAULT_BUDGET_L0_MS = 1;
|
|
15
|
+
export const DEFAULT_BUDGET_L1_MS = 50;
|
|
16
|
+
export const DEFAULT_BUDGET_L2_MS = 500;
|
|
17
|
+
/** Default cadence for tiered-metrics logging (every N queries). */
|
|
18
|
+
export const DEFAULT_LOG_CADENCE = 100;
|