agent-recorder 2.0.0 → 2.0.2

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 (60) hide show
  1. package/dist/bundle.js +24 -5
  2. package/dist/bundle.js.map +1 -1
  3. package/package.json +4 -2
  4. package/vendor/node_modules/@agent-recorder/cli/commands/hooks.d.ts +12 -0
  5. package/vendor/node_modules/@agent-recorder/cli/commands/hooks.d.ts.map +1 -0
  6. package/vendor/node_modules/@agent-recorder/cli/commands/hooks.js +182 -0
  7. package/vendor/node_modules/@agent-recorder/cli/commands/hooks.js.map +1 -0
  8. package/vendor/node_modules/@agent-recorder/cli/commands/upstream.d.ts.map +1 -1
  9. package/vendor/node_modules/@agent-recorder/cli/commands/upstream.js +21 -0
  10. package/vendor/node_modules/@agent-recorder/cli/commands/upstream.js.map +1 -1
  11. package/vendor/node_modules/@agent-recorder/cli/index.js +23 -0
  12. package/vendor/node_modules/@agent-recorder/cli/index.js.map +1 -1
  13. package/vendor/node_modules/@agent-recorder/cli/package.json +1 -1
  14. package/vendor/node_modules/@agent-recorder/core/package.json +1 -1
  15. package/vendor/node_modules/@agent-recorder/hooks/handler.d.ts +24 -0
  16. package/vendor/node_modules/@agent-recorder/hooks/handler.d.ts.map +1 -0
  17. package/vendor/node_modules/@agent-recorder/hooks/handler.js +132 -0
  18. package/vendor/node_modules/@agent-recorder/hooks/handler.js.map +1 -0
  19. package/vendor/node_modules/@agent-recorder/hooks/index.d.ts +8 -0
  20. package/vendor/node_modules/@agent-recorder/hooks/index.d.ts.map +1 -0
  21. package/vendor/node_modules/@agent-recorder/hooks/index.js +8 -0
  22. package/vendor/node_modules/@agent-recorder/hooks/index.js.map +1 -0
  23. package/vendor/node_modules/@agent-recorder/hooks/package.json +12 -0
  24. package/vendor/node_modules/@agent-recorder/hooks/types.d.ts +94 -0
  25. package/vendor/node_modules/@agent-recorder/hooks/types.d.ts.map +1 -0
  26. package/vendor/node_modules/@agent-recorder/hooks/types.js +8 -0
  27. package/vendor/node_modules/@agent-recorder/hooks/types.js.map +1 -0
  28. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d.ts.map +1 -1
  29. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js +68 -0
  30. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js.map +1 -1
  31. package/vendor/node_modules/@agent-recorder/service/package.json +1 -1
  32. package/vendor/node_modules/@agent-recorder/service/routes/hooks.d.ts +15 -0
  33. package/vendor/node_modules/@agent-recorder/service/routes/hooks.d.ts.map +1 -0
  34. package/vendor/node_modules/@agent-recorder/service/routes/hooks.js +166 -0
  35. package/vendor/node_modules/@agent-recorder/service/routes/hooks.js.map +1 -0
  36. package/vendor/node_modules/@agent-recorder/service/routes/stdio.d.ts +14 -0
  37. package/vendor/node_modules/@agent-recorder/service/routes/stdio.d.ts.map +1 -0
  38. package/vendor/node_modules/@agent-recorder/service/routes/stdio.js +85 -0
  39. package/vendor/node_modules/@agent-recorder/service/routes/stdio.js.map +1 -0
  40. package/vendor/node_modules/@agent-recorder/service/server.d.ts +1 -0
  41. package/vendor/node_modules/@agent-recorder/service/server.d.ts.map +1 -1
  42. package/vendor/node_modules/@agent-recorder/service/server.js +5 -1
  43. package/vendor/node_modules/@agent-recorder/service/server.js.map +1 -1
  44. package/vendor/node_modules/@agent-recorder/stdio-proxy/cli.d.ts +22 -0
  45. package/vendor/node_modules/@agent-recorder/stdio-proxy/cli.d.ts.map +1 -0
  46. package/vendor/node_modules/@agent-recorder/stdio-proxy/cli.js +158 -0
  47. package/vendor/node_modules/@agent-recorder/stdio-proxy/cli.js.map +1 -0
  48. package/vendor/node_modules/@agent-recorder/stdio-proxy/index.d.ts +9 -0
  49. package/vendor/node_modules/@agent-recorder/stdio-proxy/index.d.ts.map +1 -0
  50. package/vendor/node_modules/@agent-recorder/stdio-proxy/index.js +8 -0
  51. package/vendor/node_modules/@agent-recorder/stdio-proxy/index.js.map +1 -0
  52. package/vendor/node_modules/@agent-recorder/stdio-proxy/package.json +12 -0
  53. package/vendor/node_modules/@agent-recorder/stdio-proxy/proxy.d.ts +45 -0
  54. package/vendor/node_modules/@agent-recorder/stdio-proxy/proxy.d.ts.map +1 -0
  55. package/vendor/node_modules/@agent-recorder/stdio-proxy/proxy.js +293 -0
  56. package/vendor/node_modules/@agent-recorder/stdio-proxy/proxy.js.map +1 -0
  57. package/vendor/node_modules/@agent-recorder/stdio-proxy/types.d.ts +68 -0
  58. package/vendor/node_modules/@agent-recorder/stdio-proxy/types.d.ts.map +1 -0
  59. package/vendor/node_modules/@agent-recorder/stdio-proxy/types.js +5 -0
  60. package/vendor/node_modules/@agent-recorder/stdio-proxy/types.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @agent-recorder/hooks
