agent-recorder 0.0.1

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 (477) hide show
  1. package/README.md +133 -0
  2. package/dist/bundle.d.ts +8 -0
  3. package/dist/bundle.d.ts.map +1 -0
  4. package/dist/bundle.js +131 -0
  5. package/dist/bundle.js.map +1 -0
  6. package/dist/index.d.ts +10 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +31 -0
  9. package/dist/index.js.map +1 -0
  10. package/package.json +53 -0
  11. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics 2.js +205 -0
  12. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.d 2.ts +50 -0
  13. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.d.ts +50 -0
  14. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.d.ts 2.map +1 -0
  15. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.d.ts.map +1 -0
  16. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.js +205 -0
  17. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.js 2.map +1 -0
  18. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.js.map +1 -0
  19. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test 2.js +253 -0
  20. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.d 2.ts +5 -0
  21. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.d.ts +5 -0
  22. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.d.ts 2.map +1 -0
  23. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.d.ts.map +1 -0
  24. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.js +253 -0
  25. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.js 2.map +1 -0
  26. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.js.map +1 -0
  27. package/vendor/node_modules/@agent-recorder/cli/commands/configure 2.js +144 -0
  28. package/vendor/node_modules/@agent-recorder/cli/commands/configure.d 2.ts +17 -0
  29. package/vendor/node_modules/@agent-recorder/cli/commands/configure.d.ts +17 -0
  30. package/vendor/node_modules/@agent-recorder/cli/commands/configure.d.ts 2.map +1 -0
  31. package/vendor/node_modules/@agent-recorder/cli/commands/configure.d.ts.map +1 -0
  32. package/vendor/node_modules/@agent-recorder/cli/commands/configure.js +144 -0
  33. package/vendor/node_modules/@agent-recorder/cli/commands/configure.js 2.map +1 -0
  34. package/vendor/node_modules/@agent-recorder/cli/commands/configure.js.map +1 -0
  35. package/vendor/node_modules/@agent-recorder/cli/commands/diagnose 2.js +141 -0
  36. package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.d 2.ts +5 -0
  37. package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.d.ts +5 -0
  38. package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.d.ts 2.map +1 -0
  39. package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.d.ts.map +1 -0
  40. package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.js +141 -0
  41. package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.js 2.map +1 -0
  42. package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.js.map +1 -0
  43. package/vendor/node_modules/@agent-recorder/cli/commands/doctor 2.js +253 -0
  44. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.d 2.ts +5 -0
  45. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.d.ts +5 -0
  46. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.d.ts 2.map +1 -0
  47. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.d.ts.map +1 -0
  48. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.js +253 -0
  49. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.js 2.map +1 -0
  50. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.js.map +1 -0
  51. package/vendor/node_modules/@agent-recorder/cli/commands/export 2.js +56 -0
  52. package/vendor/node_modules/@agent-recorder/cli/commands/export.d 2.ts +12 -0
  53. package/vendor/node_modules/@agent-recorder/cli/commands/export.d.ts +12 -0
  54. package/vendor/node_modules/@agent-recorder/cli/commands/export.d.ts 2.map +1 -0
  55. package/vendor/node_modules/@agent-recorder/cli/commands/export.d.ts.map +1 -0
  56. package/vendor/node_modules/@agent-recorder/cli/commands/export.js +56 -0
  57. package/vendor/node_modules/@agent-recorder/cli/commands/export.js 2.map +1 -0
  58. package/vendor/node_modules/@agent-recorder/cli/commands/export.js.map +1 -0
  59. package/vendor/node_modules/@agent-recorder/cli/commands/install 2.js +77 -0
  60. package/vendor/node_modules/@agent-recorder/cli/commands/install.d 2.ts +13 -0
  61. package/vendor/node_modules/@agent-recorder/cli/commands/install.d.ts +13 -0
  62. package/vendor/node_modules/@agent-recorder/cli/commands/install.d.ts 2.map +1 -0
  63. package/vendor/node_modules/@agent-recorder/cli/commands/install.d.ts.map +1 -0
  64. package/vendor/node_modules/@agent-recorder/cli/commands/install.js +77 -0
  65. package/vendor/node_modules/@agent-recorder/cli/commands/install.js 2.map +1 -0
  66. package/vendor/node_modules/@agent-recorder/cli/commands/install.js.map +1 -0
  67. package/vendor/node_modules/@agent-recorder/cli/commands/logs 2.js +40 -0
  68. package/vendor/node_modules/@agent-recorder/cli/commands/logs.d 2.ts +8 -0
  69. package/vendor/node_modules/@agent-recorder/cli/commands/logs.d.ts +8 -0
  70. package/vendor/node_modules/@agent-recorder/cli/commands/logs.d.ts 2.map +1 -0
  71. package/vendor/node_modules/@agent-recorder/cli/commands/logs.d.ts.map +1 -0
  72. package/vendor/node_modules/@agent-recorder/cli/commands/logs.js +40 -0
  73. package/vendor/node_modules/@agent-recorder/cli/commands/logs.js 2.map +1 -0
  74. package/vendor/node_modules/@agent-recorder/cli/commands/logs.js.map +1 -0
  75. package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp 2.js +188 -0
  76. package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.d 2.ts +10 -0
  77. package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.d.ts +10 -0
  78. package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.d.ts 2.map +1 -0
  79. package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.d.ts.map +1 -0
  80. package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.js +188 -0
  81. package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.js 2.map +1 -0
  82. package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.js.map +1 -0
  83. package/vendor/node_modules/@agent-recorder/cli/commands/restart 2.js +67 -0
  84. package/vendor/node_modules/@agent-recorder/cli/commands/restart.d 2.ts +9 -0
  85. package/vendor/node_modules/@agent-recorder/cli/commands/restart.d.ts +9 -0
  86. package/vendor/node_modules/@agent-recorder/cli/commands/restart.d.ts 2.map +1 -0
  87. package/vendor/node_modules/@agent-recorder/cli/commands/restart.d.ts.map +1 -0
  88. package/vendor/node_modules/@agent-recorder/cli/commands/restart.js +67 -0
  89. package/vendor/node_modules/@agent-recorder/cli/commands/restart.js 2.map +1 -0
  90. package/vendor/node_modules/@agent-recorder/cli/commands/restart.js.map +1 -0
  91. package/vendor/node_modules/@agent-recorder/cli/commands/sessions 2.js +333 -0
  92. package/vendor/node_modules/@agent-recorder/cli/commands/sessions.d 2.ts +52 -0
  93. package/vendor/node_modules/@agent-recorder/cli/commands/sessions.d.ts +52 -0
  94. package/vendor/node_modules/@agent-recorder/cli/commands/sessions.d.ts 2.map +1 -0
  95. package/vendor/node_modules/@agent-recorder/cli/commands/sessions.d.ts.map +1 -0
  96. package/vendor/node_modules/@agent-recorder/cli/commands/sessions.js +333 -0
  97. package/vendor/node_modules/@agent-recorder/cli/commands/sessions.js 2.map +1 -0
  98. package/vendor/node_modules/@agent-recorder/cli/commands/sessions.js.map +1 -0
  99. package/vendor/node_modules/@agent-recorder/cli/commands/start 2.js +174 -0
  100. package/vendor/node_modules/@agent-recorder/cli/commands/start.d 2.ts +10 -0
  101. package/vendor/node_modules/@agent-recorder/cli/commands/start.d.ts +10 -0
  102. package/vendor/node_modules/@agent-recorder/cli/commands/start.d.ts 2.map +1 -0
  103. package/vendor/node_modules/@agent-recorder/cli/commands/start.d.ts.map +1 -0
  104. package/vendor/node_modules/@agent-recorder/cli/commands/start.js +174 -0
  105. package/vendor/node_modules/@agent-recorder/cli/commands/start.js 2.map +1 -0
  106. package/vendor/node_modules/@agent-recorder/cli/commands/start.js.map +1 -0
  107. package/vendor/node_modules/@agent-recorder/cli/commands/status 2.js +104 -0
  108. package/vendor/node_modules/@agent-recorder/cli/commands/status.d 2.ts +5 -0
  109. package/vendor/node_modules/@agent-recorder/cli/commands/status.d.ts +5 -0
  110. package/vendor/node_modules/@agent-recorder/cli/commands/status.d.ts 2.map +1 -0
  111. package/vendor/node_modules/@agent-recorder/cli/commands/status.d.ts.map +1 -0
  112. package/vendor/node_modules/@agent-recorder/cli/commands/status.js +104 -0
  113. package/vendor/node_modules/@agent-recorder/cli/commands/status.js 2.map +1 -0
  114. package/vendor/node_modules/@agent-recorder/cli/commands/status.js.map +1 -0
  115. package/vendor/node_modules/@agent-recorder/cli/commands/stop 2.js +89 -0
  116. package/vendor/node_modules/@agent-recorder/cli/commands/stop.d 2.ts +8 -0
  117. package/vendor/node_modules/@agent-recorder/cli/commands/stop.d.ts +8 -0
  118. package/vendor/node_modules/@agent-recorder/cli/commands/stop.d.ts 2.map +1 -0
  119. package/vendor/node_modules/@agent-recorder/cli/commands/stop.d.ts.map +1 -0
  120. package/vendor/node_modules/@agent-recorder/cli/commands/stop.js +89 -0
  121. package/vendor/node_modules/@agent-recorder/cli/commands/stop.js 2.map +1 -0
  122. package/vendor/node_modules/@agent-recorder/cli/commands/stop.js.map +1 -0
  123. package/vendor/node_modules/@agent-recorder/cli/commands/tui 2.js +14 -0
  124. package/vendor/node_modules/@agent-recorder/cli/commands/tui.d 2.ts +5 -0
  125. package/vendor/node_modules/@agent-recorder/cli/commands/tui.d.ts +5 -0
  126. package/vendor/node_modules/@agent-recorder/cli/commands/tui.d.ts 2.map +1 -0
  127. package/vendor/node_modules/@agent-recorder/cli/commands/tui.d.ts.map +1 -0
  128. package/vendor/node_modules/@agent-recorder/cli/commands/tui.js +14 -0
  129. package/vendor/node_modules/@agent-recorder/cli/commands/tui.js 2.map +1 -0
  130. package/vendor/node_modules/@agent-recorder/cli/commands/tui.js.map +1 -0
  131. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths 2.js +117 -0
  132. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.d 2.ts +55 -0
  133. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.d.ts +55 -0
  134. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.d.ts 2.map +1 -0
  135. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.d.ts.map +1 -0
  136. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.js +117 -0
  137. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.js 2.map +1 -0
  138. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.js.map +1 -0
  139. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test 2.js +152 -0
  140. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.d 2.ts +5 -0
  141. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.d.ts +5 -0
  142. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.d.ts 2.map +1 -0
  143. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.d.ts.map +1 -0
  144. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.js +152 -0
  145. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.js 2.map +1 -0
  146. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.js.map +1 -0
  147. package/vendor/node_modules/@agent-recorder/cli/index 2.js +194 -0
  148. package/vendor/node_modules/@agent-recorder/cli/index.d 2.ts +10 -0
  149. package/vendor/node_modules/@agent-recorder/cli/index.d.ts +10 -0
  150. package/vendor/node_modules/@agent-recorder/cli/index.d.ts 2.map +1 -0
  151. package/vendor/node_modules/@agent-recorder/cli/index.d.ts.map +1 -0
  152. package/vendor/node_modules/@agent-recorder/cli/index.js +194 -0
  153. package/vendor/node_modules/@agent-recorder/cli/index.js 2.map +1 -0
  154. package/vendor/node_modules/@agent-recorder/cli/index.js.map +1 -0
  155. package/vendor/node_modules/@agent-recorder/cli/package 2.json +17 -0
  156. package/vendor/node_modules/@agent-recorder/cli/package.json +17 -0
  157. package/vendor/node_modules/@agent-recorder/cli/tui/App 2.js +84 -0
  158. package/vendor/node_modules/@agent-recorder/cli/tui/App.d 2.ts +6 -0
  159. package/vendor/node_modules/@agent-recorder/cli/tui/App.d.ts +6 -0
  160. package/vendor/node_modules/@agent-recorder/cli/tui/App.d.ts 2.map +1 -0
  161. package/vendor/node_modules/@agent-recorder/cli/tui/App.d.ts.map +1 -0
  162. package/vendor/node_modules/@agent-recorder/cli/tui/App.js +84 -0
  163. package/vendor/node_modules/@agent-recorder/cli/tui/App.js 2.map +1 -0
  164. package/vendor/node_modules/@agent-recorder/cli/tui/App.js.map +1 -0
  165. package/vendor/node_modules/@agent-recorder/cli/tui/api 2.js +105 -0
  166. package/vendor/node_modules/@agent-recorder/cli/tui/api.d 2.ts +31 -0
  167. package/vendor/node_modules/@agent-recorder/cli/tui/api.d.ts +31 -0
  168. package/vendor/node_modules/@agent-recorder/cli/tui/api.d.ts 2.map +1 -0
  169. package/vendor/node_modules/@agent-recorder/cli/tui/api.d.ts.map +1 -0
  170. package/vendor/node_modules/@agent-recorder/cli/tui/api.js +105 -0
  171. package/vendor/node_modules/@agent-recorder/cli/tui/api.js 2.map +1 -0
  172. package/vendor/node_modules/@agent-recorder/cli/tui/api.js.map +1 -0
  173. package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel 2.js +45 -0
  174. package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.d 2.ts +11 -0
  175. package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.d.ts +11 -0
  176. package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.d.ts 2.map +1 -0
  177. package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.d.ts.map +1 -0
  178. package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.js +45 -0
  179. package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.js 2.map +1 -0
  180. package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.js.map +1 -0
  181. package/vendor/node_modules/@agent-recorder/cli/tui/components/Header 2.js +13 -0
  182. package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.d 2.ts +17 -0
  183. package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.d.ts +17 -0
  184. package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.d.ts 2.map +1 -0
  185. package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.d.ts.map +1 -0
  186. package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.js +13 -0
  187. package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.js 2.map +1 -0
  188. package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.js.map +1 -0
  189. package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner 2.js +21 -0
  190. package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.d 2.ts +12 -0
  191. package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.d.ts +12 -0
  192. package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.d.ts 2.map +1 -0
  193. package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.d.ts.map +1 -0
  194. package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.js +21 -0
  195. package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.js 2.map +1 -0
  196. package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.js.map +1 -0
  197. package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge 2.js +50 -0
  198. package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.d 2.ts +16 -0
  199. package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.d.ts +16 -0
  200. package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.d.ts 2.map +1 -0
  201. package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.d.ts.map +1 -0
  202. package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.js +50 -0
  203. package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.js 2.map +1 -0
  204. package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.js.map +1 -0
  205. package/vendor/node_modules/@agent-recorder/cli/tui/components/Table 2.js +20 -0
  206. package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.d 2.ts +21 -0
  207. package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.d.ts +21 -0
  208. package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.d.ts 2.map +1 -0
  209. package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.d.ts.map +1 -0
  210. package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.js +20 -0
  211. package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.js 2.map +1 -0
  212. package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.js.map +1 -0
  213. package/vendor/node_modules/@agent-recorder/cli/tui/components/index 2.js +8 -0
  214. package/vendor/node_modules/@agent-recorder/cli/tui/components/index.d 2.ts +8 -0
  215. package/vendor/node_modules/@agent-recorder/cli/tui/components/index.d.ts +8 -0
  216. package/vendor/node_modules/@agent-recorder/cli/tui/components/index.d.ts 2.map +1 -0
  217. package/vendor/node_modules/@agent-recorder/cli/tui/components/index.d.ts.map +1 -0
  218. package/vendor/node_modules/@agent-recorder/cli/tui/components/index.js +8 -0
  219. package/vendor/node_modules/@agent-recorder/cli/tui/components/index.js 2.map +1 -0
  220. package/vendor/node_modules/@agent-recorder/cli/tui/components/index.js.map +1 -0
  221. package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream 2.js +75 -0
  222. package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.d 2.ts +22 -0
  223. package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.d.ts +22 -0
  224. package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.d.ts 2.map +1 -0
  225. package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.d.ts.map +1 -0
  226. package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.js +75 -0
  227. package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.js 2.map +1 -0
  228. package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.js.map +1 -0
  229. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen 2.js +190 -0
  230. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.d 2.ts +13 -0
  231. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.d.ts +13 -0
  232. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.d.ts 2.map +1 -0
  233. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.d.ts.map +1 -0
  234. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.js +190 -0
  235. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.js 2.map +1 -0
  236. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.js.map +1 -0
  237. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen 2.js +166 -0
  238. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.d 2.ts +10 -0
  239. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.d.ts +10 -0
  240. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.d.ts 2.map +1 -0
  241. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.d.ts.map +1 -0
  242. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.js +166 -0
  243. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.js 2.map +1 -0
  244. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.js.map +1 -0
  245. package/vendor/node_modules/@agent-recorder/cli/tui/screens/index 2.js +6 -0
  246. package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.d 2.ts +6 -0
  247. package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.d.ts +6 -0
  248. package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.d.ts 2.map +1 -0
  249. package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.d.ts.map +1 -0
  250. package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.js +6 -0
  251. package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.js 2.map +1 -0
  252. package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.js.map +1 -0
  253. package/vendor/node_modules/@agent-recorder/core/config 2.js +44 -0
  254. package/vendor/node_modules/@agent-recorder/core/config.d 2.ts +25 -0
  255. package/vendor/node_modules/@agent-recorder/core/config.d.ts +25 -0
  256. package/vendor/node_modules/@agent-recorder/core/config.d.ts 2.map +1 -0
  257. package/vendor/node_modules/@agent-recorder/core/config.d.ts.map +1 -0
  258. package/vendor/node_modules/@agent-recorder/core/config.js +44 -0
  259. package/vendor/node_modules/@agent-recorder/core/config.js.map +1 -0
  260. package/vendor/node_modules/@agent-recorder/core/config.test.d.ts +5 -0
  261. package/vendor/node_modules/@agent-recorder/core/config.test.d.ts.map +1 -0
  262. package/vendor/node_modules/@agent-recorder/core/config.test.js +78 -0
  263. package/vendor/node_modules/@agent-recorder/core/config.test.js.map +1 -0
  264. package/vendor/node_modules/@agent-recorder/core/daemon-paths.d.ts +50 -0
  265. package/vendor/node_modules/@agent-recorder/core/daemon-paths.d.ts.map +1 -0
  266. package/vendor/node_modules/@agent-recorder/core/daemon-paths.js +113 -0
  267. package/vendor/node_modules/@agent-recorder/core/daemon-paths.js.map +1 -0
  268. package/vendor/node_modules/@agent-recorder/core/daemon-paths.test.d.ts +5 -0
  269. package/vendor/node_modules/@agent-recorder/core/daemon-paths.test.d.ts.map +1 -0
  270. package/vendor/node_modules/@agent-recorder/core/daemon-paths.test.js +143 -0
  271. package/vendor/node_modules/@agent-recorder/core/daemon-paths.test.js.map +1 -0
  272. package/vendor/node_modules/@agent-recorder/core/db/connection.d 2.ts +15 -0
  273. package/vendor/node_modules/@agent-recorder/core/db/connection.d.ts +15 -0
  274. package/vendor/node_modules/@agent-recorder/core/db/connection.d.ts.map +1 -0
  275. package/vendor/node_modules/@agent-recorder/core/db/connection.js +30 -0
  276. package/vendor/node_modules/@agent-recorder/core/db/connection.js.map +1 -0
  277. package/vendor/node_modules/@agent-recorder/core/db/events.d.ts +65 -0
  278. package/vendor/node_modules/@agent-recorder/core/db/events.d.ts.map +1 -0
  279. package/vendor/node_modules/@agent-recorder/core/db/events.js +117 -0
  280. package/vendor/node_modules/@agent-recorder/core/db/events.js.map +1 -0
  281. package/vendor/node_modules/@agent-recorder/core/db/events.test.d.ts +5 -0
  282. package/vendor/node_modules/@agent-recorder/core/db/events.test.d.ts.map +1 -0
  283. package/vendor/node_modules/@agent-recorder/core/db/events.test.js +72 -0
  284. package/vendor/node_modules/@agent-recorder/core/db/events.test.js.map +1 -0
  285. package/vendor/node_modules/@agent-recorder/core/db/index.d.ts +9 -0
  286. package/vendor/node_modules/@agent-recorder/core/db/index.d.ts.map +1 -0
  287. package/vendor/node_modules/@agent-recorder/core/db/index.js +9 -0
  288. package/vendor/node_modules/@agent-recorder/core/db/index.js.map +1 -0
  289. package/vendor/node_modules/@agent-recorder/core/db/migrations.d.ts +17 -0
  290. package/vendor/node_modules/@agent-recorder/core/db/migrations.d.ts.map +1 -0
  291. package/vendor/node_modules/@agent-recorder/core/db/migrations.js +56 -0
  292. package/vendor/node_modules/@agent-recorder/core/db/migrations.js.map +1 -0
  293. package/vendor/node_modules/@agent-recorder/core/db/sequences.d.ts +17 -0
  294. package/vendor/node_modules/@agent-recorder/core/db/sequences.d.ts.map +1 -0
  295. package/vendor/node_modules/@agent-recorder/core/db/sequences.js +41 -0
  296. package/vendor/node_modules/@agent-recorder/core/db/sequences.js.map +1 -0
  297. package/vendor/node_modules/@agent-recorder/core/db/sessions.d.ts +17 -0
  298. package/vendor/node_modules/@agent-recorder/core/db/sessions.d.ts.map +1 -0
  299. package/vendor/node_modules/@agent-recorder/core/db/sessions.js +61 -0
  300. package/vendor/node_modules/@agent-recorder/core/db/sessions.js.map +1 -0
  301. package/vendor/node_modules/@agent-recorder/core/index.d.ts +13 -0
  302. package/vendor/node_modules/@agent-recorder/core/index.d.ts.map +1 -0
  303. package/vendor/node_modules/@agent-recorder/core/index.js +13 -0
  304. package/vendor/node_modules/@agent-recorder/core/index.js.map +1 -0
  305. package/vendor/node_modules/@agent-recorder/core/lockfile.d.ts +42 -0
  306. package/vendor/node_modules/@agent-recorder/core/lockfile.d.ts.map +1 -0
  307. package/vendor/node_modules/@agent-recorder/core/lockfile.js +122 -0
  308. package/vendor/node_modules/@agent-recorder/core/lockfile.js.map +1 -0
  309. package/vendor/node_modules/@agent-recorder/core/lockfile.test.d.ts +5 -0
  310. package/vendor/node_modules/@agent-recorder/core/lockfile.test.d.ts.map +1 -0
  311. package/vendor/node_modules/@agent-recorder/core/lockfile.test.js +136 -0
  312. package/vendor/node_modules/@agent-recorder/core/lockfile.test.js.map +1 -0
  313. package/vendor/node_modules/@agent-recorder/core/migrations/001_initial 2.sql +40 -0
  314. package/vendor/node_modules/@agent-recorder/core/migrations/001_initial.sql +40 -0
  315. package/vendor/node_modules/@agent-recorder/core/migrations/002_session_sequences 2.sql +8 -0
  316. package/vendor/node_modules/@agent-recorder/core/migrations/002_session_sequences.sql +8 -0
  317. package/vendor/node_modules/@agent-recorder/core/migrations/003_add_tool_columns 2.sql +9 -0
  318. package/vendor/node_modules/@agent-recorder/core/migrations/003_add_tool_columns.sql +9 -0
  319. package/vendor/node_modules/@agent-recorder/core/migrations/004_add_cancelled_status 2.sql +23 -0
  320. package/vendor/node_modules/@agent-recorder/core/migrations/004_add_cancelled_status.sql +23 -0
  321. package/vendor/node_modules/@agent-recorder/core/migrations/005_add_error_category 2.sql +6 -0
  322. package/vendor/node_modules/@agent-recorder/core/migrations/005_add_error_category.sql +6 -0
  323. package/vendor/node_modules/@agent-recorder/core/package 2.json +18 -0
  324. package/vendor/node_modules/@agent-recorder/core/package.json +18 -0
  325. package/vendor/node_modules/@agent-recorder/core/types/events.d 2.ts +69 -0
  326. package/vendor/node_modules/@agent-recorder/core/types/events.d.ts +69 -0
  327. package/vendor/node_modules/@agent-recorder/core/types/events.d.ts.map +1 -0
  328. package/vendor/node_modules/@agent-recorder/core/types/events.js +6 -0
  329. package/vendor/node_modules/@agent-recorder/core/types/events.js.map +1 -0
  330. package/vendor/node_modules/@agent-recorder/core/types/index 2.js +2 -0
  331. package/vendor/node_modules/@agent-recorder/core/types/index.d.ts +3 -0
  332. package/vendor/node_modules/@agent-recorder/core/types/index.d.ts.map +1 -0
  333. package/vendor/node_modules/@agent-recorder/core/types/index.js +2 -0
  334. package/vendor/node_modules/@agent-recorder/core/types/index.js 2.map +1 -0
  335. package/vendor/node_modules/@agent-recorder/core/types/index.js.map +1 -0
  336. package/vendor/node_modules/@agent-recorder/core/types/session 2.js +6 -0
  337. package/vendor/node_modules/@agent-recorder/core/types/session.d 2.ts +22 -0
  338. package/vendor/node_modules/@agent-recorder/core/types/session.d.ts +22 -0
  339. package/vendor/node_modules/@agent-recorder/core/types/session.d.ts 2.map +1 -0
  340. package/vendor/node_modules/@agent-recorder/core/types/session.d.ts.map +1 -0
  341. package/vendor/node_modules/@agent-recorder/core/types/session.js +6 -0
  342. package/vendor/node_modules/@agent-recorder/core/types/session.js 2.map +1 -0
  343. package/vendor/node_modules/@agent-recorder/core/types/session.js.map +1 -0
  344. package/vendor/node_modules/@agent-recorder/core/utils/error-category 2.js +58 -0
  345. package/vendor/node_modules/@agent-recorder/core/utils/error-category.d 2.ts +22 -0
  346. package/vendor/node_modules/@agent-recorder/core/utils/error-category.d.ts +22 -0
  347. package/vendor/node_modules/@agent-recorder/core/utils/error-category.d.ts 2.map +1 -0
  348. package/vendor/node_modules/@agent-recorder/core/utils/error-category.d.ts.map +1 -0
  349. package/vendor/node_modules/@agent-recorder/core/utils/error-category.js +58 -0
  350. package/vendor/node_modules/@agent-recorder/core/utils/error-category.js 2.map +1 -0
  351. package/vendor/node_modules/@agent-recorder/core/utils/error-category.js.map +1 -0
  352. package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.d 2.ts +5 -0
  353. package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.d.ts +5 -0
  354. package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.d.ts 2.map +1 -0
  355. package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.d.ts.map +1 -0
  356. package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.js +89 -0
  357. package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.js 2.map +1 -0
  358. package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.js.map +1 -0
  359. package/vendor/node_modules/@agent-recorder/core/utils/index 2.js +6 -0
  360. package/vendor/node_modules/@agent-recorder/core/utils/index.d 2.ts +6 -0
  361. package/vendor/node_modules/@agent-recorder/core/utils/index.d.ts +6 -0
  362. package/vendor/node_modules/@agent-recorder/core/utils/index.d.ts 2.map +1 -0
  363. package/vendor/node_modules/@agent-recorder/core/utils/index.d.ts.map +1 -0
  364. package/vendor/node_modules/@agent-recorder/core/utils/index.js +6 -0
  365. package/vendor/node_modules/@agent-recorder/core/utils/index.js 2.map +1 -0
  366. package/vendor/node_modules/@agent-recorder/core/utils/index.js.map +1 -0
  367. package/vendor/node_modules/@agent-recorder/core/utils/redact.d 2.ts +19 -0
  368. package/vendor/node_modules/@agent-recorder/core/utils/redact.d.ts +19 -0
  369. package/vendor/node_modules/@agent-recorder/core/utils/redact.d.ts 2.map +1 -0
  370. package/vendor/node_modules/@agent-recorder/core/utils/redact.d.ts.map +1 -0
  371. package/vendor/node_modules/@agent-recorder/core/utils/redact.js +52 -0
  372. package/vendor/node_modules/@agent-recorder/core/utils/redact.js 2.map +1 -0
  373. package/vendor/node_modules/@agent-recorder/core/utils/redact.js.map +1 -0
  374. package/vendor/node_modules/@agent-recorder/service/index 2.js +128 -0
  375. package/vendor/node_modules/@agent-recorder/service/index.d 2.ts +36 -0
  376. package/vendor/node_modules/@agent-recorder/service/index.d.ts +36 -0
  377. package/vendor/node_modules/@agent-recorder/service/index.d.ts 2.map +1 -0
  378. package/vendor/node_modules/@agent-recorder/service/index.d.ts.map +1 -0
  379. package/vendor/node_modules/@agent-recorder/service/index.js +128 -0
  380. package/vendor/node_modules/@agent-recorder/service/index.js 2.map +1 -0
  381. package/vendor/node_modules/@agent-recorder/service/index.js.map +1 -0
  382. package/vendor/node_modules/@agent-recorder/service/mcp/index 2.js +7 -0
  383. package/vendor/node_modules/@agent-recorder/service/mcp/index.d 2.ts +7 -0
  384. package/vendor/node_modules/@agent-recorder/service/mcp/index.d.ts +7 -0
  385. package/vendor/node_modules/@agent-recorder/service/mcp/index.d.ts 2.map +1 -0
  386. package/vendor/node_modules/@agent-recorder/service/mcp/index.d.ts.map +1 -0
  387. package/vendor/node_modules/@agent-recorder/service/mcp/index.js +7 -0
  388. package/vendor/node_modules/@agent-recorder/service/mcp/index.js 2.map +1 -0
  389. package/vendor/node_modules/@agent-recorder/service/mcp/index.js.map +1 -0
  390. package/vendor/node_modules/@agent-recorder/service/mcp/proxy 2.js +223 -0
  391. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d 2.ts +26 -0
  392. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d.ts +26 -0
  393. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d.ts 2.map +1 -0
  394. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d.ts.map +1 -0
  395. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js +223 -0
  396. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js 2.map +1 -0
  397. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js.map +1 -0
  398. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.d 2.ts +5 -0
  399. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.d.ts +5 -0
  400. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.d.ts 2.map +1 -0
  401. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.d.ts.map +1 -0
  402. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.js +367 -0
  403. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.js 2.map +1 -0
  404. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.js.map +1 -0
  405. package/vendor/node_modules/@agent-recorder/service/mcp/recorder 2.js +62 -0
  406. package/vendor/node_modules/@agent-recorder/service/mcp/recorder.d 2.ts +31 -0
  407. package/vendor/node_modules/@agent-recorder/service/mcp/recorder.d.ts +31 -0
  408. package/vendor/node_modules/@agent-recorder/service/mcp/recorder.d.ts 2.map +1 -0
  409. package/vendor/node_modules/@agent-recorder/service/mcp/recorder.d.ts.map +1 -0
  410. package/vendor/node_modules/@agent-recorder/service/mcp/recorder.js +62 -0
  411. package/vendor/node_modules/@agent-recorder/service/mcp/recorder.js 2.map +1 -0
  412. package/vendor/node_modules/@agent-recorder/service/mcp/recorder.js.map +1 -0
  413. package/vendor/node_modules/@agent-recorder/service/mcp/types 2.js +15 -0
  414. package/vendor/node_modules/@agent-recorder/service/mcp/types.d 2.ts +40 -0
  415. package/vendor/node_modules/@agent-recorder/service/mcp/types.d.ts +40 -0
  416. package/vendor/node_modules/@agent-recorder/service/mcp/types.d.ts 2.map +1 -0
  417. package/vendor/node_modules/@agent-recorder/service/mcp/types.d.ts.map +1 -0
  418. package/vendor/node_modules/@agent-recorder/service/mcp/types.js +15 -0
  419. package/vendor/node_modules/@agent-recorder/service/mcp/types.js 2.map +1 -0
  420. package/vendor/node_modules/@agent-recorder/service/mcp/types.js.map +1 -0
  421. package/vendor/node_modules/@agent-recorder/service/package 2.json +15 -0
  422. package/vendor/node_modules/@agent-recorder/service/package.json +15 -0
  423. package/vendor/node_modules/@agent-recorder/service/routes/events 2.js +71 -0
  424. package/vendor/node_modules/@agent-recorder/service/routes/events.d 2.ts +11 -0
  425. package/vendor/node_modules/@agent-recorder/service/routes/events.d.ts +11 -0
  426. package/vendor/node_modules/@agent-recorder/service/routes/events.d.ts 2.map +1 -0
  427. package/vendor/node_modules/@agent-recorder/service/routes/events.d.ts.map +1 -0
  428. package/vendor/node_modules/@agent-recorder/service/routes/events.js +71 -0
  429. package/vendor/node_modules/@agent-recorder/service/routes/events.js 2.map +1 -0
  430. package/vendor/node_modules/@agent-recorder/service/routes/events.js.map +1 -0
  431. package/vendor/node_modules/@agent-recorder/service/routes/health 2.js +18 -0
  432. package/vendor/node_modules/@agent-recorder/service/routes/health.d 2.ts +6 -0
  433. package/vendor/node_modules/@agent-recorder/service/routes/health.d.ts +6 -0
  434. package/vendor/node_modules/@agent-recorder/service/routes/health.d.ts 2.map +1 -0
  435. package/vendor/node_modules/@agent-recorder/service/routes/health.d.ts.map +1 -0
  436. package/vendor/node_modules/@agent-recorder/service/routes/health.js +18 -0
  437. package/vendor/node_modules/@agent-recorder/service/routes/health.js 2.map +1 -0
  438. package/vendor/node_modules/@agent-recorder/service/routes/health.js.map +1 -0
  439. package/vendor/node_modules/@agent-recorder/service/routes/sessions 2.js +80 -0
  440. package/vendor/node_modules/@agent-recorder/service/routes/sessions.d 2.ts +12 -0
  441. package/vendor/node_modules/@agent-recorder/service/routes/sessions.d.ts +12 -0
  442. package/vendor/node_modules/@agent-recorder/service/routes/sessions.d.ts 2.map +1 -0
  443. package/vendor/node_modules/@agent-recorder/service/routes/sessions.d.ts.map +1 -0
  444. package/vendor/node_modules/@agent-recorder/service/routes/sessions.js +80 -0
  445. package/vendor/node_modules/@agent-recorder/service/routes/sessions.js 2.map +1 -0
  446. package/vendor/node_modules/@agent-recorder/service/routes/sessions.js.map +1 -0
  447. package/vendor/node_modules/@agent-recorder/service/server 2.js +36 -0
  448. package/vendor/node_modules/@agent-recorder/service/server.d 2.ts +19 -0
  449. package/vendor/node_modules/@agent-recorder/service/server.d.ts +19 -0
  450. package/vendor/node_modules/@agent-recorder/service/server.d.ts 2.map +1 -0
  451. package/vendor/node_modules/@agent-recorder/service/server.d.ts.map +1 -0
  452. package/vendor/node_modules/@agent-recorder/service/server.js +36 -0
  453. package/vendor/node_modules/@agent-recorder/service/server.js 2.map +1 -0
  454. package/vendor/node_modules/@agent-recorder/service/server.js.map +1 -0
  455. package/vendor/node_modules/@agent-recorder/service/server.test 2.js +296 -0
  456. package/vendor/node_modules/@agent-recorder/service/server.test.d 2.ts +5 -0
  457. package/vendor/node_modules/@agent-recorder/service/server.test.d.ts +5 -0
  458. package/vendor/node_modules/@agent-recorder/service/server.test.d.ts 2.map +1 -0
  459. package/vendor/node_modules/@agent-recorder/service/server.test.d.ts.map +1 -0
  460. package/vendor/node_modules/@agent-recorder/service/server.test.js +296 -0
  461. package/vendor/node_modules/@agent-recorder/service/server.test.js.map +1 -0
  462. package/vendor/node_modules/@agent-recorder/service/session-manager 2.js +22 -0
  463. package/vendor/node_modules/@agent-recorder/service/session-manager.d 2.ts +16 -0
  464. package/vendor/node_modules/@agent-recorder/service/session-manager.d.ts +16 -0
  465. package/vendor/node_modules/@agent-recorder/service/session-manager.d.ts 2.map +1 -0
  466. package/vendor/node_modules/@agent-recorder/service/session-manager.d.ts.map +1 -0
  467. package/vendor/node_modules/@agent-recorder/service/session-manager.js +22 -0
  468. package/vendor/node_modules/@agent-recorder/service/session-manager.js 2.map +1 -0
  469. package/vendor/node_modules/@agent-recorder/service/session-manager.js.map +1 -0
  470. package/vendor/node_modules/@agent-recorder/service/session-manager.test 2.js +61 -0
  471. package/vendor/node_modules/@agent-recorder/service/session-manager.test.d 2.ts +5 -0
  472. package/vendor/node_modules/@agent-recorder/service/session-manager.test.d.ts +5 -0
  473. package/vendor/node_modules/@agent-recorder/service/session-manager.test.d.ts 2.map +1 -0
  474. package/vendor/node_modules/@agent-recorder/service/session-manager.test.d.ts.map +1 -0
  475. package/vendor/node_modules/@agent-recorder/service/session-manager.test.js +61 -0
  476. package/vendor/node_modules/@agent-recorder/service/session-manager.test.js 2.map +1 -0
  477. package/vendor/node_modules/@agent-recorder/service/session-manager.test.js.map +1 -0
