micro-models-agent 0.44.0 → 0.45.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 (188) hide show
  1. package/README.md +312 -312
  2. package/bin/mma.mjs +41 -41
  3. package/dist/main.js +241 -56
  4. package/dist/skills/builtin/git.md +36 -36
  5. package/dist/skills/builtin/typescript.md +35 -35
  6. package/package.json +1 -1
  7. package/dist/cli/commands.js +0 -333
  8. package/dist/cli/completer.js +0 -168
  9. package/dist/cli/index.js +0 -2
  10. package/dist/cli/main.js +0 -140
  11. package/dist/cli/repl-commands.js +0 -633
  12. package/dist/cli/repl.js +0 -486
  13. package/dist/cli/security-commands.js +0 -166
  14. package/dist/cli/setup.js +0 -249
  15. package/dist/config/config.js +0 -202
  16. package/dist/config/defaults.js +0 -100
  17. package/dist/config/experts.js +0 -15
  18. package/dist/config/index.js +0 -3
  19. package/dist/config/security.js +0 -200
  20. package/dist/config/types.js +0 -1
  21. package/dist/core/agent-moe.js +0 -110
  22. package/dist/core/agent.js +0 -695
  23. package/dist/core/bootstrap.js +0 -337
  24. package/dist/core/index.js +0 -2
  25. package/dist/core/prompt-builder.js +0 -55
  26. package/dist/core/session-logger.js +0 -155
  27. package/dist/core/types.js +0 -1
  28. package/dist/core/workspace.js +0 -76
  29. package/dist/i18n/en.json +0 -525
  30. package/dist/i18n/index.js +0 -46
  31. package/dist/i18n/ru.json +0 -525
  32. package/dist/index.js +0 -22
  33. package/dist/llm/image-utils.js +0 -144
  34. package/dist/llm/index.js +0 -4
  35. package/dist/llm/model-loader.js +0 -78
  36. package/dist/llm/openai-compat.js +0 -353
  37. package/dist/llm/orchestrator.js +0 -194
  38. package/dist/llm/provider.js +0 -10
  39. package/dist/llm/response.js +0 -39
  40. package/dist/llm/token-counter.js +0 -39
  41. package/dist/llm/types.js +0 -1
  42. package/dist/logger/app-logger.js +0 -143
  43. package/dist/logger/file-log.js +0 -151
  44. package/dist/logger/index.js +0 -1
  45. package/dist/migration/backup.js +0 -45
  46. package/dist/migration/detect.js +0 -50
  47. package/dist/migration/index.js +0 -2
  48. package/dist/modules/browser/actions.js +0 -46
  49. package/dist/modules/browser/cookie-store.js +0 -24
  50. package/dist/modules/browser/index.js +0 -5
  51. package/dist/modules/browser/module.js +0 -28
  52. package/dist/modules/browser/session.js +0 -335
  53. package/dist/modules/browser/snapshot.js +0 -114
  54. package/dist/modules/browser/types.js +0 -9
  55. package/dist/modules/certification/cli.js +0 -176
  56. package/dist/modules/certification/fact-checker.js +0 -84
  57. package/dist/modules/certification/loader.js +0 -111
  58. package/dist/modules/certification/manifest.js +0 -50
  59. package/dist/modules/certification/runner.js +0 -162
  60. package/dist/modules/certification/scenarios.js +0 -124
  61. package/dist/modules/certification/types.js +0 -1
  62. package/dist/modules/context/index.js +0 -1
  63. package/dist/modules/context/manager.js +0 -349
  64. package/dist/modules/execution/auditor.js +0 -66
  65. package/dist/modules/execution/index.js +0 -8
  66. package/dist/modules/execution/module.js +0 -779
  67. package/dist/modules/execution/moe-executor.js +0 -266
  68. package/dist/modules/execution/plan-coverage.js +0 -68
  69. package/dist/modules/execution/plan-persister.js +0 -46
  70. package/dist/modules/execution/plan-store.js +0 -159
  71. package/dist/modules/execution/plan-validator.js +0 -153
  72. package/dist/modules/execution/planner.js +0 -85
  73. package/dist/modules/execution/stuck-detector.js +0 -347
  74. package/dist/modules/execution/tracker.js +0 -67
  75. package/dist/modules/execution/types.js +0 -1
  76. package/dist/modules/execution/verifier.js +0 -178
  77. package/dist/modules/hallucination/confidence.js +0 -59
  78. package/dist/modules/hallucination/consistency.js +0 -26
  79. package/dist/modules/hallucination/detector.js +0 -46
  80. package/dist/modules/hallucination/factual.js +0 -190
  81. package/dist/modules/hallucination/index.js +0 -5
  82. package/dist/modules/hallucination/js-identifiers.js +0 -72
  83. package/dist/modules/hallucination/llm-judge.js +0 -103
  84. package/dist/modules/index.js +0 -5
  85. package/dist/modules/indexer/cache.js +0 -38
  86. package/dist/modules/indexer/index.js +0 -3
  87. package/dist/modules/indexer/module.js +0 -192
  88. package/dist/modules/indexer/walker.js +0 -101
  89. package/dist/modules/lsp/client.js +0 -235
  90. package/dist/modules/lsp/config.js +0 -81
  91. package/dist/modules/lsp/index.js +0 -3
  92. package/dist/modules/lsp/module.js +0 -68
  93. package/dist/modules/lsp/types.js +0 -1
  94. package/dist/modules/mcp/client.js +0 -399
  95. package/dist/modules/mcp/index.js +0 -3
  96. package/dist/modules/mcp/module.js +0 -146
  97. package/dist/modules/mcp/registry.js +0 -15
  98. package/dist/modules/memory/index.js +0 -1
  99. package/dist/modules/memory/module.js +0 -48
  100. package/dist/modules/memory/search.js +0 -40
  101. package/dist/modules/memory/store.js +0 -69
  102. package/dist/modules/pipelines/engine.js +0 -60
  103. package/dist/modules/pipelines/index.js +0 -3
  104. package/dist/modules/pipelines/parser.js +0 -53
  105. package/dist/modules/pipelines/template.js +0 -14
  106. package/dist/modules/plugins/builtin/lint-on-write.js +0 -226
  107. package/dist/modules/plugins/builtin/notify.js +0 -8
  108. package/dist/modules/plugins/index.js +0 -1
  109. package/dist/modules/plugins/loader.js +0 -28
  110. package/dist/modules/plugins/manager.js +0 -161
  111. package/dist/modules/plugins/types.js +0 -1
  112. package/dist/modules/processes/index.js +0 -2
  113. package/dist/modules/processes/registry.js +0 -238
  114. package/dist/modules/processes/runner.js +0 -23
  115. package/dist/modules/registry.js +0 -45
  116. package/dist/modules/security/audit-log.js +0 -136
  117. package/dist/modules/security/audit-notifier.js +0 -292
  118. package/dist/modules/security/command-validator.js +0 -211
  119. package/dist/modules/security/content-scanner.js +0 -53
  120. package/dist/modules/security/data-sanitizer.js +0 -97
  121. package/dist/modules/security/encryption.js +0 -240
  122. package/dist/modules/security/index.js +0 -14
  123. package/dist/modules/security/network-validator.js +0 -79
  124. package/dist/modules/security/path-validator.js +0 -209
  125. package/dist/modules/security/rate-limiter.js +0 -119
  126. package/dist/modules/security/security-policies.js +0 -547
  127. package/dist/modules/security/session-encryption.js +0 -210
  128. package/dist/modules/security/session-isolation.js +0 -95
  129. package/dist/modules/session/index.js +0 -3
  130. package/dist/modules/session/manager.js +0 -172
  131. package/dist/modules/session/module.js +0 -24
  132. package/dist/modules/session/store.js +0 -228
  133. package/dist/modules/session/types.js +0 -1
  134. package/dist/modules/skills/index.js +0 -2
  135. package/dist/modules/skills/loader.js +0 -72
  136. package/dist/modules/skills/module.js +0 -130
  137. package/dist/modules/types.js +0 -1
  138. package/dist/modules/updater/checker.js +0 -32
  139. package/dist/modules/updater/index.js +0 -1
  140. package/dist/modules/user-profile/compressor.js +0 -16
  141. package/dist/modules/user-profile/index.js +0 -1
  142. package/dist/modules/user-profile/profile.js +0 -68
  143. package/dist/tools/approve.js +0 -32
  144. package/dist/tools/attach-image.js +0 -89
  145. package/dist/tools/bash.js +0 -337
  146. package/dist/tools/browser.js +0 -97
  147. package/dist/tools/create-dir.js +0 -55
  148. package/dist/tools/delete-file.js +0 -62
  149. package/dist/tools/edit-file.js +0 -79
  150. package/dist/tools/executor.js +0 -145
  151. package/dist/tools/file-info.js +0 -45
  152. package/dist/tools/filter-tools.js +0 -10
  153. package/dist/tools/glob-tool.js +0 -26
  154. package/dist/tools/grep-tool.js +0 -86
  155. package/dist/tools/index.js +0 -67
  156. package/dist/tools/list-dir.js +0 -47
  157. package/dist/tools/load-skill.js +0 -44
  158. package/dist/tools/mcp-call.js +0 -68
  159. package/dist/tools/move-file.js +0 -85
  160. package/dist/tools/path-utils.js +0 -51
  161. package/dist/tools/pipeline-run.js +0 -144
  162. package/dist/tools/preview.js +0 -2
  163. package/dist/tools/process-kill.js +0 -29
  164. package/dist/tools/process-list.js +0 -38
  165. package/dist/tools/process-log.js +0 -41
  166. package/dist/tools/question.js +0 -142
  167. package/dist/tools/read-file.js +0 -83
  168. package/dist/tools/recall.js +0 -110
  169. package/dist/tools/registry.js +0 -36
  170. package/dist/tools/remember.js +0 -67
  171. package/dist/tools/scope-check.js +0 -30
  172. package/dist/tools/search-history.js +0 -84
  173. package/dist/tools/subagent.js +0 -151
  174. package/dist/tools/types.js +0 -1
  175. package/dist/tools/user-input.js +0 -123
  176. package/dist/tools/web-browse.js +0 -86
  177. package/dist/tools/web-fetch.js +0 -98
  178. package/dist/tools/web-search.js +0 -78
  179. package/dist/tools/write-file.js +0 -83
  180. package/dist/ui/box.js +0 -81
  181. package/dist/ui/colors.js +0 -4
  182. package/dist/ui/diff.js +0 -178
  183. package/dist/ui/index.js +0 -6
  184. package/dist/ui/md-formatter.js +0 -212
  185. package/dist/ui/output.js +0 -13
  186. package/dist/ui/renderer.js +0 -204
  187. package/dist/ui/spinner.js +0 -70
  188. package/dist/ui/table.js +0 -144
