@agentlensai/mcp 0.11.0 → 0.13.0

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 (166) hide show
  1. package/LICENSE +21 -0
  2. package/dist/__tests__/benchmark.test.d.ts +5 -0
  3. package/dist/__tests__/benchmark.test.js +1 -1
  4. package/dist/__tests__/capabilities.test.d.ts +5 -0
  5. package/dist/__tests__/capabilities.test.d.ts.map +1 -0
  6. package/dist/__tests__/capabilities.test.js +127 -0
  7. package/dist/__tests__/capabilities.test.js.map +1 -0
  8. package/dist/__tests__/context.test.d.ts +5 -0
  9. package/dist/__tests__/context.test.d.ts.map +1 -0
  10. package/dist/__tests__/context.test.js +203 -0
  11. package/dist/__tests__/context.test.js.map +1 -0
  12. package/dist/__tests__/guardrail-middleware.test.d.ts +2 -0
  13. package/dist/__tests__/guardrail-middleware.test.d.ts.map +1 -0
  14. package/dist/__tests__/guardrail-middleware.test.js +107 -0
  15. package/dist/__tests__/guardrail-middleware.test.js.map +1 -0
  16. package/dist/__tests__/health.test.d.ts +5 -0
  17. package/dist/__tests__/health.test.js +1 -1
  18. package/dist/__tests__/llm-call.test.d.ts +2 -0
  19. package/dist/__tests__/llm-call.test.js +1 -1
  20. package/dist/__tests__/optimize.test.d.ts +5 -0
  21. package/dist/__tests__/optimize.test.js +1 -1
  22. package/dist/__tests__/recall.test.d.ts +2 -0
  23. package/dist/__tests__/recall.test.js +4 -4
  24. package/dist/__tests__/recall.test.js.map +1 -1
  25. package/dist/__tests__/reflect.test.d.ts +5 -0
  26. package/dist/__tests__/reflect.test.d.ts.map +1 -0
  27. package/dist/__tests__/reflect.test.js +165 -0
  28. package/dist/__tests__/reflect.test.js.map +1 -0
  29. package/dist/__tests__/replay.test.d.ts +5 -0
  30. package/dist/__tests__/replay.test.d.ts.map +1 -0
  31. package/dist/__tests__/replay.test.js +245 -0
  32. package/dist/__tests__/replay.test.js.map +1 -0
  33. package/dist/capabilities.d.ts +28 -0
  34. package/dist/capabilities.d.ts.map +1 -0
  35. package/dist/capabilities.js +68 -0
  36. package/dist/capabilities.js.map +1 -0
  37. package/dist/guardrail-middleware.d.ts +36 -0
  38. package/dist/guardrail-middleware.d.ts.map +1 -0
  39. package/dist/guardrail-middleware.js +70 -0
  40. package/dist/guardrail-middleware.js.map +1 -0
  41. package/dist/index.d.ts +19 -5
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +42 -8
  44. package/dist/index.js.map +1 -1
  45. package/dist/server.test.d.ts +2 -0
  46. package/dist/server.test.js +12 -5
  47. package/dist/server.test.js.map +1 -1
  48. package/dist/tools/__tests__/agents.test.d.ts +5 -0
  49. package/dist/tools/__tests__/agents.test.d.ts.map +1 -0
  50. package/dist/tools/__tests__/agents.test.js +56 -0
  51. package/dist/tools/__tests__/agents.test.js.map +1 -0
  52. package/dist/tools/__tests__/alerts.test.d.ts +5 -0
  53. package/dist/tools/__tests__/alerts.test.d.ts.map +1 -0
  54. package/dist/tools/__tests__/alerts.test.js +83 -0
  55. package/dist/tools/__tests__/alerts.test.js.map +1 -0
  56. package/dist/tools/__tests__/analytics.test.d.ts +5 -0
  57. package/dist/tools/__tests__/analytics.test.d.ts.map +1 -0
  58. package/dist/tools/__tests__/analytics.test.js +53 -0
  59. package/dist/tools/__tests__/analytics.test.js.map +1 -0
  60. package/dist/tools/__tests__/cost-budgets.test.d.ts +5 -0
  61. package/dist/tools/__tests__/cost-budgets.test.d.ts.map +1 -0
  62. package/dist/tools/__tests__/cost-budgets.test.js +86 -0
  63. package/dist/tools/__tests__/cost-budgets.test.js.map +1 -0
  64. package/dist/tools/__tests__/error-helpers.test.d.ts +5 -0
  65. package/dist/tools/__tests__/error-helpers.test.d.ts.map +1 -0
  66. package/dist/tools/__tests__/error-helpers.test.js +38 -0
  67. package/dist/tools/__tests__/error-helpers.test.js.map +1 -0
  68. package/dist/tools/__tests__/lessons.test.d.ts +5 -0
  69. package/dist/tools/__tests__/lessons.test.d.ts.map +1 -0
  70. package/dist/tools/__tests__/lessons.test.js +64 -0
  71. package/dist/tools/__tests__/lessons.test.js.map +1 -0
  72. package/dist/tools/__tests__/prompts.test.d.ts +5 -0
  73. package/dist/tools/__tests__/prompts.test.d.ts.map +1 -0
  74. package/dist/tools/__tests__/prompts.test.js +112 -0
  75. package/dist/tools/__tests__/prompts.test.js.map +1 -0
  76. package/dist/tools/__tests__/sessions.test.d.ts +5 -0
  77. package/dist/tools/__tests__/sessions.test.d.ts.map +1 -0
  78. package/dist/tools/__tests__/sessions.test.js +62 -0
  79. package/dist/tools/__tests__/sessions.test.js.map +1 -0
  80. package/dist/tools/__tests__/stats.test.d.ts +5 -0
  81. package/dist/tools/__tests__/stats.test.d.ts.map +1 -0
  82. package/dist/tools/__tests__/stats.test.js +41 -0
  83. package/dist/tools/__tests__/stats.test.js.map +1 -0
  84. package/dist/tools/__tests__/trust.test.d.ts +5 -0
  85. package/dist/tools/__tests__/trust.test.d.ts.map +1 -0
  86. package/dist/tools/__tests__/trust.test.js +46 -0
  87. package/dist/tools/__tests__/trust.test.js.map +1 -0
  88. package/dist/tools/agents.d.ts +9 -0
  89. package/dist/tools/agents.d.ts.map +1 -0
  90. package/dist/tools/agents.js +67 -0
  91. package/dist/tools/agents.js.map +1 -0
  92. package/dist/tools/alerts.d.ts +9 -0
  93. package/dist/tools/alerts.d.ts.map +1 -0
  94. package/dist/tools/alerts.js +126 -0
  95. package/dist/tools/alerts.js.map +1 -0
  96. package/dist/tools/analytics.d.ts +9 -0
  97. package/dist/tools/analytics.d.ts.map +1 -0
  98. package/dist/tools/analytics.js +67 -0
  99. package/dist/tools/analytics.js.map +1 -0
  100. package/dist/tools/cost-budgets.d.ts +9 -0
  101. package/dist/tools/cost-budgets.d.ts.map +1 -0
  102. package/dist/tools/cost-budgets.js +144 -0
  103. package/dist/tools/cost-budgets.js.map +1 -0
  104. package/dist/tools/error-helpers.d.ts +14 -0
  105. package/dist/tools/error-helpers.d.ts.map +1 -0
  106. package/dist/tools/error-helpers.js +17 -0
  107. package/dist/tools/error-helpers.js.map +1 -0
  108. package/dist/tools/lessons.d.ts +9 -0
  109. package/dist/tools/lessons.d.ts.map +1 -0
  110. package/dist/tools/lessons.js +107 -0
  111. package/dist/tools/lessons.js.map +1 -0
  112. package/dist/tools/prompts.d.ts +9 -0
  113. package/dist/tools/prompts.d.ts.map +1 -0
  114. package/dist/tools/prompts.js +117 -0
  115. package/dist/tools/prompts.js.map +1 -0
  116. package/dist/tools/recall.js +3 -3
  117. package/dist/tools/recall.js.map +1 -1
  118. package/dist/tools/reflect.js +1 -1
  119. package/dist/tools/reflect.js.map +1 -1
  120. package/dist/tools/sessions.d.ts +9 -0
  121. package/dist/tools/sessions.d.ts.map +1 -0
  122. package/dist/tools/sessions.js +88 -0
  123. package/dist/tools/sessions.js.map +1 -0
  124. package/dist/tools/stats.d.ts +9 -0
  125. package/dist/tools/stats.d.ts.map +1 -0
  126. package/dist/tools/stats.js +43 -0
  127. package/dist/tools/stats.js.map +1 -0
  128. package/dist/tools/trust.d.ts +9 -0
  129. package/dist/tools/trust.d.ts.map +1 -0
  130. package/dist/tools/trust.js +42 -0
  131. package/dist/tools/trust.js.map +1 -0
  132. package/dist/tools.d.ts +11 -2
  133. package/dist/tools.d.ts.map +1 -1
  134. package/dist/tools.js +70 -47
  135. package/dist/tools.js.map +1 -1
  136. package/dist/tools.test.d.ts +2 -0
  137. package/dist/tools.test.js +10 -3
  138. package/dist/tools.test.js.map +1 -1
  139. package/dist/transport.d.ts +59 -0
  140. package/dist/transport.d.ts.map +1 -1
  141. package/dist/transport.js +245 -0
  142. package/dist/transport.js.map +1 -1
  143. package/dist/transport.test.d.ts +2 -0
  144. package/dist/transport.test.d.ts.map +1 -0
  145. package/dist/transport.test.js +170 -0
  146. package/dist/transport.test.js.map +1 -0
  147. package/package.json +10 -10
  148. package/dist/__tests__/learn.test.d.ts.map +0 -1
  149. package/dist/__tests__/learn.test.js +0 -381
  150. package/dist/__tests__/learn.test.js.map +0 -1
  151. package/dist/tools/__tests__/community.test.d.ts +0 -5
  152. package/dist/tools/__tests__/community.test.d.ts.map +0 -1
  153. package/dist/tools/__tests__/community.test.js +0 -172
  154. package/dist/tools/__tests__/community.test.js.map +0 -1
  155. package/dist/tools/__tests__/transport-community.test.d.ts +0 -5
  156. package/dist/tools/__tests__/transport-community.test.d.ts.map +0 -1
  157. package/dist/tools/__tests__/transport-community.test.js +0 -99
  158. package/dist/tools/__tests__/transport-community.test.js.map +0 -1
  159. package/dist/tools/community.d.ts +0 -10
  160. package/dist/tools/community.d.ts.map +0 -1
  161. package/dist/tools/community.js +0 -167
  162. package/dist/tools/community.js.map +0 -1
  163. package/dist/tools/learn.d.ts +0 -10
  164. package/dist/tools/learn.d.ts.map +0 -1
  165. package/dist/tools/learn.js +0 -277
  166. package/dist/tools/learn.js.map +0 -1
