mcp-paike 1.0.9 → 1.1.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.
@@ -0,0 +1,224 @@
1
+ import { apiClient } from '../api/client.js';
2
+ import { logger } from '../utils/logger.js';
3
+ // Category label mapping (matches backend constants)
4
+ const CATEGORY_LABELS = {
5
+ COMPETITION: '竞赛类',
6
+ CERTIFICATION: '考级类',
7
+ COURSE: '课程类',
8
+ PROJECT: '项目类',
9
+ OTHER: '其他',
10
+ };
11
+ // Get student growth records
12
+ export const getStudentGrowthRecordsTool = {
13
+ name: 'get_student_growth_records',
14
+ description: '查询学员成长记录 - 按学员ID查询,支持按大类筛选',
15
+ inputSchema: {
16
+ type: 'object',
17
+ properties: {
18
+ studentId: {
19
+ type: 'string',
20
+ description: '学员ID,必填',
21
+ },
22
+ category: {
23
+ type: 'string',
24
+ enum: ['COMPETITION', 'CERTIFICATION', 'COURSE', 'PROJECT', 'OTHER'],
25
+ description: '大类筛选: COMPETITION(竞赛类), CERTIFICATION(考级类), COURSE(课程类), PROJECT(项目类), OTHER(其他)',
26
+ },
27
+ startDate: {
28
+ type: 'string',
29
+ description: '开始日期 (YYYY-MM-DD)',
30
+ },
31
+ endDate: {
32
+ type: 'string',
33
+ description: '结束日期 (YYYY-MM-DD)',
34
+ },
35
+ },
36
+ required: ['studentId'],
37
+ },
38
+ handler: async (args) => {
39
+ try {
40
+ logger.debug('查询学员成长记录', args);
41
+ const params = {
42
+ studentId: args.studentId,
43
+ };
44
+ if (args.category)
45
+ params.category = args.category;
46
+ if (args.startDate)
47
+ params.startDate = args.startDate;
48
+ if (args.endDate)
49
+ params.endDate = args.endDate;
50
+ const result = await apiClient.get('/api/growth-records', params);
51
+ const records = result.items || [];
52
+ if (records.length === 0) {
53
+ return {
54
+ content: [{ type: 'text', text: '该学员暂无成长记录' }],
55
+ };
56
+ }
57
+ // Get student name from first record
58
+ const studentName = records[0]?.student?.name || '未知学员';
59
+ let output = `学员成长记录\n==================================\n`;
60
+ output += `学员: ${studentName}\n`;
61
+ output += `记录数量: ${result.total || records.length} 条\n`;
62
+ for (let i = 0; i < records.length; i++) {
63
+ const r = records[i];
64
+ const categoryLabel = r.category === 'OTHER' && r.customCategory
65
+ ? r.customCategory
66
+ : CATEGORY_LABELS[r.category] || r.category || '';
67
+ output += `\n${i + 1}. ${r.title} [${categoryLabel}]\n`;
68
+ if (r.level) {
69
+ output += ` 等级: ${r.level}\n`;
70
+ }
71
+ output += ` 获得日期: ${formatDate(r.achievedAt)}\n`;
72
+ if (r.issuingOrg) {
73
+ output += ` 颁发机构: ${r.issuingOrg}\n`;
74
+ }
75
+ output += ` 可用于宣传: ${r.isPublic ? '是' : '否'}\n`;
76
+ if (r.attachments && r.attachments.length > 0) {
77
+ output += ` 附件: ${r.attachments.length}个\n`;
78
+ }
79
+ }
80
+ return {
81
+ content: [{ type: 'text', text: output }],
82
+ };
83
+ }
84
+ catch (error) {
85
+ logger.error('查询学员成长记录失败:', error.message);
86
+ if (error.message?.includes('404')) {
87
+ return {
88
+ content: [{ type: 'text', text: '未找到学员,请检查学员ID是否正确' }],
89
+ isError: true,
90
+ };
91
+ }
92
+ return {
93
+ content: [{ type: 'text', text: `查询失败: ${error.message}` }],
94
+ isError: true,
95
+ };
96
+ }
97
+ },
98
+ };
99
+ // List growth records with optional filters
100
+ export const listGrowthRecordsTool = {
101
+ name: 'list_growth_records',
102
+ description: '查询成长记录列表 - 支持按学员姓名、标题、大类等筛选',
103
+ inputSchema: {
104
+ type: 'object',
105
+ properties: {
106
+ studentName: {
107
+ type: 'string',
108
+ description: '学员姓名搜索',
109
+ },
110
+ title: {
111
+ type: 'string',
112
+ description: '标题搜索',
113
+ },
114
+ category: {
115
+ type: 'string',
116
+ enum: ['COMPETITION', 'CERTIFICATION', 'COURSE', 'PROJECT', 'OTHER'],
117
+ description: '大类筛选: COMPETITION(竞赛类), CERTIFICATION(考级类), COURSE(课程类), PROJECT(项目类), OTHER(其他)',
118
+ },
119
+ isPublic: {
120
+ type: 'boolean',
121
+ description: '是否只显示可用于宣传的记录',
122
+ },
123
+ startDate: {
124
+ type: 'string',
125
+ description: '开始日期 (YYYY-MM-DD)',
126
+ },
127
+ endDate: {
128
+ type: 'string',
129
+ description: '结束日期 (YYYY-MM-DD)',
130
+ },
131
+ page: {
132
+ type: 'number',
133
+ description: '页码,默认1',
134
+ },
135
+ pageSize: {
136
+ type: 'number',
137
+ description: '每页数量,默认20',
138
+ },
139
+ },
140
+ required: [],
141
+ },
142
+ handler: async (args) => {
143
+ try {
144
+ logger.debug('查询成长记录列表', args);
145
+ const params = {
146
+ page: Math.max(1, args.page || 1),
147
+ pageSize: Math.min(100, Math.max(1, args.pageSize || 20)),
148
+ };
149
+ if (args.studentName)
150
+ params.studentName = args.studentName;
151
+ if (args.title)
152
+ params.title = args.title;
153
+ if (args.category)
154
+ params.category = args.category;
155
+ if (args.isPublic !== undefined)
156
+ params.isPublic = args.isPublic;
157
+ if (args.startDate)
158
+ params.startDate = args.startDate;
159
+ if (args.endDate)
160
+ params.endDate = args.endDate;
161
+ const result = await apiClient.get('/api/growth-records', params);
162
+ const records = result.items || [];
163
+ if (records.length === 0) {
164
+ return {
165
+ content: [{ type: 'text', text: '暂无匹配的成长记录' }],
166
+ };
167
+ }
168
+ let output = `成长记录列表\n==================================\n`;
169
+ output += `共 ${result.total} 条记录 (第 ${result.page}/${result.totalPages} 页)\n`;
170
+ // Group by category for better display
171
+ const grouped = {};
172
+ for (const r of records) {
173
+ const cat = r.category || 'OTHER';
174
+ if (!grouped[cat])
175
+ grouped[cat] = [];
176
+ grouped[cat].push(r);
177
+ }
178
+ for (const [category, items] of Object.entries(grouped)) {
179
+ output += `\n【${CATEGORY_LABELS[category] || category}】${items.length}条\n`;
180
+ for (const r of items) {
181
+ const studentName = r.student?.name || '未知学员';
182
+ const displayCategory = r.category === 'OTHER' && r.customCategory
183
+ ? r.customCategory
184
+ : '';
185
+ output += `\n • ${studentName} - ${r.title}`;
186
+ if (displayCategory) {
187
+ output += ` (${displayCategory})`;
188
+ }
189
+ output += `\n`;
190
+ if (r.level) {
191
+ output += ` 等级: ${r.level} | `;
192
+ }
193
+ else {
194
+ output += ` `;
195
+ }
196
+ output += `日期: ${formatDate(r.achievedAt)}`;
197
+ if (r.isPublic) {
198
+ output += ` | 可宣传`;
199
+ }
200
+ output += `\n`;
201
+ }
202
+ }
203
+ return {
204
+ content: [{ type: 'text', text: output }],
205
+ };
206
+ }
207
+ catch (error) {
208
+ logger.error('查询成长记录列表失败:', error.message);
209
+ return {
210
+ content: [{ type: 'text', text: `查询失败: ${error.message}` }],
211
+ isError: true,
212
+ };
213
+ }
214
+ },
215
+ };
216
+ // Helper function
217
+ function formatDate(dateStr) {
218
+ if (!dateStr)
219
+ return '-';
220
+ return new Date(dateStr).toLocaleDateString('zh-CN');
221
+ }
222
+ // Export all growth record tools
223
+ export const growthRecordTools = [getStudentGrowthRecordsTool, listGrowthRecordsTool];
224
+ //# sourceMappingURL=growthRecords.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"growthRecords.js","sourceRoot":"","sources":["../../src/tools/growthRecords.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAQA,UAAU,UAAU;IAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,IAAI;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAaD,cAAM,YAAY;IAChB,OAAO,CAAC,KAAK,CAAgC;;IAQ7C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIvC,WAAW,IAAI,IAAI,EAAE;IAIrB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE;IAchD,YAAY,IAAI,MAAM,EAAE;CAGzB;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC;AAC/C,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AASA,UAAU,UAAU;IAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,IAAI;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAcD,cAAM,YAAY;IAChB,OAAO,CAAC,KAAK,CAAgC;;IAQ7C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIvC,WAAW,IAAI,IAAI,EAAE;IAIrB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE;IAchD,YAAY,IAAI,MAAM,EAAE;CAGzB;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC;AAC/C,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC"}
@@ -4,7 +4,8 @@ import { classTools } from './classes.js';
4
4
  import { sessionTools } from './sessions.js';
