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.
Files changed (212) hide show
  1. package/dist/extensions/dashboard-server/api-contracts/embedder-health.js +11 -0
  2. package/dist/extensions/dashboard-server/api-contracts/endpoints/registry.js +225 -0
  3. package/dist/extensions/dashboard-server/api-contracts/endpoints/types.js +1 -0
  4. package/dist/extensions/dashboard-server/api-contracts/endpoints.js +5 -224
  5. package/dist/extensions/dashboard-server/api-contracts/raptor.js +8 -0
  6. package/dist/extensions/dashboard-server/api-contracts.test/_helpers.js +32 -0
  7. package/dist/extensions/dashboard-server/routes-cache.test/_helpers.js +48 -0
  8. package/dist/extensions/dashboard-server/routes-embedder-health.js +67 -0
  9. package/dist/extensions/dashboard-server/routes-raptor.js +88 -0
  10. package/dist/extensions/dashboard-server/routes-setup.js +1 -1
  11. package/dist/extensions/dashboard-server/routes.js +2 -0
  12. package/dist/extensions/dashboard-server/server.js +5 -1
  13. package/dist/extensions/mega-cache-replay.test/_helpers.js +175 -0
  14. package/dist/extensions/mega-commands/dataCommands.js +151 -0
  15. package/dist/extensions/mega-commands/helpers.js +61 -0
  16. package/dist/extensions/mega-commands/historyCommands.js +97 -0
  17. package/dist/extensions/mega-commands/setupCommand.js +200 -0
  18. package/dist/extensions/mega-commands.js +14 -499
  19. package/dist/extensions/mega-compact-s38.test/_helpers.js +194 -0
  20. package/dist/extensions/mega-compact.js +12 -2
  21. package/dist/extensions/mega-compact.test/_helpers.js +225 -0
  22. package/dist/extensions/mega-events/agent-handlers/agentEndHandler.js +211 -0
  23. package/dist/extensions/mega-events/agent-handlers/turnEndHandler/cacheStripe.js +49 -0
  24. package/dist/extensions/mega-events/agent-handlers/turnEndHandler/contextHealth.js +33 -0
  25. package/dist/extensions/mega-events/agent-handlers/turnEndHandler/errorRetry.js +387 -0
  26. package/dist/extensions/mega-events/agent-handlers/turnEndHandler/event.js +7 -0
  27. package/dist/extensions/mega-events/agent-handlers/turnEndHandler/gameScoring.js +55 -0
  28. package/dist/extensions/mega-events/agent-handlers/turnEndHandler/lengthStop.js +12 -0
  29. package/dist/extensions/mega-events/agent-handlers/turnEndHandler/memoryReview.js +22 -0
  30. package/dist/extensions/mega-events/agent-handlers/turnEndHandler/recordTurnRow.js +38 -0
  31. package/dist/extensions/mega-events/agent-handlers/turnEndHandler.js +36 -0
  32. package/dist/extensions/mega-events/agent-handlers.js +4 -799
  33. package/dist/extensions/mega-events/context-handler/afterCompact.js +163 -0
  34. package/dist/extensions/mega-events/context-handler/messageText.js +12 -0
  35. package/dist/extensions/mega-events/context-handler/tailResult.js +46 -0
  36. package/dist/extensions/mega-events/context-handler.js +11 -198
  37. package/dist/extensions/mega-events/separated-prompt.test/_helpers.js +25 -0
  38. package/dist/src/config.js +2 -0
  39. package/dist/src/dedup-engine.test/_helpers.js +55 -0
  40. package/dist/src/e2e.test/_helpers.js +52 -0
  41. package/dist/src/embedder.js +1 -0
  42. package/dist/src/httpEmbedder.js +6 -0
  43. package/dist/src/hyde.js +146 -0
  44. package/dist/src/importance.test/_helpers.js +5 -0
  45. package/dist/src/memoryGraph/sources/checkpoints.js +78 -0
  46. package/dist/src/memoryGraph/sources/edges.js +17 -0
  47. package/dist/src/memoryGraph/sources/flags.js +22 -0
  48. package/dist/src/memoryGraph/sources/helpers.js +14 -0
  49. package/dist/src/memoryGraph/sources/memories.js +88 -0
  50. package/dist/src/memoryGraph/sources/raptor.js +26 -0
  51. package/dist/src/memoryGraph/sources/turns.js +176 -0
  52. package/dist/src/memoryGraph/sources.js +15 -441
  53. package/dist/src/memoryGraph-gates.test/_helpers.js +120 -0
  54. package/dist/src/ratio.bench.test/_helpers.js +198 -0
  55. package/dist/src/recall/async.js +112 -0
  56. package/dist/src/recall/format.js +149 -0
  57. package/dist/src/recall/memory.js +62 -0
  58. package/dist/src/recall/reformulate.js +82 -0
  59. package/dist/src/recall/sync.js +169 -0
  60. package/dist/src/recall/types.js +1 -0
  61. package/dist/src/recall.js +13 -530
  62. package/dist/src/store/sqlite/schema/core.js +232 -0
  63. package/dist/src/store/sqlite/schema/game.js +65 -0
  64. package/dist/src/store/sqlite/schema/plan-v2.js +107 -0
  65. package/dist/src/store/sqlite/schema/turns.js +59 -0
  66. package/dist/src/store/sqlite/schema.js +8 -441
  67. package/dist/src/store/turns/contract-compliance.test/_helpers.js +21 -0
  68. package/dist/src/store/turns/sqlite-store/admin.js +171 -0
  69. package/dist/src/store/turns/sqlite-store/ctx.js +1 -0
  70. package/dist/src/store/turns/sqlite-store/read.js +111 -0
  71. package/dist/src/store/turns/sqlite-store/rows.js +42 -0
  72. package/dist/src/store/turns/sqlite-store/write.js +102 -0
  73. package/dist/src/store/turns/sqlite-store.js +31 -367
  74. package/dist/src/vectorStore/class.js +356 -0
  75. package/dist/src/vectorStore/hash.js +10 -0
  76. package/dist/src/vectorStore/types.js +2 -0
  77. package/dist/src/vectorStore.js +8 -359
  78. package/dist/src/vectorStore.test/_helpers.js +17 -0
  79. package/extensions/dashboard-client/dist/assets/{CacheTab-BZNnKhh5.js → CacheTab-DPRHjYZ0.js} +2 -2
  80. package/extensions/dashboard-client/dist/assets/{CacheTab-BZNnKhh5.js.map → CacheTab-DPRHjYZ0.js.map} +1 -1
  81. package/extensions/dashboard-client/dist/assets/{EventsTab-CzF5L42U.js → EventsTab-CgwYq-Qf.js} +2 -2
  82. package/extensions/dashboard-client/dist/assets/{EventsTab-CzF5L42U.js.map → EventsTab-CgwYq-Qf.js.map} +1 -1
  83. package/extensions/dashboard-client/dist/assets/{HealthTab-BLpidMrX.js → HealthTab-BgOCjVzR.js} +2 -2
  84. package/extensions/dashboard-client/dist/assets/{HealthTab-BLpidMrX.js.map → HealthTab-BgOCjVzR.js.map} +1 -1
  85. package/extensions/dashboard-client/dist/assets/MaintenanceTab-Yw1yFpsy.js +2 -0
  86. package/extensions/dashboard-client/dist/assets/MaintenanceTab-Yw1yFpsy.js.map +1 -0
  87. package/extensions/dashboard-client/dist/assets/MemoryMapTab-yHUX7Yzi.js +2 -0
  88. package/extensions/dashboard-client/dist/assets/MemoryMapTab-yHUX7Yzi.js.map +1 -0
  89. package/extensions/dashboard-client/dist/assets/{MetricsTab-B0PCysqs.js → MetricsTab-CcH9fP8P.js} +2 -2
  90. package/extensions/dashboard-client/dist/assets/{MetricsTab-B0PCysqs.js.map → MetricsTab-CcH9fP8P.js.map} +1 -1
  91. package/extensions/dashboard-client/dist/assets/{OverviewTab-DsOhqFu4.js → OverviewTab-BOs8ZNev.js} +2 -2
  92. package/extensions/dashboard-client/dist/assets/{OverviewTab-DsOhqFu4.js.map → OverviewTab-BOs8ZNev.js.map} +1 -1
  93. package/extensions/dashboard-client/dist/assets/{ReposTab-B3YKYuOf.js → ReposTab-B-MfSPvg.js} +2 -2
  94. package/extensions/dashboard-client/dist/assets/{ReposTab-B3YKYuOf.js.map → ReposTab-B-MfSPvg.js.map} +1 -1
  95. package/extensions/dashboard-client/dist/assets/{SessionsTab-B96FWcrC.js → SessionsTab-BmeN649Q.js} +2 -2
  96. package/extensions/dashboard-client/dist/assets/{SessionsTab-B96FWcrC.js.map → SessionsTab-BmeN649Q.js.map} +1 -1
  97. package/extensions/dashboard-client/dist/assets/SetupTab-nOknoph5.js +2 -0
  98. package/extensions/dashboard-client/dist/assets/SetupTab-nOknoph5.js.map +1 -0
  99. package/extensions/dashboard-client/dist/assets/{TimeSavedCard-BfkUVTvA.js → TimeSavedCard-DnPg0L0z.js} +2 -2
  100. package/extensions/dashboard-client/dist/assets/{TimeSavedCard-BfkUVTvA.js.map → TimeSavedCard-DnPg0L0z.js.map} +1 -1
  101. package/extensions/dashboard-client/dist/assets/{TopicsTab-DLRsZmXJ.js → TopicsTab-BODHOg_b.js} +2 -2
  102. package/extensions/dashboard-client/dist/assets/{TopicsTab-DLRsZmXJ.js.map → TopicsTab-BODHOg_b.js.map} +1 -1
  103. package/extensions/dashboard-client/dist/assets/{TurnsTab-DKGU2Bf6.js → TurnsTab-BK0I7hKr.js} +2 -2
  104. package/extensions/dashboard-client/dist/assets/{TurnsTab-DKGU2Bf6.js.map → TurnsTab-BK0I7hKr.js.map} +1 -1
  105. package/extensions/dashboard-client/dist/assets/{index-D-lPLRWB.js → index-mOlljTFI.js} +10 -10
  106. package/extensions/dashboard-client/dist/assets/index-mOlljTFI.js.map +1 -0
  107. package/extensions/dashboard-client/dist/assets/{useSSE-ClbbcgIp.js → useSSE-BYOtv1-3.js} +2 -2
  108. package/extensions/dashboard-client/dist/assets/{useSSE-ClbbcgIp.js.map → useSSE-BYOtv1-3.js.map} +1 -1
  109. package/extensions/dashboard-client/dist/index.html +1 -1
  110. package/extensions/dashboard-client/src/App.tsx +0 -4
  111. package/extensions/dashboard-client/src/api/client.ts +16 -0
  112. package/extensions/dashboard-client/src/tabs/MaintenanceTab/ActionsCard.tsx +178 -0
  113. package/extensions/dashboard-client/src/tabs/MaintenanceTab/DbStatsCard.tsx +140 -0
  114. package/extensions/dashboard-client/src/tabs/MaintenanceTab/DebugBundleCard.tsx +109 -0
  115. package/extensions/dashboard-client/src/tabs/MaintenanceTab/HealthMitigationCard.tsx +98 -0
  116. package/extensions/dashboard-client/src/tabs/MaintenanceTab/SchemaHealthCard.tsx +108 -0
  117. package/extensions/dashboard-client/src/tabs/MaintenanceTab.tsx +12 -598
  118. package/extensions/dashboard-client/src/tabs/MemoryMapTab/MemoryMapView.tsx +476 -0
  119. package/extensions/dashboard-client/src/tabs/MemoryMapTab/RaptorTreeView.tsx +163 -0
  120. package/extensions/dashboard-client/src/tabs/MemoryMapTab.tsx +56 -466
  121. package/extensions/dashboard-client/src/tabs/SetupTab/EmbedderHealthCard.tsx +109 -0
  122. package/extensions/dashboard-client/src/tabs/SetupTab/EmbedderSetup.tsx +468 -0
  123. package/extensions/dashboard-client/src/tabs/SetupTab.tsx +23 -484
  124. package/extensions/dashboard-server/api-contracts/embedder-health.ts +32 -0
  125. package/extensions/dashboard-server/api-contracts/endpoints/registry.ts +360 -0
  126. package/extensions/dashboard-server/api-contracts/endpoints/types.ts +350 -0
  127. package/extensions/dashboard-server/api-contracts/endpoints.ts +27 -648
  128. package/extensions/dashboard-server/api-contracts/index.ts +6 -0
  129. package/extensions/dashboard-server/api-contracts/raptor.ts +49 -0
  130. package/extensions/dashboard-server/api-contracts.test/_helpers.ts +47 -0
  131. package/extensions/dashboard-server/routes-cache.test/_helpers.ts +94 -0
  132. package/extensions/dashboard-server/routes-embedder-health.ts +77 -0
  133. package/extensions/dashboard-server/routes-raptor.ts +128 -0
  134. package/extensions/dashboard-server/routes-setup.ts +1 -1
  135. package/extensions/dashboard-server/routes.ts +2 -0
  136. package/extensions/dashboard-server/server.ts +4 -0
  137. package/extensions/mega-cache-replay.test/_helpers.ts +188 -0
  138. package/extensions/mega-commands/dataCommands.ts +169 -0
  139. package/extensions/mega-commands/helpers.ts +62 -0
  140. package/extensions/mega-commands/historyCommands.ts +117 -0
  141. package/extensions/mega-commands/setupCommand.ts +235 -0
  142. package/extensions/mega-commands.ts +25 -538
  143. package/extensions/mega-compact-s38.test/_helpers.ts +201 -0
  144. package/extensions/mega-compact.test/_helpers.ts +237 -0
  145. package/extensions/mega-compact.ts +12 -2
  146. package/extensions/mega-events/agent-handlers/agentEndHandler.ts +238 -0
  147. package/extensions/mega-events/agent-handlers/turnEndHandler/cacheStripe.ts +74 -0
  148. package/extensions/mega-events/agent-handlers/turnEndHandler/contextHealth.ts +50 -0
  149. package/extensions/mega-events/agent-handlers/turnEndHandler/errorRetry.ts +421 -0
  150. package/extensions/mega-events/agent-handlers/turnEndHandler/event.ts +16 -0
  151. package/extensions/mega-events/agent-handlers/turnEndHandler/gameScoring.ts +73 -0
  152. package/extensions/mega-events/agent-handlers/turnEndHandler/lengthStop.ts +29 -0
  153. package/extensions/mega-events/agent-handlers/turnEndHandler/memoryReview.ts +42 -0
  154. package/extensions/mega-events/agent-handlers/turnEndHandler/recordTurnRow.ts +61 -0
  155. package/extensions/mega-events/agent-handlers/turnEndHandler.ts +64 -0
  156. package/extensions/mega-events/agent-handlers.ts +15 -861
  157. package/extensions/mega-events/context-handler/afterCompact.ts +213 -0
  158. package/extensions/mega-events/context-handler/messageText.ts +20 -0
  159. package/extensions/mega-events/context-handler/tailResult.ts +63 -0
  160. package/extensions/mega-events/context-handler.ts +17 -235
  161. package/extensions/mega-events/separated-prompt.test/_helpers.ts +35 -0
  162. package/package.json +1 -1
  163. package/src/config.ts +4 -0
  164. package/src/dedup-engine.test/_helpers.ts +79 -0
  165. package/src/e2e.test/_helpers.ts +59 -0
  166. package/src/embedder.ts +4 -0
  167. package/src/httpEmbedder.ts +7 -0
  168. package/src/hyde.ts +162 -0
  169. package/src/importance.test/_helpers.ts +5 -0
  170. package/src/memoryGraph/sources/checkpoints.ts +99 -0
  171. package/src/memoryGraph/sources/edges.ts +23 -0
  172. package/src/memoryGraph/sources/flags.ts +26 -0
  173. package/src/memoryGraph/sources/helpers.ts +13 -0
  174. package/src/memoryGraph/sources/memories.ts +108 -0
  175. package/src/memoryGraph/sources/raptor.ts +37 -0
  176. package/src/memoryGraph/sources/turns.ts +226 -0
  177. package/src/memoryGraph/sources.ts +19 -544
  178. package/src/memoryGraph-gates.test/_helpers.ts +164 -0
  179. package/src/ratio.bench.test/_helpers.ts +268 -0
  180. package/src/recall/async.ts +142 -0
  181. package/src/recall/format.ts +173 -0
  182. package/src/recall/memory.ts +90 -0
  183. package/src/recall/reformulate.ts +111 -0
  184. package/src/recall/sync.ts +196 -0
  185. package/src/recall/types.ts +63 -0
  186. package/src/recall.ts +25 -712
  187. package/src/store/sqlite/schema/core.ts +233 -0
  188. package/src/store/sqlite/schema/game.ts +66 -0
  189. package/src/store/sqlite/schema/plan-v2.ts +108 -0
  190. package/src/store/sqlite/schema/turns.ts +60 -0
  191. package/src/store/sqlite/schema.ts +13 -441
  192. package/src/store/turns/contract-compliance.test/_helpers.ts +38 -0
  193. package/src/store/turns/sqlite-store/admin.ts +249 -0
  194. package/src/store/turns/sqlite-store/ctx.ts +14 -0
  195. package/src/store/turns/sqlite-store/read.ts +174 -0
  196. package/src/store/turns/sqlite-store/rows.ts +55 -0
  197. package/src/store/turns/sqlite-store/write.ts +193 -0
  198. package/src/store/turns/sqlite-store.ts +33 -514
  199. package/src/vectorStore/class.ts +433 -0
  200. package/src/vectorStore/hash.ts +11 -0
  201. package/src/vectorStore/types.ts +58 -0
  202. package/src/vectorStore.test/_helpers.ts +20 -0
  203. package/src/vectorStore.ts +13 -489
  204. package/extensions/dashboard-client/dist/assets/ConfigTab-DG0WkuuG.js +0 -2
  205. package/extensions/dashboard-client/dist/assets/ConfigTab-DG0WkuuG.js.map +0 -1
  206. package/extensions/dashboard-client/dist/assets/MaintenanceTab-BQF7W7xX.js +0 -2
  207. package/extensions/dashboard-client/dist/assets/MaintenanceTab-BQF7W7xX.js.map +0 -1
  208. package/extensions/dashboard-client/dist/assets/MemoryMapTab-CPtHLv0A.js +0 -2
  209. package/extensions/dashboard-client/dist/assets/MemoryMapTab-CPtHLv0A.js.map +0 -1
  210. package/extensions/dashboard-client/dist/assets/SetupTab-hbzQ_NZv.js +0 -2
  211. package/extensions/dashboard-client/dist/assets/SetupTab-hbzQ_NZv.js.map +0 -1
  212. package/extensions/dashboard-client/dist/assets/index-D-lPLRWB.js.map +0 -1
