blockmine 1.20.0 → 1.22.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 (434) hide show
  1. package/.claude/agents/README.md +469 -0
  2. package/.claude/agents/auth-route-debugger.md +118 -0
  3. package/.claude/agents/auth-route-tester.md +93 -0
  4. package/.claude/agents/auto-error-resolver.md +97 -0
  5. package/.claude/agents/build-optimizer.md +236 -0
  6. package/.claude/agents/code-architecture-reviewer.md +83 -0
  7. package/.claude/agents/code-refactor-master.md +94 -0
  8. package/.claude/agents/cost-optimizer.md +134 -0
  9. package/.claude/agents/deployment-orchestrator.md +113 -0
  10. package/.claude/agents/documentation-architect.md +82 -0
  11. package/.claude/agents/frontend-error-fixer.md +77 -0
  12. package/.claude/agents/iac-code-generator.md +71 -0
  13. package/.claude/agents/incident-responder.md +346 -0
  14. package/.claude/agents/infrastructure-architect.md +31 -0
  15. package/.claude/agents/kubernetes-specialist.md +56 -0
  16. package/.claude/agents/migration-planner.md +181 -0
  17. package/.claude/agents/network-architect.md +196 -0
  18. package/.claude/agents/plan-reviewer.md +52 -0
  19. package/.claude/agents/refactor-planner.md +63 -0
  20. package/.claude/agents/security-scanner.md +102 -0
  21. package/.claude/agents/web-research-specialist.md +78 -0
  22. package/.claude/commands/cost-analysis.md +315 -0
  23. package/.claude/commands/dev-docs-update.md +55 -0
  24. package/.claude/commands/dev-docs.md +51 -0
  25. package/.claude/commands/incident-debug.md +247 -0
  26. package/.claude/commands/infra-plan.md +81 -0
  27. package/.claude/commands/migration-plan.md +478 -0
  28. package/.claude/commands/route-research-for-testing.md +37 -0
  29. package/.claude/commands/security-review.md +66 -0
  30. package/.claude/hooks/CONFIG.md +448 -0
  31. package/.claude/hooks/README.md +163 -0
  32. package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +226 -0
  33. package/.claude/hooks/WINDOWS_HOOKS_README.md +151 -0
  34. package/.claude/hooks/add-skill-activation-banners.ts +132 -0
  35. package/.claude/hooks/comprehensive-skill-test.ts +1315 -0
  36. package/.claude/hooks/error-handling-reminder.sh +12 -0
  37. package/.claude/hooks/error-handling-reminder.ts +222 -0
  38. package/.claude/hooks/k8s-manifest-validator.sh +56 -0
  39. package/.claude/hooks/package-lock.json +556 -0
  40. package/.claude/hooks/package.json +16 -0
  41. package/.claude/hooks/post-tool-use-tracker.ps1 +174 -0
  42. package/.claude/hooks/post-tool-use-tracker.sh +183 -0
  43. package/.claude/hooks/security-policy-check.sh +247 -0
  44. package/.claude/hooks/skill-activation-prompt.ps1 +10 -0
  45. package/.claude/hooks/skill-activation-prompt.sh +10 -0
  46. package/.claude/hooks/skill-activation-prompt.ts +141 -0
  47. package/.claude/hooks/stop-build-check-enhanced.sh +130 -0
  48. package/.claude/hooks/terraform-validator.sh +53 -0
  49. package/.claude/hooks/test-input.json +7 -0
  50. package/.claude/hooks/test-skill-activation.ts +427 -0
  51. package/.claude/hooks/trigger-build-resolver.sh +79 -0
  52. package/.claude/hooks/tsc-check.sh +173 -0
  53. package/.claude/hooks/tsconfig.json +19 -0
  54. package/.claude/settings.json +55 -0
  55. package/.claude/settings.local.json +28 -3
  56. package/.claude/skills/README.md +507 -0
  57. package/.claude/skills/api-engineering/SKILL.md +63 -0
  58. package/.claude/skills/api-engineering/resources/api-versioning.md +88 -0
  59. package/.claude/skills/api-engineering/resources/graphql-patterns.md +106 -0
  60. package/.claude/skills/api-engineering/resources/rate-limiting.md +118 -0
  61. package/.claude/skills/api-engineering/resources/rest-api-design.md +105 -0
  62. package/.claude/skills/backend-dev-guidelines/SKILL.md +306 -0
  63. package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
  64. package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
  65. package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
  66. package/.claude/skills/backend-dev-guidelines/resources/configuration.md +275 -0
  67. package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
  68. package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
  69. package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
  70. package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
  71. package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
  72. package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
  73. package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
  74. package/.claude/skills/budget-and-cost-management/SKILL.md +850 -0
  75. package/.claude/skills/build-engineering/SKILL.md +431 -0
  76. package/.claude/skills/build-engineering/resources/artifact-repositories.md +72 -0
  77. package/.claude/skills/build-engineering/resources/build-caching.md +96 -0
  78. package/.claude/skills/build-engineering/resources/build-pipelines.md +105 -0
  79. package/.claude/skills/build-engineering/resources/build-security.md +95 -0
  80. package/.claude/skills/build-engineering/resources/build-systems.md +389 -0
  81. package/.claude/skills/build-engineering/resources/compilation-optimization.md +201 -0
  82. package/.claude/skills/build-engineering/resources/dependency-management.md +73 -0
  83. package/.claude/skills/build-engineering/resources/monorepo-builds.md +110 -0
  84. package/.claude/skills/build-engineering/resources/performance-optimization.md +113 -0
  85. package/.claude/skills/build-engineering/resources/reproducible-builds.md +82 -0
  86. package/.claude/skills/cloud-engineering/SKILL.md +675 -0
  87. package/.claude/skills/cloud-engineering/resources/aws-patterns.md +742 -0
  88. package/.claude/skills/cloud-engineering/resources/azure-patterns.md +714 -0
  89. package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +987 -0
  90. package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +757 -0
  91. package/.claude/skills/cloud-engineering/resources/cloud-networking.md +1058 -0
  92. package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +1530 -0
  93. package/.claude/skills/cloud-engineering/resources/cloud-security.md +990 -0
  94. package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +758 -0
  95. package/.claude/skills/cloud-engineering/resources/migration-strategies.md +820 -0
  96. package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +670 -0
  97. package/.claude/skills/cloud-engineering/resources/oci-patterns.md +1198 -0
  98. package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +795 -0
  99. package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +966 -0
  100. package/.claude/skills/cybersecurity/SKILL.md +409 -0
  101. package/.claude/skills/cybersecurity/resources/security-architecture.md +266 -0
  102. package/.claude/skills/database-engineering/SKILL.md +61 -0
  103. package/.claude/skills/database-engineering/resources/backup-and-recovery.md +72 -0
  104. package/.claude/skills/database-engineering/resources/database-replication.md +63 -0
  105. package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +70 -0
  106. package/.claude/skills/database-engineering/resources/query-optimization.md +68 -0
  107. package/.claude/skills/devsecops/SKILL.md +374 -0
  108. package/.claude/skills/devsecops/resources/ci-cd-security.md +204 -0
  109. package/.claude/skills/devsecops/resources/compliance-automation.md +530 -0
  110. package/.claude/skills/devsecops/resources/compliance-frameworks.md +2322 -0
  111. package/.claude/skills/devsecops/resources/container-security.md +915 -0
  112. package/.claude/skills/devsecops/resources/cspm-integration.md +1440 -0
  113. package/.claude/skills/devsecops/resources/policy-enforcement.md +619 -0
  114. package/.claude/skills/devsecops/resources/secrets-management.md +755 -0
  115. package/.claude/skills/devsecops/resources/security-monitoring.md +146 -0
  116. package/.claude/skills/devsecops/resources/security-scanning.md +887 -0
  117. package/.claude/skills/devsecops/resources/security-testing.md +203 -0
  118. package/.claude/skills/devsecops/resources/supply-chain-security.md +518 -0
  119. package/.claude/skills/devsecops/resources/vulnerability-management.md +481 -0
  120. package/.claude/skills/devsecops/resources/zero-trust-architecture.md +177 -0
  121. package/.claude/skills/documentation-as-code/SKILL.md +323 -0
  122. package/.claude/skills/documentation-as-code/resources/api-documentation.md +90 -0
  123. package/.claude/skills/documentation-as-code/resources/changelog-management.md +79 -0
  124. package/.claude/skills/documentation-as-code/resources/diagram-generation.md +44 -0
  125. package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +99 -0
  126. package/.claude/skills/documentation-as-code/resources/documentation-automation.md +68 -0
  127. package/.claude/skills/documentation-as-code/resources/documentation-sites.md +79 -0
  128. package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +162 -0
  129. package/.claude/skills/documentation-as-code/resources/openapi-specification.md +77 -0
  130. package/.claude/skills/documentation-as-code/resources/readme-engineering.md +60 -0
  131. package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +202 -0
  132. package/.claude/skills/engineering-management/SKILL.md +356 -0
  133. package/.claude/skills/engineering-management/resources/career-ladders.md +609 -0
  134. package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +555 -0
  135. package/.claude/skills/engineering-management/resources/one-on-one-guides.md +609 -0
  136. package/.claude/skills/engineering-management/resources/resource-planning.md +557 -0
  137. package/.claude/skills/engineering-management/resources/team-organization-patterns.md +491 -0
  138. package/.claude/skills/engineering-management/resources/technical-interviews.md +474 -0
  139. package/.claude/skills/engineering-operations-management/SKILL.md +817 -0
  140. package/.claude/skills/error-tracking/SKILL.md +379 -0
  141. package/.claude/skills/frontend-dev-guidelines/SKILL.md +403 -0
  142. package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
  143. package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
  144. package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
  145. package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
  146. package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
  147. package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
  148. package/.claude/skills/frontend-dev-guidelines/resources/performance.md +406 -0
  149. package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
  150. package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
  151. package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
  152. package/.claude/skills/general-it-engineering/SKILL.md +393 -0
  153. package/.claude/skills/general-it-engineering/resources/asset-management.md +712 -0
  154. package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +817 -0
  155. package/.claude/skills/general-it-engineering/resources/business-continuity.md +786 -0
  156. package/.claude/skills/general-it-engineering/resources/change-management.md +715 -0
  157. package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +729 -0
  158. package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +738 -0
  159. package/.claude/skills/general-it-engineering/resources/incident-service-management.md +834 -0
  160. package/.claude/skills/general-it-engineering/resources/it-governance.md +753 -0
  161. package/.claude/skills/general-it-engineering/resources/itil-framework.md +503 -0
  162. package/.claude/skills/general-it-engineering/resources/service-management.md +669 -0
  163. package/.claude/skills/infrastructure-architecture/SKILL.md +328 -0
  164. package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +505 -0
  165. package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +528 -0
  166. package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +453 -0
  167. package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +773 -0
  168. package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +499 -0
  169. package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +501 -0
  170. package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +535 -0
  171. package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +512 -0
  172. package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +608 -0
  173. package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +562 -0
  174. package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +538 -0
  175. package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +489 -0
  176. package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +1000 -0
  177. package/.claude/skills/infrastructure-strategy/SKILL.md +924 -0
  178. package/.claude/skills/network-engineering/SKILL.md +385 -0
  179. package/.claude/skills/network-engineering/resources/dns-management.md +738 -0
  180. package/.claude/skills/network-engineering/resources/load-balancing.md +820 -0
  181. package/.claude/skills/network-engineering/resources/network-architecture.md +546 -0
  182. package/.claude/skills/network-engineering/resources/network-security.md +921 -0
  183. package/.claude/skills/network-engineering/resources/network-troubleshooting.md +749 -0
  184. package/.claude/skills/network-engineering/resources/routing-switching.md +373 -0
  185. package/.claude/skills/network-engineering/resources/sdn-networking.md +695 -0
  186. package/.claude/skills/network-engineering/resources/service-mesh-networking.md +777 -0
  187. package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +444 -0
  188. package/.claude/skills/network-engineering/resources/vpn-connectivity.md +672 -0
  189. package/.claude/skills/observability-engineering/SKILL.md +101 -0
  190. package/.claude/skills/observability-engineering/resources/apm-tools.md +97 -0
  191. package/.claude/skills/observability-engineering/resources/correlation-strategies.md +87 -0
  192. package/.claude/skills/observability-engineering/resources/distributed-tracing.md +98 -0
  193. package/.claude/skills/observability-engineering/resources/logs-aggregation.md +118 -0
  194. package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +141 -0
  195. package/.claude/skills/observability-engineering/resources/opentelemetry.md +110 -0
  196. package/.claude/skills/platform-engineering/SKILL.md +555 -0
  197. package/.claude/skills/platform-engineering/resources/architecture-overview.md +600 -0
  198. package/.claude/skills/platform-engineering/resources/container-orchestration.md +916 -0
  199. package/.claude/skills/platform-engineering/resources/cost-optimization.md +634 -0
  200. package/.claude/skills/platform-engineering/resources/developer-platforms.md +670 -0
  201. package/.claude/skills/platform-engineering/resources/gitops-automation.md +650 -0
  202. package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +778 -0
  203. package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +708 -0
  204. package/.claude/skills/platform-engineering/resources/multi-tenancy.md +602 -0
  205. package/.claude/skills/platform-engineering/resources/platform-security.md +711 -0
  206. package/.claude/skills/platform-engineering/resources/resource-management.md +592 -0
  207. package/.claude/skills/platform-engineering/resources/service-mesh.md +628 -0
  208. package/.claude/skills/release-engineering/SKILL.md +393 -0
  209. package/.claude/skills/release-engineering/resources/artifact-management.md +108 -0
  210. package/.claude/skills/release-engineering/resources/build-optimization.md +84 -0
  211. package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +411 -0
  212. package/.claude/skills/release-engineering/resources/deployment-strategies.md +197 -0
  213. package/.claude/skills/release-engineering/resources/pipeline-security.md +62 -0
  214. package/.claude/skills/release-engineering/resources/progressive-delivery.md +83 -0
  215. package/.claude/skills/release-engineering/resources/release-automation.md +68 -0
  216. package/.claude/skills/release-engineering/resources/release-orchestration.md +77 -0
  217. package/.claude/skills/release-engineering/resources/rollback-strategies.md +66 -0
  218. package/.claude/skills/release-engineering/resources/versioning-strategies.md +59 -0
  219. package/.claude/skills/route-tester/SKILL.md +392 -0
  220. package/.claude/skills/skill-developer/ADVANCED.md +197 -0
  221. package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
  222. package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
  223. package/.claude/skills/skill-developer/SKILL.md +430 -0
  224. package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
  225. package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
  226. package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
  227. package/.claude/skills/skill-rules.json +2940 -0
  228. package/.claude/skills/sre/SKILL.md +464 -0
  229. package/.claude/skills/sre/resources/alerting-best-practices.md +282 -0
  230. package/.claude/skills/sre/resources/capacity-planning.md +226 -0
  231. package/.claude/skills/sre/resources/chaos-engineering.md +193 -0
  232. package/.claude/skills/sre/resources/disaster-recovery.md +232 -0
  233. package/.claude/skills/sre/resources/incident-management.md +436 -0
  234. package/.claude/skills/sre/resources/observability-stack.md +240 -0
  235. package/.claude/skills/sre/resources/on-call-runbooks.md +167 -0
  236. package/.claude/skills/sre/resources/performance-optimization.md +108 -0
  237. package/.claude/skills/sre/resources/reliability-patterns.md +183 -0
  238. package/.claude/skills/sre/resources/slo-sli-sla.md +464 -0
  239. package/.claude/skills/sre/resources/toil-reduction.md +145 -0
  240. package/.claude/skills/systems-engineering/SKILL.md +648 -0
  241. package/.claude/skills/systems-engineering/resources/automation-patterns.md +771 -0
  242. package/.claude/skills/systems-engineering/resources/configuration-management.md +998 -0
  243. package/.claude/skills/systems-engineering/resources/linux-administration.md +672 -0
  244. package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +982 -0
  245. package/.claude/skills/systems-engineering/resources/performance-tuning.md +871 -0
  246. package/.claude/skills/systems-engineering/resources/powershell-scripting.md +482 -0
  247. package/.claude/skills/systems-engineering/resources/security-hardening.md +739 -0
  248. package/.claude/skills/systems-engineering/resources/shell-scripting.md +915 -0
  249. package/.claude/skills/systems-engineering/resources/storage-management.md +628 -0
  250. package/.claude/skills/systems-engineering/resources/system-monitoring.md +787 -0
  251. package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +753 -0
  252. package/.claude/skills/systems-engineering/resources/windows-administration.md +738 -0
  253. package/.claude/skills/technical-leadership/SKILL.md +728 -0
  254. package/CHANGELOG.md +90 -39
  255. package/README.md +94 -0
  256. package/backend/docs/SECRETS_DOCUMENTATION.md +327 -0
  257. package/backend/jest.config.js +59 -0
  258. package/backend/package-lock.json +6129 -0
  259. package/backend/package.json +16 -4
  260. package/backend/prisma/migrations/20251026104609_add_websocket_api/migration.sql +33 -0
  261. package/backend/prisma/schema.prisma +33 -0
  262. package/backend/src/__tests__/core/DependencyService.test.js +336 -0
  263. package/backend/src/__tests__/core/UserService.test.js +875 -0
  264. package/backend/src/__tests__/repositories/BaseRepository.test.js +146 -0
  265. package/backend/src/__tests__/repositories/BotRepository.test.js +118 -0
  266. package/backend/src/__tests__/repositories/CommandRepository.test.js +132 -0
  267. package/backend/src/__tests__/repositories/EventGraphRepository.test.js +93 -0
  268. package/backend/src/__tests__/repositories/GroupRepository.test.js +155 -0
  269. package/backend/src/__tests__/repositories/PermissionRepository.test.js +130 -0
  270. package/backend/src/__tests__/repositories/PluginRepository.test.js +107 -0
  271. package/backend/src/__tests__/repositories/ServerRepository.test.js +80 -0
  272. package/backend/src/__tests__/repositories/UserRepository.test.js +128 -0
  273. package/backend/src/__tests__/secretsFilter.test.js +425 -0
  274. package/backend/src/__tests__/services/BotLifecycleService.test.js +411 -0
  275. package/backend/src/__tests__/services/BotProcessManager.test.js +285 -0
  276. package/backend/src/__tests__/services/CacheManager.test.js +125 -0
  277. package/backend/src/__tests__/services/CommandExecutionService.test.js +460 -0
  278. package/backend/src/__tests__/services/ResourceMonitorService.test.js +207 -0
  279. package/backend/src/__tests__/services/TelemetryService.test.js +291 -0
  280. package/backend/src/__tests__/setup.js +25 -0
  281. package/backend/src/api/routes/apiKeys.js +181 -0
  282. package/backend/src/api/routes/bots.js +49 -7
  283. package/backend/src/api/routes/plugins.js +2 -1
  284. package/backend/src/api/routes/system.js +174 -0
  285. package/backend/src/container.js +82 -0
  286. package/backend/src/core/BotManager.js +142 -871
  287. package/backend/src/core/BotManager.old.js +1093 -0
  288. package/backend/src/core/BotProcess.js +1092 -850
  289. package/backend/src/core/BreakLoopSignal.js +8 -0
  290. package/backend/src/core/EventGraphManager.js +280 -193
  291. package/backend/src/core/GraphExecutionEngine.js +321 -928
  292. package/backend/src/core/MessageQueue.js +27 -6
  293. package/backend/src/core/NodeRegistry.js +37 -991
  294. package/backend/src/core/PluginManager.js +62 -12
  295. package/backend/src/core/PrismaService.js +32 -0
  296. package/backend/src/core/UserService.js +3 -3
  297. package/backend/src/core/__tests__/PrismaService.test.js +24 -0
  298. package/backend/src/core/commands/README.md +305 -0
  299. package/backend/src/core/commands/dev.js +13 -7
  300. package/backend/src/core/commands/ping.js +10 -4
  301. package/backend/src/core/commands/whois.js +63 -0
  302. package/backend/src/core/config/validation.js +27 -0
  303. package/backend/src/core/constants/graphTypes.js +21 -0
  304. package/backend/src/core/node-registries/actions.js +132 -0
  305. package/backend/src/core/node-registries/arrays.js +137 -0
  306. package/backend/src/core/node-registries/bot.js +23 -0
  307. package/backend/src/core/node-registries/data.js +290 -0
  308. package/backend/src/core/node-registries/debug.js +26 -0
  309. package/backend/src/core/node-registries/events.js +187 -0
  310. package/backend/src/core/node-registries/flow.js +139 -0
  311. package/backend/src/core/node-registries/logic.js +45 -0
  312. package/backend/src/core/node-registries/math.js +42 -0
  313. package/backend/src/core/node-registries/objects.js +98 -0
  314. package/backend/src/core/node-registries/strings.js +153 -0
  315. package/backend/src/core/node-registries/time.js +113 -0
  316. package/backend/src/core/node-registries/users.js +79 -0
  317. package/backend/src/core/nodes/actions/bot_look_at.js +36 -0
  318. package/backend/src/core/nodes/actions/bot_set_variable.js +32 -0
  319. package/backend/src/core/nodes/actions/http_request.js +98 -0
  320. package/backend/src/core/nodes/actions/send_log.js +28 -0
  321. package/backend/src/core/nodes/actions/send_message.js +32 -0
  322. package/backend/src/core/nodes/actions/send_websocket_response.js +33 -0
  323. package/backend/src/core/nodes/arrays/add_element.js +23 -0
  324. package/backend/src/core/nodes/arrays/contains.js +40 -0
  325. package/backend/src/core/nodes/arrays/find_index.js +23 -0
  326. package/backend/src/core/nodes/arrays/get_by_index.js +23 -0
  327. package/backend/src/core/nodes/arrays/get_next.js +35 -0
  328. package/backend/src/core/nodes/arrays/get_random_element.js +32 -0
  329. package/backend/src/core/nodes/arrays/remove_by_index.js +30 -0
  330. package/backend/src/core/nodes/bot/get_position.js +20 -0
  331. package/backend/src/core/nodes/data/array_literal.js +31 -0
  332. package/backend/src/core/nodes/data/boolean_literal.js +21 -0
  333. package/backend/src/core/nodes/data/cast.js +42 -0
  334. package/backend/src/core/nodes/data/datetime_literal.js +27 -0
  335. package/backend/src/core/nodes/data/entity_info.js +69 -0
  336. package/backend/src/core/nodes/data/get_argument.js +23 -0
  337. package/backend/src/core/nodes/data/get_bot_look.js +14 -0
  338. package/backend/src/core/nodes/data/get_entity_field.js +18 -0
  339. package/backend/src/core/nodes/data/get_nearby_entities.js +32 -0
  340. package/backend/src/core/nodes/data/get_nearby_players.js +64 -0
  341. package/backend/src/core/nodes/data/get_server_players.js +18 -0
  342. package/backend/src/core/nodes/data/get_user_field.js +40 -0
  343. package/backend/src/core/nodes/data/get_variable.js +23 -0
  344. package/backend/src/core/nodes/data/length.js +25 -0
  345. package/backend/src/core/nodes/data/make_object.js +31 -0
  346. package/backend/src/core/nodes/data/number_literal.js +21 -0
  347. package/backend/src/core/nodes/data/string_literal.js +34 -0
  348. package/backend/src/core/nodes/data/type_check.js +53 -0
  349. package/backend/src/core/nodes/debug/log.js +16 -0
  350. package/backend/src/core/nodes/flow/branch.js +15 -0
  351. package/backend/src/core/nodes/flow/break.js +14 -0
  352. package/backend/src/core/nodes/flow/delay.js +43 -0
  353. package/backend/src/core/nodes/flow/for_each.js +39 -0
  354. package/backend/src/core/nodes/flow/sequence.js +16 -0
  355. package/backend/src/core/nodes/flow/switch.js +47 -0
  356. package/backend/src/core/nodes/flow/while.js +64 -0
  357. package/backend/src/core/nodes/logic/__tests__/compare.test.js +83 -0
  358. package/backend/src/core/nodes/logic/compare.js +33 -0
  359. package/backend/src/core/nodes/logic/operation.js +35 -0
  360. package/backend/src/core/nodes/math/__tests__/operation.test.js +65 -0
  361. package/backend/src/core/nodes/math/operation.js +31 -0
  362. package/backend/src/core/nodes/math/random_number.js +43 -0
  363. package/backend/src/core/nodes/objects/create.js +40 -0
  364. package/backend/src/core/nodes/objects/delete.js +26 -0
  365. package/backend/src/core/nodes/objects/get.js +23 -0
  366. package/backend/src/core/nodes/objects/has_key.js +30 -0
  367. package/backend/src/core/nodes/objects/set.js +27 -0
  368. package/backend/src/core/nodes/strings/__tests__/concat.test.js +89 -0
  369. package/backend/src/core/nodes/strings/concat.js +27 -0
  370. package/backend/src/core/nodes/strings/contains.js +41 -0
  371. package/backend/src/core/nodes/strings/ends_with.js +43 -0
  372. package/backend/src/core/nodes/strings/equals.js +36 -0
  373. package/backend/src/core/nodes/strings/length.js +36 -0
  374. package/backend/src/core/nodes/strings/matches.js +39 -0
  375. package/backend/src/core/nodes/strings/split.js +37 -0
  376. package/backend/src/core/nodes/strings/starts_with.js +43 -0
  377. package/backend/src/core/nodes/time/__tests__/now.test.js +24 -0
  378. package/backend/src/core/nodes/time/add.js +33 -0
  379. package/backend/src/core/nodes/time/compare.js +35 -0
  380. package/backend/src/core/nodes/time/diff.js +29 -0
  381. package/backend/src/core/nodes/time/format.js +32 -0
  382. package/backend/src/core/nodes/time/now.js +18 -0
  383. package/backend/src/core/nodes/users/check_blacklist.js +37 -0
  384. package/backend/src/core/nodes/users/get_groups.js +36 -0
  385. package/backend/src/core/nodes/users/get_permissions.js +36 -0
  386. package/backend/src/core/nodes/users/set_blacklist.js +37 -0
  387. package/backend/src/core/services/BotLifecycleService.js +596 -0
  388. package/backend/src/core/services/BotProcessManager.js +163 -0
  389. package/backend/src/core/services/CacheManager.js +111 -0
  390. package/backend/src/core/services/CommandExecutionService.js +351 -0
  391. package/backend/src/core/services/ResourceMonitorService.js +90 -0
  392. package/backend/src/core/services/TelemetryService.js +124 -0
  393. package/backend/src/core/services/ValidationService.js +132 -0
  394. package/backend/src/core/services/__tests__/ValidationService.test.js +148 -0
  395. package/backend/src/core/services.js +20 -5
  396. package/backend/src/core/system/CommandContext.js +84 -0
  397. package/backend/src/core/system/Transport.js +78 -0
  398. package/backend/src/core/utils/__tests__/jsonParser.test.js +44 -0
  399. package/backend/src/core/utils/jsonParser.js +18 -0
  400. package/backend/src/core/utils/secretsFilter.js +262 -0
  401. package/backend/src/core/utils/variableParser.js +89 -0
  402. package/backend/src/core/validation/__tests__/nodeSchemas.test.js +175 -0
  403. package/backend/src/core/validation/nodeSchemas.js +112 -0
  404. package/backend/src/lib/prisma.js +2 -4
  405. package/backend/src/real-time/botApi/handlers/commandHandlers.js +28 -0
  406. package/backend/src/real-time/botApi/handlers/graphHandlers.js +99 -0
  407. package/backend/src/real-time/botApi/handlers/graphWebSocketHandlers.js +147 -0
  408. package/backend/src/real-time/botApi/handlers/index.js +43 -0
  409. package/backend/src/real-time/botApi/handlers/messageHandlers.js +66 -0
  410. package/backend/src/real-time/botApi/handlers/statusHandlers.js +17 -0
  411. package/backend/src/real-time/botApi/handlers/userHandlers.js +141 -0
  412. package/backend/src/real-time/botApi/index.js +40 -0
  413. package/backend/src/real-time/botApi/middleware.js +79 -0
  414. package/backend/src/real-time/botApi/utils.js +54 -0
  415. package/backend/src/real-time/socketHandler.js +6 -2
  416. package/backend/src/repositories/BaseRepository.js +43 -0
  417. package/backend/src/repositories/BotRepository.js +42 -0
  418. package/backend/src/repositories/CommandRepository.js +53 -0
  419. package/backend/src/repositories/EventGraphRepository.js +40 -0
  420. package/backend/src/repositories/GroupRepository.js +69 -0
  421. package/backend/src/repositories/PermissionRepository.js +48 -0
  422. package/backend/src/repositories/PluginRepository.js +42 -0
  423. package/backend/src/repositories/ServerRepository.js +27 -0
  424. package/backend/src/repositories/UserRepository.js +48 -0
  425. package/backend/src/server.js +3 -0
  426. package/backend/src/test-refactor.js +85 -0
  427. package/frontend/dist/assets/index-CfTo92bP.css +1 -0
  428. package/frontend/dist/assets/index-CiFD5X9Z.js +8344 -0
  429. package/frontend/dist/index.html +2 -2
  430. package/frontend/package.json +1 -5
  431. package/package.json +2 -1
  432. package/frontend/dist/assets/index-BFd7YoAj.css +0 -1
  433. package/frontend/dist/assets/index-CMMutadc.js +0 -8352
  434. package/nul +0 -0