3
+ *
4
+ * Claude Code hook handlers for Agent Recorder.
5
+ * Captures tool calls via Claude Code's native hooks system.
6
+ */
7
+ export * from "./types.js";
8
+ //# 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,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @agent-recorder/hooks
3
+ *
4
+ * Claude Code hook handlers for Agent Recorder.
5
+ * Captures tool calls via Claude Code's native hooks system.
6
+ */
7
+ export * from "./types.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC"}
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "@agent-recorder/hooks",
3
+ "version": "2.0.0",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": {
7
+ "types": "./index.d.ts",
8
+ "import": "./index.js"
9
+ }
10
+ },
11
+ "dependencies": {}
12
+ }
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Claude Code Hook Event Types
3
+ *
4
+ * These types represent the JSON payloads that Claude Code passes to hooks via stdin.
5
+ * See: https://code.claude.com/docs/en/hooks
6
+ */
7
+ /** Base hook event with common fields */
8
+ export interface BaseHookEvent {
9
+ /** Unique session identifier */
10
+ session_id: string;
11
+ /** Path to the full transcript JSON file */
12
+ transcript_path?: string;
13
+ }
14
+ /** PreToolUse hook - fires BEFORE a tool is executed */
15
+ export interface PreToolUseEvent extends BaseHookEvent {
16
+ hook_type: "PreToolUse";
17
+ /** Name of the tool being called (e.g., "Bash", "Read", "mcp__figma__get_file") */
18
+ tool_name: string;
19
+ /** Input parameters for the tool */
20
+ tool_input: Record<string, unknown>;
21
+ }
22
+ /** PostToolUse hook - fires AFTER a tool completes successfully */
23
+ export interface PostToolUseEvent extends BaseHookEvent {
24
+ hook_type: "PostToolUse";
25
+ /** Name of the tool that was called */
26
+ tool_name: string;
27
+ /** Input parameters that were passed to the tool */
28
+ tool_input: Record<string, unknown>;
29
+ /** Response/output from the tool */
30
+ tool_response: unknown;
31
+ }
32
+ /** Stop hook - fires when the main agent finishes responding */
33
+ export interface StopEvent extends BaseHookEvent {
34
+ hook_type: "Stop";
35
+ /** Whether this stop was triggered by a previous stop hook */
36
+ stop_hook_active?: boolean;
37
+ }
38
+ /** SubagentStop hook - fires when a subagent (Task tool) completes */
39
+ export interface SubagentStopEvent extends BaseHookEvent {
40
+ hook_type: "SubagentStop";
41
+ /** Subagent type that completed */
42
+ subagent_type?: string;
43
+ }
44
+ /** SessionStart hook - fires when a session begins */
45
+ export interface SessionStartEvent extends BaseHookEvent {
46
+ hook_type: "SessionStart";
47
+ /** How the session was started (e.g., "new", "resume") */
48
+ start_source?: string;
49
+ }
50
+ /** SessionEnd hook - fires when a session ends */
51
+ export interface SessionEndEvent extends BaseHookEvent {
52
+ hook_type: "SessionEnd";
53
+ /** Reason for session end */
54
+ end_reason?: string;
55
+ /** Session statistics */
56
+ statistics?: {
57
+ duration_ms?: number;
58
+ tool_calls?: number;
59
+ tokens_used?: number;
60
+ };
61
+ }
62
+ /** Notification hook - fires when Claude sends a notification */
63
+ export interface NotificationEvent extends BaseHookEvent {
64
+ hook_type: "Notification";
65
+ /** Notification message */
66
+ message: string;
67
+ }
68
+ /** PreCompact hook - fires before context compaction */
69
+ export interface PreCompactEvent extends BaseHookEvent {
70
+ hook_type: "PreCompact";
71
+ }
72
+ /** Union of all hook event types */
73
+ export type HookEvent = PreToolUseEvent | PostToolUseEvent | StopEvent | SubagentStopEvent | SessionStartEvent | SessionEndEvent | NotificationEvent | PreCompactEvent;
74
+ /** Hook output for controlling Claude's behavior */
75
+ export interface HookOutput {
76
+ /** Decision: approve, block, allow, deny */
77
+ decision?: "approve" | "block" | "allow" | "deny";
78
+ /** Reason shown to Claude */
79
+ reason?: string;
80
+ /** For Stop hooks: force continuation */
81
+ continue?: boolean;
82
+ /** Modified tool input (PreToolUse only) */
83
+ updatedInput?: Record<string, unknown>;
84
+ /** Suppress hook output from transcript */
85
+ suppressOutput?: boolean;
86
+ }
87
+ /** Configuration for the hook handler */
88
+ export interface HookConfig {
89
+ /** Agent Recorder service URL (default: http://127.0.0.1:8787) */
90
+ serviceUrl: string;
91
+ /** Enable debug logging */
92
+ debug: boolean;
93
+ }
94
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wDAAwD;AACxD,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,SAAS,EAAE,YAAY,CAAC;IACxB,mFAAmF;IACnF,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,mEAAmE;AACnE,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,SAAS,EAAE,aAAa,CAAC;IACzB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,oCAAoC;IACpC,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,gEAAgE;AAChE,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,sEAAsE;AACtE,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,SAAS,EAAE,cAAc,CAAC;IAC1B,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,sDAAsD;AACtD,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,SAAS,EAAE,cAAc,CAAC;IAC1B,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,kDAAkD;AAClD,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,SAAS,EAAE,YAAY,CAAC;IACxB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,UAAU,CAAC,EAAE;QACX,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,iEAAiE;AACjE,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,SAAS,EAAE,cAAc,CAAC;IAC1B,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wDAAwD;AACxD,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,oCAAoC;AACpC,MAAM,MAAM,SAAS,GACjB,eAAe,GACf,gBAAgB,GAChB,SAAS,GACT,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,eAAe,CAAC;AAEpB,oDAAoD;AACpD,MAAM,WAAW,UAAU;IACzB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IAClD,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,2CAA2C;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,KAAK,EAAE,OAAO,CAAC;CAChB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Claude Code Hook Event Types
3
+ *
4
+ * These types represent the JSON payloads that Claude Code passes to hooks via stdin.
5
+ * See: https://code.claude.com/docs/en/hooks
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/mcp/proxy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,sBAAsB,CAAC;AA0DjE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,eAAe,CAAC;IACrB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAoPD;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAyV/B"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/mcp/proxy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,sBAAsB,CAAC;AA0DjE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,eAAe,CAAC;IACrB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAoPD;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAia/B"}
@@ -427,6 +427,74 @@ export async function createMcpProxy(options) {
427
427
  });