package/README.md ADDED
@@ -0,0 +1,133 @@
1
+ # Agent Recorder
2
+
3
+ Local-first flight recorder for Claude Code. Captures a persistent, human-readable timeline of execution including subagents, skills, and MCP tool calls.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install -g agent-recorder
9
+ ```
10
+
11
+ ## Quick Start
12
+
13
+ ```bash
14
+ # Set up ~/.agent-recorder/ directory
15
+ agent-recorder install
16
+
17
+ # Start the background daemon
18
+ agent-recorder start --daemon
19
+
20
+ # Configure Claude Code integration
21
+ agent-recorder configure claude
22
+
23
+ # Verify everything is working
24
+ agent-recorder doctor
25
+ ```
26
+
27
+ After configuration, restart Claude Code to apply changes.
28
+
29
+ ## Requirements
30
+
31
+ - Node.js >= 20
32
+ - macOS or Linux
33
+
34
+ ## Commands
35
+
36
+ ### Daemon Lifecycle
37
+
38
+ - `agent-recorder start [--daemon]` - Start the recording daemon
39
+ - `agent-recorder stop` - Stop the daemon
40
+ - `agent-recorder restart` - Restart the daemon
41
+ - `agent-recorder status` - Check if daemon is running
42
+
43
+ ### Health & Diagnostics
44
+
45
+ - `agent-recorder doctor` - Comprehensive health check
46
+ - `agent-recorder diagnose mcp` - MCP proxy diagnostics
47
+ - `agent-recorder logs` - View daemon logs
48
+
49
+ ### Configuration
50
+
51
+ - `agent-recorder install` - Set up directories and show config
52
+ - `agent-recorder configure claude` - Configure Claude Code MCP settings
53
+ - `agent-recorder configure show` - Show current configuration
54
+
55
+ ### Session Browsing
56
+
57
+ - `agent-recorder sessions list` - List all recorded sessions
58
+ - `agent-recorder sessions show <id>` - Show session details
59
+ - `agent-recorder sessions view <id>` - View session events
60
+ - `agent-recorder sessions tail <id>` - Follow session events in real-time
61
+ - `agent-recorder tui` - Interactive session explorer
62
+
63
+ ### Data Export
64
+
65
+ - `agent-recorder export <id>` - Export session to JSON/JSONL
66
+
67
+ ### Testing
68
+
69
+ - `agent-recorder mock-mcp` - Start a mock MCP server for testing
70
+
71
+ ## Environment Variables
72
+
73
+ - `AR_LISTEN_PORT` - REST API port (default: 8787)
74
+ - `AR_MCP_PROXY_PORT` - MCP proxy port (default: 8788)
75
+ - `AR_DB_PATH` - SQLite database path
76
+ - `AR_DOWNSTREAM_MCP_URL` - URL of the downstream MCP server to proxy
77
+
78
+ ## How It Works
79
+
80
+ Agent Recorder acts as a transparent MCP proxy between Claude Code and your MCP servers. It records:
81
+
82
+ - Tool calls (tools/list, tools/call)
83
+ - Timing and duration
84
+ - Success/error status
85
+ - Metadata (redacted for privacy)
86
+
87
+ It does **not** record prompts, chain-of-thought, or sensitive content.
88
+
89
+ ## Troubleshooting
90
+
91
+ ### Daemon won't start
92
+
93
+ ```bash
94
+ # Check if port is already in use
95
+ lsof -i :8787
96
+ lsof -i :8788
97
+
98
+ # Force stop and restart
99
+ agent-recorder stop --force
100
+ agent-recorder start --daemon
101
+ ```
102
+
103
+ ### Claude Code not connecting
104
+
105
+ ```bash
106
+ # Check configuration
107
+ agent-recorder configure show
108
+
109
+ # Re-configure if needed
110
+ agent-recorder configure claude
111
+
112
+ # Restart Claude Code after configuration changes
113
+ ```
114
+
115
+ ### No events being recorded
116
+
117
+ ```bash
118
+ # Run full diagnostics
119
+ agent-recorder doctor
120
+
121
+ # Check MCP proxy specifically
122
+ agent-recorder diagnose mcp
123
+
124
+ # Test with mock MCP server
125
+ agent-recorder mock-mcp --port 9999
126
+ # In another terminal:
127
+ export AR_DOWNSTREAM_MCP_URL="http://127.0.0.1:9999/"
128
+ agent-recorder restart
129
+ ```
130
+
131
+ ## License
132
+
133
+ MIT
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Bundle script for distribution package.
3
+ *
4
+ * Copies compiled outputs from workspace packages into vendor/ directory
5
+ * with proper node_modules structure for module resolution.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=bundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
package/dist/bundle.js ADDED
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Bundle script for distribution package.
3
+ *
4
+ * Copies compiled outputs from workspace packages into vendor/ directory
5
+ * with proper node_modules structure for module resolution.
6
+ */
7
+ import * as fs from "node:fs";
8
+ import * as path from "node:path";
9
+ import { fileURLToPath } from "node:url";
10
+ const __filename = fileURLToPath(import.meta.url);
11
+ const __dirname = path.dirname(__filename);
12
+ const distRoot = path.join(__dirname, "..");
13
+ const packagesRoot = path.join(distRoot, "..");
14
+ const packages = [
15
+ {
16
+ name: "@agent-recorder/core",
17
+ srcDir: "core",
18
+ extraFiles: ["migrations"],
19
+ },
20
+ {
21
+ name: "@agent-recorder/service",
22
+ srcDir: "service",
23
+ },
24
+ {
25
+ name: "@agent-recorder/cli",
26
+ srcDir: "cli",
27
+ },
28
+ ];
29
+ /**
30
+ * Recursively copy a directory.
31
+ */
32
+ function copyDir(src, dest) {
33
+ fs.mkdirSync(dest, { recursive: true });
34
+ const entries = fs.readdirSync(src, { withFileTypes: true });
35
+ for (const entry of entries) {
36
+ const srcPath = path.join(src, entry.name);
37
+ const destPath = path.join(dest, entry.name);
38
+ if (entry.isDirectory()) {
39
+ copyDir(srcPath, destPath);
40
+ }
41
+ else {
42
+ fs.copyFileSync(srcPath, destPath);
43
+ }
44
+ }
45
+ }
46
+ /**
47
+ * Rewrite exports to remove ./dist/ prefix since we copy dist contents to root.
48
+ */
49
+ function rewriteExports(exports) {
50
+ if (!exports)
51
+ return undefined;
52
+ const result = {};
53
+ for (const [key, value] of Object.entries(exports)) {
54
+ if (typeof value === "string") {
55
+ // Remove ./dist/ prefix
56
+ result[key] = value.replace(/^\.\/dist\//, "./");
57
+ }
58
+ else if (typeof value === "object" && value !== null) {
59
+ // Handle { types: ..., import: ... } style
60
+ const obj = value;
61
+ result[key] = Object.fromEntries(Object.entries(obj).map(([k, v]) => [k, v.replace(/^\.\/dist\//, "./")]));
62
+ }
63
+ else {
64
+ result[key] = value;
65
+ }
66
+ }
67
+ return result;
68
+ }
69
+ /**
70
+ * Create a minimal package.json for the vendored package.
71
+ */
72
+ function createVendorPackageJson(srcPkgPath, destPkgPath) {
73
+ const srcPkg = JSON.parse(fs.readFileSync(srcPkgPath, "utf-8"));
74
+ // Create minimal package.json with only what's needed for module resolution
75
+ // Rewrite exports to point to root (since we copy dist/ contents to package root)
76
+ const vendorPkg = {
77
+ name: srcPkg.name,
78
+ version: srcPkg.version,
79
+ type: srcPkg.type ?? "module",
80
+ exports: rewriteExports(srcPkg.exports),
81
+ // Rewrite workspace:* dependencies to point to sibling vendor packages
82
+ dependencies: Object.fromEntries(Object.entries(srcPkg.dependencies ?? {})
83
+ .filter(([, version]) => !String(version).startsWith("workspace:"))
84
+ .map(([name, version]) => [name, version])),
85
+ };
86
+ fs.writeFileSync(destPkgPath, JSON.stringify(vendorPkg, null, 2) + "\n");
87
+ }
88
+ /**
89
+ * Main bundle function.
90
+ */
91
+ function bundle() {
92
+ const vendorRoot = path.join(distRoot, "vendor", "node_modules");
93
+ // Clean vendor directory
94
+ if (fs.existsSync(vendorRoot)) {
95
+ fs.rmSync(vendorRoot, { recursive: true });
96
+ }
97
+ fs.mkdirSync(vendorRoot, { recursive: true });
98
+ console.log("Bundling packages into vendor/...");
99
+ for (const pkg of packages) {
100
+ const srcPkgDir = path.join(packagesRoot, pkg.srcDir);
101
+ const srcDistDir = path.join(srcPkgDir, "dist");
102
+ const srcPkgJson = path.join(srcPkgDir, "package.json");
103
+ // Destination in vendor/node_modules/@agent-recorder/{name}
104
+ const destPkgDir = path.join(vendorRoot, pkg.name);
105
+ if (!fs.existsSync(srcDistDir)) {
106
+ console.error(`Error: ${srcDistDir} does not exist. Run pnpm build first.`);
107
+ process.exit(1);
108
+ }
109
+ console.log(` Copying ${pkg.name}...`);
110
+ // Copy dist/ contents to package root (so exports work correctly)
111
+ copyDir(srcDistDir, destPkgDir);
112
+ // Copy extra files if specified (e.g., migrations)
113
+ for (const extra of pkg.extraFiles ?? []) {
114
+ const srcExtra = path.join(srcPkgDir, extra);
115
+ if (fs.existsSync(srcExtra)) {
116
+ const destExtra = path.join(destPkgDir, extra);
117
+ if (fs.statSync(srcExtra).isDirectory()) {
118
+ copyDir(srcExtra, destExtra);
119
+ }
120
+ else {
121
+ fs.copyFileSync(srcExtra, destExtra);
122
+ }
123
+ }
124
+ }
125
+ // Create vendor package.json
126
+ createVendorPackageJson(srcPkgJson, path.join(destPkgDir, "package.json"));
127
+ }
128
+ console.log("Bundle complete!");
129
+ }
130
+ bundle();
131
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Agent Recorder - Distribution Entrypoint
4
+ *
5
+ * This is the main entry point for the distributed npm package.
6
+ * It sets up module resolution to use vendor/ packages and then
7
+ * runs the CLI.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
package/dist/index.js ADDED
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Agent Recorder - Distribution Entrypoint
4
+ *
5
+ * This is the main entry point for the distributed npm package.
6
+ * It sets up module resolution to use vendor/ packages and then
7
+ * runs the CLI.
8
+ */
9
+ import { fileURLToPath } from "node:url";
10
+ import { dirname, join } from "node:path";
11
+ import { createRequire } from "node:module";
12
+ // Get the directory of this script
13
+ const __filename = fileURLToPath(import.meta.url);
14
+ const __dirname = dirname(__filename);
15
+ // Set up NODE_PATH to include vendor/node_modules for @agent-recorder/* resolution
16
+ const vendorPath = join(__dirname, "..", "vendor", "node_modules");
17
+ if (process.env.NODE_PATH) {
18
+ process.env.NODE_PATH = `${vendorPath}:${process.env.NODE_PATH}`;
19
+ }
20
+ else {
21
+ process.env.NODE_PATH = vendorPath;
22
+ }
23
+ // Re-initialize module resolution with updated NODE_PATH
24
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
25
+ const Module = createRequire(import.meta.url)("module");
26
+ Module._initPaths?.();
27
+ // Import and run the CLI
28
+ // The CLI is in vendor/node_modules/@agent-recorder/cli
29
+ const cliPath = join(vendorPath, "@agent-recorder", "cli", "index.js");
30
+ await import(cliPath);
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,mCAAmC;AACnC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,mFAAmF;AACnF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AACnE,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;AACnE,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC;AACrC,CAAC;AAED,yDAAyD;AACzD,iEAAiE;AACjE,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AACxD,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;AAEtB,yBAAyB;AACzB,wDAAwD;AACxD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AACvE,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "agent-recorder",
3
+ "version": "0.0.1",
4
+ "description": "Local-first flight recorder for Claude Code",
5
+ "type": "module",
6
+ "bin": {
7
+ "agent-recorder": "./dist/index.js"
8
+ },
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "vendor"
18
+ ],
19
+ "engines": {
20
+ "node": ">=20.0.0"
21
+ },
22
+ "scripts": {
23
+ "build": "tsc",
24
+ "bundle": "node dist/bundle.js",
25
+ "prebuild:dist": "pnpm run build",
26
+ "build:dist": "pnpm run bundle"
27
+ },
28
+ "dependencies": {
29
+ "better-sqlite3": "^11.7.0",
30
+ "commander": "^13.0.0",
31
+ "fastify": "^5.0.0",
32
+ "ink": "^5.0.1",
33
+ "ink-text-input": "^6.0.0",
34
+ "react": "^18.3.1"
35
+ },
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "https://github.com/yourusername/agent-recorder"
39
+ },
40
+ "keywords": [
41
+ "claude",
42
+ "claude-code",
43
+ "mcp",
44
+ "flight-recorder",
45
+ "agent",
46
+ "observability"
47
+ ],
48
+ "author": "Edyta Kucharska",
49
+ "license": "MIT",
50
+ "devDependencies": {
51
+ "@types/node": "^22.0.0"
52
+ }
53
+ }
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Session analytics - pure functions for computing session metrics.
3
+ * These functions work on BaseEvent[] arrays fetched from the API.
4
+ * No side effects, no I/O - just computation.
5
+ */
6
+ /**
7
+ * Compute session summary from events.
8
+ */
9
+ export function computeSessionSummary(events, slowestCount = 10) {
10
+ const byStatus = {};
11
+ const byEventType = {};
12
+ const byToolName = {};
13
+ const byErrorCategory = {};
14
+ let successCount = 0;
15
+ let errorCount = 0;
16
+ let timeoutCount = 0;
17
+ let totalDurationMs = 0;
18
+ let durationCount = 0;
19
+ // Collect durations for slowest calls
20
+ const durations = [];
21
+ for (const event of events) {
22
+ // Count by status
23
+ byStatus[event.status] = (byStatus[event.status] ?? 0) + 1;
24
+ // Count by event type
25
+ byEventType[event.eventType] = (byEventType[event.eventType] ?? 0) + 1;
26
+ // Count by tool name
27
+ if (event.toolName) {
28
+ byToolName[event.toolName] = (byToolName[event.toolName] ?? 0) + 1;
29
+ }
30
+ // Count by error category
31
+ if (event.errorCategory) {
32
+ byErrorCategory[event.errorCategory] =
33
+ (byErrorCategory[event.errorCategory] ?? 0) + 1;
34
+ }
35
+ // Count success/error/timeout
36
+ if (event.status === "success") {
37
+ successCount++;
38
+ }
39
+ else if (event.status === "error") {
40
+ errorCount++;
41
+ }
42
+ else if (event.status === "timeout") {
43
+ timeoutCount++;
44
+ }
45
+ // Compute duration if both timestamps present
46
+ if (event.startedAt && event.endedAt) {
47
+ const duration = new Date(event.endedAt).getTime() - new Date(event.startedAt).getTime();
48
+ totalDurationMs += duration;
49
+ durationCount++;
50
+ durations.push({
51
+ sequence: event.sequence,
52
+ toolName: event.toolName,
53
+ durationMs: duration,
54
+ });
55
+ }
56
+ }
57
+ // Top tools by count
58
+ const topTools = Object.entries(byToolName)
59
+ .sort(([, a], [, b]) => b - a)
60
+ .slice(0, 5)
61
+ .map(([name, count]) => ({ name, count }));
62
+ // Top errors by count
63
+ const topErrors = Object.entries(byErrorCategory)
64
+ .sort(([, a], [, b]) => b - a)
65
+ .slice(0, 5)
66
+ .map(([category, count]) => ({
67
+ category: category,
68
+ count,
69
+ }));
70
+ // Slowest calls
71
+ const slowestCalls = durations
72
+ .sort((a, b) => b.durationMs - a.durationMs)
73
+ .slice(0, slowestCount);
74
+ return {
75
+ totalEvents: events.length,
76
+ byStatus,
77
+ byEventType,
78
+ byToolName,
79
+ byErrorCategory,
80
+ successCount,
81
+ errorCount,
82
+ timeoutCount,
83
+ errorRate: events.length > 0 ? (errorCount + timeoutCount) / events.length : 0,
84
+ avgDurationMs: durationCount > 0 ? Math.round(totalDurationMs / durationCount) : null,
85
+ totalDurationMs,
86
+ topTools,
87
+ topErrors,
88
+ slowestCalls,
89
+ };
90
+ }
91
+ /**
92
+ * Format summary as human-readable text.
93
+ */
94
+ export function formatSummaryText(summary) {
95
+ const lines = [];
96
+ lines.push("Session Summary");
97
+ lines.push("=".repeat(50));
98
+ lines.push(`Total Events: ${summary.totalEvents}`);
99
+ lines.push(`Error Rate: ${(summary.errorRate * 100).toFixed(1)}% (${summary.errorCount} errors, ${summary.timeoutCount} timeouts)`);
100
+ lines.push(`Avg Duration: ${summary.avgDurationMs !== null ? `${summary.avgDurationMs}ms` : "N/A"}`);
101
+ lines.push(`Total Duration: ${summary.totalDurationMs}ms`);
102
+ lines.push("");
103
+ // By status
104
+ lines.push("By Status:");
105
+ for (const [status, count] of Object.entries(summary.byStatus)) {
106
+ lines.push(` ${status}: ${count}`);
107
+ }
108
+ lines.push("");
109
+ // Top tools
110
+ if (summary.topTools.length > 0) {
111
+ lines.push("Top Tools:");
112
+ for (const { name, count } of summary.topTools) {
113
+ lines.push(` ${name}: ${count}`);
114
+ }
115
+ lines.push("");
116
+ }
117
+ // Error categories
118
+ if (summary.topErrors.length > 0) {
119
+ lines.push("Error Categories:");
120
+ for (const { category, count } of summary.topErrors) {
121
+ lines.push(` ${category}: ${count}`);
122
+ }
123
+ lines.push("");
124
+ }
125
+ // Slowest calls
126
+ if (summary.slowestCalls.length > 0) {
127
+ lines.push("Slowest Calls:");
128
+ for (const { sequence, toolName, durationMs } of summary.slowestCalls.slice(0, 5)) {
129
+ lines.push(` [${sequence}] ${toolName ?? "-"}: ${durationMs}ms`);
130
+ }
131
+ }
132
+ return lines.join("\n");
133
+ }
134
+ /**
135
+ * Format a concise one-line safe summary (no content).
136
+ */
137
+ export function formatConciseSummary(events, summary) {
138
+ const parts = [];
139
+ // Total events with top tools
140
+ const toolBreakdown = summary.topTools
141
+ .slice(0, 3)
142
+ .map((t) => `${t.name}(${t.count})`)
143
+ .join(", ");
144
+ parts.push(`${summary.totalEvents} tool calls across ${toolBreakdown}${summary.topTools.length > 3 ? "..." : ""}`);
145
+ // Errors
146
+ if (summary.errorCount > 0 || summary.timeoutCount > 0) {
147
+ const errorDetails = summary.topErrors
148
+ .map((e) => `${e.category}`)
149
+ .join(", ");
150
+ parts.push(`${summary.errorCount + summary.timeoutCount} error(s): ${errorDetails || "unknown"}`);
151
+ }
152
+ // Slowest call
153
+ if (summary.slowestCalls.length > 0) {
154
+ const slowest = summary.slowestCalls[0];
155
+ parts.push(`Slowest: ${slowest.toolName ?? "unknown"} (${slowest.durationMs}ms)`);
156
+ }
157
+ // Total wall time
158
+ if (summary.totalDurationMs > 0) {
159
+ const wallTime = (summary.totalDurationMs / 1000).toFixed(1);
160
+ parts.push(`Total time: ${wallTime}s`);
161
+ }
162
+ return parts.join("\n");
163
+ }
164
+ /**
165
+ * Format stats output for CLI.
166
+ */
167
+ export function formatStatsText(summary) {
168
+ const lines = [];
169
+ lines.push("Session Statistics");
170
+ lines.push("=".repeat(50));
171
+ lines.push("");
172
+ // Counts by tool
173
+ lines.push("Tool Call Counts (sorted by frequency):");
174
+ const sortedTools = Object.entries(summary.byToolName).sort(([, a], [, b]) => b - a);
175
+ for (const [name, count] of sortedTools) {
176
+ lines.push(` ${name.padEnd(30)} ${count}`);
177
+ }
178
+ lines.push("");
179
+ // Slowest calls
180
+ if (summary.slowestCalls.length > 0) {
181
+ lines.push("Slowest Calls (top 10):");
182
+ for (const { sequence, toolName, durationMs } of summary.slowestCalls) {
183
+ lines.push(` [${String(sequence).padStart(4)}] ${(toolName ?? "-").padEnd(30)} ${durationMs}ms`);
184
+ }
185
+ lines.push("");
186
+ }
187
+ // Error counts by tool
188
+ if (summary.topErrors.length > 0) {
189
+ lines.push("Error Categories:");
190
+ for (const { category, count } of summary.topErrors) {
191
+ lines.push(` ${category.padEnd(30)} ${count}`);
192
+ }
193
+ lines.push("");
194
+ }
195
+ // Summary stats
196
+ lines.push("Summary:");
197
+ lines.push(` Total Events: ${summary.totalEvents}`);
198
+ lines.push(` Success: ${summary.successCount}`);
199
+ lines.push(` Errors: ${summary.errorCount}`);
200
+ lines.push(` Timeouts: ${summary.timeoutCount}`);
201
+ lines.push(` Avg Duration: ${summary.avgDurationMs !== null ? `${summary.avgDurationMs}ms` : "N/A"}`);
202
+ lines.push(` Total Duration: ${summary.totalDurationMs}ms`);
203
+ return lines.join("\n");
204
+ }
205
+ //# sourceMappingURL=session-analytics.js.map
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Session analytics - pure functions for computing session metrics.
3
+ * These functions work on BaseEvent[] arrays fetched from the API.
4
+ * No side effects, no I/O - just computation.
5
+ */
6
+ import type { BaseEvent, ErrorCategory } from "@agent-recorder/core";
7
+ /** Session summary computed from events */
8
+ export interface SessionSummary {
9
+ totalEvents: number;
10
+ byStatus: Record<string, number>;
11
+ byEventType: Record<string, number>;
12
+ byToolName: Record<string, number>;
13
+ byErrorCategory: Record<string, number>;
14
+ successCount: number;
15
+ errorCount: number;
16
+ timeoutCount: number;
17
+ errorRate: number;
18
+ avgDurationMs: number | null;
19
+ totalDurationMs: number;
20
+ topTools: Array<{
21
+ name: string;
22
+ count: number;
23
+ }>;
24
+ topErrors: Array<{
25
+ category: ErrorCategory;
26
+ count: number;
27
+ }>;
28
+ slowestCalls: Array<{
29
+ sequence: number;
30
+ toolName: string | null;
31
+ durationMs: number;
32
+ }>;
33
+ }
34
+ /**
35
+ * Compute session summary from events.
36
+ */
37
+ export declare function computeSessionSummary(events: BaseEvent[], slowestCount?: number): SessionSummary;
38
+ /**
39
+ * Format summary as human-readable text.
40
+ */
41
+ export declare function formatSummaryText(summary: SessionSummary): string;
42
+ /**
43
+ * Format a concise one-line safe summary (no content).
44
+ */
45
+ export declare function formatConciseSummary(events: BaseEvent[], summary: SessionSummary): string;
46
+ /**
47
+ * Format stats output for CLI.
48
+ */
49
+ export declare function formatStatsText(summary: SessionSummary): string;
50
+ //# sourceMappingURL=session-analytics.d.ts.map