@@ -0,0 +1,489 @@
1
+ # System Design Principles
2
+
3
+ Fundamental principles and patterns for designing scalable, reliable, maintainable systems.
4
+
5
+ ## Core Principles
6
+
7
+ ### 1. SOLID Principles (for Architecture)
8
+
9
+ **Single Responsibility**
10
+ Each component/service should have one reason to change.
11
+ ```
12
+ ❌ Bad: "UserService" handles auth, profile, notifications, billing
13
+ ✅ Good: Separate services: AuthService, ProfileService, NotificationService, BillingService
14
+ ```
15
+
16
+ **Open-Closed**
17
+ Open for extension, closed for modification.
18
+ ```
19
+ ✅ Plugin architecture, event-driven systems, strategy pattern
20
+ ```
21
+
22
+ **Liskov Substitution**
23
+ Implementations should be interchangeable.
24
+ ```
25
+ ✅ Interface-based design, dependency injection
26
+ ```
27
+
28
+ **Interface Segregation**
29
+ Many specific interfaces > one general interface.
30
+ ```
31
+ ❌ One large "IUserService" with 50 methods
32
+ ✅ IUserAuth, IUserProfile, IUserSettings (focused interfaces)
33
+ ```
34
+
35
+ **Dependency Inversion**
36
+ Depend on abstractions, not concretions.
37
+ ```typescript
38
+ // ❌ Direct dependency
39
+ class UserController {
40
+ constructor() {
41
+ this.db = new PostgresDB(); // Concrete
42
+ }
43
+ }
44
+
45
+ // ✅ Dependency injection
46
+ class UserController {
47
+ constructor(private db: IDatabase) {} // Abstract
48
+ }
49
+ ```
50
+
51
+ ---
52
+
53
+ ### 2. 12-Factor App
54
+
55
+ **I. Codebase:** One codebase, many deploys
56
+ ```
57
+ ✅ Single repo → Deploy to dev, staging, prod
58
+ ```
59
+
60
+ **II. Dependencies:** Explicitly declare dependencies
61
+ ```yaml
62
+ # package.json
63
+ {
64
+ "dependencies": {
65
+ "express": "4.18.0", # Explicit version
66
+ "prisma": "5.0.0"
67
+ }
68
+ }
69
+ ```
70
+
71
+ **III. Config:** Store config in environment
72
+ ```typescript
73
+ // ❌ Hardcoded
74
+ const dbUrl = "postgresql://localhost:5432/mydb";
75
+
76
+ // ✅ Environment variable
77
+ const dbUrl = process.env.DATABASE_URL;
78
+ ```
79
+
80
+ **IV. Backing Services:** Treat as attached resources
81
+ ```
82
+ Database, cache, queue = swappable resources via URLs
83
+ ```
84
+
85
+ **V. Build, Release, Run:** Strict separation
86
+ ```
87
+ Build → Release (build + config) → Run
88
+ ```
89
+
90
+ **VI. Processes:** Stateless processes
91
+ ```
92
+ ✅ Store session in Redis, not in-memory
93
+ ```
94
+
95
+ **VII. Port Binding:** Export services via port
96
+ ```typescript
97
+ app.listen(process.env.PORT || 3000);
98
+ ```
99
+
100
+ **VIII. Concurrency:** Scale via process model
101
+ ```
102
+ ✅ Horizontal scaling (add more processes)
103
+ ❌ Vertical scaling only (bigger server)
104
+ ```
105
+
106
+ **IX. Disposability:** Fast startup, graceful shutdown
107
+ ```typescript
108
+ process.on('SIGTERM', async () => {
109
+ await server.close();
110
+ await db.disconnect();
111
+ process.exit(0);
112
+ });
113
+ ```
114
+
115
+ **X. Dev/Prod Parity:** Keep environments similar
116
+ ```
117
+ ✅ Docker ensures same environment everywhere
118
+ ```
119
+
120
+ **XI. Logs:** Treat logs as event streams
121
+ ```
122
+ ✅ Log to stdout → Aggregation tool (ELK, Loki)
123
+ ❌ Log to files directly
124
+ ```
125
+
126
+ **XII. Admin Processes:** Run admin tasks as one-off processes
127
+ ```bash
128
+ # ✅ One-off migration
129
+ npm run migrate
130
+
131
+ # ❌ Built into application
132
+ ```
133
+
134
+ ---
135
+
136
+ ### 3. CAP Theorem
137
+
138
+ **You can have at most 2 of 3:**
139
+
140
+ ```
141
+ Consistency (C): All nodes see same data
142
+ Availability (A): System always responds
143
+ Partition Tolerance (P): System works despite network splits
144
+
145
+ Network partitions WILL happen → Must choose: CP or AP
146
+ ```
147
+
148
+ **CP Systems (Consistency + Partition Tolerance):**
149
+ - MongoDB (default), HBase, Redis
150
+ - Sacrifice: Availability (may reject requests during partition)
151
+ - Use case: Banking (consistency critical)
152
+
153
+ **AP Systems (Availability + Partition Tolerance):**
154
+ - Cassandra, DynamoDB, Couchbase
155
+ - Sacrifice: Consistency (eventual consistency)
156
+ - Use case: Social media (availability critical)
157
+
158
+ **CA Systems (Consistency + Availability):**
159
+ - Traditional RDBMS in single datacenter
160
+ - Sacrifice: Partition Tolerance (not distributed)
161
+ - Reality: Network partitions happen, so CA is theoretical
162
+
163
+ ---
164
+
165
+ ### 4. Eventual Consistency
166
+
167
+ **Definition:** System will become consistent given enough time without new updates.
168
+
169
+ ```
170
+ User posts comment (writes to primary DB)
171
+
172
+ Replication to replicas (takes 100ms)
173
+
174
+ Read from replica immediately → May not see comment yet
175
+
176
+ Wait 100ms → Comment appears
177
+ ```
178
+
179
+ **Handling in Code:**
180
+ ```typescript
181
+ // After write, read from primary (strong consistency)
182
+ await db.comments.create({ data: comment });
183
+ const newComment = await db.$queryRaw`
184
+ SELECT * FROM comments WHERE id = ${comment.id}
185
+ `; // Guaranteed to see the write
186
+
187
+ // Or: Accept eventual consistency
188
+ await db.comments.create({ data: comment });
189
+ // UI shows optimistic update immediately
190
+ // Background sync handles replication
191
+ ```
192
+
193
+ ---
194
+
195
+ ### 5. Idempotency
196
+
197
+ **Definition:** Operation can be applied multiple times without changing result beyond first application.
198
+
199
+ ```
200
+ // ❌ Not idempotent
201
+ function incrementBalance(userId, amount) {
202
+ balance += amount; // Multiple calls = wrong balance
203
+ }
204
+
205
+ // ✅ Idempotent (with idempotency key)
206
+ function creditAccount(userId, amount, idempotencyKey) {
207
+ if (processedKeys.has(idempotencyKey)) {
208
+ return alreadyProcessed; // Skip duplicate
209
+ }
210
+
211
+ balance += amount;
212
+ processedKeys.add(idempotencyKey);
213
+ }
214
+ ```
215
+
216
+ **HTTP Idempotency:**
217
+ ```
218
+ GET, PUT, DELETE = Idempotent
219
+ POST = NOT idempotent (creates new resource each time)
220
+ ```
221
+
222
+ ---
223
+
224
+ ### 6. Circuit Breaker Pattern
225
+
226
+ **Prevent cascading failures:**
227
+
228
+ ```typescript
229
+ class CircuitBreaker {
230
+ state = 'CLOSED'; // CLOSED, OPEN, HALF_OPEN
231
+ failureCount = 0;
232
+ failureThreshold = 5;
233
+ timeout = 60000; // 1 minute
234
+
235
+ async call(fn) {
236
+ if (this.state === 'OPEN') {
237
+ if (Date.now() > this.nextAttempt) {
238
+ this.state = 'HALF_OPEN'; // Try one request
239
+ } else {
240
+ throw new Error('Circuit breaker OPEN');
241
+ }
242
+ }
243
+
244
+ try {
245
+ const result = await fn();
246
+ this.onSuccess();
247
+ return result;
248
+ } catch (error) {
249
+ this.onFailure();
250
+ throw error;
251
+ }
252
+ }
253
+
254
+ onSuccess() {
255
+ this.failureCount = 0;
256
+ this.state = 'CLOSED';
257
+ }
258
+
259
+ onFailure() {
260
+ this.failureCount++;
261
+ if (this.failureCount >= this.failureThreshold) {
262
+ this.state = 'OPEN';
263
+ this.nextAttempt = Date.now() + this.timeout;
264
+ }
265
+ }
266
+ }
267
+
268
+ // Usage
269
+ const breaker = new CircuitBreaker();
270
+ await breaker.call(() => externalAPI.getData());
271
+ ```
272
+
273
+ ---
274
+
275
+ ### 7. Bulkhead Pattern
276
+
277
+ **Isolate failures:**
278
+
279
+ ```
280
+ Connection pools, thread pools, separate services
281
+
282
+ Example:
283
+ - Search service fails → Doesn't affect checkout
284
+ - Analytics DB slow → Doesn't affect user DB
285
+ ```
286
+
287
+ ```typescript
288
+ // Separate connection pools
289
+ const userDBPool = new Pool({ max: 20 }); // Critical
290
+ const analyticsDBPool = new Pool({ max: 10 }); // Non-critical
291
+
292
+ // Analytics queries don't starve user queries
293
+ ```
294
+
295
+ ---
296
+
297
+ ### 8. Retry with Exponential Backoff
298
+
299
+ ```typescript
300
+ async function fetchWithRetry(url, maxRetries = 3) {
301
+ for (let i = 0; i < maxRetries; i++) {
302
+ try {
303
+ return await fetch(url);
304
+ } catch (error) {
305
+ if (i === maxRetries - 1) throw error;
306
+
307
+ // Exponential backoff: 1s, 2s, 4s, 8s
308
+ const delay = Math.pow(2, i) * 1000;
309
+
310
+ // Jitter: Randomize to avoid thundering herd
311
+ const jitter = Math.random() * 1000;
312
+
313
+ await sleep(delay + jitter);
314
+ }
315
+ }
316
+ }
317
+ ```
318
+
319
+ ---
320
+
321
+ ### 9. Saga Pattern (Distributed Transactions)
322
+
323
+ **Problem:** No distributed ACID transactions in microservices
324
+
325
+ **Solution:** Chain of local transactions with compensation
326
+
327
+ ```
328
+ Order Saga:
329
+ 1. Create Order → Compensate: Cancel Order
330
+ 2. Reserve Inventory → Compensate: Release Inventory
331
+ 3. Charge Payment → Compensate: Refund Payment
332
+ 4. Ship Order → Compensate: Cancel Shipment
333
+
334
+ If step 3 fails:
335
+ ← Compensate step 2 (release inventory)
336
+ ← Compensate step 1 (cancel order)
337
+ ```
338
+
339
+ **Implementation:**
340
+ ```typescript
341
+ async function createOrderSaga(order) {
342
+ const saga = new Saga();
343
+
344
+ try {
345
+ // Step 1
346
+ const orderId = await saga.execute(
347
+ () => orderService.create(order),
348
+ () => orderService.cancel(orderId)
349
+ );
350
+
351
+ // Step 2
352
+ await saga.execute(
353
+ () => inventoryService.reserve(order.items),
354
+ () => inventoryService.release(order.items)
355
+ );
356
+
357
+ // Step 3
358
+ await saga.execute(
359
+ () => paymentService.charge(order.total),
360
+ () => paymentService.refund(order.total)
361
+ );
362
+
363
+ return orderId;
364
+ } catch (error) {
365
+ // Execute compensations in reverse order
366
+ await saga.compensate();
367
+ throw error;
368
+ }
369
+ }
370
+ ```
371
+
372
+ ---
373
+
374
+ ### 10. CQRS (Command Query Responsibility Segregation)
375
+
376
+ **Separate read and write models:**
377
+
378
+ ```
379
+ Commands (writes):
380
+ → Optimized for consistency
381
+ → Normalized schema
382
+
383
+ Queries (reads):
384
+ → Optimized for performance
385
+ → Denormalized schema (pre-joined)
386
+ ```
387
+
388
+ ---
389
+
390
+ ### 11. Event Sourcing
391
+
392
+ **Store events, not current state:**
393
+
394
+ ```
395
+ Traditional:
396
+ User { id: 1, balance: 100 } ← Current state only
397
+
398
+ Event Sourcing:
399
+ UserCreated { id: 1, initialBalance: 0 }
400
+ MoneyDeposited { id: 1, amount: 150 }
401
+ MoneyWithdrawn { id: 1, amount: 50 }
402
+ ← Full history, balance = sum(events)
403
+ ```
404
+
405
+ **Benefits:**
406
+ - ✅ Complete audit trail
407
+ - ✅ Temporal queries ("balance on Jan 1st")
408
+ - ✅ Event replay
409
+
410
+ **Drawbacks:**
411
+ - ❌ Complexity
412
+ - ❌ Storage growth
413
+ - ❌ Schema evolution challenges
414
+
415
+ ---
416
+
417
+ ## Design Trade-Offs
418
+
419
+ ### Consistency vs. Availability
420
+
421
+ | Choice | Pros | Cons | Use Case |
422
+ |--------|------|------|----------|
423
+ | Strong Consistency | No anomalies | Lower availability | Banking |
424
+ | Eventual Consistency | High availability | Read stale data | Social media |
425
+
426
+ ### Latency vs. Throughput
427
+
428
+ | Choice | Pros | Cons |
429
+ |--------|------|------|
430
+ | Low Latency | Fast responses | Lower throughput |
431
+ | High Throughput | Process more | Higher latency |
432
+
433
+ ### Normalization vs. Denormalization
434
+
435
+ | Choice | Pros | Cons |
436
+ |--------|------|------|
437
+ | Normalized | No duplication, consistency | Slow reads (joins) |
438
+ | Denormalized | Fast reads | Data duplication, consistency risk |
439
+
440
+ ---
441
+
442
+ ## Scalability Patterns
443
+
444
+ ### Horizontal Scaling (Scale Out)
445
+ ```
446
+ Add more servers
447
+ ✅ Unlimited scaling potential
448
+ ❌ Requires stateless design
449
+ ```
450
+
451
+ ### Vertical Scaling (Scale Up)
452
+ ```
453
+ Bigger server
454
+ ✅ Simple (no code changes)
455
+ ❌ Hardware limits (max 96 vCPU, 768 GB RAM)
456
+ ```
457
+
458
+ ### Sharding (Data Partitioning)
459
+ ```
460
+ Split data across multiple databases
461
+
462
+ User sharding:
463
+ users 0-999 → Shard 1
464
+ users 1000-1999 → Shard 2
465
+ users 2000-2999 → Shard 3
466
+
467
+ ✅ Scales infinitely
468
+ ❌ Cross-shard queries difficult
469
+ ❌ Rebalancing complex
470
+ ```
471
+
472
+ ---
473
+
474
+ ## Anti-Patterns
475
+
476
+ ❌ **Premature Optimization** - Optimize based on actual metrics, not assumptions
477
+ ❌ **Distributed Monolith** - Microservices with tight coupling
478
+ ❌ **Over-Engineering** - CQRS+Event Sourcing for simple CRUD
479
+ ❌ **Ignoring CAP** - Expecting strong consistency + high availability
480
+ ❌ **Magic Numbers** - Hardcoded limits without reasoning
481
+ ❌ **No Timeouts** - Hanging requests consume resources forever
482
+ ❌ **Synchronous Microservices** - Chains create latency and coupling
483
+
484
+ ---
485
+
486
+ **Related Resources:**
487
+ - architecture-patterns.md - Microservices, event-driven, CQRS
488
+ - data-architecture.md - Data modeling and storage patterns
489
+ - multi-region-design.md - CAP theorem in practice