blockmine 1.21.0 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. package/.claude/agents/README.md +469 -0
  2. package/.claude/agents/auth-route-debugger.md +118 -0
  3. package/.claude/agents/auth-route-tester.md +93 -0
  4. package/.claude/agents/auto-error-resolver.md +97 -0
  5. package/.claude/agents/build-optimizer.md +236 -0
  6. package/.claude/agents/code-architecture-reviewer.md +83 -0
  7. package/.claude/agents/code-refactor-master.md +94 -0
  8. package/.claude/agents/cost-optimizer.md +134 -0
  9. package/.claude/agents/deployment-orchestrator.md +113 -0
  10. package/.claude/agents/documentation-architect.md +82 -0
  11. package/.claude/agents/frontend-error-fixer.md +77 -0
  12. package/.claude/agents/iac-code-generator.md +71 -0
  13. package/.claude/agents/incident-responder.md +346 -0
  14. package/.claude/agents/infrastructure-architect.md +31 -0
  15. package/.claude/agents/kubernetes-specialist.md +56 -0
  16. package/.claude/agents/migration-planner.md +181 -0
  17. package/.claude/agents/network-architect.md +196 -0
  18. package/.claude/agents/plan-reviewer.md +52 -0
  19. package/.claude/agents/refactor-planner.md +63 -0
  20. package/.claude/agents/security-scanner.md +102 -0
  21. package/.claude/agents/web-research-specialist.md +78 -0
  22. package/.claude/commands/cost-analysis.md +315 -0
  23. package/.claude/commands/dev-docs-update.md +55 -0
  24. package/.claude/commands/dev-docs.md +51 -0
  25. package/.claude/commands/incident-debug.md +247 -0
  26. package/.claude/commands/infra-plan.md +81 -0
  27. package/.claude/commands/migration-plan.md +478 -0
  28. package/.claude/commands/route-research-for-testing.md +37 -0
  29. package/.claude/commands/security-review.md +66 -0
  30. package/.claude/hooks/CONFIG.md +448 -0
  31. package/.claude/hooks/README.md +163 -0
  32. package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +226 -0
  33. package/.claude/hooks/WINDOWS_HOOKS_README.md +151 -0
  34. package/.claude/hooks/add-skill-activation-banners.ts +132 -0
  35. package/.claude/hooks/comprehensive-skill-test.ts +1315 -0
  36. package/.claude/hooks/error-handling-reminder.sh +12 -0
  37. package/.claude/hooks/error-handling-reminder.ts +222 -0
  38. package/.claude/hooks/k8s-manifest-validator.sh +56 -0
  39. package/.claude/hooks/package-lock.json +556 -0
  40. package/.claude/hooks/package.json +16 -0
  41. package/.claude/hooks/post-tool-use-tracker.ps1 +174 -0
  42. package/.claude/hooks/post-tool-use-tracker.sh +183 -0
  43. package/.claude/hooks/security-policy-check.sh +247 -0
  44. package/.claude/hooks/skill-activation-prompt.ps1 +10 -0
  45. package/.claude/hooks/skill-activation-prompt.sh +10 -0
  46. package/.claude/hooks/skill-activation-prompt.ts +141 -0
  47. package/.claude/hooks/stop-build-check-enhanced.sh +130 -0
  48. package/.claude/hooks/terraform-validator.sh +53 -0
  49. package/.claude/hooks/test-input.json +7 -0
  50. package/.claude/hooks/test-skill-activation.ts +427 -0
  51. package/.claude/hooks/trigger-build-resolver.sh +79 -0
  52. package/.claude/hooks/tsc-check.sh +173 -0
  53. package/.claude/hooks/tsconfig.json +19 -0
  54. package/.claude/settings.json +55 -0
  55. package/.claude/settings.local.json +27 -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 +90 -54
  255. package/README.md +94 -0
  256. package/backend/docs/SECRETS_DOCUMENTATION.md +327 -0
  257. package/backend/jest.config.js +59 -0
  258. package/backend/package-lock.json +6129 -0
  259. package/backend/package.json +16 -4
  260. package/backend/prisma/migrations/20251026104609_add_websocket_api/migration.sql +33 -0
  261. package/backend/prisma/schema.prisma +33 -0
  262. package/backend/src/__tests__/core/DependencyService.test.js +336 -0
  263. package/backend/src/__tests__/core/UserService.test.js +875 -0
  264. package/backend/src/__tests__/repositories/BaseRepository.test.js +146 -0
  265. package/backend/src/__tests__/repositories/BotRepository.test.js +118 -0
  266. package/backend/src/__tests__/repositories/CommandRepository.test.js +132 -0
  267. package/backend/src/__tests__/repositories/EventGraphRepository.test.js +93 -0
  268. package/backend/src/__tests__/repositories/GroupRepository.test.js +155 -0
  269. package/backend/src/__tests__/repositories/PermissionRepository.test.js +130 -0
  270. package/backend/src/__tests__/repositories/PluginRepository.test.js +107 -0
  271. package/backend/src/__tests__/repositories/ServerRepository.test.js +80 -0
  272. package/backend/src/__tests__/repositories/UserRepository.test.js +128 -0
  273. package/backend/src/__tests__/secretsFilter.test.js +425 -0
  274. package/backend/src/__tests__/services/BotLifecycleService.test.js +411 -0
  275. package/backend/src/__tests__/services/BotProcessManager.test.js +285 -0
  276. package/backend/src/__tests__/services/CacheManager.test.js +125 -0
  277. package/backend/src/__tests__/services/CommandExecutionService.test.js +460 -0
  278. package/backend/src/__tests__/services/ResourceMonitorService.test.js +207 -0
  279. package/backend/src/__tests__/services/TelemetryService.test.js +291 -0
  280. package/backend/src/__tests__/setup.js +25 -0
  281. package/backend/src/api/routes/apiKeys.js +181 -0
  282. package/backend/src/api/routes/bots.js +49 -7
  283. package/backend/src/api/routes/plugins.js +2 -1
  284. package/backend/src/api/routes/system.js +174 -0
  285. package/backend/src/container.js +82 -0
  286. package/backend/src/core/BotManager.js +142 -871
  287. package/backend/src/core/BotManager.old.js +1093 -0
  288. package/backend/src/core/BotProcess.js +1092 -858
  289. package/backend/src/core/EventGraphManager.js +280 -198
  290. package/backend/src/core/GraphExecutionEngine.js +321 -325
  291. package/backend/src/core/MessageQueue.js +27 -6
  292. package/backend/src/core/NodeRegistry.js +37 -1134
  293. package/backend/src/core/PluginManager.js +62 -12
  294. package/backend/src/core/PrismaService.js +32 -0
  295. package/backend/src/core/UserService.js +3 -3
  296. package/backend/src/core/__tests__/PrismaService.test.js +24 -0
  297. package/backend/src/core/commands/README.md +305 -0
  298. package/backend/src/core/commands/dev.js +13 -7
  299. package/backend/src/core/commands/ping.js +10 -4
  300. package/backend/src/core/commands/whois.js +63 -0
  301. package/backend/src/core/config/validation.js +27 -0
  302. package/backend/src/core/constants/graphTypes.js +21 -0
  303. package/backend/src/core/node-registries/actions.js +132 -0
  304. package/backend/src/core/node-registries/arrays.js +137 -0
  305. package/backend/src/core/node-registries/bot.js +23 -0
  306. package/backend/src/core/node-registries/data.js +290 -0
  307. package/backend/src/core/node-registries/debug.js +26 -0
  308. package/backend/src/core/node-registries/events.js +187 -0
  309. package/backend/src/core/node-registries/flow.js +139 -0
  310. package/backend/src/core/node-registries/logic.js +45 -0
  311. package/backend/src/core/node-registries/math.js +42 -0
  312. package/backend/src/core/node-registries/objects.js +98 -0
  313. package/backend/src/core/node-registries/strings.js +153 -0
  314. package/backend/src/core/node-registries/time.js +113 -0
  315. package/backend/src/core/node-registries/users.js +79 -0
  316. package/backend/src/core/nodes/{action_bot_look_at.js → actions/bot_look_at.js} +36 -36
  317. package/backend/src/core/nodes/{action_bot_set_variable.js → actions/bot_set_variable.js} +32 -32
  318. package/backend/src/core/nodes/{action_send_log.js → actions/send_log.js} +28 -23
  319. package/backend/src/core/nodes/{action_send_message.js → actions/send_message.js} +32 -32
  320. package/backend/src/core/nodes/actions/send_websocket_response.js +33 -0
  321. package/backend/src/core/nodes/arrays/get_next.js +35 -0
  322. package/backend/src/core/nodes/{data_cast.js → data/cast.js} +8 -0
  323. package/backend/src/core/nodes/data/datetime_literal.js +27 -0
  324. package/backend/src/core/nodes/data/entity_info.js +69 -0
  325. package/backend/src/core/nodes/data/get_nearby_entities.js +32 -0
  326. package/backend/src/core/nodes/data/get_nearby_players.js +64 -0
  327. package/backend/src/core/nodes/{data_get_user_field.js → data/get_user_field.js} +1 -1
  328. package/backend/src/core/nodes/data/type_check.js +53 -0
  329. package/backend/src/core/nodes/{debug_log.js → debug/log.js} +16 -16
  330. package/backend/src/core/nodes/{flow_branch.js → flow/branch.js} +15 -15
  331. package/backend/src/core/nodes/{flow_break.js → flow/break.js} +14 -14
  332. package/backend/src/core/nodes/flow/delay.js +43 -0
  333. package/backend/src/core/nodes/{flow_for_each.js → flow/for_each.js} +39 -39
  334. package/backend/src/core/nodes/{flow_sequence.js → flow/sequence.js} +16 -16
  335. package/backend/src/core/nodes/{flow_switch.js → flow/switch.js} +47 -47
  336. package/backend/src/core/nodes/{flow_while.js → flow/while.js} +1 -1
  337. package/backend/src/core/nodes/logic/__tests__/compare.test.js +83 -0
  338. package/backend/src/core/nodes/math/__tests__/operation.test.js +65 -0
  339. package/backend/src/core/nodes/strings/__tests__/concat.test.js +89 -0
  340. package/backend/src/core/nodes/time/__tests__/now.test.js +24 -0
  341. package/backend/src/core/nodes/time/add.js +33 -0
  342. package/backend/src/core/nodes/time/compare.js +35 -0
  343. package/backend/src/core/nodes/time/diff.js +29 -0
  344. package/backend/src/core/nodes/time/format.js +32 -0
  345. package/backend/src/core/nodes/time/now.js +18 -0
  346. package/backend/src/core/nodes/{user_check_blacklist.js → users/check_blacklist.js} +37 -37
  347. package/backend/src/core/nodes/{user_get_groups.js → users/get_groups.js} +36 -36
  348. package/backend/src/core/nodes/{user_get_permissions.js → users/get_permissions.js} +36 -36
  349. package/backend/src/core/nodes/{user_set_blacklist.js → users/set_blacklist.js} +37 -37
  350. package/backend/src/core/services/BotLifecycleService.js +596 -0
  351. package/backend/src/core/services/BotProcessManager.js +163 -0
  352. package/backend/src/core/services/CacheManager.js +111 -0
  353. package/backend/src/core/services/CommandExecutionService.js +351 -0
  354. package/backend/src/core/services/ResourceMonitorService.js +90 -0
  355. package/backend/src/core/services/TelemetryService.js +124 -0
  356. package/backend/src/core/services/ValidationService.js +132 -0
  357. package/backend/src/core/services/__tests__/ValidationService.test.js +148 -0
  358. package/backend/src/core/services.js +20 -5
  359. package/backend/src/core/system/CommandContext.js +84 -0
  360. package/backend/src/core/system/Transport.js +78 -0
  361. package/backend/src/core/utils/__tests__/jsonParser.test.js +44 -0
  362. package/backend/src/core/utils/jsonParser.js +18 -0
  363. package/backend/src/core/utils/secretsFilter.js +262 -0
  364. package/backend/src/core/utils/variableParser.js +89 -0
  365. package/backend/src/core/validation/__tests__/nodeSchemas.test.js +175 -0
  366. package/backend/src/core/validation/nodeSchemas.js +112 -0
  367. package/backend/src/lib/prisma.js +2 -4
  368. package/backend/src/real-time/botApi/handlers/commandHandlers.js +28 -0
  369. package/backend/src/real-time/botApi/handlers/graphHandlers.js +99 -0
  370. package/backend/src/real-time/botApi/handlers/graphWebSocketHandlers.js +147 -0
  371. package/backend/src/real-time/botApi/handlers/index.js +43 -0
  372. package/backend/src/real-time/botApi/handlers/messageHandlers.js +66 -0
  373. package/backend/src/real-time/botApi/handlers/statusHandlers.js +17 -0
  374. package/backend/src/real-time/botApi/handlers/userHandlers.js +141 -0
  375. package/backend/src/real-time/botApi/index.js +40 -0
  376. package/backend/src/real-time/botApi/middleware.js +79 -0
  377. package/backend/src/real-time/botApi/utils.js +54 -0
  378. package/backend/src/real-time/socketHandler.js +6 -2
  379. package/backend/src/repositories/BaseRepository.js +43 -0
  380. package/backend/src/repositories/BotRepository.js +42 -0
  381. package/backend/src/repositories/CommandRepository.js +53 -0
  382. package/backend/src/repositories/EventGraphRepository.js +40 -0
  383. package/backend/src/repositories/GroupRepository.js +69 -0
  384. package/backend/src/repositories/PermissionRepository.js +48 -0
  385. package/backend/src/repositories/PluginRepository.js +42 -0
  386. package/backend/src/repositories/ServerRepository.js +27 -0
  387. package/backend/src/repositories/UserRepository.js +48 -0
  388. package/backend/src/server.js +3 -0
  389. package/backend/src/test-refactor.js +85 -0
  390. package/frontend/dist/assets/index-CfTo92bP.css +1 -0
  391. package/frontend/dist/assets/index-CiFD5X9Z.js +8344 -0
  392. package/frontend/dist/index.html +2 -2
  393. package/frontend/package.json +0 -5
  394. package/package.json +2 -1
  395. package/frontend/dist/assets/index-B9GedHEa.js +0 -8352
  396. package/frontend/dist/assets/index-zLiy9MDx.css +0 -1
  397. package/nul +0 -0
  398. /package/backend/src/core/nodes/{action_http_request.js → actions/http_request.js} +0 -0
  399. /package/backend/src/core/nodes/{array_add_element.js → arrays/add_element.js} +0 -0
  400. /package/backend/src/core/nodes/{array_contains.js → arrays/contains.js} +0 -0
  401. /package/backend/src/core/nodes/{array_find_index.js → arrays/find_index.js} +0 -0
  402. /package/backend/src/core/nodes/{array_get_by_index.js → arrays/get_by_index.js} +0 -0
  403. /package/backend/src/core/nodes/{array_get_random_element.js → arrays/get_random_element.js} +0 -0
  404. /package/backend/src/core/nodes/{array_remove_by_index.js → arrays/remove_by_index.js} +0 -0
  405. /package/backend/src/core/nodes/{bot_get_position.js → bot/get_position.js} +0 -0
  406. /package/backend/src/core/nodes/{data_array_literal.js → data/array_literal.js} +0 -0
  407. /package/backend/src/core/nodes/{data_boolean_literal.js → data/boolean_literal.js} +0 -0
  408. /package/backend/src/core/nodes/{data_get_argument.js → data/get_argument.js} +0 -0
  409. /package/backend/src/core/nodes/{data_get_bot_look.js → data/get_bot_look.js} +0 -0
  410. /package/backend/src/core/nodes/{data_get_entity_field.js → data/get_entity_field.js} +0 -0
  411. /package/backend/src/core/nodes/{data_get_server_players.js → data/get_server_players.js} +0 -0
  412. /package/backend/src/core/nodes/{data_get_variable.js → data/get_variable.js} +0 -0
  413. /package/backend/src/core/nodes/{data_length.js → data/length.js} +0 -0
  414. /package/backend/src/core/nodes/{data_make_object.js → data/make_object.js} +0 -0
  415. /package/backend/src/core/nodes/{data_number_literal.js → data/number_literal.js} +0 -0
  416. /package/backend/src/core/nodes/{data_string_literal.js → data/string_literal.js} +0 -0
  417. /package/backend/src/core/nodes/{logic_compare.js → logic/compare.js} +0 -0
  418. /package/backend/src/core/nodes/{logic_operation.js → logic/operation.js} +0 -0
  419. /package/backend/src/core/nodes/{math_operation.js → math/operation.js} +0 -0
  420. /package/backend/src/core/nodes/{math_random_number.js → math/random_number.js} +0 -0
  421. /package/backend/src/core/nodes/{object_create.js → objects/create.js} +0 -0
  422. /package/backend/src/core/nodes/{object_delete.js → objects/delete.js} +0 -0
  423. /package/backend/src/core/nodes/{object_get.js → objects/get.js} +0 -0
  424. /package/backend/src/core/nodes/{object_has_key.js → objects/has_key.js} +0 -0
  425. /package/backend/src/core/nodes/{object_set.js → objects/set.js} +0 -0
  426. /package/backend/src/core/nodes/{string_concat.js → strings/concat.js} +0 -0
  427. /package/backend/src/core/nodes/{string_contains.js → strings/contains.js} +0 -0
  428. /package/backend/src/core/nodes/{string_ends_with.js → strings/ends_with.js} +0 -0
  429. /package/backend/src/core/nodes/{string_equals.js → strings/equals.js} +0 -0
  430. /package/backend/src/core/nodes/{string_length.js → strings/length.js} +0 -0
  431. /package/backend/src/core/nodes/{string_matches.js → strings/matches.js} +0 -0
  432. /package/backend/src/core/nodes/{string_split.js → strings/split.js} +0 -0
  433. /package/backend/src/core/nodes/{string_starts_with.js → strings/starts_with.js} +0 -0
