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,219 @@
1
+ import { FileUtils } from "../../core/file_utils.js";
2
+ import path from "node:path";
3
+ export class ScaffoldingService {
4
+ static async scaffold(input, workspaceRoot) {
5
+ const { component_type, name, output_dir, options } = input;
6
+ const manifest = {};
7
+ const category = options?.category ?? "Custom";
8
+ const base = options?.base ?? (component_type === "swep" ? "weapon_base" : "base_anim");
9
+ const author = options?.author ?? "M A R W A N";
10
+ const printableName = options?.printable_name ?? name;
11
+ switch (component_type) {
12
+ case "swep": {
13
+ const swepShared = `-- ${name}: Shared Script
14
+ AddCSLuaFile()
15
+
16
+ SWEP.PrintName = "${printableName}"
17
+ SWEP.Author = "${author}"
18
+ SWEP.Instructions = "Left click to fire."
19
+ SWEP.Category = "${category}"
20
+
21
+ SWEP.Spawnable = true
22
+ SWEP.AdminOnly = false
23
+
24
+ SWEP.Primary.ClipSize = 30
25
+ SWEP.Primary.DefaultClip = 90
26
+ SWEP.Primary.Automatic = true
27
+ SWEP.Primary.Ammo = "Pistol"
28
+
29
+ SWEP.Secondary.ClipSize = -1
30
+ SWEP.Secondary.DefaultClip = -1
31
+ SWEP.Secondary.Automatic = false
32
+ SWEP.Secondary.Ammo = "None"
33
+
34
+ SWEP.Weight = 5
35
+ SWEP.AutoSwitchTo = false
36
+ SWEP.AutoSwitchFrom = false
37
+
38
+ SWEP.Slot = 1
39
+ SWEP.SlotPos = 2
40
+ SWEP.DrawAmmo = true
41
+ SWEP.DrawCrosshair = true
42
+
43
+ SWEP.ViewModel = "models/weapons/v_pistol.mdl"
44
+ SWEP.WorldModel = "models/weapons/w_pistol.mdl"
45
+
46
+ function SWEP:Initialize()
47
+ self:SetHoldType("pistol")
48
+ end
49
+
50
+ function SWEP:PrimaryAttack()
51
+ if not self:CanPrimaryAttack() then return end
52
+
53
+ self:EmitSound("Weapon_Pistol.Single")
54
+ self:ShootBullet(15, 1, 0.02, self.Primary.Ammo)
55
+ self:TakePrimaryAmmo(1)
56
+
57
+ self:SetNextPrimaryFire(CurTime() + 0.15)
58
+ end
59
+
60
+ function SWEP:SecondaryAttack()
61
+ -- Secondary fire action
62
+ end
63
+ `;
64
+ manifest[`lua/weapons/${name}/shared.lua`] = swepShared;
65
+ break;
66
+ }
67
+ case "sent": {
68
+ const sentShared = `AddCSLuaFile()
69
+
70
+ ENT.Type = "anim"
71
+ ENT.Base = "${base}"
72
+
73
+ ENT.PrintName = "${printableName}"
74
+ ENT.Author = "${author}"
75
+ ENT.Category = "${category}"
76
+ ENT.Spawnable = true
77
+ ENT.AdminOnly = false
78
+
79
+ if SERVER then
80
+ function ENT:Initialize()
81
+ self:SetModel("models/props_junk/wood_crate001a.mdl")
82
+ self:PhysicsInit(SOLID_VPHYSICS)
83
+ self:SetMoveType(MOVETYPE_VPHYSICS)
84
+ self:SetSolid(SOLID_VPHYSICS)
85
+
86
+ local phys = self:GetPhysicsObject()
87
+ if IsValid(phys) then
88
+ phys:Wake()
89
+ end
90
+ end
91
+
92
+ function ENT:Use(activator, caller)
93
+ if IsValid(activator) and activator:IsPlayer() then
94
+ activator:ChatPrint("Used entity: " .. self.PrintName)
95
+ end
96
+ end
97
+ end
98
+
99
+ if CLIENT then
100
+ function ENT:Draw()
101
+ self:DrawModel()
102
+ end
103
+ end
104
+ `;
105
+ manifest[`lua/entities/${name}/shared.lua`] = sentShared;
106
+ break;
107
+ }
108
+ case "vgui_panel": {
109
+ const panelCode = `-- Custom Derma UI Component: ${name}
110
+ local PANEL = {}
111
+
112
+ local COLOR_BG = Color(35, 39, 42, 240)
113
+ local COLOR_HEADER = Color(47, 49, 54, 255)
114
+ local COLOR_TEXT = Color(255, 255, 255, 255)
115
+
116
+ function PANEL:Init()
117
+ self:SetSize(ScrW() * 0.35, ScrH() * 0.45)
118
+ self:Center()
119
+ self:SetTitle("${printableName}")
120
+ self:MakePopup()
121
+
122
+ self.content = vgui.Create("DScrollPanel", self)
123
+ self.content:Dock(FILL)
124
+ self.content:DockMargin(10, 10, 10, 10)
125
+ end
126
+
127
+ function PANEL:Paint(w, h)
128
+ draw.RoundedBox(8, 0, 0, w, h, COLOR_BG)
129
+ draw.RoundedBoxEx(8, 0, 0, w, 28, COLOR_HEADER, true, true, false, false)
130
+ end
131
+
132
+ vgui.Register("${name}", PANEL, "DFrame")
133
+ `;
134
+ manifest[`lua/vgui/${name}.lua`] = panelCode;
135
+ break;
136
+ }
137
+ case "hud": {
138
+ const hudCode = `-- Zero-GC Optimized Custom HUD
139
+ local COLOR_BG = Color(20, 20, 25, 220)
140
+ local COLOR_HEALTH = Color(46, 204, 113, 255)
141
+ local COLOR_ARMOR = Color(52, 152, 219, 255)
142
+ local COLOR_WHITE = Color(255, 255, 255, 255)
143
+
144
+ surface.CreateFont("${name}_Font", {
145
+ font = "Roboto",
146
+ size = 20,
147
+ weight = 600,
148
+ antialias = true
149
+ })
150
+
151
+ local function DrawCustomHUD()
152
+ local ply = LocalPlayer()
153
+ if not IsValid(ply) or not ply:Alive() then return end
154
+
155
+ local hp = math.max(0, ply:Health())
156
+ local armor = math.max(0, ply:Armor())
157
+
158
+ local baseW = 240
159
+ local baseH = 80
160
+ local posX = 25
161
+ local posY = ScrH() - baseH - 25
162
+
163
+ draw.RoundedBox(6, posX, posY, baseW, baseH, COLOR_BG)
164
+ draw.SimpleText("HEALTH: " .. hp, "${name}_Font", posX + 15, posY + 15, COLOR_HEALTH)
165
+ draw.SimpleText("ARMOR: " .. armor, "${name}_Font", posX + 15, posY + 45, COLOR_ARMOR)
166
+ end
167
+
168
+ hook.Add("HUDPaint", "${name}_Hook", DrawCustomHUD)
169
+ `;
170
+ manifest[`lua/autorun/client/${name}_hud.lua`] = hudCode;
171
+ break;
172
+ }
173
+ case "gamemode": {
174
+ manifest[`gamemodes/${name}/${name}.txt`] = `"gamemode"\n{\n\t"title"\t\t"${printableName}"\n\t"version"\t"1.0.0"\n\t"author_name"\t"${author}"\n}\n`;
175
+ manifest[`gamemodes/${name}/gamemode/shared.lua`] = `GM.Name = "${printableName}"\nGM.Author = "${author}"\n\nfunction GM:Initialize()\n -- Shared initialize\nend\n`;
176
+ manifest[`gamemodes/${name}/gamemode/init.lua`] = `AddCSLuaFile("cl_init.lua")\nAddCSLuaFile("shared.lua")\ninclude("shared.lua")\n\nfunction GM:PlayerInitialSpawn(ply)\n self.BaseClass:PlayerInitialSpawn(ply)\nend\n`;
177
+ manifest[`gamemodes/${name}/gamemode/cl_init.lua`] = `include("shared.lua")\n\nfunction GM:HUDPaint()\n self.BaseClass:HUDPaint()\nend\n`;
178
+ break;
179
+ }
180
+ case "addon_skeleton":
181
+ default: {
182
+ manifest["addon.json"] = JSON.stringify({
183
+ title: printableName,
184
+ type: "ServerContent",
185
+ tags: ["roleplay", "fun"],
186
+ ignore: ["*.psd", "*.vcproj", "*.git*"]
187
+ }, null, 2);
188
+ manifest[`lua/autorun/sh_${name}_init.lua`] = `AddCSLuaFile()\n\nprint("[${printableName}] Loaded successfully.")\n`;
189
+ break;
190
+ }
191
+ }
192
+ const filesCreated = [];
193
+ // If output_dir was supplied, write them to disk
194
+ if (output_dir) {
195
+ for (const [relPath, content] of Object.entries(manifest)) {
196
+ const fullRel = path.join(output_dir, relPath);
197
+ await FileUtils.writeFile(fullRel, content, workspaceRoot);
198
+ filesCreated.push({
199
+ path: fullRel.replace(/\\/g, "/"),
200
+ purpose: `Generated ${component_type} file`
201
+ });
202
+ }
203
+ }
204
+ else {
205
+ for (const relPath of Object.keys(manifest)) {
206
+ filesCreated.push({
207
+ path: relPath,
208
+ purpose: `Virtual manifest for ${component_type}`
209
+ });
210
+ }
211
+ }
212
+ return {
213
+ component_type,
214
+ files_created: filesCreated,
215
+ code_manifest: manifest
216
+ };
217
+ }
218
+ }
219
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/domain/scaffolding/templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { WikiDocEntry } from "./types.js";
2
+ export declare const GMOD_OFFLINE_DOCS: WikiDocEntry[];
3
+ //# sourceMappingURL=offline_db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offline_db.d.ts","sourceRoot":"","sources":["../../../src/domain/wiki/offline_db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,iBAAiB,EAAE,YAAY,EAohB3C,CAAC"}