@@ -0,0 +1,360 @@
1
+ /**
2
+ * api-contracts/endpoints/registry.ts — the ENDPOINTS registry object.
3
+ *
4
+ * Extracted from endpoints.ts (delegate-shell split). Single source of truth
5
+ * for all dashboard API routes. Each entry is an `EndpointDef` (or
6
+ * `SseEndpointDef` for SSE) instance with method, path, description, and typed
7
+ * request/response references.
8
+ *
9
+ * Sprint A1 — PREVENT-PI-004: zero network code (type definitions only).
10
+ * PREVENT-011: no `any` type — all types are explicit.
11
+ */
12
+ import type { EndpointDef } from "../core.js";
13
+ import type { SnapshotResponse } from "../snapshot.js";
14
+ import type { IndexesSummaryResponse } from "../multi-repo.js";
15
+ import type { GameStateResponse } from "../game.js";
16
+ import type { SseEvent } from "../index.js";
17
+ import type { ProviderCacheResponse } from "../provider-cache.js";
18
+ import type { RaptorTreeResponse } from "../raptor.js";
19
+ import type { MemoryStatusResponse } from "../memory.js";
20
+ import type { SetupStatusResponse, SetupDetectResponse, SetupConfigureRequest, SetupConfigureResponse } from "../setup.js";
21
+ import type { EmbedderHealthResponse } from "../embedder-health.js";
22
+ import type {
23
+ TurnsResponse,
24
+ ConversationTurnsResponse,
25
+ RewindIntentsResponse,
26
+ ForkRequest,
27
+ ForkResponse,
28
+ PostIntentRequest,
29
+ PruneRequest,
30
+ PruneTurnsResponse,
31
+ TopicMemoriesResponse,
32
+ } from "../turns.js";
33
+ import type {
34
+ DbStatsResponse,
35
+ MaintenanceActionResult,
36
+ MaintenanceAction,
37
+ SchemaHealthResponse,
38
+ } from "../maintenance.js";
39
+ import type { CacheStripesResponse } from "../cache-stripes.js";
40
+ import type {
41
+ GameScoreRow,
42
+ GameScoresQuery,
43
+ AchievementRow,
44
+ SessionsResponse,
45
+ SessionTimeseriesQuery,
46
+ SessionTimeseriesResponse,
47
+ GameStatePatch,
48
+ SseEndpointDef,
49
+ TopicsResponse,
50
+ } from "../game-types.js";
51
+ import type {
52
+ VersionResponse,
53
+ IndexFallbackResponse,
54
+ ReposQuery,
55
+ ReposResponse,
56
+ SummaryResponse,
57
+ DriftReportResponse,
58
+ ServersResponse,
59
+ PerfQuery,
60
+ PerfResponse,
61
+ } from "./types.js";
62
+
63
+ // ─── ENDPOINTS Registry ─────────────────────────────────────────────────────
64
+
65
+ /**
66
+ * Central registry of all 14 dashboard API endpoints. Each entry is an
67
+ * `EndpointDef` or `SseEndpointDef` instance serving as the single source of
68
+ * truth for route paths, methods, descriptions, and typed request/response
69
+ * contracts.
70
+ *
71
+ * Usage:
72
+ * import { ENDPOINTS } from './api-contracts';
73
+ * ENDPOINTS.snapshot.path // '/api/snapshot'
74
+ * ENDPOINTS.snapshot.method // 'GET'
75
+ */
76
+ export const ENDPOINTS = {
77
+ /** GET /api/snapshot — Full session, store, compression, and context snapshot. */
78
+ snapshot: {
79
+ method: "GET",
80
+ path: "/api/snapshot",
81
+ description: "Full session, store, compression, and context snapshot.",
82
+ } as const satisfies EndpointDef<"GET", undefined, SnapshotResponse>,
83
+
84
+ /** GET /api/version — Dashboard server version string. */
85
+ version: {
86
+ method: "GET",
87
+ path: "/api/version",
88
+ description: "Dashboard server version for stale-server detection.",
89
+ } as const satisfies EndpointDef<"GET", undefined, VersionResponse>,
90
+
91
+ /** GET /api/index — Multi-repo aggregate index (or fallback when unavailable). */
92
+ index: {
93
+ method: "GET",
94
+ path: "/api/index",
95
+ description:
96
+ "Machine-wide multi-repo registry with checkpoints, tokens, and model info.",
97
+ } as const satisfies EndpointDef<
98
+ "GET",
99
+ undefined,
100
+ IndexesSummaryResponse | IndexFallbackResponse
101
+ >,
102
+
103
+ /** GET /api/repos — Registry list with optional active-window filter. */
104
+ repos: {
105
+ method: "GET",
106
+ path: "/api/repos",
107
+ description: "Repo registry list, optionally filtered by recent activity.",
108
+ } as const satisfies EndpointDef<"GET", ReposQuery, ReposResponse>,
109
+
110
+ /** GET /api/summary — Lightweight header tiles without the full repo list. */
111
+ summary: {
112
+ method: "GET",
113
+ path: "/api/summary",
114
+ description:
115
+ "Aggregate summary with active/total repo counts (no repo list).",
116
+ } as const satisfies EndpointDef<"GET", undefined, SummaryResponse>,
117
+
118
+ /** GET /api/drift — Cross-repo drift report. */
119
+ drift: {
120
+ method: "GET",
121
+ path: "/api/drift",
122
+ description:
123
+ "Cross-repo drift report flagging stale repos, compaction lag, and model churn.",
124
+ } as const satisfies EndpointDef<"GET", undefined, DriftReportResponse>,
125
+
126
+ /** GET /api/servers — Recently-active repo servers with live snapshot data. */
127
+ servers: {
128
+ method: "GET",
129
+ path: "/api/servers",
130
+ description: "Recently-active repo servers with live snapshot data.",
131
+ } as const satisfies EndpointDef<"GET", undefined, ServersResponse>,
132
+
133
+ /** GET /api/events — SSE stream of dashboard events. */
134
+ events: {
135
+ type: "sse",
136
+ method: "GET",
137
+ path: "/api/events",
138
+ description: "Server-Sent Events stream of all dashboard events.",
139
+ event: "data",
140
+ } as const satisfies SseEndpointDef<SseEvent>,
141
+
142
+ /** GET /api/game-state — Current game-mode settings. */
143
+ getGameState: {
144
+ method: "GET",
145
+ path: "/api/game-state",
146
+ description: "Current game-mode configuration and active ritual state.",
147
+ } as const satisfies EndpointDef<"GET", undefined, GameStateResponse>,
148
+
149
+ /** PUT /api/game-state — Apply a partial patch to game-mode settings. */
150
+ putGameState: {
151
+ method: "PUT",
152
+ path: "/api/game-state",
153
+ description:
154
+ "Apply a partial patch to game-mode settings and return the updated state.",
155
+ } as const satisfies EndpointDef<"PUT", GameStatePatch, GameStateResponse>,
156
+
157
+ /** GET /api/game-scores — High-score leaderboard for a metric. */
158
+ gameScores: {
159
+ method: "GET",
160
+ path: "/api/game-scores",
161
+ description: "High-score leaderboard for a game metric.",
162
+ } as const satisfies EndpointDef<"GET", GameScoresQuery, GameScoreRow[]>,
163
+
164
+ /** GET /api/perf — Rolling-window performance aggregates. */
165
+ perf: {
166
+ method: "GET",
167
+ path: "/api/perf",
168
+ description: "Rolling-window performance aggregates over perf_samples.",
169
+ } as const satisfies EndpointDef<"GET", PerfQuery, PerfResponse>,
170
+
171
+ /** GET /api/achievements — Achievement tiles with unlock state. */
172
+ achievements: {
173
+ method: "GET",
174
+ path: "/api/achievements",
175
+ description: "All achievement rows with unlock state.",
176
+ } as const satisfies EndpointDef<"GET", undefined, AchievementRow[]>,
177
+
178
+ /** GET /api/sessions — Active sessions with latest token usage (S39). */
179
+ sessions: {
180
+ method: "GET",
181
+ path: "/api/sessions",
182
+ description: "Active pi sessions with latest token usage + heartbeat.",
183
+ } as const satisfies EndpointDef<"GET", undefined, SessionsResponse>,
184
+
185
+ /** GET /api/sessions/timeseries — Stacked per-session token timeseries (S39). */
186
+ sessionTimeseries: {
187
+ method: "GET",
188
+ path: "/api/sessions/timeseries",
189
+ description:
190
+ "Recharts-ready per-session token timeseries for the stacked memory graph.",
191
+ } as const satisfies EndpointDef<
192
+ "GET",
193
+ SessionTimeseriesQuery,
194
+ SessionTimeseriesResponse
195
+ >,
196
+
197
+ /** GET /api/topics — Auto-categorizing wiki topics (S51). */
198
+ topics: {
199
+ method: "GET",
200
+ path: "/api/topics",
201
+ description:
202
+ "Auto-categorized wiki topics from k-means + TF-IDF over real embeddings.",
203
+ } as const satisfies EndpointDef<"GET", undefined, TopicsResponse>,
204
+
205
+ /** GET /api/turns — Turn-by-turn memory tracking + recall (S52). */
206
+ turns: {
207
+ method: "GET",
208
+ path: "/api/turns",
209
+ description:
210
+ "Per-conversation turn list with recall + epoch provenance (turn-by-turn memory tracking).",
211
+ } as const satisfies EndpointDef<"GET", undefined, TurnsResponse>,
212
+
213
+ /** GET /api/turns/conversation/:convId — per-turn detail + recall hits. */
214
+ conversationTurns: {
215
+ method: "GET",
216
+ path: "/api/turns/conversation/:convId",
217
+ description:
218
+ "Per-turn metrics + injected-checkpoint recall provenance for one conversation.",
219
+ } as const satisfies EndpointDef<"GET", undefined, ConversationTurnsResponse>,
220
+
221
+ /** GET /api/turns/intents — pending rewind intents (S52A). */
222
+ turnIntents: {
223
+ method: "GET",
224
+ path: "/api/turns/intents",
225
+ description:
226
+ "Pending rewind intents queued by the dashboard for the host to consume.",
227
+ } as const satisfies EndpointDef<"GET", undefined, RewindIntentsResponse>,
228
+
229
+ /** POST /api/turns/intent — post a rewind intent. */
230
+ postTurnIntent: {
231
+ method: "POST",
232
+ path: "/api/turns/intent",
233
+ description:
234
+ "Queue a rewind-to-turn-N intent for the host to apply at before_agent_start.",
235
+ } as const satisfies EndpointDef<"POST", PostIntentRequest, unknown>,
236
+
237
+ /** POST /api/fork — fork a conversation at a turn. */
238
+ fork: {
239
+ method: "POST",
240
+ path: "/api/fork",
241
+ description:
242
+ "Branch a child conversation off a parent turn + return the recall set to rehydrate.",
243
+ } as const satisfies EndpointDef<"POST", ForkRequest, ForkResponse>,
244
+
245
+ /** POST /api/turns/prune — admin prune (capability-gated). */
246
+ pruneTurns: {
247
+ method: "POST",
248
+ path: "/api/turns/prune",
249
+ description:
250
+ "Prune old turns (admin capability — dashboard uses asAdmin()).",
251
+ } as const satisfies EndpointDef<"POST", PruneRequest, PruneTurnsResponse>,
252
+
253
+ /** GET /api/topics/:topicId/memories — wiki topic drill-down (S52). */
254
+ topicMemories: {
255
+ method: "GET",
256
+ path: "/api/topics/:topicId/memories",
257
+ description: "Member memories assigned to a wiki topic (drill-down).",
258
+ } as const satisfies EndpointDef<"GET", undefined, TopicMemoriesResponse>,
259
+
260
+ // ─── S49B Maintenance Tab ─────────────────────────────────────────
261
+
262
+ /** GET /api/maintenance — DB stats (table row counts + storage). */
263
+ maintenanceStats: {
264
+ method: "GET",
265
+ path: "/api/maintenance",
266
+ description: "SQLite table row counts, storage stats, and DB file sizes.",
267
+ } as const satisfies EndpointDef<"GET", undefined, DbStatsResponse>,
268
+
269
+ /** GET /api/maintenance/schema-health — Schema version + integrity audit. */
270
+ schemaHealth: {
271
+ method: "GET",
272
+ path: "/api/maintenance/schema-health",
273
+ description:
274
+ "SCHEMA_VERSION, PRAGMA integrity_check, FK check, and per-column audit.",
275
+ } as const satisfies EndpointDef<"GET", undefined, SchemaHealthResponse>,
276
+
277
+ /** POST /api/maintenance/action — Trigger a maintenance action. */
278
+ maintenanceAction: {
279
+ method: "POST",
280
+ path: "/api/maintenance/action",
281
+ description:
282
+ "Run vacuum, checkpoint, reindex, fts5-rebuild, reconcile-dedup, prune, or integrity-check.",
283
+ } as const satisfies EndpointDef<
284
+ "POST",
285
+ MaintenanceAction,
286
+ MaintenanceActionResult
287
+ >,
288
+
289
+ // ─── Provider Cache (Sprint A.2) ─────────────────────────────────
290
+
291
+ /** GET /api/provider-cache — Lifetime provider prompt cache aggregates + $ savings. */
292
+ providerCache: {
293
+ method: "GET",
294
+ path: "/api/provider-cache",
295
+ description:
296
+ "Lifetime provider prompt cache hit-rate aggregates + dollar savings estimate.",
297
+ } as const satisfies EndpointDef<"GET", undefined, ProviderCacheResponse>,
298
+
299
+
300
+ // ─── A3 Cache Stripes (PLAN_V2 Phase 4) ───────────────────────────
301
+
302
+ /** GET /api/cache-stripes — Per-stripe distribution + health score. */
303
+ cacheStripes: {
304
+ method: "GET",
305
+ path: "/api/cache-stripes",
306
+ description:
307
+ "Per-stripe distribution counts, average stability scores, and composite cache health.",
308
+ } as const satisfies EndpointDef<"GET", undefined, CacheStripesResponse>,
309
+ // ─── Memory Effectiveness (S53B) ───────────────────────────────────────
310
+
311
+ /** GET /api/memory-status — Memory store aggregate statistics. */
312
+ memoryStatus: {
313
+ method: "GET",
314
+ path: "/api/memory-status",
315
+ description:
316
+ "Memory store statistics: total count, 30-day window, top-N stable memories, avg recall score.",
317
+ } as const satisfies EndpointDef<"GET", undefined, MemoryStatusResponse>,
318
+
319
+ /** GET /api/setup-status — Current embedder configuration. */
320
+ setupStatus: {
321
+ method: "GET",
322
+ path: "/api/setup-status",
323
+ description:
324
+ "Current embedder configuration (which embedder is active, embedding URL, cache, MiniLM flag).",
325
+ } as const satisfies EndpointDef<"GET", undefined, SetupStatusResponse>,
326
+
327
+ /** GET /api/setup-detect — Detect available local embedder backends. */
328
+ setupDetect: {
329
+ method: "GET",
330
+ path: "/api/setup-detect",
331
+ description:
332
+ "Best-effort detection of local embedder backends (ollama, llama.cpp, ONNX) available on the machine.",
333
+ } as const satisfies EndpointDef<"GET", undefined, SetupDetectResponse>,
334
+
335
+ /** POST /api/setup-configure — Write embedder config to .mega-compact.env. */
336
+ setupConfigure: {
337
+ method: "POST",
338
+ path: "/api/setup-configure",
339
+ description:
340
+ "Write the chosen embedder configuration to .mega-compact.env (loaded at next startup). Returns whether a restart is required.",
341
+ } as const satisfies EndpointDef<"POST", SetupConfigureRequest, SetupConfigureResponse>,
342
+
343
+ // ─── RAPTOR tree (Part B) ───────────────────────────────────────
344
+
345
+ /** GET /api/raptor-tree — Hierarchical RAPTOR summary tree for a session. */
346
+ raptorTree: {
347
+ method: "GET",
348
+ path: "/api/raptor-tree",
349
+ description:
350
+ "Hierarchical RAPTOR tree (summary nodes by level) for a session; defaults to the latest session with nodes.",
351
+ } as const satisfies EndpointDef<"GET", undefined, RaptorTreeResponse>,
352
+
353
+ /** GET /api/embedder-health — Round-trip a test embed through the active embedder. */
354
+ embedderHealth: {
355
+ method: "GET",
356
+ path: "/api/embedder-health",
357
+ description:
358
+ "Probe the active embedder with a test embed and report status, latency, dimensions, and masked URL.",
359
+ } as const satisfies EndpointDef<"GET", undefined, EmbedderHealthResponse>,
360
+ } as const;