pi-mega-compact 0.13.0 → 0.13.2
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/embedder-health.js +11 -0
- package/dist/extensions/dashboard-server/api-contracts/endpoints/registry.js +225 -0
- package/dist/extensions/dashboard-server/api-contracts/endpoints/types.js +1 -0
- package/dist/extensions/dashboard-server/api-contracts/endpoints.js +5 -224
- package/dist/extensions/dashboard-server/api-contracts/raptor.js +8 -0
- package/dist/extensions/dashboard-server/api-contracts.test/_helpers.js +32 -0
- package/dist/extensions/dashboard-server/routes-cache.test/_helpers.js +48 -0
- package/dist/extensions/dashboard-server/routes-embedder-health.js +67 -0
- package/dist/extensions/dashboard-server/routes-raptor.js +88 -0
- package/dist/extensions/dashboard-server/routes-setup.js +1 -1
- package/dist/extensions/dashboard-server/routes.js +2 -0
- package/dist/extensions/dashboard-server/server.js +5 -1
- package/dist/extensions/mega-cache-replay.test/_helpers.js +175 -0
- package/dist/extensions/mega-commands/dataCommands.js +151 -0
- package/dist/extensions/mega-commands/helpers.js +61 -0
- package/dist/extensions/mega-commands/historyCommands.js +97 -0
- package/dist/extensions/mega-commands/setupCommand.js +200 -0
- package/dist/extensions/mega-commands.js +14 -499
- package/dist/extensions/mega-compact-s38.test/_helpers.js +194 -0
- package/dist/extensions/mega-compact.js +12 -2
- package/dist/extensions/mega-compact.test/_helpers.js +225 -0
- package/dist/extensions/mega-events/agent-handlers/agentEndHandler.js +211 -0
- package/dist/extensions/mega-events/agent-handlers/turnEndHandler/cacheStripe.js +49 -0
- package/dist/extensions/mega-events/agent-handlers/turnEndHandler/contextHealth.js +33 -0
- package/dist/extensions/mega-events/agent-handlers/turnEndHandler/errorRetry.js +387 -0
- package/dist/extensions/mega-events/agent-handlers/turnEndHandler/event.js +7 -0
- package/dist/extensions/mega-events/agent-handlers/turnEndHandler/gameScoring.js +55 -0
- package/dist/extensions/mega-events/agent-handlers/turnEndHandler/lengthStop.js +12 -0
- package/dist/extensions/mega-events/agent-handlers/turnEndHandler/memoryReview.js +22 -0
- package/dist/extensions/mega-events/agent-handlers/turnEndHandler/recordTurnRow.js +38 -0
- package/dist/extensions/mega-events/agent-handlers/turnEndHandler.js +36 -0
- package/dist/extensions/mega-events/agent-handlers.js +4 -799
- package/dist/extensions/mega-events/context-handler/afterCompact.js +163 -0
- package/dist/extensions/mega-events/context-handler/messageText.js +12 -0
- package/dist/extensions/mega-events/context-handler/tailResult.js +46 -0
- package/dist/extensions/mega-events/context-handler.js +11 -198
- package/dist/extensions/mega-events/separated-prompt.test/_helpers.js +25 -0
- package/dist/src/config.js +2 -0
- package/dist/src/dedup-engine.test/_helpers.js +55 -0
- package/dist/src/e2e.test/_helpers.js +52 -0
- package/dist/src/embedder.js +1 -0
- package/dist/src/httpEmbedder.js +6 -0
- package/dist/src/hyde.js +146 -0
- package/dist/src/importance.test/_helpers.js +5 -0
- package/dist/src/memoryGraph/sources/checkpoints.js +78 -0
- package/dist/src/memoryGraph/sources/edges.js +17 -0
- package/dist/src/memoryGraph/sources/flags.js +22 -0
- package/dist/src/memoryGraph/sources/helpers.js +14 -0
- package/dist/src/memoryGraph/sources/memories.js +88 -0
- package/dist/src/memoryGraph/sources/raptor.js +26 -0
- package/dist/src/memoryGraph/sources/turns.js +176 -0
- package/dist/src/memoryGraph/sources.js +15 -441
- package/dist/src/memoryGraph-gates.test/_helpers.js +120 -0
- package/dist/src/ratio.bench.test/_helpers.js +198 -0
- package/dist/src/recall/async.js +112 -0
- package/dist/src/recall/format.js +149 -0
- package/dist/src/recall/memory.js +62 -0
- package/dist/src/recall/reformulate.js +82 -0
- package/dist/src/recall/sync.js +169 -0
- package/dist/src/recall/types.js +1 -0
- package/dist/src/recall.js +13 -530
- package/dist/src/store/sqlite/schema/core.js +232 -0
- package/dist/src/store/sqlite/schema/game.js +65 -0
- package/dist/src/store/sqlite/schema/plan-v2.js +107 -0
- package/dist/src/store/sqlite/schema/turns.js +59 -0
- package/dist/src/store/sqlite/schema.js +8 -441
- package/dist/src/store/turns/contract-compliance.test/_helpers.js +21 -0
- package/dist/src/store/turns/sqlite-store/admin.js +171 -0
- package/dist/src/store/turns/sqlite-store/ctx.js +1 -0
- package/dist/src/store/turns/sqlite-store/read.js +111 -0
- package/dist/src/store/turns/sqlite-store/rows.js +42 -0
- package/dist/src/store/turns/sqlite-store/write.js +102 -0
- package/dist/src/store/turns/sqlite-store.js +31 -367
- package/dist/src/vectorStore/class.js +356 -0
- package/dist/src/vectorStore/hash.js +10 -0
- package/dist/src/vectorStore/types.js +2 -0
- package/dist/src/vectorStore.js +8 -359
- package/dist/src/vectorStore.test/_helpers.js +17 -0
- package/extensions/dashboard-client/dist/assets/{CacheTab-BZNnKhh5.js → CacheTab-DPRHjYZ0.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{CacheTab-BZNnKhh5.js.map → CacheTab-DPRHjYZ0.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{EventsTab-CzF5L42U.js → EventsTab-CgwYq-Qf.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{EventsTab-CzF5L42U.js.map → EventsTab-CgwYq-Qf.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{HealthTab-BLpidMrX.js → HealthTab-BgOCjVzR.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{HealthTab-BLpidMrX.js.map → HealthTab-BgOCjVzR.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/MaintenanceTab-Yw1yFpsy.js +2 -0
- package/extensions/dashboard-client/dist/assets/MaintenanceTab-Yw1yFpsy.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/MemoryMapTab-yHUX7Yzi.js +2 -0
- package/extensions/dashboard-client/dist/assets/MemoryMapTab-yHUX7Yzi.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/{MetricsTab-B0PCysqs.js → MetricsTab-CcH9fP8P.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{MetricsTab-B0PCysqs.js.map → MetricsTab-CcH9fP8P.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{OverviewTab-DsOhqFu4.js → OverviewTab-BOs8ZNev.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{OverviewTab-DsOhqFu4.js.map → OverviewTab-BOs8ZNev.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{ReposTab-B3YKYuOf.js → ReposTab-B-MfSPvg.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{ReposTab-B3YKYuOf.js.map → ReposTab-B-MfSPvg.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{SessionsTab-B96FWcrC.js → SessionsTab-BmeN649Q.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{SessionsTab-B96FWcrC.js.map → SessionsTab-BmeN649Q.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/SetupTab-nOknoph5.js +2 -0
- package/extensions/dashboard-client/dist/assets/SetupTab-nOknoph5.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/{TimeSavedCard-BfkUVTvA.js → TimeSavedCard-DnPg0L0z.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{TimeSavedCard-BfkUVTvA.js.map → TimeSavedCard-DnPg0L0z.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{TopicsTab-DLRsZmXJ.js → TopicsTab-BODHOg_b.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{TopicsTab-DLRsZmXJ.js.map → TopicsTab-BODHOg_b.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{TurnsTab-DKGU2Bf6.js → TurnsTab-BK0I7hKr.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{TurnsTab-DKGU2Bf6.js.map → TurnsTab-BK0I7hKr.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{index-D-lPLRWB.js → index-mOlljTFI.js} +10 -10
- package/extensions/dashboard-client/dist/assets/index-mOlljTFI.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/{useSSE-ClbbcgIp.js → useSSE-BYOtv1-3.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{useSSE-ClbbcgIp.js.map → useSSE-BYOtv1-3.js.map} +1 -1
- package/extensions/dashboard-client/dist/index.html +1 -1
- package/extensions/dashboard-client/src/App.tsx +0 -4
- package/extensions/dashboard-client/src/api/client.ts +16 -0
- package/extensions/dashboard-client/src/tabs/MaintenanceTab/ActionsCard.tsx +178 -0
- package/extensions/dashboard-client/src/tabs/MaintenanceTab/DbStatsCard.tsx +140 -0
- package/extensions/dashboard-client/src/tabs/MaintenanceTab/DebugBundleCard.tsx +109 -0
- package/extensions/dashboard-client/src/tabs/MaintenanceTab/HealthMitigationCard.tsx +98 -0
- package/extensions/dashboard-client/src/tabs/MaintenanceTab/SchemaHealthCard.tsx +108 -0
- package/extensions/dashboard-client/src/tabs/MaintenanceTab.tsx +12 -598
- package/extensions/dashboard-client/src/tabs/MemoryMapTab/MemoryMapView.tsx +476 -0
- package/extensions/dashboard-client/src/tabs/MemoryMapTab/RaptorTreeView.tsx +163 -0
- package/extensions/dashboard-client/src/tabs/MemoryMapTab.tsx +56 -466
- package/extensions/dashboard-client/src/tabs/SetupTab/EmbedderHealthCard.tsx +109 -0
- package/extensions/dashboard-client/src/tabs/SetupTab/EmbedderSetup.tsx +468 -0
- package/extensions/dashboard-client/src/tabs/SetupTab.tsx +23 -484
- package/extensions/dashboard-server/api-contracts/embedder-health.ts +32 -0
- package/extensions/dashboard-server/api-contracts/endpoints/registry.ts +360 -0
- package/extensions/dashboard-server/api-contracts/endpoints/types.ts +350 -0
- package/extensions/dashboard-server/api-contracts/endpoints.ts +27 -648
- package/extensions/dashboard-server/api-contracts/index.ts +6 -0
- package/extensions/dashboard-server/api-contracts/raptor.ts +49 -0
- package/extensions/dashboard-server/api-contracts.test/_helpers.ts +47 -0
- package/extensions/dashboard-server/routes-cache.test/_helpers.ts +94 -0
- package/extensions/dashboard-server/routes-embedder-health.ts +77 -0
- package/extensions/dashboard-server/routes-raptor.ts +128 -0
- package/extensions/dashboard-server/routes-setup.ts +1 -1
- package/extensions/dashboard-server/routes.ts +2 -0
- package/extensions/dashboard-server/server.ts +4 -0
- package/extensions/mega-cache-replay.test/_helpers.ts +188 -0
- package/extensions/mega-commands/dataCommands.ts +169 -0
- package/extensions/mega-commands/helpers.ts +62 -0
- package/extensions/mega-commands/historyCommands.ts +117 -0
- package/extensions/mega-commands/setupCommand.ts +235 -0
- package/extensions/mega-commands.ts +25 -538
- package/extensions/mega-compact-s38.test/_helpers.ts +201 -0
- package/extensions/mega-compact.test/_helpers.ts +237 -0
- package/extensions/mega-compact.ts +12 -2
- package/extensions/mega-events/agent-handlers/agentEndHandler.ts +238 -0
- package/extensions/mega-events/agent-handlers/turnEndHandler/cacheStripe.ts +74 -0
- package/extensions/mega-events/agent-handlers/turnEndHandler/contextHealth.ts +50 -0
- package/extensions/mega-events/agent-handlers/turnEndHandler/errorRetry.ts +421 -0
- package/extensions/mega-events/agent-handlers/turnEndHandler/event.ts +16 -0
- package/extensions/mega-events/agent-handlers/turnEndHandler/gameScoring.ts +73 -0
- package/extensions/mega-events/agent-handlers/turnEndHandler/lengthStop.ts +29 -0
- package/extensions/mega-events/agent-handlers/turnEndHandler/memoryReview.ts +42 -0
- package/extensions/mega-events/agent-handlers/turnEndHandler/recordTurnRow.ts +61 -0
- package/extensions/mega-events/agent-handlers/turnEndHandler.ts +64 -0
- package/extensions/mega-events/agent-handlers.ts +15 -861
- package/extensions/mega-events/context-handler/afterCompact.ts +213 -0
- package/extensions/mega-events/context-handler/messageText.ts +20 -0
- package/extensions/mega-events/context-handler/tailResult.ts +63 -0
- package/extensions/mega-events/context-handler.ts +17 -235
- package/extensions/mega-events/separated-prompt.test/_helpers.ts +35 -0
- package/package.json +1 -1
- package/src/config.ts +4 -0
- package/src/dedup-engine.test/_helpers.ts +79 -0
- package/src/e2e.test/_helpers.ts +59 -0
- package/src/embedder.ts +4 -0
- package/src/httpEmbedder.ts +7 -0
- package/src/hyde.ts +162 -0
- package/src/importance.test/_helpers.ts +5 -0
- package/src/memoryGraph/sources/checkpoints.ts +99 -0
- package/src/memoryGraph/sources/edges.ts +23 -0
- package/src/memoryGraph/sources/flags.ts +26 -0
- package/src/memoryGraph/sources/helpers.ts +13 -0
- package/src/memoryGraph/sources/memories.ts +108 -0
- package/src/memoryGraph/sources/raptor.ts +37 -0
- package/src/memoryGraph/sources/turns.ts +226 -0
- package/src/memoryGraph/sources.ts +19 -544
- package/src/memoryGraph-gates.test/_helpers.ts +164 -0
- package/src/ratio.bench.test/_helpers.ts +268 -0
- package/src/recall/async.ts +142 -0
- package/src/recall/format.ts +173 -0
- package/src/recall/memory.ts +90 -0
- package/src/recall/reformulate.ts +111 -0
- package/src/recall/sync.ts +196 -0
- package/src/recall/types.ts +63 -0
- package/src/recall.ts +25 -712
- package/src/store/sqlite/schema/core.ts +233 -0
- package/src/store/sqlite/schema/game.ts +66 -0
- package/src/store/sqlite/schema/plan-v2.ts +108 -0
- package/src/store/sqlite/schema/turns.ts +60 -0
- package/src/store/sqlite/schema.ts +13 -441
- package/src/store/turns/contract-compliance.test/_helpers.ts +38 -0
- package/src/store/turns/sqlite-store/admin.ts +249 -0
- package/src/store/turns/sqlite-store/ctx.ts +14 -0
- package/src/store/turns/sqlite-store/read.ts +174 -0
- package/src/store/turns/sqlite-store/rows.ts +55 -0
- package/src/store/turns/sqlite-store/write.ts +193 -0
- package/src/store/turns/sqlite-store.ts +33 -514
- package/src/vectorStore/class.ts +433 -0
- package/src/vectorStore/hash.ts +11 -0
- package/src/vectorStore/types.ts +58 -0
- package/src/vectorStore.test/_helpers.ts +20 -0
- package/src/vectorStore.ts +13 -489
- package/extensions/dashboard-client/dist/assets/ConfigTab-DG0WkuuG.js +0 -2
- package/extensions/dashboard-client/dist/assets/ConfigTab-DG0WkuuG.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/MaintenanceTab-BQF7W7xX.js +0 -2
- package/extensions/dashboard-client/dist/assets/MaintenanceTab-BQF7W7xX.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/MemoryMapTab-CPtHLv0A.js +0 -2
- package/extensions/dashboard-client/dist/assets/MemoryMapTab-CPtHLv0A.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/SetupTab-hbzQ_NZv.js +0 -2
- package/extensions/dashboard-client/dist/assets/SetupTab-hbzQ_NZv.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/index-D-lPLRWB.js.map +0 -1
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* api-contracts/endpoints/types.ts — inline response/query types for the
|
|
3
|
+
* endpoint registry.
|
|
4
|
+
*
|
|
5
|
+
* Extracted from endpoints.ts (delegate-shell split). Holds the response types
|
|
6
|
+
* that were defined inline (version/drift/servers/perf) plus the backwards-
|
|
7
|
+
* compatible re-export of the types that migrated to game-types.ts.
|
|
8
|
+
*
|
|
9
|
+
* PREVENT-PI-004: zero network code (type definitions only).
|
|
10
|
+
* PREVENT-011: no `any` type — all types are explicit.
|
|
11
|
+
*/
|
|
12
|
+
import type { IndexesIndexRow, IndexesSummaryResponse } from "../multi-repo.js";
|
|
13
|
+
|
|
14
|
+
// ─── Game Score & Achievement Types ─────────────────────────────────────────
|
|
15
|
+
// (moved to game-types.ts; re-exported for backwards compatibility)
|
|
16
|
+
|
|
17
|
+
// ─── Sessions Memory Graph (S39) ─────────────────────────────────────────
|
|
18
|
+
// (moved to game-types.ts; re-exported for backwards compatibility)
|
|
19
|
+
|
|
20
|
+
// ─── Game State Patch (PUT request body) ────────────────────────────────────
|
|
21
|
+
// (moved to game-types.ts; re-exported for backwards compatibility)
|
|
22
|
+
|
|
23
|
+
// ─── SSE Endpoint Definition ────────────────────────────────────────────────
|
|
24
|
+
// (moved to game-types.ts; re-exported for backwards compatibility)
|
|
25
|
+
|
|
26
|
+
export type {
|
|
27
|
+
GameScoreRow,
|
|
28
|
+
GameScoresQuery,
|
|
29
|
+
AchievementRow,
|
|
30
|
+
ActiveSession,
|
|
31
|
+
SessionsResponse,
|
|
32
|
+
SessionDataPoint,
|
|
33
|
+
SessionSeries,
|
|
34
|
+
SessionTimeseriesQuery,
|
|
35
|
+
SessionTimeseriesResponse,
|
|
36
|
+
GameStatePatch,
|
|
37
|
+
SseEndpointDef,
|
|
38
|
+
TopicRow,
|
|
39
|
+
TopicAssignmentRow,
|
|
40
|
+
TopicsResponse,
|
|
41
|
+
TopicDetailResponse,
|
|
42
|
+
} from "../game-types.js";
|
|
43
|
+
|
|
44
|
+
// ─── New Response Types (inline) ───────────────────────────────────────────
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Response for GET /api/version. Returns the dashboard server version string
|
|
48
|
+
* so the launcher can detect stale servers from older builds.
|
|
49
|
+
*/
|
|
50
|
+
export interface VersionResponse {
|
|
51
|
+
/** Semver-style version string of the running dashboard server. */
|
|
52
|
+
readonly version: string;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Aggregated summary of the multi-repo index (subset of IndexesSummaryResponse).
|
|
57
|
+
* Used by GET /api/summary for lightweight header tiles.
|
|
58
|
+
*/
|
|
59
|
+
export type IndexSummary = Pick<
|
|
60
|
+
IndexesSummaryResponse,
|
|
61
|
+
| "totalRepos"
|
|
62
|
+
| "totalCheckpoints"
|
|
63
|
+
| "totalTokensSaved"
|
|
64
|
+
| "totalCompressedOriginalBytes"
|
|
65
|
+
>;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Fallback response for GET /api/index when the multi-repo index is unavailable
|
|
69
|
+
* (no index.sqlite file or read error). All fields are null/empty.
|
|
70
|
+
*/
|
|
71
|
+
export interface IndexFallbackResponse {
|
|
72
|
+
/** Always null — no index data available. */
|
|
73
|
+
readonly updatedAt: null;
|
|
74
|
+
/** Always null — no summary available. */
|
|
75
|
+
readonly summary: null;
|
|
76
|
+
/** Always an empty array — no repos registered. */
|
|
77
|
+
readonly repos: IndexesIndexRow[];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Query parameters for GET /api/repos. The `active` parameter filters to repos
|
|
82
|
+
* seen within the last N hours (format: "<N>h", e.g. "24h").
|
|
83
|
+
*/
|
|
84
|
+
export interface ReposQuery {
|
|
85
|
+
/** Active-window filter in format "<hours>h" (e.g. "24h"). Optional. */
|
|
86
|
+
readonly active?: string;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Response for GET /api/repos. Returns the registry list with an optional
|
|
91
|
+
* active-window filter applied.
|
|
92
|
+
*/
|
|
93
|
+
export interface ReposResponse {
|
|
94
|
+
/** ISO timestamp of the last index update, or null if unavailable. */
|
|
95
|
+
readonly updatedAt: string | null;
|
|
96
|
+
/** Array of repo index rows. */
|
|
97
|
+
readonly repos: IndexesIndexRow[];
|
|
98
|
+
/** Number of repos in the response (after filtering). */
|
|
99
|
+
readonly count: number;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Response for GET /api/summary. Lightweight header tiles without the full
|
|
104
|
+
* repo list (keeps payload small for embed scenarios).
|
|
105
|
+
*/
|
|
106
|
+
export interface SummaryResponse {
|
|
107
|
+
/** ISO timestamp of the last index update, or null if unavailable. */
|
|
108
|
+
readonly updatedAt: string | null;
|
|
109
|
+
/** Aggregate index summary, or null if no index exists. */
|
|
110
|
+
readonly summary: IndexSummary | null;
|
|
111
|
+
/** Number of repos active within the last 24 hours. */
|
|
112
|
+
readonly activeRepos: number;
|
|
113
|
+
/** Total number of repos in the registry. */
|
|
114
|
+
readonly totalRepos: number;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// ─── Drift Report Types ─────────────────────────────────────────────────────
|
|
118
|
+
|
|
119
|
+
/** Severity level for a drift signal. */
|
|
120
|
+
export type DriftSeverity = "warn" | "info";
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* A single drift signal for a repo.
|
|
124
|
+
*/
|
|
125
|
+
export interface DriftSignal {
|
|
126
|
+
/** The kind of drift detected. */
|
|
127
|
+
readonly kind: "stale" | "compaction_lag" | "model_churn";
|
|
128
|
+
/** Severity level of the signal. */
|
|
129
|
+
readonly severity: DriftSeverity;
|
|
130
|
+
/** Human-readable detail describing the drift. */
|
|
131
|
+
readonly detail: string;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Drift classification for a single repo.
|
|
136
|
+
*/
|
|
137
|
+
export interface RepoDrift {
|
|
138
|
+
/** Absolute path to the repo root. */
|
|
139
|
+
readonly repoRoot: string;
|
|
140
|
+
/** Display name of the repo. */
|
|
141
|
+
readonly displayName: string;
|
|
142
|
+
/** Unix timestamp (seconds) of the last dashboard activity. */
|
|
143
|
+
readonly lastSeen: number;
|
|
144
|
+
/** Unix timestamp (seconds) of the last compaction, or null if never. */
|
|
145
|
+
readonly lastCompactedAt: number | null;
|
|
146
|
+
/** Unix timestamp (seconds) of the last model capture, or null. */
|
|
147
|
+
readonly modelCapturedAt: number | null;
|
|
148
|
+
/** Array of drift signals detected for this repo. */
|
|
149
|
+
readonly signals: DriftSignal[];
|
|
150
|
+
/** Highest severity across signals; "ok" if none. */
|
|
151
|
+
readonly status: "ok" | "warn";
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Response for GET /api/drift. Cross-repo drift report over the machine-wide
|
|
156
|
+
* repo_registry, flagging stale repos, compaction lag, and model churn.
|
|
157
|
+
*/
|
|
158
|
+
export interface DriftReportResponse {
|
|
159
|
+
/** Unix timestamp (seconds) when the report was generated. */
|
|
160
|
+
readonly generatedAt: number;
|
|
161
|
+
/** Aggregate counts by status/signal. */
|
|
162
|
+
readonly totals: {
|
|
163
|
+
/** Repos with no drift signals. */
|
|
164
|
+
readonly ok: number;
|
|
165
|
+
/** Repos with at least one warning signal. */
|
|
166
|
+
readonly warn: number;
|
|
167
|
+
/** Repos with the "stale" signal. */
|
|
168
|
+
readonly stale: number;
|
|
169
|
+
/** Repos with the "compaction_lag" signal. */
|
|
170
|
+
readonly compactionLag: number;
|
|
171
|
+
/** Repos with the "model_churn" signal. */
|
|
172
|
+
readonly modelChurn: number;
|
|
173
|
+
};
|
|
174
|
+
/** Per-repo drift classifications. */
|
|
175
|
+
readonly repos: RepoDrift[];
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// ─── Servers Types ──────────────────────────────────────────────────────────
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* A single server entry in the GET /api/servers response. Represents a
|
|
182
|
+
* recently-active repo with its live dashboard snapshot data.
|
|
183
|
+
*/
|
|
184
|
+
export interface ServerEntry {
|
|
185
|
+
/** Absolute path to the repo root. */
|
|
186
|
+
readonly repoRoot: string;
|
|
187
|
+
/** Display name of the repo. */
|
|
188
|
+
readonly displayName: string;
|
|
189
|
+
/** Model name, or null if not set. */
|
|
190
|
+
readonly model: string | null;
|
|
191
|
+
/** Provider display name, or null if not set. */
|
|
192
|
+
readonly provider: string | null;
|
|
193
|
+
/** Unix timestamp (seconds) of the last dashboard activity. */
|
|
194
|
+
readonly lastSeen: number;
|
|
195
|
+
/** Unix timestamp (seconds) of the last compaction, or null. */
|
|
196
|
+
readonly lastCompactedAt: number | null;
|
|
197
|
+
/** Current compaction tier, or null if no live snapshot. Present when a live dashboard.json exists. */
|
|
198
|
+
readonly tier?: string | null;
|
|
199
|
+
/** Current context pressure percentage (0–100), or null. Present when a live snapshot has context data. */
|
|
200
|
+
readonly contextPct?: number | null;
|
|
201
|
+
/** Current session state string, or null. Present when a live snapshot has session data. */
|
|
202
|
+
readonly state?: string | null;
|
|
203
|
+
/** Cache hit counters from the live snapshot, or null. Present when a live snapshot has cacheHits. */
|
|
204
|
+
readonly cacheHits?: {
|
|
205
|
+
readonly session: number;
|
|
206
|
+
readonly total: number;
|
|
207
|
+
readonly sessionTokensSaved: number;
|
|
208
|
+
readonly totalTokensSaved: number;
|
|
209
|
+
} | null;
|
|
210
|
+
/** Compaction counters from the live snapshot, or null. Present when a live snapshot has compacts. */
|
|
211
|
+
readonly compacts?: {
|
|
212
|
+
readonly session: number;
|
|
213
|
+
readonly total: number;
|
|
214
|
+
} | null;
|
|
215
|
+
/** Time saved counters from the live snapshot, or null. Present when a live snapshot has timeSaved. */
|
|
216
|
+
readonly timeSaved?: {
|
|
217
|
+
readonly compact: {
|
|
218
|
+
readonly sessionSec: number;
|
|
219
|
+
readonly totalSec: number;
|
|
220
|
+
};
|
|
221
|
+
readonly cacheHit: {
|
|
222
|
+
readonly sessionSec: number;
|
|
223
|
+
readonly totalSec: number;
|
|
224
|
+
};
|
|
225
|
+
} | null;
|
|
226
|
+
/** ISO timestamp of the live snapshot, or null. Present when a live snapshot has updatedAt. */
|
|
227
|
+
readonly updatedAt?: string | null;
|
|
228
|
+
/** Provider prompt-cache lifetime aggregates for this repo, or null when unavailable. */
|
|
229
|
+
readonly providerCache?: {
|
|
230
|
+
readonly avgHitPct: number;
|
|
231
|
+
readonly cacheRead: number;
|
|
232
|
+
readonly cacheWrite: number;
|
|
233
|
+
readonly totalInput: number;
|
|
234
|
+
readonly sampleCount: number;
|
|
235
|
+
readonly estimatedSaved: number | null;
|
|
236
|
+
} | null;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Response for GET /api/servers. Lists recently-active repo servers with
|
|
241
|
+
* live snapshot data.
|
|
242
|
+
*/
|
|
243
|
+
export interface ServersResponse {
|
|
244
|
+
/** ISO timestamp when the response was generated. */
|
|
245
|
+
readonly updatedAt: string;
|
|
246
|
+
/** Array of server entries, sorted by lastSeen descending. */
|
|
247
|
+
readonly servers: ServerEntry[];
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// ─── Perf Types ─────────────────────────────────────────────────────────────
|
|
251
|
+
|
|
252
|
+
/** Percentile statistics for a latency metric (in milliseconds). */
|
|
253
|
+
export interface PerfPercentile {
|
|
254
|
+
/** 50th percentile (median) in milliseconds. */
|
|
255
|
+
readonly p50: number;
|
|
256
|
+
/** 95th percentile in milliseconds. */
|
|
257
|
+
readonly p95: number;
|
|
258
|
+
/** Number of samples in the window. */
|
|
259
|
+
readonly n: number;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/** Average statistics for a rate metric. */
|
|
263
|
+
export interface PerfAverage {
|
|
264
|
+
/** Average value across all samples in the window. */
|
|
265
|
+
readonly avg: number;
|
|
266
|
+
/** Number of samples in the window. */
|
|
267
|
+
readonly n: number;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/** Latest-value statistics for a gauge metric. */
|
|
271
|
+
export interface PerfLatest {
|
|
272
|
+
/** Most recent value in the window. */
|
|
273
|
+
readonly latest: number;
|
|
274
|
+
/** Number of samples in the window. */
|
|
275
|
+
readonly n: number;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/** A single cache hit rate sample with timestamp. */
|
|
279
|
+
export interface CacheHitSample {
|
|
280
|
+
/** Cache hit percentage (0–100). */
|
|
281
|
+
readonly pct: number;
|
|
282
|
+
/** Epoch ms timestamp of the sample. */
|
|
283
|
+
readonly ts: number;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/** Average + latest statistics for cache hit percentage. */
|
|
287
|
+
export interface PerfCacheHit {
|
|
288
|
+
/** Average cache hit percentage (0–100). */
|
|
289
|
+
readonly avg: number;
|
|
290
|
+
/** Most recent cache hit percentage (0–100). */
|
|
291
|
+
readonly latest: number;
|
|
292
|
+
/** Number of samples in the window. */
|
|
293
|
+
readonly n: number;
|
|
294
|
+
/** Raw cache hit samples with timestamps for time-series charting. */
|
|
295
|
+
readonly samples: CacheHitSample[];
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/** Diagnostic counters from the live dashboard snapshot. */
|
|
299
|
+
export interface PerfDiag {
|
|
300
|
+
/** Number of fast-gate context trim fires. */
|
|
301
|
+
readonly ctxFastGate: number;
|
|
302
|
+
/** Number of live trim fires. */
|
|
303
|
+
readonly liveTrimFires: number;
|
|
304
|
+
/** Number of live trim replays. */
|
|
305
|
+
readonly liveTrimReplays: number;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Query parameters for GET /api/perf. The `minutes` parameter controls the
|
|
310
|
+
* rolling window size.
|
|
311
|
+
*/
|
|
312
|
+
export interface PerfQuery {
|
|
313
|
+
/** Rolling window size in minutes (default: 30, max: 1440). Optional. */
|
|
314
|
+
readonly minutes?: number;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Response for GET /api/perf. Rolling-window aggregates over perf_samples
|
|
319
|
+
* with per-kind p50/p95, latest rss/heap, cpu counters, and diagnostic data.
|
|
320
|
+
*/
|
|
321
|
+
export interface PerfResponse {
|
|
322
|
+
/** ISO timestamp when the response was generated. */
|
|
323
|
+
readonly updatedAt: string;
|
|
324
|
+
/** Rolling window size in minutes. */
|
|
325
|
+
readonly windowMinutes: number;
|
|
326
|
+
/** Total number of perf samples in the window. */
|
|
327
|
+
readonly sampleCount: number;
|
|
328
|
+
/** Turn latency statistics in milliseconds. */
|
|
329
|
+
readonly turn_latency_ms: PerfPercentile;
|
|
330
|
+
/** Provider latency statistics in milliseconds. */
|
|
331
|
+
readonly provider_latency_ms: PerfPercentile;
|
|
332
|
+
/** Tokens-per-second statistics. */
|
|
333
|
+
readonly tps: PerfAverage;
|
|
334
|
+
/** Cache hit percentage statistics. */
|
|
335
|
+
readonly cache_hit_pct: PerfCacheHit;
|
|
336
|
+
/** Database recompute duration statistics in milliseconds. */
|
|
337
|
+
readonly db_recompute_ms: PerfPercentile;
|
|
338
|
+
/** Disk write duration statistics in milliseconds. */
|
|
339
|
+
readonly disk_write_ms: PerfPercentile;
|
|
340
|
+
/** RSS memory usage in MB (latest value). */
|
|
341
|
+
readonly rss_mb: PerfLatest;
|
|
342
|
+
/** Heap memory usage in MB (latest value). */
|
|
343
|
+
readonly heap_mb: PerfLatest;
|
|
344
|
+
/** CPU user time in milliseconds (latest value). */
|
|
345
|
+
readonly cpu_user_ms: PerfLatest;
|
|
346
|
+
/** CPU system time in milliseconds (latest value). */
|
|
347
|
+
readonly cpu_sys_ms: PerfLatest;
|
|
348
|
+
/** Diagnostic counters from the live snapshot, or null if unavailable. */
|
|
349
|
+
readonly diag: PerfDiag | null;
|
|
350
|
+
}
|