kairo-mcp 1.3.0

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 (384) hide show
  1. package/CHANGELOG.md +1122 -0
  2. package/LICENSE +21 -0
  3. package/README.md +662 -0
  4. package/dist/cli/cli.d.ts +3 -0
  5. package/dist/cli/cli.d.ts.map +1 -0
  6. package/dist/cli/cli.js +226 -0
  7. package/dist/cli/cli.js.map +1 -0
  8. package/dist/cli/commands.d.ts +10 -0
  9. package/dist/cli/commands.d.ts.map +1 -0
  10. package/dist/cli/commands.js +938 -0
  11. package/dist/cli/commands.js.map +1 -0
  12. package/dist/cli/flags.d.ts +30 -0
  13. package/dist/cli/flags.d.ts.map +1 -0
  14. package/dist/cli/flags.js +90 -0
  15. package/dist/cli/flags.js.map +1 -0
  16. package/dist/cli/output.d.ts +69 -0
  17. package/dist/cli/output.d.ts.map +1 -0
  18. package/dist/cli/output.js +166 -0
  19. package/dist/cli/output.js.map +1 -0
  20. package/dist/cli/types.d.ts +34 -0
  21. package/dist/cli/types.d.ts.map +1 -0
  22. package/dist/cli/types.js +2 -0
  23. package/dist/cli/types.js.map +1 -0
  24. package/dist/contracts/migrations.d.ts +31 -0
  25. package/dist/contracts/migrations.d.ts.map +1 -0
  26. package/dist/contracts/migrations.js +71 -0
  27. package/dist/contracts/migrations.js.map +1 -0
  28. package/dist/contracts/schemas.d.ts +53 -0
  29. package/dist/contracts/schemas.d.ts.map +1 -0
  30. package/dist/contracts/schemas.js +27 -0
  31. package/dist/contracts/schemas.js.map +1 -0
  32. package/dist/contracts/stability.d.ts +32 -0
  33. package/dist/contracts/stability.d.ts.map +1 -0
  34. package/dist/contracts/stability.js +140 -0
  35. package/dist/contracts/stability.js.map +1 -0
  36. package/dist/contracts/zodSchemas.d.ts +811 -0
  37. package/dist/contracts/zodSchemas.d.ts.map +1 -0
  38. package/dist/contracts/zodSchemas.js +139 -0
  39. package/dist/contracts/zodSchemas.js.map +1 -0
  40. package/dist/core/brief/budget.d.ts +21 -0
  41. package/dist/core/brief/budget.d.ts.map +1 -0
  42. package/dist/core/brief/budget.js +42 -0
  43. package/dist/core/brief/budget.js.map +1 -0
  44. package/dist/core/checkpoint/checkpointManager.d.ts +29 -0
  45. package/dist/core/checkpoint/checkpointManager.d.ts.map +1 -0
  46. package/dist/core/checkpoint/checkpointManager.js +49 -0
  47. package/dist/core/checkpoint/checkpointManager.js.map +1 -0
  48. package/dist/core/compaction/compactor.d.ts +40 -0
  49. package/dist/core/compaction/compactor.d.ts.map +1 -0
  50. package/dist/core/compaction/compactor.js +168 -0
  51. package/dist/core/compaction/compactor.js.map +1 -0
  52. package/dist/core/continuation/continuationBuilder.d.ts +19 -0
  53. package/dist/core/continuation/continuationBuilder.d.ts.map +1 -0
  54. package/dist/core/continuation/continuationBuilder.js +184 -0
  55. package/dist/core/continuation/continuationBuilder.js.map +1 -0
  56. package/dist/core/coordination/coordinationManager.d.ts +34 -0
  57. package/dist/core/coordination/coordinationManager.d.ts.map +1 -0
  58. package/dist/core/coordination/coordinationManager.js +253 -0
  59. package/dist/core/coordination/coordinationManager.js.map +1 -0
  60. package/dist/core/coordination/types.d.ts +52 -0
  61. package/dist/core/coordination/types.d.ts.map +1 -0
  62. package/dist/core/coordination/types.js +6 -0
  63. package/dist/core/coordination/types.js.map +1 -0
  64. package/dist/core/github/changelog.d.ts +9 -0
  65. package/dist/core/github/changelog.d.ts.map +1 -0
  66. package/dist/core/github/changelog.js +41 -0
  67. package/dist/core/github/changelog.js.map +1 -0
  68. package/dist/core/github/commitMessage.d.ts +4 -0
  69. package/dist/core/github/commitMessage.d.ts.map +1 -0
  70. package/dist/core/github/commitMessage.js +125 -0
  71. package/dist/core/github/commitMessage.js.map +1 -0
  72. package/dist/core/github/gitContext.d.ts +3 -0
  73. package/dist/core/github/gitContext.d.ts.map +1 -0
  74. package/dist/core/github/gitContext.js +67 -0
  75. package/dist/core/github/gitContext.js.map +1 -0
  76. package/dist/core/github/releasePlan.d.ts +8 -0
  77. package/dist/core/github/releasePlan.d.ts.map +1 -0
  78. package/dist/core/github/releasePlan.js +56 -0
  79. package/dist/core/github/releasePlan.js.map +1 -0
  80. package/dist/core/github/semver.d.ts +11 -0
  81. package/dist/core/github/semver.d.ts.map +1 -0
  82. package/dist/core/github/semver.js +23 -0
  83. package/dist/core/github/semver.js.map +1 -0
  84. package/dist/core/github/types.d.ts +36 -0
  85. package/dist/core/github/types.d.ts.map +1 -0
  86. package/dist/core/github/types.js +2 -0
  87. package/dist/core/github/types.js.map +1 -0
  88. package/dist/core/graph/derived.d.ts +6 -0
  89. package/dist/core/graph/derived.d.ts.map +1 -0
  90. package/dist/core/graph/derived.js +133 -0
  91. package/dist/core/graph/derived.js.map +1 -0
  92. package/dist/core/graph/graphEngine.d.ts +11 -0
  93. package/dist/core/graph/graphEngine.d.ts.map +1 -0
  94. package/dist/core/graph/graphEngine.js +28 -0
  95. package/dist/core/graph/graphEngine.js.map +1 -0
  96. package/dist/core/graph/imports.d.ts +19 -0
  97. package/dist/core/graph/imports.d.ts.map +1 -0
  98. package/dist/core/graph/imports.js +0 -0
  99. package/dist/core/graph/imports.js.map +1 -0
  100. package/dist/core/graph/mermaid.d.ts +6 -0
  101. package/dist/core/graph/mermaid.d.ts.map +1 -0
  102. package/dist/core/graph/mermaid.js +40 -0
  103. package/dist/core/graph/mermaid.js.map +1 -0
  104. package/dist/core/graph/moduleGraph.d.ts +27 -0
  105. package/dist/core/graph/moduleGraph.d.ts.map +1 -0
  106. package/dist/core/graph/moduleGraph.js +186 -0
  107. package/dist/core/graph/moduleGraph.js.map +1 -0
  108. package/dist/core/graph/types.d.ts +32 -0
  109. package/dist/core/graph/types.d.ts.map +1 -0
  110. package/dist/core/graph/types.js +2 -0
  111. package/dist/core/graph/types.js.map +1 -0
  112. package/dist/core/query/queryEngine.d.ts +26 -0
  113. package/dist/core/query/queryEngine.d.ts.map +1 -0
  114. package/dist/core/query/queryEngine.js +258 -0
  115. package/dist/core/query/queryEngine.js.map +1 -0
  116. package/dist/core/query/types.d.ts +70 -0
  117. package/dist/core/query/types.d.ts.map +1 -0
  118. package/dist/core/query/types.js +6 -0
  119. package/dist/core/query/types.js.map +1 -0
  120. package/dist/core/repo/fingerprint.d.ts +0 -0
  121. package/dist/core/repo/fingerprint.d.ts.map +1 -0
  122. package/dist/core/repo/fingerprint.js +17 -0
  123. package/dist/core/repo/fingerprint.js.map +1 -0
  124. package/dist/core/repo/frameworkDetectors.d.ts +14 -0
  125. package/dist/core/repo/frameworkDetectors.d.ts.map +1 -0
  126. package/dist/core/repo/frameworkDetectors.js +151 -0
  127. package/dist/core/repo/frameworkDetectors.js.map +1 -0
  128. package/dist/core/repo/repoScanner.d.ts +20 -0
  129. package/dist/core/repo/repoScanner.d.ts.map +1 -0
  130. package/dist/core/repo/repoScanner.js +290 -0
  131. package/dist/core/repo/repoScanner.js.map +1 -0
  132. package/dist/core/repo/summary.d.ts +7 -0
  133. package/dist/core/repo/summary.d.ts.map +1 -0
  134. package/dist/core/repo/summary.js +34 -0
  135. package/dist/core/repo/summary.js.map +1 -0
  136. package/dist/core/repo/types.d.ts +62 -0
  137. package/dist/core/repo/types.d.ts.map +1 -0
  138. package/dist/core/repo/types.js +10 -0
  139. package/dist/core/repo/types.js.map +1 -0
  140. package/dist/core/risk/guardrail.d.ts +3 -0
  141. package/dist/core/risk/guardrail.d.ts.map +1 -0
  142. package/dist/core/risk/guardrail.js +47 -0
  143. package/dist/core/risk/guardrail.js.map +1 -0
  144. package/dist/core/risk/riskEngine.d.ts +8 -0
  145. package/dist/core/risk/riskEngine.d.ts.map +1 -0
  146. package/dist/core/risk/riskEngine.js +112 -0
  147. package/dist/core/risk/riskEngine.js.map +1 -0
  148. package/dist/core/risk/riskHeuristics.d.ts +4 -0
  149. package/dist/core/risk/riskHeuristics.d.ts.map +1 -0
  150. package/dist/core/risk/riskHeuristics.js +36 -0
  151. package/dist/core/risk/riskHeuristics.js.map +1 -0
  152. package/dist/core/salience/config.d.ts +14 -0
  153. package/dist/core/salience/config.d.ts.map +1 -0
  154. package/dist/core/salience/config.js +87 -0
  155. package/dist/core/salience/config.js.map +1 -0
  156. package/dist/core/salience/salienceEngine.d.ts +16 -0
  157. package/dist/core/salience/salienceEngine.d.ts.map +1 -0
  158. package/dist/core/salience/salienceEngine.js +64 -0
  159. package/dist/core/salience/salienceEngine.js.map +1 -0
  160. package/dist/core/salience/signals.d.ts +4 -0
  161. package/dist/core/salience/signals.d.ts.map +1 -0
  162. package/dist/core/salience/signals.js +143 -0
  163. package/dist/core/salience/signals.js.map +1 -0
  164. package/dist/core/salience/types.d.ts +69 -0
  165. package/dist/core/salience/types.d.ts.map +1 -0
  166. package/dist/core/salience/types.js +7 -0
  167. package/dist/core/salience/types.js.map +1 -0
  168. package/dist/core/session/eventPayloads.d.ts +92 -0
  169. package/dist/core/session/eventPayloads.d.ts.map +1 -0
  170. package/dist/core/session/eventPayloads.js +2 -0
  171. package/dist/core/session/eventPayloads.js.map +1 -0
  172. package/dist/core/session/reducer.d.ts +14 -0
  173. package/dist/core/session/reducer.d.ts.map +1 -0
  174. package/dist/core/session/reducer.js +181 -0
  175. package/dist/core/session/reducer.js.map +1 -0
  176. package/dist/core/session/sessionManager.d.ts +252 -0
  177. package/dist/core/session/sessionManager.d.ts.map +1 -0
  178. package/dist/core/session/sessionManager.js +655 -0
  179. package/dist/core/session/sessionManager.js.map +1 -0
  180. package/dist/core/telemetry/analytics.d.ts +24 -0
  181. package/dist/core/telemetry/analytics.d.ts.map +1 -0
  182. package/dist/core/telemetry/analytics.js +167 -0
  183. package/dist/core/telemetry/analytics.js.map +1 -0
  184. package/dist/core/telemetry/exporter.d.ts +17 -0
  185. package/dist/core/telemetry/exporter.d.ts.map +1 -0
  186. package/dist/core/telemetry/exporter.js +31 -0
  187. package/dist/core/telemetry/exporter.js.map +1 -0
  188. package/dist/core/telemetry/recorder.d.ts +19 -0
  189. package/dist/core/telemetry/recorder.d.ts.map +1 -0
  190. package/dist/core/telemetry/recorder.js +43 -0
  191. package/dist/core/telemetry/recorder.js.map +1 -0
  192. package/dist/core/telemetry/reports.d.ts +6 -0
  193. package/dist/core/telemetry/reports.d.ts.map +1 -0
  194. package/dist/core/telemetry/reports.js +84 -0
  195. package/dist/core/telemetry/reports.js.map +1 -0
  196. package/dist/core/telemetry/types.d.ts +82 -0
  197. package/dist/core/telemetry/types.d.ts.map +1 -0
  198. package/dist/core/telemetry/types.js +9 -0
  199. package/dist/core/telemetry/types.js.map +1 -0
  200. package/dist/core/vector/chunking/memoryChunker.d.ts +10 -0
  201. package/dist/core/vector/chunking/memoryChunker.d.ts.map +1 -0
  202. package/dist/core/vector/chunking/memoryChunker.js +202 -0
  203. package/dist/core/vector/chunking/memoryChunker.js.map +1 -0
  204. package/dist/core/vector/compression/architectureDigest.d.ts +12 -0
  205. package/dist/core/vector/compression/architectureDigest.d.ts.map +1 -0
  206. package/dist/core/vector/compression/architectureDigest.js +37 -0
  207. package/dist/core/vector/compression/architectureDigest.js.map +1 -0
  208. package/dist/core/vector/embedding/deterministicEmbedder.d.ts +10 -0
  209. package/dist/core/vector/embedding/deterministicEmbedder.d.ts.map +1 -0
  210. package/dist/core/vector/embedding/deterministicEmbedder.js +84 -0
  211. package/dist/core/vector/embedding/deterministicEmbedder.js.map +1 -0
  212. package/dist/core/vector/memory/memoryEngine.d.ts +56 -0
  213. package/dist/core/vector/memory/memoryEngine.d.ts.map +1 -0
  214. package/dist/core/vector/memory/memoryEngine.js +204 -0
  215. package/dist/core/vector/memory/memoryEngine.js.map +1 -0
  216. package/dist/core/vector/memory/memoryFingerprint.d.ts +12 -0
  217. package/dist/core/vector/memory/memoryFingerprint.d.ts.map +1 -0
  218. package/dist/core/vector/memory/memoryFingerprint.js +33 -0
  219. package/dist/core/vector/memory/memoryFingerprint.js.map +1 -0
  220. package/dist/core/vector/providers/deterministicProvider.d.ts +14 -0
  221. package/dist/core/vector/providers/deterministicProvider.d.ts.map +1 -0
  222. package/dist/core/vector/providers/deterministicProvider.js +22 -0
  223. package/dist/core/vector/providers/deterministicProvider.js.map +1 -0
  224. package/dist/core/vector/providers/httpEmbeddingProvider.d.ts +32 -0
  225. package/dist/core/vector/providers/httpEmbeddingProvider.d.ts.map +1 -0
  226. package/dist/core/vector/providers/httpEmbeddingProvider.js +93 -0
  227. package/dist/core/vector/providers/httpEmbeddingProvider.js.map +1 -0
  228. package/dist/core/vector/providers/registry.d.ts +9 -0
  229. package/dist/core/vector/providers/registry.d.ts.map +1 -0
  230. package/dist/core/vector/providers/registry.js +79 -0
  231. package/dist/core/vector/providers/registry.js.map +1 -0
  232. package/dist/core/vector/providers/types.d.ts +23 -0
  233. package/dist/core/vector/providers/types.d.ts.map +1 -0
  234. package/dist/core/vector/providers/types.js +2 -0
  235. package/dist/core/vector/providers/types.js.map +1 -0
  236. package/dist/core/vector/retrieval/hybridRetriever.d.ts +37 -0
  237. package/dist/core/vector/retrieval/hybridRetriever.d.ts.map +1 -0
  238. package/dist/core/vector/retrieval/hybridRetriever.js +131 -0
  239. package/dist/core/vector/retrieval/hybridRetriever.js.map +1 -0
  240. package/dist/core/vector/types.d.ts +87 -0
  241. package/dist/core/vector/types.d.ts.map +1 -0
  242. package/dist/core/vector/types.js +6 -0
  243. package/dist/core/vector/types.js.map +1 -0
  244. package/dist/index.d.ts +3 -0
  245. package/dist/index.d.ts.map +1 -0
  246. package/dist/index.js +30 -0
  247. package/dist/index.js.map +1 -0
  248. package/dist/inspect/cli.d.ts +3 -0
  249. package/dist/inspect/cli.d.ts.map +1 -0
  250. package/dist/inspect/cli.js +40 -0
  251. package/dist/inspect/cli.js.map +1 -0
  252. package/dist/inspect/projections.d.ts +141 -0
  253. package/dist/inspect/projections.d.ts.map +1 -0
  254. package/dist/inspect/projections.js +311 -0
  255. package/dist/inspect/projections.js.map +1 -0
  256. package/dist/inspect/render.d.ts +27 -0
  257. package/dist/inspect/render.d.ts.map +1 -0
  258. package/dist/inspect/render.js +325 -0
  259. package/dist/inspect/render.js.map +1 -0
  260. package/dist/inspect/server.d.ts +18 -0
  261. package/dist/inspect/server.d.ts.map +1 -0
  262. package/dist/inspect/server.js +112 -0
  263. package/dist/inspect/server.js.map +1 -0
  264. package/dist/perf/index.d.ts +24 -0
  265. package/dist/perf/index.d.ts.map +1 -0
  266. package/dist/perf/index.js +38 -0
  267. package/dist/perf/index.js.map +1 -0
  268. package/dist/perf/report.d.ts +8 -0
  269. package/dist/perf/report.d.ts.map +1 -0
  270. package/dist/perf/report.js +52 -0
  271. package/dist/perf/report.js.map +1 -0
  272. package/dist/perf/runner.d.ts +29 -0
  273. package/dist/perf/runner.d.ts.map +1 -0
  274. package/dist/perf/runner.js +74 -0
  275. package/dist/perf/runner.js.map +1 -0
  276. package/dist/perf/scenarios.d.ts +8 -0
  277. package/dist/perf/scenarios.d.ts.map +1 -0
  278. package/dist/perf/scenarios.js +119 -0
  279. package/dist/perf/scenarios.js.map +1 -0
  280. package/dist/perf/types.d.ts +32 -0
  281. package/dist/perf/types.d.ts.map +1 -0
  282. package/dist/perf/types.js +6 -0
  283. package/dist/perf/types.js.map +1 -0
  284. package/dist/plugins/loader.d.ts +78 -0
  285. package/dist/plugins/loader.d.ts.map +1 -0
  286. package/dist/plugins/loader.js +193 -0
  287. package/dist/plugins/loader.js.map +1 -0
  288. package/dist/plugins/types.d.ts +38 -0
  289. package/dist/plugins/types.d.ts.map +1 -0
  290. package/dist/plugins/types.js +10 -0
  291. package/dist/plugins/types.js.map +1 -0
  292. package/dist/pressure/pressureModel.d.ts +6 -0
  293. package/dist/pressure/pressureModel.d.ts.map +1 -0
  294. package/dist/pressure/pressureModel.js +102 -0
  295. package/dist/pressure/pressureModel.js.map +1 -0
  296. package/dist/prompts/continuityPrompt.d.ts +7 -0
  297. package/dist/prompts/continuityPrompt.d.ts.map +1 -0
  298. package/dist/prompts/continuityPrompt.js +43 -0
  299. package/dist/prompts/continuityPrompt.js.map +1 -0
  300. package/dist/sdk/index.d.ts +53 -0
  301. package/dist/sdk/index.d.ts.map +1 -0
  302. package/dist/sdk/index.js +130 -0
  303. package/dist/sdk/index.js.map +1 -0
  304. package/dist/security/patterns.d.ts +16 -0
  305. package/dist/security/patterns.d.ts.map +1 -0
  306. package/dist/security/patterns.js +61 -0
  307. package/dist/security/patterns.js.map +1 -0
  308. package/dist/security/redactor.d.ts +20 -0
  309. package/dist/security/redactor.d.ts.map +1 -0
  310. package/dist/security/redactor.js +58 -0
  311. package/dist/security/redactor.js.map +1 -0
  312. package/dist/server/createServer.d.ts +10 -0
  313. package/dist/server/createServer.d.ts.map +1 -0
  314. package/dist/server/createServer.js +60 -0
  315. package/dist/server/createServer.js.map +1 -0
  316. package/dist/server/registerTools.d.ts +4 -0
  317. package/dist/server/registerTools.d.ts.map +1 -0
  318. package/dist/server/registerTools.js +1086 -0
  319. package/dist/server/registerTools.js.map +1 -0
  320. package/dist/server/responses.d.ts +17 -0
  321. package/dist/server/responses.d.ts.map +1 -0
  322. package/dist/server/responses.js +21 -0
  323. package/dist/server/responses.js.map +1 -0
  324. package/dist/snapshot/export.d.ts +26 -0
  325. package/dist/snapshot/export.d.ts.map +1 -0
  326. package/dist/snapshot/export.js +164 -0
  327. package/dist/snapshot/export.js.map +1 -0
  328. package/dist/snapshot/import.d.ts +34 -0
  329. package/dist/snapshot/import.d.ts.map +1 -0
  330. package/dist/snapshot/import.js +114 -0
  331. package/dist/snapshot/import.js.map +1 -0
  332. package/dist/snapshot/types.d.ts +63 -0
  333. package/dist/snapshot/types.d.ts.map +1 -0
  334. package/dist/snapshot/types.js +2 -0
  335. package/dist/snapshot/types.js.map +1 -0
  336. package/dist/storage/faultAdapter.d.ts +64 -0
  337. package/dist/storage/faultAdapter.d.ts.map +1 -0
  338. package/dist/storage/faultAdapter.js +134 -0
  339. package/dist/storage/faultAdapter.js.map +1 -0
  340. package/dist/storage/fileStorageAdapter.d.ts +55 -0
  341. package/dist/storage/fileStorageAdapter.d.ts.map +1 -0
  342. package/dist/storage/fileStorageAdapter.js +219 -0
  343. package/dist/storage/fileStorageAdapter.js.map +1 -0
  344. package/dist/storage/paths.d.ts +30 -0
  345. package/dist/storage/paths.d.ts.map +1 -0
  346. package/dist/storage/paths.js +32 -0
  347. package/dist/storage/paths.js.map +1 -0
  348. package/dist/storage/quarantine.d.ts +36 -0
  349. package/dist/storage/quarantine.d.ts.map +1 -0
  350. package/dist/storage/quarantine.js +26 -0
  351. package/dist/storage/quarantine.js.map +1 -0
  352. package/dist/storage/redactingAdapter.d.ts +13 -0
  353. package/dist/storage/redactingAdapter.d.ts.map +1 -0
  354. package/dist/storage/redactingAdapter.js +91 -0
  355. package/dist/storage/redactingAdapter.js.map +1 -0
  356. package/dist/storage/storageAdapter.d.ts +46 -0
  357. package/dist/storage/storageAdapter.d.ts.map +1 -0
  358. package/dist/storage/storageAdapter.js +2 -0
  359. package/dist/storage/storageAdapter.js.map +1 -0
  360. package/dist/types/domain.d.ts +139 -0
  361. package/dist/types/domain.d.ts.map +1 -0
  362. package/dist/types/domain.js +9 -0
  363. package/dist/types/domain.js.map +1 -0
  364. package/dist/types/events.d.ts +28 -0
  365. package/dist/types/events.d.ts.map +1 -0
  366. package/dist/types/events.js +7 -0
  367. package/dist/types/events.js.map +1 -0
  368. package/dist/utils/errors.d.ts +6 -0
  369. package/dist/utils/errors.d.ts.map +1 -0
  370. package/dist/utils/errors.js +10 -0
  371. package/dist/utils/errors.js.map +1 -0
  372. package/dist/utils/ids.d.ts +7 -0
  373. package/dist/utils/ids.d.ts.map +1 -0
  374. package/dist/utils/ids.js +22 -0
  375. package/dist/utils/ids.js.map +1 -0
  376. package/dist/utils/logger.d.ts +7 -0
  377. package/dist/utils/logger.d.ts.map +1 -0
  378. package/dist/utils/logger.js +26 -0
  379. package/dist/utils/logger.js.map +1 -0
  380. package/dist/utils/time.d.ts +8 -0
  381. package/dist/utils/time.d.ts.map +1 -0
  382. package/dist/utils/time.js +11 -0
  383. package/dist/utils/time.js.map +1 -0
  384. package/package.json +79 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projections.js","sourceRoot":"","sources":["../../src/inspect/projections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Pure HTML rendering for the local web inspector (v0.9.0, ADR-0011).