428
428
  }
429
429
  clearTimeout(timeoutId);
430
+ // Check for HTTP-level errors before parsing response body
431
+ if (!downstreamResponse.ok) {
432
+ const statusCode = downstreamResponse.status;
433
+ const statusText = downstreamResponse.statusText;
434
+ // Try to read response body for more details
435
+ let errorBody = "";
436
+ try {
437
+ errorBody = await downstreamResponse.text();
438
+ }
439
+ catch {
440
+ // Ignore if we can't read body
441
+ }
442
+ // Log detailed error
443
+ console.error(`Downstream returned HTTP ${statusCode} ${statusText}`);
444
+ console.error(` Target URL: ${finalDownstreamUrl}`);
445
+ console.error(` Upstream key: ${finalUpstreamKey ?? "(legacy mode)"}`);
446
+ if (debugProxy && errorBody) {
447
+ console.error(` Response body: ${errorBody.slice(0, 200)}`);
448
+ }
449
+ // Map HTTP status to user-friendly message
450
+ let userMessage;
451
+ let category;
452
+ if (statusCode === 401 || statusCode === 403) {
453
+ userMessage = `Authentication failed (HTTP ${statusCode}). The upstream server rejected the credentials.`;
454
+ category = "auth_error";
455
+ // Extra hint for common OAuth-only servers
456
+ console.error(" Note: Some MCP servers (e.g., Figma remote) only support OAuth, not Personal Access Tokens.");
457
+ }
458
+ else if (statusCode === 404) {
459
+ userMessage = `Upstream endpoint not found (HTTP ${statusCode}). Check the URL is correct.`;
460
+ category = "not_found";
461
+ }
462
+ else if (statusCode >= 500) {
463
+ userMessage = `Upstream server error (HTTP ${statusCode} ${statusText})`;
464
+ category = "server_error";
465
+ }
466
+ else {
467
+ userMessage = `Upstream returned HTTP ${statusCode} ${statusText}`;
468
+ category = "http_error";
469
+ }
470
+ // Record failed tool call if applicable
471
+ if (isToolCall && toolName && sessionId) {
472
+ const endedAt = new Date().toISOString();
473
+ recordToolCall({
474
+ db,
475
+ sessionId,
476
+ toolName,
477
+ mcpMethod: "tools/call",
478
+ upstreamKey: finalUpstreamKey,
479
+ input: toolInput,
480
+ output: { error: userMessage, httpStatus: statusCode },
481
+ status: "error",
482
+ startedAt,
483
+ endedAt,
484
+ redactKeys,
485
+ debugProxy,
486
+ });
487
+ }
488
+ return reply.code(502).send({
489
+ jsonrpc: "2.0",
490
+ error: {
491
+ code: -32000,
492
+ message: userMessage,
493
+ data: { category, httpStatus: statusCode },
494
+ },
495
+ id: body.id ?? null,
496
+ });
497
+ }
430
498
  // Check response content type to handle SSE vs JSON
