agent-recorder 0.0.1 → 0.0.8

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 (208) hide show
  1. package/package.json +2 -2
  2. package/vendor/node_modules/@agent-recorder/core/db/migrations.d.ts +2 -2
  3. package/vendor/node_modules/@agent-recorder/core/db/migrations.d.ts.map +1 -1
  4. package/vendor/node_modules/@agent-recorder/core/db/migrations.js +14 -6
  5. package/vendor/node_modules/@agent-recorder/core/db/migrations.js.map +1 -1
  6. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics 2.js +0 -205
  7. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.d 2.ts +0 -50
  8. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.d.ts 2.map +0 -1
  9. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.js 2.map +0 -1
  10. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test 2.js +0 -253
  11. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.d 2.ts +0 -5
  12. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.d.ts 2.map +0 -1
  13. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.js 2.map +0 -1
  14. package/vendor/node_modules/@agent-recorder/cli/commands/configure 2.js +0 -144
  15. package/vendor/node_modules/@agent-recorder/cli/commands/configure.d 2.ts +0 -17
  16. package/vendor/node_modules/@agent-recorder/cli/commands/configure.d.ts 2.map +0 -1
  17. package/vendor/node_modules/@agent-recorder/cli/commands/configure.js 2.map +0 -1
  18. package/vendor/node_modules/@agent-recorder/cli/commands/diagnose 2.js +0 -141
  19. package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.d 2.ts +0 -5
  20. package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.d.ts 2.map +0 -1
  21. package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.js 2.map +0 -1
  22. package/vendor/node_modules/@agent-recorder/cli/commands/doctor 2.js +0 -253
  23. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.d 2.ts +0 -5
  24. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.d.ts 2.map +0 -1
  25. package/vendor/node_modules/@agent-recorder/cli/commands/doctor.js 2.map +0 -1
  26. package/vendor/node_modules/@agent-recorder/cli/commands/export 2.js +0 -56
  27. package/vendor/node_modules/@agent-recorder/cli/commands/export.d 2.ts +0 -12
  28. package/vendor/node_modules/@agent-recorder/cli/commands/export.d.ts 2.map +0 -1
  29. package/vendor/node_modules/@agent-recorder/cli/commands/export.js 2.map +0 -1
  30. package/vendor/node_modules/@agent-recorder/cli/commands/install 2.js +0 -77
  31. package/vendor/node_modules/@agent-recorder/cli/commands/install.d 2.ts +0 -13
  32. package/vendor/node_modules/@agent-recorder/cli/commands/install.d.ts 2.map +0 -1
  33. package/vendor/node_modules/@agent-recorder/cli/commands/install.js 2.map +0 -1
  34. package/vendor/node_modules/@agent-recorder/cli/commands/logs 2.js +0 -40
  35. package/vendor/node_modules/@agent-recorder/cli/commands/logs.d 2.ts +0 -8
  36. package/vendor/node_modules/@agent-recorder/cli/commands/logs.d.ts 2.map +0 -1
  37. package/vendor/node_modules/@agent-recorder/cli/commands/logs.js 2.map +0 -1
  38. package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp 2.js +0 -188
  39. package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.d 2.ts +0 -10
  40. package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.d.ts 2.map +0 -1
  41. package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.js 2.map +0 -1
  42. package/vendor/node_modules/@agent-recorder/cli/commands/restart 2.js +0 -67
  43. package/vendor/node_modules/@agent-recorder/cli/commands/restart.d 2.ts +0 -9
  44. package/vendor/node_modules/@agent-recorder/cli/commands/restart.d.ts 2.map +0 -1
  45. package/vendor/node_modules/@agent-recorder/cli/commands/restart.js 2.map +0 -1
  46. package/vendor/node_modules/@agent-recorder/cli/commands/sessions 2.js +0 -333
  47. package/vendor/node_modules/@agent-recorder/cli/commands/sessions.d 2.ts +0 -52
  48. package/vendor/node_modules/@agent-recorder/cli/commands/sessions.d.ts 2.map +0 -1
  49. package/vendor/node_modules/@agent-recorder/cli/commands/sessions.js 2.map +0 -1
  50. package/vendor/node_modules/@agent-recorder/cli/commands/start 2.js +0 -174
  51. package/vendor/node_modules/@agent-recorder/cli/commands/start.d 2.ts +0 -10
  52. package/vendor/node_modules/@agent-recorder/cli/commands/start.d.ts 2.map +0 -1
  53. package/vendor/node_modules/@agent-recorder/cli/commands/start.js 2.map +0 -1
  54. package/vendor/node_modules/@agent-recorder/cli/commands/status 2.js +0 -104
  55. package/vendor/node_modules/@agent-recorder/cli/commands/status.d 2.ts +0 -5
  56. package/vendor/node_modules/@agent-recorder/cli/commands/status.d.ts 2.map +0 -1
  57. package/vendor/node_modules/@agent-recorder/cli/commands/status.js 2.map +0 -1
  58. package/vendor/node_modules/@agent-recorder/cli/commands/stop 2.js +0 -89
  59. package/vendor/node_modules/@agent-recorder/cli/commands/stop.d 2.ts +0 -8
  60. package/vendor/node_modules/@agent-recorder/cli/commands/stop.d.ts 2.map +0 -1
  61. package/vendor/node_modules/@agent-recorder/cli/commands/stop.js 2.map +0 -1
  62. package/vendor/node_modules/@agent-recorder/cli/commands/tui 2.js +0 -14
  63. package/vendor/node_modules/@agent-recorder/cli/commands/tui.d 2.ts +0 -5
  64. package/vendor/node_modules/@agent-recorder/cli/commands/tui.d.ts 2.map +0 -1
  65. package/vendor/node_modules/@agent-recorder/cli/commands/tui.js 2.map +0 -1
  66. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths 2.js +0 -117
  67. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.d 2.ts +0 -55
  68. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.d.ts 2.map +0 -1
  69. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.js 2.map +0 -1
  70. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test 2.js +0 -152
  71. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.d 2.ts +0 -5
  72. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.d.ts 2.map +0 -1
  73. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.js 2.map +0 -1
  74. package/vendor/node_modules/@agent-recorder/cli/index 2.js +0 -194
  75. package/vendor/node_modules/@agent-recorder/cli/index.d 2.ts +0 -10
  76. package/vendor/node_modules/@agent-recorder/cli/index.d.ts 2.map +0 -1
  77. package/vendor/node_modules/@agent-recorder/cli/index.js 2.map +0 -1
  78. package/vendor/node_modules/@agent-recorder/cli/package 2.json +0 -17
  79. package/vendor/node_modules/@agent-recorder/cli/tui/App 2.js +0 -84
  80. package/vendor/node_modules/@agent-recorder/cli/tui/App.d 2.ts +0 -6
  81. package/vendor/node_modules/@agent-recorder/cli/tui/App.d.ts 2.map +0 -1
  82. package/vendor/node_modules/@agent-recorder/cli/tui/App.js 2.map +0 -1
  83. package/vendor/node_modules/@agent-recorder/cli/tui/api 2.js +0 -105
  84. package/vendor/node_modules/@agent-recorder/cli/tui/api.d 2.ts +0 -31
  85. package/vendor/node_modules/@agent-recorder/cli/tui/api.d.ts 2.map +0 -1
  86. package/vendor/node_modules/@agent-recorder/cli/tui/api.js 2.map +0 -1
  87. package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel 2.js +0 -45
  88. package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.d 2.ts +0 -11
  89. package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.d.ts 2.map +0 -1
  90. package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.js 2.map +0 -1
  91. package/vendor/node_modules/@agent-recorder/cli/tui/components/Header 2.js +0 -13
  92. package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.d 2.ts +0 -17
  93. package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.d.ts 2.map +0 -1
  94. package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.js 2.map +0 -1
  95. package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner 2.js +0 -21
  96. package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.d 2.ts +0 -12
  97. package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.d.ts 2.map +0 -1
  98. package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.js 2.map +0 -1
  99. package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge 2.js +0 -50
  100. package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.d 2.ts +0 -16
  101. package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.d.ts 2.map +0 -1
  102. package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.js 2.map +0 -1
  103. package/vendor/node_modules/@agent-recorder/cli/tui/components/Table 2.js +0 -20
  104. package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.d 2.ts +0 -21
  105. package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.d.ts 2.map +0 -1
  106. package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.js 2.map +0 -1
  107. package/vendor/node_modules/@agent-recorder/cli/tui/components/index 2.js +0 -8
  108. package/vendor/node_modules/@agent-recorder/cli/tui/components/index.d 2.ts +0 -8
  109. package/vendor/node_modules/@agent-recorder/cli/tui/components/index.d.ts 2.map +0 -1
  110. package/vendor/node_modules/@agent-recorder/cli/tui/components/index.js 2.map +0 -1
  111. package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream 2.js +0 -75
  112. package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.d 2.ts +0 -22
  113. package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.d.ts 2.map +0 -1
  114. package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.js 2.map +0 -1
  115. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen 2.js +0 -190
  116. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.d 2.ts +0 -13
  117. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.d.ts 2.map +0 -1
  118. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.js 2.map +0 -1
  119. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen 2.js +0 -166
  120. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.d 2.ts +0 -10
  121. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.d.ts 2.map +0 -1
  122. package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.js 2.map +0 -1
  123. package/vendor/node_modules/@agent-recorder/cli/tui/screens/index 2.js +0 -6
  124. package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.d 2.ts +0 -6
  125. package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.d.ts 2.map +0 -1
  126. package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.js 2.map +0 -1
  127. package/vendor/node_modules/@agent-recorder/core/config 2.js +0 -44
  128. package/vendor/node_modules/@agent-recorder/core/config.d 2.ts +0 -25
  129. package/vendor/node_modules/@agent-recorder/core/config.d.ts 2.map +0 -1
  130. package/vendor/node_modules/@agent-recorder/core/db/connection.d 2.ts +0 -15
  131. package/vendor/node_modules/@agent-recorder/core/migrations/001_initial 2.sql +0 -40
  132. package/vendor/node_modules/@agent-recorder/core/migrations/002_session_sequences 2.sql +0 -8
  133. package/vendor/node_modules/@agent-recorder/core/migrations/003_add_tool_columns 2.sql +0 -9
  134. package/vendor/node_modules/@agent-recorder/core/migrations/004_add_cancelled_status 2.sql +0 -23
  135. package/vendor/node_modules/@agent-recorder/core/migrations/005_add_error_category 2.sql +0 -6
  136. package/vendor/node_modules/@agent-recorder/core/package 2.json +0 -18
  137. package/vendor/node_modules/@agent-recorder/core/types/events.d 2.ts +0 -69
  138. package/vendor/node_modules/@agent-recorder/core/types/index 2.js +0 -2
  139. package/vendor/node_modules/@agent-recorder/core/types/index.js 2.map +0 -1
  140. package/vendor/node_modules/@agent-recorder/core/types/session 2.js +0 -6
  141. package/vendor/node_modules/@agent-recorder/core/types/session.d 2.ts +0 -22
  142. package/vendor/node_modules/@agent-recorder/core/types/session.d.ts 2.map +0 -1
  143. package/vendor/node_modules/@agent-recorder/core/types/session.js 2.map +0 -1
  144. package/vendor/node_modules/@agent-recorder/core/utils/error-category 2.js +0 -58
  145. package/vendor/node_modules/@agent-recorder/core/utils/error-category.d 2.ts +0 -22
  146. package/vendor/node_modules/@agent-recorder/core/utils/error-category.d.ts 2.map +0 -1
  147. package/vendor/node_modules/@agent-recorder/core/utils/error-category.js 2.map +0 -1
  148. package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.d 2.ts +0 -5
  149. package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.d.ts 2.map +0 -1
  150. package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.js 2.map +0 -1
  151. package/vendor/node_modules/@agent-recorder/core/utils/index 2.js +0 -6
  152. package/vendor/node_modules/@agent-recorder/core/utils/index.d 2.ts +0 -6
  153. package/vendor/node_modules/@agent-recorder/core/utils/index.d.ts 2.map +0 -1
  154. package/vendor/node_modules/@agent-recorder/core/utils/index.js 2.map +0 -1
  155. package/vendor/node_modules/@agent-recorder/core/utils/redact.d 2.ts +0 -19
  156. package/vendor/node_modules/@agent-recorder/core/utils/redact.d.ts 2.map +0 -1
  157. package/vendor/node_modules/@agent-recorder/core/utils/redact.js 2.map +0 -1
  158. package/vendor/node_modules/@agent-recorder/service/index 2.js +0 -128
  159. package/vendor/node_modules/@agent-recorder/service/index.d 2.ts +0 -36
  160. package/vendor/node_modules/@agent-recorder/service/index.d.ts 2.map +0 -1
  161. package/vendor/node_modules/@agent-recorder/service/index.js 2.map +0 -1
  162. package/vendor/node_modules/@agent-recorder/service/mcp/index 2.js +0 -7
  163. package/vendor/node_modules/@agent-recorder/service/mcp/index.d 2.ts +0 -7
  164. package/vendor/node_modules/@agent-recorder/service/mcp/index.d.ts 2.map +0 -1
  165. package/vendor/node_modules/@agent-recorder/service/mcp/index.js 2.map +0 -1
  166. package/vendor/node_modules/@agent-recorder/service/mcp/proxy 2.js +0 -223
  167. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d 2.ts +0 -26
  168. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d.ts 2.map +0 -1
  169. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js 2.map +0 -1
  170. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.d 2.ts +0 -5
  171. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.d.ts 2.map +0 -1
  172. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.js 2.map +0 -1
  173. package/vendor/node_modules/@agent-recorder/service/mcp/recorder 2.js +0 -62
  174. package/vendor/node_modules/@agent-recorder/service/mcp/recorder.d 2.ts +0 -31
  175. package/vendor/node_modules/@agent-recorder/service/mcp/recorder.d.ts 2.map +0 -1
  176. package/vendor/node_modules/@agent-recorder/service/mcp/recorder.js 2.map +0 -1
  177. package/vendor/node_modules/@agent-recorder/service/mcp/types 2.js +0 -15
  178. package/vendor/node_modules/@agent-recorder/service/mcp/types.d 2.ts +0 -40
  179. package/vendor/node_modules/@agent-recorder/service/mcp/types.d.ts 2.map +0 -1
  180. package/vendor/node_modules/@agent-recorder/service/mcp/types.js 2.map +0 -1
  181. package/vendor/node_modules/@agent-recorder/service/package 2.json +0 -15
  182. package/vendor/node_modules/@agent-recorder/service/routes/events 2.js +0 -71
  183. package/vendor/node_modules/@agent-recorder/service/routes/events.d 2.ts +0 -11
  184. package/vendor/node_modules/@agent-recorder/service/routes/events.d.ts 2.map +0 -1
  185. package/vendor/node_modules/@agent-recorder/service/routes/events.js 2.map +0 -1
  186. package/vendor/node_modules/@agent-recorder/service/routes/health 2.js +0 -18
  187. package/vendor/node_modules/@agent-recorder/service/routes/health.d 2.ts +0 -6
  188. package/vendor/node_modules/@agent-recorder/service/routes/health.d.ts 2.map +0 -1
  189. package/vendor/node_modules/@agent-recorder/service/routes/health.js 2.map +0 -1
  190. package/vendor/node_modules/@agent-recorder/service/routes/sessions 2.js +0 -80
  191. package/vendor/node_modules/@agent-recorder/service/routes/sessions.d 2.ts +0 -12
  192. package/vendor/node_modules/@agent-recorder/service/routes/sessions.d.ts 2.map +0 -1
  193. package/vendor/node_modules/@agent-recorder/service/routes/sessions.js 2.map +0 -1
  194. package/vendor/node_modules/@agent-recorder/service/server 2.js +0 -36
  195. package/vendor/node_modules/@agent-recorder/service/server.d 2.ts +0 -19
  196. package/vendor/node_modules/@agent-recorder/service/server.d.ts 2.map +0 -1
  197. package/vendor/node_modules/@agent-recorder/service/server.js 2.map +0 -1
  198. package/vendor/node_modules/@agent-recorder/service/server.test 2.js +0 -296
  199. package/vendor/node_modules/@agent-recorder/service/server.test.d 2.ts +0 -5
  200. package/vendor/node_modules/@agent-recorder/service/server.test.d.ts 2.map +0 -1
  201. package/vendor/node_modules/@agent-recorder/service/session-manager 2.js +0 -22
  202. package/vendor/node_modules/@agent-recorder/service/session-manager.d 2.ts +0 -16
  203. package/vendor/node_modules/@agent-recorder/service/session-manager.d.ts 2.map +0 -1
  204. package/vendor/node_modules/@agent-recorder/service/session-manager.js 2.map +0 -1
  205. package/vendor/node_modules/@agent-recorder/service/session-manager.test 2.js +0 -61
  206. package/vendor/node_modules/@agent-recorder/service/session-manager.test.d 2.ts +0 -5
  207. package/vendor/node_modules/@agent-recorder/service/session-manager.test.d.ts 2.map +0 -1
  208. package/vendor/node_modules/@agent-recorder/service/session-manager.test.js 2.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../../src/tui/components/Spinner.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAMlE;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,EAAgB;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,MAAM,CAAC,KAAK,CAAC,GAAQ,EACxC,KAAK,IAAI,MAAC,IAAI,oBAAG,KAAK,IAAQ,IAC1B,CACR,CAAC;AACJ,CAAC"}
