@karashiiro/my-cool-proxy 1.0.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 (204) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +325 -0
  3. package/bin/my-cool-proxy.js +2 -0
  4. package/dist/container/binding-map.d.ts +25 -0
  5. package/dist/container/binding-map.d.ts.map +1 -0
  6. package/dist/container/binding-map.js +2 -0
  7. package/dist/container/binding-map.js.map +1 -0
  8. package/dist/container/decorators.d.ts +5 -0
  9. package/dist/container/decorators.d.ts.map +1 -0
  10. package/dist/container/decorators.js +4 -0
  11. package/dist/container/decorators.js.map +1 -0
  12. package/dist/container/inversify.config.d.ts +6 -0
  13. package/dist/container/inversify.config.d.ts.map +1 -0
  14. package/dist/container/inversify.config.js +85 -0
  15. package/dist/container/inversify.config.js.map +1 -0
  16. package/dist/controllers/mcp-session-controller.d.ts +21 -0
  17. package/dist/controllers/mcp-session-controller.d.ts.map +1 -0
  18. package/dist/controllers/mcp-session-controller.js +100 -0
  19. package/dist/controllers/mcp-session-controller.js.map +1 -0
  20. package/dist/e2e/fixtures/toy-servers/calculator-server.d.ts +5 -0
  21. package/dist/e2e/fixtures/toy-servers/calculator-server.d.ts.map +1 -0
  22. package/dist/e2e/fixtures/toy-servers/calculator-server.js +164 -0
  23. package/dist/e2e/fixtures/toy-servers/calculator-server.js.map +1 -0
  24. package/dist/e2e/fixtures/toy-servers/data-server.d.ts +5 -0
  25. package/dist/e2e/fixtures/toy-servers/data-server.d.ts.map +1 -0
  26. package/dist/e2e/fixtures/toy-servers/data-server.js +198 -0
  27. package/dist/e2e/fixtures/toy-servers/data-server.js.map +1 -0
  28. package/dist/e2e/fixtures/toy-servers/elicitation-server.d.ts +5 -0
  29. package/dist/e2e/fixtures/toy-servers/elicitation-server.d.ts.map +1 -0
  30. package/dist/e2e/fixtures/toy-servers/elicitation-server.js +199 -0
  31. package/dist/e2e/fixtures/toy-servers/elicitation-server.js.map +1 -0
  32. package/dist/e2e/fixtures/toy-servers/index.d.ts +5 -0
  33. package/dist/e2e/fixtures/toy-servers/index.d.ts.map +1 -0
  34. package/dist/e2e/fixtures/toy-servers/index.js +5 -0
  35. package/dist/e2e/fixtures/toy-servers/index.js.map +1 -0
  36. package/dist/e2e/fixtures/toy-servers/sampling-server.d.ts +5 -0
  37. package/dist/e2e/fixtures/toy-servers/sampling-server.d.ts.map +1 -0
  38. package/dist/e2e/fixtures/toy-servers/sampling-server.js +170 -0
  39. package/dist/e2e/fixtures/toy-servers/sampling-server.js.map +1 -0
  40. package/dist/e2e/helpers/client-helpers.d.ts +18 -0
  41. package/dist/e2e/helpers/client-helpers.d.ts.map +1 -0
  42. package/dist/e2e/helpers/client-helpers.js +119 -0
  43. package/dist/e2e/helpers/client-helpers.js.map +1 -0
  44. package/dist/e2e/helpers/http-server-manager.d.ts +10 -0
  45. package/dist/e2e/helpers/http-server-manager.d.ts.map +1 -0
  46. package/dist/e2e/helpers/http-server-manager.js +146 -0
  47. package/dist/e2e/helpers/http-server-manager.js.map +1 -0
  48. package/dist/e2e/helpers/port-manager.d.ts +2 -0
  49. package/dist/e2e/helpers/port-manager.d.ts.map +1 -0
  50. package/dist/e2e/helpers/port-manager.js +27 -0
  51. package/dist/e2e/helpers/port-manager.js.map +1 -0
  52. package/dist/e2e/helpers/test-assertions.d.ts +18 -0
  53. package/dist/e2e/helpers/test-assertions.d.ts.map +1 -0
  54. package/dist/e2e/helpers/test-assertions.js +71 -0
  55. package/dist/e2e/helpers/test-assertions.js.map +1 -0
  56. package/dist/e2e/helpers/test-config-generator.d.ts +14 -0
  57. package/dist/e2e/helpers/test-config-generator.d.ts.map +1 -0
  58. package/dist/e2e/helpers/test-config-generator.js +39 -0
  59. package/dist/e2e/helpers/test-config-generator.js.map +1 -0
  60. package/dist/e2e/helpers/toy-server-manager.d.ts +10 -0
  61. package/dist/e2e/helpers/toy-server-manager.d.ts.map +1 -0
  62. package/dist/e2e/helpers/toy-server-manager.js +58 -0
  63. package/dist/e2e/helpers/toy-server-manager.js.map +1 -0
  64. package/dist/handlers/shutdown-handler.d.ts +8 -0
  65. package/dist/handlers/shutdown-handler.d.ts.map +1 -0
  66. package/dist/handlers/shutdown-handler.js +37 -0
  67. package/dist/handlers/shutdown-handler.js.map +1 -0
  68. package/dist/index.d.ts +2 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +235 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/lua/runtime-infinite-loop-worker.d.ts +2 -0
  73. package/dist/lua/runtime-infinite-loop-worker.d.ts.map +1 -0
  74. package/dist/lua/runtime-infinite-loop-worker.js +33 -0
  75. package/dist/lua/runtime-infinite-loop-worker.js.map +1 -0
  76. package/dist/lua/runtime.d.ts +11 -0
  77. package/dist/lua/runtime.d.ts.map +1 -0
  78. package/dist/lua/runtime.js +131 -0
  79. package/dist/lua/runtime.js.map +1 -0
  80. package/dist/mcp/client-manager.d.ts +23 -0
  81. package/dist/mcp/client-manager.d.ts.map +1 -0
  82. package/dist/mcp/client-manager.js +201 -0
  83. package/dist/mcp/client-manager.js.map +1 -0
  84. package/dist/mcp/client-session.d.ts +235 -0
  85. package/dist/mcp/client-session.d.ts.map +1 -0
  86. package/dist/mcp/client-session.js +148 -0
  87. package/dist/mcp/client-session.js.map +1 -0
  88. package/dist/mcp/gateway-server.d.ts +26 -0
  89. package/dist/mcp/gateway-server.d.ts.map +1 -0
  90. package/dist/mcp/gateway-server.js +141 -0
  91. package/dist/mcp/gateway-server.js.map +1 -0
  92. package/dist/mcp/mcp-formatter-service.d.ts +15 -0
  93. package/dist/mcp/mcp-formatter-service.d.ts.map +1 -0
  94. package/dist/mcp/mcp-formatter-service.js +151 -0
  95. package/dist/mcp/mcp-formatter-service.js.map +1 -0
  96. package/dist/mcp/prompt-aggregation-service.d.ts +13 -0
  97. package/dist/mcp/prompt-aggregation-service.d.ts.map +1 -0
  98. package/dist/mcp/prompt-aggregation-service.js +104 -0
  99. package/dist/mcp/prompt-aggregation-service.js.map +1 -0
  100. package/dist/mcp/resource-aggregation-service.d.ts +13 -0
  101. package/dist/mcp/resource-aggregation-service.d.ts.map +1 -0
  102. package/dist/mcp/resource-aggregation-service.js +107 -0
  103. package/dist/mcp/resource-aggregation-service.js.map +1 -0
  104. package/dist/mcp/tool-discovery-service.d.ts +20 -0
  105. package/dist/mcp/tool-discovery-service.d.ts.map +1 -0
  106. package/dist/mcp/tool-discovery-service.js +274 -0
  107. package/dist/mcp/tool-discovery-service.js.map +1 -0
  108. package/dist/mcp/transport-manager.d.ts +15 -0
  109. package/dist/mcp/transport-manager.d.ts.map +1 -0
  110. package/dist/mcp/transport-manager.js +105 -0
  111. package/dist/mcp/transport-manager.js.map +1 -0
  112. package/dist/services/cache-service.d.ts +15 -0
  113. package/dist/services/cache-service.d.ts.map +1 -0
  114. package/dist/services/cache-service.js +73 -0
  115. package/dist/services/cache-service.js.map +1 -0
  116. package/dist/services/capability-store.d.ts +12 -0
  117. package/dist/services/capability-store.d.ts.map +1 -0
  118. package/dist/services/capability-store.js +52 -0
  119. package/dist/services/capability-store.js.map +1 -0
  120. package/dist/services/server-info-preloader.d.ts +9 -0
  121. package/dist/services/server-info-preloader.d.ts.map +1 -0
  122. package/dist/services/server-info-preloader.js +125 -0
  123. package/dist/services/server-info-preloader.js.map +1 -0
  124. package/dist/tools/base-tool.d.ts +11 -0
  125. package/dist/tools/base-tool.d.ts.map +1 -0
  126. package/dist/tools/base-tool.js +2 -0
  127. package/dist/tools/base-tool.js.map +1 -0
  128. package/dist/tools/execute-lua-tool.d.ts +17 -0
  129. package/dist/tools/execute-lua-tool.d.ts.map +1 -0
  130. package/dist/tools/execute-lua-tool.js +111 -0
  131. package/dist/tools/execute-lua-tool.js.map +1 -0
  132. package/dist/tools/inspect-tool-response-tool.d.ts +17 -0
  133. package/dist/tools/inspect-tool-response-tool.d.ts.map +1 -0
  134. package/dist/tools/inspect-tool-response-tool.js +58 -0
  135. package/dist/tools/inspect-tool-response-tool.js.map +1 -0
  136. package/dist/tools/list-server-tools-tool.d.ts +15 -0
  137. package/dist/tools/list-server-tools-tool.d.ts.map +1 -0
  138. package/dist/tools/list-server-tools-tool.js +44 -0
  139. package/dist/tools/list-server-tools-tool.js.map +1 -0
  140. package/dist/tools/list-servers-tool.d.ts +12 -0
  141. package/dist/tools/list-servers-tool.d.ts.map +1 -0
  142. package/dist/tools/list-servers-tool.js +39 -0
  143. package/dist/tools/list-servers-tool.js.map +1 -0
  144. package/dist/tools/summary-stats-tool.d.ts +17 -0
  145. package/dist/tools/summary-stats-tool.d.ts.map +1 -0
  146. package/dist/tools/summary-stats-tool.js +91 -0
  147. package/dist/tools/summary-stats-tool.js.map +1 -0
  148. package/dist/tools/tool-details-tool.d.ts +16 -0
  149. package/dist/tools/tool-details-tool.d.ts.map +1 -0
  150. package/dist/tools/tool-details-tool.js +45 -0
  151. package/dist/tools/tool-details-tool.js.map +1 -0
  152. package/dist/tools/tool-registry.d.ts +13 -0
  153. package/dist/tools/tool-registry.d.ts.map +1 -0
  154. package/dist/tools/tool-registry.js +24 -0
  155. package/dist/tools/tool-registry.js.map +1 -0
  156. package/dist/types/index.d.ts +20 -0
  157. package/dist/types/index.d.ts.map +1 -0
  158. package/dist/types/index.js +20 -0
  159. package/dist/types/index.js.map +1 -0
  160. package/dist/types/interfaces.d.ts +118 -0
  161. package/dist/types/interfaces.d.ts.map +1 -0
  162. package/dist/types/interfaces.js +2 -0
  163. package/dist/types/interfaces.js.map +1 -0
  164. package/dist/utils/cli-args.d.ts +6 -0
  165. package/dist/utils/cli-args.d.ts.map +1 -0
  166. package/dist/utils/cli-args.js +7 -0
  167. package/dist/utils/cli-args.js.map +1 -0
  168. package/dist/utils/config-loader.d.ts +4 -0
  169. package/dist/utils/config-loader.d.ts.map +1 -0
  170. package/dist/utils/config-loader.js +82 -0
  171. package/dist/utils/config-loader.js.map +1 -0
  172. package/dist/utils/config-paths.d.ts +10 -0
  173. package/dist/utils/config-paths.d.ts.map +1 -0
  174. package/dist/utils/config-paths.js +34 -0
  175. package/dist/utils/config-paths.js.map +1 -0
  176. package/dist/utils/logger.d.ts +9 -0
  177. package/dist/utils/logger.d.ts.map +1 -0
  178. package/dist/utils/logger.js +46 -0
  179. package/dist/utils/logger.js.map +1 -0
  180. package/dist/utils/logger.test-helper.d.ts +2 -0
  181. package/dist/utils/logger.test-helper.d.ts.map +1 -0
  182. package/dist/utils/logger.test-helper.js +9 -0
  183. package/dist/utils/logger.test-helper.js.map +1 -0
  184. package/dist/utils/lua-identifier.d.ts +2 -0
  185. package/dist/utils/lua-identifier.d.ts.map +1 -0
  186. package/dist/utils/lua-identifier.js +37 -0
  187. package/dist/utils/lua-identifier.js.map +1 -0
  188. package/dist/utils/prompt-name.d.ts +8 -0
  189. package/dist/utils/prompt-name.d.ts.map +1 -0
  190. package/dist/utils/prompt-name.js +25 -0
  191. package/dist/utils/prompt-name.js.map +1 -0
  192. package/dist/utils/resource-uri.d.ts +10 -0
  193. package/dist/utils/resource-uri.d.ts.map +1 -0
  194. package/dist/utils/resource-uri.js +101 -0
  195. package/dist/utils/resource-uri.js.map +1 -0
  196. package/dist/utils/response-size-validator.d.ts +3 -0
  197. package/dist/utils/response-size-validator.d.ts.map +1 -0
  198. package/dist/utils/response-size-validator.js +39 -0
  199. package/dist/utils/response-size-validator.js.map +1 -0
  200. package/dist/utils/schema-formatter.d.ts +3 -0
  201. package/dist/utils/schema-formatter.d.ts.map +1 -0
  202. package/dist/utils/schema-formatter.js +40 -0
  203. package/dist/utils/schema-formatter.js.map +1 -0
  204. package/package.json +67 -0
