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.
- package/dist/api/client.d.ts +3 -2
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +79 -41
- package/dist/api/client.js.map +1 -1
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +2 -0
- package/dist/config/index.js.map +1 -1
- package/dist/tools/auth.d.ts.map +1 -1
- package/dist/tools/auth.js +59 -7
- package/dist/tools/auth.js.map +1 -1
- package/dist/tools/{achievements.d.ts → growthRecords.d.ts} +26 -59
- package/dist/tools/growthRecords.d.ts.map +1 -0
- package/dist/tools/growthRecords.js +224 -0
- package/dist/tools/growthRecords.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/leads.d.ts +295 -0
- package/dist/tools/leads.d.ts.map +1 -0
- package/dist/tools/leads.js +596 -0
- package/dist/tools/leads.js.map +1 -0
- package/dist/tools/students.d.ts +0 -12
- package/dist/tools/students.d.ts.map +1 -1
- package/dist/tools/students.js +6 -14
- package/dist/tools/students.js.map +1 -1
- package/package.json +2 -7
- package/dist/tools/achievements.d.ts.map +0 -1
- package/dist/tools/achievements.js +0 -302
- package/dist/tools/achievements.js.map +0 -1
package/dist/api/client.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
declare class ApiClient {
|
|
2
|
-
private
|
|
2
|
+
private baseUrl;
|
|
3
|
+
private hostHeader;
|
|
3
4
|
constructor();
|
|
4
|
-
private
|
|
5
|
+
private request;
|
|
5
6
|
get<T>(url: string, params?: Record<string, any>): Promise<T>;
|
|
6
7
|
post<T>(url: string, data?: any): Promise<T>;
|
|
7
8
|
}
|
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAmCA,cAAM,SAAS;IACb,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;;YASb,OAAO;IAuDf,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI7D,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;CAGnD;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC"}
|
package/dist/api/client.js
CHANGED
|
@@ -1,57 +1,95 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
1
|
import { config } from '../config/index.js';
|
|
3
2
|
import { tokenManager } from '../auth/tokenManager.js';
|
|
4
3
|
import { logger } from '../utils/logger.js';
|
|
4
|
+
// Extract hostname from URL for Host header
|
|
5
|
+
function getHostFromUrl(url) {
|
|
6
|
+
try {
|
|
7
|
+
return new URL(url).hostname;
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return '';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
// Build base URL using IP if configured (bypasses SNI detection)
|
|
14
|
+
function buildBaseUrl() {
|
|
15
|
+
if (config.apiIp) {
|
|
16
|
+
const url = new URL(config.apiBaseUrl);
|
|
17
|
+
return `${url.protocol}//${config.apiIp}${url.port ? ':' + url.port : ''}`;
|
|
18
|
+
}
|
|
19
|
+
return config.apiBaseUrl;
|
|
20
|
+
}
|
|
21
|
+
// Build query string from params
|
|
22
|
+
function buildQueryString(params) {
|
|
23
|
+
if (!params)
|
|
24
|
+
return '';
|
|
25
|
+
const searchParams = new URLSearchParams();
|
|
26
|
+
for (const [key, value] of Object.entries(params)) {
|
|
27
|
+
if (value !== undefined && value !== null) {
|
|
28
|
+
searchParams.append(key, String(value));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const qs = searchParams.toString();
|
|
32
|
+
return qs ? `?${qs}` : '';
|
|
33
|
+
}
|
|
5
34
|
class ApiClient {
|
|
6
|
-
|
|
35
|
+
baseUrl;
|
|
36
|
+
hostHeader;
|
|
7
37
|
constructor() {
|
|
8
|
-
this.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
headers: {
|
|
12
|
-
'Content-Type': 'application/json',
|
|
13
|
-
},
|
|
14
|
-
});
|
|
15
|
-
// Add auth token to requests
|
|
16
|
-
this.instance.interceptors.request.use((config) => {
|
|
17
|
-
const token = tokenManager.getToken();
|
|
18
|
-
if (token) {
|
|
19
|
-
config.headers.Authorization = `Bearer ${token}`;
|
|
20
|
-
}
|
|
21
|
-
return config;
|
|
22
|
-
});
|
|
23
|
-
// Handle errors
|
|
24
|
-
this.instance.interceptors.response.use((response) => response, (error) => {
|
|
25
|
-
if (error.response?.status === 401) {
|
|
26
|
-
logger.warn('Token 已过期或无效');
|
|
27
|
-
// Clear credentials asynchronously, don't block error response
|
|
28
|
-
tokenManager.clearCredentials().catch(() => {
|
|
29
|
-
// Ignore errors during cleanup
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
throw this.formatError(error);
|
|
33
|
-
});
|
|
38
|
+
this.baseUrl = buildBaseUrl();
|
|
39
|
+
this.hostHeader = config.apiIp ? getHostFromUrl(config.apiBaseUrl) : '';
|
|
40
|
+
logger.info(`[ApiClient] Config: baseUrl=${this.baseUrl}, hostHeader=${this.hostHeader || '(not set)'}`);
|
|
34
41
|
}
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
42
|
+
async request(method, url, data, params) {
|
|
43
|
+
const fullUrl = `${this.baseUrl}${url}${buildQueryString(params)}`;
|
|
44
|
+
const token = tokenManager.getToken();
|
|
45
|
+
const headers = {
|
|
46
|
+
'Content-Type': 'application/json',
|
|
47
|
+
};
|
|
48
|
+
if (token) {
|
|
49
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
39
50
|
}
|
|
40
|
-
if (
|
|
41
|
-
|
|
51
|
+
if (this.hostHeader) {
|
|
52
|
+
headers['Host'] = this.hostHeader;
|
|
53
|
+
}
|
|
54
|
+
logger.debug(`[ApiClient] ${method} ${url}`, { hasToken: !!token });
|
|
55
|
+
try {
|
|
56
|
+
const response = await fetch(fullUrl, {
|
|
57
|
+
method,
|
|
58
|
+
headers,
|
|
59
|
+
body: data ? JSON.stringify(data) : undefined,
|
|
60
|
+
});
|
|
61
|
+
const responseData = await response.json();
|
|
62
|
+
if (!response.ok) {
|
|
63
|
+
if (response.status === 401) {
|
|
64
|
+
logger.warn('Token 已过期或无效');
|
|
65
|
+
tokenManager.clearCredentials().catch(() => { });
|
|
66
|
+
}
|
|
67
|
+
throw new Error(responseData.message || `HTTP ${response.status}`);
|
|
68
|
+
}
|
|
69
|
+
if (!responseData.success) {
|
|
70
|
+
throw new Error(responseData.message || '请求失败');
|
|
71
|
+
}
|
|
72
|
+
return responseData.data;
|
|
42
73
|
}
|
|
43
|
-
|
|
44
|
-
|
|
74
|
+
catch (error) {
|
|
75
|
+
// Handle network errors
|
|
76
|
+
if (error.cause?.code === 'ECONNREFUSED') {
|
|
77
|
+
throw new Error('无法连接到服务器,请检查网络或服务是否运行');
|
|
78
|
+
}
|
|
79
|
+
if (error.cause?.code === 'ECONNRESET') {
|
|
80
|
+
throw new Error('连接被重置,请稍后重试');
|
|
81
|
+
}
|
|
82
|
+
if (error.name === 'TimeoutError' || error.cause?.code === 'ETIMEDOUT') {
|
|
83
|
+
throw new Error('请求超时,请稍后重试');
|
|
84
|
+
}
|
|
85
|
+
throw error;
|
|
45
86
|
}
|
|
46
|
-
return new Error(error.message || '请求失败');
|
|
47
87
|
}
|
|
48
88
|
async get(url, params) {
|
|
49
|
-
|
|
50
|
-
return response.data.data;
|
|
89
|
+
return this.request('GET', url, undefined, params);
|
|
51
90
|
}
|
|
52
91
|
async post(url, data) {
|
|
53
|
-
|
|
54
|
-
return response.data.data;
|
|
92
|
+
return this.request('POST', url, data);
|
|
55
93
|
}
|
|
56
94
|
}
|
|
57
95
|
export const apiClient = new ApiClient();
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/dist/config/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,MAAM;;;;;CAMlB,CAAC;AAEF,wBAAgB,cAAc,IAAI,IAAI,CAQrC"}
|
package/dist/config/index.js
CHANGED
|
@@ -8,6 +8,8 @@ export const config = {
|
|
|
8
8
|
apiBaseUrl: process.env.MCP_API_BASE_URL || 'https://paike.bohecoding.com',
|
|
9
9
|
authPageUrl: process.env.MCP_AUTH_PAGE_URL || 'https://paike.bohecoding.com/mcp-auth',
|
|
10
10
|
logLevel: process.env.MCP_LOG_LEVEL || 'info',
|
|
11
|
+
// Optional: IP address for direct connection (bypasses SNI detection on Alibaba Cloud)
|
|
12
|
+
apiIp: process.env.MCP_API_IP || '',
|
|
11
13
|
};
|
|
12
14
|
export function validateConfig() {
|
|
13
15
|
const required = ['MCP_API_BASE_URL'];
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,mCAAmC;AACnC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,8BAA8B;IAC1E,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,uCAAuC;IACrF,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,mCAAmC;AACnC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,8BAA8B;IAC1E,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,uCAAuC;IACrF,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM;IAC7C,uFAAuF;IACvF,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;CACpC,CAAC;AAEF,MAAM,UAAU,cAAc;IAC5B,MAAM,QAAQ,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,iDAAiD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;IACzG,CAAC;AACH,CAAC"}
|
package/dist/tools/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"AAyBA,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;AAGD,eAAO,MAAM,SAAS;;;;;;;;;;;;;oBAaE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,UAAU,CAAC;CAkF/D,CAAC;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;mBAQV,OAAO,CAAC,UAAU,CAAC;CA4CvC,CAAC;AA0FF,eAAO,MAAM,SAAS;;;;;;;;;;;;;oBAnOE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;mBA6F3C,OAAO,CAAC,UAAU,CAAC;IAsIgB,CAAC"}
|
package/dist/tools/auth.js
CHANGED
|
@@ -2,6 +2,23 @@ import open from 'open';
|
|
|
2
2
|
import { config } from '../config/index.js';
|
|
3
3
|
import { tokenManager } from '../auth/tokenManager.js';
|
|
4
4
|
import { logger } from '../utils/logger.js';
|
|
5
|
+
// Build API URL, using IP if configured (bypasses SNI detection on Alibaba Cloud)
|
|
6
|
+
function buildApiUrl(path) {
|
|
7
|
+
if (config.apiIp) {
|
|
8
|
+
const url = new URL(config.apiBaseUrl);
|
|
9
|
+
return `${url.protocol}//${config.apiIp}${url.port ? ':' + url.port : ''}${path}`;
|
|
10
|
+
}
|
|
11
|
+
return `${config.apiBaseUrl}${path}`;
|
|
12
|
+
}
|
|
13
|
+
// Get Host header value from API base URL
|
|
14
|
+
function getApiHost() {
|
|
15
|
+
try {
|
|
16
|
+
return new URL(config.apiBaseUrl).hostname;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return '';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
5
22
|
// Login tool - opens browser and instructs user to paste token
|
|
6
23
|
export const loginTool = {
|
|
7
24
|
name: 'login',
|
|
@@ -147,13 +164,48 @@ export const getCurrentUserTool = {
|
|
|
147
164
|
};
|
|
148
165
|
// Helper function to validate token
|
|
149
166
|
async function validateToken(token) {
|
|
150
|
-
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
167
|
+
const apiUrl = buildApiUrl('/api/auth/me');
|
|
168
|
+
const headers = {
|
|
169
|
+
'Authorization': `Bearer ${token}`,
|
|
170
|
+
'Content-Type': 'application/json',
|
|
171
|
+
};
|
|
172
|
+
// Add Host header when using IP mode
|
|
173
|
+
if (config.apiIp) {
|
|
174
|
+
headers['Host'] = getApiHost();
|
|
175
|
+
logger.debug(`Validating token via IP: ${config.apiIp} with Host: ${headers['Host']}`);
|
|
176
|
+
}
|
|
177
|
+
// Create fetch options
|
|
178
|
+
const fetchOptions = {
|
|
179
|
+
headers,
|
|
180
|
+
};
|
|
181
|
+
// When using IP mode, we need to disable SSL verification
|
|
182
|
+
// Node.js fetch doesn't support custom agents directly, so we use undici's Agent
|
|
183
|
+
if (config.apiIp) {
|
|
184
|
+
// Use a workaround: set NODE_TLS_REJECT_UNAUTHORIZED for this request
|
|
185
|
+
// This is not ideal but works for the auth validation
|
|
186
|
+
const originalTlsReject = process.env.NODE_TLS_REJECT_UNAUTHORIZED;
|
|
187
|
+
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
|
|
188
|
+
try {
|
|
189
|
+
const response = await fetch(apiUrl, fetchOptions);
|
|
190
|
+
if (!response.ok) {
|
|
191
|
+
const errorData = await response.json().catch(() => ({}));
|
|
192
|
+
throw new Error(errorData.message || `验证失败 (${response.status})`);
|
|
193
|
+
}
|
|
194
|
+
const result = await response.json();
|
|
195
|
+
return result.data;
|
|
196
|
+
}
|
|
197
|
+
finally {
|
|
198
|
+
// Restore original setting
|
|
199
|
+
if (originalTlsReject === undefined) {
|
|
200
|
+
delete process.env.NODE_TLS_REJECT_UNAUTHORIZED;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
process.env.NODE_TLS_REJECT_UNAUTHORIZED = originalTlsReject;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// Normal mode (no IP override)
|
|
208
|
+
const response = await fetch(apiUrl, fetchOptions);
|
|
157
209
|
if (!response.ok) {
|
|
158
210
|
const errorData = await response.json().catch(() => ({}));
|
|
159
211
|
throw new Error(errorData.message || `验证失败 (${response.status})`);
|
package/dist/tools/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,30 +5,7 @@ interface ToolResult {
|
|
|
5
5
|
}>;
|
|
6
6
|
isError?: boolean;
|
|
7
7
|
}
|
|
8
|
-
export declare const
|
|
9
|
-
name: string;
|
|
10
|
-
description: string;
|
|
11
|
-
inputSchema: {
|
|
12
|
-
type: "object";
|
|
13
|
-
properties: {
|
|
14
|
-
category: {
|
|
15
|
-
type: string;
|
|
16
|
-
enum: string[];
|
|
17
|
-
description: string;
|
|
18
|
-
};
|
|
19
|
-
isActive: {
|
|
20
|
-
type: string;
|
|
21
|
-
description: string;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
required: never[];
|
|
25
|
-
};
|
|
26
|
-
handler: (args: {
|
|
27
|
-
category?: string;
|
|
28
|
-
isActive?: boolean;
|
|
29
|
-
}) => Promise<ToolResult>;
|
|
30
|
-
};
|
|
31
|
-
export declare const getStudentAchievementsTool: {
|
|
8
|
+
export declare const getStudentGrowthRecordsTool: {
|
|
32
9
|
name: string;
|
|
33
10
|
description: string;
|
|
34
11
|
inputSchema: {
|
|
@@ -61,18 +38,23 @@ export declare const getStudentAchievementsTool: {
|
|
|
61
38
|
endDate?: string;
|
|
62
39
|
}) => Promise<ToolResult>;
|
|
63
40
|
};
|
|
64
|
-
export declare const
|
|
41
|
+
export declare const listGrowthRecordsTool: {
|
|
65
42
|
name: string;
|
|
66
43
|
description: string;
|
|
67
44
|
inputSchema: {
|
|
68
45
|
type: "object";
|
|
69
46
|
properties: {
|
|
70
|
-
|
|
47
|
+
studentName: {
|
|
48
|
+
type: string;
|
|
49
|
+
description: string;
|
|
50
|
+
};
|
|
51
|
+
title: {
|
|
71
52
|
type: string;
|
|
72
53
|
description: string;
|
|
73
54
|
};
|
|
74
|
-
|
|
55
|
+
category: {
|
|
75
56
|
type: string;
|
|
57
|
+
enum: string[];
|
|
76
58
|
description: string;
|
|
77
59
|
};
|
|
78
60
|
isPublic: {
|
|
@@ -96,11 +78,12 @@ export declare const listAchievementsByTypeTool: {
|
|
|
96
78
|
description: string;
|
|
97
79
|
};
|
|
98
80
|
};
|
|
99
|
-
required:
|
|
81
|
+
required: never[];
|
|
100
82
|
};
|
|
101
83
|
handler: (args: {
|
|
102
|
-
|
|
103
|
-
|
|
84
|
+
studentName?: string;
|
|
85
|
+
title?: string;
|
|
86
|
+
category?: string;
|
|
104
87
|
isPublic?: boolean;
|
|
105
88
|
startDate?: string;
|
|
106
89
|
endDate?: string;
|
|
@@ -108,29 +91,7 @@ export declare const listAchievementsByTypeTool: {
|
|
|
108
91
|
pageSize?: number;
|
|
109
92
|
}) => Promise<ToolResult>;
|
|
110
93
|
};
|
|
111
|
-
export declare const
|
|
112
|
-
name: string;
|
|
113
|
-
description: string;
|
|
114
|
-
inputSchema: {
|
|
115
|
-
type: "object";
|
|
116
|
-
properties: {
|
|
117
|
-
category: {
|
|
118
|
-
type: string;
|
|
119
|
-
enum: string[];
|
|
120
|
-
description: string;
|
|
121
|
-
};
|
|
122
|
-
isActive: {
|
|
123
|
-
type: string;
|
|
124
|
-
description: string;
|
|
125
|
-
};
|
|
126
|
-
};
|
|
127
|
-
required: never[];
|
|
128
|
-
};
|
|
129
|
-
handler: (args: {
|
|
130
|
-
category?: string;
|
|
131
|
-
isActive?: boolean;
|
|
132
|
-
}) => Promise<ToolResult>;
|
|
133
|
-
} | {
|
|
94
|
+
export declare const growthRecordTools: ({
|
|
134
95
|
name: string;
|
|
135
96
|
description: string;
|
|
136
97
|
inputSchema: {
|
|
@@ -168,12 +129,17 @@ export declare const achievementTools: ({
|
|
|
168
129
|
inputSchema: {
|
|
169
130
|
type: "object";
|
|
170
131
|
properties: {
|
|
171
|
-
|
|
132
|
+
studentName: {
|
|
133
|
+
type: string;
|
|
134
|
+
description: string;
|
|
135
|
+
};
|
|
136
|
+
title: {
|
|
172
137
|
type: string;
|
|
173
138
|
description: string;
|
|
174
139
|
};
|
|
175
|
-
|
|
140
|
+
category: {
|
|
176
141
|
type: string;
|
|
142
|
+
enum: string[];
|
|
177
143
|
description: string;
|
|
178
144
|
};
|
|
179
145
|
isPublic: {
|
|
@@ -197,11 +163,12 @@ export declare const achievementTools: ({
|
|
|
197
163
|
description: string;
|
|
198
164
|
};
|
|
199
165
|
};
|
|
200
|
-
required:
|
|
166
|
+
required: never[];
|
|
201
167
|
};
|
|
202
168
|
handler: (args: {
|
|
203
|
-
|
|
204
|
-
|
|
169
|
+
studentName?: string;
|
|
170
|
+
title?: string;
|
|
171
|
+
category?: string;
|
|
205
172
|
isPublic?: boolean;
|
|
206
173
|
startDate?: string;
|
|
207
174
|
endDate?: string;
|
|
@@ -210,4 +177,4 @@ export declare const achievementTools: ({
|
|
|
210
177
|
}) => Promise<ToolResult>;
|
|
211
178
|
})[];
|
|
212
179
|
export {};
|
|
213
|
-
//# sourceMappingURL=
|
|
180
|
+
//# sourceMappingURL=growthRecords.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"growthRecords.d.ts","sourceRoot":"","sources":["../../src/tools/growthRecords.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;AAYD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;oBA2BhB;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAG,OAAO,CAAC,UAAU,CAAC;CAqExB,CAAC;AAGF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA2CV;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAG,OAAO,CAAC,UAAU,CAAC;CA+ExB,CAAC;AASF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;oBAzNN;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAmHD;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAG,OAAO,CAAC,UAAU,CAAC;IAwF4D,CAAC"}
|