3
+ *
4
+ * Deterministic and side-effect-free: same inputs → byte-identical output.
5
+ * No CDN fetches, no remote fonts, no analytics. Plain semantic HTML +
6
+ * inline CSS so the page works offline and renders the same on any browser.
7
+ */
8
+ import type { CheckpointListEntry, CoordinationSnapshot, GraphSummary, InspectOverview, MemoryIndexSnapshot, RiskSnapshot, SessionListEntry } from './projections.js';
9
+ import type { Checkpoint, SessionState } from '../types/domain.js';
10
+ import type { ConflictEntry, LineageNode, RetrievalTrace, TimelineEntry, UnifiedEvent } from '../core/query/types.js';
11
+ export declare function esc(s: unknown): string;
12
+ export declare function page(title: string, activePath: string, bodyHtml: string): string;
13
+ export declare function renderOverview(o: InspectOverview): string;
14
+ export declare function renderSessions(rows: SessionListEntry[]): string;
15
+ export declare function renderSession(s: SessionState): string;
16
+ export declare function renderCheckpoints(rows: CheckpointListEntry[]): string;
17
+ export declare function renderCheckpoint(cp: Checkpoint, lineage: LineageNode[]): string;
18
+ export declare function renderTimeline(kind: string, rows: TimelineEntry[]): string;
19
+ export declare function renderGraphs(list: string[], current?: GraphSummary): string;
20
+ export declare function renderMemory(m: MemoryIndexSnapshot | undefined): string;
21
+ export declare function renderCoordination(s: CoordinationSnapshot): string;
22
+ export declare function renderConflicts(c: ConflictEntry[]): string;
23
+ export declare function renderRisk(r: RiskSnapshot): string;
24
+ export declare function renderEvents(rows: UnifiedEvent[]): string;
25
+ export declare function renderRetrieval(t: RetrievalTrace): string;
26
+ export declare function renderContinuation(name: string, md: string): string;
27
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/inspect/render.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,EACb,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAOtC;AA4CD,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoBhF;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAsCzD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAsB/D;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAqCrD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAsBrE;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAmC/E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,CAuB1E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,CAoB3E;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,mBAAmB,GAAG,SAAS,GAAG,MAAM,CA0BvE;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAkBlE;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,MAAM,CAS1D;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAoBlD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,CAkBzD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAUzD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAGnE"}
@@ -0,0 +1,325 @@
1
+ export function esc(s) {
2
+ return String(s)
3
+ .replace(/&/g, '&')
4
+ .replace(/</g, '&lt;')
5
+ .replace(/>/g, '&gt;')
6
+ .replace(/"/g, '&quot;')
7
+ .replace(/'/g, '&#39;');
8
+ }
9
+ const CSS = `
10
+ :root { color-scheme: light dark; }
11
+ body { font: 14px/1.45 ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
12
+ margin: 0; padding: 0; background: Canvas; color: CanvasText; }
13
+ header { padding: 14px 22px; border-bottom: 1px solid #8884; }
14
+ header h1 { font-size: 16px; margin: 0; font-weight: 600; }
15
+ header .sub { font-size: 12px; opacity: .7; margin-top: 2px; }
16
+ nav { padding: 8px 22px; border-bottom: 1px solid #8884; }
17
+ nav a { display: inline-block; margin-right: 14px; text-decoration: none; color: inherit;
18
+ opacity: .75; font-size: 13px; }
19
+ nav a:hover, nav a.active { opacity: 1; text-decoration: underline; }
20
+ main { padding: 18px 22px 60px 22px; max-width: 1100px; }
21
+ h2 { font-size: 14px; font-weight: 600; margin: 24px 0 8px; }
22
+ table { border-collapse: collapse; width: 100%; font-size: 13px; }
23
+ th, td { text-align: left; padding: 6px 10px; border-bottom: 1px solid #8883; vertical-align: top; }
24
+ th { font-weight: 600; opacity: .75; }
25
+ code, pre { font: 12px/1.45 ui-monospace, SFMono-Regular, Menlo, monospace; }
26
+ pre { background: #8881; padding: 12px; border-radius: 6px; overflow: auto; }
27
+ .pill { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11px;
28
+ background: #8882; }
29
+ .pill.high { background: #c2410c33; color: #c2410c; }
30
+ .pill.medium { background: #b4530933; color: #b45309; }
31
+ .pill.low { background: #16653433; color: #166534; }
32
+ .kv { display: grid; grid-template-columns: 180px 1fr; gap: 4px 14px; font-size: 13px; }
33
+ .kv dt { opacity: .65; }
34
+ .kv dd { margin: 0; }
35
+ .empty { opacity: .6; font-style: italic; }
36
+ footer { padding: 10px 22px; font-size: 11px; opacity: .55; border-top: 1px solid #8884; }
37
+ `;
38
+ const NAV = [
39
+ ['/', 'Overview'],
40
+ ['/sessions', 'Sessions'],
41
+ ['/checkpoints', 'Checkpoints'],
42
+ ['/timeline', 'Timeline'],
43
+ ['/graphs', 'Graphs'],
44
+ ['/memory', 'Memory'],
45
+ ['/coordination', 'Coordination'],
46
+ ['/risk', 'Risk'],
47
+ ['/events', 'Events'],
48
+ ];
49
+ export function page(title, activePath, bodyHtml) {
50
+ const nav = NAV.map(([p, label]) => `<a href="${esc(p)}" class="${p === activePath ? 'active' : ''}">${esc(label)}</a>`).join('');
51
+ return `<!doctype html>
52
+ <html lang="en"><head>
53
+ <meta charset="utf-8"/>
54
+ <title>${esc(title)} — Kairo Inspect</title>
55
+ <meta name="viewport" content="width=device-width,initial-scale=1"/>
56
+ <style>${CSS}</style>
57
+ </head><body>
58
+ <header>
59
+ <h1>Kairo Inspect</h1>
60
+ <div class="sub">Read-only local projection of <code>.kairo/</code> · ADR-0011 · no network</div>
61
+ </header>
62
+ <nav>${nav}</nav>
63
+ <main>${bodyHtml}</main>
64
+ <footer>Source of truth lives in <code>.kairo/</code>. This UI never writes.</footer>
65
+ </body></html>`;
66
+ }
67
+ export function renderOverview(o) {
68
+ if (!o.hasKairo) {
69
+ return `<p class="empty">No <code>.kairo/</code> directory at <code>${esc(o.projectRoot)}</code>. Start an MCP session first.</p>`;
70
+ }
71
+ const intel = o.intelligence;
72
+ return `
73
+ <h2>Project</h2>
74
+ <dl class="kv">
75
+ <dt>Root</dt><dd><code>${esc(o.projectRoot)}</code></dd>
76
+ <dt>Events</dt><dd>${o.eventCount}</dd>
77
+ <dt>Telemetry</dt><dd>${o.telemetryCount}</dd>
78
+ <dt>Sessions</dt><dd>${o.sessionCount}</dd>
79
+ <dt>Checkpoints</dt><dd>${o.checkpointCount}</dd>
80
+ <dt>Quarantine</dt><dd>${o.quarantineCount === 0
81
+ ? '<span class="pill low">0</span>'
82
+ : `<span class="pill high">${o.quarantineCount}</span> see <code>.kairo/quarantine/</code>`}</dd>
83
+ <dt>Latest session</dt><dd>${o.latestSessionId ? `<code>${esc(o.latestSessionId)}</code>` : '<span class="empty">none</span>'}</dd>
84
+ <dt>Latest checkpoint</dt><dd>${o.latestCheckpointId
85
+ ? `<a href="/checkpoints/${esc(o.latestCheckpointId)}"><code>${esc(o.latestCheckpointId)}</code></a>`
86
+ : '<span class="empty">none</span>'}</dd>
87
+ </dl>
88
+ ${intel
89
+ ? `<h2>Repository intelligence</h2>
90
+ <dl class="kv">
91
+ <dt>Schema</dt><dd>v${intel.schema}</dd>
92
+ <dt>Files indexed</dt><dd>${intel.files}${intel.truncated ? ' <span class="pill">truncated</span>' : ''}</dd>
93
+ <dt>Frameworks</dt><dd>${intel.frameworks.map((f) => `<code>${esc(f)}</code>`).join(', ') || '<span class="empty">none</span>'}</dd>
94
+ <dt>Languages</dt><dd>${intel.languages.map((l) => `<code>${esc(l)}</code>`).join(', ') || '<span class="empty">none</span>'}</dd>
95
+ </dl>`
96
+ : ''}`;
97
+ }
98
+ export function renderSessions(rows) {
99
+ if (rows.length === 0)
100
+ return `<p class="empty">No sessions recorded.</p>`;
101
+ return `<h2>Sessions (${rows.length})</h2>
102
+ <table><thead><tr>
103
+ <th>Started</th><th>Id</th><th>Agent</th><th>Status</th><th>Task</th>
104
+ <th>Files</th><th>Decisions</th><th>Errors</th>
105
+ </tr></thead><tbody>
106
+ ${rows
107
+ .slice()
108
+ .reverse()
109
+ .map((r) => `<tr>
110
+ <td>${esc(r.startedAt)}</td>
111
+ <td><a href="/sessions/${esc(r.id)}"><code>${esc(r.id)}</code></a></td>
112
+ <td>${esc(r.agent)}</td>
113
+ <td><span class="pill">${esc(r.status)}</span></td>
114
+ <td>${esc(r.task)}</td>
115
+ <td>${r.changedFiles}</td><td>${r.decisions}</td><td>${r.errors}</td>
116
+ </tr>`)
117
+ .join('')}
118
+ </tbody></table>`;
119
+ }
120
+ export function renderSession(s) {
121
+ const files = Object.values(s.changedFiles);
122
+ return `<h2>Session <code>${esc(s.id)}</code></h2>
123
+ <dl class="kv">
124
+ <dt>Agent</dt><dd>${esc(s.agent)}</dd>
125
+ <dt>Task</dt><dd>${esc(s.task)}</dd>
126
+ <dt>Status</dt><dd><span class="pill">${esc(s.status)}</span></dd>
127
+ <dt>Started</dt><dd>${esc(s.startedAt)}</dd>
128
+ <dt>Last activity</dt><dd>${esc(s.lastActivityAt)}</dd>
129
+ <dt>Heartbeats / tools</dt><dd>${s.heartbeats} / ${s.toolCalls}</dd>
130
+ <dt>Compactions / clarifs</dt><dd>${s.compactions} / ${s.clarificationLoops}</dd>
131
+ </dl>
132
+ <h2>Changed files (${files.length})</h2>
133
+ ${files.length === 0
134
+ ? '<p class="empty">None.</p>'
135
+ : `<table><thead><tr><th>Path</th><th>Change</th><th>Touches</th></tr></thead><tbody>
136
+ ${files
137
+ .map((f) => `<tr><td><code>${esc(f.path)}</code></td><td>${esc(f.changeKind)}</td><td>${f.touches}</td></tr>`)
138
+ .join('')}
139
+ </tbody></table>`}
140
+ <h2>Decisions (${s.decisions.length})</h2>
141
+ ${s.decisions.length === 0
142
+ ? '<p class="empty">None.</p>'
143
+ : `<ul>${s.decisions.map((d) => `<li><strong>${esc(d.summary)}</strong>${d.rationale ? ` — ${esc(d.rationale)}` : ''}</li>`).join('')}</ul>`}
144
+ <h2>Errors (${s.errors.length})</h2>
145
+ ${s.errors.length === 0
146
+ ? '<p class="empty">None.</p>'
147
+ : `<ul>${s.errors.map((e) => `<li>${esc(e.message)}${e.resolved ? ' <span class="pill low">resolved</span>' : ' <span class="pill high">open</span>'}</li>`).join('')}</ul>`}`;
148
+ }
149
+ export function renderCheckpoints(rows) {
150
+ if (rows.length === 0)
151
+ return `<p class="empty">No checkpoints recorded.</p>`;
152
+ return `<h2>Checkpoints (${rows.length})</h2>
153
+ <table><thead><tr>
154
+ <th>Created</th><th>Id</th><th>Reason</th><th>Risk</th><th>Task</th><th>Files</th><th>Brief</th>
155
+ </tr></thead><tbody>
156
+ ${rows
157
+ .slice()
158
+ .reverse()
159
+ .map((r) => `<tr>
160
+ <td>${esc(r.createdAt)}</td>
161
+ <td><a href="/checkpoints/${esc(r.id)}"><code>${esc(r.id)}</code></a></td>
162
+ <td>${esc(r.reason)}</td>
163
+ <td><span class="pill ${esc(r.riskLevel)}">${esc(r.riskLevel)} (${r.riskScore.toFixed(2)})</span></td>
164
+ <td>${esc(r.task)}</td>
165
+ <td>${r.changedFiles}</td>
166
+ <td><a href="/continuations/${esc(r.continuationRef)}">brief</a></td>
167
+ </tr>`)
168
+ .join('')}
169
+ </tbody></table>`;
170
+ }
171
+ export function renderCheckpoint(cp, lineage) {
172
+ return `<h2>Checkpoint <code>${esc(cp.id)}</code></h2>
173
+ <dl class="kv">
174
+ <dt>Session</dt><dd><a href="/sessions/${esc(cp.sessionId)}"><code>${esc(cp.sessionId)}</code></a></dd>
175
+ <dt>Agent</dt><dd>${esc(cp.agent)}</dd>
176
+ <dt>Created</dt><dd>${esc(cp.createdAt)}</dd>
177
+ <dt>Reason</dt><dd>${esc(cp.reason)}</dd>
178
+ <dt>Task</dt><dd>${esc(cp.task)}</dd>
179
+ <dt>Risk</dt><dd><span class="pill ${esc(cp.risk.level)}">${esc(cp.risk.level)} (${cp.risk.score.toFixed(2)})</span></dd>
180
+ <dt>Pressure</dt><dd>${cp.pressure.score} → ${esc(cp.pressure.directive)}</dd>
181
+ <dt>Brief</dt><dd><a href="/continuations/${esc(cp.continuationRef)}">${esc(cp.continuationRef)}</a></dd>
182
+ </dl>
183
+ <h2>Lineage (${lineage.length})</h2>
184
+ ${lineage.length === 0
185
+ ? '<p class="empty">Root checkpoint.</p>'
186
+ : `<ol>${lineage
187
+ .map((n) => `<li><code>${esc(n.id)}</code> · ${esc(n.workerId)} · <span class="pill ${esc(n.riskLevel)}">${esc(n.riskLevel)}</span> · ${esc(n.task)}</li>`)
188
+ .join('')}</ol>`}
189
+ <h2>Risk factors</h2>
190
+ ${cp.risk.factors.length === 0
191
+ ? '<p class="empty">None.</p>'
192
+ : `<ul>${cp.risk.factors.map((f) => `<li><span class="pill ${esc(f.level)}">${esc(f.level)}</span> ${esc(f.detail)}</li>`).join('')}</ul>`}
193
+ <h2>Remaining work</h2>
194
+ ${cp.remainingWork.length === 0
195
+ ? '<p class="empty">None recorded.</p>'
196
+ : `<ul>${cp.remainingWork.map((w) => `<li>${esc(w)}</li>`).join('')}</ul>`}`;
197
+ }
198
+ export function renderTimeline(kind, rows) {
199
+ const kinds = [
200
+ ['sessions', 'Sessions'],
201
+ ['checkpoints', 'Checkpoints'],
202
+ ['lease-conflicts', 'Lease conflicts'],
203
+ ['retrievals', 'Retrievals'],
204
+ ['memory-refresh', 'Memory refresh'],
205
+ ];
206
+ const tabs = kinds
207
+ .map(([k, l]) => `<a href="/timeline?kind=${esc(k)}" class="${k === kind ? 'active' : ''}">${esc(l)}</a>`)
208
+ .join(' · ');
209
+ return `<h2>Timeline — ${esc(kind)}</h2>
210
+ <p>${tabs}</p>
211
+ ${rows.length === 0
212
+ ? '<p class="empty">No entries.</p>'
213
+ : `<table><thead><tr><th>Time</th><th>Session</th><th>Worker</th><th>Summary</th></tr></thead><tbody>
214
+ ${rows.map((r) => `<tr><td>${esc(r.ts)}</td><td><code>${esc(r.sessionId)}</code></td><td>${esc(r.worker ?? '')}</td><td>${esc(r.summary)}</td></tr>`).join('')}
215
+ </tbody></table>`}`;
216
+ }
217
+ export function renderGraphs(list, current) {
218
+ const tabs = list
219
+ .map((k) => `<a href="/graphs/${esc(k)}" class="${current?.kind === k ? 'active' : ''}">${esc(k)}</a>`)
220
+ .join(' · ');
221
+ if (!current) {
222
+ return `<h2>Graphs</h2><p>${tabs || '<span class="empty">No graphs yet.</span>'}</p>`;
223
+ }
224
+ return `<h2>Graph — ${esc(current.kind)}</h2>
225
+ <p>${tabs}</p>
226
+ <dl class="kv">
227
+ <dt>Nodes</dt><dd>${current.nodes}</dd>
228
+ <dt>Edges</dt><dd>${current.edges}</dd>
229
+ <dt>Mirror</dt><dd><code>${esc(current.mirrorPath)}</code></dd>
230
+ </dl>
231
+ <h2>Mermaid source</h2>
232
+ <pre>${esc(current.mermaid)}</pre>
233
+ <p style="opacity:.6;font-size:12px">Paste into VS Code / GitHub / any Mermaid renderer. The inspector intentionally vendors no JS to stay offline-safe.</p>`;
234
+ }
235
+ export function renderMemory(m) {
236
+ if (!m)
237
+ return `<p class="empty">Memory not indexed yet.</p>`;
238
+ const kinds = Object.entries(m.byKind).sort();
239
+ return `<h2>Vector memory</h2>
240
+ <dl class="kv">
241
+ <dt>Embedder</dt><dd><code>${esc(m.embedder)}</code></dd>
242
+ <dt>Fingerprint</dt><dd><code>${esc(m.fingerprint)}</code></dd>
243
+ <dt>Chunks</dt><dd>${m.chunkCount}</dd>
244
+ </dl>
245
+ <h2>By kind</h2>
246
+ <table><thead><tr><th>Kind</th><th>Count</th></tr></thead><tbody>
247
+ ${kinds.map(([k, n]) => `<tr><td><code>${esc(k)}</code></td><td>${n}</td></tr>`).join('')}
248
+ </tbody></table>
249
+ <h2>Top chunks (salience-ordered)</h2>
250
+ ${m.topChunks.length === 0
251
+ ? '<p class="empty">None.</p>'
252
+ : `<table><thead><tr><th>Salience</th><th>Kind</th><th>Locator</th></tr></thead><tbody>
253
+ ${m.topChunks
254
+ .map((c) => `<tr><td>${c.salience.toFixed(3)}</td><td><code>${esc(c.kind)}</code></td><td><code>${esc(c.locator)}</code></td></tr>`)
255
+ .join('')}
256
+ </tbody></table>`}`;
257
+ }
258
+ export function renderCoordination(s) {
259
+ return `<h2>Workers (${s.knownWorkers.length})</h2>
260
+ ${s.knownWorkers.length === 0
261
+ ? '<p class="empty">None registered.</p>'
262
+ : `<table><thead><tr><th>Worker</th><th>Namespace</th><th>Agent</th><th>Last seen</th></tr></thead><tbody>
263
+ ${s.knownWorkers.map((w) => `<tr><td><code>${esc(w.workerId)}</code></td><td><code>${esc(w.namespace)}</code></td><td>${esc(w.agent)}</td><td>${esc(w.lastSeen)}</td></tr>`).join('')}
264
+ </tbody></table>`}
265
+ <h2>Active leases (${s.activeLeases.length})</h2>
266
+ ${s.activeLeases.length === 0
267
+ ? '<p class="empty">None.</p>'
268
+ : `<table><thead><tr><th>Scope</th><th>Holder</th><th>Acquired</th><th>Expires</th></tr></thead><tbody>
269
+ ${s.activeLeases.map((l) => `<tr><td><code>${esc(l.scopeKind)}:${esc(l.scope)}</code></td><td>${esc(l.holder)}</td><td>${esc(l.acquiredAt)}</td><td>${esc(l.expiresAt)}</td></tr>`).join('')}
270
+ </tbody></table>`}
271
+ ${renderConflicts(s.conflicts)}`;
272
+ }
273
+ export function renderConflicts(c) {
274
+ return `<h2>Lease conflicts (${c.length})</h2>
275
+ ${c.length === 0
276
+ ? '<p class="empty">No denied leases on record.</p>'
277
+ : `<table><thead><tr><th>Denied</th><th>Scope</th><th>Denied worker</th><th>Held by</th><th>Granted at</th></tr></thead><tbody>
278
+ ${c.map((x) => `<tr><td>${esc(x.deniedAt)}</td><td><code>${esc(x.scopeKind)}:${esc(x.scope)}</code></td><td>${esc(x.deniedWorker)}</td><td>${esc(x.holder)}</td><td>${esc(x.holderGrantedAt ?? '')}</td></tr>`).join('')}
279
+ </tbody></table>`}`;
280
+ }
281
+ export function renderRisk(r) {
282
+ return `<h2>Risk by checkpoint</h2>
283
+ <p>
284
+ <span class="pill low">low ${r.byLevel.low}</span>
285
+ <span class="pill medium">medium ${r.byLevel.medium}</span>
286
+ <span class="pill high">high ${r.byLevel.high}</span>
287
+ </p>
288
+ <h2>Escalations (${r.escalations.length})</h2>
289
+ ${r.escalations.length === 0
290
+ ? '<p class="empty">No medium/high checkpoints.</p>'
291
+ : `<table><thead><tr><th>Created</th><th>Checkpoint</th><th>Level</th><th>Task</th></tr></thead><tbody>
292
+ ${r.escalations
293
+ .map((e) => `<tr><td>${esc(e.createdAt)}</td><td><a href="/checkpoints/${esc(e.checkpointId)}"><code>${esc(e.checkpointId)}</code></a></td><td><span class="pill ${esc(e.level)}">${esc(e.level)} (${e.score.toFixed(2)})</span></td><td>${esc(e.task)}</td></tr>`)
294
+ .join('')}
295
+ </tbody></table>`}`;
296
+ }
297
+ export function renderEvents(rows) {
298
+ return `<h2>Events (${rows.length})</h2>
299
+ <p style="opacity:.65;font-size:12px">Most-recent first. Use the MCP <code>kairo_query_events</code> tool for filtering — this view is read-only and unfiltered.</p>
300
+ ${rows.length === 0
301
+ ? '<p class="empty">No events.</p>'
302
+ : `<table><thead><tr><th>Time</th><th>Source</th><th>Kind</th><th>Session</th><th>Worker</th></tr></thead><tbody>
303
+ ${rows
304
+ .slice()
305
+ .reverse()
306
+ .slice(0, 500)
307
+ .map((e) => `<tr><td>${esc(e.ts)}</td><td>${esc(e.source)}</td><td><code>${esc(e.kind)}</code></td><td><code>${esc(e.sessionId)}</code></td><td>${esc(e.worker ?? '')}</td></tr>`)
308
+ .join('')}
309
+ </tbody></table>`}`;
310
+ }
311
+ export function renderRetrieval(t) {
312
+ const row = (label, e) => `<dt>${esc(label)}</dt><dd>${e ? `<code>${esc(e.kind)}</code> · ${esc(e.ts)} · <code>${esc(e.sessionId)}</code>` : '<span class="empty">none</span>'}</dd>`;
313
+ return `<h2>Retrieval trace</h2>
314
+ <dl class="kv">
315
+ ${row('Retrieval', t.retrieval)}
316
+ ${row('Preceding session start', t.precedingSessionStart)}
317
+ ${row('Latest memory refresh', t.latestMemoryRefresh)}
318
+ ${row('Latest checkpoint before', t.latestCheckpointBefore)}
319
+ </dl>`;
320
+ }
321
+ export function renderContinuation(name, md) {
322
+ return `<h2>Continuation brief — <code>${esc(name)}</code></h2>
323
+ <pre>${esc(md)}</pre>`;
324
+ }
325
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/inspect/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Local web inspector (v0.9.0, ADR-0011). Loopback-only by default. No
3
+ * network egress, no remote assets, no analytics. Read-only over `.kairo/`.
4
+ */
5
+ export interface InspectServerOptions {
6
+ projectRoot?: string;
7
+ /** Defaults to 127.0.0.1 — loopback only. */
8
+ host?: string;
9
+ /** 0 picks a free port (used by tests). */
10
+ port?: number;
11
+ }
12
+ export interface InspectServerHandle {
13
+ url: string;
14
+ port: number;
15
+ close: () => Promise<void>;
16
+ }
17
+ export declare function startInspectServer(opts?: InspectServerOptions): Promise<InspectServerHandle>;
18
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/inspect/server.ts"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,kBAAkB,CACtC,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CAiC9B"}
@@ -0,0 +1,112 @@
1
+ import { createServer as createHttp } from 'node:http';
2
+ import { InspectProjection } from './projections.js';
3
+ import { page, renderCheckpoint, renderCheckpoints, renderContinuation, renderCoordination, renderEvents, renderGraphs, renderMemory, renderOverview, renderRetrieval, renderRisk, renderSession, renderSessions, renderTimeline, } from './render.js';
4
+ export async function startInspectServer(opts = {}) {
5
+ const projection = new InspectProjection(opts.projectRoot);
6
+ const host = opts.host ?? '127.0.0.1';
7
+ const desiredPort = opts.port ?? 4173;
8
+ const server = createHttp((req, res) => {
9
+ void handle(req, res, projection).catch((err) => {
10
+ const msg = err instanceof Error ? err.message : String(err);
11
+ res.statusCode = 500;
12
+ res.setHeader('Content-Type', 'text/plain; charset=utf-8');
13
+ res.end(`Inspector error: ${msg}`);
14
+ });
15
+ });
16
+ await new Promise((resolve, reject) => {
17
+ server.once('error', reject);
18
+ server.listen(desiredPort, host, () => {
19
+ server.off('error', reject);
20
+ resolve();
21
+ });
22
+ });
23
+ const addr = server.address();
24
+ const port = addr.port;
25
+ const url = `http://${host}:${port}`;
26
+ return {
27
+ url,
28
+ port,
29
+ close: () => new Promise((resolve, reject) => {
30
+ server.close((err) => (err ? reject(err) : resolve()));
31
+ }),
32
+ };
33
+ }
34
+ async function handle(req, res, p) {
35
+ const url = new URL(req.url ?? '/', 'http://x');
36
+ const path = url.pathname;
37
+ const send = (status, html) => {
38
+ res.statusCode = status;
39
+ res.setHeader('Content-Type', 'text/html; charset=utf-8');
40
+ // CSP hardening: this UI vendors no JS/CSS from anywhere external.
41
+ res.setHeader('Content-Security-Policy', "default-src 'none'; style-src 'unsafe-inline'; img-src data:; base-uri 'none'; form-action 'none'");
42
+ res.setHeader('X-Content-Type-Options', 'nosniff');
43
+ res.setHeader('Referrer-Policy', 'no-referrer');
44
+ res.end(html);
45
+ };
46
+ if (path === '/') {
47
+ const o = await p.overview();
48
+ return send(200, page('Overview', '/', renderOverview(o)));
49
+ }
50
+ if (path === '/sessions') {
51
+ return send(200, page('Sessions', '/sessions', renderSessions(await p.listSessions())));
52
+ }
53
+ if (path.startsWith('/sessions/')) {
54
+ const id = decodeURIComponent(path.slice('/sessions/'.length));
55
+ const s = await p.getSession(id);
56
+ if (!s)
57
+ return send(404, page('Session', '/sessions', `<p class="empty">Not found.</p>`));
58
+ return send(200, page(`Session ${id}`, '/sessions', renderSession(s)));
59
+ }
60
+ if (path === '/checkpoints') {
61
+ return send(200, page('Checkpoints', '/checkpoints', renderCheckpoints(await p.listCheckpoints())));
62
+ }
63
+ if (path.startsWith('/checkpoints/')) {
64
+ const id = decodeURIComponent(path.slice('/checkpoints/'.length));
65
+ const cp = await p.getCheckpoint(id);
66
+ if (!cp)
67
+ return send(404, page('Checkpoint', '/checkpoints', `<p class="empty">Not found.</p>`));
68
+ const lineage = await p.lineage(id);
69
+ return send(200, page(`Checkpoint ${id}`, '/checkpoints', renderCheckpoint(cp, lineage)));
70
+ }
71
+ if (path.startsWith('/continuations/')) {
72
+ const name = decodeURIComponent(path.slice('/continuations/'.length));
73
+ const md = await p.readContinuation(name);
74
+ if (md === undefined)
75
+ return send(404, page('Brief', '/checkpoints', `<p class="empty">Not found.</p>`));
76
+ return send(200, page(`Brief ${name}`, '/checkpoints', renderContinuation(name, md)));
77
+ }
78
+ if (path === '/timeline') {
79
+ const kind = (url.searchParams.get('kind') ?? 'checkpoints');
80
+ return send(200, page('Timeline', '/timeline', renderTimeline(kind, await p.timeline(kind))));
81
+ }
82
+ if (path === '/graphs') {
83
+ return send(200, page('Graphs', '/graphs', renderGraphs(await p.listGraphs())));
84
+ }
85
+ if (path.startsWith('/graphs/')) {
86
+ const kind = decodeURIComponent(path.slice('/graphs/'.length));
87
+ const g = await p.readGraph(kind);
88
+ const list = await p.listGraphs();
89
+ return send(200, page(`Graph ${kind}`, '/graphs', renderGraphs(list, g)));
90
+ }
91
+ if (path === '/memory') {
92
+ return send(200, page('Memory', '/memory', renderMemory(await p.memoryIndex())));
93
+ }
94
+ if (path === '/coordination') {
95
+ return send(200, page('Coordination', '/coordination', renderCoordination(await p.coordination())));
96
+ }
97
+ if (path === '/risk') {
98
+ return send(200, page('Risk', '/risk', renderRisk(await p.risk())));
99
+ }
100
+ if (path === '/events') {
101
+ return send(200, page('Events', '/events', renderEvents(await p.events({ limit: 0 }))));
102
+ }
103
+ if (path.startsWith('/retrieval/')) {
104
+ const id = decodeURIComponent(path.slice('/retrieval/'.length));
105
+ const trace = await p.retrieval(id);
106
+ if (!trace)
107
+ return send(404, page('Retrieval', '/events', `<p class="empty">Not found.</p>`));
108
+ return send(200, page(`Retrieval ${id}`, '/events', renderRetrieval(trace)));
109
+ }
110
+ send(404, page('Not found', path, `<p class="empty">No route for <code>${path}</code>.</p>`));
111
+ }
112
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/inspect/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { SessionManager } from '../core/session/sessionManager.js';
2
+ import { type RunOptions, type ScenarioSpec } from './runner.js';
3
+ import type { BenchmarkReport } from './types.js';
4
+ export interface RunBenchmarkOptions extends RunOptions {
5
+ /** Override the scenario list (advanced). */
6
+ scenarios?: ScenarioSpec[];
7
+ /** ISO timestamp used in the report header. Pinnable for tests. */
8
+ now?: () => Date;
9
+ /** Override the report path. Defaults to `.kairo/reports/PERFORMANCE.md`. */
10
+ reportPath?: string;
11
+ }
12
+ export interface RunBenchmarkResult {
13
+ report: BenchmarkReport;
14
+ reportPath: string;
15
+ markdown: string;
16
+ }
17
+ /**
18
+ * Run the benchmark suite end-to-end and write the report (ADR-0014).
19
+ * Reads pass through the v0.9.1 migration pipeline; nothing is mutated.
20
+ */
21
+ export declare function runBenchmark(sessions: SessionManager, projectRoot: string, opts?: RunBenchmarkOptions): Promise<RunBenchmarkResult>;
22
+ export { renderPerformanceReport } from './report.js';
23
+ export * from './types.js';
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/perf/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGxE,OAAO,EAAgB,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAG/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,6CAA6C;IAC7C,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAqB7B;AAED,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,cAAc,YAAY,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { mkdir, writeFile } from 'node:fs/promises';
2
+ import { dirname } from 'node:path';
3
+ import { kairoPaths } from '../storage/paths.js';
4
+ import { SERVER_VERSION } from '../server/createServer.js';
5
+ import { runScenarios } from './runner.js';
6
+ import { renderPerformanceReport } from './report.js';
7
+ import { standardScenarios } from './scenarios.js';
8
+ /**
9
+ * Run the benchmark suite end-to-end and write the report (ADR-0014).
10
+ * Reads pass through the v0.9.1 migration pipeline; nothing is mutated.
11
+ */
12
+ export async function runBenchmark(sessions, projectRoot, opts = {}) {
13
+ const paths = kairoPaths(projectRoot);
14
+ const specs = opts.scenarios ?? standardScenarios(sessions, projectRoot);
15
+ const startedAt = (opts.now ?? (() => new Date()))().toISOString();
16
+ const runOpts = {};
17
+ if (opts.iterations !== undefined)
18
+ runOpts.iterations = opts.iterations;
19
+ if (opts.only !== undefined)
20
+ runOpts.only = opts.only;
21
+ const results = await runScenarios(specs, runOpts);
22
+ const totalMs = results.reduce((acc, r) => acc + (r.skipped ? 0 : r.stats.median), 0);
23
+ const report = {
24
+ kairoVersion: SERVER_VERSION,
25
+ projectRoot,
26
+ startedAt,
27
+ totalMs,
28
+ scenarios: results,
29
+ };
30
+ const markdown = renderPerformanceReport(report);
31
+ const reportPath = opts.reportPath ?? `${paths.reportsDir}/PERFORMANCE.md`;
32
+ await mkdir(dirname(reportPath), { recursive: true });
33
+ await writeFile(reportPath, markdown, 'utf8');
34
+ return { report, reportPath, markdown };
35
+ }
36
+ export { renderPerformanceReport } from './report.js';
37
+ export * from './types.js';
38
+ //# sourceMappingURL=index.js.map