@@ -0,0 +1,14 @@
1
+ import type { ServerConfig } from "../../types/interfaces.js";
2
+ export declare function generateTestConfig(config: ServerConfig): {
3
+ configPath: string;
4
+ cleanup: () => void;
5
+ };
6
+ export declare function generateHttpTestConfig(overrides?: Partial<ServerConfig>): {
7
+ configPath: string;
8
+ cleanup: () => void;
9
+ };
10
+ export declare function generateStdioTestConfig(overrides?: Partial<ServerConfig>): {
11
+ configPath: string;
12
+ cleanup: () => void;
13
+ };
14
+ //# sourceMappingURL=test-config-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-config-generator.d.ts","sourceRoot":"","sources":["../../../src/e2e/helpers/test-config-generator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAS9D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAmBA;AAKD,wBAAgB,sBAAsB,CAAC,SAAS,GAAE,OAAO,CAAC,YAAY,CAAM;;;EAS3E;AAKD,wBAAgB,uBAAuB,CAAC,SAAS,GAAE,OAAO,CAAC,YAAY,CAAM;;;EAO5E"}
@@ -0,0 +1,39 @@
1
+ import { writeFileSync, unlinkSync, mkdtempSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { tmpdir } from "node:os";
4
+ export function generateTestConfig(config) {
5
+ const tempDir = mkdtempSync(join(tmpdir(), "mcp-test-"));
6
+ const configPath = join(tempDir, "config.json");
7
+ writeFileSync(configPath, JSON.stringify(config, null, 2), "utf-8");
8
+ return {
9
+ configPath,
10
+ cleanup: () => {
11
+ try {
12
+ unlinkSync(configPath);
13
+ // Note: We don't remove the directory itself to avoid issues if other files exist
14
+ }
15
+ catch {
16
+ // Ignore cleanup errors
17
+ }
18
+ },
19
+ };
20
+ }
21
+ export function generateHttpTestConfig(overrides = {}) {
22
+ const config = {
23
+ transport: "http",
24
+ port: 3000,
25
+ host: "localhost",
26
+ mcpClients: {},
27
+ ...overrides,
28
+ };
29
+ return generateTestConfig(config);
30
+ }
31
+ export function generateStdioTestConfig(overrides = {}) {
32
+ const config = {
33
+ transport: "stdio",
34
+ mcpClients: {},
35
+ ...overrides,
36
+ };
37
+ return generateTestConfig(config);
38
+ }
39
+ //# sourceMappingURL=test-config-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-config-generator.js","sourceRoot":"","sources":["../../../src/e2e/helpers/test-config-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAUjC,MAAM,UAAU,kBAAkB,CAAC,MAAoB,EAGrD;IAEA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAGhD,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAEpE,OAAO;QACL,UAAU;QACV,OAAO,EAAE,GAAG,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,UAAU,CAAC,UAAU,CAAC,CAAC;gBACvB,kFAAkF;YACpF,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QAAA,CACF;KACF,CAAC;AAAA,CACH;AAKD,MAAM,UAAU,sBAAsB,CAAC,SAAS,GAA0B,EAAE,EAAE;IAC5E,MAAM,MAAM,GAAiB;QAC3B,SAAS,EAAE,MAAM;QACjB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,EAAE;QACd,GAAG,SAAS;KACb,CAAC;IACF,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAAA,CACnC;AAKD,MAAM,UAAU,uBAAuB,CAAC,SAAS,GAA0B,EAAE,EAAE;IAC7E,MAAM,MAAM,GAAiB;QAC3B,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,EAAE;QACd,GAAG,SAAS;KACb,CAAC;IACF,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAAA,CACnC"}
@@ -0,0 +1,10 @@
1
+ type ToyServerType = "calculator" | "data" | "sampling" | "elicitation";
2
+ export declare class ToyServerManager {
3
+ private servers;
4
+ startHttp(serverType: ToyServerType, port: number): Promise<string>;
5
+ stopAll(): Promise<void>;
6
+ stop(key: string): Promise<void>;
7
+ count(): number;
8
+ }
9
+ export {};
10
+ //# sourceMappingURL=toy-server-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toy-server-manager.d.ts","sourceRoot":"","sources":["../../../src/e2e/helpers/toy-server-manager.ts"],"names":[],"mappings":"AAOA,KAAK,aAAa,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;AAWxE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAA6C;IAStD,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4CxE;IAKK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAO7B;IAKK,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrC;IAKD,KAAK,IAAI,MAAM,CAEd;CACF"}
@@ -0,0 +1,58 @@
1
+ import { startHttpCalculatorServer, startHttpDataServer, startHttpSamplingServer, startHttpElicitationServer, } from "../fixtures/toy-servers/index.js";
2
+ export class ToyServerManager {
3
+ servers = new Map();
4
+ async startHttp(serverType, port) {
5
+ const key = `${serverType}-${port}`;
6
+ if (this.servers.has(key)) {
7
+ throw new Error(`Server ${key} is already running`);
8
+ }
9
+ let closeFunc;
10
+ switch (serverType) {
11
+ case "calculator": {
12
+ const server = await startHttpCalculatorServer(port);
13
+ closeFunc = server.close;
14
+ break;
15
+ }
16
+ case "data": {
17
+ const server = await startHttpDataServer(port);
18
+ closeFunc = server.close;
19
+ break;
20
+ }
21
+ case "sampling": {
22
+ const server = await startHttpSamplingServer(port);
23
+ closeFunc = server.close;
24
+ break;
25
+ }
26
+ case "elicitation": {
27
+ const server = await startHttpElicitationServer(port);
28
+ closeFunc = server.close;
29
+ break;
30
+ }
31
+ default:
32
+ throw new Error(`Unknown server type: ${serverType}`);
33
+ }
34
+ this.servers.set(key, {
35
+ type: serverType,
36
+ port,
37
+ close: closeFunc,
38
+ });
39
+ await new Promise((resolve) => setTimeout(resolve, 100));
40
+ return key;
41
+ }
42
+ async stopAll() {
43
+ const closePromises = Array.from(this.servers.values()).map((server) => server.close());
44
+ await Promise.all(closePromises);
45
+ this.servers.clear();
46
+ }
47
+ async stop(key) {
48
+ const server = this.servers.get(key);
49
+ if (server) {
50
+ await server.close();
51
+ this.servers.delete(key);
52
+ }
53
+ }
54
+ count() {
55
+ return this.servers.size;
56
+ }
57
+ }
58
+ //# sourceMappingURL=toy-server-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toy-server-manager.js","sourceRoot":"","sources":["../../../src/e2e/helpers/toy-server-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,kCAAkC,CAAC;AAa1C,MAAM,OAAO,gBAAgB;IACnB,OAAO,GAAmC,IAAI,GAAG,EAAE,CAAC;IAS5D,KAAK,CAAC,SAAS,CAAC,UAAyB,EAAE,IAAY,EAAmB;QACxE,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,IAAI,EAAE,CAAC;QAEpC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,qBAAqB,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,SAA8B,CAAC;QAEnC,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,YAAY,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBACrD,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;gBACzB,MAAM;YACR,CAAC;YACD,KAAK,MAAM,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC/C,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;gBACzB,MAAM;YACR,CAAC;YACD,KAAK,UAAU,EAAE,CAAC;gBAChB,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBACnD,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;gBACzB,MAAM;YACR,CAAC;YACD,KAAK,aAAa,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC;gBACtD,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;gBACzB,MAAM;YACR,CAAC;YACD;gBACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YACpB,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAGH,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAEzD,OAAO,GAAG,CAAC;IAAA,CACZ;IAKD,KAAK,CAAC,OAAO,GAAkB;QAC7B,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACrE,MAAM,CAAC,KAAK,EAAE,CACf,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAAA,CACtB;IAKD,KAAK,CAAC,IAAI,CAAC,GAAW,EAAiB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IAAA,CACF;IAKD,KAAK,GAAW;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAAA,CAC1B;CACF"}
@@ -0,0 +1,8 @@
1
+ import type { IMCPClientManager, ILogger, IShutdownHandler } from "../types/interfaces.js";
2
+ export declare class ShutdownHandler implements IShutdownHandler {
3
+ private clientPool;
4
+ private logger;
5
+ constructor(clientPool: IMCPClientManager, logger: ILogger);
6
+ shutdown(): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=shutdown-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown-handler.d.ts","sourceRoot":"","sources":["../../src/handlers/shutdown-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iBAAiB,EACjB,OAAO,EACP,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAmBhC,qBACa,eAAgB,YAAW,gBAAgB;IAEnB,OAAO,CAAC,UAAU;IAC5B,OAAO,CAAC,MAAM;IAFvC,YAC2C,UAAU,EAAE,iBAAiB,EACvC,MAAM,EAAE,OAAO,EAC5C;IAQE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAS9B;CACF"}
@@ -0,0 +1,37 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { injectable } from "inversify";
14
+ import { $inject } from "../container/decorators.js";
15
+ import { TYPES } from "../types/index.js";
16
+ let ShutdownHandler = class ShutdownHandler {
17
+ clientPool;
18
+ logger;
19
+ constructor(clientPool, logger) {
20
+ this.clientPool = clientPool;
21
+ this.logger = logger;
22
+ }
23
+ async shutdown() {
24
+ this.logger.info("Shutting down...");
25
+ await this.clientPool.close();
26
+ this.logger.info("Shutdown complete");
27
+ process.exit(0);
28
+ }
29
+ };
30
+ ShutdownHandler = __decorate([
31
+ injectable(),
32
+ __param(0, $inject(TYPES.MCPClientManager)),
33
+ __param(1, $inject(TYPES.Logger)),
34
+ __metadata("design:paramtypes", [Object, Object])
35
+ ], ShutdownHandler);
36
+ export { ShutdownHandler };
37
+ //# sourceMappingURL=shutdown-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown-handler.js","sourceRoot":"","sources":["../../src/handlers/shutdown-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAyBnC,IAAM,eAAe,GAArB,MAAM,eAAe;IAEiB,UAAU;IACpB,MAAM;IAFvC,YAC2C,UAA6B,EACvC,MAAe,EAC9C;0BAFyC,UAAU;sBACpB,MAAM;IACpC,CAAC;IAQJ,KAAK,CAAC,QAAQ,GAAkB;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAGrC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAE9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAA,CACjB;CACF,CAAA;AAtBY,eAAe;IAD3B,UAAU,EAAE;IAGR,WAAA,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAC/B,WAAA,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;;GAHb,eAAe,CAsB3B"}
@@ -0,0 +1,2 @@
1
+ import "reflect-metadata";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,235 @@
1
+ import "reflect-metadata";
2
+ import { createContainer } from "./container/inversify.config.js";
3
+ import { TYPES } from "./types/index.js";
4
+ import { serveHttp } from "@karashiiro/mcp/http";
5
+ import { serveStdio } from "@karashiiro/mcp/stdio";
6
+ import { loadConfig, mergeEnvConfig } from "./utils/config-loader.js";
7
+ import { MCPGatewayServer } from "./mcp/gateway-server.js";
8
+ import { CreateMessageRequestSchema, ElicitRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
9
+ import { parseArgs } from "./utils/cli-args.js";
10
+ import { getConfigPaths, getPlatformConfigDir } from "./utils/config-paths.js";
11
+ function registerProxyHandlers(sessionId, clientManager, gatewayServer, logger, capabilities) {
12
+ const clients = clientManager.getClientsBySession(sessionId);
13
+ for (const [serverName, clientSession] of clients) {
14
+ if (capabilities.sampling) {
15
+ clientSession.setRequestHandler(CreateMessageRequestSchema, async (request) => {
16
+ logger.debug(`Received sampling request from upstream server '${serverName}', forwarding to downstream`);
17
+ try {
18
+ const result = await gatewayServer.forwardSamplingRequest(request.params);
19
+ return result;
20
+ }
21
+ catch (error) {
22
+ logger.error(`Failed to forward sampling request from '${serverName}'`, error instanceof Error ? error : new Error(String(error)));
23
+ throw error;
24
+ }
25
+ });
26
+ logger.debug(`Registered sampling request handler for upstream server '${serverName}'`);
27
+ }
28
+ if (capabilities.elicitation) {
29
+ clientSession.setRequestHandler(ElicitRequestSchema, async (request) => {
30
+ logger.debug(`Received elicitation request from upstream server '${serverName}', forwarding to downstream`);
31
+ try {
32
+ const result = await gatewayServer.forwardElicitationRequest(request.params);
33
+ return result;
34
+ }
35
+ catch (error) {
36
+ logger.error(`Failed to forward elicitation request from '${serverName}'`, error instanceof Error ? error : new Error(String(error)));
37
+ throw error;
38
+ }
39
+ });
40
+ logger.debug(`Registered elicitation request handler for upstream server '${serverName}'`);
41
+ }
42
+ }
43
+ const clientCount = clients.size;
44
+ if (capabilities.sampling || capabilities.elicitation) {
45
+ logger.info(`Registered proxy handlers on ${clientCount} upstream client(s): ` +
46
+ `sampling=${!!capabilities.sampling}, elicitation=${!!capabilities.elicitation}`);
47
+ }
48
+ }
49
+ async function initializeClientsForSession(sessionId, config, clientManager, clientCapabilities) {
50
+ const connectionPromises = Object.entries(config.mcpClients).map(async ([name, clientConfig]) => {
51
+ if (clientConfig.type === "http") {
52
+ return clientManager.addHttpClient(name, clientConfig.url, sessionId, clientConfig.headers, clientConfig.allowedTools, clientCapabilities);
53
+ }
54
+ else if (clientConfig.type === "stdio") {
55
+ return clientManager.addStdioClient(name, clientConfig.command, sessionId, clientConfig.args, clientConfig.env, clientConfig.allowedTools, clientCapabilities);
56
+ }
57
+ else {
58
+ const _exhaustiveCheck = clientConfig;
59
+ return {
60
+ name,
61
+ success: false,
62
+ error: `Unknown client type: ${_exhaustiveCheck.type}`,
63
+ };
64
+ }
65
+ });
66
+ const results = await Promise.allSettled(connectionPromises);
67
+ const successful = [];
68
+ const failed = [];
69
+ for (const result of results) {
70
+ if (result.status === "fulfilled") {
71
+ if (result.value.success) {
72
+ successful.push(result.value.name);
73
+ }
74
+ else {
75
+ failed.push({
76
+ name: result.value.name,
77
+ error: result.value.error || "Unknown error",
78
+ });
79
+ }
80
+ }
81
+ else {
82
+ const errorMessage = result.reason instanceof Error
83
+ ? result.reason.message
84
+ : String(result.reason ?? "Unknown rejection");
85
+ failed.push({
86
+ name: "unknown",
87
+ error: errorMessage,
88
+ });
89
+ }
90
+ }
91
+ return { successful, failed };
92
+ }
93
+ async function startHttpMode(container, config) {
94
+ const logger = container.get(TYPES.Logger);
95
+ if (config.port === undefined || config.host === undefined) {
96
+ throw new Error("Port and host are required for HTTP mode");
97
+ }
98
+ const clientManager = container.get(TYPES.MCPClientManager);
99
+ const toolRegistry = container.get(TYPES.ToolRegistry);
100
+ const resourceAggregation = container.get(TYPES.ResourceAggregationService);
101
+ const promptAggregation = container.get(TYPES.PromptAggregationService);
102
+ const shutdownHandler = container.get(TYPES.ShutdownHandler);
103
+ const capabilityStore = container.get(TYPES.CapabilityStore);
104
+ const serverInfoPreloader = container.get(TYPES.ServerInfoPreloader);
105
+ logger.info("Preloading upstream server info...");
106
+ const preloadedServers = await serverInfoPreloader.preloadServerInfo(config);
107
+ const aggregatedInstructions = serverInfoPreloader.buildAggregatedInstructions(preloadedServers);
108
+ logger.info(`Preloaded info from ${preloadedServers.length} server(s) for gateway instructions`);
109
+ const handle = await serveHttp(async (sessionId) => {
110
+ logger.info(`Creating gateway server for session ${sessionId}`);
111
+ const gatewayServer = new MCPGatewayServer(toolRegistry, clientManager, logger, resourceAggregation, promptAggregation, aggregatedInstructions);
112
+ gatewayServer.setOnDownstreamInitialized(async (capabilities) => {
113
+ logger.info(`Session ${sessionId}: Downstream client initialized with capabilities: ` +
114
+ `sampling=${!!capabilities.sampling}, elicitation=${!!capabilities.elicitation}`);
115
+ capabilityStore.setCapabilities(sessionId, capabilities);
116
+ const initResult = await initializeClientsForSession(sessionId, config, clientManager, capabilities);
117
+ if (initResult.failed.length > 0) {
118
+ logger.warn(`Session ${sessionId}: ${initResult.failed.length} server(s) failed to connect: ` +
119
+ initResult.failed.map((f) => `${f.name} (${f.error})`).join(", "));
120
+ }
121
+ if (initResult.successful.length === 0 &&
122
+ Object.keys(config.mcpClients).length > 0) {
123
+ logger.warn(`Session ${sessionId}: All configured servers failed to connect.`);
124
+ }
125
+ logger.info(`Session ${sessionId}: ${initResult.successful.length} server(s) connected successfully`);
126
+ registerProxyHandlers(sessionId, clientManager, gatewayServer, logger, capabilities);
127
+ });
128
+ return gatewayServer.getServer();
129
+ }, {
130
+ port: config.port,
131
+ host: config.host,
132
+ sessions: {
133
+ onSessionClosed: async (sessionId) => {
134
+ logger.debug(`Session ${sessionId} closed, cleaning up...`);
135
+ try {
136
+ await clientManager.closeSession(sessionId);
137
+ capabilityStore.deleteCapabilities(sessionId);
138
+ }
139
+ catch (error) {
140
+ logger.error(`Failed to close session ${sessionId}`, error instanceof Error ? error : new Error(String(error)));
141
+ }
142
+ },
143
+ },
144
+ });
145
+ logger.info(`MCP Lua Gateway listening on http://${config.host}:${config.port}`);
146
+ process.on("SIGINT", async () => {
147
+ await handle.close();
148
+ await shutdownHandler.shutdown();
149
+ });
150
+ }
151
+ async function startStdioMode(container, config) {
152
+ const logger = container.get(TYPES.Logger);
153
+ const clientManager = container.get(TYPES.MCPClientManager);
154
+ const toolRegistry = container.get(TYPES.ToolRegistry);
155
+ const resourceAggregation = container.get(TYPES.ResourceAggregationService);
156
+ const promptAggregation = container.get(TYPES.PromptAggregationService);
157
+ const capabilityStore = container.get(TYPES.CapabilityStore);
158
+ const serverInfoPreloader = container.get(TYPES.ServerInfoPreloader);
159
+ const SESSION_ID = "default";
160
+ logger.info("Preloading upstream server info...");
161
+ const preloadedServers = await serverInfoPreloader.preloadServerInfo(config);
162
+ const aggregatedInstructions = serverInfoPreloader.buildAggregatedInstructions(preloadedServers);
163
+ logger.info(`Preloaded info from ${preloadedServers.length} server(s) for gateway instructions`);
164
+ const handle = await serveStdio(() => {
165
+ const gatewayServer = new MCPGatewayServer(toolRegistry, clientManager, logger, resourceAggregation, promptAggregation, aggregatedInstructions);
166
+ gatewayServer.setOnDownstreamInitialized(async (capabilities) => {
167
+ logger.info(`Downstream client initialized with capabilities: ` +
168
+ `sampling=${!!capabilities.sampling}, elicitation=${!!capabilities.elicitation}`);
169
+ capabilityStore.setCapabilities(SESSION_ID, capabilities);
170
+ const initResult = await initializeClientsForSession(SESSION_ID, config, clientManager, capabilities);
171
+ if (initResult.failed.length > 0) {
172
+ logger.warn(`${initResult.failed.length} server(s) failed to connect: ` +
173
+ initResult.failed.map((f) => `${f.name} (${f.error})`).join(", "));
174
+ }
175
+ if (initResult.successful.length === 0 &&
176
+ Object.keys(config.mcpClients).length > 0) {
177
+ logger.warn(`All configured servers failed to connect. Gateway running but no servers available.`);
178
+ }
179
+ logger.info(`${initResult.successful.length} server(s) connected successfully`);
180
+ registerProxyHandlers(SESSION_ID, clientManager, gatewayServer, logger, capabilities);
181
+ });
182
+ return gatewayServer.getServer();
183
+ });
184
+ logger.info("MCP Lua Gateway running in stdio mode");
185
+ process.on("SIGINT", async () => {
186
+ await handle.close();
187
+ await clientManager.close();
188
+ logger.info("Shutdown complete");
189
+ process.exit(0);
190
+ });
191
+ }
192
+ function printHelp() {
193
+ console.log("MCP Lua Gateway - Proxy for multiple MCP servers with Lua scripting\n");
194
+ console.log("Usage: my-cool-proxy [options]\n");
195
+ console.log("Options:");
196
+ console.log(" -c, --config-path Show config file search paths and exit");
197
+ console.log(" -h, --help Show this help message and exit\n");
198
+ console.log("Environment variables:");
199
+ console.log(" CONFIG_PATH Override config file location");
200
+ console.log(" PORT Override server port (HTTP mode)");
201
+ console.log(" HOST Override server host (HTTP mode)\n");
202
+ console.log("See CONFIG.md for full configuration reference.");
203
+ }
204
+ function printConfigPaths() {
205
+ console.log("Config file search order:\n");
206
+ const paths = getConfigPaths();
207
+ for (const p of paths) {
208
+ const status = p.exists ? "[EXISTS]" : "[NOT FOUND]";
209
+ const label = p.source === "env" ? "ENV: CONFIG_PATH" : "Platform config";
210
+ console.log(` ${status} ${label}`);
211
+ console.log(` ${p.path}\n`);
212
+ }
213
+ console.log(`Platform config directory: ${getPlatformConfigDir()}`);
214
+ }
215
+ async function main() {
216
+ const args = parseArgs(process.argv.slice(2));
217
+ if (args.help) {
218
+ printHelp();
219
+ process.exit(0);
220
+ }
221
+ if (args.showConfigPath) {
222
+ printConfigPaths();
223
+ process.exit(0);
224
+ }
225
+ const config = mergeEnvConfig(loadConfig());
226
+ const container = createContainer(config);
227
+ if (config.transport === "stdio") {
228
+ await startStdioMode(container, config);
229
+ }
230
+ else {
231
+ await startHttpMode(container, config);
232
+ }
233
+ }
234
+ main().catch(console.error);
235
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=runtime-infinite-loop-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-infinite-loop-worker.d.ts","sourceRoot":"","sources":["../../src/lua/runtime-infinite-loop-worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import { parentPort } from "node:worker_threads";
2
+ import { WasmoonRuntime } from "./runtime.js";
3
+ const logger = {
4
+ info: (msg) => console.log(`[Worker] ${msg}`),
5
+ error: (msg, err) => console.error(`[Worker] ${msg}`, err || ""),
6
+ debug: () => {
7
+ },
8
+ };
9
+ async function runInfiniteLoopTest() {
10
+ const runtime = new WasmoonRuntime(logger);
11
+ const infiniteLoopScript = `
12
+ while true do
13
+ -- This should hang forever
14
+ end
15
+ `;
16
+ try {
17
+ await runtime.executeScript(infiniteLoopScript, new Map());
18
+ parentPort?.postMessage({ type: "completed" });
19
+ }
20
+ catch (error) {
21
+ parentPort?.postMessage({
22
+ type: "error",
23
+ message: error.message,
24
+ });
25
+ }
26
+ }
27
+ runInfiniteLoopTest().catch((error) => {
28
+ parentPort?.postMessage({
29
+ type: "error",
30
+ message: error.message,
31
+ });
32
+ });
33
+ //# sourceMappingURL=runtime-infinite-loop-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-infinite-loop-worker.js","sourceRoot":"","sources":["../../src/lua/runtime-infinite-loop-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,EAAE,CAAC;IACrD,KAAK,EAAE,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAClC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC;IAC7C,KAAK,EAAE,GAAG,EAAE,CAAC;IAAC,CAEb;CACF,CAAC;AAEF,KAAK,UAAU,mBAAmB,GAAG;IACnC,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;IAE3C,MAAM,kBAAkB,GAAG;;;;GAI1B,CAAC;IAEF,IAAI,CAAC;QAEH,MAAM,OAAO,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3D,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,EAAE,WAAW,CAAC;YACtB,IAAI,EAAE,OAAO;YACb,OAAO,EAAG,KAAe,CAAC,OAAO;SAClC,CAAC,CAAC;IACL,CAAC;AAAA,CACF;AAGD,mBAAmB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;IACrC,UAAU,EAAE,WAAW,CAAC;QACtB,IAAI,EAAE,OAAO;QACb,OAAO,EAAG,KAAe,CAAC,OAAO;KAClC,CAAC,CAAC;AAAA,CACJ,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ILuaRuntime, ILogger } from "../types/interfaces.js";
2
+ import type { MCPClientSession } from "../mcp/client-session.js";
3
+ export declare class WasmoonRuntime implements ILuaRuntime {
4
+ private logger;
5
+ private factory;
6
+ constructor(logger: ILogger);
7
+ executeScript(script: string, mcpServers: Map<string, MCPClientSession>): Promise<unknown>;
8
+ private createEngine;
9
+ private injectMCPServers;
10
+ }
11
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/lua/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAQnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAQjE,qBACa,cAAe,YAAW,WAAW;IAGb,OAAO,CAAC,MAAM;IAFjD,OAAO,CAAC,OAAO,CAAa;IAE5B,YAA2C,MAAM,EAAE,OAAO,EAEzD;IAEK,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,GACxC,OAAO,CAAC,OAAO,CAAC,CAqClB;YAEa,YAAY;YA4BZ,gBAAgB;CAsG/B"}