@@ -1,50 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * Status badge component for sessions and events.
4
- */
5
- import React from "react";
6
- import { Text } from "ink";
7
- /**
8
- * Display a colored status indicator.
9
- */
10
- export function StatusBadge({ status }) {
11
- switch (status) {
12
- case "active":
13
- case "running":
14
- return _jsx(Text, { color: "green", children: "\u25CF" });
15
- case "completed":
16
- case "success":
17
- return _jsx(Text, { color: "gray", children: "\u25CB" });
18
- case "error":
19
- return _jsx(Text, { color: "red", children: "\u25CF" });
20
- case "timeout":
21
- return _jsx(Text, { color: "yellow", children: "\u25CF" });
22
- case "cancelled":
23
- return _jsx(Text, { color: "gray", children: "\u25CC" });
24
- default:
25
- return _jsx(Text, { color: "gray", children: "?" });
26
- }
27
- }
28
- /**
29
- * Display a status indicator with label.
30
- */
31
- export function StatusWithLabel({ status, }) {
32
- const label = status.charAt(0).toUpperCase() + status.slice(1);
33
- switch (status) {
34
- case "active":
35
- case "running":
36
- return (_jsxs(Text, { children: [_jsx(Text, { color: "green", children: "\u25CF" }), " ", _jsx(Text, { color: "green", children: label })] }));
37
- case "completed":
38
- case "success":
39
- return (_jsxs(Text, { children: [_jsx(Text, { color: "gray", children: "\u25CB" }), " ", _jsx(Text, { color: "gray", children: label })] }));
40
- case "error":
41
- return (_jsxs(Text, { children: [_jsx(Text, { color: "red", children: "\u25CF" }), " ", _jsx(Text, { color: "red", children: label })] }));
42
- case "timeout":
43
- return (_jsxs(Text, { children: [_jsx(Text, { color: "yellow", children: "\u25CF" }), " ", _jsx(Text, { color: "yellow", children: label })] }));
44
- case "cancelled":
45
- return (_jsxs(Text, { children: [_jsx(Text, { color: "gray", children: "\u25CC" }), " ", _jsx(Text, { color: "gray", children: label })] }));
46
- default:
47
- return (_jsxs(Text, { children: [_jsx(Text, { color: "gray", children: "?" }), " ", _jsx(Text, { children: label })] }));
48
- }
49
- }
50
- //# sourceMappingURL=StatusBadge.js.map
@@ -1,16 +0,0 @@
1
- /**
2
- * Status badge component for sessions and events.
3
- */
4
- import React from "react";
5
- export interface StatusBadgeProps {
6
- status: string;
7
- }
8
- /**
9
- * Display a colored status indicator.
10
- */
11
- export declare function StatusBadge({ status }: StatusBadgeProps): React.ReactElement;
12
- /**
13
- * Display a status indicator with label.
14
- */
15
- export declare function StatusWithLabel({ status, }: StatusBadgeProps): React.ReactElement;
16
- //# sourceMappingURL=StatusBadge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StatusBadge.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAiB5E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,MAAM,GACP,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CA2CvC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StatusBadge.js","sourceRoot":"","sources":["../../../src/tui/components/StatusBadge.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAM3B;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAAE,MAAM,EAAoB;IACtD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,uBAAS,CAAC;QACtC,KAAK,WAAW,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAS,CAAC;QACrC,KAAK,OAAO;YACV,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,uBAAS,CAAC;QACpC,KAAK,SAAS;YACZ,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,uBAAS,CAAC;QACvC,KAAK,WAAW;YACd,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAS,CAAC;QACrC;YACE,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,MAAM,GACW;IACjB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE/D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,uBAAS,OAAC,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,KAAK,GAAQ,IAC1D,CACR,CAAC;QACJ,KAAK,WAAW,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAS,OAAC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,KAAK,GAAQ,IACxD,CACR,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,uBAAS,OAAC,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,YAAE,KAAK,GAAQ,IACtD,CACR,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,uBAAS,OAAC,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,KAAK,GAAQ,IAC5D,CACR,CAAC;QACJ,KAAK,WAAW;YACd,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAS,OAAC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,KAAK,GAAQ,IACxD,CACR,CAAC;QACJ;YACE,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,OAAC,KAAC,IAAI,cAAE,KAAK,GAAQ,IAC3C,CACR,CAAC;IACN,CAAC;AACH,CAAC"}
@@ -1,20 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * Scrollable table component with keyboard navigation.
4
- */
5
- import React from "react";
6
- import { Box, Text } from "ink";
7
- /**
8
- * Render a table with columns and data.
9
- */
10
- export function Table({ columns, data, selectedIndex, maxRows = 15, }) {
11
- // Calculate scroll offset to keep selected row visible
12
- const scrollOffset = Math.max(0, Math.min(selectedIndex - Math.floor(maxRows / 2), data.length - maxRows));
13
- const visibleData = data.slice(scrollOffset, scrollOffset + maxRows);
14
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: " " }), columns.map((col) => (_jsx(Box, { width: col.width, children: _jsx(Text, { bold: true, dimColor: true, children: col.header.padEnd(col.width) }) }, col.key)))] }), visibleData.map((row, i) => {
15
- const actualIndex = scrollOffset + i;
16
- const isSelected = actualIndex === selectedIndex;
17
- return (_jsxs(Box, { children: [isSelected ? (_jsx(Text, { color: "cyan", children: "> " })) : (_jsx(Text, { children: " " })), columns.map((col) => (_jsx(Box, { width: col.width, children: isSelected ? (_jsx(Text, { color: "cyan", children: col.render(row, actualIndex) })) : (col.render(row, actualIndex)) }, col.key)))] }, actualIndex));
18
- }), data.length > maxRows && (_jsxs(Text, { dimColor: true, children: [" ", "Showing ", scrollOffset + 1, "-", Math.min(scrollOffset + maxRows, data.length), " of ", data.length] }))] }));
19
- }
20
- //# sourceMappingURL=Table.js.map
@@ -1,21 +0,0 @@
1
- /**
2
- * Scrollable table component with keyboard navigation.
3
- */
4
- import React from "react";
5
- export interface Column<T> {
6
- key: string;
7
- header: string;
8
- width: number;
9
- render: (row: T, index: number) => React.ReactNode;
10
- }
11
- export interface TableProps<T> {
12
- columns: Column<T>[];
13
- data: T[];
14
- selectedIndex: number;
15
- maxRows?: number;
16
- }
17
- /**
18
- * Render a table with columns and data.
19
- */
20
- export declare function Table<T>({ columns, data, selectedIndex, maxRows, }: TableProps<T>): React.ReactElement;
21
- //# sourceMappingURL=Table.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Table.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CACpD;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,EACvB,OAAO,EACP,IAAI,EACJ,aAAa,EACb,OAAY,GACb,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAyDpC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../src/tui/components/Table.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAgBhC;;GAEG;AACH,MAAM,UAAU,KAAK,CAAI,EACvB,OAAO,EACP,IAAI,EACJ,aAAa,EACb,OAAO,GAAG,EAAE,GACE;IACd,uDAAuD;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CACzE,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC;IAErE,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAEzB,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,GAAQ,EAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACpB,KAAC,GAAG,IAAe,KAAK,EAAE,GAAG,CAAC,KAAK,YACjC,KAAC,IAAI,IAAC,IAAI,QAAC,QAAQ,kBAChB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GACxB,IAHC,GAAG,CAAC,GAAG,CAIX,CACP,CAAC,IACE,EAGL,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC1B,MAAM,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC;gBACrC,MAAM,UAAU,GAAG,WAAW,KAAK,aAAa,CAAC;gBAEjD,OAAO,CACL,MAAC,GAAG,eACD,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,IAAI,GAAQ,CACjC,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,cAAE,IAAI,GAAQ,CACpB,EACA,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACpB,KAAC,GAAG,IAAe,KAAK,EAAE,GAAG,CAAC,KAAK,YAChC,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,GAAQ,CACzD,CAAC,CAAC,CAAC,CACF,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAC7B,IALO,GAAG,CAAC,GAAG,CAMX,CACP,CAAC,KAdM,WAAW,CAef,CACP,CAAC;YACJ,CAAC,CAAC,EAGD,IAAI,CAAC,MAAM,GAAG,OAAO,IAAI,CACxB,MAAC,IAAI,IAAC,QAAQ,mBACX,IAAI,cAAU,YAAY,GAAG,CAAC,OAC9B,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAM,IAAI,CAAC,MAAM,IAC1D,CACR,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * TUI components barrel export.
3
- */
4
- export { Header } from "./Header.js";
5
- export { Spinner } from "./Spinner.js";
6
- export { StatusBadge, StatusWithLabel, } from "./StatusBadge.js";
7
- export { Table } from "./Table.js";
8
- //# sourceMappingURL=index.js.map
@@ -1,8 +0,0 @@
1
- /**
2
- * TUI components barrel export.
3
- */
4
- export { Header, type HeaderProps, type KeyHint } from "./Header.js";
5
- export { Spinner, type SpinnerProps } from "./Spinner.js";
6
- export { StatusBadge, StatusWithLabel, type StatusBadgeProps, } from "./StatusBadge.js";
7
- export { Table, type TableProps, type Column } from "./Table.js";
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tui/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,eAAe,EACf,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tui/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAkC,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,OAAO,EAAqB,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAgC,MAAM,YAAY,CAAC"}
@@ -1,75 +0,0 @@
1
- /**
2
- * Hook for polling events from the API.
3
- */
4
- import { useState, useEffect, useRef, useCallback } from "react";
5
- import { fetchEvents } from "../api.js";
6
- /**
7
- * Poll for events from a session.
8
- * Tracks last sequence to fetch only new events.
9
- */
10
- export function useEventStream(baseUrl, sessionId, options) {
11
- const { enabled, interval = 1000 } = options;
12
- const [events, setEvents] = useState([]);
13
- const [loading, setLoading] = useState(true);
14
- const [error, setError] = useState(null);
15
- const lastSequenceRef = useRef(0);
16
- const mountedRef = useRef(true);
17
- const loadEvents = useCallback(async (incremental) => {
18
- try {
19
- const newEvents = await fetchEvents(baseUrl, sessionId, {
20
- after: incremental ? lastSequenceRef.current : 0,
21
- limit: 200,
22
- });
23
- if (!mountedRef.current)
24
- return;
25
- if (newEvents.length > 0) {
26
- const maxSeq = Math.max(...newEvents.map((e) => e.sequence));
27
- lastSequenceRef.current = maxSeq;
28
- if (incremental) {
29
- setEvents((prev) => [...prev, ...newEvents]);
30
- }
31
- else {
32
- setEvents(newEvents);
33
- }
34
- }
35
- setError(null);
36
- }
37
- catch (err) {
38
- if (mountedRef.current) {
39
- setError(err instanceof Error ? err : new Error(String(err)));
40
- }
41
- }
42
- finally {
43
- if (mountedRef.current) {
44
- setLoading(false);
45
- }
46
- }
47
- }, [baseUrl, sessionId]);
48
- // Initial load
49
- useEffect(() => {
50
- mountedRef.current = true;
51
- lastSequenceRef.current = 0;
52
- setEvents([]);
53
- setLoading(true);
54
- loadEvents(false);
55
- return () => {
56
- mountedRef.current = false;
57
- };
58
- }, [baseUrl, sessionId, loadEvents]);
59
- // Polling
60
- useEffect(() => {
61
- if (!enabled)
62
- return;
63
- const timer = setInterval(() => {
64
- loadEvents(true);
65
- }, interval);
66
- return () => clearInterval(timer);
67
- }, [enabled, interval, loadEvents]);
68
- const refresh = useCallback(async () => {
69
- lastSequenceRef.current = 0;
70
- setLoading(true);
71
- await loadEvents(false);
72
- }, [loadEvents]);
73
- return { events, loading, error, refresh };
74
- }
75
- //# sourceMappingURL=useEventStream.js.map
@@ -1,22 +0,0 @@
1
- /**
2
- * Hook for polling events from the API.
3
- */
4
- import type { BaseEvent } from "@agent-recorder/core";
5
- export interface UseEventStreamOptions {
6
- /** Whether to poll for new events */
7
- enabled: boolean;
8
- /** Polling interval in ms (default: 1000) */
9
- interval?: number;
10
- }
11
- export interface UseEventStreamResult {
12
- events: BaseEvent[];
13
- loading: boolean;
14
- error: Error | null;
15
- refresh: () => Promise<void>;
16
- }
17
- /**
18
- * Poll for events from a session.
19
- * Tracks last sequence to fetch only new events.
20
- */
21
- export declare function useEventStream(baseUrl: string, sessionId: string, options: UseEventStreamOptions): UseEventStreamResult;
22
- //# sourceMappingURL=useEventStream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEventStream.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useEventStream.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,MAAM,WAAW,qBAAqB;IACpC,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,qBAAqB,GAC7B,oBAAoB,CA4EtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEventStream.js","sourceRoot":"","sources":["../../../src/tui/hooks/useEventStream.ts"],"names":[],"mappings":"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"}
@@ -1,190 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * Session detail screen with event list and live follow.
4
- */
5
- import React, { useState, useEffect, useCallback } from "react";
6
- import { Box, Text, useInput } from "ink";
7
- import { Header, Table, StatusBadge, Spinner, } from "../components/index.js";
8
- import { fetchSession, fetchEventCount } from "../api.js";
9
- import { useEventStream } from "../hooks/useEventStream.js";
10
- const FILTER_OPTIONS = [
11
- "all",
12
- "agent_call",
13
- "subagent_call",
14
- "skill_call",
15
- "tool_call",
16
- ];
17
- /**
18
- * Format time from ISO string.
19
- */
20
- function formatTime(isoDate) {
21
- const date = new Date(isoDate);
22
- return date.toLocaleTimeString("en-US", {
23
- hour12: false,
24
- hour: "2-digit",
25
- minute: "2-digit",
26
- second: "2-digit",
27
- });
28
- }
29
- /**
30
- * Format duration in ms.
31
- */
32
- function formatDurationMs(startedAt, endedAt) {
33
- if (!endedAt)
34
- return "--";
35
- const start = new Date(startedAt).getTime();
36
- const end = new Date(endedAt).getTime();
37
- const ms = end - start;
38
- if (ms < 1000)
39
- return `${ms}ms`;
40
- if (ms < 60000)
41
- return `${(ms / 1000).toFixed(1)}s`;
42
- return `${Math.floor(ms / 60000)}m`;
43
- }
44
- /**
45
- * Get display name for an event.
46
- */
47
- function getEventName(event) {
48
- if (event.toolName)
49
- return event.toolName;
50
- if (event.skillName)
51
- return event.skillName;
52
- if (event.agentName)
53
- return event.agentName;
54
- return event.eventType;
55
- }
56
- /**
57
- * Get status symbol.
58
- */
59
- function getStatusSymbol(status) {
60
- switch (status) {
61
- case "success":
62
- return "\u2713";
63
- case "error":
64
- return "\u2717";
65
- case "running":
66
- return "\u2192";
67
- case "timeout":
68
- return "\u23f1";
69
- default:
70
- return "?";
71
- }
72
- }
73
- export function SessionDetailScreen({ baseUrl, sessionId, onBack, onInspectEvent, }) {
74
- const [session, setSession] = useState(null);
75
- const [eventCount, setEventCount] = useState(0);
76
- const [selectedIndex, setSelectedIndex] = useState(0);
77
- const [filter, setFilter] = useState("all");
78
- const [followMode, setFollowMode] = useState(true);
79
- const { events, loading, error, refresh } = useEventStream(baseUrl, sessionId, {
80
- enabled: followMode,
81
- interval: 1000,
82
- });
83
- // Load session info
84
- const loadSessionInfo = useCallback(async () => {
85
- const [sessionData, count] = await Promise.all([
86
- fetchSession(baseUrl, sessionId),
87
- fetchEventCount(baseUrl, sessionId),
88
- ]);
89
- setSession(sessionData);
90
- setEventCount(count);
91
- }, [baseUrl, sessionId]);
92
- useEffect(() => {
93
- loadSessionInfo();
94
- const timer = setInterval(loadSessionInfo, 2000);
95
- return () => clearInterval(timer);
96
- }, [loadSessionInfo]);
97
- // Filter events
98
- const filteredEvents = filter === "all" ? events : events.filter((e) => e.eventType === filter);
99
- // Auto-scroll to bottom in follow mode
100
- useEffect(() => {
101
- if (followMode && filteredEvents.length > 0) {
102
- setSelectedIndex(filteredEvents.length - 1);
103
- }
104
- }, [followMode, filteredEvents.length]);
105
- // Handle keyboard input
106
- useInput((input, key) => {
107
- if (key.escape) {
108
- onBack();
109
- return;
110
- }
111
- if (input === "f") {
112
- setFollowMode((prev) => !prev);
113
- return;
114
- }
115
- if (key.tab) {
116
- const currentIdx = FILTER_OPTIONS.indexOf(filter);
117
- const nextIdx = (currentIdx + 1) % FILTER_OPTIONS.length;
118
- const nextFilter = FILTER_OPTIONS[nextIdx];
119
- if (nextFilter !== undefined) {
120
- setFilter(nextFilter);
121
- }
122
- setSelectedIndex(0);
123
- return;
124
- }
125
- if (input === "r") {
126
- refresh();
127
- return;
128
- }
129
- if (key.upArrow) {
130
- setFollowMode(false);
131
- setSelectedIndex((prev) => Math.max(0, prev - 1));
132
- }
133
- else if (key.downArrow) {
134
- setFollowMode(false);
135
- setSelectedIndex((prev) => Math.min(filteredEvents.length - 1, prev + 1));
136
- }
137
- else if (key.return) {
138
- const selectedEvent = filteredEvents[selectedIndex];
139
- if (filteredEvents.length > 0 && selectedEvent) {
140
- onInspectEvent(selectedEvent);
141
- }
142
- }
143
- });
144
- // Reset selection when filter changes
145
- useEffect(() => {
146
- if (selectedIndex >= filteredEvents.length) {
147
- setSelectedIndex(Math.max(0, filteredEvents.length - 1));
148
- }
149
- }, [filteredEvents.length, selectedIndex]);
150
- const columns = [
151
- {
152
- key: "time",
153
- header: "Time",
154
- width: 10,
155
- render: (row) => _jsx(Text, { dimColor: true, children: formatTime(row.startedAt) }),
156
- },
157
- {
158
- key: "type",
159
- header: "Type",
160
- width: 14,
161
- render: (row) => _jsx(Text, { children: row.eventType }),
162
- },
163
- {
164
- key: "name",
165
- header: "Name",
166
- width: 20,
167
- render: (row) => _jsx(Text, { children: getEventName(row).slice(0, 18) }),
168
- },
169
- {
170
- key: "duration",
171
- header: "Duration",
172
- width: 10,
173
- render: (row) => (_jsx(Text, { dimColor: true, children: formatDurationMs(row.startedAt, row.endedAt) })),
174
- },
175
- {
176
- key: "status",
177
- header: "Status",
178
- width: 8,
179
- render: (row) => (_jsxs(Text, { children: [_jsx(StatusBadge, { status: row.status }), " ", getStatusSymbol(row.status)] })),
180
- },
181
- ];
182
- if (error) {
183
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Header, { title: `Session ${sessionId.slice(0, 12)}...`, hints: [
184
- { key: "Esc", label: "back" },
185
- { key: "r", label: "retry" },
186
- ] }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: "red", children: ["Error: ", error.message] }) })] }));
187
- }
188
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Box, { children: [_jsxs(Text, { bold: true, children: ["Session ", sessionId.slice(0, 12), "..."] }), session && (_jsxs(Text, { children: [" ", _jsx(StatusBadge, { status: session.status }), " ", session.status] })), _jsxs(Text, { dimColor: true, children: [" ", "Events: ", eventCount] })] }), _jsxs(Box, { children: [_jsx(Text, { color: "cyan", children: "[Esc]" }), " ", _jsx(Text, { dimColor: true, children: "back" }), " ", _jsx(Text, { color: "cyan", children: "[f]" }), " ", _jsx(Text, { dimColor: true, children: "follow" })] })] }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Filter: " }), FILTER_OPTIONS.map((opt) => (_jsxs(Text, { children: [opt === filter ? (_jsxs(Text, { color: "cyan", bold: true, children: ["[", opt, "]"] })) : (_jsx(Text, { dimColor: true, children: opt })), " "] }, opt)))] }), _jsx(Text, { dimColor: true, children: "─".repeat(66) }), _jsx(Box, { marginTop: 1, children: loading && events.length === 0 ? (_jsx(Spinner, { label: "Loading events..." })) : filteredEvents.length === 0 ? (_jsx(Text, { dimColor: true, children: filter === "all" ? "No events recorded" : `No ${filter} events` })) : (_jsx(Table, { columns: columns, data: filteredEvents, selectedIndex: selectedIndex, maxRows: 12 })) }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { dimColor: true, children: ["[\u2191/\u2193] navigate [Enter] inspect [Tab] filter [f] follow:", " ", followMode ? (_jsx(Text, { color: "green", children: "ON" })) : (_jsx(Text, { color: "gray", children: "OFF" }))] }) })] }));
189
- }
190
- //# sourceMappingURL=SessionDetailScreen.js.map
@@ -1,13 +0,0 @@
1
- /**
2
- * Session detail screen with event list and live follow.
3
- */
4
- import React from "react";
5
- import type { BaseEvent } from "@agent-recorder/core";
6
- export interface SessionDetailScreenProps {
7
- baseUrl: string;
8
- sessionId: string;
9
- onBack: () => void;
10
- onInspectEvent: (event: BaseEvent) => void;
11
- }
12
- export declare function SessionDetailScreen({ baseUrl, sessionId, onBack, onInspectEvent, }: SessionDetailScreenProps): React.ReactElement;
13
- //# sourceMappingURL=SessionDetailScreen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionDetailScreen.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/SessionDetailScreen.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,sBAAsB,CAAC;AAYjE,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CAC5C;AAkED,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,SAAS,EACT,MAAM,EACN,cAAc,GACf,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CA0N/C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionDetailScreen.js","sourceRoot":"","sources":["../../../src/tui/screens/SessionDetailScreen.tsx"],"names":[],"mappings":"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"}