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
@@ -0,0 +1,128 @@
1
+ /**
2
+ * @agent-recorder/service
3
+ *
4
+ * Local daemon for Agent Recorder.
5
+ * Runs SQLite persistence + REST API on localhost.
6
+ * Always runs MCP proxy (returns 503 if downstream not configured).
7
+ */
8
+ import { loadConfig, openDatabase, runMigrations, getDefaultMigrationsDir, getDaemonPaths, writePidFile, removePidFile, releaseLock, } from "@agent-recorder/core";
9
+ import { createServer, startServer } from "./server.js";
10
+ import { createMcpProxy } from "./mcp/index.js";
11
+ import { createSessionManager } from "./session-manager.js";
12
+ export { createServer, startServer } from "./server.js";
13
+ export { createMcpProxy } from "./mcp/index.js";
14
+ export { createSessionManager } from "./session-manager.js";
15
+ // Track daemon state for health endpoint
16
+ let daemonMode = false;
17
+ let daemonSessionId = null;
18
+ let daemonStartedAt = null;
19
+ /**
20
+ * Get daemon runtime info for health endpoint.
21
+ */
22
+ export function getDaemonInfo() {
23
+ return {
24
+ mode: daemonMode ? "daemon" : "foreground",
25
+ sessionId: daemonSessionId,
26
+ startedAt: daemonStartedAt,
27
+ };
28
+ }
29
+ /**
30
+ * Start the daemon with default configuration.
31
+ * Used by CLI and for direct execution.
32
+ *
33
+ * @param options - Daemon options (daemon mode, etc.)
34
+ */
35
+ export async function startDaemon(options = {}) {
36
+ const config = loadConfig();
37
+ const paths = getDaemonPaths();
38
+ daemonMode = options.daemon ?? false;
39
+ console.log("Starting Agent Recorder daemon...");
40
+ console.log(`Mode: ${daemonMode ? "daemon" : "foreground"}`);
41
+ console.log(`Database: ${config.dbPath}`);
42
+ console.log(`REST API port: ${config.listenPort}`);
43
+ // Open database
44
+ const db = openDatabase(config.dbPath);
45
+ // Run migrations
46
+ const migrationsDir = getDefaultMigrationsDir();
47
+ runMigrations(db, migrationsDir);
48
+ // Create session manager (core generates ID)
49
+ const sessionManager = createSessionManager(db);
50
+ const startedAt = new Date().toISOString();
51
+ // Store for health endpoint
52
+ daemonSessionId = sessionManager.sessionId;
53
+ daemonStartedAt = startedAt;
54
+ // Create and start REST API server (pass currentSessionId for /api/sessions/current)
55
+ const app = await createServer({
56
+ db,
57
+ currentSessionId: sessionManager.sessionId,
58
+ });
59
+ await startServer(app, config.listenPort);
60
+ // Always start MCP proxy (handles missing downstream with 503)
61
+ console.log(`MCP proxy port: ${config.mcpProxyPort}`);
62
+ if (config.downstreamMcpUrl) {
63
+ console.log(`Downstream MCP: ${config.downstreamMcpUrl}`);
64
+ }
65
+ else {
66
+ console.log("Downstream MCP: not configured (POST / will return 503)");
67
+ }
68
+ const proxy = await createMcpProxy({
69
+ db,
70
+ config,
71
+ sessionId: sessionManager.sessionId,
72
+ });
73
+ await proxy.start();
74
+ // Write PID file only in daemon mode
75
+ if (daemonMode) {
76
+ writePidFile(process.pid);
77
+ console.log(`PID file: ${paths.pidFile}`);
78
+ }
79
+ console.log("Agent Recorder daemon started.");
80
+ // Track if we're already shutting down to prevent double shutdown
81
+ let isShuttingDown = false;
82
+ // Graceful shutdown function
83
+ const shutdown = async (status = "cancelled") => {
84
+ if (isShuttingDown) {
85
+ return;
86
+ }
87
+ isShuttingDown = true;
88
+ console.log(`\nShutting down (status: ${status})...`);
89
+ sessionManager.shutdown(status);
90
+ await proxy.close();
91
+ await app.close();
92
+ db.close();
93
+ // Clean up PID file and lock in daemon mode
94
+ if (daemonMode) {
95
+ removePidFile();
96
+ releaseLock(paths.lockFile);
97
+ }
98
+ console.log("Shutdown complete.");
99
+ };
100
+ // Signal handlers:
101
+ // SIGINT (Ctrl+C) → completed (user intentionally stopped)
102
+ // SIGTERM → cancelled (external termination)
103
+ process.on("SIGINT", () => shutdown("completed").then(() => process.exit(0)));
104
+ process.on("SIGTERM", () => shutdown("cancelled").then(() => process.exit(0)));
105
+ // Ignore SIGHUP (no reload needed)
106
+ process.on("SIGHUP", () => {
107
+ console.log("Received SIGHUP, ignoring.");
108
+ });
109
+ return {
110
+ shutdown,
111
+ sessionId: sessionManager.sessionId,
112
+ startedAt,
113
+ };
114
+ }
115
+ // Run if executed directly
116
+ // Note: pathToFileURL handles spaces and special characters correctly
117
+ import { pathToFileURL } from "node:url";
118
+ const isMainModule = process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href;
119
+ if (isMainModule) {
120
+ // Parse command line arguments
121
+ const args = process.argv.slice(2);
122
+ const isDaemon = args.includes("--daemon");
123
+ startDaemon({ daemon: isDaemon }).catch((error) => {
124
+ console.error("Failed to start daemon:", error);
125
+ process.exit(1);
126
+ });
127
+ }
128
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @agent-recorder/service
3
+ *
4
+ * Local daemon for Agent Recorder.
5
+ * Runs SQLite persistence + REST API on localhost.
6
+ * Always runs MCP proxy (returns 503 if downstream not configured).
7
+ */
8
+ import { type SessionStatus } from "@agent-recorder/core";
9
+ export { createServer, startServer } from "./server.js";
10
+ export { createMcpProxy } from "./mcp/index.js";
11
+ export { createSessionManager } from "./session-manager.js";
12
+ export interface DaemonHandle {
13
+ shutdown: (status?: SessionStatus) => Promise<void>;
14
+ sessionId: string;
15
+ startedAt: string;
16
+ }
17
+ export interface DaemonOptions {
18
+ /** Run in daemon mode (writes PID file, different shutdown behavior) */
19
+ daemon?: boolean;
20
+ }
21
+ /**
22
+ * Get daemon runtime info for health endpoint.
23
+ */
24
+ export declare function getDaemonInfo(): {
25
+ mode: "daemon" | "foreground";
26
+ sessionId: string | null;
27
+ startedAt: string | null;
28
+ };
29
+ /**
30
+ * Start the daemon with default configuration.
31
+ * Used by CLI and for direct execution.
32
+ *
33
+ * @param options - Daemon options (daemon mode, etc.)
34
+ */
35
+ export declare function startDaemon(options?: DaemonOptions): Promise<DaemonHandle>;
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @agent-recorder/service
3
+ *
4
+ * Local daemon for Agent Recorder.
5
+ * Runs SQLite persistence + REST API on localhost.
6
+ * Always runs MCP proxy (returns 503 if downstream not configured).
7
+ */
8
+ import { type SessionStatus } from "@agent-recorder/core";
9
+ export { createServer, startServer } from "./server.js";
10
+ export { createMcpProxy } from "./mcp/index.js";
11
+ export { createSessionManager } from "./session-manager.js";
12
+ export interface DaemonHandle {
13
+ shutdown: (status?: SessionStatus) => Promise<void>;
14
+ sessionId: string;
15
+ startedAt: string;
16
+ }
17
+ export interface DaemonOptions {
18
+ /** Run in daemon mode (writes PID file, different shutdown behavior) */
19
+ daemon?: boolean;
20
+ }
21
+ /**
22
+ * Get daemon runtime info for health endpoint.
23
+ */
24
+ export declare function getDaemonInfo(): {
25
+ mode: "daemon" | "foreground";
26
+ sessionId: string | null;
27
+ startedAt: string | null;
28
+ };
29
+ /**
30
+ * Start the daemon with default configuration.
31
+ * Used by CLI and for direct execution.
32
+ *
33
+ * @param options - Daemon options (daemon mode, etc.)
34
+ */
35
+ export declare function startDaemon(options?: DaemonOptions): Promise<DaemonHandle>;
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EASL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAOD;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAC/B,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAMA;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAkGvB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EASL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAOD;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAC/B,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAMA;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAkGvB"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * @agent-recorder/service
3
+ *
4
+ * Local daemon for Agent Recorder.
5
+ * Runs SQLite persistence + REST API on localhost.
6
+ * Always runs MCP proxy (returns 503 if downstream not configured).
7
+ */
8
+ import { loadConfig, openDatabase, runMigrations, getDefaultMigrationsDir, getDaemonPaths, writePidFile, removePidFile, releaseLock, } from "@agent-recorder/core";
9
+ import { createServer, startServer } from "./server.js";
10
+ import { createMcpProxy } from "./mcp/index.js";
11
+ import { createSessionManager } from "./session-manager.js";
12
+ export { createServer, startServer } from "./server.js";
13
+ export { createMcpProxy } from "./mcp/index.js";
14
+ export { createSessionManager } from "./session-manager.js";
15
+ // Track daemon state for health endpoint
16
+ let daemonMode = false;
17
+ let daemonSessionId = null;
18
+ let daemonStartedAt = null;
19
+ /**
20
+ * Get daemon runtime info for health endpoint.
21
+ */
22
+ export function getDaemonInfo() {
23
+ return {
24
+ mode: daemonMode ? "daemon" : "foreground",
25
+ sessionId: daemonSessionId,
26
+ startedAt: daemonStartedAt,
27
+ };
28
+ }
29
+ /**
30
+ * Start the daemon with default configuration.
31
+ * Used by CLI and for direct execution.
32
+ *
33
+ * @param options - Daemon options (daemon mode, etc.)
34
+ */
35
+ export async function startDaemon(options = {}) {
36
+ const config = loadConfig();
37
+ const paths = getDaemonPaths();
38
+ daemonMode = options.daemon ?? false;
39
+ console.log("Starting Agent Recorder daemon...");
40
+ console.log(`Mode: ${daemonMode ? "daemon" : "foreground"}`);
41
+ console.log(`Database: ${config.dbPath}`);
42
+ console.log(`REST API port: ${config.listenPort}`);
43
+ // Open database
44
+ const db = openDatabase(config.dbPath);
45
+ // Run migrations
46
+ const migrationsDir = getDefaultMigrationsDir();
47
+ runMigrations(db, migrationsDir);
48
+ // Create session manager (core generates ID)
49
+ const sessionManager = createSessionManager(db);
50
+ const startedAt = new Date().toISOString();
51
+ // Store for health endpoint
52
+ daemonSessionId = sessionManager.sessionId;
53
+ daemonStartedAt = startedAt;
54
+ // Create and start REST API server (pass currentSessionId for /api/sessions/current)
55
+ const app = await createServer({
56
+ db,
57
+ currentSessionId: sessionManager.sessionId,
58
+ });
59
+ await startServer(app, config.listenPort);
60
+ // Always start MCP proxy (handles missing downstream with 503)
61
+ console.log(`MCP proxy port: ${config.mcpProxyPort}`);
62
+ if (config.downstreamMcpUrl) {
63
+ console.log(`Downstream MCP: ${config.downstreamMcpUrl}`);
64
+ }
65
+ else {
66
+ console.log("Downstream MCP: not configured (POST / will return 503)");
67
+ }
68
+ const proxy = await createMcpProxy({
69
+ db,
70
+ config,
71
+ sessionId: sessionManager.sessionId,
72
+ });
73
+ await proxy.start();
74
+ // Write PID file only in daemon mode
75
+ if (daemonMode) {
76
+ writePidFile(process.pid);
77
+ console.log(`PID file: ${paths.pidFile}`);
78
+ }
79
+ console.log("Agent Recorder daemon started.");
80
+ // Track if we're already shutting down to prevent double shutdown
81
+ let isShuttingDown = false;
82
+ // Graceful shutdown function
83
+ const shutdown = async (status = "cancelled") => {
84
+ if (isShuttingDown) {
85
+ return;
86
+ }
87
+ isShuttingDown = true;
88
+ console.log(`\nShutting down (status: ${status})...`);
89
+ sessionManager.shutdown(status);
90
+ await proxy.close();
91
+ await app.close();
92
+ db.close();
93
+ // Clean up PID file and lock in daemon mode
94
+ if (daemonMode) {
95
+ removePidFile();
96
+ releaseLock(paths.lockFile);
97
+ }
98
+ console.log("Shutdown complete.");
99
+ };
100
+ // Signal handlers:
101
+ // SIGINT (Ctrl+C) → completed (user intentionally stopped)
102
+ // SIGTERM → cancelled (external termination)
103
+ process.on("SIGINT", () => shutdown("completed").then(() => process.exit(0)));
104
+ process.on("SIGTERM", () => shutdown("cancelled").then(() => process.exit(0)));
105
+ // Ignore SIGHUP (no reload needed)
106
+ process.on("SIGHUP", () => {
107
+ console.log("Received SIGHUP, ignoring.");
108
+ });
109
+ return {
110
+ shutdown,
111
+ sessionId: sessionManager.sessionId,
112
+ startedAt,
113
+ };
114
+ }
115
+ // Run if executed directly
116
+ // Note: pathToFileURL handles spaces and special characters correctly
117
+ import { pathToFileURL } from "node:url";
118
+ const isMainModule = process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href;
119
+ if (isMainModule) {
120
+ // Parse command line arguments
121
+ const args = process.argv.slice(2);
122
+ const isDaemon = args.includes("--daemon");
123
+ startDaemon({ daemon: isDaemon }).catch((error) => {
124
+ console.error("Failed to start daemon:", error);
125
+ process.exit(1);
126
+ });
127
+ }
128
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * MCP proxy module exports.
3
+ */
4
+ export { createMcpProxy } from "./proxy.js";
5
+ export { recordToolCall } from "./recorder.js";
6
+ export * from "./types.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * MCP proxy module exports.
3
+ */
4
+ export { createMcpProxy, type McpProxyOptions } from "./proxy.js";
5
+ export { recordToolCall, type RecordToolCallOptions } from "./recorder.js";
6
+ export * from "./types.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * MCP proxy module exports.
3
+ */
4
+ export { createMcpProxy, type McpProxyOptions } from "./proxy.js";
5
+ export { recordToolCall, type RecordToolCallOptions } from "./recorder.js";
6
+ export * from "./types.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3E,cAAc,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3E,cAAc,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * MCP proxy module exports.
3
+ */
4
+ export { createMcpProxy } from "./proxy.js";
5
+ export { recordToolCall } from "./recorder.js";
6
+ export * from "./types.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAwB,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,cAAc,EAA8B,MAAM,eAAe,CAAC;AAC3E,cAAc,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAwB,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,cAAc,EAA8B,MAAM,eAAe,CAAC;AAC3E,cAAc,YAAY,CAAC"}
@@ -0,0 +1,223 @@
1
+ /**
2
+ * MCP Proxy using Streamable HTTP transport.
3
+ * Handles POST requests only, returns application/json responses.
4
+ * Records tools/call events to the database.
5
+ */
6
+ import Fastify, {} from "fastify";
7
+ import { isToolsCallRequest, isErrorResponse, } from "./types.js";
8
+ import { recordToolCall } from "./recorder.js";
9
+ /** Default request timeout in milliseconds */
10
+ const DEFAULT_TIMEOUT_MS = 60_000;
11
+ /** Hop-by-hop headers that should not be forwarded */
12
+ const HOP_BY_HOP_HEADERS = new Set([
13
+ "host",
14
+ "connection",
15
+ "content-length",
16
+ "transfer-encoding",
17
+ "keep-alive",
18
+ "upgrade",
19
+ "proxy-connection",
20
+ "proxy-authenticate",
21
+ "proxy-authorization",
22
+ "te",
23
+ "trailer",
24
+ ]);
25
+ /**
26
+ * Validate minimal JSON-RPC 2.0 request shape.
27
+ * Returns error message if invalid, null if valid.
28
+ */
29
+ function validateJsonRpcRequest(body) {
30
+ if (body === null || typeof body !== "object" || Array.isArray(body)) {
31
+ return "Request body must be an object";
32
+ }
33
+ const obj = body;
34
+ if (obj.jsonrpc !== "2.0") {
35
+ return "Invalid JSON-RPC version (expected 2.0)";
36
+ }
37
+ if (typeof obj.method !== "string" || obj.method.length === 0) {
38
+ return "Missing or invalid method";
39
+ }
40
+ return null;
41
+ }
42
+ /**
43
+ * Build headers to forward to downstream, preserving safe headers.
44
+ */
45
+ function buildForwardHeaders(requestHeaders) {
46
+ const headers = {
47
+ "Content-Type": "application/json",
48
+ Accept: "application/json",
49
+ };
50
+ for (const [key, value] of Object.entries(requestHeaders)) {
51
+ const lowerKey = key.toLowerCase();
52
+ // Skip hop-by-hop headers
53
+ if (HOP_BY_HOP_HEADERS.has(lowerKey)) {
54
+ continue;
55
+ }
56
+ // Skip content-type and accept (we set our own)
57
+ if (lowerKey === "content-type" || lowerKey === "accept") {
58
+ continue;
59
+ }
60
+ // Preserve authorization and other safe headers
61
+ if (value !== undefined) {
62
+ headers[key] = Array.isArray(value) ? value.join(", ") : value;
63
+ }
64
+ }
65
+ return headers;
66
+ }
67
+ /**
68
+ * Create an MCP proxy server.
69
+ */
70
+ export async function createMcpProxy(options) {
71
+ const { db, config, sessionId, timeoutMs = DEFAULT_TIMEOUT_MS } = options;
72
+ const { downstreamMcpUrl, redactKeys, mcpProxyPort, debugProxy } = config;
73
+ const app = Fastify({ logger: false });
74
+ // Health check endpoint
75
+ app.get("/health", async () => {
76
+ return { status: "ok", proxy: true };
77
+ });
78
+ // MCP POST handler
79
+ app.post("/", async (request, reply) => {
80
+ // Validate downstream URL is configured
81
+ if (!downstreamMcpUrl) {
82
+ return reply.code(503).send({
83
+ jsonrpc: "2.0",
84
+ error: {
85
+ code: -32000,
86
+ message: "Downstream MCP server not configured",
87
+ },
88
+ id: null,
89
+ });
90
+ }
91
+ // Validate minimal JSON-RPC shape
92
+ const validationError = validateJsonRpcRequest(request.body);
93
+ if (validationError) {
94
+ return reply.code(400).send({
95
+ jsonrpc: "2.0",
96
+ error: {
97
+ code: -32600,
98
+ message: validationError,
99
+ },
100
+ id: null,
101
+ });
102
+ }
103
+ const body = request.body;
104
+ // Check if this is a tools/call request
105
+ const isToolCall = isToolsCallRequest(body);
106
+ const startedAt = new Date().toISOString();
107
+ let toolName = null;
108
+ let toolInput = null;
109
+ if (isToolCall) {
110
+ const params = body.params;
111
+ toolName = params.name;
112
+ toolInput = params.arguments ?? {};
113
+ }
114
+ // Build headers to forward
115
+ const forwardHeaders = buildForwardHeaders(request.headers);
116
+ // Create abort controller for timeout
117
+ const controller = new AbortController();
118
+ const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
119
+ // Forward request to downstream
120
+ let downstreamResponse;
121
+ try {
122
+ downstreamResponse = await fetch(downstreamMcpUrl, {
123
+ method: "POST",
124
+ headers: forwardHeaders,
125
+ body: JSON.stringify(body),
126
+ signal: controller.signal,
127
+ });
128
+ }
129
+ catch (error) {
130
+ clearTimeout(timeoutId);
131
+ // Check if this was a timeout
132
+ if (error instanceof Error && error.name === "AbortError") {
133
+ const endedAt = new Date().toISOString();
134
+ // Record timeout if this was a tools/call
135
+ if (isToolCall && toolName && sessionId) {
136
+ recordToolCall({
137
+ db,
138
+ sessionId,
139
+ toolName,
140
+ mcpMethod: "tools/call",
141
+ input: toolInput,
142
+ output: { error: "Request timeout" },
143
+ status: "timeout",
144
+ startedAt,
145
+ endedAt,
146
+ redactKeys,
147
+ debugProxy,
148
+ });
149
+ }
150
+ return reply.code(504).send({
151
+ jsonrpc: "2.0",
152
+ error: {
153
+ code: -32000,
154
+ message: "Request timeout",
155
+ data: { category: "timeout" },
156
+ },
157
+ id: body.id ?? null,
158
+ });
159
+ }
160
+ // Log without potentially sensitive data
161
+ console.error("Failed to forward request to downstream");
162
+ return reply.code(502).send({
163
+ jsonrpc: "2.0",
164
+ error: {
165
+ code: -32000,
166
+ message: "Failed to connect to downstream MCP server",
167
+ },
168
+ id: body.id ?? null,
169
+ });
170
+ }
171
+ clearTimeout(timeoutId);
172
+ // Parse downstream response
173
+ let responseBody;
174
+ try {
175
+ responseBody = (await downstreamResponse.json());
176
+ }
177
+ catch {
178
+ console.error("Failed to parse downstream response");
179
+ return reply.code(502).send({
180
+ jsonrpc: "2.0",
181
+ error: {
182
+ code: -32000,
183
+ message: "Invalid response from downstream MCP server",
184
+ },
185
+ id: body.id ?? null,
186
+ });
187
+ }
188
+ const endedAt = new Date().toISOString();
189
+ // Record tool call event if this was a tools/call request and we have a session
190
+ if (isToolCall && toolName && sessionId) {
191
+ const status = isErrorResponse(responseBody) ? "error" : "success";
192
+ const output = isErrorResponse(responseBody)
193
+ ? responseBody.error
194
+ : responseBody.result;
195
+ recordToolCall({
196
+ db,
197
+ sessionId,
198
+ toolName,
199
+ mcpMethod: "tools/call",
200
+ input: toolInput,
201
+ output,
202
+ status,
203
+ startedAt,
204
+ endedAt,
205
+ redactKeys,
206
+ debugProxy,
207
+ });
208
+ }
209
+ // Preserve downstream HTTP status code and return response unchanged
210
+ reply.code(downstreamResponse.status);
211
+ reply.header("Content-Type", "application/json");
212
+ return reply.send(responseBody);
213
+ });
214
+ const start = async () => {
215
+ await app.listen({ port: mcpProxyPort, host: "127.0.0.1" });
216
+ console.log(`MCP proxy listening on http://127.0.0.1:${mcpProxyPort}`);
217
+ };
218
+ const close = async () => {
219
+ await app.close();
220
+ };
221
+ return { app, start, close };
222
+ }
223
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1,26 @@
1
+ /**
2
+ * MCP Proxy using Streamable HTTP transport.
3
+ * Handles POST requests only, returns application/json responses.
4
+ * Records tools/call events to the database.
5
+ */
6
+ import { type FastifyInstance } from "fastify";
7
+ import type Database from "better-sqlite3";
8
+ import type { Config } from "@agent-recorder/core";
9
+ export interface McpProxyOptions {
10
+ db: Database.Database;
11
+ config: Config;
12
+ /** Session ID to use for recording events. If null, events won't be recorded. */
13
+ sessionId: string | null;
14
+ /** Request timeout in milliseconds (default: 60000) */
15
+ timeoutMs?: number;
16
+ }
17
+ export interface CreateMcpProxyResult {
18
+ app: FastifyInstance;
19
+ start: () => Promise<void>;
20
+ close: () => Promise<void>;
21
+ }
22
+ /**
23
+ * Create an MCP proxy server.
24
+ */
25
+ export declare function createMcpProxy(options: McpProxyOptions): Promise<CreateMcpProxyResult>;
26
+ //# sourceMappingURL=proxy.d.ts.map