blockmine 1.21.0 → 1.23.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 (492) 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 +59 -0
  55. package/.claude/settings.local.json +36 -14
  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 +102 -42
  255. package/CLAUDE.md +284 -0
  256. package/README.md +315 -71
  257. package/backend/docs/SECRETS_DOCUMENTATION.md +327 -0
  258. package/backend/jest.config.js +59 -0
  259. package/backend/package-lock.json +6801 -0
  260. package/backend/package.json +24 -4
  261. package/backend/prisma/migrations/20251026104609_add_websocket_api/migration.sql +33 -0
  262. package/backend/prisma/migrations/20251116111851_add_execution_trace/migration.sql +22 -0
  263. package/backend/prisma/migrations/20251120154914_add_panel_api_keys/migration.sql +21 -0
  264. package/backend/prisma/migrations/20251121110241_add_proxy_table/migration.sql +45 -0
  265. package/backend/prisma/migrations/migration_lock.toml +2 -2
  266. package/backend/prisma/schema.prisma +103 -1
  267. package/backend/src/__tests__/core/DependencyService.test.js +336 -0
  268. package/backend/src/__tests__/core/UserService.test.js +875 -0
  269. package/backend/src/__tests__/repositories/BaseRepository.test.js +146 -0
  270. package/backend/src/__tests__/repositories/BotRepository.test.js +118 -0
  271. package/backend/src/__tests__/repositories/CommandRepository.test.js +132 -0
  272. package/backend/src/__tests__/repositories/EventGraphRepository.test.js +93 -0
  273. package/backend/src/__tests__/repositories/GroupRepository.test.js +155 -0
  274. package/backend/src/__tests__/repositories/PermissionRepository.test.js +130 -0
  275. package/backend/src/__tests__/repositories/PluginRepository.test.js +107 -0
  276. package/backend/src/__tests__/repositories/ServerRepository.test.js +80 -0
  277. package/backend/src/__tests__/repositories/UserRepository.test.js +128 -0
  278. package/backend/src/__tests__/secretsFilter.test.js +425 -0
  279. package/backend/src/__tests__/services/BotLifecycleService.test.js +416 -0
  280. package/backend/src/__tests__/services/BotProcessManager.test.js +285 -0
  281. package/backend/src/__tests__/services/CacheManager.test.js +125 -0
  282. package/backend/src/__tests__/services/CommandExecutionService.test.js +460 -0
  283. package/backend/src/__tests__/services/ResourceMonitorService.test.js +207 -0
  284. package/backend/src/__tests__/services/TelemetryService.test.js +291 -0
  285. package/backend/src/__tests__/setup.js +25 -0
  286. package/backend/src/ai/plugin-assistant-system-prompt.md +788 -0
  287. package/backend/src/api/middleware/auth.js +27 -0
  288. package/backend/src/api/middleware/botAccess.js +7 -3
  289. package/backend/src/api/middleware/panelApiAuth.js +135 -0
  290. package/backend/src/api/routes/aiAssistant.js +995 -0
  291. package/backend/src/api/routes/apiKeys.js +181 -0
  292. package/backend/src/api/routes/auth.js +669 -633
  293. package/backend/src/api/routes/botCommands.js +107 -0
  294. package/backend/src/api/routes/botGroups.js +165 -0
  295. package/backend/src/api/routes/botHistory.js +108 -0
  296. package/backend/src/api/routes/botPermissions.js +99 -0
  297. package/backend/src/api/routes/botStatus.js +36 -0
  298. package/backend/src/api/routes/botUsers.js +162 -0
  299. package/backend/src/api/routes/bots.js +2451 -2360
  300. package/backend/src/api/routes/eventGraphs.js +4 -1
  301. package/backend/src/api/routes/logs.js +13 -3
  302. package/backend/src/api/routes/panel.js +66 -66
  303. package/backend/src/api/routes/panelApiKeys.js +179 -0
  304. package/backend/src/api/routes/pluginIde.js +1715 -135
  305. package/backend/src/api/routes/plugins.js +376 -218
  306. package/backend/src/api/routes/proxies.js +130 -0
  307. package/backend/src/api/routes/search.js +4 -0
  308. package/backend/src/api/routes/servers.js +20 -3
  309. package/backend/src/api/routes/settings.js +5 -0
  310. package/backend/src/api/routes/system.js +174 -0
  311. package/backend/src/api/routes/traces.js +131 -0
  312. package/backend/src/config/debug.config.js +36 -0
  313. package/backend/src/container.js +82 -0
  314. package/backend/src/core/BotHistoryStore.js +180 -0
  315. package/backend/src/core/BotManager.js +149 -868
  316. package/backend/src/core/BotManager.old.js +1093 -0
  317. package/backend/src/core/BotProcess.js +850 -191
  318. package/backend/src/core/EventGraphManager.js +194 -198
  319. package/backend/src/core/GraphExecutionEngine.js +709 -57
  320. package/backend/src/core/MessageQueue.js +39 -12
  321. package/backend/src/core/NodeRegistry.js +37 -1134
  322. package/backend/src/core/PluginLoader.js +99 -5
  323. package/backend/src/core/PluginManager.js +126 -15
  324. package/backend/src/core/PrismaService.js +32 -0
  325. package/backend/src/core/TaskScheduler.js +1 -1
  326. package/backend/src/core/UserService.js +3 -3
  327. package/backend/src/core/__tests__/PrismaService.test.js +24 -0
  328. package/backend/src/core/commands/README.md +305 -0
  329. package/backend/src/core/commands/dev.js +13 -7
  330. package/backend/src/core/commands/ping.js +10 -4
  331. package/backend/src/core/commands/whois.js +63 -0
  332. package/backend/src/core/config/validation.js +27 -0
  333. package/backend/src/core/constants/graphTypes.js +21 -0
  334. package/backend/src/core/node-registries/actions.js +202 -0
  335. package/backend/src/core/node-registries/arrays.js +155 -0
  336. package/backend/src/core/node-registries/bot.js +23 -0
  337. package/backend/src/core/node-registries/data.js +290 -0
  338. package/backend/src/core/node-registries/debug.js +26 -0
  339. package/backend/src/core/node-registries/events.js +201 -0
  340. package/backend/src/core/node-registries/flow.js +139 -0
  341. package/backend/src/core/node-registries/logic.js +62 -0
  342. package/backend/src/core/node-registries/math.js +42 -0
  343. package/backend/src/core/node-registries/objects.js +98 -0
  344. package/backend/src/core/node-registries/strings.js +187 -0
  345. package/backend/src/core/node-registries/time.js +113 -0
  346. package/backend/src/core/node-registries/type.js +25 -0
  347. package/backend/src/core/node-registries/users.js +79 -0
  348. package/backend/src/core/nodes/{action_bot_look_at.js → actions/bot_look_at.js} +36 -36
  349. package/backend/src/core/nodes/{action_bot_set_variable.js → actions/bot_set_variable.js} +32 -32
  350. package/backend/src/core/nodes/actions/create_command.js +189 -0
  351. package/backend/src/core/nodes/actions/delete_command.js +92 -0
  352. package/backend/src/core/nodes/{action_send_log.js → actions/send_log.js} +28 -23
  353. package/backend/src/core/nodes/{action_send_message.js → actions/send_message.js} +32 -32
  354. package/backend/src/core/nodes/actions/send_websocket_response.js +33 -0
  355. package/backend/src/core/nodes/actions/update_command.js +133 -0
  356. package/backend/src/core/nodes/arrays/get_next.js +35 -0
  357. package/backend/src/core/nodes/arrays/join.js +28 -0
  358. package/backend/src/core/nodes/{data_cast.js → data/cast.js} +10 -1
  359. package/backend/src/core/nodes/data/datetime_literal.js +27 -0
  360. package/backend/src/core/nodes/data/entity_info.js +69 -0
  361. package/backend/src/core/nodes/data/get_nearby_entities.js +32 -0
  362. package/backend/src/core/nodes/data/get_nearby_players.js +64 -0
  363. package/backend/src/core/nodes/{data_get_user_field.js → data/get_user_field.js} +1 -1
  364. package/backend/src/core/nodes/data/type_check.js +53 -0
  365. package/backend/src/core/nodes/{debug_log.js → debug/log.js} +16 -16
  366. package/backend/src/core/nodes/{flow_branch.js → flow/branch.js} +15 -15
  367. package/backend/src/core/nodes/{flow_break.js → flow/break.js} +14 -14
  368. package/backend/src/core/nodes/flow/delay.js +43 -0
  369. package/backend/src/core/nodes/{flow_for_each.js → flow/for_each.js} +39 -39
  370. package/backend/src/core/nodes/{flow_sequence.js → flow/sequence.js} +16 -16
  371. package/backend/src/core/nodes/{flow_switch.js → flow/switch.js} +47 -47
  372. package/backend/src/core/nodes/{flow_while.js → flow/while.js} +1 -1
  373. package/backend/src/core/nodes/logic/__tests__/compare.test.js +83 -0
  374. package/backend/src/core/nodes/logic/not.js +22 -0
  375. package/backend/src/core/nodes/math/__tests__/operation.test.js +65 -0
  376. package/backend/src/core/nodes/strings/__tests__/concat.test.js +89 -0
  377. package/backend/src/core/nodes/{string_starts_with.js → strings/starts_with.js} +1 -1
  378. package/backend/src/core/nodes/strings/to_lower.js +22 -0
  379. package/backend/src/core/nodes/strings/to_upper.js +22 -0
  380. package/backend/src/core/nodes/time/__tests__/now.test.js +24 -0
  381. package/backend/src/core/nodes/time/add.js +33 -0
  382. package/backend/src/core/nodes/time/compare.js +35 -0
  383. package/backend/src/core/nodes/time/diff.js +29 -0
  384. package/backend/src/core/nodes/time/format.js +32 -0
  385. package/backend/src/core/nodes/time/now.js +18 -0
  386. package/backend/src/core/nodes/type/to_string.js +32 -0
  387. package/backend/src/core/nodes/{user_check_blacklist.js → users/check_blacklist.js} +37 -37
  388. package/backend/src/core/nodes/{user_get_groups.js → users/get_groups.js} +36 -36
  389. package/backend/src/core/nodes/{user_get_permissions.js → users/get_permissions.js} +36 -36
  390. package/backend/src/core/nodes/{user_set_blacklist.js → users/set_blacklist.js} +37 -37
  391. package/backend/src/core/services/BotLifecycleService.js +835 -0
  392. package/backend/src/core/services/BotProcessManager.js +163 -0
  393. package/backend/src/core/services/CacheManager.js +111 -0
  394. package/backend/src/core/services/CommandExecutionService.js +430 -0
  395. package/backend/src/core/services/DebugSessionManager.js +347 -0
  396. package/backend/src/core/services/GraphCollaborationManager.js +501 -0
  397. package/backend/src/core/services/MinecraftBotManager.js +259 -0
  398. package/backend/src/core/services/MinecraftViewerService.js +216 -0
  399. package/backend/src/core/services/ResourceMonitorService.js +90 -0
  400. package/backend/src/core/services/TelemetryService.js +124 -0
  401. package/backend/src/core/services/TraceCollectorService.js +545 -0
  402. package/backend/src/core/services/ValidationService.js +132 -0
  403. package/backend/src/core/services/__tests__/ValidationService.test.js +148 -0
  404. package/backend/src/core/services.js +20 -5
  405. package/backend/src/core/system/CommandContext.js +84 -0
  406. package/backend/src/core/system/RuntimeCommandRegistry.js +116 -0
  407. package/backend/src/core/system/Transport.js +74 -0
  408. package/backend/src/core/utils/__tests__/jsonParser.test.js +44 -0
  409. package/backend/src/core/utils/jsonParser.js +18 -0
  410. package/backend/src/core/utils/secretsFilter.js +262 -0
  411. package/backend/src/core/utils/variableParser.js +89 -0
  412. package/backend/src/core/validation/__tests__/nodeSchemas.test.js +175 -0
  413. package/backend/src/core/validation/nodeSchemas.js +112 -0
  414. package/backend/src/lib/prisma.js +2 -4
  415. package/backend/src/real-time/botApi/handlers/commandHandlers.js +28 -0
  416. package/backend/src/real-time/botApi/handlers/graphHandlers.js +99 -0
  417. package/backend/src/real-time/botApi/handlers/graphWebSocketHandlers.js +147 -0
  418. package/backend/src/real-time/botApi/handlers/index.js +43 -0
  419. package/backend/src/real-time/botApi/handlers/messageHandlers.js +66 -0
  420. package/backend/src/real-time/botApi/handlers/statusHandlers.js +17 -0
  421. package/backend/src/real-time/botApi/handlers/userHandlers.js +141 -0
  422. package/backend/src/real-time/botApi/index.js +40 -0
  423. package/backend/src/real-time/botApi/middleware.js +79 -0
  424. package/backend/src/real-time/botApi/utils.js +65 -0
  425. package/backend/src/real-time/panelNamespace.js +387 -0
  426. package/backend/src/real-time/presence.js +7 -2
  427. package/backend/src/real-time/socketHandler.js +400 -5
  428. package/backend/src/repositories/BaseRepository.js +43 -0
  429. package/backend/src/repositories/BotRepository.js +42 -0
  430. package/backend/src/repositories/CommandRepository.js +53 -0
  431. package/backend/src/repositories/EventGraphRepository.js +40 -0
  432. package/backend/src/repositories/GroupRepository.js +69 -0
  433. package/backend/src/repositories/PermissionRepository.js +48 -0
  434. package/backend/src/repositories/PluginRepository.js +42 -0
  435. package/backend/src/repositories/ServerRepository.js +27 -0
  436. package/backend/src/repositories/UserRepository.js +48 -0
  437. package/backend/src/server.js +21 -0
  438. package/backend/src/test-refactor.js +85 -0
  439. package/frontend/dist/assets/index-B1serztM.js +11210 -0
  440. package/frontend/dist/assets/index-t6K1u4OV.css +32 -0
  441. package/frontend/dist/index.html +2 -2
  442. package/frontend/package-lock.json +9437 -0
  443. package/frontend/package.json +8 -5
  444. package/package.json +3 -2
  445. package/screen/console.png +0 -0
  446. package/screen/dashboard.png +0 -0
  447. package/screen/graph_collabe.png +0 -0
  448. package/screen/graph_live_debug.png +0 -0
  449. package/screen/management_command.png +0 -0
  450. package/screen/node_debug_trace.png +0 -0
  451. package/screen/plugin_/320/276/320/261/320/267/320/276/321/200.png +0 -0
  452. package/screen/websocket.png +0 -0
  453. package/screen//320/275/320/260/321/201/321/202/321/200/320/276/320/271/320/272/320/270_/320/276/321/202/320/264/320/265/320/273/321/214/320/275/321/213/321/205_/320/272/320/276/320/274/320/260/320/275/320/264_/320/272/320/260/320/266/320/264/321/203_/320/272/320/276/320/274/320/260/320/275/320/273/320/264/321/203_/320/274/320/276/320/266/320/275/320/276_/320/275/320/260/321/201/321/202/321/200/320/260/320/270/320/262/320/260/321/202/321/214.png +0 -0
  454. package/screen//320/277/320/273/320/260/320/275/320/270/321/200/320/276/320/262/321/211/320/270/320/272_/320/274/320/276/320/266/320/275/320/276_/320/267/320/260/320/264/320/260/320/262/320/260/321/202/321/214_/320/264/320/265/320/271/321/201/321/202/320/262/320/270/321/217_/320/277/320/276_/320/262/321/200/320/265/320/274/320/265/320/275/320/270.png +0 -0
  455. package/frontend/dist/assets/index-B9GedHEa.js +0 -8352
  456. package/frontend/dist/assets/index-zLiy9MDx.css +0 -1
  457. package/nul +0 -0
  458. /package/backend/src/core/nodes/{action_http_request.js → actions/http_request.js} +0 -0
  459. /package/backend/src/core/nodes/{array_add_element.js → arrays/add_element.js} +0 -0
  460. /package/backend/src/core/nodes/{array_contains.js → arrays/contains.js} +0 -0
  461. /package/backend/src/core/nodes/{array_find_index.js → arrays/find_index.js} +0 -0
  462. /package/backend/src/core/nodes/{array_get_by_index.js → arrays/get_by_index.js} +0 -0
  463. /package/backend/src/core/nodes/{array_get_random_element.js → arrays/get_random_element.js} +0 -0
  464. /package/backend/src/core/nodes/{array_remove_by_index.js → arrays/remove_by_index.js} +0 -0
  465. /package/backend/src/core/nodes/{bot_get_position.js → bot/get_position.js} +0 -0
  466. /package/backend/src/core/nodes/{data_array_literal.js → data/array_literal.js} +0 -0
  467. /package/backend/src/core/nodes/{data_boolean_literal.js → data/boolean_literal.js} +0 -0
  468. /package/backend/src/core/nodes/{data_get_argument.js → data/get_argument.js} +0 -0
  469. /package/backend/src/core/nodes/{data_get_bot_look.js → data/get_bot_look.js} +0 -0
  470. /package/backend/src/core/nodes/{data_get_entity_field.js → data/get_entity_field.js} +0 -0
  471. /package/backend/src/core/nodes/{data_get_server_players.js → data/get_server_players.js} +0 -0
  472. /package/backend/src/core/nodes/{data_get_variable.js → data/get_variable.js} +0 -0
  473. /package/backend/src/core/nodes/{data_length.js → data/length.js} +0 -0
  474. /package/backend/src/core/nodes/{data_make_object.js → data/make_object.js} +0 -0
  475. /package/backend/src/core/nodes/{data_number_literal.js → data/number_literal.js} +0 -0
  476. /package/backend/src/core/nodes/{data_string_literal.js → data/string_literal.js} +0 -0
  477. /package/backend/src/core/nodes/{logic_compare.js → logic/compare.js} +0 -0
  478. /package/backend/src/core/nodes/{logic_operation.js → logic/operation.js} +0 -0
  479. /package/backend/src/core/nodes/{math_operation.js → math/operation.js} +0 -0
  480. /package/backend/src/core/nodes/{math_random_number.js → math/random_number.js} +0 -0
  481. /package/backend/src/core/nodes/{object_create.js → objects/create.js} +0 -0
  482. /package/backend/src/core/nodes/{object_delete.js → objects/delete.js} +0 -0
  483. /package/backend/src/core/nodes/{object_get.js → objects/get.js} +0 -0
  484. /package/backend/src/core/nodes/{object_has_key.js → objects/has_key.js} +0 -0
  485. /package/backend/src/core/nodes/{object_set.js → objects/set.js} +0 -0
  486. /package/backend/src/core/nodes/{string_concat.js → strings/concat.js} +0 -0
  487. /package/backend/src/core/nodes/{string_contains.js → strings/contains.js} +0 -0
  488. /package/backend/src/core/nodes/{string_ends_with.js → strings/ends_with.js} +0 -0
  489. /package/backend/src/core/nodes/{string_equals.js → strings/equals.js} +0 -0
  490. /package/backend/src/core/nodes/{string_length.js → strings/length.js} +0 -0
  491. /package/backend/src/core/nodes/{string_matches.js → strings/matches.js} +0 -0
  492. /package/backend/src/core/nodes/{string_split.js → strings/split.js} +0 -0