@@ -0,0 +1,753 @@
1
+ # Troubleshooting Guide
2
+
3
+ Comprehensive troubleshooting methodology and diagnostic techniques for Linux systems covering systematic debugging, diagnostic tools, common issues, and resolution patterns.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Troubleshooting Methodology](#troubleshooting-methodology)
8
+ - [Diagnostic Tools](#diagnostic-tools)
9
+ - [CPU Issues](#cpu-issues)
10
+ - [Memory Problems](#memory-problems)
11
+ - [Disk and I/O Issues](#disk-and-io-issues)
12
+ - [Network Troubleshooting](#network-troubleshooting)
13
+ - [Process Debugging](#process-debugging)
14
+ - [Log Analysis](#log-analysis)
15
+ - [Common Issues](#common-issues)
16
+
17
+ ## Troubleshooting Methodology
18
+
19
+ ### Systematic Approach
20
+
21
+ ```
22
+ 1. Define the problem
23
+ - What is not working?
24
+ - When did it start?
25
+ - What changed recently?
26
+
27
+ 2. Gather information
28
+ - System logs
29
+ - Performance metrics
30
+ - Error messages
31
+ - Configuration changes
32
+
33
+ 3. Identify the scope
34
+ - Single system or multiple?
35
+ - Specific service or system-wide?
36
+ - Intermittent or persistent?
37
+
38
+ 4. Form hypothesis
39
+ - Based on symptoms and data
40
+ - Most likely cause first
41
+
42
+ 5. Test hypothesis
43
+ - Make one change at a time
44
+ - Document each test
45
+ - Revert if unsuccessful
46
+
47
+ 6. Implement solution
48
+ - Apply fix permanently
49
+ - Document resolution
50
+ - Monitor after fix
51
+
52
+ 7. Prevent recurrence
53
+ - Root cause analysis
54
+ - Implement monitoring
55
+ - Update runbooks
56
+ ```
57
+
58
+ ### The 5 Whys
59
+
60
+ ```
61
+ Problem: Web server is down
62
+
63
+ Why? → Process crashed
64
+ Why? → Out of memory
65
+ Why? → Memory leak in application
66
+ Why? → Improper resource cleanup
67
+ Why? → Missing connection pool management
68
+
69
+ Root Cause: Application doesn't close database connections
70
+ Solution: Implement connection pooling and proper cleanup
71
+ ```
72
+
73
+ ## Diagnostic Tools
74
+
75
+ ### Essential Toolkit
76
+
77
+ ```bash
78
+ # System information
79
+ uname -a # Kernel and system info
80
+ hostnamectl # System details
81
+ lsb_release -a # Distribution info
82
+
83
+ # Resource monitoring
84
+ top # Process monitor
85
+ htop # Better process monitor
86
+ vmstat 1 # Virtual memory statistics
87
+ iostat -x 1 # I/O statistics
88
+ mpstat 1 # CPU statistics
89
+ sar # System activity reporter
90
+
91
+ # Network
92
+ ss -tuln # Socket statistics
93
+ netstat -tuln # Network connections (legacy)
94
+ ip addr # IP addresses
95
+ ip route # Routing table
96
+ tcpdump # Packet capture
97
+ traceroute # Trace route to host
98
+
99
+ # Disk
100
+ df -h # Disk usage
101
+ du -sh /* # Directory sizes
102
+ lsblk # Block devices
103
+ fdisk -l # Partition tables
104
+
105
+ # Process
106
+ ps aux # Process list
107
+ pstree # Process tree
108
+ lsof # Open files
109
+ strace # Trace system calls
110
+ pmap # Process memory map
111
+
112
+ # Logs
113
+ journalctl # systemd logs
114
+ dmesg # Kernel messages
115
+ tail -f # Follow log files
116
+ ```
117
+
118
+ ## CPU Issues
119
+
120
+ ### High CPU Usage
121
+
122
+ **Diagnosis:**
123
+ ```bash
124
+ # Identify high CPU processes
125
+ top -bn1 | head -20
126
+ ps aux --sort=-%cpu | head -10
127
+
128
+ # Per-core CPU usage
129
+ mpstat -P ALL 1 5
130
+
131
+ # CPU usage by user
132
+ ps -eo user,%cpu --sort=-%cpu | awk '{usage[$1]+=$2} END {for(u in usage) print u, usage[u]}'
133
+
134
+ # Check load average
135
+ uptime
136
+ cat /proc/loadavg
137
+
138
+ # Ideal load: Number of CPU cores
139
+ # High load: Investigate what's queued
140
+ ```
141
+
142
+ **Investigation:**
143
+ ```bash
144
+ # Trace high CPU process
145
+ sudo strace -p <PID> -c # Count syscalls
146
+ sudo strace -p <PID> -tt # Detailed trace with timestamps
147
+
148
+ # Check what files process is using
149
+ lsof -p <PID>
150
+
151
+ # Check process threads
152
+ ps -T -p <PID>
153
+ top -H -p <PID>
154
+
155
+ # Profile with perf
156
+ sudo perf top -p <PID>
157
+ sudo perf record -p <PID> -g -- sleep 30
158
+ sudo perf report
159
+ ```
160
+
161
+ **Solutions:**
162
+ ```bash
163
+ # Kill runaway process
164
+ kill <PID>
165
+ kill -9 <PID> # Force kill
166
+
167
+ # Reduce process priority
168
+ renice +10 <PID>
169
+
170
+ # Limit CPU usage with cgroups
171
+ cgcreate -g cpu:/limit
172
+ cgset -r cpu.cfs_quota_us=50000 limit # 50% CPU
173
+ cgexec -g cpu:limit command
174
+
175
+ # Or with systemd
176
+ systemctl set-property myapp.service CPUQuota=50%
177
+ ```
178
+
179
+ ### CPU Wait (I/O Wait)
180
+
181
+ ```bash
182
+ # Check I/O wait
183
+ iostat -x 1 5
184
+
185
+ # If 'wa' (I/O wait) is high, check:
186
+ iotop -oPa # I/O by process
187
+
188
+ # Find processes doing I/O
189
+ pidstat -d 1
190
+
191
+ # Solution: See Disk I/O Issues below
192
+ ```
193
+
194
+ ## Memory Problems
195
+
196
+ ### Out of Memory (OOM)
197
+
198
+ **Diagnosis:**
199
+ ```bash
200
+ # Check memory usage
201
+ free -h
202
+ cat /proc/meminfo
203
+
204
+ # Check swap usage
205
+ swapon --show
206
+ vmstat 1 5
207
+
208
+ # Check OOM killer logs
209
+ dmesg | grep -i "out of memory"
210
+ journalctl -k | grep -i "oom"
211
+
212
+ # Find memory hogs
213
+ ps aux --sort=-%mem | head -10
214
+
215
+ # Per-process memory details
216
+ pmap -x <PID>
217
+ cat /proc/<PID>/status | grep -i mem
218
+ ```
219
+
220
+ **Investigation:**
221
+ ```bash
222
+ # Check for memory leaks
223
+ valgrind --leak-check=full ./program
224
+
225
+ # Monitor memory usage over time
226
+ watch -n 1 'free -h'
227
+
228
+ # Check memory usage by user
229
+ ps -eo user,%mem --sort=-%mem | awk '{usage[$1]+=$2} END {for(u in usage) print u, usage[u]}'
230
+
231
+ # Analyze memory allocation
232
+ cat /proc/<PID>/maps
233
+ cat /proc/<PID>/smaps
234
+ ```
235
+
236
+ **Solutions:**
237
+ ```bash
238
+ # Clear cache (safe)
239
+ sync; echo 3 > /proc/sys/vm/drop_caches
240
+
241
+ # Add more swap
242
+ sudo fallocate -l 4G /swapfile
243
+ sudo chmod 600 /swapfile
244
+ sudo mkswap /swapfile
245
+ sudo swapon /swapfile
246
+
247
+ # Limit process memory (systemd)
248
+ systemctl set-property myapp.service MemoryLimit=1G
249
+
250
+ # Adjust swappiness
251
+ sudo sysctl vm.swappiness=10
252
+
253
+ # Kill memory hog as last resort
254
+ kill <PID>
255
+ ```
256
+
257
+ ### Memory Leaks
258
+
259
+ ```bash
260
+ # Monitor process memory over time
261
+ while true; do
262
+ ps aux | grep <process> | grep -v grep
263
+ sleep 10
264
+ done
265
+
266
+ # Use valgrind for detailed analysis
267
+ valgrind --leak-check=full \
268
+ --show-leak-kinds=all \
269
+ --track-origins=yes \
270
+ --verbose \
271
+ --log-file=valgrind-out.txt \
272
+ ./program
273
+
274
+ # Monitor with top
275
+ top -p <PID>
276
+ # Watch RES (resident memory) increase over time
277
+ ```
278
+
279
+ ## Disk and I/O Issues
280
+
281
+ ### Disk Full
282
+
283
+ **Diagnosis:**
284
+ ```bash
285
+ # Check disk usage
286
+ df -h
287
+
288
+ # Find large directories
289
+ du -sh /* | sort -h
290
+ du -sh /var/* | sort -h
291
+
292
+ # Find large files
293
+ find / -type f -size +100M -exec ls -lh {} \;
294
+ find / -type f -size +1G 2>/dev/null
295
+
296
+ # Check inode usage
297
+ df -i
298
+
299
+ # Find directories with many files
300
+ find / -xdev -type d -exec sh -c 'echo "{} $(find "{}" -maxdepth 1 | wc -l)"' \; | sort -k2 -rn | head
301
+ ```
302
+
303
+ **Solutions:**
304
+ ```bash
305
+ # Clear log files
306
+ sudo truncate -s 0 /var/log/large.log
307
+
308
+ # Remove old log files
309
+ find /var/log -name "*.log" -mtime +30 -delete
310
+
311
+ # Clean package cache
312
+ sudo apt clean
313
+ sudo yum clean all
314
+
315
+ # Remove old kernels (Ubuntu/Debian)
316
+ sudo apt autoremove --purge
317
+
318
+ # Clear systemd journal
319
+ sudo journalctl --vacuum-time=7d
320
+ sudo journalctl --vacuum-size=500M
321
+
322
+ # Find and remove duplicate files
323
+ fdupes -r /path/to/directory
324
+ ```
325
+
326
+ ### High I/O Wait
327
+
328
+ **Diagnosis:**
329
+ ```bash
330
+ # Check I/O wait
331
+ iostat -x 1 5
332
+ # Look at %util and await columns
333
+
334
+ # Find I/O intensive processes
335
+ iotop -oPa
336
+ pidstat -d 1
337
+
338
+ # Check disk statistics
339
+ vmstat 1 5
340
+ # Look at bi (blocks in) and bo (blocks out)
341
+
342
+ # Identify slow disk
343
+ iostat -x 1 5
344
+ # High 'await' indicates slow disk
345
+ ```
346
+
347
+ **Investigation:**
348
+ ```bash
349
+ # Check for failing disk
350
+ sudo smartctl -a /dev/sda
351
+ dmesg | grep -i error
352
+
353
+ # Check disk errors
354
+ cat /sys/block/sda/device/ioerr_cnt
355
+
356
+ # Monitor disk performance
357
+ sudo iotop -oPa
358
+ sudo blktrace /dev/sda
359
+ ```
360
+
361
+ **Solutions:**
362
+ ```bash
363
+ # Optimize I/O scheduler
364
+ echo deadline > /sys/block/sda/queue/scheduler
365
+
366
+ # Increase readahead
367
+ sudo blockdev --setra 4096 /dev/sda
368
+
369
+ # Tune filesystem mount options
370
+ # Add to /etc/fstab: noatime,nodiratime
371
+
372
+ # Use faster disk (SSD instead of HDD)
373
+ # Implement RAID for performance
374
+ # Move to cloud storage
375
+ ```
376
+
377
+ ## Network Troubleshooting
378
+
379
+ ### Cannot Connect to Server
380
+
381
+ **Diagnosis:**
382
+ ```bash
383
+ # 1. Check if service is running
384
+ systemctl status nginx
385
+ ps aux | grep nginx
386
+
387
+ # 2. Check if port is listening
388
+ ss -tuln | grep :80
389
+ netstat -tuln | grep :80
390
+
391
+ # 3. Check firewall
392
+ sudo iptables -L -n
393
+ sudo ufw status
394
+
395
+ # 4. Test from local
396
+ curl http://localhost:80
397
+ telnet localhost 80
398
+ nc -zv localhost 80
399
+
400
+ # 5. Test from remote
401
+ ping server-ip
402
+ telnet server-ip 80
403
+ nc -zv server-ip 80
404
+ ```
405
+
406
+ **Network Connectivity:**
407
+ ```bash
408
+ # Ping test
409
+ ping -c 4 8.8.8.8 # Test internet
410
+ ping -c 4 gateway-ip # Test gateway
411
+ ping -c 4 server-ip # Test server
412
+
413
+ # DNS resolution
414
+ nslookup example.com
415
+ dig example.com
416
+ host example.com
417
+
418
+ # Traceroute
419
+ traceroute example.com
420
+ mtr example.com # Better traceroute
421
+
422
+ # Check routing
423
+ ip route show
424
+ route -n
425
+ ```
426
+
427
+ **Port and Service:**
428
+ ```bash
429
+ # Check if port is open locally
430
+ sudo ss -tuln | grep :80
431
+
432
+ # Check from remote
433
+ nmap -p 80 server-ip
434
+ telnet server-ip 80
435
+ nc -zv server-ip 80
436
+
437
+ # Check listening addresses
438
+ ss -tuln
439
+ # 0.0.0.0:80 = listening on all interfaces
440
+ # 127.0.0.1:80 = only localhost
441
+ ```
442
+
443
+ ### Network Performance Issues
444
+
445
+ ```bash
446
+ # Test bandwidth
447
+ iperf3 -s # Server
448
+ iperf3 -c server-ip # Client
449
+
450
+ # Check network errors
451
+ ip -s link show eth0
452
+ netstat -i
453
+
454
+ # Monitor connections
455
+ ss -s
456
+ ss -tan
457
+ watch -n 1 'ss -tan | tail -n +2 | awk "{print \$1}" | sort | uniq -c'
458
+
459
+ # Check TCP settings
460
+ sysctl -a | grep tcp
461
+
462
+ # Packet capture
463
+ sudo tcpdump -i eth0 -n port 80
464
+ sudo tcpdump -i eth0 -w capture.pcap
465
+ ```
466
+
467
+ ## Process Debugging
468
+
469
+ ### Process Won't Start
470
+
471
+ **Diagnosis:**
472
+ ```bash
473
+ # Check service status
474
+ systemctl status myapp.service
475
+
476
+ # View detailed logs
477
+ journalctl -u myapp.service -n 50
478
+ journalctl -u myapp.service --since "10 minutes ago"
479
+
480
+ # Check service file
481
+ systemctl cat myapp.service
482
+
483
+ # Try manual start
484
+ /usr/bin/myapp --config /etc/myapp/config.yml
485
+
486
+ # Check dependencies
487
+ ldd /usr/bin/myapp
488
+
489
+ # Check permissions
490
+ ls -l /usr/bin/myapp
491
+ namei -l /usr/bin/myapp
492
+ ```
493
+
494
+ **Common Causes:**
495
+ ```bash
496
+ # 1. Configuration error
497
+ /usr/bin/myapp --test-config
498
+
499
+ # 2. Permission denied
500
+ sudo chmod +x /usr/bin/myapp
501
+ sudo chown myapp:myapp /var/log/myapp
502
+
503
+ # 3. Port already in use
504
+ ss -tuln | grep :8080
505
+ # Kill process using port or change port
506
+
507
+ # 4. Missing dependencies
508
+ ldd /usr/bin/myapp
509
+ # Install missing libraries
510
+
511
+ # 5. Resource limits
512
+ ulimit -a
513
+ # Increase limits if needed
514
+ ```
515
+
516
+ ### Process Hangs/Freezes
517
+
518
+ ```bash
519
+ # Check process state
520
+ ps aux | grep myapp
521
+ # D = uninterruptible sleep (I/O)
522
+ # S = sleeping
523
+ # R = running
524
+ # Z = zombie
525
+
526
+ # Get stack trace
527
+ sudo gdb -p <PID>
528
+ (gdb) thread apply all bt
529
+ (gdb) quit
530
+
531
+ # Trace system calls
532
+ sudo strace -p <PID>
533
+
534
+ # Check what process is waiting on
535
+ cat /proc/<PID>/wchan
536
+
537
+ # Check open files
538
+ lsof -p <PID>
539
+
540
+ # Force core dump (for analysis)
541
+ sudo gcore <PID>
542
+ ```
543
+
544
+ ### Zombie Processes
545
+
546
+ ```bash
547
+ # Find zombie processes
548
+ ps aux | grep defunct
549
+ ps -eo pid,stat,comm | grep Z
550
+
551
+ # Zombies can't be killed directly
552
+ # Must kill parent process
553
+
554
+ # Find parent
555
+ ps -o ppid= -p <zombie-pid>
556
+
557
+ # Kill parent
558
+ kill <parent-pid>
559
+
560
+ # If parent is init (PID 1), reboot is needed
561
+ ```
562
+
563
+ ## Log Analysis
564
+
565
+ ### Finding Issues in Logs
566
+
567
+ ```bash
568
+ # Recent errors
569
+ journalctl -p err --since today
570
+ grep -i error /var/log/syslog | tail -50
571
+
572
+ # Application errors
573
+ journalctl -u myapp.service | grep -i error
574
+ tail -f /var/log/myapp/error.log
575
+
576
+ # Count error types
577
+ grep ERROR /var/log/myapp/app.log | awk '{print $5}' | sort | uniq -c | sort -rn
578
+
579
+ # Find pattern in logs
580
+ grep -r "connection refused" /var/log/
581
+
582
+ # Time-based search
583
+ journalctl --since "2024-01-01 00:00:00" --until "2024-01-01 23:59:59"
584
+
585
+ # Multiple log files
586
+ tail -f /var/log/nginx/*.log
587
+ multitail /var/log/nginx/access.log /var/log/nginx/error.log
588
+ ```
589
+
590
+ ### Log Correlation
591
+
592
+ ```bash
593
+ # Correlate logs by timestamp
594
+ # Script to merge logs by timestamp
595
+ #!/bin/bash
596
+ cat /var/log/app1.log /var/log/app2.log | sort -k1,2
597
+
598
+ # Track request across logs
599
+ request_id="abc123"
600
+ grep -r "$request_id" /var/log/
601
+ ```
602
+
603
+ ## Common Issues
604
+
605
+ ### Issue: System Won't Boot
606
+
607
+ ```bash
608
+ # Boot into rescue mode
609
+ # GRUB menu: Advanced options → Recovery mode
610
+
611
+ # Check boot logs
612
+ journalctl -b -1 # Previous boot
613
+ dmesg
614
+
615
+ # Check fstab
616
+ cat /etc/fstab
617
+ # Comment out problematic mounts
618
+
619
+ # Check disk errors
620
+ fsck /dev/sda1
621
+
622
+ # Reinstall GRUB
623
+ grub-install /dev/sda
624
+ update-grub
625
+ ```
626
+
627
+ ### Issue: SSH Connection Refused
628
+
629
+ ```bash
630
+ # Check SSH service
631
+ systemctl status sshd
632
+ journalctl -u sshd
633
+
634
+ # Check port
635
+ ss -tuln | grep :22
636
+
637
+ # Check firewall
638
+ sudo ufw status
639
+ sudo iptables -L INPUT
640
+
641
+ # Test SSH
642
+ ssh -v user@server # Verbose
643
+
644
+ # Check SSH config
645
+ sudo sshd -t # Test config
646
+ cat /etc/ssh/sshd_config
647
+
648
+ # Common fixes:
649
+ sudo systemctl start sshd
650
+ sudo ufw allow 22
651
+ ```
652
+
653
+ ### Issue: High Load Average
654
+
655
+ ```bash
656
+ # Check load
657
+ uptime
658
+ # Load should be ≈ number of CPU cores
659
+
660
+ # If high load:
661
+ # 1. Check CPU usage
662
+ top
663
+
664
+ # 2. Check I/O wait
665
+ iostat -x 1
666
+
667
+ # 3. Check memory
668
+ free -h
669
+ vmstat 1
670
+
671
+ # 4. Find cause
672
+ # High CPU → top, ps
673
+ # High I/O → iotop
674
+ # High memory → free, ps aux --sort=-%mem
675
+ ```
676
+
677
+ ### Issue: Permission Denied
678
+
679
+ ```bash
680
+ # Check file permissions
681
+ ls -l /path/to/file
682
+
683
+ # Check ownership
684
+ ls -l /path/to/file
685
+
686
+ # Check full path
687
+ namei -l /path/to/file
688
+
689
+ # Check SELinux/AppArmor
690
+ getenforce
691
+ sudo setenforce 0 # Temporarily disable to test
692
+
693
+ # Fix permissions
694
+ sudo chmod 644 /path/to/file
695
+ sudo chown user:group /path/to/file
696
+
697
+ # For directories
698
+ sudo chmod -R 755 /path/to/dir
699
+ ```
700
+
701
+ ### Issue: Time Synchronization
702
+
703
+ ```bash
704
+ # Check system time
705
+ date
706
+ timedatectl
707
+
708
+ # Check NTP status
709
+ systemctl status systemd-timesyncd
710
+ timedatectl show-timesync
711
+
712
+ # Sync time manually
713
+ sudo systemctl restart systemd-timesyncd
714
+
715
+ # Or use ntpdate
716
+ sudo ntpdate -u pool.ntp.org
717
+
718
+ # Set timezone
719
+ timedatectl set-timezone America/New_York
720
+ ```
721
+
722
+ ### Issue: DNS Resolution Failed
723
+
724
+ ```bash
725
+ # Test DNS
726
+ nslookup example.com
727
+ dig example.com
728
+
729
+ # Check resolv.conf
730
+ cat /etc/resolv.conf
731
+
732
+ # Check systemd-resolved
733
+ resolvectl status
734
+
735
+ # Flush DNS cache
736
+ sudo systemd-resolve --flush-caches
737
+ # Or
738
+ sudo resolvectl flush-caches
739
+
740
+ # Test with specific DNS
741
+ dig @8.8.8.8 example.com
742
+
743
+ # Fix: Update DNS servers
744
+ echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
745
+ ```
746
+
747
+ ---
748
+
749
+ **Related Topics:**
750
+ - See [performance-tuning.md](performance-tuning.md) for optimization
751
+ - See [system-monitoring.md](system-monitoring.md) for proactive monitoring
752
+ - See [networking-fundamentals.md](networking-fundamentals.md) for network issues
753
+ - See [linux-administration.md](linux-administration.md) for system management