431
499
  const contentType = downstreamResponse.headers.get("content-type") ?? "";
432
500
  const isSSE = contentType.includes("text/event-stream");
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/mcp/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/mcp/proxy.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-recorder/service",
3
- "version": "0.0.1",
3
+ "version": "2.0.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Hooks API endpoint - receives events from Claude Code hooks.
3
+ *
4
+ * This endpoint is called by the agent-recorder-hook handler script
5
+ * which is configured in Claude Code's .claude/settings.json.
6
+ */
7
+ import type { FastifyInstance } from "fastify";
8
+ import type Database from "better-sqlite3";
9
+ interface HooksRoutesOptions {
10
+ db: Database.Database;
11
+ debug?: boolean;
12
+ }
13
+ export declare function registerHooksRoutes(app: FastifyInstance, options: HooksRoutesOptions): Promise<void>;
14
+ export {};
15
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/routes/hooks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAU3C,UAAU,kBAAkB;IAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAgFD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA0If"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Hooks API endpoint - receives events from Claude Code hooks.
3
+ *
4
+ * This endpoint is called by the agent-recorder-hook handler script
5
+ * which is configured in Claude Code's .claude/settings.json.
6
+ */
7
+ import { randomUUID } from "node:crypto";
8
+ import { insertEvent, createSession, getSessionById, allocateSequence, } from "@agent-recorder/core";
9
+ /** Get or create a session by ID */
10
+ function getOrCreateSession(db, sessionId) {
11
+ // Check if session exists
12
+ const existing = getSessionById(db, sessionId);
13
+ if (existing) {
14
+ return existing;
15
+ }
16
+ // Create new session with the provided ID
17
+ const now = new Date().toISOString();
18
+ return createSession(db, sessionId, now);
19
+ }
20
+ /** Map Claude Code tool names to our event model */
21
+ function parseToolName(toolName) {
22
+ // MCP tool names are prefixed with "mcp__<server>__<tool>"
23
+ if (toolName.startsWith("mcp__")) {
24
+ const parts = toolName.split("__");
25
+ if (parts.length >= 3) {
26
+ const serverKey = parts[1];
27
+ const mcpToolName = parts.slice(2).join("__");
28
+ return {
29
+ eventType: "tool_call",
30
+ cleanName: mcpToolName ?? toolName,
31
+ upstreamKey: serverKey ?? null,
32
+ };
33
+ }
34
+ }
35
+ // Task tool = subagent call
36
+ if (toolName === "Task") {
37
+ return {
38
+ eventType: "subagent_call",
39
+ cleanName: toolName,
40
+ upstreamKey: null,
41
+ };
42
+ }
43
+ // Skill tool = skill call
44
+ if (toolName === "Skill") {
45
+ return {
46
+ eventType: "skill_call",
47
+ cleanName: toolName,
48
+ upstreamKey: null,
49
+ };
50
+ }
51
+ // Built-in tools (Bash, Read, Write, Edit, Glob, Grep, etc.)
52
+ return {
53
+ eventType: "tool_call",
54
+ cleanName: toolName,
55
+ upstreamKey: "builtin",
56
+ };
57
+ }
58
+ export async function registerHooksRoutes(app, options) {
59
+ const { db, debug = false } = options;
60
+ // Receive hook events from Claude Code
61
+ app.post("/api/hooks", async (request, reply) => {
62
+ const startTime = Date.now();
63
+ try {
64
+ const payload = request.body;
65
+ if (debug) {
66
+ console.log(`[hooks] Received ${payload.hook_type} for session ${payload.session_id}`);
67
+ }
68
+ // Ensure session exists
69
+ const session = getOrCreateSession(db, payload.session_id);
70
+ // Handle different hook types
71
+ switch (payload.hook_type) {
72
+ case "PreToolUse": {
73
+ // We record on PostToolUse to get the response, but we could
74
+ // optionally record PreToolUse for "started" events
75
+ if (debug) {
76
+ console.log(`[hooks] PreToolUse: ${payload.tool_name} (not recording yet)`);
77
+ }
78
+ break;
79
+ }
80
+ case "PostToolUse": {
81
+ if (!payload.tool_name) {
82
+ return reply.code(400).send({ error: "Missing tool_name" });
83
+ }
84
+ const { eventType, cleanName, upstreamKey } = parseToolName(payload.tool_name);
85
+ const now = new Date().toISOString();
86
+ const sequence = allocateSequence(db, session.id);
87
+ const eventInput = {
88
+ id: randomUUID(),
89
+ sessionId: session.id,
90
+ parentEventId: null,
91
+ sequence,
92
+ eventType,
93
+ agentRole: "main",
94
+ agentName: "claude-code",
95
+ toolName: cleanName,
96
+ mcpMethod: "tools/call",
97
+ upstreamKey: upstreamKey,
98
+ startedAt: now,
99
+ endedAt: now,
100
+ status: "success", // PostToolUse only fires on success
101
+ inputJson: payload.tool_input
102
+ ? JSON.stringify(payload.tool_input)
103
+ : null,
104
+ outputJson: payload.tool_response
105
+ ? JSON.stringify(payload.tool_response)
106
+ : null,
107
+ };
108
+ const event = insertEvent(db, eventInput);
109
+ if (debug) {
110
+ console.log(`[hooks] Recorded ${eventType}: ${cleanName} (event ${event.id})`);
111
+ }
112
+ break;
113
+ }
114
+ case "Stop": {
115
+ // Agent finished - could record session end metadata
116
+ if (debug) {
117
+ console.log(`[hooks] Stop: session ${payload.session_id}`);
118
+ }
119
+ break;
120
+ }
121
+ case "SubagentStop": {
122
+ // Subagent finished - could update parent event
123
+ if (debug) {
124
+ console.log(`[hooks] SubagentStop: ${payload.subagent_type ?? "unknown"}`);
125
+ }
126
+ break;
127
+ }
128
+ case "SessionStart": {
129
+ if (debug) {
130
+ console.log(`[hooks] SessionStart: ${payload.session_id} (${payload.start_source ?? "unknown"})`);
131
+ }
132
+ break;
133
+ }
134
+ case "SessionEnd": {
135
+ if (debug) {
136
+ console.log(`[hooks] SessionEnd: ${payload.session_id} (${payload.end_reason ?? "unknown"})`);
137
+ if (payload.statistics) {
138
+ console.log(`[hooks] Statistics:`, payload.statistics);
139
+ }
140
+ }
141
+ break;
142
+ }
143
+ default: {
144
+ if (debug) {
145
+ console.log(`[hooks] Unknown hook type: ${payload.hook_type}`);
146
+ }
147
+ }
148
+ }
149
+ const elapsed = Date.now() - startTime;
150
+ if (debug) {
151
+ console.log(`[hooks] Processed in ${elapsed}ms`);
152
+ }
153
+ return reply.code(200).send({ ok: true });
154
+ }
155
+ catch (error) {
156
+ console.error("[hooks] Error processing hook event:", error);
157
+ // Fail open - return 200 to not block Claude
158
+ return reply.code(200).send({ ok: true, error: "logged" });
159
+ }
160
+ });
161
+ // Health check for hooks endpoint
162
+ app.get("/api/hooks/health", async () => {
163
+ return { status: "ok", mode: "hooks" };
164
+ });
165
+ }
166
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/routes/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * STDIO Proxy telemetry endpoint.
3
+ *
4
+ * Receives telemetry from the STDIO proxy (agent-recorder-proxy).
5
+ */
6
+ import type { FastifyInstance } from "fastify";
7
+ import type Database from "better-sqlite3";
8
+ interface StdioRoutesOptions {
9
+ db: Database.Database;
10
+ debug?: boolean;
11
+ }
12
+ export declare function registerStdioRoutes(app: FastifyInstance, options: StdioRoutesOptions): Promise<void>;
13
+ export {};
14
+ //# sourceMappingURL=stdio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/routes/stdio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAU3C,UAAU,kBAAkB;IAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAmDD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAsEf"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * STDIO Proxy telemetry endpoint.
3
+ *
4
+ * Receives telemetry from the STDIO proxy (agent-recorder-proxy).
5
+ */
6
+ import { randomUUID } from "node:crypto";
7
+ import { insertEvent, createSession, getSessionById, allocateSequence, } from "@agent-recorder/core";
8
+ /** Get or create a session by ID */
9
+ function getOrCreateSession(db, sessionId) {
10
+ const existing = getSessionById(db, sessionId);
11
+ if (existing) {
12
+ return existing;
13
+ }
14
+ const now = new Date().toISOString();
15
+ return createSession(db, sessionId, now);
16
+ }
17
+ /** Parse tool name from JSON-RPC params */
18
+ function extractToolInfo(raw, method) {
19
+ try {
20
+ const parsed = JSON.parse(raw);
21
+ if (method === "tools/call" && parsed.params?.name) {
22
+ return {
23
+ toolName: parsed.params.name,
24
+ input: parsed.params.arguments,
25
+ };
26
+ }
27
+ }
28
+ catch {
29
+ // Ignore parse errors
30
+ }
31
+ return { toolName: null, input: null };
32
+ }
33
+ export async function registerStdioRoutes(app, options) {
34
+ const { db, debug = false } = options;
35
+ // Receive telemetry from STDIO proxy
36
+ app.post("/api/stdio", async (request, reply) => {
37
+ try {
38
+ const payload = request.body;
39
+ if (debug) {
40
+ console.log(`[stdio] Received ${payload.direction}: ${payload.method ?? "response"}`);
41
+ }
42
+ // Only record tool calls (not all MCP traffic)
43
+ if (payload.direction === "request" &&
44
+ payload.method === "tools/call") {
45
+ const sessionId = payload.sessionId ?? "stdio-" + randomUUID();
46
+ const session = getOrCreateSession(db, sessionId);
47
+ const sequence = allocateSequence(db, session.id);
48
+ const { toolName, input } = extractToolInfo(payload.raw, payload.method);
49
+ const eventInput = {
50
+ id: randomUUID(),
51
+ sessionId: session.id,
52
+ parentEventId: null,
53
+ sequence,
54
+ eventType: "tool_call",
55
+ agentRole: "main",
56
+ agentName: "mcp-client",
57
+ toolName: toolName,
58
+ mcpMethod: payload.method,
59
+ upstreamKey: "stdio",
60
+ startedAt: payload.timestamp,
61
+ endedAt: null,
62
+ status: "running",
63
+ inputJson: input ? JSON.stringify(input) : null,
64
+ outputJson: null,
65
+ };
66
+ insertEvent(db, eventInput);
67
+ if (debug) {
68
+ console.log(`[stdio] Recorded tool call: ${toolName}`);
69
+ }
70
+ }
71
+ // TODO: Match responses to requests by id to update status and output
72
+ return reply.code(200).send({ ok: true });
73
+ }
74
+ catch (error) {
75
+ console.error("[stdio] Error processing telemetry:", error);
76
+ // Fail open - don't block the proxy
77
+ return reply.code(200).send({ ok: true, error: "logged" });
78
+ }
79
+ });
80
+ // Health check for stdio endpoint
81
+ app.get("/api/stdio/health", async () => {
82
+ return { status: "ok", mode: "stdio" };
83
+ });
84
+ }
85
+ //# sourceMappingURL=stdio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/routes/stdio.ts"],"names":[],"mappings":"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"}