mcp-garry-codes 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 (177) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +133 -0
  3. package/dist/config/env.d.ts +4 -0
  4. package/dist/config/env.d.ts.map +1 -0
  5. package/dist/config/env.js +27 -0
  6. package/dist/config/env.js.map +1 -0
  7. package/dist/config/schema.d.ts +28 -0
  8. package/dist/config/schema.d.ts.map +1 -0
  9. package/dist/config/schema.js +12 -0
  10. package/dist/config/schema.js.map +1 -0
  11. package/dist/contracts/common.d.ts +53 -0
  12. package/dist/contracts/common.d.ts.map +1 -0
  13. package/dist/contracts/common.js +30 -0
  14. package/dist/contracts/common.js.map +1 -0
  15. package/dist/contracts/linter_contracts.d.ts +79 -0
  16. package/dist/contracts/linter_contracts.d.ts.map +1 -0
  17. package/dist/contracts/linter_contracts.js +16 -0
  18. package/dist/contracts/linter_contracts.js.map +1 -0
  19. package/dist/contracts/scaffold_contracts.d.ts +84 -0
  20. package/dist/contracts/scaffold_contracts.d.ts.map +1 -0
  21. package/dist/contracts/scaffold_contracts.js +27 -0
  22. package/dist/contracts/scaffold_contracts.js.map +1 -0
  23. package/dist/contracts/security_contracts.d.ts +37 -0
  24. package/dist/contracts/security_contracts.d.ts.map +1 -0
  25. package/dist/contracts/security_contracts.js +6 -0
  26. package/dist/contracts/security_contracts.js.map +1 -0
  27. package/dist/contracts/test_contracts.d.ts +42 -0
  28. package/dist/contracts/test_contracts.d.ts.map +1 -0
  29. package/dist/contracts/test_contracts.js +10 -0
  30. package/dist/contracts/test_contracts.js.map +1 -0
  31. package/dist/contracts/wiki_contracts.d.ts +96 -0
  32. package/dist/contracts/wiki_contracts.d.ts.map +1 -0
  33. package/dist/contracts/wiki_contracts.js +17 -0
  34. package/dist/contracts/wiki_contracts.js.map +1 -0
  35. package/dist/core/cache.d.ts +9 -0
  36. package/dist/core/cache.d.ts.map +1 -0
  37. package/dist/core/cache.js +56 -0
  38. package/dist/core/cache.js.map +1 -0
  39. package/dist/core/errors.d.ts +37 -0
  40. package/dist/core/errors.d.ts.map +1 -0
  41. package/dist/core/errors.js +52 -0
  42. package/dist/core/errors.js.map +1 -0
  43. package/dist/core/file_utils.d.ts +13 -0
  44. package/dist/core/file_utils.d.ts.map +1 -0
  45. package/dist/core/file_utils.js +90 -0
  46. package/dist/core/file_utils.js.map +1 -0
  47. package/dist/core/logger.d.ts +18 -0
  48. package/dist/core/logger.d.ts.map +1 -0
  49. package/dist/core/logger.js +46 -0
  50. package/dist/core/logger.js.map +1 -0
  51. package/dist/core/process_runner.d.ts +15 -0
  52. package/dist/core/process_runner.d.ts.map +1 -0
  53. package/dist/core/process_runner.js +64 -0
  54. package/dist/core/process_runner.js.map +1 -0
  55. package/dist/domain/glua/ast.d.ts +12 -0
  56. package/dist/domain/glua/ast.d.ts.map +1 -0
  57. package/dist/domain/glua/ast.js +176 -0
  58. package/dist/domain/glua/ast.js.map +1 -0
  59. package/dist/domain/glua/lexer.d.ts +42 -0
  60. package/dist/domain/glua/lexer.d.ts.map +1 -0
  61. package/dist/domain/glua/lexer.js +232 -0
  62. package/dist/domain/glua/lexer.js.map +1 -0
  63. package/dist/domain/networking/net_auditor.d.ts +5 -0
  64. package/dist/domain/networking/net_auditor.d.ts.map +1 -0
  65. package/dist/domain/networking/net_auditor.js +188 -0
  66. package/dist/domain/networking/net_auditor.js.map +1 -0
  67. package/dist/domain/packaging/validator.d.ts +5 -0
  68. package/dist/domain/packaging/validator.d.ts.map +1 -0
  69. package/dist/domain/packaging/validator.js +121 -0
  70. package/dist/domain/packaging/validator.js.map +1 -0
  71. package/dist/domain/performance/hot_path_analyzer.d.ts +5 -0
  72. package/dist/domain/performance/hot_path_analyzer.d.ts.map +1 -0
  73. package/dist/domain/performance/hot_path_analyzer.js +127 -0
  74. package/dist/domain/performance/hot_path_analyzer.js.map +1 -0
  75. package/dist/domain/scaffolding/templates.d.ts +5 -0
  76. package/dist/domain/scaffolding/templates.d.ts.map +1 -0
  77. package/dist/domain/scaffolding/templates.js +219 -0
  78. package/dist/domain/scaffolding/templates.js.map +1 -0
  79. package/dist/domain/wiki/offline_db.d.ts +3 -0
  80. package/dist/domain/wiki/offline_db.d.ts.map +1 -0
  81. package/dist/domain/wiki/offline_db.js +534 -0
  82. package/dist/domain/wiki/offline_db.js.map +1 -0
  83. package/dist/domain/wiki/types.d.ts +29 -0
  84. package/dist/domain/wiki/types.d.ts.map +1 -0
  85. package/dist/domain/wiki/types.js +2 -0
  86. package/dist/domain/wiki/types.js.map +1 -0
  87. package/dist/index.d.ts +3 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +28 -0
  90. package/dist/index.js.map +1 -0
  91. package/dist/integrations/glualint_adapter.d.ts +6 -0
  92. package/dist/integrations/glualint_adapter.d.ts.map +1 -0
  93. package/dist/integrations/glualint_adapter.js +62 -0
  94. package/dist/integrations/glualint_adapter.js.map +1 -0
  95. package/dist/integrations/python_test_harness.d.ts +5 -0
  96. package/dist/integrations/python_test_harness.d.ts.map +1 -0
  97. package/dist/integrations/python_test_harness.js +67 -0
  98. package/dist/integrations/python_test_harness.js.map +1 -0
  99. package/dist/integrations/web_search_adapter.d.ts +6 -0
  100. package/dist/integrations/web_search_adapter.d.ts.map +1 -0
  101. package/dist/integrations/web_search_adapter.js +80 -0
  102. package/dist/integrations/web_search_adapter.js.map +1 -0
  103. package/dist/integrations/wiki_client.d.ts +13 -0
  104. package/dist/integrations/wiki_client.d.ts.map +1 -0
  105. package/dist/integrations/wiki_client.js +110 -0
  106. package/dist/integrations/wiki_client.js.map +1 -0
  107. package/dist/prompts/index.d.ts +73 -0
  108. package/dist/prompts/index.d.ts.map +1 -0
  109. package/dist/prompts/index.js +127 -0
  110. package/dist/prompts/index.js.map +1 -0
  111. package/dist/resources/realms_resources.d.ts +2 -0
  112. package/dist/resources/realms_resources.d.ts.map +1 -0
  113. package/dist/resources/realms_resources.js +30 -0
  114. package/dist/resources/realms_resources.js.map +1 -0
  115. package/dist/resources/schema_resources.d.ts +2 -0
  116. package/dist/resources/schema_resources.d.ts.map +1 -0
  117. package/dist/resources/schema_resources.js +43 -0
  118. package/dist/resources/schema_resources.js.map +1 -0
  119. package/dist/resources/wiki_resources.d.ts +3 -0
  120. package/dist/resources/wiki_resources.d.ts.map +1 -0
  121. package/dist/resources/wiki_resources.js +31 -0
  122. package/dist/resources/wiki_resources.js.map +1 -0
  123. package/dist/security/path_guard.d.ts +8 -0
  124. package/dist/security/path_guard.d.ts.map +1 -0
  125. package/dist/security/path_guard.js +37 -0
  126. package/dist/security/path_guard.js.map +1 -0
  127. package/dist/security/process_guard.d.ts +8 -0
  128. package/dist/security/process_guard.d.ts.map +1 -0
  129. package/dist/security/process_guard.js +26 -0
  130. package/dist/security/process_guard.js.map +1 -0
  131. package/dist/security/redaction.d.ts +6 -0
  132. package/dist/security/redaction.d.ts.map +1 -0
  133. package/dist/security/redaction.js +49 -0
  134. package/dist/security/redaction.js.map +1 -0
  135. package/dist/server.d.ts +3 -0
  136. package/dist/server.d.ts.map +1 -0
  137. package/dist/server.js +364 -0
  138. package/dist/server.js.map +1 -0
  139. package/dist/tools/analyze_performance.d.ts +4 -0
  140. package/dist/tools/analyze_performance.d.ts.map +1 -0
  141. package/dist/tools/analyze_performance.js +20 -0
  142. package/dist/tools/analyze_performance.js.map +1 -0
  143. package/dist/tools/audit_net_security.d.ts +4 -0
  144. package/dist/tools/audit_net_security.d.ts.map +1 -0
  145. package/dist/tools/audit_net_security.js +19 -0
  146. package/dist/tools/audit_net_security.js.map +1 -0
  147. package/dist/tools/get_gmod_symbol.d.ts +4 -0
  148. package/dist/tools/get_gmod_symbol.d.ts.map +1 -0
  149. package/dist/tools/get_gmod_symbol.js +30 -0
  150. package/dist/tools/get_gmod_symbol.js.map +1 -0
  151. package/dist/tools/lint_glua.d.ts +4 -0
  152. package/dist/tools/lint_glua.d.ts.map +1 -0
  153. package/dist/tools/lint_glua.js +24 -0
  154. package/dist/tools/lint_glua.js.map +1 -0
  155. package/dist/tools/package_and_validate.d.ts +4 -0
  156. package/dist/tools/package_and_validate.d.ts.map +1 -0
  157. package/dist/tools/package_and_validate.js +23 -0
  158. package/dist/tools/package_and_validate.js.map +1 -0
  159. package/dist/tools/run_glua_test.d.ts +4 -0
  160. package/dist/tools/run_glua_test.d.ts.map +1 -0
  161. package/dist/tools/run_glua_test.js +15 -0
  162. package/dist/tools/run_glua_test.js.map +1 -0
  163. package/dist/tools/scaffold_gmod_component.d.ts +4 -0
  164. package/dist/tools/scaffold_gmod_component.d.ts.map +1 -0
  165. package/dist/tools/scaffold_gmod_component.js +16 -0
  166. package/dist/tools/scaffold_gmod_component.js.map +1 -0
  167. package/dist/tools/search_gmod_wiki.d.ts +4 -0
  168. package/dist/tools/search_gmod_wiki.d.ts.map +1 -0
  169. package/dist/tools/search_gmod_wiki.js +30 -0
  170. package/dist/tools/search_gmod_wiki.js.map +1 -0
  171. package/dist/tools/web_search_glua.d.ts +4 -0
  172. package/dist/tools/web_search_glua.d.ts.map +1 -0
  173. package/dist/tools/web_search_glua.js +15 -0
  174. package/dist/tools/web_search_glua.js.map +1 -0
  175. package/package.json +58 -0
  176. package/src/test_harness/lua/glua_mock.lua +383 -0
  177. package/src/test_harness/python/gmod_tester.py +156 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { AnalyzePerformanceOutput } from "../contracts/linter_contracts.js";
