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.
- package/README.md +133 -0
- package/dist/bundle.d.ts +8 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +131 -0
- package/dist/bundle.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/package.json +53 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics 2.js +205 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.d 2.ts +50 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.d.ts +50 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.js +205 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test 2.js +253 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.d 2.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.js +253 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/configure 2.js +144 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/configure.d 2.ts +17 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/configure.d.ts +17 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/configure.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/configure.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/configure.js +144 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/configure.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/configure.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/diagnose 2.js +141 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.d 2.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.js +141 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/diagnose.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor 2.js +253 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor.d 2.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor.js +253 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/doctor.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/export 2.js +56 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/export.d 2.ts +12 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/export.d.ts +12 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/export.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/export.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/export.js +56 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/export.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/export.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/install 2.js +77 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/install.d 2.ts +13 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/install.d.ts +13 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/install.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/install.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/install.js +77 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/install.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/install.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/logs 2.js +40 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/logs.d 2.ts +8 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/logs.d.ts +8 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/logs.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/logs.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/logs.js +40 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/logs.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/logs.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp 2.js +188 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.d 2.ts +10 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.d.ts +10 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.js +188 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/mock-mcp.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/restart 2.js +67 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/restart.d 2.ts +9 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/restart.d.ts +9 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/restart.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/restart.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/restart.js +67 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/restart.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/restart.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/sessions 2.js +333 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/sessions.d 2.ts +52 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/sessions.d.ts +52 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/sessions.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/sessions.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/sessions.js +333 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/sessions.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/sessions.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/start 2.js +174 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/start.d 2.ts +10 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/start.d.ts +10 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/start.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/start.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/start.js +174 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/start.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/start.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/status 2.js +104 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/status.d 2.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/status.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/status.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/status.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/status.js +104 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/status.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/status.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/stop 2.js +89 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/stop.d 2.ts +8 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/stop.d.ts +8 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/stop.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/stop.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/stop.js +89 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/stop.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/stop.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/tui 2.js +14 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/tui.d 2.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/tui.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/tui.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/tui.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/tui.js +14 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/tui.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/commands/tui.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths 2.js +117 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.d 2.ts +55 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.d.ts +55 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.js +117 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test 2.js +152 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.d 2.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.js +152 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/index 2.js +194 -0
- package/vendor/node_modules/@agent-recorder/cli/index.d 2.ts +10 -0
- package/vendor/node_modules/@agent-recorder/cli/index.d.ts +10 -0
- package/vendor/node_modules/@agent-recorder/cli/index.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/index.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/index.js +194 -0
- package/vendor/node_modules/@agent-recorder/cli/index.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/index.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/package 2.json +17 -0
- package/vendor/node_modules/@agent-recorder/cli/package.json +17 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/App 2.js +84 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/App.d 2.ts +6 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/App.d.ts +6 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/App.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/App.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/App.js +84 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/App.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/App.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/api 2.js +105 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/api.d 2.ts +31 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/api.d.ts +31 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/api.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/api.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/api.js +105 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/api.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/api.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel 2.js +45 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.d 2.ts +11 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.d.ts +11 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.js +45 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/EventInspectPanel.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Header 2.js +13 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.d 2.ts +17 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.d.ts +17 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.js +13 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Header.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner 2.js +21 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.d 2.ts +12 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.d.ts +12 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.js +21 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Spinner.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge 2.js +50 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.d 2.ts +16 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.d.ts +16 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.js +50 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/StatusBadge.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Table 2.js +20 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.d 2.ts +21 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.d.ts +21 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.js +20 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/Table.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/index 2.js +8 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/index.d 2.ts +8 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/index.d.ts +8 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/index.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/index.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/index.js +8 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/index.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/components/index.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream 2.js +75 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.d 2.ts +22 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.d.ts +22 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.js +75 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/hooks/useEventStream.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen 2.js +190 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.d 2.ts +13 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.d.ts +13 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.js +190 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionDetailScreen.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen 2.js +166 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.d 2.ts +10 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.d.ts +10 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.js +166 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/SessionsScreen.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/index 2.js +6 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.d 2.ts +6 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.d.ts +6 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.js +6 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/cli/tui/screens/index.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/config 2.js +44 -0
- package/vendor/node_modules/@agent-recorder/core/config.d 2.ts +25 -0
- package/vendor/node_modules/@agent-recorder/core/config.d.ts +25 -0
- package/vendor/node_modules/@agent-recorder/core/config.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/config.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/config.js +44 -0
- package/vendor/node_modules/@agent-recorder/core/config.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/config.test.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/core/config.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/config.test.js +78 -0
- package/vendor/node_modules/@agent-recorder/core/config.test.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/daemon-paths.d.ts +50 -0
- package/vendor/node_modules/@agent-recorder/core/daemon-paths.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/daemon-paths.js +113 -0
- package/vendor/node_modules/@agent-recorder/core/daemon-paths.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/daemon-paths.test.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/core/daemon-paths.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/daemon-paths.test.js +143 -0
- package/vendor/node_modules/@agent-recorder/core/daemon-paths.test.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/db/connection.d 2.ts +15 -0
- package/vendor/node_modules/@agent-recorder/core/db/connection.d.ts +15 -0
- package/vendor/node_modules/@agent-recorder/core/db/connection.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/db/connection.js +30 -0
- package/vendor/node_modules/@agent-recorder/core/db/connection.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/db/events.d.ts +65 -0
- package/vendor/node_modules/@agent-recorder/core/db/events.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/db/events.js +117 -0
- package/vendor/node_modules/@agent-recorder/core/db/events.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/db/events.test.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/core/db/events.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/db/events.test.js +72 -0
- package/vendor/node_modules/@agent-recorder/core/db/events.test.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/db/index.d.ts +9 -0
- package/vendor/node_modules/@agent-recorder/core/db/index.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/db/index.js +9 -0
- package/vendor/node_modules/@agent-recorder/core/db/index.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/db/migrations.d.ts +17 -0
- package/vendor/node_modules/@agent-recorder/core/db/migrations.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/db/migrations.js +56 -0
- package/vendor/node_modules/@agent-recorder/core/db/migrations.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/db/sequences.d.ts +17 -0
- package/vendor/node_modules/@agent-recorder/core/db/sequences.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/db/sequences.js +41 -0
- package/vendor/node_modules/@agent-recorder/core/db/sequences.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/db/sessions.d.ts +17 -0
- package/vendor/node_modules/@agent-recorder/core/db/sessions.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/db/sessions.js +61 -0
- package/vendor/node_modules/@agent-recorder/core/db/sessions.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/index.d.ts +13 -0
- package/vendor/node_modules/@agent-recorder/core/index.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/index.js +13 -0
- package/vendor/node_modules/@agent-recorder/core/index.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/lockfile.d.ts +42 -0
- package/vendor/node_modules/@agent-recorder/core/lockfile.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/lockfile.js +122 -0
- package/vendor/node_modules/@agent-recorder/core/lockfile.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/lockfile.test.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/core/lockfile.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/lockfile.test.js +136 -0
- package/vendor/node_modules/@agent-recorder/core/lockfile.test.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/migrations/001_initial 2.sql +40 -0
- package/vendor/node_modules/@agent-recorder/core/migrations/001_initial.sql +40 -0
- package/vendor/node_modules/@agent-recorder/core/migrations/002_session_sequences 2.sql +8 -0
- package/vendor/node_modules/@agent-recorder/core/migrations/002_session_sequences.sql +8 -0
- package/vendor/node_modules/@agent-recorder/core/migrations/003_add_tool_columns 2.sql +9 -0
- package/vendor/node_modules/@agent-recorder/core/migrations/003_add_tool_columns.sql +9 -0
- package/vendor/node_modules/@agent-recorder/core/migrations/004_add_cancelled_status 2.sql +23 -0
- package/vendor/node_modules/@agent-recorder/core/migrations/004_add_cancelled_status.sql +23 -0
- package/vendor/node_modules/@agent-recorder/core/migrations/005_add_error_category 2.sql +6 -0
- package/vendor/node_modules/@agent-recorder/core/migrations/005_add_error_category.sql +6 -0
- package/vendor/node_modules/@agent-recorder/core/package 2.json +18 -0
- package/vendor/node_modules/@agent-recorder/core/package.json +18 -0
- package/vendor/node_modules/@agent-recorder/core/types/events.d 2.ts +69 -0
- package/vendor/node_modules/@agent-recorder/core/types/events.d.ts +69 -0
- package/vendor/node_modules/@agent-recorder/core/types/events.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/types/events.js +6 -0
- package/vendor/node_modules/@agent-recorder/core/types/events.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/types/index 2.js +2 -0
- package/vendor/node_modules/@agent-recorder/core/types/index.d.ts +3 -0
- package/vendor/node_modules/@agent-recorder/core/types/index.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/types/index.js +2 -0
- package/vendor/node_modules/@agent-recorder/core/types/index.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/types/index.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/types/session 2.js +6 -0
- package/vendor/node_modules/@agent-recorder/core/types/session.d 2.ts +22 -0
- package/vendor/node_modules/@agent-recorder/core/types/session.d.ts +22 -0
- package/vendor/node_modules/@agent-recorder/core/types/session.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/types/session.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/types/session.js +6 -0
- package/vendor/node_modules/@agent-recorder/core/types/session.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/types/session.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category 2.js +58 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category.d 2.ts +22 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category.d.ts +22 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category.js +58 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.d 2.ts +5 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.js +89 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/error-category.test.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/index 2.js +6 -0
- package/vendor/node_modules/@agent-recorder/core/utils/index.d 2.ts +6 -0
- package/vendor/node_modules/@agent-recorder/core/utils/index.d.ts +6 -0
- package/vendor/node_modules/@agent-recorder/core/utils/index.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/index.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/index.js +6 -0
- package/vendor/node_modules/@agent-recorder/core/utils/index.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/index.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/redact.d 2.ts +19 -0
- package/vendor/node_modules/@agent-recorder/core/utils/redact.d.ts +19 -0
- package/vendor/node_modules/@agent-recorder/core/utils/redact.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/redact.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/redact.js +52 -0
- package/vendor/node_modules/@agent-recorder/core/utils/redact.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/core/utils/redact.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/index 2.js +128 -0
- package/vendor/node_modules/@agent-recorder/service/index.d 2.ts +36 -0
- package/vendor/node_modules/@agent-recorder/service/index.d.ts +36 -0
- package/vendor/node_modules/@agent-recorder/service/index.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/index.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/index.js +128 -0
- package/vendor/node_modules/@agent-recorder/service/index.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/index.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/index 2.js +7 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/index.d 2.ts +7 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/index.d.ts +7 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/index.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/index.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/index.js +7 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/index.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/index.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy 2.js +223 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d 2.ts +26 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d.ts +26 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js +223 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.d 2.ts +5 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.js +367 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/proxy.test.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/recorder 2.js +62 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/recorder.d 2.ts +31 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/recorder.d.ts +31 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/recorder.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/recorder.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/recorder.js +62 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/recorder.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/recorder.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/types 2.js +15 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/types.d 2.ts +40 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/types.d.ts +40 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/types.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/types.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/types.js +15 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/types.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/mcp/types.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/package 2.json +15 -0
- package/vendor/node_modules/@agent-recorder/service/package.json +15 -0
- package/vendor/node_modules/@agent-recorder/service/routes/events 2.js +71 -0
- package/vendor/node_modules/@agent-recorder/service/routes/events.d 2.ts +11 -0
- package/vendor/node_modules/@agent-recorder/service/routes/events.d.ts +11 -0
- package/vendor/node_modules/@agent-recorder/service/routes/events.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/routes/events.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/routes/events.js +71 -0
- package/vendor/node_modules/@agent-recorder/service/routes/events.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/routes/events.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/routes/health 2.js +18 -0
- package/vendor/node_modules/@agent-recorder/service/routes/health.d 2.ts +6 -0
- package/vendor/node_modules/@agent-recorder/service/routes/health.d.ts +6 -0
- package/vendor/node_modules/@agent-recorder/service/routes/health.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/routes/health.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/routes/health.js +18 -0
- package/vendor/node_modules/@agent-recorder/service/routes/health.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/routes/health.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/routes/sessions 2.js +80 -0
- package/vendor/node_modules/@agent-recorder/service/routes/sessions.d 2.ts +12 -0
- package/vendor/node_modules/@agent-recorder/service/routes/sessions.d.ts +12 -0
- package/vendor/node_modules/@agent-recorder/service/routes/sessions.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/routes/sessions.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/routes/sessions.js +80 -0
- package/vendor/node_modules/@agent-recorder/service/routes/sessions.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/routes/sessions.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/server 2.js +36 -0
- package/vendor/node_modules/@agent-recorder/service/server.d 2.ts +19 -0
- package/vendor/node_modules/@agent-recorder/service/server.d.ts +19 -0
- package/vendor/node_modules/@agent-recorder/service/server.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/server.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/server.js +36 -0
- package/vendor/node_modules/@agent-recorder/service/server.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/server.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/server.test 2.js +296 -0
- package/vendor/node_modules/@agent-recorder/service/server.test.d 2.ts +5 -0
- package/vendor/node_modules/@agent-recorder/service/server.test.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/service/server.test.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/server.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/server.test.js +296 -0
- package/vendor/node_modules/@agent-recorder/service/server.test.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager 2.js +22 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.d 2.ts +16 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.d.ts +16 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.js +22 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.js.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.test 2.js +61 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.test.d 2.ts +5 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.test.d.ts +5 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.test.d.ts 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.test.d.ts.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.test.js +61 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.test.js 2.map +1 -0
- package/vendor/node_modules/@agent-recorder/service/session-manager.test.js.map +1 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event CRUD operations.
|
|
3
|
+
* Uses better-sqlite3 sync API.
|
|
4
|
+
*/
|
|
5
|
+
/** Convert DB row to BaseEvent type */
|
|
6
|
+
function rowToEvent(row) {
|
|
7
|
+
return {
|
|
8
|
+
id: row.id,
|
|
9
|
+
sessionId: row.session_id,
|
|
10
|
+
parentEventId: row.parent_event_id,
|
|
11
|
+
sequence: row.sequence,
|
|
12
|
+
eventType: row.event_type,
|
|
13
|
+
agentRole: row.agent_role,
|
|
14
|
+
agentName: row.agent_name,
|
|
15
|
+
skillName: row.skill_name,
|
|
16
|
+
toolName: row.tool_name,
|
|
17
|
+
mcpMethod: row.mcp_method,
|
|
18
|
+
startedAt: row.started_at,
|
|
19
|
+
endedAt: row.ended_at,
|
|
20
|
+
status: row.status,
|
|
21
|
+
inputJson: row.input_json,
|
|
22
|
+
outputJson: row.output_json,
|
|
23
|
+
errorCategory: row.error_category,
|
|
24
|
+
createdAt: row.created_at,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/** Insert a new event */
|
|
28
|
+
export function insertEvent(db, event) {
|
|
29
|
+
const stmt = db.prepare(`
|
|
30
|
+
INSERT INTO events (
|
|
31
|
+
id, session_id, parent_event_id, sequence, event_type,
|
|
32
|
+
agent_role, agent_name, skill_name, tool_name, mcp_method,
|
|
33
|
+
started_at, ended_at, status, input_json, output_json, error_category, created_at
|
|
34
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'))
|
|
35
|
+
`);
|
|
36
|
+
stmt.run(event.id, event.sessionId, event.parentEventId ?? null, event.sequence, event.eventType, event.agentRole, event.agentName, event.skillName ?? null, event.toolName ?? null, event.mcpMethod ?? null, event.startedAt, event.endedAt ?? null, event.status, event.inputJson ?? null, event.outputJson ?? null, event.errorCategory ?? null);
|
|
37
|
+
return getEventById(db, event.id);
|
|
38
|
+
}
|
|
39
|
+
/** Get event by ID */
|
|
40
|
+
export function getEventById(db, id) {
|
|
41
|
+
const stmt = db.prepare("SELECT * FROM events WHERE id = ?");
|
|
42
|
+
const row = stmt.get(id);
|
|
43
|
+
return row ? rowToEvent(row) : null;
|
|
44
|
+
}
|
|
45
|
+
/** Get all events for a session, ordered by sequence */
|
|
46
|
+
export function getEventsBySession(db, sessionId) {
|
|
47
|
+
const stmt = db.prepare("SELECT * FROM events WHERE session_id = ? ORDER BY sequence ASC");
|
|
48
|
+
return stmt.all(sessionId).map(rowToEvent);
|
|
49
|
+
}
|
|
50
|
+
/** Get events for a session with pagination, ordered by sequence ASC */
|
|
51
|
+
export function getEventsBySessionPaginated(db, sessionId, options = {}) {
|
|
52
|
+
const after = options.after ?? 0;
|
|
53
|
+
const limit = options.limit ?? 200;
|
|
54
|
+
const stmt = db.prepare("SELECT * FROM events WHERE session_id = ? AND sequence > ? ORDER BY sequence ASC LIMIT ?");
|
|
55
|
+
return stmt.all(sessionId, after, limit).map(rowToEvent);
|
|
56
|
+
}
|
|
57
|
+
/** Count events for a session (efficient SQL count) */
|
|
58
|
+
export function countEventsBySession(db, sessionId) {
|
|
59
|
+
const stmt = db.prepare("SELECT COUNT(*) as count FROM events WHERE session_id = ?");
|
|
60
|
+
const row = stmt.get(sessionId);
|
|
61
|
+
return row.count;
|
|
62
|
+
}
|
|
63
|
+
/** Update an event's status and endedAt */
|
|
64
|
+
export function updateEventStatus(db, id, status, endedAt) {
|
|
65
|
+
const stmt = db.prepare(`
|
|
66
|
+
UPDATE events SET status = ?, ended_at = COALESCE(?, ended_at)
|
|
67
|
+
WHERE id = ?
|
|
68
|
+
`);
|
|
69
|
+
const result = stmt.run(status, endedAt ?? null, id);
|
|
70
|
+
if (result.changes === 0) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
return getEventById(db, id);
|
|
74
|
+
}
|
|
75
|
+
/** Get events for a session with filters (for CLI grep/search) */
|
|
76
|
+
export function getEventsBySessionFiltered(db, sessionId, options = {}) {
|
|
77
|
+
const conditions = ["session_id = ?"];
|
|
78
|
+
const params = [sessionId];
|
|
79
|
+
if (options.toolName) {
|
|
80
|
+
conditions.push("tool_name = ?");
|
|
81
|
+
params.push(options.toolName);
|
|
82
|
+
}
|
|
83
|
+
if (options.status) {
|
|
84
|
+
conditions.push("status = ?");
|
|
85
|
+
params.push(options.status);
|
|
86
|
+
}
|
|
87
|
+
if (options.errorCategory) {
|
|
88
|
+
conditions.push("error_category = ?");
|
|
89
|
+
params.push(options.errorCategory);
|
|
90
|
+
}
|
|
91
|
+
if (options.sinceSeq !== undefined) {
|
|
92
|
+
conditions.push("sequence > ?");
|
|
93
|
+
params.push(options.sinceSeq);
|
|
94
|
+
}
|
|
95
|
+
let sql = `SELECT * FROM events WHERE ${conditions.join(" AND ")} ORDER BY sequence ASC`;
|
|
96
|
+
if (options.limit) {
|
|
97
|
+
sql += " LIMIT ?";
|
|
98
|
+
params.push(options.limit);
|
|
99
|
+
}
|
|
100
|
+
const stmt = db.prepare(sql);
|
|
101
|
+
return stmt.all(...params).map(rowToEvent);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get the most recent tool_call event for a session.
|
|
105
|
+
* Used by doctor command to show recording health.
|
|
106
|
+
*/
|
|
107
|
+
export function getLatestToolCallEvent(db, sessionId) {
|
|
108
|
+
const stmt = db.prepare(`
|
|
109
|
+
SELECT * FROM events
|
|
110
|
+
WHERE session_id = ? AND event_type = 'tool_call'
|
|
111
|
+
ORDER BY sequence DESC
|
|
112
|
+
LIMIT 1
|
|
113
|
+
`);
|
|
114
|
+
const row = stmt.get(sessionId);
|
|
115
|
+
return row ? rowToEvent(row) : null;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/db/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.test.d.ts","sourceRoot":"","sources":["../../src/db/events.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for event database operations.
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
5
|
+
import { randomUUID } from "node:crypto";
|
|
6
|
+
import { openMemoryDatabase, runMigrations, getDefaultMigrationsDir, insertEvent, getLatestToolCallEvent, createSession, } from "../index.js";
|
|
7
|
+
describe("events", () => {
|
|
8
|
+
let db;
|
|
9
|
+
let sessionId;
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
db = openMemoryDatabase();
|
|
12
|
+
runMigrations(db, getDefaultMigrationsDir());
|
|
13
|
+
// Create a session
|
|
14
|
+
sessionId = randomUUID();
|
|
15
|
+
createSession(db, sessionId, new Date().toISOString());
|
|
16
|
+
});
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
db.close();
|
|
19
|
+
});
|
|
20
|
+
describe("getLatestToolCallEvent", () => {
|
|
21
|
+
it("returns null when no tool_call events exist", () => {
|
|
22
|
+
const result = getLatestToolCallEvent(db, sessionId);
|
|
23
|
+
expect(result).toBeNull();
|
|
24
|
+
});
|
|
25
|
+
it("returns null when only other event types exist", () => {
|
|
26
|
+
insertEvent(db, createEvent(sessionId, 1, "agent_call"));
|
|
27
|
+
const result = getLatestToolCallEvent(db, sessionId);
|
|
28
|
+
expect(result).toBeNull();
|
|
29
|
+
});
|
|
30
|
+
it("returns the most recent tool_call event", () => {
|
|
31
|
+
// Insert events in order
|
|
32
|
+
insertEvent(db, createEvent(sessionId, 1, "tool_call", "tool-1"));
|
|
33
|
+
insertEvent(db, createEvent(sessionId, 2, "agent_call"));
|
|
34
|
+
insertEvent(db, createEvent(sessionId, 3, "tool_call", "tool-2"));
|
|
35
|
+
insertEvent(db, createEvent(sessionId, 4, "skill_call"));
|
|
36
|
+
const result = getLatestToolCallEvent(db, sessionId);
|
|
37
|
+
expect(result).not.toBeNull();
|
|
38
|
+
expect(result.sequence).toBe(3);
|
|
39
|
+
expect(result.toolName).toBe("tool-2");
|
|
40
|
+
});
|
|
41
|
+
it("returns correct event for specific session", () => {
|
|
42
|
+
// Create another session
|
|
43
|
+
const session2Id = randomUUID();
|
|
44
|
+
createSession(db, session2Id, new Date().toISOString());
|
|
45
|
+
// Insert tool_call in first session
|
|
46
|
+
insertEvent(db, createEvent(sessionId, 1, "tool_call", "session1-tool"));
|
|
47
|
+
// Insert tool_call in second session
|
|
48
|
+
insertEvent(db, createEvent(session2Id, 1, "tool_call", "session2-tool"));
|
|
49
|
+
const result1 = getLatestToolCallEvent(db, sessionId);
|
|
50
|
+
const result2 = getLatestToolCallEvent(db, session2Id);
|
|
51
|
+
expect(result1.toolName).toBe("session1-tool");
|
|
52
|
+
expect(result2.toolName).toBe("session2-tool");
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
/**
|
|
57
|
+
* Helper to create a test event input.
|
|
58
|
+
*/
|
|
59
|
+
function createEvent(sessionId, sequence, eventType, toolName) {
|
|
60
|
+
return {
|
|
61
|
+
id: `event-${sessionId}-${sequence}`,
|
|
62
|
+
sessionId,
|
|
63
|
+
sequence,
|
|
64
|
+
eventType,
|
|
65
|
+
agentRole: "main",
|
|
66
|
+
agentName: "test-agent",
|
|
67
|
+
toolName: toolName ?? null,
|
|
68
|
+
startedAt: new Date().toISOString(),
|
|
69
|
+
status: "success",
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=events.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.test.js","sourceRoot":"","sources":["../../src/db/events.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database module exports.
|
|
3
|
+
*/
|
|
4
|
+
export { openDatabase, openMemoryDatabase } from "./connection.js";
|
|
5
|
+
export { runMigrations, getDefaultMigrationsDir } from "./migrations.js";
|
|
6
|
+
export { createSession, startSession, endSession, getSessionById, listSessions, } from "./sessions.js";
|
|
7
|
+
export { insertEvent, getEventById, getEventsBySession, getEventsBySessionPaginated, getEventsBySessionFiltered, countEventsBySession, updateEventStatus, getLatestToolCallEvent, type InsertEventInput, type EventQueryOptions, type EventFilterOptions, } from "./events.js";
|
|
8
|
+
export { allocateSequence, getCurrentSequence } from "./sequences.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,aAAa,EACb,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,2BAA2B,EAC3B,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database module exports.
|
|
3
|
+
*/
|
|
4
|
+
export { openDatabase, openMemoryDatabase } from "./connection.js";
|
|
5
|
+
export { runMigrations, getDefaultMigrationsDir } from "./migrations.js";
|
|
6
|
+
export { createSession, startSession, endSession, getSessionById, listSessions, } from "./sessions.js";
|
|
7
|
+
export { insertEvent, getEventById, getEventsBySession, getEventsBySessionPaginated, getEventsBySessionFiltered, countEventsBySession, updateEventStatus, getLatestToolCallEvent, } from "./events.js";
|
|
8
|
+
export { allocateSequence, getCurrentSequence } from "./sequences.js";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,aAAa,EACb,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,2BAA2B,EAC3B,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,GAIvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite migrations runner.
|
|
3
|
+
* Reads *.sql files from migrations folder and applies them in order.
|
|
4
|
+
*/
|
|
5
|
+
import type Database from "better-sqlite3";
|
|
6
|
+
/**
|
|
7
|
+
* Runs all pending migrations from the migrations folder.
|
|
8
|
+
* Creates _migrations tracking table if it doesn't exist.
|
|
9
|
+
*/
|
|
10
|
+
export declare function runMigrations(db: Database.Database, migrationsDir: string): void;
|
|
11
|
+
/**
|
|
12
|
+
* Gets the default migrations directory path.
|
|
13
|
+
* Assumes this file is at packages/core/src/db/migrations.ts (or dist/db/migrations.js)
|
|
14
|
+
* and migrations are at packages/core/migrations/
|
|
15
|
+
*/
|
|
16
|
+
export declare function getDefaultMigrationsDir(): string;
|
|
17
|
+
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAK3C;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,aAAa,EAAE,MAAM,GACpB,IAAI,CAsCN;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAOhD"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite migrations runner.
|
|
3
|
+
* Reads *.sql files from migrations folder and applies them in order.
|
|
4
|
+
*/
|
|
5
|
+
import { readdirSync, readFileSync } from "node:fs";
|
|
6
|
+
import { join, dirname } from "node:path";
|
|
7
|
+
import { fileURLToPath } from "node:url";
|
|
8
|
+
/**
|
|
9
|
+
* Runs all pending migrations from the migrations folder.
|
|
10
|
+
* Creates _migrations tracking table if it doesn't exist.
|
|
11
|
+
*/
|
|
12
|
+
export function runMigrations(db, migrationsDir) {
|
|
13
|
+
// Create migrations tracking table programmatically
|
|
14
|
+
db.exec(`
|
|
15
|
+
CREATE TABLE IF NOT EXISTS _migrations (
|
|
16
|
+
filename TEXT PRIMARY KEY,
|
|
17
|
+
applied_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
18
|
+
)
|
|
19
|
+
`);
|
|
20
|
+
// Get list of applied migrations
|
|
21
|
+
const applied = new Set(db
|
|
22
|
+
.prepare("SELECT filename FROM _migrations")
|
|
23
|
+
.all()
|
|
24
|
+
.map((row) => row.filename));
|
|
25
|
+
// Read migration files sorted by name
|
|
26
|
+
const files = readdirSync(migrationsDir)
|
|
27
|
+
.filter((f) => f.endsWith(".sql"))
|
|
28
|
+
.sort();
|
|
29
|
+
// Apply pending migrations
|
|
30
|
+
for (const filename of files) {
|
|
31
|
+
if (applied.has(filename)) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
const sql = readFileSync(join(migrationsDir, filename), "utf-8");
|
|
35
|
+
// Run migration in a transaction
|
|
36
|
+
db.transaction(() => {
|
|
37
|
+
db.exec(sql);
|
|
38
|
+
db.prepare("INSERT INTO _migrations (filename) VALUES (?)").run(filename);
|
|
39
|
+
})();
|
|
40
|
+
console.log(`Applied migration: ${filename}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Gets the default migrations directory path.
|
|
45
|
+
* Assumes this file is at packages/core/src/db/migrations.ts (or dist/db/migrations.js)
|
|
46
|
+
* and migrations are at packages/core/migrations/
|
|
47
|
+
*/
|
|
48
|
+
export function getDefaultMigrationsDir() {
|
|
49
|
+
// ESM-compatible __dirname equivalent
|
|
50
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
51
|
+
const __dirname = dirname(__filename);
|
|
52
|
+
// When running from dist, we need to go up to packages/core
|
|
53
|
+
// This works for both src and dist locations
|
|
54
|
+
return join(__dirname, "..", "..", "migrations");
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,EAAqB,EACrB,aAAqB;IAErB,oDAAoD;IACpD,EAAE,CAAC,IAAI,CAAC;;;;;GAKP,CAAC,CAAC;IAEH,iCAAiC;IACjC,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,EAAE;SACC,OAAO,CAAC,kCAAkC,CAAC;SAC3C,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAE,GAA4B,CAAC,QAAQ,CAAC,CACxD,CAAC;IAEF,sCAAsC;IACtC,MAAM,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC;SACrC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACjC,IAAI,EAAE,CAAC;IAEV,2BAA2B;IAC3B,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAEjE,iCAAiC;QACjC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5E,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB;IACrC,sCAAsC;IACtC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,4DAA4D;IAC5D,6CAA6C;IAC7C,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atomic sequence number allocation for sessions.
|
|
3
|
+
* Uses session_sequences table to ensure unique, monotonically increasing sequences.
|
|
4
|
+
*/
|
|
5
|
+
import type Database from "better-sqlite3";
|
|
6
|
+
/**
|
|
7
|
+
* Allocate the next sequence number for a session atomically.
|
|
8
|
+
* Creates the session_sequences row if it doesn't exist.
|
|
9
|
+
* Returns the allocated sequence number.
|
|
10
|
+
*/
|
|
11
|
+
export declare function allocateSequence(db: Database.Database, sessionId: string): number;
|
|
12
|
+
/**
|
|
13
|
+
* Get the current next sequence number for a session without allocating.
|
|
14
|
+
* Returns null if session has no sequence record.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getCurrentSequence(db: Database.Database, sessionId: string): number | null;
|
|
17
|
+
//# sourceMappingURL=sequences.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequences.d.ts","sourceRoot":"","sources":["../../src/db/sequences.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,GAChB,MAAM,CAuBR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAMf"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atomic sequence number allocation for sessions.
|
|
3
|
+
* Uses session_sequences table to ensure unique, monotonically increasing sequences.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Allocate the next sequence number for a session atomically.
|
|
7
|
+
* Creates the session_sequences row if it doesn't exist.
|
|
8
|
+
* Returns the allocated sequence number.
|
|
9
|
+
*/
|
|
10
|
+
export function allocateSequence(db, sessionId) {
|
|
11
|
+
// Use a transaction to ensure atomicity
|
|
12
|
+
const allocate = db.transaction(() => {
|
|
13
|
+
// Try to insert a new row, or get the current sequence
|
|
14
|
+
const upsertStmt = db.prepare(`
|
|
15
|
+
INSERT INTO session_sequences (session_id, next_sequence)
|
|
16
|
+
VALUES (?, 1)
|
|
17
|
+
ON CONFLICT(session_id) DO UPDATE SET next_sequence = next_sequence
|
|
18
|
+
`);
|
|
19
|
+
upsertStmt.run(sessionId);
|
|
20
|
+
// Get and increment the sequence atomically
|
|
21
|
+
const updateStmt = db.prepare(`
|
|
22
|
+
UPDATE session_sequences
|
|
23
|
+
SET next_sequence = next_sequence + 1
|
|
24
|
+
WHERE session_id = ?
|
|
25
|
+
RETURNING next_sequence - 1 as allocated_sequence
|
|
26
|
+
`);
|
|
27
|
+
const result = updateStmt.get(sessionId);
|
|
28
|
+
return result.allocated_sequence;
|
|
29
|
+
});
|
|
30
|
+
return allocate();
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get the current next sequence number for a session without allocating.
|
|
34
|
+
* Returns null if session has no sequence record.
|
|
35
|
+
*/
|
|
36
|
+
export function getCurrentSequence(db, sessionId) {
|
|
37
|
+
const stmt = db.prepare("SELECT next_sequence FROM session_sequences WHERE session_id = ?");
|
|
38
|
+
const row = stmt.get(sessionId);
|
|
39
|
+
return row ? row.next_sequence : null;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=sequences.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequences.js","sourceRoot":"","sources":["../../src/db/sequences.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,EAAqB,EACrB,SAAiB;IAEjB,wCAAwC;IACxC,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QACnC,uDAAuD;QACvD,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC;;;;KAI7B,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE1B,4CAA4C;QAC5C,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;KAK7B,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAmC,CAAC;QAC3E,OAAO,MAAM,CAAC,kBAAkB,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,EAAE,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,EAAqB,EACrB,SAAiB;IAEjB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,kEAAkE,CACnE,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAA0C,CAAC;IACzE,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session CRUD operations.
|
|
3
|
+
* Uses better-sqlite3 sync API.
|
|
4
|
+
*/
|
|
5
|
+
import type Database from "better-sqlite3";
|
|
6
|
+
import type { Session, SessionStatus } from "../types/index.js";
|
|
7
|
+
/** Create a new session */
|
|
8
|
+
export declare function createSession(db: Database.Database, id: string, startedAt: string): Session;
|
|
9
|
+
/** Create a new session with auto-generated ID. Returns the session. */
|
|
10
|
+
export declare function startSession(db: Database.Database): Session;
|
|
11
|
+
/** End a session by setting status and ended_at */
|
|
12
|
+
export declare function endSession(db: Database.Database, id: string, endedAt: string, status?: SessionStatus): Session | null;
|
|
13
|
+
/** Get session by ID */
|
|
14
|
+
export declare function getSessionById(db: Database.Database, id: string): Session | null;
|
|
15
|
+
/** List sessions with optional status filter */
|
|
16
|
+
export declare function listSessions(db: Database.Database, status?: SessionStatus): Session[];
|
|
17
|
+
//# sourceMappingURL=sessions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/db/sessions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAsBhE,2BAA2B;AAC3B,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,GAChB,OAAO,CAQT;AAED,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAI3D;AAED,mDAAmD;AACnD,wBAAgB,UAAU,CACxB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,aAA2B,GAClC,OAAO,GAAG,IAAI,CAYhB;AAED,wBAAwB;AACxB,wBAAgB,cAAc,CAC5B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,EAAE,EAAE,MAAM,GACT,OAAO,GAAG,IAAI,CAIhB;AAED,gDAAgD;AAChD,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,EAAE,CAWX"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session CRUD operations.
|
|
3
|
+
* Uses better-sqlite3 sync API.
|
|
4
|
+
*/
|
|
5
|
+
import { randomUUID } from "node:crypto";
|
|
6
|
+
/** Convert DB row to Session type */
|
|
7
|
+
function rowToSession(row) {
|
|
8
|
+
return {
|
|
9
|
+
id: row.id,
|
|
10
|
+
startedAt: row.started_at,
|
|
11
|
+
endedAt: row.ended_at,
|
|
12
|
+
status: row.status,
|
|
13
|
+
createdAt: row.created_at,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/** Create a new session */
|
|
17
|
+
export function createSession(db, id, startedAt) {
|
|
18
|
+
const stmt = db.prepare(`
|
|
19
|
+
INSERT INTO sessions (id, started_at, status, created_at)
|
|
20
|
+
VALUES (?, ?, 'active', datetime('now'))
|
|
21
|
+
`);
|
|
22
|
+
stmt.run(id, startedAt);
|
|
23
|
+
return getSessionById(db, id);
|
|
24
|
+
}
|
|
25
|
+
/** Create a new session with auto-generated ID. Returns the session. */
|
|
26
|
+
export function startSession(db) {
|
|
27
|
+
const id = randomUUID();
|
|
28
|
+
const startedAt = new Date().toISOString();
|
|
29
|
+
return createSession(db, id, startedAt);
|
|
30
|
+
}
|
|
31
|
+
/** End a session by setting status and ended_at */
|
|
32
|
+
export function endSession(db, id, endedAt, status = "completed") {
|
|
33
|
+
const stmt = db.prepare(`
|
|
34
|
+
UPDATE sessions SET ended_at = ?, status = ?
|
|
35
|
+
WHERE id = ?
|
|
36
|
+
`);
|
|
37
|
+
const result = stmt.run(endedAt, status, id);
|
|
38
|
+
if (result.changes === 0) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
return getSessionById(db, id);
|
|
42
|
+
}
|
|
43
|
+
/** Get session by ID */
|
|
44
|
+
export function getSessionById(db, id) {
|
|
45
|
+
const stmt = db.prepare("SELECT * FROM sessions WHERE id = ?");
|
|
46
|
+
const row = stmt.get(id);
|
|
47
|
+
return row ? rowToSession(row) : null;
|
|
48
|
+
}
|
|
49
|
+
/** List sessions with optional status filter */
|
|
50
|
+
export function listSessions(db, status) {
|
|
51
|
+
let stmt;
|
|
52
|
+
if (status) {
|
|
53
|
+
stmt = db.prepare("SELECT * FROM sessions WHERE status = ? ORDER BY started_at DESC");
|
|
54
|
+
return stmt.all(status).map(rowToSession);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
stmt = db.prepare("SELECT * FROM sessions ORDER BY started_at DESC");
|
|
58
|
+
return stmt.all().map(rowToSession);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=sessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/db/sessions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAYzC,qCAAqC;AACrC,SAAS,YAAY,CAAC,GAAe;IACnC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,MAAM,EAAE,GAAG,CAAC,MAAuB;QACnC,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,aAAa,CAC3B,EAAqB,EACrB,EAAU,EACV,SAAiB;IAEjB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAGvB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAExB,OAAO,cAAc,CAAC,EAAE,EAAE,EAAE,CAAE,CAAC;AACjC,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,YAAY,CAAC,EAAqB;IAChD,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;IACxB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,UAAU,CACxB,EAAqB,EACrB,EAAU,EACV,OAAe,EACf,SAAwB,WAAW;IAEnC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAGvB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAE7C,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,wBAAwB;AACxB,MAAM,UAAU,cAAc,CAC5B,EAAqB,EACrB,EAAU;IAEV,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAA2B,CAAC;IACnD,OAAO,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,YAAY,CAC1B,EAAqB,EACrB,MAAsB;IAEtB,IAAI,IAAI,CAAC;IACT,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,GAAG,EAAE,CAAC,OAAO,CACf,kEAAkE,CACnE,CAAC;QACF,OAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,CAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;QACrE,OAAQ,IAAI,CAAC,GAAG,EAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agent-recorder/core
|
|
3
|
+
*
|
|
4
|
+
* Core types, utilities, and SQLite integration for Agent Recorder.
|
|
5
|
+
* Local-first flight recorder for Claude Code.
|
|
6
|
+
*/
|
|
7
|
+
export * from "./types/index.js";
|
|
8
|
+
export * from "./db/index.js";
|
|
9
|
+
export * from "./utils/index.js";
|
|
10
|
+
export { loadConfig, type Config } from "./config.js";
|
|
11
|
+
export * from "./daemon-paths.js";
|
|
12
|
+
export * from "./lockfile.js";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACtD,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agent-recorder/core
|
|
3
|
+
*
|
|
4
|
+
* Core types, utilities, and SQLite integration for Agent Recorder.
|
|
5
|
+
* Local-first flight recorder for Claude Code.
|
|
6
|
+
*/
|
|
7
|
+
export * from "./types/index.js";
|
|
8
|
+
export * from "./db/index.js";
|
|
9
|
+
export * from "./utils/index.js";
|
|
10
|
+
export { loadConfig } from "./config.js";
|
|
11
|
+
export * from "./daemon-paths.js";
|
|
12
|
+
export * from "./lockfile.js";
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAe,MAAM,aAAa,CAAC;AACtD,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lockfile handling for single-instance daemon enforcement.
|
|
3
|
+
* Uses exclusive file creation for atomic lock acquisition.
|
|
4
|
+
*/
|
|
5
|
+
export interface LockResult {
|
|
6
|
+
acquired: boolean;
|
|
7
|
+
existingPid?: number;
|
|
8
|
+
error?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Attempt to acquire an exclusive lock.
|
|
12
|
+
* Uses fs.openSync with 'wx' flag for atomic exclusive creation.
|
|
13
|
+
*
|
|
14
|
+
* @param lockPath - Path to lock file
|
|
15
|
+
* @param pid - PID to write to lock file (defaults to current process)
|
|
16
|
+
* @returns Result indicating success or failure with details
|
|
17
|
+
*/
|
|
18
|
+
export declare function acquireLock(lockPath: string, pid?: number): LockResult;
|
|
19
|
+
/**
|
|
20
|
+
* Release a lock by removing the lock file.
|
|
21
|
+
* Safe to call even if lock doesn't exist.
|
|
22
|
+
*/
|
|
23
|
+
export declare function releaseLock(lockPath: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* Check if lock is stale (process no longer running).
|
|
26
|
+
* If stale, clean up the lock file and PID file.
|
|
27
|
+
*
|
|
28
|
+
* @param lockPath - Path to lock file
|
|
29
|
+
* @param pidPath - Optional path to PID file (for cleanup)
|
|
30
|
+
* @returns true if lock was stale and cleaned up
|
|
31
|
+
*/
|
|
32
|
+
export declare function checkAndCleanStaleLock(lockPath: string, pidPath?: string): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Try to acquire lock, cleaning up stale locks first.
|
|
35
|
+
* This is the recommended way to acquire a lock.
|
|
36
|
+
*
|
|
37
|
+
* @param lockPath - Path to lock file
|
|
38
|
+
* @param pidPath - Optional path to PID file (for stale cleanup)
|
|
39
|
+
* @param pid - PID to write (defaults to current process)
|
|
40
|
+
*/
|
|
41
|
+
export declare function acquireLockWithCleanup(lockPath: string, pidPath?: string, pid?: number): LockResult;
|
|
42
|
+
//# sourceMappingURL=lockfile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../src/lockfile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAqCtE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMlD;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAkCT;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,UAAU,CAMZ"}
|