@@ -0,0 +1,107 @@
1
+ /**
2
+ * agentlens_lessons MCP Tool (Feature 10, Story 10.11)
3
+ *
4
+ * CRUD for lessons learned. Uses existing transport lesson methods.
5
+ */
6
+ import { z } from 'zod';
7
+ import { formatApiError } from './error-helpers.js';
8
+ export function registerLessonsTool(server, transport) {
9
+ server.tool('agentlens_lessons', `Manage lessons learned from agent sessions.
10
+
11
+ **When to use:** To create, retrieve, update, or delete lessons that capture insights and best practices from past agent runs.
12
+
13
+ **Actions:**
14
+ - \`list\`: List lessons with optional filters
15
+ - \`create\`: Create a new lesson
16
+ - \`detail\`: Get a single lesson by ID
17
+ - \`update\`: Update an existing lesson
18
+ - \`delete\`: Delete a lesson
19
+
20
+ **Example:** agentlens_lessons({ action: "create", title: "Handle timeouts gracefully", body: "Always set a 30s timeout..." })`, {
21
+ action: z.enum(['list', 'create', 'detail', 'update', 'delete']).describe('Action to perform'),
22
+ lessonId: z.string().optional().describe('Lesson ID (required for detail/update/delete)'),
23
+ title: z.string().optional().describe('Lesson title (required for create)'),
24
+ body: z.string().optional().describe('Lesson body (required for create)'),
25
+ agentId: z.string().optional().describe('Filter by or assign to agent ID'),
26
+ tags: z.array(z.string()).optional().describe('Tags for the lesson'),
27
+ limit: z.number().optional().describe('Max results (list)'),
28
+ }, async (params) => {
29
+ try {
30
+ switch (params.action) {
31
+ case 'list': {
32
+ const qp = {};
33
+ if (params.agentId)
34
+ qp.agentId = params.agentId;
35
+ if (params.limit !== undefined)
36
+ qp.limit = String(params.limit);
37
+ const response = await transport.getLessons(qp);
38
+ if (!response.ok) {
39
+ const b = await response.text().catch(() => '');
40
+ throw new Error(`${response.status}: ${b}`);
41
+ }
42
+ return { content: [{ type: 'text', text: JSON.stringify(await response.json(), null, 2) }] };
43
+ }
44
+ case 'create': {
45
+ if (!params.title)
46
+ return { content: [{ type: 'text', text: 'Validation error: "title" is required for create action.' }], isError: true };
47
+ if (!params.body)
48
+ return { content: [{ type: 'text', text: 'Validation error: "body" is required for create action.' }], isError: true };
49
+ const body = { title: params.title, body: params.body };
50
+ if (params.agentId)
51
+ body.agentId = params.agentId;
52
+ if (params.tags)
53
+ body.tags = params.tags;
54
+ const response = await transport.createLesson(body);
55
+ if (!response.ok) {
56
+ const b = await response.text().catch(() => '');
57
+ throw new Error(`${response.status}: ${b}`);
58
+ }
59
+ return { content: [{ type: 'text', text: JSON.stringify(await response.json(), null, 2) }] };
60
+ }
61
+ case 'detail': {
62
+ if (!params.lessonId)
63
+ return { content: [{ type: 'text', text: 'Validation error: "lessonId" is required for detail action.' }], isError: true };
64
+ const response = await transport.getLesson(params.lessonId);
65
+ if (!response.ok) {
66
+ const b = await response.text().catch(() => '');
67
+ throw new Error(`${response.status}: ${b}`);
68
+ }
69
+ return { content: [{ type: 'text', text: JSON.stringify(await response.json(), null, 2) }] };
70
+ }
71
+ case 'update': {
72
+ if (!params.lessonId)
73
+ return { content: [{ type: 'text', text: 'Validation error: "lessonId" is required for update action.' }], isError: true };
74
+ const body = {};
75
+ if (params.title)
76
+ body.title = params.title;
77
+ if (params.body)
78
+ body.body = params.body;
79
+ if (params.tags)
80
+ body.tags = params.tags;
81
+ const response = await transport.updateLesson(params.lessonId, body);
82
+ if (!response.ok) {
83
+ const b = await response.text().catch(() => '');
84
+ throw new Error(`${response.status}: ${b}`);
85
+ }
86
+ return { content: [{ type: 'text', text: JSON.stringify(await response.json(), null, 2) }] };
87
+ }
88
+ case 'delete': {
89
+ if (!params.lessonId)
90
+ return { content: [{ type: 'text', text: 'Validation error: "lessonId" is required for delete action.' }], isError: true };
91
+ const response = await transport.deleteLesson(params.lessonId);
92
+ if (!response.ok) {
93
+ const b = await response.text().catch(() => '');
94
+ throw new Error(`${response.status}: ${b}`);
95
+ }
96
+ return { content: [{ type: 'text', text: `Lesson ${params.lessonId} deleted.` }] };
97
+ }
98
+ default:
99
+ return { content: [{ type: 'text', text: `Unknown action: ${params.action}` }], isError: true };
100
+ }
101
+ }
102
+ catch (error) {
103
+ return formatApiError(error, 'lessons');
104
+ }
105
+ });
106
+ }
107
+ //# sourceMappingURL=lessons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lessons.js","sourceRoot":"","sources":["../../src/tools/lessons.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Prompt Management MCP Tools (Feature 19 — Story 8)
3
+ *
4
+ * Tools: list, get, create, update, analytics, fingerprints
5
+ */
6
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
7
+ import type { AgentLensTransport } from '../transport.js';
8
+ export declare function registerPromptsTool(server: McpServer, transport: AgentLensTransport): void;
9
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,GAAG,IAAI,CA6G1F"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Prompt Management MCP Tools (Feature 19 — Story 8)
3
+ *
4
+ * Tools: list, get, create, update, analytics, fingerprints
5
+ */
6
+ import { z } from 'zod';
7
+ import { formatApiError } from './error-helpers.js';
8
+ export function registerPromptsTool(server, transport) {
9
+ server.tool('agentlens_prompts', `Manage prompt templates and versions.
10
+
11
+ **Actions:**
12
+ - \`list\`: List prompt templates (optional category, search filters)
13
+ - \`get\`: Get a template with all versions by ID
14
+ - \`create\`: Create a new prompt template with initial content
15
+ - \`update\`: Create a new version of an existing template
16
+ - \`analytics\`: Get per-version metrics for a template
17
+ - \`fingerprints\`: List auto-discovered prompt fingerprints
18
+
19
+ **Example:** agentlens_prompts({ action: "list", category: "system" })`, {
20
+ action: z.enum(['list', 'get', 'create', 'update', 'analytics', 'fingerprints']).describe('Action to perform'),
21
+ templateId: z.string().optional().describe('Template ID (for get, update, analytics)'),
22
+ name: z.string().optional().describe('Template name (for create)'),
23
+ content: z.string().optional().describe('Prompt content (for create, update)'),
24
+ description: z.string().optional().describe('Template description (for create)'),
25
+ category: z.string().optional().describe('Category filter or value'),
26
+ variables: z.string().optional().describe('JSON array of variable definitions (for create)'),
27
+ changelog: z.string().optional().describe('Change description (for update)'),
28
+ search: z.string().optional().describe('Name search filter (for list)'),
29
+ from: z.string().optional().describe('Start date ISO (for analytics)'),
30
+ to: z.string().optional().describe('End date ISO (for analytics)'),
31
+ agentId: z.string().optional().describe('Agent ID filter (for fingerprints)'),
32
+ }, async (params) => {
33
+ try {
34
+ let response;
35
+ switch (params.action) {
36
+ case 'list': {
37
+ const qp = {};
38
+ if (params.category)
39
+ qp.category = params.category;
40
+ if (params.search)
41
+ qp.search = params.search;
42
+ response = await transport.listPrompts(qp);
43
+ break;
44
+ }
45
+ case 'get': {
46
+ if (!params.templateId) {
47
+ return { content: [{ type: 'text', text: 'Error: templateId is required for get' }], isError: true };
48
+ }
49
+ response = await transport.getPrompt(params.templateId);
50
+ break;
51
+ }
52
+ case 'create': {
53
+ if (!params.name || !params.content) {
54
+ return { content: [{ type: 'text', text: 'Error: name and content are required for create' }], isError: true };
55
+ }
56
+ const createBody = {
57
+ name: params.name,
58
+ content: params.content,
59
+ description: params.description,
60
+ category: params.category,
61
+ };
62
+ if (params.variables) {
63
+ try {
64
+ createBody.variables = JSON.parse(params.variables);
65
+ }
66
+ catch {
67
+ return { content: [{ type: 'text', text: 'Error: variables must be valid JSON array' }], isError: true };
68
+ }
69
+ }
70
+ response = await transport.createPrompt(createBody);
71
+ break;
72
+ }
73
+ case 'update': {
74
+ if (!params.templateId || !params.content) {
75
+ return { content: [{ type: 'text', text: 'Error: templateId and content are required for update' }], isError: true };
76
+ }
77
+ response = await transport.createPromptVersion(params.templateId, {
78
+ content: params.content,
79
+ changelog: params.changelog,
80
+ });
81
+ break;
82
+ }
83
+ case 'analytics': {
84
+ if (!params.templateId) {
85
+ return { content: [{ type: 'text', text: 'Error: templateId is required for analytics' }], isError: true };
86
+ }
87
+ const qp = {};
88
+ if (params.from)
89
+ qp.from = params.from;
90
+ if (params.to)
91
+ qp.to = params.to;
92
+ response = await transport.getPromptAnalytics(params.templateId, qp);
93
+ break;
94
+ }
95
+ case 'fingerprints': {
96
+ const qp = {};
97
+ if (params.agentId)
98
+ qp.agentId = params.agentId;
99
+ response = await transport.getPromptFingerprints(qp);
100
+ break;
101
+ }
102
+ default:
103
+ return { content: [{ type: 'text', text: `Unknown action: ${params.action}` }], isError: true };
104
+ }
105
+ if (!response.ok) {
106
+ const errorText = await response.text();
107
+ throw new Error(`${response.status}: ${errorText}`);
108
+ }
109
+ const data = await response.json();
110
+ return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
111
+ }
112
+ catch (err) {
113
+ return formatApiError(err, 'prompts');
114
+ }
115
+ });
116
+ }
117
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"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"}
@@ -6,16 +6,16 @@
6
6
  */
