fa-mcp-sdk 0.2.15 → 0.2.17

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.
@@ -17,7 +17,8 @@ export { trim, isMainModule, isNonEmptyObject, isObject, ppj } from './utils/uti
17
17
  export { isPortAvailable, checkPortAvailability } from './utils/port-checker.js';
18
18
  export { eventEmitter } from './ee.js';
19
19
  export { logger, fileLogger } from './logger.js';
20
- export { McpSimpleHttpClient } from './utils/testing/McpSimpleHttpClient.js';
21
- export { McpStreamableHttpClient } from './utils/testing/McpStreamableHttpClient.js';
20
+ export { McpHttpClient } from './utils/testing/McpHttpClient.js';
22
21
  export { McpSseClient } from './utils/testing/McpSseClient.js';
22
+ export { McpStdioClient } from './utils/testing/McpStdioClient.js';
23
+ export { McpStreamableHttpClient } from './utils/testing/McpStreamableHttpClient.js';
23
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,sBAAsB,EAEtB,SAAS,EACT,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,aAAa,EAEb,eAAe,EACf,YAAY,EACZ,mBAAmB,EAEnB,eAAe,EACf,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,sBAAsB,EAEtB,SAAS,EACT,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,aAAa,EAEb,eAAe,EACf,YAAY,EACZ,mBAAmB,EAEnB,eAAe,EACf,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC"}
@@ -14,7 +14,8 @@ export { trim, isMainModule, isNonEmptyObject, isObject, ppj } from './utils/uti
14
14
  export { isPortAvailable, checkPortAvailability } from './utils/port-checker.js';
15
15
  export { eventEmitter } from './ee.js';
16
16
  export { logger, fileLogger } from './logger.js';
17
- export { McpSimpleHttpClient } from './utils/testing/McpSimpleHttpClient.js';
18
- export { McpStreamableHttpClient } from './utils/testing/McpStreamableHttpClient.js';
17
+ export { McpHttpClient } from './utils/testing/McpHttpClient.js';
19
18
  export { McpSseClient } from './utils/testing/McpSseClient.js';
19
+ export { McpStdioClient } from './utils/testing/McpStdioClient.js';
20
+ export { McpStreamableHttpClient } from './utils/testing/McpStreamableHttpClient.js';
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC"}
@@ -5,7 +5,7 @@ type Json = any;
5
5
  * Uses simple POST requests instead of streaming HTTP for compatibility
6
6
  * with the current server implementation
7
7
  */