@@ -0,0 +1,95 @@
1
+ # Build Security
2
+
3
+ Guide to supply chain security including SBOM generation, signed artifacts, and dependency attestation.
4
+
5
+ ## Overview
6
+
7
+ Build security protects against supply chain attacks and ensures artifact integrity.
8
+
9
+ ## SBOM Generation
10
+
11
+ ### CycloneDX
12
+ ```bash
13
+ # Generate SBOM
14
+ cyclonedx-cli generate -i . -o sbom.json
15
+
16
+ # Validate
17
+ cyclonedx-cli validate --input-file sbom.json
18
+ ```
19
+
20
+ ### Syft
21
+ ```bash
22
+ # Generate from image
23
+ syft packages myapp:latest -o cyclonedx-json > sbom.json
24
+
25
+ # Multiple formats
26
+ syft packages . -o table,json,cyclonedx
27
+ ```
28
+
29
+ ## Artifact Signing
30
+
31
+ ### GPG Signing
32
+ ```bash
33
+ # Sign artifact
34
+ gpg --armor --detach-sign artifact.jar
35
+
36
+ # Verify
37
+ gpg --verify artifact.jar.asc artifact.jar
38
+ ```
39
+
40
+ ### Cosign (Container)
41
+ ```bash
42
+ # Sign image
43
+ cosign sign registry.io/myapp:v1.0
44
+
45
+ # Verify
46
+ cosign verify registry.io/myapp:v1.0
47
+ ```
48
+
49
+ ## Dependency Attestation
50
+
51
+ ### SLSA Provenance
52
+ ```yaml
53
+ # GitHub Actions
54
+ - name: Generate provenance
55
+ uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.2.0
56
+ ```
57
+
58
+ ## Vulnerability Scanning
59
+
60
+ ### Trivy
61
+ ```bash
62
+ # Scan image
63
+ trivy image myapp:latest
64
+
65
+ # Scan filesystem
66
+ trivy fs .
67
+
68
+ # Generate report
69
+ trivy image --format json -o results.json myapp:latest
70
+ ```
71
+
72
+ ### Snyk
73
+ ```bash
74
+ # Test dependencies
75
+ snyk test
76
+
77
+ # Monitor project
78
+ snyk monitor
79
+
80
+ # Test container
81
+ snyk container test myapp:latest
82
+ ```
83
+
84
+ ## Best Practices
85
+
86
+ 1. **Generate SBOM** - For every release
87
+ 2. **Sign artifacts** - Cryptographic signatures
88
+ 3. **Scan dependencies** - Automated vulnerability scanning
89
+ 4. **Pin versions** - Exact dependency versions
90
+ 5. **Verify signatures** - Before deployment
91
+ 6. **Audit build process** - Regular security reviews
92
+ 7. **Least privilege** - Minimal build permissions
93
+ 8. **Secure secrets** - Never commit secrets
94
+ 9. **Provenance tracking** - Build metadata
95
+ 10. **Regular updates** - Keep dependencies current
@@ -0,0 +1,389 @@
1
+ # Build Systems
2
+
3
+ Comprehensive comparison and guide for modern build systems including Make, Gradle, Maven, Bazel, npm/yarn/pnpm, and tool selection criteria.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Overview](#overview)
8
+ - [Make](#make)
9
+ - [Gradle](#gradle)
10
+ - [Maven](#maven)
11
+ - [Bazel](#bazel)
12
+ - [npm/yarn/pnpm](#npmyarnpnpm)
13
+ - [Comparison](#comparison)
14
+ - [Tool Selection](#tool-selection)
15
+ - [Best Practices](#best-practices)
16
+
17
+ ## Overview
18
+
19
+ Build systems automate the process of converting source code into executable artifacts. Choosing the right build tool depends on language ecosystem, project size, team expertise, and build requirements.
20
+
21
+ **Key Capabilities:**
22
+ - Dependency management
23
+ - Incremental compilation
24
+ - Parallel execution
25
+ - Build caching
26
+ - Multi-platform support
27
+ - Plugin ecosystem
28
+
29
+ ## Make
30
+
31
+ Classic build tool based on file dependencies and timestamps.
32
+
33
+ **Makefile:**
34
+ ```makefile
35
+ CC = gcc
36
+ CFLAGS = -Wall -O2
37
+ TARGET = myapp
38
+ SOURCES = main.c utils.c
39
+ OBJECTS = $(SOURCES:.c=.o)
40
+
41
+ .PHONY: all clean
42
+
43
+ all: $(TARGET)
44
+
45
+ $(TARGET): $(OBJECTS)
46
+ $(CC) $(CFLAGS) -o $@ $^
47
+
48
+ %.o: %.c
49
+ $(CC) $(CFLAGS) -c $< -o $@
50
+
51
+ clean:
52
+ rm -f $(OBJECTS) $(TARGET)
53
+
54
+ install: $(TARGET)
55
+ install -m 755 $(TARGET) /usr/local/bin
56
+ ```
57
+
58
+ **Pros:**
59
+ - Universal, installed everywhere
60
+ - Simple for small projects
61
+ - Fast dependency checking
62
+ - Language agnostic
63
+
64
+ **Cons:**
65
+ - Complex syntax for large projects
66
+ - No built-in dependency management
67
+ - Platform-specific makefiles
68
+ - No standardized project structure
69
+
70
+ ## Gradle
71
+
72
+ Flexible JVM build tool with Groovy/Kotlin DSL.
73
+
74
+ **build.gradle.kts:**
75
+ ```kotlin
76
+ plugins {
77
+ kotlin("jvm") version "1.9.0"
78
+ application
79
+ }
80
+
81
+ group = "com.example"
82
+ version = "1.0.0"
83
+
84
+ repositories {
85
+ mavenCentral()
86
+ }
87
+
88
+ dependencies {
89
+ implementation("org.springframework.boot:spring-boot-starter-web:3.1.0")
90
+ testImplementation("org.junit.jupiter:junit-jupiter:5.9.3")
91
+ }
92
+
93
+ tasks.test {
94
+ useJUnitPlatform()
95
+ }
96
+
97
+ application {
98
+ mainClass.set("com.example.MainKt")
99
+ }
100
+
101
+ // Custom task
102
+ tasks.register("hello") {
103
+ doLast {
104
+ println("Hello from Gradle!")
105
+ }
106
+ }
107
+
108
+ // Parallel compilation
109
+ tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
110
+ kotlinOptions {
111
+ jvmTarget = "17"
112
+ }
113
+ }
114
+ ```
115
+
116
+ **Multi-Module Project:**
117
+ ```kotlin
118
+ // settings.gradle.kts
119
+ rootProject.name = "myapp"
120
+ include("api", "core", "web")
121
+
122
+ // api/build.gradle.kts
123
+ dependencies {
124
+ implementation(project(":core"))
125
+ }
126
+ ```
127
+
128
+ **Pros:**
129
+ - Flexible and powerful
130
+ - Excellent for multi-module projects
131
+ - Strong caching support
132
+ - Large plugin ecosystem
133
+
134
+ **Cons:**
135
+ - Steep learning curve
136
+ - Build scripts can become complex
137
+ - Slower than some alternatives
138
+
139
+ ## Maven
140
+
141
+ Convention-over-configuration JVM build tool.
142
+
143
+ **pom.xml:**
144
+ ```xml
145
+ <project xmlns="http://maven.apache.org/POM/4.0.0">
146
+ <modelVersion>4.0.0</modelVersion>
147
+
148
+ <groupId>com.example</groupId>
149
+ <artifactId>myapp</artifactId>
150
+ <version>1.0.0</version>
151
+ <packaging>jar</packaging>
152
+
153
+ <properties>
154
+ <java.version>17</java.version>
155
+ <maven.compiler.source>17</maven.compiler.source>
156
+ <maven.compiler.target>17</maven.compiler.target>
157
+ </properties>
158
+
159
+ <dependencies>
160
+ <dependency>
161
+ <groupId>org.springframework.boot</groupId>
162
+ <artifactId>spring-boot-starter-web</artifactId>
163
+ <version>3.1.0</version>
164
+ </dependency>
165
+ <dependency>
166
+ <groupId>org.junit.jupiter</groupId>
167
+ <artifactId>junit-jupiter</artifactId>
168
+ <version>5.9.3</version>
169
+ <scope>test</scope>
170
+ </dependency>
171
+ </dependencies>
172
+
173
+ <build>
174
+ <plugins>
175
+ <plugin>
176
+ <groupId>org.springframework.boot</groupId>
177
+ <artifactId>spring-boot-maven-plugin</artifactId>
178
+ </plugin>
179
+ </plugins>
180
+ </build>
181
+ </project>
182
+ ```
183
+
184
+ **Multi-Module:**
185
+ ```xml
186
+ <!-- Parent pom.xml -->
187
+ <modules>
188
+ <module>api</module>
189
+ <module>core</module>
190
+ <module>web</module>
191
+ </modules>
192
+
193
+ <!-- Child module -->
194
+ <parent>
195
+ <groupId>com.example</groupId>
196
+ <artifactId>parent</artifactId>
197
+ <version>1.0.0</version>
198
+ </parent>
199
+ ```
200
+
201
+ **Pros:**
202
+ - Strong conventions
203
+ - Standardized structure
204
+ - Mature ecosystem
205
+ - Great for Java projects
206
+
207
+ **Cons:**
208
+ - XML verbose
209
+ - Less flexible than Gradle
210
+ - Slower build times
211
+
212
+ ## Bazel
213
+
214
+ Hermetic, reproducible build system for monorepos.
215
+
216
+ **WORKSPACE:**
217
+ ```python
218
+ workspace(name = "myapp")
219
+
220
+ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
221
+
222
+ http_archive(
223
+ name = "rules_jvm_external",
224
+ sha256 = "...",
225
+ url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/4.5/rules_jvm_external-4.5.tar.gz",
226
+ )
227
+
228
+ load("@rules_jvm_external//:defs.bzl", "maven_install")
229
+
230
+ maven_install(
231
+ artifacts = [
232
+ "com.google.guava:guava:31.1-jre",
233
+ "org.junit.jupiter:junit-jupiter:5.9.3",
234
+ ],
235
+ repositories = [
236
+ "https://repo1.maven.org/maven2",
237
+ ],
238
+ )
239
+ ```
240
+
241
+ **BUILD:**
242
+ ```python
243
+ java_library(
244
+ name = "core",
245
+ srcs = glob(["src/main/java/**/*.java"]),
246
+ deps = [
247
+ "@maven//:com_google_guava_guava",
248
+ ],
249
+ visibility = ["//visibility:public"],
250
+ )
251
+
252
+ java_binary(
253
+ name = "app",
254
+ srcs = ["Main.java"],
255
+ deps = [":core"],
256
+ main_class = "com.example.Main",
257
+ )
258
+
259
+ java_test(
260
+ name = "core_test",
261
+ srcs = glob(["src/test/java/**/*.java"]),
262
+ deps = [
263
+ ":core",
264
+ "@maven//:org_junit_jupiter_junit_jupiter",
265
+ ],
266
+ )
267
+ ```
268
+
269
+ **Pros:**
270
+ - Truly reproducible builds
271
+ - Excellent for monorepos
272
+ - Multi-language support
273
+ - Powerful caching
274
+
275
+ **Cons:**
276
+ - Steep learning curve
277
+ - Complex configuration
278
+ - Requires infrastructure investment
279
+
280
+ ## npm/yarn/pnpm
281
+
282
+ JavaScript/TypeScript package managers and build tools.
283
+
284
+ **package.json:**
285
+ ```json
286
+ {
287
+ "name": "myapp",
288
+ "version": "1.0.0",
289
+ "scripts": {
290
+ "build": "tsc",
291
+ "test": "jest",
292
+ "lint": "eslint src/**/*.ts",
293
+ "start": "node dist/index.js"
294
+ },
295
+ "dependencies": {
296
+ "express": "^4.18.2"
297
+ },
298
+ "devDependencies": {
299
+ "@types/express": "^4.17.17",
300
+ "typescript": "^5.1.6",
301
+ "jest": "^29.6.1"
302
+ }
303
+ }
304
+ ```
305
+
306
+ **pnpm Workspace:**
307
+ ```yaml
308
+ # pnpm-workspace.yaml
309
+ packages:
310
+ - 'packages/*'
311
+ - 'apps/*'
312
+ ```
313
+
314
+ **Comparison:**
315
+
316
+ | Feature | npm | yarn | pnpm |
317
+ |---------|-----|------|------|
318
+ | Speed | Slow | Fast | Fastest |
319
+ | Disk Usage | High | High | Low (hard links) |
320
+ | Workspaces | Yes | Yes | Yes |
321
+ | Offline | No | Yes | Yes |
322
+
323
+ **Pros:**
324
+ - Native JavaScript ecosystem
325
+ - Large package registry
326
+ - Simple configuration
327
+ - Fast iteration
328
+
329
+ **Cons:**
330
+ - Dependency hell without lock files
331
+ - Security concerns
332
+ - No type safety in package.json
333
+
334
+ ## Comparison
335
+
336
+ | Feature | Make | Gradle | Maven | Bazel | npm |
337
+ |---------|------|--------|-------|-------|-----|
338
+ | Learning Curve | Low | High | Medium | Very High | Low |
339
+ | Build Speed | Fast | Medium | Slow | Very Fast | Medium |
340
+ | Caching | Manual | Good | Limited | Excellent | Good |
341
+ | Incremental | Manual | Yes | Limited | Yes | Yes |
342
+ | Multi-language | Yes | Limited | No | Yes | No |
343
+ | Reproducibility | No | Medium | Medium | Excellent | Medium |
344
+ | Best For | C/C++ | JVM | Java | Monorepo | JS/TS |
345
+
346
+ ## Tool Selection
347
+
348
+ **Choose Make when:**
349
+ - Building C/C++ projects
350
+ - Simple build requirements
351
+ - System-level projects
352
+ - Maximum portability needed
353
+
354
+ **Choose Gradle when:**
355
+ - JVM projects (Java, Kotlin, Scala)
356
+ - Need flexibility and customization
357
+ - Multi-module projects
358
+ - Android development
359
+
360
+ **Choose Maven when:**
361
+ - Standard Java projects
362
+ - Prefer convention over configuration
363
+ - Enterprise Java development
364
+ - Team familiar with Maven
365
+
366
+ **Choose Bazel when:**
367
+ - Large monorepo
368
+ - Need reproducible builds
369
+ - Multi-language projects
370
+ - Have infrastructure resources
371
+
372
+ **Choose npm/yarn/pnpm when:**
373
+ - JavaScript/TypeScript projects
374
+ - Frontend development
375
+ - Node.js applications
376
+ - Need quick iteration
377
+
378
+ ## Best Practices
379
+
380
+ 1. **Use dependency locking** - Lock files for reproducibility
381
+ 2. **Enable caching** - Local and remote caching
382
+ 3. **Parallelize builds** - Use tool's parallel features
383
+ 4. **Version build tools** - Lock build tool versions
384
+ 5. **Clean separation** - Separate build from runtime
385
+ 6. **Monitor build times** - Track and optimize
386
+ 7. **Use incremental builds** - Don't rebuild unnecessarily
387
+ 8. **Document builds** - README with build instructions
388
+ 9. **Automate in CI** - Same commands local and CI
389
+ 10. **Keep it simple** - Don't over-engineer build scripts
@@ -0,0 +1,201 @@
1
+ # Compilation Optimization
2
+
3
+ Guide to optimizing compilation including compiler flags, incremental compilation, distributed builds, ccache, and parallel compilation strategies.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Overview](#overview)
8
+ - [Compiler Flags](#compiler-flags)
9
+ - [Incremental Compilation](#incremental-compilation)
10
+ - [Distributed Builds](#distributed-builds)
11
+ - [ccache](#ccache)
12
+ - [Parallel Compilation](#parallel-compilation)
13
+ - [Best Practices](#best-practices)
14
+
15
+ ## Overview
16
+
17
+ Compilation optimization reduces build times through intelligent caching, parallelization, and compiler settings.
18
+
19
+ **Key Techniques:**
20
+ - Compiler optimization flags
21
+ - Incremental compilation
22
+ - Distributed compilation
23
+ - Compilation caching
24
+ - Parallel execution
25
+ - Precompiled headers
26
+
27
+ ## Compiler Flags
28
+
29
+ ### GCC/Clang Optimization Levels
30
+
31
+ ```bash
32
+ # No optimization (fast compile, slow runtime)
33
+ gcc -O0 source.c -o app
34
+
35
+ # Basic optimization
36
+ gcc -O1 source.c -o app
37
+
38
+ # Recommended for production
39
+ gcc -O2 source.c -o app
40
+
41
+ # Aggressive optimization (larger binaries)
42
+ gcc -O3 source.c -o app
43
+
44
+ # Size optimization
45
+ gcc -Os source.c -o app
46
+ ```
47
+
48
+ ### Debug vs Release Flags
49
+
50
+ ```makefile
51
+ # Debug build
52
+ CFLAGS_DEBUG = -g -O0 -DDEBUG -Wall -Wextra
53
+
54
+ # Release build
55
+ CFLAGS_RELEASE = -O2 -DNDEBUG -march=native
56
+ ```
57
+
58
+ ### Link-Time Optimization (LTO)
59
+
60
+ ```bash
61
+ # GCC LTO
62
+ gcc -flto -O2 source.c -o app
63
+
64
+ # Clang LTO
65
+ clang -flto -O2 source.c -o app
66
+ ```
67
+
68
+ ## Incremental Compilation
69
+
70
+ ### Java Incremental Compilation
71
+
72
+ ```kotlin
73
+ // build.gradle.kts
74
+ tasks.withType<JavaCompile> {
75
+ options.isIncremental = true
76
+ }
77
+ ```
78
+
79
+ ### TypeScript Incremental
80
+
81
+ ```json
82
+ {
83
+ "compilerOptions": {
84
+ "incremental": true,
85
+ "composite": true,
86
+ "tsBuildInfoFile": "./.tsbuildinfo"
87
+ }
88
+ }
89
+ ```
90
+
91
+ ### Rust Incremental
92
+
93
+ ```bash
94
+ # Enable incremental compilation
95
+ export CARGO_INCREMENTAL=1
96
+
97
+ # Or in Cargo.toml
98
+ [profile.dev]
99
+ incremental = true
100
+ ```
101
+
102
+ ## Distributed Builds
103
+
104
+ ### distcc (C/C++)
105
+
106
+ ```bash
107
+ # Setup distcc hosts
108
+ export DISTCC_HOSTS="localhost/8 server1/4 server2/4"
109
+
110
+ # Use with Make
111
+ make -j16 CC="distcc gcc" CXX="distcc g++"
112
+
113
+ # Monitoring
114
+ distccmon-text 1
115
+ ```
116
+
117
+ ### Bazel Remote Execution
118
+
119
+ ```python
120
+ # .bazelrc
121
+ build --remote_executor=grpc://build-server:8980
122
+ build --remote_cache=grpc://cache-server:8980
123
+ ```
124
+
125
+ ## ccache
126
+
127
+ ### Setup and Configuration
128
+
129
+ ```bash
130
+ # Install
131
+ sudo apt-get install ccache
132
+
133
+ # Configure
134
+ export CC="ccache gcc"
135
+ export CXX="ccache g++"
136
+
137
+ # Set cache size
138
+ ccache -M 10G
139
+
140
+ # Statistics
141
+ ccache -s
142
+
143
+ # Clear cache
144
+ ccache -C
145
+ ```
146
+
147
+ ### CMake Integration
148
+
149
+ ```cmake
150
+ find_program(CCACHE_FOUND ccache)
151
+ if(CCACHE_FOUND)
152
+ set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
153
+ set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
154
+ endif()
155
+ ```
156
+
157
+ ## Parallel Compilation
158
+
159
+ ### Make Parallel Builds
160
+
161
+ ```bash
162
+ # Use all CPU cores
163
+ make -j$(nproc)
164
+
165
+ # Specific number of jobs
166
+ make -j8
167
+ ```
168
+
169
+ ### Gradle Parallel
170
+
171
+ ```kotlin
172
+ // gradle.properties
173
+ org.gradle.parallel=true
174
+ org.gradle.workers.max=8
175
+ org.gradle.caching=true
176
+ ```
177
+
178
+ ### npm Parallel
179
+
180
+ ```json
181
+ {
182
+ "scripts": {
183
+ "build": "npm-run-all --parallel build:*",
184
+ "build:client": "webpack",
185
+ "build:server": "tsc"
186
+ }
187
+ }
188
+ ```
189
+
190
+ ## Best Practices
191
+
192
+ 1. **Use incremental compilation** - Only rebuild changed files
193
+ 2. **Enable caching** - ccache, sccache for native, gradle cache
194
+ 3. **Parallelize** - Use -j flag, parallel build options
195
+ 4. **Optimize flags** - -O2 for production, -O0 for debug
196
+ 5. **Use LTO** - Better optimization, smaller binaries
197
+ 6. **Distribute builds** - For large codebases
198
+ 7. **Monitor metrics** - Track compilation times
199
+ 8. **Precompiled headers** - For C++ projects
200
+ 9. **Clean periodically** - Remove stale artifacts
201
+ 10. **Profile builds** - Identify bottlenecks