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
package/CHANGELOG.md CHANGED
@@ -1,57 +1,117 @@
1
1
  # История версий
2
2
 
3
3
 
4
- ## [1.21.0](https://github.com/blockmineJS/blockmine/compare/v1.20.0...v1.21.0) (2025-10-26)
5
-
6
-
7
- ### 🛠 Рефакторинг
8
-
9
- * [graph-system] все ноды отрефакторены и перенесены. [@claude](https://github.com/claude) author ([55db1b8](https://github.com/blockmineJS/blockmine/commit/55db1b89dbe470691db129a72c7efe55030acfa6))
10
-
11
-
12
- ### ✨ Новые возможности
13
-
14
- * [graph-system] пкм. по названию переменной можно найти - Получить/Установить переменную ([83b822f](https://github.com/blockmineJS/blockmine/commit/83b822ff1d278dfb9e280909c81ab32fd0e58bc3))
15
- * [graph-system] конвертация нод при подключения не к тем типам ([03deac8](https://github.com/blockmineJS/blockmine/commit/03deac83c9468199a8f6ae2b2480248c52a39e57))
16
- * добавление виртуализации для списков плагинов и ботов ([ea7746f](https://github.com/blockmineJS/blockmine/commit/ea7746f5c7f05ed74e6893bb27774d8541e0c57f))
17
- * новая нода для http запросов ([3565d06](https://github.com/blockmineJS/blockmine/commit/3565d06bff419c2d2665eba719a4c94696db00ae))
18
-
19
- ## [1.20.0](https://github.com/blockmineJS/blockmine/compare/v1.19.1...v1.20.0) (2025-10-23)
20
-
21
-
22
- ### ✨ Новые возможности
23
-
24
- * если бот падает 5 раз с критической ошибкой, то перезапуск отменяется ([2ba022f](https://github.com/blockmineJS/blockmine/commit/2ba022fff038cc83bb1edfa04d3edf97fc76c255))
25
- * action:send_message to support dynamic variables. example. Сообщение: привет, {username} ([457639d](https://github.com/blockmineJS/blockmine/commit/457639d70e7a8933f0508d93196a2be6951f1a0a))
26
-
27
- ### [1.19.1](https://github.com/blockmineJS/blockmine/compare/v1.19.0...v1.19.1) (2025-10-01)
28
-
29
-
30
- ### 🐛 Исправления
31
-
32
- * изменение порядка ботов теперь корректное ([9663737](https://github.com/blockmineJS/blockmine/commit/9663737505201468dd2233bf5658be5b2442f583))
33
- * фиксим новой вкладки прокси ([7ebdb7d](https://github.com/blockmineJS/blockmine/commit/7ebdb7d0df6c4e5cd6a9b15576cc1907ab7fcd74))
34
-
35
- ## [1.19.0](https://github.com/blockmineJS/blockmine/compare/v1.18.5...v1.19.0) (2025-08-23)
4
+ ## [1.23.0](https://github.com/blockmineJS/blockmine/compare/v1.22.0...v1.23.0) (2025-11-25)
36
5
 
37
6
 
38
7
  ### 🐛 Исправления
39
8
 
40
- * баз команда dev исправлена. теперь не считает алиасы как отдельные кмд ([782c01e](https://github.com/blockmineJS/blockmine/commit/782c01e12f273a04cf78a5772b7be628d22f5791))
41
- * добавлена автоматическая установка недостающих модулей для плагинов при их загрузке ([27154f1](https://github.com/blockmineJS/blockmine/commit/27154f1d2c588f8d8371493f1d28646ff9d764f7))
42
- * зависимости плагин устанавливаются ([a7314c4](https://github.com/blockmineJS/blockmine/commit/a7314c4d1c66ef7021d6c265ebbb270c50a3ab62))
43
- * изменять версия у созданного сервера теперь можно ([a55e3c9](https://github.com/blockmineJS/blockmine/commit/a55e3c9d6a06b9ebd95722aa6487e2b79bda07ff))
44
- * исправление проблем с импортом ([ef9fde2](https://github.com/blockmineJS/blockmine/commit/ef9fde2aa8b1390910600bfd930c444cbff2d01e))
45
- * починили установку локальную ([1b28e07](https://github.com/blockmineJS/blockmine/commit/1b28e071d4846b62dd6360f4709a0e263841960b))
46
- * права юзеров теперь может менять только владелец панели (первый юзер) ([94312d7](https://github.com/blockmineJS/blockmine/commit/94312d7b9c09aabb704f163f8e3205abf7c2acdc))
9
+ * нода установить переменную. селект Хранить в бд ничего не отображал ([adf4a85](https://github.com/blockmineJS/blockmine/commit/adf4a85929b47d3cb0d0771d7ae205ac5650809f))
10
+ * теперь для изменения владельца в боте, не надо перезапускать бэкенд ([0c0d675](https://github.com/blockmineJS/blockmine/commit/0c0d675cfa67db6af752726c5fc23d3e26cffcb5))
11
+ * cmd. Первая проверка тип чата, а потом аргументы ([2acdff1](https://github.com/blockmineJS/blockmine/commit/2acdff1db27ad1675cb9168748ff0d8a65271fe9))
12
+ * exec пины теперь коннектятся только к exec ([a57f643](https://github.com/blockmineJS/blockmine/commit/a57f643e104bd94c23046493444709bb8de6ed13))
47
13
 
48
14
 
49
15
  ### ✨ Новые возможности
50
16
 
51
- * когда другой юзер заходит в панель, другие клиенты увидят уведомление что он зашел ([a689b4e](https://github.com/blockmineJS/blockmine/commit/a689b4ee91e0dc187b3eeddc75600e880730b885))
52
- * новая кнопочка - прокси. позволяет установить прокси сразу множеству ботов ([ac75d65](https://github.com/blockmineJS/blockmine/commit/ac75d655289a4b4b4560555ac1fecbcdb199b822))
53
- * теперь можно для других юзеров назначать определенных ботов которыми они могут управлять ([484685b](https://github.com/blockmineJS/blockmine/commit/484685b1821fa3ad8907f4ab320762cf1c6a3959))
17
+ * дебаг режим для графов ([ffc910b](https://github.com/blockmineJS/blockmine/commit/ffc910b772bccf9b64ca828eb55debddb11715d7))
18
+ * добавлен ai помощник в blockmine ide ([d7c5f7e](https://github.com/blockmineJS/blockmine/commit/d7c5f7e555beacf614b6cdc94706339880aac55c))
19
+ * добавлен diff для просмотра изменений кода от ии ([d0159f0](https://github.com/blockmineJS/blockmine/commit/d0159f0884863ec10136f4bf32ea7daf0702d476))
20
+ * новая вкладка - прокси ([3094b8b](https://github.com/blockmineJS/blockmine/commit/3094b8b5f1b9a59dd6494ff54c721f1e720b28f6))
21
+ * новая ивент нода - При запуске бота ([5189a02](https://github.com/blockmineJS/blockmine/commit/5189a024c5e57fe8cb28f557b946247644367491))
22
+ * новые ноды ([610b501](https://github.com/blockmineJS/blockmine/commit/610b501d89cb744ca9ea7a9e35adc7ae1ec3766b))
23
+ * новый ide редактор ([2d7b302](https://github.com/blockmineJS/blockmine/commit/2d7b3026882b56a226760ba38c52cba0815a0720))
24
+ * подсветки при соединении нод ([dd06cdd](https://github.com/blockmineJS/blockmine/commit/dd06cdd4fca871713688382c9b73d0eaa4d1b8bd))
25
+ * теперь за бота можно ходить прямо в браузере! ([42f9257](https://github.com/blockmineJS/blockmine/commit/42f9257ee3ce166fda648e9a2ca6947c630a21e2))
26
+ * фиксы и для нод копирование вставка графов ([aa1308d](https://github.com/blockmineJS/blockmine/commit/aa1308d19122ebc762ec1ebd3f523e12c2fb5aa2))
54
27
 
28
+ ## [1.22.0](https://github.com/blockmineJS/blockmine/compare/v1.21.0...v1.22.0) (2025-11-16)
29
+
30
+
31
+ ### ✨ Новые возможности
32
+
33
+ * апи для дашборд страницы для отображения ресурсов системы ([c903d64](https://github.com/blockmineJS/blockmine/commit/c903d64c2576d22943971226caec1bd610f0f41e))
34
+ * для дашборда добавлен функционал для просмотров ресурсов системы ([b7fa209](https://github.com/blockmineJS/blockmine/commit/b7fa2097274882ea13c01068eac78824560cc22b))
35
+ * добавлены ноды для получения существ и игроков рядом с ботом ([17fad59](https://github.com/blockmineJS/blockmine/commit/17fad592c64833e25a2bd9e259379d4d649e3cb4))
36
+ * много новых нод и обнов для граф системы ([8881aa5](https://github.com/blockmineJS/blockmine/commit/8881aa554b1b8c6cca4d87cb5900bb8cfe535d33))
37
+ * новая большая механика. Вебсокеты ([acda500](https://github.com/blockmineJS/blockmine/commit/acda5005d01cfcb8ee7c85474af966c646c63fcd))
38
+ * новая нода - задержка ([cde63db](https://github.com/blockmineJS/blockmine/commit/cde63db612062f3eb7782e8c1f6af35a22dc03e2))
39
+ * отключение градиента в консоли. Автор - @artemscine ([ba11548](https://github.com/blockmineJS/blockmine/commit/ba1154827c2e5016c668b79f7b80386819cc7ab9))
40
+ * разработчики плагинов теперь могут указать secret: true для маскировки чувствительных значений ([f6c67fb](https://github.com/blockmineJS/blockmine/commit/f6c67fbb0a9cc24eea2175e275593a1b0421d199))
41
+ * сообщение в чате text\ntext разделяется на два. \n разделитель ([560ae7b](https://github.com/blockmineJS/blockmine/commit/560ae7b6c8ddbe0412d7f27d145c447bb5d750d2))
42
+ * теперь при обновлении плагинов настройки тоже мигрируются ([48434e8](https://github.com/blockmineJS/blockmine/commit/48434e853c9f926168873f61ecd49cbb6c10971c))
43
+ * Add date and time manipulation nodes ([80c8dbd](https://github.com/blockmineJS/blockmine/commit/80c8dbd9103a38a03b4ae4ea297322ae699d9c21))
44
+ * websocket. Большая фича ([a321023](https://github.com/blockmineJS/blockmine/commit/a3210230d6e78d46928924d244a6b24acee45443))
45
+
46
+
47
+ ### 🛠 Рефакторинг
48
+
49
+ * большой рефакторинг бэкенд части x2 ([49a543a](https://github.com/blockmineJS/blockmine/commit/49a543a122aced41b3725564c66a01269608dd2d))
50
+ * большой рефакторинг нод системы ([85ac50f](https://github.com/blockmineJS/blockmine/commit/85ac50f1f0ea79832bd398f7345029f52f6910e1))
51
+ * обновление компонентов UI и удаление зависимости от MUI ([86a4a5e](https://github.com/blockmineJS/blockmine/commit/86a4a5edfc91f024cd085cbe4282a5c9efb48b84))
52
+ * полный рефакторинг бэкенда ([5e68fd8](https://github.com/blockmineJS/blockmine/commit/5e68fd8fa00a162ae68772bb24ef984d433e9ca5))
53
+
54
+
55
+ ### 🐛 Исправления
56
+
57
+ * важный фикс команд ([16f7da2](https://github.com/blockmineJS/blockmine/commit/16f7da23167ece0877cb196c6ba01bbd6fbcc3a3))
58
+ * корректная очистка ANSI ([a9ba9c7](https://github.com/blockmineJS/blockmine/commit/a9ba9c74ab31dbce7ce881a098c204f48aa4e82e))
59
+ * рестарт после падения socks. Автор - @artemscine ([bf98505](https://github.com/blockmineJS/blockmine/commit/bf985052c40d30add6a717748efe37eeb15d5d74))
60
+ * уменьшение отступов в дашборде Автор - @artemscine ([af52a07](https://github.com/blockmineJS/blockmine/commit/af52a07a0615d29c97c6848ea758c83544236cad))
61
+ * remove problematic lcov-reporter-action and update to Node.js 22.x ([ac83208](https://github.com/blockmineJS/blockmine/commit/ac83208eefff2e71075d02fb46c603e8e22a6b9b))
62
+ * resolve CodeRabbit review issues ([a45ee47](https://github.com/blockmineJS/blockmine/commit/a45ee47a02409c67284e165248ac19e6adbd369f))
63
+
64
+ ## [1.21.0](https://github.com/blockmineJS/blockmine/compare/v1.20.0...v1.21.0) (2025-10-26)
65
+
66
+
67
+ ### 🛠 Рефакторинг
68
+
69
+ * [graph-system] все ноды отрефакторены и перенесены. [@claude](https://github.com/claude) author ([55db1b8](https://github.com/blockmineJS/blockmine/commit/55db1b89dbe470691db129a72c7efe55030acfa6))
70
+
71
+
72
+ ### ✨ Новые возможности
73
+
74
+ * [graph-system] пкм. по названию переменной можно найти - Получить/Установить переменную ([83b822f](https://github.com/blockmineJS/blockmine/commit/83b822ff1d278dfb9e280909c81ab32fd0e58bc3))
75
+ * [graph-system] конвертация нод при подключения не к тем типам ([03deac8](https://github.com/blockmineJS/blockmine/commit/03deac83c9468199a8f6ae2b2480248c52a39e57))
76
+ * добавление виртуализации для списков плагинов и ботов ([ea7746f](https://github.com/blockmineJS/blockmine/commit/ea7746f5c7f05ed74e6893bb27774d8541e0c57f))
77
+ * новая нода для http запросов ([3565d06](https://github.com/blockmineJS/blockmine/commit/3565d06bff419c2d2665eba719a4c94696db00ae))
78
+
79
+ ## [1.20.0](https://github.com/blockmineJS/blockmine/compare/v1.19.1...v1.20.0) (2025-10-23)
80
+
81
+
82
+ ### ✨ Новые возможности
83
+
84
+ * если бот падает 5 раз с критической ошибкой, то перезапуск отменяется ([2ba022f](https://github.com/blockmineJS/blockmine/commit/2ba022fff038cc83bb1edfa04d3edf97fc76c255))
85
+ * action:send_message to support dynamic variables. example. Сообщение: привет, {username} ([457639d](https://github.com/blockmineJS/blockmine/commit/457639d70e7a8933f0508d93196a2be6951f1a0a))
86
+
87
+ ### [1.19.1](https://github.com/blockmineJS/blockmine/compare/v1.19.0...v1.19.1) (2025-10-01)
88
+
89
+
90
+ ### 🐛 Исправления
91
+
92
+ * изменение порядка ботов теперь корректное ([9663737](https://github.com/blockmineJS/blockmine/commit/9663737505201468dd2233bf5658be5b2442f583))
93
+ * фиксим новой вкладки прокси ([7ebdb7d](https://github.com/blockmineJS/blockmine/commit/7ebdb7d0df6c4e5cd6a9b15576cc1907ab7fcd74))
94
+
95
+ ## [1.19.0](https://github.com/blockmineJS/blockmine/compare/v1.18.5...v1.19.0) (2025-08-23)
96
+
97
+
98
+ ### 🐛 Исправления
99
+
100
+ * баз команда dev исправлена. теперь не считает алиасы как отдельные кмд ([782c01e](https://github.com/blockmineJS/blockmine/commit/782c01e12f273a04cf78a5772b7be628d22f5791))
101
+ * добавлена автоматическая установка недостающих модулей для плагинов при их загрузке ([27154f1](https://github.com/blockmineJS/blockmine/commit/27154f1d2c588f8d8371493f1d28646ff9d764f7))
102
+ * зависимости плагин устанавливаются ([a7314c4](https://github.com/blockmineJS/blockmine/commit/a7314c4d1c66ef7021d6c265ebbb270c50a3ab62))
103
+ * изменять версия у созданного сервера теперь можно ([a55e3c9](https://github.com/blockmineJS/blockmine/commit/a55e3c9d6a06b9ebd95722aa6487e2b79bda07ff))
104
+ * исправление проблем с импортом ([ef9fde2](https://github.com/blockmineJS/blockmine/commit/ef9fde2aa8b1390910600bfd930c444cbff2d01e))
105
+ * починили установку локальную ([1b28e07](https://github.com/blockmineJS/blockmine/commit/1b28e071d4846b62dd6360f4709a0e263841960b))
106
+ * права юзеров теперь может менять только владелец панели (первый юзер) ([94312d7](https://github.com/blockmineJS/blockmine/commit/94312d7b9c09aabb704f163f8e3205abf7c2acdc))
107
+
108
+
109
+ ### ✨ Новые возможности
110
+
111
+ * когда другой юзер заходит в панель, другие клиенты увидят уведомление что он зашел ([a689b4e](https://github.com/blockmineJS/blockmine/commit/a689b4ee91e0dc187b3eeddc75600e880730b885))
112
+ * новая кнопочка - прокси. позволяет установить прокси сразу множеству ботов ([ac75d65](https://github.com/blockmineJS/blockmine/commit/ac75d655289a4b4b4560555ac1fecbcdb199b822))
113
+ * теперь можно для других юзеров назначать определенных ботов которыми они могут управлять ([484685b](https://github.com/blockmineJS/blockmine/commit/484685b1821fa3ad8907f4ab320762cf1c6a3959))
114
+
55
115
  ### [1.18.5](https://github.com/blockmineJS/blockmine/compare/v1.18.4...v1.18.5) (2025-08-15)
56
116
 
57
117
 
package/CLAUDE.md ADDED
@@ -0,0 +1,284 @@
1
+ # Документация для разработки BlockMine
2
+
3
+
4
+ НИКОГДА НЕ ДОБАВЛЯЙ КОММЕНТАРИИ К ПОНЯТНОМУ КОДУ. router.use понятно что роутер подключает
5
+ Старайся дополнять CLAUDE.md чем то новым и новыми функциями которые могут понадобится агентам
6
+
7
+ Этот документ содержит инструкции для AI-ассистентов и разработчиков по работе с кодовой базой BlockMine.
8
+
9
+ ## Содержание
10
+
11
+ - [Добавление новых нод в визуальный редактор](#добавление-новых-нод-в-визуальный-редактор)
12
+
13
+ ---
14
+
15
+ ## Добавление новых нод в визуальный редактор
16
+
17
+ Ноды в BlockMine состоят из двух частей: frontend (React/TypeScript) и backend (Node.js). Для добавления новой ноды необходимо внести изменения в оба места.
18
+
19
+ ### 1. Frontend: Создание определения ноды
20
+
21
+ Ноды организованы по категориям в директории `frontend/src/components/visual-editor/nodes/`.
22
+
23
+ #### Пример: Нода события "При запуске бота"
24
+
25
+ **Шаг 1: Создайте файл определения ноды**
26
+
27
+ Создайте файл в соответствующей категории, например:
28
+ ```
29
+ frontend/src/components/visual-editor/nodes/event/eventBotStartup.js
30
+ ```
31
+
32
+ ```javascript
33
+ import { NodeDefinition } from '../../core/registry';
34
+
35
+ /**
36
+ * Определение ноды event:botStartup
37
+ * Срабатывает один раз при запуске бота
38
+ */
39
+ export const eventBotStartupDefinition = new NodeDefinition({
40
+ type: 'event:botStartup', // Уникальный тип ноды (формат: category:name)
41
+ category: 'event', // Категория для группировки в UI
42
+ label: '🚀 При запуске бота', // Отображаемое название
43
+ description: 'Срабатывает один раз при запуске бота',
44
+
45
+ computeInputs: (data) => [], // Входные пины (можно вычислять динамически)
46
+
47
+ computeOutputs: (data) => [ // Выходные пины
48
+ { id: 'exec', name: 'Выполнить', type: 'Exec' },
49
+ ],
50
+
51
+ theme: { // Цветовая схема ноды
52
+ headerColor: '#8b5cf6',
53
+ accentColor: '#a78bfa',
54
+ },
55
+ });
56
+
57
+ export default eventBotStartupDefinition;
58
+ ```
59
+
60
+ **Шаг 2: Экспортируйте из index.js категории**
61
+
62
+ В файле `frontend/src/components/visual-editor/nodes/event/index.js`:
63
+
64
+ ```javascript
65
+ export { eventBotStartupDefinition } from './eventBotStartup';
66
+ ```
67
+
68
+ **Шаг 3: Зарегистрируйте ноду в главном реестре**
69
+
70
+ В файле `frontend/src/components/visual-editor/nodes/index.js`:
71
+
72
+ 1. Добавьте импорт:
73
+ ```javascript
74
+ import {
75
+ eventCommandDefinition,
76
+ eventBotStartupDefinition, // Добавить
77
+ // ...
78
+ } from './event';
79
+ ```
80
+
81
+ 2. Зарегистрируйте в функции `registerAllNodes()`:
82
+ ```javascript
83
+ export function registerAllNodes() {
84
+ // ...
85
+ // Event category
86
+ NodeRegistry.register(eventCommandDefinition);
87
+ NodeRegistry.register(eventBotStartupDefinition); // Добавить
88
+ // ...
89
+ }
90
+ ```
91
+
92
+ ### 2. Backend: Регистрация типа ноды
93
+
94
+ **Шаг 1: Зарегистрируйте ноду в соответствующем registry файле**
95
+
96
+ Найдите или создайте файл реестра для категории в `backend/src/core/node-registries/`.
97
+
98
+ Для событий это файл `backend/src/core/node-registries/events.js`:
99
+
100
+ ```javascript
101
+ function registerNodes(registry) {
102
+ // ... существующие ноды
103
+
104
+ registry.registerNodeType({
105
+ type: 'event:botStartup',
106
+ label: '🚀 При запуске бота',
107
+ category: 'События',
108
+ description: 'Срабатывает один раз при запуске бота.',
109
+ graphType: GRAPH_TYPES.EVENT,
110
+ pins: {
111
+ inputs: [],
112
+ outputs: [
113
+ { id: 'exec', name: 'Выполнить', type: 'Exec' },
114
+ ]
115
+ }
116
+ });
117
+ }
118
+ ```
119
+
120
+ ### 3. Backend: Добавление логики выполнения (для нод действий)
121
+
122
+ Если нода выполняет какое-то действие (не события), необходимо создать обработчик в `backend/src/core/node-handlers/`.
123
+
124
+ **Пример структуры обработчика:**
125
+
126
+ ```javascript
127
+ module.exports = async (nodeId, inputData, context) => {
128
+ const { botManager, botId, state } = context;
129
+
130
+ // Ваша логика здесь
131
+
132
+ return {
133
+ outputs: {
134
+ result: 'значение',
135
+ // ...
136
+ }
137
+ };
138
+ };
139
+ ```
140
+
141
+ ### 4. Backend: Триггеры событий (для event нод)
142
+
143
+ Если вы создаете event ноду, нужно добавить вызов события в соответствующем месте кода.
144
+
145
+ **Пример: Событие запуска бота**
146
+
147
+ В файле `backend/src/core/services/BotLifecycleService.js`, метод `_handleBotReady()`:
148
+
149
+ ```javascript
150
+ _handleBotReady(botId) {
151
+ this.emitStatusUpdate(botId, 'running', 'Бот успешно подключился к серверу.');
152
+ this.crashCounters.delete(botId);
153
+
154
+ // ... Socket.IO код
155
+
156
+ // Триггерим событие запуска бота
157
+ if (this.eventGraphManager) {
158
+ this.eventGraphManager.handleEvent(botId, 'botStartup', {});
159
+ }
160
+ }
161
+ ```
162
+
163
+ ### 5. Структура типов нод
164
+
165
+ #### Типы пинов
166
+
167
+ - **Exec** - пин выполнения (flow control)
168
+ - **String** - строка
169
+ - **Number** - число
170
+ - **Boolean** - булево значение
171
+ - **Object** - объект
172
+ - **Array** - массив
173
+ - **User** - объект пользователя
174
+ - **Wildcard** - любой тип (динамический)
175
+
176
+ #### Категории нод
177
+
178
+ - **event** - События (триггеры графов)
179
+ - **action** - Действия (отправка сообщений, HTTP запросы)
180
+ - **flow** - Управление потоком (ветвления, циклы)
181
+ - **data** - Данные (литералы, переменные)
182
+ - **logic** - Логические операции
183
+ - **math** - Математические операции
184
+ - **string** - Операции со строками
185
+ - **array** - Операции с массивами
186
+ - **object** - Операции с объектами
187
+ - **time** - Работа с датой/временем
188
+ - **user** - Работа с пользователями
189
+ - **bot** - Информация о боте
190
+ - **debug** - Отладка
191
+
192
+ ### 6. Ноды с настройками (Settings Component)
193
+
194
+ Если нода требует UI для настроек, создайте компонент настроек:
195
+
196
+ **Пример: StringLiteralSettings.jsx**
197
+
198
+ ```javascript
199
+ import React from 'react';
200
+ import { AutosizeInput } from '@/components/ui/AutosizeInput';
201
+
202
+ const StringLiteralSettings = ({ nodeId, data, updateNodeData }) => {
203
+ return (
204
+ <div className="p-2 w-full">
205
+ <AutosizeInput
206
+ className="nodrag bg-slate-900 border-slate-500 rounded-md py-1 px-2 text-sm resize-none overflow-hidden w-full"
207
+ value={data.value ?? ''}
208
+ onChange={(e) => updateNodeData(nodeId, { value: e.target.value })}
209
+ placeholder="Привет, {username}!"
210
+ />
211
+ </div>
212
+ );
213
+ };
214
+
215
+ export default StringLiteralSettings;
216
+ ```
217
+
218
+ Затем подключите его в определении ноды:
219
+
220
+ ```javascript
221
+ import StringLiteralSettings from './StringLiteralSettings';
222
+
223
+ export const stringLiteralDefinition = new NodeDefinition({
224
+ // ...
225
+ SettingsComponent: StringLiteralSettings,
226
+ // ...
227
+ });
228
+ ```
229
+
230
+ ### 7. Динамические пины (computeInputs/computeOutputs)
231
+
232
+ Ноды могут иметь динамическое количество пинов в зависимости от данных:
233
+
234
+ ```javascript
235
+ computeInputs: (data) => {
236
+ const inputs = [
237
+ { id: 'value', name: 'Текст', type: 'String', required: false, inlineField: true }
238
+ ];
239
+
240
+ // Динамически добавляем пины для переменных
241
+ const text = data.value || '';
242
+ const variablePattern = /\{([a-zA-Z_][a-zA-Z0-9_]*)\}/g;
243
+ const matches = [...text.matchAll(variablePattern)];
244
+ const uniqueVars = [...new Set(matches.map(m => m[1]))];
245
+
246
+ uniqueVars.forEach(varName => {
247
+ inputs.push({
248
+ id: `var_${varName}`,
249
+ name: varName,
250
+ type: 'Wildcard',
251
+ });
252
+ });
253
+
254
+ return inputs;
255
+ },
256
+ ```
257
+
258
+ ### 8. Проверка работоспособности
259
+
260
+ После добавления ноды:
261
+
262
+ 1. Перезапустите frontend (если используете HMR, изменения применятся автоматически)
263
+ 2. Перезапустите backend
264
+ 3. Откройте визуальный редактор
265
+ 4. Проверьте, что нода появилась в списке доступных нод
266
+ 5. Создайте граф с новой нодой и протестируйте её работу
267
+
268
+ ### 9. Автоматическое распознавание событий
269
+
270
+ Система автоматически распознаёт event ноды при сохранении графа:
271
+
272
+ - В файле `backend/src/api/routes/eventGraphs.js` код автоматически извлекает все ноды типа `event:*` из графа
273
+ - Создаются соответствующие триггеры в таблице `EventGraphTrigger`
274
+ - При загрузке графов для бота (`EventGraphManager.loadGraphsForBot`), графы группируются по типам событий
275
+
276
+ Это означает, что для новых event нод не требуется дополнительная регистрация триггеров - достаточно правильно назвать тип ноды (формат: `event:название_события`).
277
+
278
+ ---
279
+
280
+ ## Дополнительные ресурсы
281
+
282
+ - Примеры нод: `frontend/src/components/visual-editor/nodes/`
283
+ - Обработчики нод: `backend/src/core/node-handlers/`
284
+ - Регистрация нод: `backend/src/core/node-registries/`