@@ -1,547 +0,0 @@
1
- import { mergeSecurityConfig, } from "../../config/security";
2
- /**
3
- * Strict security policy - maximum security, minimum flexibility
4
- * Recommended for: production environments, sensitive data, multi-user systems
5
- */
6
- export const STRICT_POLICY = {
7
- name: "Strict",
8
- description: "Maximum security with minimal flexibility. Blocks most dangerous operations.",
9
- preset: "strict",
10
- recommendedFor: ["production", "sensitive-data", "multi-user", "enterprise"],
11
- config: {
12
- enabled: true,
13
- bash: {
14
- enabled: true,
15
- blacklist: [
16
- "rm",
17
- "dd",
18
- "chmod",
19
- "wget",
20
- "curl",
21
- "scp",
22
- "ssh",
23
- "nc",
24
- "netcat",
25
- "mknod",
26
- "mkfifo",
27
- "ln",
28
- "chown",
29
- "chgrp",
30
- "useradd",
31
- "usermod",
32
- "passwd",
33
- "sudo",
34
- "su",
35
- "exec",
36
- "eval",
37
- "source",
38
- "kill",
39
- "pkill",
40
- "killall",
41
- "shutdown",
42
- "reboot",
43
- "halt",
44
- "poweroff",
45
- "format",
46
- "fdisk",
47
- "parted",
48
- "mkfs",
49
- "mount",
50
- "umount",
51
- "mv",
52
- "cp",
53
- ],
54
- whitelist: ["ls", "cat", "echo", "grep", "find", "pwd", "whoami", "date"],
55
- blockDangerousFlags: true,
56
- dangerousFlags: [
57
- "--force",
58
- "-rf",
59
- "--no-preserve-root",
60
- "--recursive",
61
- "--all",
62
- "-x",
63
- "-e",
64
- "--delete",
65
- "--remove",
66
- "--dangerous",
67
- "--yes",
68
- "-y",
69
- "--no-confirm",
70
- "-R",
71
- "--no-clobber",
72
- ],
73
- dangerousOperators: [
74
- ">",
75
- ">>",
76
- "2>",
77
- "2>>",
78
- "|",
79
- "&&",
80
- "||",
81
- ";",
82
- "&",
83
- "`",
84
- ],
85
- logCommands: true,
86
- },
87
- paths: {
88
- enabled: true,
89
- denied: [
90
- ".git/",
91
- "node_modules/",
92
- ".env",
93
- "*.key",
94
- "*.pem",
95
- "*.crt",
96
- "*.p12",
97
- "*.pfx",
98
- "*.secret",
99
- "*.token",
100
- "package-lock.json",
101
- "bun.lock",
102
- "yarn.lock",
103
- "pnpm-lock.yaml",
104
- ".ssh/",
105
- ".config/",
106
- ".bashrc",
107
- ".bash_profile",
108
- ".zshrc",
109
- ".profile",
110
- "/etc/",
111
- "/usr/",
112
- "/var/",
113
- "/bin/",
114
- "/sbin/",
115
- "/root/",
116
- "/home/",
117
- ],
118
- allowed: [],
119
- },
120
- network: {
121
- enabled: true,
122
- deniedDomains: [
123
- "localhost",
124
- "127.0.0.1",
125
- "0.0.0.0",
126
- "::1",
127
- "*.internal",
128
- "*.local",
129
- "192.168.*",
130
- "10.*",
131
- "172.16.*",
132
- ],
133
- allowedDomains: [],
134
- requestTimeout: 10000,
135
- maxResponseSize: 10000,
136
- },
137
- maxRecursionDepth: 2,
138
- maxFileOperations: 50,
139
- rateLimits: {
140
- maxRequestsPerMinute: 30,
141
- maxParallelTasks: 3,
142
- },
143
- contentScan: {
144
- enabled: true,
145
- dangerousPatterns: [
146
- /eval\(/,
147
- /new Function\(/,
148
- /child_process\.exec\(/,
149
- /child_process\.spawn\(/,
150
- /require\('child_process'\)/,
151
- /require\('http'\)\.createServer/,
152
- /require\('net'\)\.createServer/,
153
- /process\.exit\(/,
154
- /while\(true\)/,
155
- /for\(\;\;\)/,
156
- /rm -rf/,
157
- /dd if=/,
158
- /chmod 777/,
159
- /wget /,
160
- /curl /,
161
- /ssh /,
162
- /scp /,
163
- ],
164
- },
165
- sessionEncryption: {
166
- enabled: true,
167
- encryptHistory: true,
168
- encryptSessionLog: true,
169
- },
170
- auditNotifier: {
171
- enabled: true,
172
- minSeverity: "low",
173
- eventTypes: [
174
- "security_block",
175
- "bash_command",
176
- "file_operation",
177
- "network_request",
178
- "authentication",
179
- "configuration_change",
180
- "session_start",
181
- "session_end",
182
- ],
183
- maxRetries: 3,
184
- },
185
- },
186
- };
187
- /**
188
- * Balanced security policy - good security with reasonable flexibility
189
- * Recommended for: development, single-user systems, general use
190
- */
191
- export const BALANCED_POLICY = {
192
- name: "Balanced",
193
- description: "Good security with reasonable flexibility. Default policy.",
194
- preset: "balanced",
195
- recommendedFor: ["development", "single-user", "general-use", "testing"],
196
- config: {
197
- enabled: true,
198
- bash: {
199
- enabled: true,
200
- blacklist: [
201
- "rm",
202
- "dd",
203
- "chmod",
204
- "wget",
205
- "curl",
206
- "scp",
207
- "ssh",
208
- "nc",
209
- "netcat",
210
- "mknod",
211
- "mkfifo",
212
- "useradd",
213
- "usermod",
214
- "passwd",
215
- "sudo",
216
- "su",
217
- "shutdown",
218
- "reboot",
219
- "halt",
220
- "poweroff",
221
- "format",
222
- "fdisk",
223
- "parted",
224
- "mkfs",
225
- ],
226
- whitelist: [],
227
- blockDangerousFlags: true,
228
- dangerousFlags: [
229
- "--force",
230
- "-rf",
231
- "--no-preserve-root",
232
- "--recursive",
233
- "--all",
234
- "--delete",
235
- "--remove",
236
- "--dangerous",
237
- "--yes",
238
- "-y",
239
- "--no-confirm",
240
- ],
241
- dangerousOperators: ["|", "&&", "||", ";", "&", "`"],
242
- logCommands: true,
243
- },
244
- paths: {
245
- enabled: true,
246
- denied: [
247
- ".git/",
248
- "node_modules/",
249
- ".env",
250
- "*.key",
251
- "*.pem",
252
- "*.crt",
253
- "*.p12",
254
- "*.pfx",
255
- "*.secret",
256
- "*.token",
257
- "package-lock.json",
258
- "bun.lock",
259
- "yarn.lock",
260
- "pnpm-lock.yaml",
261
- ".ssh/",
262
- ],
263
- allowed: [],
264
- },
265
- network: {
266
- enabled: true,
267
- deniedDomains: [],
268
- allowedDomains: [],
269
- requestTimeout: 15000,
270
- maxResponseSize: 15000,
271
- },
272
- maxRecursionDepth: 3,
273
- maxFileOperations: 100,
274
- rateLimits: {
275
- maxRequestsPerMinute: 60,
276
- maxParallelTasks: 5,
277
- },
278
- contentScan: {
279
- enabled: true,
280
- dangerousPatterns: [
281
- /eval\(/,
282
- /new Function\(/,
283
- /child_process\.exec\(/,
284
- /child_process\.spawn\(/,
285
- /require\('child_process'\)/,
286
- /process\.exit\(/,
287
- /while\(true\)/,
288
- /for\(\;\;\)/,
289
- /rm -rf/,
290
- /dd if=/,
291
- /chmod 777/,
292
- ],
293
- },
294
- sessionEncryption: {
295
- enabled: false,
296
- encryptHistory: true,
297
- encryptSessionLog: true,
298
- },
299
- auditNotifier: {
300
- enabled: false,
301
- minSeverity: "medium",
302
- eventTypes: [
303
- "security_block",
304
- "bash_command",
305
- "file_operation",
306
- "network_request",
307
- ],
308
- maxRetries: 3,
309
- },
310
- },
311
- };
312
- /**
313
- * Permissive security policy - minimal security, maximum flexibility
314
- * Recommended for: trusted environments, local development, testing
315
- */
316
- export const PERMISSIVE_POLICY = {
317
- name: "Permissive",
318
- description: "Minimal security with maximum flexibility. Use with caution.",
319
- preset: "permissive",
320
- recommendedFor: ["trusted-environment", "local-dev", "testing", "sandbox"],
321
- config: {
322
- enabled: true,
323
- bash: {
324
- enabled: true,
325
- blacklist: [
326
- "rm",
327
- "dd",
328
- "shutdown",
329
- "reboot",
330
- "halt",
331
- "poweroff",
332
- "format",
333
- "fdisk",
334
- "parted",
335
- "mkfs",
336
- ],
337
- whitelist: [],
338
- blockDangerousFlags: false,
339
- dangerousFlags: ["--force", "-rf", "--no-preserve-root"],
340
- dangerousOperators: [],
341
- logCommands: true,
342
- },
343
- paths: {
344
- enabled: true,
345
- denied: [".env", "*.key", "*.pem", "*.crt", "*.p12", "*.pfx"],
346
- allowed: [],
347
- },
348
- network: {
349
- enabled: true,
350
- deniedDomains: [],
351
- allowedDomains: [],
352
- requestTimeout: 30000,
353
- maxResponseSize: 30000,
354
- },
355
- maxRecursionDepth: 5,
356
- maxFileOperations: 200,
357
- rateLimits: {
358
- maxRequestsPerMinute: 120,
359
- maxParallelTasks: 10,
360
- },
361
- contentScan: {
362
- enabled: true,
363
- dangerousPatterns: [
364
- /eval\(/,
365
- /new Function\(/,
366
- /while\(true\)/,
367
- /for\(\;\;\)/,
368
- /rm -rf/,
369
- /dd if=/,
370
- ],
371
- },
372
- sessionEncryption: {
373
- enabled: false,
374
- encryptHistory: false,
375
- encryptSessionLog: false,
376
- },
377
- auditNotifier: {
378
- enabled: false,
379
- minSeverity: "high",
380
- eventTypes: ["security_block"],
381
- maxRetries: 2,
382
- },
383
- },
384
- };
385
- /**
386
- * All available security policies
387
- */
388
- export const SECURITY_POLICIES = {
389
- strict: STRICT_POLICY,
390
- balanced: BALANCED_POLICY,
391
- permissive: PERMISSIVE_POLICY,
392
- custom: {
393
- name: "Custom",
394
- description: "Custom security configuration",
395
- preset: "custom",
396
- recommendedFor: [],
397
- config: {},
398
- },
399
- };
400
- /**
401
- * Security policy manager
402
- */
403
- export class SecurityPolicyManager {
404
- currentPolicy = "balanced";
405
- customConfig = {};
406
- /**
407
- * Get all available policies
408
- */
409
- getPolicies() {
410
- return Object.values(SECURITY_POLICIES);
411
- }
412
- /**
413
- * Get a specific policy by name
414
- */
415
- getPolicy(preset) {
416
- return SECURITY_POLICIES[preset] || SECURITY_POLICIES.balanced;
417
- }
418
- /**
419
- * Get the current policy
420
- */
421
- getCurrentPolicy() {
422
- if (this.currentPolicy === "custom") {
423
- return {
424
- ...SECURITY_POLICIES.custom,
425
- config: this.customConfig,
426
- };
427
- }
428
- return this.getPolicy(this.currentPolicy);
429
- }
430
- /**
431
- * Set the current policy
432
- */
433
- setPolicy(preset) {
434
- this.currentPolicy = preset;
435
- }
436
- /**
437
- * Set custom configuration (for 'custom' preset)
438
- */
439
- setCustomConfig(config) {
440
- this.customConfig = config;
441
- this.currentPolicy = "custom";
442
- }
443
- /**
444
- * Get the current security configuration
445
- */
446
- getConfig() {
447
- const policy = this.getCurrentPolicy();
448
- return mergeSecurityConfig({
449
- ...policy.config,
450
- ...(this.currentPolicy === "custom" ? this.customConfig : {}),
451
- });
452
- }
453
- /**
454
- * Apply a policy and return the merged configuration
455
- */
456
- applyPolicy(preset, customOverrides) {
457
- this.setPolicy(preset);
458
- if (customOverrides) {
459
- this.customConfig = customOverrides;
460
- this.currentPolicy = "custom";
461
- }
462
- return this.getConfig();
463
- }
464
- /**
465
- * Get policy recommendation for a use case
466
- */
467
- getRecommendation(useCase) {
468
- for (const policy of this.getPolicies()) {
469
- if (policy.recommendedFor.includes(useCase)) {
470
- return policy;
471
- }
472
- }
473
- return BALANCED_POLICY;
474
- }
475
- /**
476
- * Check if current policy allows a specific action
477
- */
478
- allowsAction(action, context) {
479
- const config = this.getConfig();
480
- switch (action) {
481
- case "bash":
482
- if (context?.command) {
483
- const cmd = context.command.split(" ")[0];
484
- return !config.bash.blacklist.includes(cmd);
485
- }
486
- return true;
487
- case "file_access":
488
- if (context?.path) {
489
- for (const denied of config.paths.denied) {
490
- if (context.path.includes(denied.replace("*", ""))) {
491
- return false;
492
- }
493
- }
494
- }
495
- return true;
496
- case "network":
497
- if (context?.path) {
498
- for (const denied of config.network.deniedDomains) {
499
- if (context.path.includes(denied.replace("*", ""))) {
500
- return false;
501
- }
502
- }
503
- }
504
- return true;
505
- default:
506
- return true;
507
- }
508
- }
509
- /**
510
- * Get policy comparison
511
- */
512
- comparePolicies(policy1, policy2) {
513
- const config1 = this.getPolicy(policy1).config;
514
- const config2 = this.getPolicy(policy2).config;
515
- const comparison = {};
516
- const keys = new Set([...Object.keys(config1), ...Object.keys(config2)]);
517
- for (const key of keys) {
518
- comparison[key] = {
519
- policy1: config1[key],
520
- policy2: config2[key],
521
- };
522
- }
523
- return comparison;
524
- }
525
- }
526
- /**
527
- * Global security policy manager instance
528
- */
529
- export const globalSecurityPolicyManager = new SecurityPolicyManager();
530
- /**
531
- * Create a security policy manager with custom configuration
532
- */
533
- export function createSecurityPolicyManager() {
534
- return new SecurityPolicyManager();
535
- }
536
- /**
537
- * Get a policy by name
538
- */
539
- export function getSecurityPolicy(preset) {
540
- return globalSecurityPolicyManager.getPolicy(preset);
541
- }
542
- /**
543
- * Apply a security policy
544
- */
545
- export function applySecurityPolicy(preset, customOverrides) {
546
- return globalSecurityPolicyManager.applyPolicy(preset, customOverrides);
547
- }