2
+ import { GModToolResult } from "../contracts/common.js";
3
+ export declare function handleAnalyzePerformance(args: unknown): Promise<GModToolResult<AnalyzePerformanceOutput>>;
4
+ //# sourceMappingURL=analyze_performance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze_performance.d.ts","sourceRoot":"","sources":["../../src/tools/analyze_performance.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAyB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI/E,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC,CAkB/G"}
@@ -0,0 +1,20 @@
1
+ import { AnalyzePerformanceInputSchema } from "../contracts/linter_contracts.js";
2
+ import { createSuccessEnvelope } from "../contracts/common.js";
3
+ import { HotPathAnalyzer } from "../domain/performance/hot_path_analyzer.js";
4
+ import { FileUtils } from "../core/file_utils.js";
5
+ export async function handleAnalyzePerformance(args) {
6
+ const parsed = AnalyzePerformanceInputSchema.parse(args);
7
+ let code = parsed.code_content ?? "";
8
+ if (parsed.file_path) {
9
+ code = await FileUtils.readFile(parsed.file_path);
10
+ }
11
+ const output = HotPathAnalyzer.analyze(code);
12
+ const summary = output.issues.length === 0
13
+ ? `Performance review passed! Score: ${output.performance_score}/100. Zero GC-allocations detected in hot-path hooks.`
14
+ : `Performance review found ${output.issues.length} hot-path issues. Score: ${output.performance_score}/100.`;
15
+ return createSuccessEnvelope(summary, output, {
16
+ warnings: output.issues.map(i => `[${i.severity.toUpperCase()}] Line ${i.line} (${i.hook_name}): ${i.description}`),
17
+ nextActions: output.issues.map(i => `Pre-allocate ${i.category} on Line ${i.line}`)
18
+ });
19
+ }
20
+ //# sourceMappingURL=analyze_performance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze_performance.js","sourceRoot":"","sources":["../../src/tools/analyze_performance.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAE9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAkB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAa;IAC1D,MAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEzD,IAAI,IAAI,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;IACrC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QACxC,CAAC,CAAC,qCAAqC,MAAM,CAAC,iBAAiB,uDAAuD;QACtH,CAAC,CAAC,4BAA4B,MAAM,CAAC,MAAM,CAAC,MAAM,4BAA4B,MAAM,CAAC,iBAAiB,OAAO,CAAC;IAEhH,OAAO,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE;QAC5C,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACnH,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,QAAQ,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;KACpF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { AuditNetSecurityOutput } from "../contracts/security_contracts.js";
2
+ import { GModToolResult } from "../contracts/common.js";
3
+ export declare function handleAuditNetSecurity(args: unknown): Promise<GModToolResult<AuditNetSecurityOutput>>;
4
+ //# sourceMappingURL=audit_net_security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit_net_security.d.ts","sourceRoot":"","sources":["../../src/tools/audit_net_security.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAyB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI/E,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAiB3G"}
@@ -0,0 +1,19 @@
1
+ import { AuditNetSecurityInputSchema } from "../contracts/security_contracts.js";
2
+ import { createSuccessEnvelope } from "../contracts/common.js";
3
+ import { NetAuditor } from "../domain/networking/net_auditor.js";
4
+ import { getConfig } from "../config/env.js";
5
+ export async function handleAuditNetSecurity(args) {
6
+ const parsed = AuditNetSecurityInputSchema.parse(args);
7
+ const targetDir = parsed.addon_dir ?? getConfig().WORKSPACE_ROOT;
8
+ const output = await NetAuditor.audit(targetDir, parsed.file_paths);
9
+ const criticalCount = output.vulnerabilities.filter(v => v.severity === "critical").length;
10
+ const highCount = output.vulnerabilities.filter(v => v.severity === "high").length;
11
+ const summary = output.vulnerabilities.length === 0
12
+ ? `Net security audit completed: 0 vulnerabilities found across ${output.messages_found} messages.`
13
+ : `Net security audit detected ${output.vulnerabilities.length} potential vulnerabilities (${criticalCount} Critical, ${highCount} High).`;
14
+ return createSuccessEnvelope(summary, output, {
15
+ warnings: output.vulnerabilities.map(v => `[${v.severity.toUpperCase()}] ${v.file}:${v.line} - ${v.description}`),
16
+ nextActions: output.vulnerabilities.map(v => `Fix ${v.type} in ${v.file} (Line ${v.line})`)
17
+ });
18
+ }
19
+ //# sourceMappingURL=audit_net_security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit_net_security.js","sourceRoot":"","sources":["../../src/tools/audit_net_security.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAE5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAkB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAa;IACxD,MAAM,MAAM,GAAG,2BAA2B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,cAAc,CAAC;IAEjE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAEpE,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;IAC3F,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAEnF,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;QACjD,CAAC,CAAC,gEAAgE,MAAM,CAAC,cAAc,YAAY;QACnG,CAAC,CAAC,+BAA+B,MAAM,CAAC,eAAe,CAAC,MAAM,+BAA+B,aAAa,cAAc,SAAS,SAAS,CAAC;IAE7I,OAAO,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE;QAC5C,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACjH,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,GAAG,CAAC;KAC5F,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { GetGModSymbolOutput } from "../contracts/wiki_contracts.js";
2
+ import { GModToolResult } from "../contracts/common.js";
3
+ export declare function handleGetGModSymbol(args: unknown): Promise<GModToolResult<GetGModSymbolOutput | null>>;
4
+ //# sourceMappingURL=get_gmod_symbol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_gmod_symbol.d.ts","sourceRoot":"","sources":["../../src/tools/get_gmod_symbol.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAA8C,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAKpG,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC,CAmC5G"}
@@ -0,0 +1,30 @@
1
+ import { GetGModSymbolInputSchema } from "../contracts/wiki_contracts.js";
2
+ import { createSuccessEnvelope, createErrorEnvelope } from "../contracts/common.js";
3
+ import { WikiClient } from "../integrations/wiki_client.js";
4
+ const wikiClient = new WikiClient();
5
+ export async function handleGetGModSymbol(args) {
6
+ const parsed = GetGModSymbolInputSchema.parse(args);
7
+ const doc = await wikiClient.getSymbol(parsed.symbol);
8
+ if (!doc) {
9
+ return createErrorEnvelope(`Symbol '${parsed.symbol}' could not be found in local index or Facepunch Wiki.`, null, {
10
+ warnings: [`No documentation entries matched '${parsed.symbol}'. Check spelling or search with search_gmod_wiki.`],
11
+ nextActions: [`Use search_gmod_wiki with query: "${parsed.symbol}"`]
12
+ });
13
+ }
14
+ const output = {
15
+ symbol: doc.symbol,
16
+ realm: doc.realm,
17
+ description: doc.description,
18
+ arguments: doc.arguments,
19
+ returns: doc.returns,
20
+ examples: parsed.include_examples ? doc.examples : [],
21
+ notes: doc.notes,
22
+ warnings: doc.warnings,
23
+ wiki_url: doc.wiki_url
24
+ };
25
+ return createSuccessEnvelope(`Retrieved documentation for '${doc.symbol}' (${doc.realm.toUpperCase()} realm).`, output, {
26
+ warnings: doc.warnings,
27
+ sources: [{ label: doc.symbol, uri: doc.wiki_url }]
28
+ });
29
+ }
30
+ //# sourceMappingURL=get_gmod_symbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_gmod_symbol.js","sourceRoot":"","sources":["../../src/tools/get_gmod_symbol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAEzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAkB,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAa;IACrD,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEtD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,mBAAmB,CACxB,WAAW,MAAM,CAAC,MAAM,wDAAwD,EAChF,IAAI,EACJ;YACE,QAAQ,EAAE,CAAC,qCAAqC,MAAM,CAAC,MAAM,oDAAoD,CAAC;YAClH,WAAW,EAAE,CAAC,qCAAqC,MAAM,CAAC,MAAM,GAAG,CAAC;SACrE,CACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAwB;QAClC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACrD,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC;IAEF,OAAO,qBAAqB,CAC1B,gCAAgC,GAAG,CAAC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,EACjF,MAAM,EACN;QACE,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;KACpD,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { LintGLuaOutput } from "../contracts/linter_contracts.js";
2
+ import { GModToolResult } from "../contracts/common.js";
3
+ export declare function handleLintGLua(args: unknown): Promise<GModToolResult<LintGLuaOutput>>;
4
+ //# sourceMappingURL=lint_glua.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint_glua.d.ts","sourceRoot":"","sources":["../../src/tools/lint_glua.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAyB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAK/E,wBAAsB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAsB3F"}
@@ -0,0 +1,24 @@
1
+ import { LintGLuaInputSchema } from "../contracts/linter_contracts.js";
2
+ import { createSuccessEnvelope } from "../contracts/common.js";
3
+ import { GLuaLintAdapter } from "../integrations/glualint_adapter.js";
4
+ import { GLuaAnalyzer } from "../domain/glua/ast.js";
5
+ import { FileUtils } from "../core/file_utils.js";
6
+ export async function handleLintGLua(args) {
7
+ const parsed = LintGLuaInputSchema.parse(args);
8
+ let code = parsed.code_content ?? "";
9
+ let realm = parsed.target_realm === "auto" ? "shared" : parsed.target_realm;
10
+ if (parsed.file_path) {
11
+ code = await FileUtils.readFile(parsed.file_path);
12
+ if (parsed.target_realm === "auto") {
13
+ realm = GLuaAnalyzer.detectRealmFromPath(parsed.file_path);
14
+ }
15
+ }
16
+ const output = await GLuaLintAdapter.lint(code, realm, parsed.fix_formatting);
17
+ const summary = output.valid
18
+ ? `GLua code is valid with 0 errors and ${output.warning_count} warnings (${realm.toUpperCase()} realm).`
19
+ : `GLua code analysis identified ${output.error_count} errors and ${output.warning_count} warnings.`;
20
+ return createSuccessEnvelope(summary, output, {
21
+ warnings: output.diagnostics.filter(d => d.severity === "warning").map(d => `Line ${d.line}: ${d.message}`)
22
+ });
23
+ }
24
+ //# sourceMappingURL=lint_glua.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint_glua.js","sourceRoot":"","sources":["../../src/tools/lint_glua.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAkB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAa,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAa;IAChD,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/C,IAAI,IAAI,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;IACrC,IAAI,KAAK,GAAc,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;IAEvF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;YACnC,KAAK,GAAG,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IAE9E,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK;QAC1B,CAAC,CAAC,wCAAwC,MAAM,CAAC,aAAa,cAAc,KAAK,CAAC,WAAW,EAAE,UAAU;QACzG,CAAC,CAAC,iCAAiC,MAAM,CAAC,WAAW,eAAe,MAAM,CAAC,aAAa,YAAY,CAAC;IAEvG,OAAO,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE;QAC5C,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;KAC5G,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { PackageAndValidateOutput } from "../contracts/scaffold_contracts.js";
2
+ import { GModToolResult } from "../contracts/common.js";
3
+ export declare function handlePackageAndValidate(args: unknown): Promise<GModToolResult<PackageAndValidateOutput>>;
4
+ //# sourceMappingURL=package_and_validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package_and_validate.d.ts","sourceRoot":"","sources":["../../src/tools/package_and_validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACzB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAyB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI/E,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC,CAwB/G"}
@@ -0,0 +1,23 @@
1
+ import { PackageAndValidateInputSchema } from "../contracts/scaffold_contracts.js";
2
+ import { createSuccessEnvelope } from "../contracts/common.js";
3
+ import { PackagingValidator } from "../domain/packaging/validator.js";
4
+ import { getConfig } from "../config/env.js";
5
+ export async function handlePackageAndValidate(args) {
6
+ const parsed = PackageAndValidateInputSchema.parse(args);
7
+ const targetDir = parsed.addon_dir ?? getConfig().WORKSPACE_ROOT;
8
+ const output = await PackagingValidator.validateAndPackage(targetDir, parsed.build_gma, parsed.output_gma_path);
9
+ const summary = output.valid
10
+ ? `Addon validation succeeded! Inspected ${output.total_files} files (${Math.round(output.total_size_bytes / 1024)} KB). Compatible with Steam Workshop.`
11
+ : `Addon validation failed: ${output.illegal_files.length} illegal files and ${output.warnings.length} issues identified.`;
12
+ return createSuccessEnvelope(summary, output, {
13
+ warnings: [
14
+ ...output.warnings,
15
+ ...output.illegal_files.map(f => `${f.path}: ${f.reason}`)
16
+ ],
17
+ artifacts: output.gma_path ? [{ label: "Compiled GMA", uri: output.gma_path }] : [],
18
+ nextActions: output.valid
19
+ ? (output.gma_path ? [] : ["Run with build_gma: true to compile final .gma package."])
20
+ : ["Remove or rename illegal files listed in warnings."]
21
+ });
22
+ }
23
+ //# sourceMappingURL=package_and_validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package_and_validate.js","sourceRoot":"","sources":["../../src/tools/package_and_validate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAE9B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAkB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAa;IAC1D,MAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,cAAc,CAAC;IAEjE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,CACxD,SAAS,EACT,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,eAAe,CACvB,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK;QAC1B,CAAC,CAAC,yCAAyC,MAAM,CAAC,WAAW,WAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,uCAAuC;QACzJ,CAAC,CAAC,4BAA4B,MAAM,CAAC,aAAa,CAAC,MAAM,sBAAsB,MAAM,CAAC,QAAQ,CAAC,MAAM,qBAAqB,CAAC;IAE7H,OAAO,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE;QAC5C,QAAQ,EAAE;YACR,GAAG,MAAM,CAAC,QAAQ;YAClB,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;SAC3D;QACD,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QACnF,WAAW,EAAE,MAAM,CAAC,KAAK;YACvB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC,oDAAoD,CAAC;KAC3D,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { RunGLuaTestOutput } from "../contracts/test_contracts.js";
2
+ import { GModToolResult } from "../contracts/common.js";
3
+ export declare function handleRunGLuaTest(args: unknown): Promise<GModToolResult<RunGLuaTestOutput>>;
4
+ //# sourceMappingURL=run_glua_test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run_glua_test.d.ts","sourceRoot":"","sources":["../../src/tools/run_glua_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAyB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG/E,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAYjG"}
@@ -0,0 +1,15 @@
1
+ import { RunGLuaTestInputSchema } from "../contracts/test_contracts.js";
2
+ import { createSuccessEnvelope } from "../contracts/common.js";
3
+ import { PythonTestHarness } from "../integrations/python_test_harness.js";
4
+ export async function handleRunGLuaTest(args) {
5
+ const parsed = RunGLuaTestInputSchema.parse(args);
6
+ const output = await PythonTestHarness.runTest(parsed);
7
+ const summary = output.passed
8
+ ? `Headless GLua test passed! Executed ${output.tests_run} assertions in ${output.execution_time_ms}ms.`
9
+ : `Headless GLua test failed with ${output.failures} failure(s) out of ${output.tests_run} test(s).`;
10
+ return createSuccessEnvelope(summary, output, {
11
+ warnings: output.errors.map(e => `${e.test_name}: ${e.error_message}`),
12
+ nextActions: output.passed ? [] : output.errors.map(e => `Debug failed assertion: ${e.test_name}`)
13
+ });
14
+ }
15
+ //# sourceMappingURL=run_glua_test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run_glua_test.js","sourceRoot":"","sources":["../../src/tools/run_glua_test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EAEvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAkB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAa;IACnD,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;QAC3B,CAAC,CAAC,uCAAuC,MAAM,CAAC,SAAS,kBAAkB,MAAM,CAAC,iBAAiB,KAAK;QACxG,CAAC,CAAC,kCAAkC,MAAM,CAAC,QAAQ,sBAAsB,MAAM,CAAC,SAAS,WAAW,CAAC;IAEvG,OAAO,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE;QAC5C,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;QACtE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,SAAS,EAAE,CAAC;KACnG,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ScaffoldGModComponentOutput } from "../contracts/scaffold_contracts.js";
2
+ import { GModToolResult } from "../contracts/common.js";
3
+ export declare function handleScaffoldGModComponent(args: unknown): Promise<GModToolResult<ScaffoldGModComponentOutput>>;
4
+ //# sourceMappingURL=scaffold_gmod_component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold_gmod_component.d.ts","sourceRoot":"","sources":["../../src/tools/scaffold_gmod_component.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,2BAA2B,EAC5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAyB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI/E,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,CAarH"}
@@ -0,0 +1,16 @@
1
+ import { ScaffoldGModComponentInputSchema } from "../contracts/scaffold_contracts.js";
2
+ import { createSuccessEnvelope } from "../contracts/common.js";
3
+ import { ScaffoldingService } from "../domain/scaffolding/templates.js";
4
+ import { getConfig } from "../config/env.js";
5
+ export async function handleScaffoldGModComponent(args) {
6
+ const parsed = ScaffoldGModComponentInputSchema.parse(args);
7
+ const workspaceRoot = getConfig().WORKSPACE_ROOT;
8
+ const output = await ScaffoldingService.scaffold(parsed, workspaceRoot);
9
+ const actionDesc = parsed.output_dir ? "created on disk" : "generated in manifest";
10
+ const summary = `Successfully scaffolded ${parsed.component_type.toUpperCase()} '${parsed.name}'. ${output.files_created.length} files ${actionDesc}.`;
11
+ return createSuccessEnvelope(summary, output, {
12
+ artifacts: output.files_created.map(f => ({ label: f.path, uri: f.path })),
13
+ nextActions: output.files_created.map(f => `Review and implement game logic in ${f.path}`)
14
+ });
15
+ }
16
+ //# sourceMappingURL=scaffold_gmod_component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold_gmod_component.js","sourceRoot":"","sources":["../../src/tools/scaffold_gmod_component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAEjC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAkB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAAa;IAC7D,MAAM,MAAM,GAAG,gCAAgC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,SAAS,EAAE,CAAC,cAAc,CAAC;IAEjD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAExE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,uBAAuB,CAAC;IACnF,MAAM,OAAO,GAAG,2BAA2B,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,UAAU,UAAU,GAAG,CAAC;IAEvJ,OAAO,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE;QAC5C,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,sCAAsC,CAAC,CAAC,IAAI,EAAE,CAAC;KAC3F,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { SearchGModWikiOutput } from "../contracts/wiki_contracts.js";
2
+ import { GModToolResult } from "../contracts/common.js";
3
+ export declare function handleSearchGModWiki(args: unknown): Promise<GModToolResult<SearchGModWikiOutput>>;
4
+ //# sourceMappingURL=search_gmod_wiki.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search_gmod_wiki.d.ts","sourceRoot":"","sources":["../../src/tools/search_gmod_wiki.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAyB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAK/E,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CA8BvG"}
@@ -0,0 +1,30 @@
1
+ import { SearchGModWikiInputSchema } from "../contracts/wiki_contracts.js";
2
+ import { createSuccessEnvelope } from "../contracts/common.js";
3
+ import { WikiClient } from "../integrations/wiki_client.js";
4
+ const wikiClient = new WikiClient();
5
+ export async function handleSearchGModWiki(args) {
6
+ const parsed = SearchGModWikiInputSchema.parse(args);
7
+ const results = await wikiClient.search(parsed.query, {
8
+ category: parsed.category,
9
+ realm: parsed.realm,
10
+ maxResults: parsed.max_results
11
+ });
12
+ const output = {
13
+ query: parsed.query,
14
+ category: parsed.category,
15
+ realm: parsed.realm,
16
+ total_matches: results.length,
17
+ results: results.map(r => ({
18
+ title: r.symbol,
19
+ url: r.wiki_url,
20
+ realm: r.realm,
21
+ summary: r.description,
22
+ signature: r.signature,
23
+ category: r.category
24
+ }))
25
+ };
26
+ return createSuccessEnvelope(`Found ${results.length} Garry's Mod documentation matches for '${parsed.query}'.`, output, {
27
+ sources: results.map(r => ({ label: r.symbol, uri: r.wiki_url }))
28
+ });
29
+ }
30
+ //# sourceMappingURL=search_gmod_wiki.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search_gmod_wiki.js","sourceRoot":"","sources":["../../src/tools/search_gmod_wiki.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAE1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAkB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAa;IACtD,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;QACpD,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,WAAW;KAC/B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAyB;QACnC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,aAAa,EAAE,OAAO,CAAC,MAAM;QAC7B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,KAAK,EAAE,CAAC,CAAC,MAAM;YACf,GAAG,EAAE,CAAC,CAAC,QAAQ;YACf,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,OAAO,EAAE,CAAC,CAAC,WAAW;YACtB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC;KACJ,CAAC;IAEF,OAAO,qBAAqB,CAC1B,SAAS,OAAO,CAAC,MAAM,2CAA2C,MAAM,CAAC,KAAK,IAAI,EAClF,MAAM,EACN;QACE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;KAClE,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { WebSearchGLuaOutput } from "../contracts/wiki_contracts.js";
2
+ import { GModToolResult } from "../contracts/common.js";
3
+ export declare function handleWebSearchGLua(args: unknown): Promise<GModToolResult<WebSearchGLuaOutput>>;
4
+ //# sourceMappingURL=web_search_glua.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web_search_glua.d.ts","sourceRoot":"","sources":["../../src/tools/web_search_glua.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAyB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG/E,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAoBrG"}
@@ -0,0 +1,15 @@
1
+ import { WebSearchGLuaInputSchema } from "../contracts/wiki_contracts.js";
2
+ import { createSuccessEnvelope } from "../contracts/common.js";
3
+ import { WebSearchAdapter } from "../integrations/web_search_adapter.js";
4
+ export async function handleWebSearchGLua(args) {
5
+ const parsed = WebSearchGLuaInputSchema.parse(args);
6
+ const results = await WebSearchAdapter.search(parsed.query, parsed.domain_filter, parsed.max_results);
7
+ const output = {
8
+ query: parsed.query,
9
+ results
10
+ };
11
+ return createSuccessEnvelope(`Found ${results.length} community discussions and code snippets for '${parsed.query}'.`, output, {
12
+ sources: results.map(r => ({ label: r.title, uri: r.url }))
13
+ });
14
+ }
15
+ //# sourceMappingURL=web_search_glua.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web_search_glua.js","sourceRoot":"","sources":["../../src/tools/web_search_glua.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAEzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAkB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAa;IACrD,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAC3C,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,WAAW,CACnB,CAAC;IAEF,MAAM,MAAM,GAAwB;QAClC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO;KACR,CAAC;IAEF,OAAO,qBAAqB,CAC1B,SAAS,OAAO,CAAC,MAAM,iDAAiD,MAAM,CAAC,KAAK,IAAI,EACxF,MAAM,EACN;QACE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;KAC5D,CACF,CAAC;AACJ,CAAC"}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "mcp-garry-codes",
3
+ "version": "1.0.0",
4
+ "description": "The Principal Garry's Mod Model Context Protocol (MCP) Server",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "mcp-garry-codes": "./dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "src/test_harness",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsc",
18
+ "start": "node dist/index.js",
19
+ "dev": "tsx src/index.ts",
20
+ "typecheck": "tsc --noEmit",
21
+ "test": "vitest run",
22
+ "test:watch": "vitest"
23
+ },
24
+ "keywords": [
25
+ "mcp",
26
+ "model-context-protocol",
27
+ "garrysmod",
28
+ "gmod",
29
+ "glua",
30
+ "facepunch",
31
+ "source-engine",
32
+ "linter",
33
+ "security-audit"
34
+ ],
35
+ "author": "M A R W A N",
36
+ "license": "MIT",
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "https://github.com/MarwanDevSpace/mcp-garry-codes.git"
40
+ },
41
+ "homepage": "https://github.com/MarwanDevSpace/mcp-garry-codes#readme",
42
+ "bugs": {
43
+ "url": "https://github.com/MarwanDevSpace/mcp-garry-codes/issues"
44
+ },
45
+ "dependencies": {
46
+ "@modelcontextprotocol/sdk": "^1.6.1",
47
+ "zod": "^3.24.1"
48
+ },
49
+ "devDependencies": {
50
+ "@types/node": "^22.13.0",
51
+ "tsx": "^4.19.2",
52
+ "typescript": "^5.7.3",
53
+ "vitest": "^3.0.4"
54
+ },
55
+ "engines": {
56
+ "node": ">=18.0.0"
57
+ }
58
+ }