7
7
  import { z } from 'zod';
8
8
  export function registerRecallTool(server, transport) {
9
- server.tool('agentlens_recall', `Semantic search over agent memory — find past events, sessions, and lessons by meaning.
9
+ server.tool('agentlens_recall', `Semantic search over agent memory — find past events and sessions by meaning.
10
10
 
11
11
  **When to use:** Before starting a task (check for similar past work), when encountering an error (search for prior occurrences and fixes), or to find relevant context for decision-making.
12
12
 
13
- **What it returns:** A ranked list of results, each with a source type (event/session/lesson), similarity score (0-1), text content, and metadata. Results are sorted by relevance.
13
+ **What it returns:** A ranked list of results, each with a source type (event/session), similarity score (0-1), text content, and metadata. Results are sorted by relevance.
14
14
 
15
15
  **Example:** agentlens_recall({ query: "authentication timeout errors", scope: "events", minScore: 0.7 }) → returns past events about auth timeouts, ranked by semantic similarity.`, {
16
16
  query: z.string().describe('Natural language search query'),
17
17
  scope: z
18
- .enum(['events', 'sessions', 'lessons', 'all'])
18
+ .enum(['events', 'sessions', 'all'])
19
19
  .optional()
20
20
  .describe('Scope to search in (default: all)'),
21
21
  agentId: z.string().optional().describe('Filter by agent ID'),
@@ -1 +1 @@
1
- {"version":3,"file":"recall.js","sourceRoot":"","sources":["../../src/tools/recall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recall.js","sourceRoot":"","sources":["../../src/tools/recall.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ export function registerReflectTool(server, transport) {
24
24
  agentId: z.string().optional().describe('Filter analysis to a specific agent'),
25
25
  from: z.string().optional().describe('Start of time range (ISO 8601)'),
26
26
  to: z.string().optional().describe('End of time range (ISO 8601)'),
27
- params: z.record(z.unknown()).optional().describe('Additional parameters (e.g., { model: "gpt-4o" } for cost_analysis)'),
27
+ params: z.record(z.string(), z.unknown()).optional().describe('Additional parameters (e.g., { model: "gpt-4o" } for cost_analysis)'),
28
28
  limit: z.number().optional().describe('Maximum number of results to return (default: 20)'),
29
29
  }, async ({ analysis, agentId, from, to, params, limit }) => {
30
30
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"reflect.js","sourceRoot":"","sources":["../../src/tools/reflect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,SAA6B;IAClF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB;;;;;;gMAM4L,EAC5L;QACE,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC;YACJ,gBAAgB;YAChB,gBAAgB;YAChB,eAAe;YACf,oBAAoB;SACrB,CAAC;aACD,QAAQ,CACP,2MAA2M,CAC5M;QACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAC9E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACtE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAClE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;QACxH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;KAC3F,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QACvD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC;gBACrC,QAAQ;gBACR,OAAO;gBACP,IAAI;gBACJ,EAAE;gBACF,MAAM;gBACN,KAAK;aACN,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;qBACtC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,iBAAiB,QAAQ,cAAc,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;qBACxG;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"reflect.js","sourceRoot":"","sources":["../../src/tools/reflect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,SAA6B;IAClF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB;;;;;;gMAM4L,EAC5L;QACE,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC;YACJ,gBAAgB;YAChB,gBAAgB;YAChB,eAAe;YACf,oBAAoB;SACrB,CAAC;aACD,QAAQ,CACP,2MAA2M,CAC5M;QACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAC9E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACtE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAClE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;QACpI,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;KAC3F,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QACvD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC;gBACrC,QAAQ;gBACR,OAAO;gBACP,IAAI;gBACJ,EAAE;gBACF,MAAM;gBACN,KAAK;aACN,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;qBACtC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,iBAAiB,QAAQ,cAAc,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;qBACxG;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * agentlens_sessions MCP Tool (Feature 10, Story 10.6)
3
+ *
4
+ * Browse and inspect sessions: list, detail, timeline.
5
+ */
6
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
7
+ import type { AgentLensTransport } from '../transport.js';
8
+ export declare function registerSessionsTool(server: McpServer, transport: AgentLensTransport): void;
9
+ //# sourceMappingURL=sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/tools/sessions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAgF3F"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * agentlens_sessions MCP Tool (Feature 10, Story 10.6)
3
+ *
4
+ * Browse and inspect sessions: list, detail, timeline.
5
+ */
6
+ import { z } from 'zod';
7
+ import { formatApiError } from './error-helpers.js';
8
+ export function registerSessionsTool(server, transport) {
9
+ server.tool('agentlens_sessions', `Browse and inspect AgentLens sessions.
10
+
11
+ **When to use:** To find past sessions, inspect session details, or view a timeline of events within a session. Useful for debugging, auditing, or reviewing agent activity.
12
+
13
+ **Actions:**
14
+ - \`list\`: List sessions with optional filters (agentId, status, date range, tags)
15
+ - \`detail\`: Get full session detail with aggregates
16
+ - \`timeline\`: Get timestamped event list for a session
17
+
18
+ **Example:** agentlens_sessions({ action: "list", agentId: "my-agent", status: "completed", limit: 10 })`, {
19
+ action: z.enum(['list', 'detail', 'timeline']).describe('Action to perform'),
20
+ sessionId: z.string().optional().describe('Session ID (required for detail/timeline)'),
21
+ agentId: z.string().optional().describe('Filter by agent ID (list)'),
22
+ status: z.string().optional().describe('Filter by status: active, completed, error (list)'),
23
+ from: z.string().optional().describe('Start date ISO (list)'),
24
+ to: z.string().optional().describe('End date ISO (list)'),
25
+ tags: z.array(z.string()).optional().describe('Filter by tags (list)'),
26
+ limit: z.number().optional().describe('Max results, default 20 (list)'),
27
+ offset: z.number().optional().describe('Pagination offset (list)'),
28
+ }, async (params) => {
29
+ try {
30
+ switch (params.action) {
31
+ case 'list': {
32
+ const qp = {};
33
+ if (params.agentId)
34
+ qp.agentId = params.agentId;
35
+ if (params.status)
36
+ qp.status = params.status;
37
+ if (params.from)
38
+ qp.from = params.from;
39
+ if (params.to)
40
+ qp.to = params.to;
41
+ if (params.tags)
42
+ qp.tags = params.tags.join(',');
43
+ if (params.limit !== undefined)
44
+ qp.limit = String(params.limit);
45
+ if (params.offset !== undefined)
46
+ qp.offset = String(params.offset);
47
+ const response = await transport.listSessions(qp);
48
+ if (!response.ok) {
49
+ const body = await response.text().catch(() => '');
50
+ throw new Error(`${response.status}: ${body}`);
51
+ }
52
+ const data = await response.json();
53
+ return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
54
+ }
55
+ case 'detail': {
56
+ if (!params.sessionId) {
57
+ return { content: [{ type: 'text', text: 'Validation error: "sessionId" is required for detail action.' }], isError: true };
58
+ }
59
+ const response = await transport.getSession(params.sessionId);
60
+ if (!response.ok) {
61
+ const body = await response.text().catch(() => '');
62
+ throw new Error(`${response.status}: ${body}`);
63
+ }
64
+ const data = await response.json();
65
+ return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
66
+ }
67
+ case 'timeline': {
68
+ if (!params.sessionId) {
69
+ return { content: [{ type: 'text', text: 'Validation error: "sessionId" is required for timeline action.' }], isError: true };
70
+ }
71
+ const response = await transport.getSessionTimeline(params.sessionId);
72
+ if (!response.ok) {
73
+ const body = await response.text().catch(() => '');
74
+ throw new Error(`${response.status}: ${body}`);
75
+ }
76
+ const data = await response.json();
77
+ return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
78
+ }
79
+ default:
80
+ return { content: [{ type: 'text', text: `Unknown action: ${params.action}` }], isError: true };
81
+ }
82
+ }
83
+ catch (error) {
84
+ return formatApiError(error, 'sessions');
85
+ }
86
+ });
87
+ }
88
+ //# sourceMappingURL=sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/tools/sessions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * agentlens_stats MCP Tool (Feature 10, Story 10.12)
3
+ *
4
+ * Storage stats and overview metrics.
5
+ */
6
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
7
+ import type { AgentLensTransport } from '../transport.js';
8
+ export declare function registerStatsTool(server: McpServer, transport: AgentLensTransport): void;
9
+ //# sourceMappingURL=stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/tools/stats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAmCxF"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * agentlens_stats MCP Tool (Feature 10, Story 10.12)
3
+ *
4
+ * Storage stats and overview metrics.
5
+ */
6
+ import { z } from 'zod';
7
+ import { formatApiError } from './error-helpers.js';
8
+ export function registerStatsTool(server, transport) {
9
+ server.tool('agentlens_stats', `Get storage statistics and system overview metrics.
10
+
11
+ **When to use:** To check database/storage utilization or get a high-level system overview.
12
+
13
+ **Actions:**
14
+ - \`storage\`: Get storage stats (database size, event counts, etc.)
15
+ - \`overview\`: Get overview metrics (active sessions, agents, recent activity)
16
+
17
+ **Example:** agentlens_stats({ action: "storage" })`, {
18
+ action: z.enum(['storage', 'overview']).describe('Action to perform'),
19
+ }, async (params) => {
20
+ try {
21
+ let response;
22
+ switch (params.action) {
23
+ case 'storage':
24
+ response = await transport.getStats();
25
+ break;
26
+ case 'overview':
27
+ response = await transport.getStatsOverview();
28
+ break;
29
+ default:
30
+ return { content: [{ type: 'text', text: `Unknown action: ${params.action}` }], isError: true };
31
+ }
32
+ if (!response.ok) {
33
+ const body = await response.text().catch(() => '');
34
+ throw new Error(`${response.status}: ${body}`);
35
+ }
36
+ return { content: [{ type: 'text', text: JSON.stringify(await response.json(), null, 2) }] };
37
+ }
38
+ catch (error) {
39
+ return formatApiError(error, 'stats');
40
+ }
41
+ });
42
+ }
43
+ //# sourceMappingURL=stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/tools/stats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,SAA6B;IAChF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB;;;;;;;;oDAQgD,EAChD;QACE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KACtE,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,IAAI,QAAkB,CAAC;YACvB,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,KAAK,SAAS;oBAAE,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;oBAAC,MAAM;gBAC7D,KAAK,UAAU;oBAAE,QAAQ,GAAG,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC;oBAAC,MAAM;gBACtE;oBACE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,mBAAmB,MAAM,CAAC,MAAgB,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACvH,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACxG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * agentlens_trust MCP Tool (Feature 10, Story 10.13)
3
+ *
4
+ * Get trust scores for agents.
5
+ */
6
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
7
+ import type { AgentLensTransport } from '../transport.js';
8
+ export declare function registerTrustTool(server: McpServer, transport: AgentLensTransport): void;
9
+ //# sourceMappingURL=trust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../../src/tools/trust.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAsCxF"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * agentlens_trust MCP Tool (Feature 10, Story 10.13)
3
+ *
4
+ * Get trust scores for agents.
5
+ */
6
+ import { z } from 'zod';
7
+ import { formatApiError } from './error-helpers.js';
8
+ export function registerTrustTool(server, transport) {
9
+ server.tool('agentlens_trust', `Get trust scores for agents.
10
+
11
+ **When to use:** To check the trust/reliability score of an agent before delegating tasks or to monitor agent reputation.
12
+
13
+ **Actions:**
14
+ - \`score\`: Get trust score for a specific agent
15
+
16
+ **Example:** agentlens_trust({ action: "score", agentId: "my-agent" })`, {
17
+ action: z.enum(['score']).describe('Action to perform'),
18
+ agentId: z.string().optional().describe('Agent ID (required for score)'),
19
+ }, async (params) => {
20
+ try {
21
+ switch (params.action) {
22
+ case 'score': {
23
+ if (!params.agentId) {
24
+ return { content: [{ type: 'text', text: 'Validation error: "agentId" is required for score action.' }], isError: true };
25
+ }
26
+ const response = await transport.getTrustScore(params.agentId);
27
+ if (!response.ok) {
28
+ const body = await response.text().catch(() => '');
29
+ throw new Error(`${response.status}: ${body}`);
30
+ }
31
+ return { content: [{ type: 'text', text: JSON.stringify(await response.json(), null, 2) }] };
32
+ }
33
+ default:
34
+ return { content: [{ type: 'text', text: `Unknown action: ${params.action}` }], isError: true };
35
+ }
36
+ }
37
+ catch (error) {
38
+ return formatApiError(error, 'trust');
39
+ }
40
+ });
41
+ }
42
+ //# sourceMappingURL=trust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust.js","sourceRoot":"","sources":["../../src/tools/trust.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,SAA6B;IAChF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB;;;;;;;uEAOmE,EACnE;QACE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACvD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;KACzE,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2DAA2D,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oBACpI,CAAC;oBACD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC/D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;wBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;wBACnD,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjD,CAAC;oBACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxG,CAAC;gBAED;oBACE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,mBAAmB,MAAM,CAAC,MAAgB,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACvH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
package/dist/tools.d.ts CHANGED
@@ -1,7 +1,16 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { AgentLensTransport } from './transport.js';
3
+ import { type ToolRegistrationOptions } from './capabilities.js';
4
+ interface ToolEntry {
5
+ name: string;
6
+ register: (server: McpServer, transport: AgentLensTransport) => void;
7
+ }
8
+ export declare const ALL_TOOLS: ToolEntry[];
3
9
  /**
4
- * Register all AgentLens tools on the given MCP server.
10
+ * Register AgentLens tools on the given MCP server.
11
+ * When options is provided, conditionally registers based on capabilities/allowlist/denylist.
12
+ * When options is omitted, registers all tools unconditionally (backward compatible).
5
13
  */
6
- export declare function registerTools(server: McpServer, transport: AgentLensTransport): void;
14
+ export declare function registerTools(server: McpServer, transport: AgentLensTransport, options?: ToolRegistrationOptions): void;
15
+ export {};
7
16
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAgBzD;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAkBpF"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAsB,KAAK,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAuBrF,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACtE;AAED,eAAO,MAAM,SAAS,EAAE,SAAS,EA4BhC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,kBAAkB,EAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAoBN"}