8
- export declare class McpSimpleHttpClient {
8
+ export declare class McpHttpClient {
9
9
  private readonly baseUrl;
10
10
  private readonly endpointPath;
11
11
  private readonly customHeaders;
@@ -34,12 +34,12 @@ export declare class McpSimpleHttpClient {
34
34
  notify(method: string, params?: Json): void;
35
35
  sendRpc<T = any>(method: string, params?: Json): Promise<T>;
36
36
  listTools(): Promise<any>;
37
- callTool(toolName: string, parameters?: Record<string, any>): Promise<any>;
37
+ callTool(toolName: string, args?: Record<string, any>): Promise<any>;
38
38
  listResources(): Promise<any>;
39
39
  readResource(uri: string): Promise<any>;
40
40
  listPrompts(): Promise<any>;
41
- getPrompt(name: string, arguments_?: Record<string, any>): Promise<any>;
41
+ getPrompt(name: string, args?: Record<string, any>): Promise<any>;
42
42
  ping(): Promise<any>;
43
43
  }
44
44
  export {};
45
- //# sourceMappingURL=McpSimpleHttpClient.d.ts.map
45
+ //# sourceMappingURL=McpHttpClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpHttpClient.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpHttpClient.ts"],"names":[],"mappings":"AAEA,KAAK,IAAI,GAAG,GAAG,CAAC;AA6BhB;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IAEvD,OAAO,CAAC,MAAM,CAAK;IAEZ,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACtC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAMK,UAAU,CAAE,MAAM,GAAE;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,EAAE,GAAG,CAAC;QACnB,UAAU,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3C;IAWA,KAAK;YAIG,WAAW;IAqBzB,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IAQ/B,OAAO,CAAC,CAAC,GAAG,GAAG,EAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;IAwB5D,SAAS;IAKT,QAAQ,CAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAI1D,aAAa;IAIb,YAAY,CAAE,GAAG,EAAE,MAAM;IAIzB,WAAW;IAIX,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAIvD,IAAI;CAGX"}
@@ -5,7 +5,7 @@
5
5
  * Uses simple POST requests instead of streaming HTTP for compatibility
6
6
  * with the current server implementation
7
7
  */
8
- export class McpSimpleHttpClient {
8
+ export class McpHttpClient {
9
9
  baseUrl;
10
10
  endpointPath;
11
11
  customHeaders;
@@ -77,8 +77,8 @@ export class McpSimpleHttpClient {
77
77
  const res = await this.sendRpc('tools/list');
78
78
  return res?.tools ?? res;
79
79
  }
80
- async callTool(toolName, parameters = {}) {
81
- return this.sendRpc('tools/call', { name: toolName, arguments: parameters });
80
+ async callTool(toolName, args = {}) {
81
+ return this.sendRpc('tools/call', { name: toolName, arguments: args });
82
82
  }
83
83
  async listResources() {
84
84
  return this.sendRpc('resources/list');
@@ -89,11 +89,11 @@ export class McpSimpleHttpClient {
89
89
  async listPrompts() {
90
90
  return this.sendRpc('prompts/list');
91
91
  }
92
- async getPrompt(name, arguments_ = {}) {
93
- return this.sendRpc('prompts/get', { name, arguments: arguments_ });
92
+ async getPrompt(name, args = {}) {
93
+ return this.sendRpc('prompts/get', { name, arguments: args });
94
94
  }
95
95
  async ping() {
96
96
  return this.sendRpc('ping');
97
97
  }
98
98
  }
99
- //# sourceMappingURL=McpSimpleHttpClient.js.map
99
+ //# sourceMappingURL=McpHttpClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpHttpClient.js","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpHttpClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import '../../bootstrap/dotenv.js';
2
+ import { ChildProcess } from 'child_process';
3
+ export declare class McpStdioClient {
4
+ private proc;
5
+ private nextId;
6
+ private pending;
7
+ private buffer;
8
+ constructor(proc: ChildProcess);
9
+ processLines(): void;
10
+ send(method: string, params?: {}, timeoutMs?: number): Promise<unknown>;
11
+ listTools(): Promise<unknown>;
12
+ callTool(name: string, args?: Record<string, any>): Promise<unknown>;
13
+ listResources(): Promise<unknown>;
14
+ readResource(uri: string): Promise<unknown>;
15
+ listPrompts(): Promise<unknown>;
16
+ getPrompt(name: string, args?: Record<string, any>): Promise<unknown>;
17
+ }
18
+ //# sourceMappingURL=McpStdioClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpStdioClient.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpStdioClient.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAY7C,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,MAAM,CAAS;gBAEV,IAAI,EAAE,YAAY;IAqB/B,YAAY;IA+BZ,IAAI,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,EAAE,SAAS,SAAQ;IAqBpD,SAAS;IAIT,QAAQ,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAItD,aAAa;IAIb,YAAY,CAAE,GAAG,EAAE,MAAM;IAIzB,WAAW;IAIX,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;CAGxD"}
@@ -0,0 +1,102 @@
1
+ import '../../bootstrap/dotenv.js';
2
+ import chalk from 'chalk';
3
+ const SHOW_IN = process.env.TEST_SHOW_IN === 'true';
4
+ const SHOW_OUT = process.env.TEST_SHOW_OUT === 'true';
5
+ const SHOW_ERR = process.env.TEST_SHOW_ERR === 'true';
6
+ export class McpStdioClient {
7
+ proc;
8
+ nextId;
9
+ pending;
10
+ buffer;
11
+ constructor(proc) {
12
+ this.proc = proc;
13
+ this.nextId = 1;
14
+ this.pending = new Map();
15
+ this.buffer = '';
16
+ if (this.proc.stdout) {
17
+ this.proc.stdout.on('data', (chunk) => {
18
+ this.buffer += chunk.toString();
19
+ this.processLines();
20
+ });
21
+ }
22
+ if (this.proc.stderr) {
23
+ this.proc.stderr.on('data', (data) => {
24
+ if (SHOW_ERR) {
25
+ console.error(chalk.gray(String(data)));
26
+ }
27
+ });
28
+ }
29
+ }
30
+ processLines() {
31
+ const lines = this.buffer.split('\n');
32
+ this.buffer = lines.pop() || '';
33
+ for (const line of lines) {
34
+ const s = line.trim();
35
+ if (!s) {
36
+ continue;
37
+ }
38
+ try {
39
+ const msg = JSON.parse(s);
40
+ if (SHOW_IN) {
41
+ console.log(chalk.bgYellow('IN ') + s);
42
+ }
43
+ if (typeof msg.id === 'number' && (msg.result !== undefined || msg.error)) {
44
+ const p = this.pending.get(msg.id);
45
+ if (p) {
46
+ clearTimeout(p.t);
47
+ this.pending.delete(msg.id);
48
+ if (msg.error) {
49
+ p.reject(new Error(msg.error?.message || 'MCP Error'));
50
+ }
51
+ else {
52
+ p.resolve(msg.result);
53
+ }
54
+ }
55
+ }
56
+ }
57
+ catch {
58
+ // ignore parse errors
59
+ }
60
+ }
61
+ }
62
+ send(method, params = {}, timeoutMs = 15000) {
63
+ const id = this.nextId++;
64
+ const req = { jsonrpc: '2.0', id, method, params };
65
+ const text = JSON.stringify(req) + '\n';
66
+ if (SHOW_OUT) {
67
+ console.log(chalk.bgBlue('OUT') + ' ' + text.trim());
68
+ }
69
+ if (this.proc.stdin) {
70
+ this.proc.stdin.write(text);
71
+ }
72
+ else {
73
+ throw new Error('Process stdin is not available');
74
+ }
75
+ return new Promise((resolve, reject) => {
76
+ const t = setTimeout(() => {
77
+ this.pending.delete(id);
78
+ reject(new Error(`Timeout for ${method}`));
79
+ }, timeoutMs);
80
+ this.pending.set(id, { resolve, reject, t });
81
+ });
82
+ }
83
+ listTools() {
84
+ return this.send('tools/list');
85
+ }
86
+ callTool(name, args = {}) {
87
+ return this.send('tools/call', { name, arguments: args });
88
+ }
89
+ listResources() {
90
+ return this.send('resources/list');
91
+ }
92
+ readResource(uri) {
93
+ return this.send('resources/read', { uri });
94
+ }
95
+ listPrompts() {
96
+ return this.send('prompts/list');
97
+ }
98
+ getPrompt(name, args = {}) {
99
+ return this.send('prompts/get', { name, arguments: args });
100
+ }
101
+ }
102
+ //# sourceMappingURL=McpStdioClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpStdioClient.js","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpStdioClient.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "fa-mcp-sdk",
3
3
  "productName": "FA MCP SDK",
4
- "version": "0.2.15",
4
+ "version": "0.2.17",
5
5
  "description": "Core infrastructure and templates for building Model Context Protocol (MCP) servers with TypeScript",
6
6
  "type": "module",
7
7
  "main": "dist/core/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"McpSimpleHttpClient.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpSimpleHttpClient.ts"],"names":[],"mappings":"AAEA,KAAK,IAAI,GAAG,GAAG,CAAC;AA6BhB;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IAEvD,OAAO,CAAC,MAAM,CAAK;IAEZ,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACtC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAMK,UAAU,CAAE,MAAM,GAAE;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,EAAE,GAAG,CAAC;QACnB,UAAU,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3C;IAWA,KAAK;YAIG,WAAW;IAqBzB,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IAQ/B,OAAO,CAAC,CAAC,GAAG,GAAG,EAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;IAwB5D,SAAS;IAKT,QAAQ,CAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAIhE,aAAa;IAIb,YAAY,CAAE,GAAG,EAAE,MAAM;IAIzB,WAAW;IAIX,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAI7D,IAAI;CAGX"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"McpSimpleHttpClient.js","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpSimpleHttpClient.ts"],"names":[],"mappings":"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"}