5
5
  import { attendanceTools } from './attendances.js';
6
6
  import { financeTools } from './finance.js';
7
- import { achievementTools } from './achievements.js';
7
+ import { growthRecordTools } from './growthRecords.js';
8
+ import { leadTools } from './leads.js';
8
9
  // Combine all tools
9
10
  const allTools = [
10
11
  ...authTools,
@@ -13,7 +14,8 @@ const allTools = [
13
14
  ...sessionTools,
14
15
  ...attendanceTools,
15
16
  ...financeTools,
16
- ...achievementTools,
17
+ ...growthRecordTools,
18
+ ...leadTools,
17
19
  ];
18
20
  class ToolRegistry {
19
21
  tools = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAmBrD,oBAAoB;AACpB,MAAM,QAAQ,GAAW;IACvB,GAAG,SAAS;IACZ,GAAG,YAAY;IACf,GAAG,UAAU;IACb,GAAG,YAAY;IACf,GAAG,eAAe;IAClB,GAAG,YAAY;IACf,GAAG,gBAAgB;CACpB,CAAC;AAEF,MAAM,YAAY;IACR,KAAK,GAAsB,IAAI,GAAG,EAAE,CAAC;IAE7C;QACE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,eAAe,CAAC,QAAuB;QACrC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACrD,6DAA6D;YAC7D,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAC;YAEpC,+CAA+C;YAC/C,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;gBAClC,OAAO,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,aAAa,CAAC;YAC5D,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAmBvC,oBAAoB;AACpB,MAAM,QAAQ,GAAW;IACvB,GAAG,SAAS;IACZ,GAAG,YAAY;IACf,GAAG,UAAU;IACb,GAAG,YAAY;IACf,GAAG,eAAe;IAClB,GAAG,YAAY;IACf,GAAG,iBAAiB;IACpB,GAAG,SAAS;CACb,CAAC;AAEF,MAAM,YAAY;IACR,KAAK,GAAsB,IAAI,GAAG,EAAE,CAAC;IAE7C;QACE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,eAAe,CAAC,QAAuB;QACrC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACrD,6DAA6D;YAC7D,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAC;YAEpC,+CAA+C;YAC/C,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;gBAClC,OAAO,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,aAAa,CAAC;YAC5D,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC"}
@@ -0,0 +1,295 @@
1
+ interface ToolResult {
2
+ content: Array<{
3
+ type: 'text';
4
+ text: string;
5
+ }>;
6
+ isError?: boolean;
7
+ }
8
+ export declare const listLeadsTool: {
9
+ name: string;
10
+ description: string;
11
+ inputSchema: {
12
+ type: "object";
13
+ properties: {
14
+ search: {
15
+ type: string;
16
+ description: string;
17
+ };
18
+ status: {
19
+ type: string;
20
+ enum: string[];
21
+ description: string;
22
+ };
23
+ source: {
24
+ type: string;
25
+ enum: string[];
26
+ description: string;
27
+ };
28
+ priority: {
29
+ type: string;
30
+ enum: string[];
31
+ description: string;
32
+ };
33
+ assignedToId: {
34
+ type: string;
35
+ description: string;
36
+ };
37
+ page: {
38
+ type: string;
39
+ description: string;
40
+ };
41
+ pageSize: {
42
+ type: string;
43
+ description: string;
44
+ };
45
+ };
46
+ required: never[];
47
+ };
48
+ handler: (args: {
49
+ search?: string;
50
+ status?: string;
51
+ source?: string;
52
+ priority?: string;
53
+ assignedToId?: string;
54
+ page?: number;
55
+ pageSize?: number;
56
+ }) => Promise<ToolResult>;
57
+ };
58
+ export declare const getLeadTool: {
59
+ name: string;
60
+ description: string;
61
+ inputSchema: {
62
+ type: "object";
63
+ properties: {
64
+ leadId: {
65
+ type: string;
66
+ description: string;
67
+ };
68
+ };
69
+ required: string[];
70
+ };
71
+ handler: (args: {
72
+ leadId: string;
73
+ }) => Promise<ToolResult>;
74
+ };
75
+ export declare const getLeadStatsTool: {
76
+ name: string;
77
+ description: string;
78
+ inputSchema: {
79
+ type: "object";
80
+ properties: {};
81
+ required: never[];
82
+ };
83
+ handler: () => Promise<ToolResult>;
84
+ };
85
+ export declare const getLeadAnalyticsTool: {
86
+ name: string;
87
+ description: string;
88
+ inputSchema: {
89
+ type: "object";
90
+ properties: {
91
+ startDate: {
92
+ type: string;
93
+ description: string;
94
+ };
95
+ endDate: {
96
+ type: string;
97
+ description: string;
98
+ };
99
+ };
100
+ required: never[];
101
+ };
102
+ handler: (args: {
103
+ startDate?: string;
104
+ endDate?: string;
105
+ }) => Promise<ToolResult>;
106
+ };
107
+ export declare const getPendingFollowupsTool: {
108
+ name: string;
109
+ description: string;
110
+ inputSchema: {
111
+ type: "object";
112
+ properties: {};
113
+ required: never[];
114
+ };
115
+ handler: () => Promise<ToolResult>;
116
+ };
117
+ export declare const listLeadFollowupsTool: {
118
+ name: string;
119
+ description: string;
120
+ inputSchema: {
121
+ type: "object";
122
+ properties: {
123
+ leadId: {
124
+ type: string;
125
+ description: string;
126
+ };
127
+ page: {
128
+ type: string;
129
+ description: string;
130
+ };
131
+ pageSize: {
132
+ type: string;
133
+ description: string;
134
+ };
135
+ };
136
+ required: string[];
137
+ };
138
+ handler: (args: {
139
+ leadId: string;
140
+ page?: number;
141
+ pageSize?: number;
142
+ }) => Promise<ToolResult>;
143
+ };
144
+ export declare const listLeadTrialsTool: {
145
+ name: string;
146
+ description: string;
147
+ inputSchema: {
148
+ type: "object";
149
+ properties: {
150
+ leadId: {
151
+ type: string;
152
+ description: string;
153
+ };
154
+ };
155
+ required: string[];
156
+ };
157
+ handler: (args: {
158
+ leadId: string;
159
+ }) => Promise<ToolResult>;
160
+ };
161
+ export declare const listAssignmentRulesTool: {
162
+ name: string;
163
+ description: string;
164
+ inputSchema: {
165
+ type: "object";
166
+ properties: {};
167
+ required: never[];
168
+ };
169
+ requiredRole: "ADMIN";
170
+ handler: () => Promise<ToolResult>;
171
+ };
172
+ export declare const leadTools: ({
173
+ name: string;
174
+ description: string;
175
+ inputSchema: {
176
+ type: "object";
177
+ properties: {
178
+ search: {
179
+ type: string;
180
+ description: string;
181
+ };
182
+ status: {
183
+ type: string;
184
+ enum: string[];
185
+ description: string;
186
+ };
187
+ source: {
188
+ type: string;
189
+ enum: string[];
190
+ description: string;
191
+ };
192
+ priority: {
193
+ type: string;
194
+ enum: string[];
195
+ description: string;
196
+ };
197
+ assignedToId: {
198
+ type: string;
199
+ description: string;
200
+ };
201
+ page: {
202
+ type: string;
203
+ description: string;
204
+ };
205
+ pageSize: {
206
+ type: string;
207
+ description: string;
208
+ };
209
+ };
210
+ required: never[];
211
+ };
212
+ handler: (args: {
213
+ search?: string;
214
+ status?: string;
215
+ source?: string;
216
+ priority?: string;
217
+ assignedToId?: string;
218
+ page?: number;
219
+ pageSize?: number;
220
+ }) => Promise<ToolResult>;
221
+ } | {
222
+ name: string;
223
+ description: string;
224
+ inputSchema: {
225
+ type: "object";
226
+ properties: {
227
+ leadId: {
228
+ type: string;
229
+ description: string;
230
+ };
231
+ };
232
+ required: string[];
233
+ };
234
+ handler: (args: {
235
+ leadId: string;
236
+ }) => Promise<ToolResult>;
237
+ } | {
238
+ name: string;
239
+ description: string;
240
+ inputSchema: {
241
+ type: "object";
242
+ properties: {};
243
+ required: never[];
244
+ };
245
+ handler: () => Promise<ToolResult>;
246
+ } | {
247
+ name: string;
248
+ description: string;
249
+ inputSchema: {
250
+ type: "object";
251
+ properties: {
252
+ startDate: {
253
+ type: string;
254
+ description: string;
255
+ };
256
+ endDate: {
257
+ type: string;
258
+ description: string;
259
+ };
260
+ };
261
+ required: never[];
262
+ };
263
+ handler: (args: {
264
+ startDate?: string;
265
+ endDate?: string;
266
+ }) => Promise<ToolResult>;
267
+ } | {
268
+ name: string;
269
+ description: string;
270
+ inputSchema: {
271
+ type: "object";
272
+ properties: {
273
+ leadId: {
274
+ type: string;
275
+ description: string;
276
+ };
277
+ page: {
278
+ type: string;
279
+ description: string;
280
+ };
281
+ pageSize: {
282
+ type: string;
283
+ description: string;
284
+ };
285
+ };
286
+ required: string[];
287
+ };
288
+ handler: (args: {
289
+ leadId: string;
290
+ page?: number;
291
+ pageSize?: number;
292
+ }) => Promise<ToolResult>;
293
+ })[];
294
+ export {};
295
+ //# sourceMappingURL=leads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leads.d.ts","sourceRoot":"","sources":["../../src/tools/leads.ts"],"names":[],"mappings":"AAGA,UAAU,UAAU;IAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAuED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA4DF;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAG,OAAO,CAAC,UAAU,CAAC;CAqExB,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;;;oBAaA;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,UAAU,CAAC;CAsE/D,CAAC;AAGF,eAAO,MAAM,gBAAgB;;;;;;;;mBAQR,OAAO,CAAC,UAAU,CAAC;CAuCvC,CAAC;AAGF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;oBAiBT;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAG,OAAO,CAAC,UAAU,CAAC;CAmExB,CAAC;AAGF,eAAO,MAAM,uBAAuB;;;;;;;;mBAQf,OAAO,CAAC,UAAU,CAAC;CAwCvC,CAAC;AAGF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;oBAqBV;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAG,OAAO,CAAC,UAAU,CAAC;CAgDxB,CAAC;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;oBAaP;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,UAAU,CAAC;CAgD/D,CAAC;AAGF,eAAO,MAAM,uBAAuB;;;;;;;;;mBASf,OAAO,CAAC,UAAU,CAAC;CA8CvC,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA1iBE;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;oBAqFD;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;mBAiF3C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;oBA2DhB;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;oBA8ID;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAG,OAAO,CAAC,UAAU,CAAC;IAqLxB,CAAC"}