@nockdev/awf 6.2.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 (727) hide show
  1. package/.agent/build.yaml +178 -0
  2. package/.agent/config.yaml +235 -0
  3. package/.agent/core/ACTIVE_MEMORY.yaml +344 -0
  4. package/.agent/core/ARCH_REGISTRY.yaml +252 -0
  5. package/.agent/core/AUDIT_POLICY.md +68 -0
  6. package/.agent/core/BRANDING.yaml +185 -0
  7. package/.agent/core/CACHE.md +59 -0
  8. package/.agent/core/CHECKPOINT.yaml +153 -0
  9. package/.agent/core/CLEANUP_ENGINE.yaml +326 -0
  10. package/.agent/core/CODING_STYLES.yaml +346 -0
  11. package/.agent/core/COMMANDS.md +93 -0
  12. package/.agent/core/CONTEXT_INJECTOR.yaml +325 -0
  13. package/.agent/core/CONTEXT_LOADER.yaml +323 -0
  14. package/.agent/core/CONTEXT_OPTIMIZATION.yaml +286 -0
  15. package/.agent/core/CONTEXT_PRIORITY.yaml +357 -0
  16. package/.agent/core/CUSTOMIZE.md +138 -0
  17. package/.agent/core/DATA_SAFETY.md +92 -0
  18. package/.agent/core/FLOW_ENGINE.yaml +300 -0
  19. package/.agent/core/GRAPH_MEMORY.yaml +420 -0
  20. package/.agent/core/HSA.yaml +357 -0
  21. package/.agent/core/HYBRID_ROUTER.yaml +346 -0
  22. package/.agent/core/INTENT_DETECTION.yaml +384 -0
  23. package/.agent/core/LIBRARY_REGISTRY.yaml +401 -0
  24. package/.agent/core/MCP_TOOLS.yaml +414 -0
  25. package/.agent/core/MEMORY_CONSOLIDATION.yaml +352 -0
  26. package/.agent/core/MEMORY_ENGINE.yaml +353 -0
  27. package/.agent/core/MEMORY_PATHS.yaml +79 -0
  28. package/.agent/core/MEMORY_UTILS.yaml +212 -0
  29. package/.agent/core/PATTERNS.yaml +319 -0
  30. package/.agent/core/PERMISSIONS.md +100 -0
  31. package/.agent/core/README.md +91 -0
  32. package/.agent/core/REFLECTION_ENGINE.yaml +348 -0
  33. package/.agent/core/ROUTER.yaml +424 -0
  34. package/.agent/core/SCORING_FORMULA.yaml +103 -0
  35. package/.agent/core/SEMANTIC_ENGINE.yaml +162 -0
  36. package/.agent/core/SKILLS_FLOW.yaml +341 -0
  37. package/.agent/core/SKILL_SCHEMA.yaml +266 -0
  38. package/.agent/core/STATE_MACHINE.yaml +409 -0
  39. package/.agent/core/SUMMARIZATION_ENGINE.yaml +258 -0
  40. package/.agent/core/TEMPLATES.yaml +364 -0
  41. package/.agent/core/TOKEN_BUDGETS.yaml +157 -0
  42. package/.agent/core/TOKEN_LOADING.yaml +197 -0
  43. package/.agent/core/TOKEN_SUMMARY.yaml +121 -0
  44. package/.agent/core/VERSION.yaml +240 -0
  45. package/.agent/core/embeddings.json +2004 -0
  46. package/.agent/core/session_cache.json +50 -0
  47. package/.agent/i18n/README.md +30 -0
  48. package/.agent/i18n/en.yaml +302 -0
  49. package/.agent/i18n/vi.yaml +302 -0
  50. package/.agent/ide/README.md +47 -0
  51. package/.agent/ide/amazonq.json +35 -0
  52. package/.agent/ide/amp.json +35 -0
  53. package/.agent/ide/antigravity.json +47 -0
  54. package/.agent/ide/augment.json +35 -0
  55. package/.agent/ide/claude.json +42 -0
  56. package/.agent/ide/cline.json +34 -0
  57. package/.agent/ide/codex.json +37 -0
  58. package/.agent/ide/cody.json +35 -0
  59. package/.agent/ide/continue.json +35 -0
  60. package/.agent/ide/cursor.json +42 -0
  61. package/.agent/ide/gemini.json +46 -0
  62. package/.agent/ide/jetbrains.json +35 -0
  63. package/.agent/ide/kiro.json +35 -0
  64. package/.agent/ide/opencode.json +35 -0
  65. package/.agent/ide/roo.json +35 -0
  66. package/.agent/ide/tabnine.json +35 -0
  67. package/.agent/ide/trae.json +35 -0
  68. package/.agent/ide/vscode.json +34 -0
  69. package/.agent/ide/windsurf.json +56 -0
  70. package/.agent/ide/zed.json +36 -0
  71. package/.agent/manifest.yaml +416 -0
  72. package/.agent/memory/README.md +148 -0
  73. package/.agent/memory/active_memories.json +35 -0
  74. package/.agent/memory/archive/.gitkeep +0 -0
  75. package/.agent/memory/audit_summary.json +58 -0
  76. package/.agent/memory/cleanup_log.json +34 -0
  77. package/.agent/memory/consolidated.md +75 -0
  78. package/.agent/memory/core_memory/persona.json +30 -0
  79. package/.agent/memory/core_memory/project.json +25 -0
  80. package/.agent/memory/core_memory/rules.json +29 -0
  81. package/.agent/memory/core_memory/user.json +24 -0
  82. package/.agent/memory/decisions.md +40 -0
  83. package/.agent/memory/graph/knowledge_graph.json +12 -0
  84. package/.agent/memory/insights.md +52 -0
  85. package/.agent/memory/metrics.json +48 -0
  86. package/.agent/memory/patterns/errors.json +11 -0
  87. package/.agent/memory/patterns/successes.json +10 -0
  88. package/.agent/memory/session.md +64 -0
  89. package/.agent/memory/session_rules.json +19 -0
  90. package/.agent/memory/state.json +81 -0
  91. package/.agent/memory/vectors/README.md +129 -0
  92. package/.agent/personas/README.md +180 -0
  93. package/.agent/personas/architect.md +186 -0
  94. package/.agent/personas/auditor.md +222 -0
  95. package/.agent/personas/debugger.md +210 -0
  96. package/.agent/personas/developer.md +183 -0
  97. package/.agent/personas/devops.md +268 -0
  98. package/.agent/personas/documenter.md +262 -0
  99. package/.agent/personas/orchestrator.md +240 -0
  100. package/.agent/personas/persona.schema.yaml +209 -0
  101. package/.agent/personas/planner.md +171 -0
  102. package/.agent/personas/researcher.md +194 -0
  103. package/.agent/personas/security.md +212 -0
  104. package/.agent/personas/tester.md +247 -0
  105. package/.agent/rules/README.md +231 -0
  106. package/.agent/rules/SACRED_RULES.xml +142 -0
  107. package/.agent/rules/constitutional/tier-0-core.yaml +182 -0
  108. package/.agent/rules/constitutional/tier-1-safety.yaml +272 -0
  109. package/.agent/rules/constitutional/tier-2-execution.yaml +294 -0
  110. package/.agent/rules/data/build-systems.yaml +126 -0
  111. package/.agent/rules/data/quality-standards.json +59 -0
  112. package/.agent/rules/duplication-prevention.md +138 -0
  113. package/.agent/rules/incremental-changes.md +146 -0
  114. package/.agent/rules/modules/context-management.yaml +158 -0
  115. package/.agent/rules/modules/edit-verification.yaml +197 -0
  116. package/.agent/rules/modules/evidence.yaml +185 -0
  117. package/.agent/rules/modules/git-workflow.yaml +165 -0
  118. package/.agent/rules/modules/language.yaml +155 -0
  119. package/.agent/rules/modules/online-research.yaml +192 -0
  120. package/.agent/rules/modules/quality.yaml +185 -0
  121. package/.agent/rules/modules/reflection.yaml +209 -0
  122. package/.agent/rules/modules/stop-conditions.yaml +196 -0
  123. package/.agent/rules/modules/terminal-safety.yaml +229 -0
  124. package/.agent/rules/modules/versioning.yaml +97 -0
  125. package/.agent/rules/modules/yagni.yaml +167 -0
  126. package/.agent/rules/project-detection.md +317 -0
  127. package/.agent/rules/prompt-injection-guard.md +260 -0
  128. package/.agent/rules/shell-commands.md +210 -0
  129. package/.agent/rules/validation-framework.md +189 -0
  130. package/.agent/skills/DEVELOPMENT.yaml +226 -0
  131. package/.agent/skills/README.md +69 -0
  132. package/.agent/skills/_categories.yaml +145 -0
  133. package/.agent/skills/_router.yaml +232 -0
  134. package/.agent/skills/core/_index.yaml +12 -0
  135. package/.agent/skills/core/api-design/META.yaml +64 -0
  136. package/.agent/skills/core/api-design/SKILL.md +169 -0
  137. package/.agent/skills/core/api-design/data/api-versioning.yaml +217 -0
  138. package/.agent/skills/core/api-design/data/error-responses.yaml +135 -0
  139. package/.agent/skills/core/api-design/data/graphql-patterns.yaml +165 -0
  140. package/.agent/skills/core/api-design/data/grpc-patterns.yaml +165 -0
  141. package/.agent/skills/core/api-design/data/http-status-codes.yaml +176 -0
  142. package/.agent/skills/core/api-design/data/pagination.yaml +121 -0
  143. package/.agent/skills/core/api-design/data/rate-limiting.yaml +135 -0
  144. package/.agent/skills/core/api-design/data/rest-patterns.yaml +195 -0
  145. package/.agent/skills/core/api-design/data/test-apis.yaml +217 -0
  146. package/.agent/skills/core/authentication/META.yaml +73 -0
  147. package/.agent/skills/core/authentication/SKILL.md +166 -0
  148. package/.agent/skills/core/authentication/data/anti-patterns.yaml +135 -0
  149. package/.agent/skills/core/authentication/data/core-patterns.yaml +256 -0
  150. package/.agent/skills/core/authentication/data/jwt-patterns.yaml +255 -0
  151. package/.agent/skills/core/authentication/data/language-csharp.yaml +215 -0
  152. package/.agent/skills/core/authentication/data/language-go.yaml +215 -0
  153. package/.agent/skills/core/authentication/data/language-java.yaml +215 -0
  154. package/.agent/skills/core/authentication/data/language-mobile.yaml +215 -0
  155. package/.agent/skills/core/authentication/data/language-python.yaml +215 -0
  156. package/.agent/skills/core/authentication/data/language-rust.yaml +215 -0
  157. package/.agent/skills/core/authentication/data/language-typescript.yaml +215 -0
  158. package/.agent/skills/core/authentication/data/mfa-patterns.yaml +175 -0
  159. package/.agent/skills/core/authentication/data/oauth-patterns.yaml +255 -0
  160. package/.agent/skills/core/authentication/data/oauth.yaml +248 -0
  161. package/.agent/skills/core/authentication/data/passkeys-webauthn.yaml +215 -0
  162. package/.agent/skills/core/authentication/data/passkeys.yaml +208 -0
  163. package/.agent/skills/core/authentication/data/password-patterns.yaml +175 -0
  164. package/.agent/skills/core/authentication/data/password.yaml +168 -0
  165. package/.agent/skills/core/authentication/data/session-patterns.yaml +215 -0
  166. package/.agent/skills/core/error-handling/META.yaml +71 -0
  167. package/.agent/skills/core/error-handling/SKILL.md +156 -0
  168. package/.agent/skills/core/error-handling/data/anti-patterns.yaml +105 -0
  169. package/.agent/skills/core/error-handling/data/api-error-patterns.yaml +135 -0
  170. package/.agent/skills/core/error-handling/data/core-patterns.yaml +226 -0
  171. package/.agent/skills/core/error-handling/data/error-codes.yaml +165 -0
  172. package/.agent/skills/core/error-handling/data/error-messages.yaml +165 -0
  173. package/.agent/skills/core/error-handling/data/language-c-cpp.yaml +226 -0
  174. package/.agent/skills/core/error-handling/data/language-go-rust.yaml +226 -0
  175. package/.agent/skills/core/error-handling/data/language-python-java.yaml +226 -0
  176. package/.agent/skills/core/error-handling/data/language-swift-kotlin.yaml +226 -0
  177. package/.agent/skills/core/error-handling/data/language-typescript-php-ruby.yaml +226 -0
  178. package/.agent/skills/core/error-handling/data/resilience-patterns.yaml +191 -0
  179. package/.agent/skills/core/error-handling/data/ui-error-patterns.yaml +135 -0
  180. package/.agent/skills/core/logging/META.yaml +73 -0
  181. package/.agent/skills/core/logging/SKILL.md +184 -0
  182. package/.agent/skills/core/logging/data/aggregation-patterns.yaml +191 -0
  183. package/.agent/skills/core/logging/data/anti-patterns.yaml +121 -0
  184. package/.agent/skills/core/logging/data/core-patterns.yaml +226 -0
  185. package/.agent/skills/core/logging/data/language-csharp.yaml +191 -0
  186. package/.agent/skills/core/logging/data/language-go.yaml +191 -0
  187. package/.agent/skills/core/logging/data/language-java.yaml +191 -0
  188. package/.agent/skills/core/logging/data/language-kotlin.yaml +156 -0
  189. package/.agent/skills/core/logging/data/language-others.yaml +184 -0
  190. package/.agent/skills/core/logging/data/language-python.yaml +191 -0
  191. package/.agent/skills/core/logging/data/language-rust.yaml +191 -0
  192. package/.agent/skills/core/logging/data/language-swift.yaml +156 -0
  193. package/.agent/skills/core/logging/data/language-typescript.yaml +191 -0
  194. package/.agent/skills/core/logging/data/otel-logging.yaml +156 -0
  195. package/.agent/skills/core/observability/META.yaml +76 -0
  196. package/.agent/skills/core/observability/SKILL.md +153 -0
  197. package/.agent/skills/core/observability/data/alerting-patterns.yaml +165 -0
  198. package/.agent/skills/core/observability/data/anti-patterns.yaml +105 -0
  199. package/.agent/skills/core/observability/data/core-patterns.yaml +195 -0
  200. package/.agent/skills/core/observability/data/language-cpp.yaml +165 -0
  201. package/.agent/skills/core/observability/data/language-csharp.yaml +165 -0
  202. package/.agent/skills/core/observability/data/language-go.yaml +165 -0
  203. package/.agent/skills/core/observability/data/language-java.yaml +165 -0
  204. package/.agent/skills/core/observability/data/language-others.yaml +255 -0
  205. package/.agent/skills/core/observability/data/language-python.yaml +165 -0
  206. package/.agent/skills/core/observability/data/language-rust.yaml +165 -0
  207. package/.agent/skills/core/observability/data/language-typescript.yaml +165 -0
  208. package/.agent/skills/core/observability/data/metrics-patterns.yaml +135 -0
  209. package/.agent/skills/core/observability/data/metrics-prometheus.yaml +165 -0
  210. package/.agent/skills/core/observability/data/otel-core.yaml +195 -0
  211. package/.agent/skills/core/observability/data/profiling-patterns.yaml +135 -0
  212. package/.agent/skills/core/observability/data/tracing-patterns.yaml +165 -0
  213. package/.agent/skills/core/observability/data/tracing-tools.yaml +135 -0
  214. package/.agent/skills/core/security/ADVANCED.md +269 -0
  215. package/.agent/skills/core/security/META.yaml +97 -0
  216. package/.agent/skills/core/security/SKILL.md +234 -0
  217. package/.agent/skills/core/security/data/ai-ml-security.yaml +261 -0
  218. package/.agent/skills/core/security/data/api-security.yaml +230 -0
  219. package/.agent/skills/core/security/data/auth-patterns.yaml +195 -0
  220. package/.agent/skills/core/security/data/binary-exploitation.yaml +339 -0
  221. package/.agent/skills/core/security/data/cloud-security.yaml +269 -0
  222. package/.agent/skills/core/security/data/cwe-top25.yaml +415 -0
  223. package/.agent/skills/core/security/data/language-specific/c-security.yaml +295 -0
  224. package/.agent/skills/core/security/data/language-specific/cpp-security.yaml +295 -0
  225. package/.agent/skills/core/security/data/language-specific/csharp-security.yaml +219 -0
  226. package/.agent/skills/core/security/data/language-specific/go-security.yaml +219 -0
  227. package/.agent/skills/core/security/data/language-specific/java-security.yaml +295 -0
  228. package/.agent/skills/core/security/data/language-specific/kotlin-security.yaml +198 -0
  229. package/.agent/skills/core/security/data/language-specific/php-security.yaml +219 -0
  230. package/.agent/skills/core/security/data/language-specific/python-security.yaml +295 -0
  231. package/.agent/skills/core/security/data/language-specific/ruby-security.yaml +198 -0
  232. package/.agent/skills/core/security/data/language-specific/rust-security.yaml +240 -0
  233. package/.agent/skills/core/security/data/language-specific/solidity-security.yaml +369 -0
  234. package/.agent/skills/core/security/data/language-specific/swift-security.yaml +198 -0
  235. package/.agent/skills/core/security/data/language-specific/typescript-security.yaml +295 -0
  236. package/.agent/skills/core/security/data/mobile-security.yaml +369 -0
  237. package/.agent/skills/core/security/data/network-security.yaml +297 -0
  238. package/.agent/skills/core/security/data/owasp-top10.yaml +171 -0
  239. package/.agent/skills/core/security/data/reverse-engineering.yaml +497 -0
  240. package/.agent/skills/core/security/data/supply-chain.yaml +219 -0
  241. package/.agent/skills/cross-cutting/_index.yaml +15 -0
  242. package/.agent/skills/cross-cutting/audit-pro/META.yaml +43 -0
  243. package/.agent/skills/cross-cutting/audit-pro/data/checklists.yaml +644 -0
  244. package/.agent/skills/cross-cutting/audit-pro/data/scoring.yaml +101 -0
  245. package/.agent/skills/cross-cutting/aws/META.yaml +75 -0
  246. package/.agent/skills/cross-cutting/aws/data/ai_ml.yaml +194 -0
  247. package/.agent/skills/cross-cutting/aws/data/compute.yaml +191 -0
  248. package/.agent/skills/cross-cutting/aws/data/kubernetes.yaml +199 -0
  249. package/.agent/skills/cross-cutting/aws/data/storage.yaml +174 -0
  250. package/.agent/skills/cross-cutting/bun/META.yaml +58 -0
  251. package/.agent/skills/cross-cutting/bun/SKILL.md +357 -0
  252. package/.agent/skills/cross-cutting/bun/data/database.yaml +85 -0
  253. package/.agent/skills/cross-cutting/bun/data/runtime.yaml +170 -0
  254. package/.agent/skills/cross-cutting/bun/data/tooling.yaml +192 -0
  255. package/.agent/skills/cross-cutting/ci-cd/META.yaml +60 -0
  256. package/.agent/skills/cross-cutting/ci-cd/data/github_actions.yaml +248 -0
  257. package/.agent/skills/cross-cutting/ci-cd/data/security.yaml +211 -0
  258. package/.agent/skills/cross-cutting/coding-rules/META.yaml +61 -0
  259. package/.agent/skills/cross-cutting/coding-rules/SKILL.md +171 -0
  260. package/.agent/skills/cross-cutting/coding-rules/data/architecture-patterns.yaml +96 -0
  261. package/.agent/skills/cross-cutting/coding-rules/data/build-systems.yaml +346 -0
  262. package/.agent/skills/cross-cutting/coding-rules/data/coding-rules.yaml +647 -0
  263. package/.agent/skills/cross-cutting/coding-rules/data/concurrency-patterns.yaml +108 -0
  264. package/.agent/skills/cross-cutting/coding-rules/data/design-patterns.yaml +260 -0
  265. package/.agent/skills/cross-cutting/coding-rules/data/framework-signatures.yaml +344 -0
  266. package/.agent/skills/cross-cutting/coding-rules/data/memory-management.yaml +108 -0
  267. package/.agent/skills/cross-cutting/coding-rules/data/naming-conventions.yaml +320 -0
  268. package/.agent/skills/cross-cutting/coding-rules/data/performance-benchmarks.yaml +164 -0
  269. package/.agent/skills/cross-cutting/coding-rules/data/solid-principles.yaml +80 -0
  270. package/.agent/skills/cross-cutting/coding-rules/data/test-frameworks.yaml +183 -0
  271. package/.agent/skills/cross-cutting/database/ADVANCED.md +465 -0
  272. package/.agent/skills/cross-cutting/database/META.yaml +22 -0
  273. package/.agent/skills/cross-cutting/database/SKILL.md +816 -0
  274. package/.agent/skills/cross-cutting/database/data/anti_patterns.yaml +116 -0
  275. package/.agent/skills/cross-cutting/database/data/distributed.yaml +152 -0
  276. package/.agent/skills/cross-cutting/database/data/mongodb.yaml +132 -0
  277. package/.agent/skills/cross-cutting/database/data/mysql.yaml +130 -0
  278. package/.agent/skills/cross-cutting/database/data/orm.yaml +104 -0
  279. package/.agent/skills/cross-cutting/database/data/postgresql.yaml +170 -0
  280. package/.agent/skills/cross-cutting/database/data/redis.yaml +129 -0
  281. package/.agent/skills/cross-cutting/deno/META.yaml +68 -0
  282. package/.agent/skills/cross-cutting/deno/SKILL.md +343 -0
  283. package/.agent/skills/cross-cutting/deno/data/runtime.yaml +260 -0
  284. package/.agent/skills/cross-cutting/deno/data/security.yaml +168 -0
  285. package/.agent/skills/cross-cutting/deno/data/tooling.yaml +133 -0
  286. package/.agent/skills/cross-cutting/docker/META.yaml +65 -0
  287. package/.agent/skills/cross-cutting/docker/data/build.yaml +197 -0
  288. package/.agent/skills/cross-cutting/docker/data/compose.yaml +229 -0
  289. package/.agent/skills/cross-cutting/docker/data/security.yaml +164 -0
  290. package/.agent/skills/cross-cutting/electron/META.yaml +174 -0
  291. package/.agent/skills/cross-cutting/electron/SKILL.md +862 -0
  292. package/.agent/skills/cross-cutting/electron/data/build.yaml +105 -0
  293. package/.agent/skills/cross-cutting/electron/data/crash.yaml +103 -0
  294. package/.agent/skills/cross-cutting/electron/data/ipc.yaml +85 -0
  295. package/.agent/skills/cross-cutting/electron/data/native.yaml +157 -0
  296. package/.agent/skills/cross-cutting/electron/data/security.yaml +89 -0
  297. package/.agent/skills/cross-cutting/electron/data/storage.yaml +100 -0
  298. package/.agent/skills/cross-cutting/electron/data/testing.yaml +103 -0
  299. package/.agent/skills/cross-cutting/electron/data/updates.yaml +99 -0
  300. package/.agent/skills/cross-cutting/electron/data/window.yaml +83 -0
  301. package/.agent/skills/cross-cutting/kubernetes/META.yaml +70 -0
  302. package/.agent/skills/cross-cutting/kubernetes/data/networking.yaml +270 -0
  303. package/.agent/skills/cross-cutting/kubernetes/data/scheduling.yaml +267 -0
  304. package/.agent/skills/cross-cutting/kubernetes/data/security.yaml +253 -0
  305. package/.agent/skills/cross-cutting/kubernetes/data/workloads.yaml +251 -0
  306. package/.agent/skills/cross-cutting/sql/META.yaml +88 -0
  307. package/.agent/skills/cross-cutting/sql/SKILL.md +296 -0
  308. package/.agent/skills/cross-cutting/sql/data/indexing.yaml +147 -0
  309. package/.agent/skills/cross-cutting/sql/data/json.yaml +156 -0
  310. package/.agent/skills/cross-cutting/sql/data/performance.yaml +204 -0
  311. package/.agent/skills/cross-cutting/sql/data/queries.yaml +150 -0
  312. package/.agent/skills/cross-cutting/tailwind/META.yaml +72 -0
  313. package/.agent/skills/cross-cutting/tailwind/SKILL.md +344 -0
  314. package/.agent/skills/cross-cutting/tailwind/data/build.yaml +143 -0
  315. package/.agent/skills/cross-cutting/tailwind/data/config.yaml +109 -0
  316. package/.agent/skills/cross-cutting/tailwind/data/migration.yaml +149 -0
  317. package/.agent/skills/cross-cutting/tailwind/data/responsive.yaml +148 -0
  318. package/.agent/skills/cross-cutting/tailwind/data/states.yaml +152 -0
  319. package/.agent/skills/cross-cutting/tailwind/data/theme.yaml +126 -0
  320. package/.agent/skills/cross-cutting/tailwind/data/utilities.yaml +182 -0
  321. package/.agent/skills/cross-cutting/tailwind/data/variants.yaml +154 -0
  322. package/.agent/skills/cross-cutting/testing/ADVANCED.md +245 -0
  323. package/.agent/skills/cross-cutting/testing/META.yaml +49 -0
  324. package/.agent/skills/cross-cutting/testing/SKILL.md +263 -0
  325. package/.agent/skills/cross-cutting/testing/data/frameworks.yaml +300 -0
  326. package/.agent/skills/cross-cutting/testing/data/patterns.yaml +168 -0
  327. package/.agent/skills/cross-cutting/ui-ux-pro-max/META.yaml +108 -0
  328. package/.agent/skills/cross-cutting/ui-ux-pro-max/SKILL.md +565 -0
  329. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/charts.yaml +331 -0
  330. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/colors.yaml +1226 -0
  331. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/component-decision.yaml +287 -0
  332. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/component-mapping.yaml +318 -0
  333. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/design-tokens.yaml +525 -0
  334. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/desktop-animation.yaml +232 -0
  335. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/desktop-architecture.yaml +140 -0
  336. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/desktop-colors.yaml +467 -0
  337. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/directory-structure.yaml +75 -0
  338. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/icons.yaml +918 -0
  339. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/implementation-strategy.yaml +107 -0
  340. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/landing.yaml +372 -0
  341. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/platform-frameworks.yaml +195 -0
  342. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/platform-guidelines.yaml +177 -0
  343. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/products.yaml +1339 -0
  344. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/prompts.yaml +180 -0
  345. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/react-performance.yaml +504 -0
  346. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/desktop.yaml +228 -0
  347. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/flutter.yaml +508 -0
  348. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/html-tailwind.yaml +543 -0
  349. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nextjs.yaml +515 -0
  350. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nuxt-ui.yaml +519 -0
  351. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nuxtjs.yaml +599 -0
  352. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/react-native.yaml +496 -0
  353. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/react.yaml +526 -0
  354. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/shadcn.yaml +616 -0
  355. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/svelte.yaml +520 -0
  356. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/swiftui.yaml +486 -0
  357. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/vue.yaml +485 -0
  358. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/styles.yaml +1473 -0
  359. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/typography.yaml +647 -0
  360. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/ui-reasoning.yaml +1019 -0
  361. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/ux-guidelines.yaml +1009 -0
  362. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/web-interface.yaml +347 -0
  363. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
  364. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
  365. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
  366. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/core.py +393 -0
  367. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/core_legacy.py +303 -0
  368. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/design_system.py +496 -0
  369. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/search.py +76 -0
  370. package/.agent/skills/cross-cutting/web-perf/META.yaml +92 -0
  371. package/.agent/skills/cross-cutting/web-perf/SKILL.md +181 -0
  372. package/.agent/skills/cross-cutting/web-perf/data/cls_optimization.yaml +189 -0
  373. package/.agent/skills/cross-cutting/web-perf/data/core_web_vitals.yaml +282 -0
  374. package/.agent/skills/cross-cutting/web-perf/data/inp_optimization.yaml +240 -0
  375. package/.agent/skills/cross-cutting/web-perf/data/lcp_optimization.yaml +202 -0
  376. package/.agent/skills/cross-cutting/web-perf/data/measurement.yaml +170 -0
  377. package/.agent/skills/devops/_index.yaml +9 -0
  378. package/.agent/skills/devops/aws/ADVANCED.md +547 -0
  379. package/.agent/skills/devops/aws/META.yaml +84 -0
  380. package/.agent/skills/devops/aws/SKILL.md +711 -0
  381. package/.agent/skills/devops/ci-cd/ADVANCED.md +529 -0
  382. package/.agent/skills/devops/ci-cd/META.yaml +21 -0
  383. package/.agent/skills/devops/ci-cd/SKILL.md +821 -0
  384. package/.agent/skills/devops/docker/ADVANCED.md +495 -0
  385. package/.agent/skills/devops/docker/META.yaml +20 -0
  386. package/.agent/skills/devops/docker/SKILL.md +653 -0
  387. package/.agent/skills/devops/kubernetes/ADVANCED.md +252 -0
  388. package/.agent/skills/devops/kubernetes/META.yaml +15 -0
  389. package/.agent/skills/devops/kubernetes/SKILL.md +621 -0
  390. package/.agent/skills/frameworks/_index.yaml +13 -0
  391. package/.agent/skills/frameworks/angular/META.yaml +70 -0
  392. package/.agent/skills/frameworks/angular/SKILL.md +319 -0
  393. package/.agent/skills/frameworks/angular/data/core.yaml +209 -0
  394. package/.agent/skills/frameworks/angular/data/performance.yaml +210 -0
  395. package/.agent/skills/frameworks/angular/data/server.yaml +175 -0
  396. package/.agent/skills/frameworks/flutter/ADVANCED.md +491 -0
  397. package/.agent/skills/frameworks/flutter/META.yaml +64 -0
  398. package/.agent/skills/frameworks/flutter/SKILL.md +541 -0
  399. package/.agent/skills/frameworks/flutter/data/core.yaml +210 -0
  400. package/.agent/skills/frameworks/flutter/data/platform.yaml +246 -0
  401. package/.agent/skills/frameworks/flutter/data/state.yaml +250 -0
  402. package/.agent/skills/frameworks/nextjs/ADVANCED.md +225 -0
  403. package/.agent/skills/frameworks/nextjs/META.yaml +67 -0
  404. package/.agent/skills/frameworks/nextjs/SKILL.md +593 -0
  405. package/.agent/skills/frameworks/nextjs/data/caching.yaml +210 -0
  406. package/.agent/skills/frameworks/nextjs/data/core.yaml +255 -0
  407. package/.agent/skills/frameworks/nextjs/data/server.yaml +248 -0
  408. package/.agent/skills/frameworks/nuxt/META.yaml +57 -0
  409. package/.agent/skills/frameworks/nuxt/SKILL.md +283 -0
  410. package/.agent/skills/frameworks/nuxt/data/core.yaml +309 -0
  411. package/.agent/skills/frameworks/nuxt/data/server.yaml +271 -0
  412. package/.agent/skills/frameworks/react/ADVANCED.md +676 -0
  413. package/.agent/skills/frameworks/react/META.yaml +60 -0
  414. package/.agent/skills/frameworks/react/SKILL.md +263 -0
  415. package/.agent/skills/frameworks/react/data/core.yaml +278 -0
  416. package/.agent/skills/frameworks/react/data/server.yaml +283 -0
  417. package/.agent/skills/frameworks/react-native/META.yaml +59 -0
  418. package/.agent/skills/frameworks/react-native/SKILL.md +301 -0
  419. package/.agent/skills/frameworks/react-native/data/core.yaml +260 -0
  420. package/.agent/skills/frameworks/react-native/data/platform.yaml +287 -0
  421. package/.agent/skills/frameworks/svelte/META.yaml +62 -0
  422. package/.agent/skills/frameworks/svelte/SKILL.md +398 -0
  423. package/.agent/skills/frameworks/svelte/data/runes.yaml +239 -0
  424. package/.agent/skills/frameworks/svelte/data/sveltekit.yaml +244 -0
  425. package/.agent/skills/frameworks/vue/ADVANCED.md +214 -0
  426. package/.agent/skills/frameworks/vue/META.yaml +58 -0
  427. package/.agent/skills/frameworks/vue/SKILL.md +356 -0
  428. package/.agent/skills/frameworks/vue/data/advanced.yaml +253 -0
  429. package/.agent/skills/frameworks/vue/data/core.yaml +270 -0
  430. package/.agent/skills/index.json +143 -0
  431. package/.agent/skills/languages/_index.yaml +33 -0
  432. package/.agent/skills/languages/asm/ADVANCED.md +750 -0
  433. package/.agent/skills/languages/asm/META.yaml +84 -0
  434. package/.agent/skills/languages/asm/SKILL.md +753 -0
  435. package/.agent/skills/languages/asm/data/advanced.yaml +295 -0
  436. package/.agent/skills/languages/asm/data/core.yaml +280 -0
  437. package/.agent/skills/languages/c/ADVANCED.md +625 -0
  438. package/.agent/skills/languages/c/META.yaml +58 -0
  439. package/.agent/skills/languages/c/SKILL.md +748 -0
  440. package/.agent/skills/languages/c/data/core.yaml +179 -0
  441. package/.agent/skills/languages/c/data/embedded.yaml +251 -0
  442. package/.agent/skills/languages/c/data/memory.yaml +253 -0
  443. package/.agent/skills/languages/clojure/META.yaml +13 -0
  444. package/.agent/skills/languages/clojure/SKILL.md +130 -0
  445. package/.agent/skills/languages/clojure/data/core.yaml +326 -0
  446. package/.agent/skills/languages/cpp/ADVANCED.md +457 -0
  447. package/.agent/skills/languages/cpp/META.yaml +61 -0
  448. package/.agent/skills/languages/cpp/SKILL.md +936 -0
  449. package/.agent/skills/languages/cpp/data/core.yaml +304 -0
  450. package/.agent/skills/languages/cpp/data/memory.yaml +247 -0
  451. package/.agent/skills/languages/cpp/data/modern.yaml +334 -0
  452. package/.agent/skills/languages/crystal/META.yaml +30 -0
  453. package/.agent/skills/languages/crystal/SKILL.md +117 -0
  454. package/.agent/skills/languages/crystal/data/async.yaml +264 -0
  455. package/.agent/skills/languages/crystal/data/core.yaml +279 -0
  456. package/.agent/skills/languages/csharp/ADVANCED.md +592 -0
  457. package/.agent/skills/languages/csharp/META.yaml +23 -0
  458. package/.agent/skills/languages/csharp/SKILL.md +620 -0
  459. package/.agent/skills/languages/csharp/data/aspnet.yaml +448 -0
  460. package/.agent/skills/languages/csharp/data/core.yaml +362 -0
  461. package/.agent/skills/languages/elixir/META.yaml +18 -0
  462. package/.agent/skills/languages/elixir/SKILL.md +368 -0
  463. package/.agent/skills/languages/elixir/data/core.yaml +392 -0
  464. package/.agent/skills/languages/fsharp/META.yaml +14 -0
  465. package/.agent/skills/languages/fsharp/SKILL.md +113 -0
  466. package/.agent/skills/languages/fsharp/data/core.yaml +396 -0
  467. package/.agent/skills/languages/go/ADVANCED.md +260 -0
  468. package/.agent/skills/languages/go/META.yaml +64 -0
  469. package/.agent/skills/languages/go/SKILL.md +489 -0
  470. package/.agent/skills/languages/go/data/concurrency.yaml +424 -0
  471. package/.agent/skills/languages/go/data/core.yaml +399 -0
  472. package/.agent/skills/languages/go/data/http.yaml +507 -0
  473. package/.agent/skills/languages/haskell/META.yaml +18 -0
  474. package/.agent/skills/languages/haskell/SKILL.md +305 -0
  475. package/.agent/skills/languages/haskell/data/core.yaml +347 -0
  476. package/.agent/skills/languages/java/ADVANCED.md +450 -0
  477. package/.agent/skills/languages/java/META.yaml +89 -0
  478. package/.agent/skills/languages/java/SKILL.md +495 -0
  479. package/.agent/skills/languages/java/data/core.yaml +307 -0
  480. package/.agent/skills/languages/java/data/spring.yaml +437 -0
  481. package/.agent/skills/languages/javascript/ADVANCED.md +530 -0
  482. package/.agent/skills/languages/javascript/META.yaml +105 -0
  483. package/.agent/skills/languages/javascript/SKILL.md +455 -0
  484. package/.agent/skills/languages/javascript/data/async.yaml +290 -0
  485. package/.agent/skills/languages/javascript/data/core.yaml +380 -0
  486. package/.agent/skills/languages/javascript/data/modern.yaml +269 -0
  487. package/.agent/skills/languages/julia/META.yaml +13 -0
  488. package/.agent/skills/languages/julia/SKILL.md +174 -0
  489. package/.agent/skills/languages/julia/data/core.yaml +356 -0
  490. package/.agent/skills/languages/kotlin/ADVANCED.md +539 -0
  491. package/.agent/skills/languages/kotlin/META.yaml +24 -0
  492. package/.agent/skills/languages/kotlin/SKILL.md +525 -0
  493. package/.agent/skills/languages/kotlin/data/android.yaml +495 -0
  494. package/.agent/skills/languages/kotlin/data/core.yaml +366 -0
  495. package/.agent/skills/languages/lua/ADVANCED.md +257 -0
  496. package/.agent/skills/languages/lua/META.yaml +58 -0
  497. package/.agent/skills/languages/lua/SKILL.md +492 -0
  498. package/.agent/skills/languages/lua/data/core.yaml +264 -0
  499. package/.agent/skills/languages/lua/data/embedding.yaml +300 -0
  500. package/.agent/skills/languages/nim/META.yaml +30 -0
  501. package/.agent/skills/languages/nim/SKILL.md +116 -0
  502. package/.agent/skills/languages/nim/data/async.yaml +257 -0
  503. package/.agent/skills/languages/nim/data/core.yaml +241 -0
  504. package/.agent/skills/languages/ocaml/META.yaml +13 -0
  505. package/.agent/skills/languages/ocaml/SKILL.md +123 -0
  506. package/.agent/skills/languages/ocaml/data/core.yaml +357 -0
  507. package/.agent/skills/languages/perl/META.yaml +13 -0
  508. package/.agent/skills/languages/perl/SKILL.md +115 -0
  509. package/.agent/skills/languages/perl/data/core.yaml +360 -0
  510. package/.agent/skills/languages/php/ADVANCED.md +199 -0
  511. package/.agent/skills/languages/php/META.yaml +18 -0
  512. package/.agent/skills/languages/php/SKILL.md +488 -0
  513. package/.agent/skills/languages/php/data/core.yaml +392 -0
  514. package/.agent/skills/languages/php/data/laravel.yaml +525 -0
  515. package/.agent/skills/languages/python/ADVANCED.md +207 -0
  516. package/.agent/skills/languages/python/META.yaml +91 -0
  517. package/.agent/skills/languages/python/SKILL.md +495 -0
  518. package/.agent/skills/languages/python/data/async.yaml +265 -0
  519. package/.agent/skills/languages/python/data/core.yaml +259 -0
  520. package/.agent/skills/languages/python/data/fastapi.yaml +296 -0
  521. package/.agent/skills/languages/python/data/testing.yaml +226 -0
  522. package/.agent/skills/languages/r/META.yaml +16 -0
  523. package/.agent/skills/languages/r/SKILL.md +348 -0
  524. package/.agent/skills/languages/r/data/core.yaml +355 -0
  525. package/.agent/skills/languages/ruby/ADVANCED.md +381 -0
  526. package/.agent/skills/languages/ruby/META.yaml +19 -0
  527. package/.agent/skills/languages/ruby/SKILL.md +417 -0
  528. package/.agent/skills/languages/ruby/data/core.yaml +448 -0
  529. package/.agent/skills/languages/ruby/data/rails.yaml +415 -0
  530. package/.agent/skills/languages/rust/ADVANCED.md +212 -0
  531. package/.agent/skills/languages/rust/META.yaml +87 -0
  532. package/.agent/skills/languages/rust/SKILL.md +377 -0
  533. package/.agent/skills/languages/rust/data/async.yaml +404 -0
  534. package/.agent/skills/languages/rust/data/axum.yaml +450 -0
  535. package/.agent/skills/languages/rust/data/core.yaml +356 -0
  536. package/.agent/skills/languages/scala/META.yaml +17 -0
  537. package/.agent/skills/languages/scala/SKILL.md +202 -0
  538. package/.agent/skills/languages/scala/data/core.yaml +349 -0
  539. package/.agent/skills/languages/solidity/META.yaml +13 -0
  540. package/.agent/skills/languages/solidity/SKILL.md +188 -0
  541. package/.agent/skills/languages/solidity/data/core.yaml +528 -0
  542. package/.agent/skills/languages/swift/ADVANCED.md +231 -0
  543. package/.agent/skills/languages/swift/META.yaml +18 -0
  544. package/.agent/skills/languages/swift/SKILL.md +342 -0
  545. package/.agent/skills/languages/swift/data/core.yaml +489 -0
  546. package/.agent/skills/languages/typescript/ADVANCED.md +186 -0
  547. package/.agent/skills/languages/typescript/META.yaml +92 -0
  548. package/.agent/skills/languages/typescript/SKILL.md +306 -0
  549. package/.agent/skills/languages/typescript/data/async.yaml +397 -0
  550. package/.agent/skills/languages/typescript/data/core.yaml +283 -0
  551. package/.agent/skills/languages/typescript/data/validation.yaml +338 -0
  552. package/.agent/skills/languages/zig/META.yaml +52 -0
  553. package/.agent/skills/languages/zig/SKILL.md +354 -0
  554. package/.agent/skills/languages/zig/data/async.yaml +314 -0
  555. package/.agent/skills/languages/zig/data/core.yaml +302 -0
  556. package/.agent/templates/README.md +42 -0
  557. package/.agent/templates/audit-report.md +153 -0
  558. package/.agent/templates/chains/debug/step1-reproduce.md +83 -0
  559. package/.agent/templates/chains/debug/step2-isolate.md +73 -0
  560. package/.agent/templates/chains/debug/step3-analyze.md +86 -0
  561. package/.agent/templates/chains/debug/step4-fix.md +85 -0
  562. package/.agent/templates/chains/debug/step5-verify.md +122 -0
  563. package/.agent/templates/chains/implement/step1-plan.md +88 -0
  564. package/.agent/templates/chains/implement/step2-code.md +87 -0
  565. package/.agent/templates/chains/implement/step3-test.md +87 -0
  566. package/.agent/templates/chains/implement/step4-doc.md +118 -0
  567. package/.agent/templates/chains/review/step1-understand.md +74 -0
  568. package/.agent/templates/chains/review/step2-analyze.md +110 -0
  569. package/.agent/templates/chains/review/step3-fix.md +93 -0
  570. package/.agent/templates/chains/review/step4-summary.md +104 -0
  571. package/.agent/templates/debug-report.md +50 -0
  572. package/.agent/templates/deploy-plan.md +54 -0
  573. package/.agent/templates/doc-template.md +57 -0
  574. package/.agent/templates/findings.md +122 -0
  575. package/.agent/templates/index.yaml +239 -0
  576. package/.agent/templates/migrate-plan.md +50 -0
  577. package/.agent/templates/phase-template.md +72 -0
  578. package/.agent/templates/project-plan.md +87 -0
  579. package/.agent/templates/prompts/context_block.md +114 -0
  580. package/.agent/templates/prompts/guardrails_block.md +116 -0
  581. package/.agent/templates/prompts/persona_base.md +155 -0
  582. package/.agent/templates/prompts/tools_block.md +137 -0
  583. package/.agent/templates/reflection/critic.md +110 -0
  584. package/.agent/templates/reflection/error_analysis.md +149 -0
  585. package/.agent/templates/reflection/success_analysis.md +174 -0
  586. package/.agent/templates/task-list.md +144 -0
  587. package/.agent/templates/tasks/audit.yaml +146 -0
  588. package/.agent/templates/tasks/bug_fix.yaml +121 -0
  589. package/.agent/templates/tasks/code_implementation.yaml +110 -0
  590. package/.agent/templates/tasks/refactor.yaml +157 -0
  591. package/.agent/templates/test-report.md +52 -0
  592. package/.agent/workflows/ap.md +135 -0
  593. package/.agent/workflows/code.md +130 -0
  594. package/.agent/workflows/debug.md +230 -0
  595. package/.agent/workflows/deploy.md +192 -0
  596. package/.agent/workflows/dev.md +137 -0
  597. package/.agent/workflows/doc.md +124 -0
  598. package/.agent/workflows/env.md +98 -0
  599. package/.agent/workflows/fix.md +76 -0
  600. package/.agent/workflows/generate.md +28 -0
  601. package/.agent/workflows/git.md +97 -0
  602. package/.agent/workflows/help.md +75 -0
  603. package/.agent/workflows/init.md +148 -0
  604. package/.agent/workflows/migrate.md +135 -0
  605. package/.agent/workflows/monitor.md +133 -0
  606. package/.agent/workflows/onboard.md +144 -0
  607. package/.agent/workflows/orchestrate.md +117 -0
  608. package/.agent/workflows/perf.md +106 -0
  609. package/.agent/workflows/plan.md +106 -0
  610. package/.agent/workflows/recap.md +101 -0
  611. package/.agent/workflows/refactor.md +161 -0
  612. package/.agent/workflows/revert.md +99 -0
  613. package/.agent/workflows/review.md +106 -0
  614. package/.agent/workflows/scaffold.md +119 -0
  615. package/.agent/workflows/security.md +186 -0
  616. package/.agent/workflows/status.md +103 -0
  617. package/.agent/workflows/test.md +157 -0
  618. package/.agent/workflows/think.md +126 -0
  619. package/.agent/workflows/upgrade.md +109 -0
  620. package/.agent/workflows/visualize.md +295 -0
  621. package/.agent/workflows/workflow.md +196 -0
  622. package/README.md +64 -0
  623. package/dist/commands/add.d.ts +2 -0
  624. package/dist/commands/add.d.ts.map +1 -0
  625. package/dist/commands/add.js +70 -0
  626. package/dist/commands/add.js.map +1 -0
  627. package/dist/commands/config.d.ts +4 -0
  628. package/dist/commands/config.d.ts.map +1 -0
  629. package/dist/commands/config.js +152 -0
  630. package/dist/commands/config.js.map +1 -0
  631. package/dist/commands/doctor.d.ts +4 -0
  632. package/dist/commands/doctor.d.ts.map +1 -0
  633. package/dist/commands/doctor.js +98 -0
  634. package/dist/commands/doctor.js.map +1 -0
  635. package/dist/commands/hsa.d.ts +4 -0
  636. package/dist/commands/hsa.d.ts.map +1 -0
  637. package/dist/commands/hsa.js +194 -0
  638. package/dist/commands/hsa.js.map +1 -0
  639. package/dist/commands/info.d.ts +2 -0
  640. package/dist/commands/info.d.ts.map +1 -0
  641. package/dist/commands/info.js +149 -0
  642. package/dist/commands/info.js.map +1 -0
  643. package/dist/commands/init.d.ts +4 -0
  644. package/dist/commands/init.d.ts.map +1 -0
  645. package/dist/commands/init.js +262 -0
  646. package/dist/commands/init.js.map +1 -0
  647. package/dist/commands/install-core.d.ts +4 -0
  648. package/dist/commands/install-core.d.ts.map +1 -0
  649. package/dist/commands/install-core.js +85 -0
  650. package/dist/commands/install-core.js.map +1 -0
  651. package/dist/commands/install-helpers.d.ts +27 -0
  652. package/dist/commands/install-helpers.d.ts.map +1 -0
  653. package/dist/commands/install-helpers.js +125 -0
  654. package/dist/commands/install-helpers.js.map +1 -0
  655. package/dist/commands/install-hsa.d.ts +18 -0
  656. package/dist/commands/install-hsa.d.ts.map +1 -0
  657. package/dist/commands/install-hsa.js +61 -0
  658. package/dist/commands/install-hsa.js.map +1 -0
  659. package/dist/commands/install.d.ts +4 -0
  660. package/dist/commands/install.d.ts.map +1 -0
  661. package/dist/commands/install.js +310 -0
  662. package/dist/commands/install.js.map +1 -0
  663. package/dist/commands/list.d.ts +4 -0
  664. package/dist/commands/list.d.ts.map +1 -0
  665. package/dist/commands/list.js +91 -0
  666. package/dist/commands/list.js.map +1 -0
  667. package/dist/commands/mcp-registry.d.ts +48 -0
  668. package/dist/commands/mcp-registry.d.ts.map +1 -0
  669. package/dist/commands/mcp-registry.js +246 -0
  670. package/dist/commands/mcp-registry.js.map +1 -0
  671. package/dist/commands/mcp-writers.d.ts +20 -0
  672. package/dist/commands/mcp-writers.d.ts.map +1 -0
  673. package/dist/commands/mcp-writers.js +144 -0
  674. package/dist/commands/mcp-writers.js.map +1 -0
  675. package/dist/commands/mcp.d.ts +10 -0
  676. package/dist/commands/mcp.d.ts.map +1 -0
  677. package/dist/commands/mcp.js +319 -0
  678. package/dist/commands/mcp.js.map +1 -0
  679. package/dist/commands/update.d.ts +4 -0
  680. package/dist/commands/update.d.ts.map +1 -0
  681. package/dist/commands/update.js +79 -0
  682. package/dist/commands/update.js.map +1 -0
  683. package/dist/constants/cursor-globs.d.ts +17 -0
  684. package/dist/constants/cursor-globs.d.ts.map +1 -0
  685. package/dist/constants/cursor-globs.js +62 -0
  686. package/dist/constants/cursor-globs.js.map +1 -0
  687. package/dist/constants/ide-install-specs.d.ts +36 -0
  688. package/dist/constants/ide-install-specs.d.ts.map +1 -0
  689. package/dist/constants/ide-install-specs.js +870 -0
  690. package/dist/constants/ide-install-specs.js.map +1 -0
  691. package/dist/constants/ides.d.ts +105 -0
  692. package/dist/constants/ides.d.ts.map +1 -0
  693. package/dist/constants/ides.js +412 -0
  694. package/dist/constants/ides.js.map +1 -0
  695. package/dist/constants/skills.d.ts +40 -0
  696. package/dist/constants/skills.d.ts.map +1 -0
  697. package/dist/constants/skills.js +78 -0
  698. package/dist/constants/skills.js.map +1 -0
  699. package/dist/constants.d.ts +39 -0
  700. package/dist/constants.d.ts.map +1 -0
  701. package/dist/constants.js +75 -0
  702. package/dist/constants.js.map +1 -0
  703. package/dist/index.d.ts +8 -0
  704. package/dist/index.d.ts.map +1 -0
  705. package/dist/index.js +122 -0
  706. package/dist/index.js.map +1 -0
  707. package/dist/types/flags.d.ts +47 -0
  708. package/dist/types/flags.d.ts.map +1 -0
  709. package/dist/types/flags.js +4 -0
  710. package/dist/types/flags.js.map +1 -0
  711. package/dist/types/ide-install.d.ts +175 -0
  712. package/dist/types/ide-install.d.ts.map +1 -0
  713. package/dist/types/ide-install.js +29 -0
  714. package/dist/types/ide-install.js.map +1 -0
  715. package/dist/utils/copy-helpers.d.ts +60 -0
  716. package/dist/utils/copy-helpers.d.ts.map +1 -0
  717. package/dist/utils/copy-helpers.js +617 -0
  718. package/dist/utils/copy-helpers.js.map +1 -0
  719. package/dist/utils/index.d.ts +3 -0
  720. package/dist/utils/index.d.ts.map +1 -0
  721. package/dist/utils/index.js +5 -0
  722. package/dist/utils/index.js.map +1 -0
  723. package/dist/utils/validation.d.ts +29 -0
  724. package/dist/utils/validation.d.ts.map +1 -0
  725. package/dist/utils/validation.js +211 -0
  726. package/dist/utils/validation.js.map +1 -0
  727. package/package.json +64 -0
@@ -0,0 +1,816 @@
1
+ ---
2
+ name: database
3
+ detect:
4
+ ["*.sql", "schema.prisma", "drizzle/", "migrations/", "*.db", "*.sqlite"]
5
+ version: "6.2.0"
6
+ category: infrastructure
7
+ tier: 1
8
+ ---
9
+
10
+ # Database Patterns — DOMYH Awesome Code
11
+
12
+ > SQL + NoSQL Patterns — PostgreSQL 18, MySQL 9.4, MongoDB 8, Redis 8 — 2025-2026
13
+
14
+ ---
15
+
16
+ ## 📦 What's New in Databases (2025-2026)
17
+
18
+ | Database | Version | Release | Key Features |
19
+ | -------------- | ------- | -------- | ----------------------------------- |
20
+ | **PostgreSQL** | 18 | Sep 2025 | UUIDv7, Virtual Columns, AIO |
21
+ | **MySQL** | 9.4 | Jul 2025 | Vector type, JSON Duality, HeatWave |
22
+ | **MongoDB** | 8 | 2025 | QE Range Queries, Express Path |
23
+ | **Redis** | 8 | 2025 | Vector Set, JSON, 87% faster |
24
+
25
+ ### PostgreSQL 18 Highlights
26
+
27
+ ```sql
28
+ -- UUIDv7: Time-ordered UUIDs (better index performance)
29
+ id UUID DEFAULT uuidv7()
30
+
31
+ -- Virtual Generated Columns (compute on demand)
32
+ full_name TEXT GENERATED ALWAYS AS (first || ' ' || last) VIRTUAL
33
+
34
+ -- RETURNING OLD/NEW
35
+ UPDATE users SET name = 'New' RETURNING OLD.name, NEW.name
36
+
37
+ -- UNIQUE NULLS DISTINCT
38
+ CREATE UNIQUE INDEX idx ON t(col) NULLS DISTINCT
39
+ ```
40
+
41
+ ### MySQL 9.4 Highlights
42
+
43
+ ```sql
44
+ -- Vector Data Type (for ML/AI)
45
+ CREATE TABLE items (
46
+ id INT PRIMARY KEY,
47
+ embedding VECTOR(1536)
48
+ );
49
+
50
+ -- JSON Duality Views (expose relational as JSON)
51
+ CREATE JSON DUALITY VIEW users_json AS SELECT * FROM users;
52
+
53
+ -- Parallel Query (multi-core)
54
+ SET SESSION parallel_degree = 4;
55
+ ```
56
+
57
+ ### MongoDB 8 Highlights
58
+
59
+ ```javascript
60
+ // Queryable Encryption with Range Queries (NEW in 8)
61
+ db.patients.find({ age: { $gte: 21, $lte: 65 } }); // encrypted!
62
+
63
+ // Express Path (faster simple queries)
64
+ // Automatic for _id and simple equality
65
+
66
+ // 8.2 Preview: Prefix/Suffix search on encrypted
67
+ ```
68
+
69
+ ### Redis 8 Highlights
70
+
71
+ ```bash
72
+ # Vector Set (AI semantic search, beta)
73
+ VADD myvecs id1 [...vector...]
74
+ VSEARCH myvecs TOPK 10 [...query...]
75
+
76
+ # New Hash Commands
77
+ HGETDEL myhash field1 # Get and delete
78
+ HSETEX myhash EX 3600 field1 value1 # Set with TTL
79
+
80
+ # Performance: 87% faster latency, 2x throughput
81
+ ```
82
+
83
+ ## 🔍 Database Detection
84
+
85
+ ```yaml
86
+ sql_indicators:
87
+ - "*.sql files"
88
+ - "schema.prisma, drizzle/"
89
+ - "SELECT, INSERT, UPDATE, DELETE"
90
+ - "CREATE TABLE, ALTER TABLE"
91
+ - "JOIN, GROUP BY, ORDER BY"
92
+ - "PostgreSQL: $1, $2 parameters"
93
+ - "MySQL: ?, ? parameters"
94
+
95
+ nosql_indicators:
96
+ - "mongod, mongoose, mongodb"
97
+ - "redis-cli, ioredis"
98
+ - "db.collection.find()"
99
+ - "HSET, HGET, LPUSH"
100
+ ```
101
+
102
+ ---
103
+
104
+ ## 📊 Database Selection Guide (2025-2026)
105
+
106
+ ### When to Use What
107
+
108
+ | Requirement | Database | Reason |
109
+ | ----------------------------- | ------------------------ | ------------------------------- |
110
+ | **ACID transactions** | PostgreSQL, MySQL | Strong consistency |
111
+ | **Complex queries/joins** | PostgreSQL | Advanced SQL, JSON support |
112
+ | **Read-heavy, simple schema** | MySQL | Fast reads, simple setup |
113
+ | **Flexible schema** | MongoDB | Document model, rapid iteration |
114
+ | **Caching** | Redis | Sub-ms latency, in-memory |
115
+ | **Session storage** | Redis | Fast, TTL support |
116
+ | **Time-series** | PostgreSQL + TimescaleDB | Optimized for time data |
117
+ | **Full-text search** | PostgreSQL | Built-in, or Elasticsearch |
118
+ | **Distributed** | TiDB, CockroachDB | Horizontal scaling, global |
119
+ | **Serverless DB** | PlanetScale, Neon | Branching, autoscaling |
120
+ | **Graph queries** | Neo4j, SurrealDB | Connected data |
121
+
122
+ ### Polyglot Persistence (Recommended Pattern)
123
+
124
+ ```
125
+ ┌─────────────────────────────────────────────────────┐
126
+ │ Application │
127
+ ├───────────┬───────────┬───────────┬─────────────────┤
128
+ │ PostgreSQL│ MongoDB │ Redis │ Elasticsearch │
129
+ │ (Primary) │ (Flexible)│ (Cache) │ (Search) │
130
+ │ Users │ Logs │ Sessions │ Products │
131
+ │ Orders │ Events │ Rate Limit│ Full-text │
132
+ │ Payments │ Analytics │ Leaderboard│ │
133
+ └───────────┴───────────┴───────────┴─────────────────┘
134
+ ```
135
+
136
+ ---
137
+
138
+ ## 🐘 PostgreSQL 17/18 (2024-2025)
139
+
140
+ ### Version Comparison
141
+
142
+ | Feature | PG 17 (2024) | PG 18 (2025) |
143
+ | ------------------------- | ------------ | ------------ |
144
+ | JSON_TABLE() | ✅ | ✅ |
145
+ | Incremental Backup | ✅ | ✅ |
146
+ | MERGE + RETURNING | ✅ | ✅ |
147
+ | Asynchronous I/O (AIO) | ❌ | ✅ NEW |
148
+ | Skip Scan (B-tree) | ❌ | ✅ NEW |
149
+ | RETURNING OLD/NEW | ❌ | ✅ NEW |
150
+ | UUIDv7 | ❌ | ✅ NEW |
151
+ | Virtual Generated Columns | ❌ | ✅ NEW |
152
+ | NOT NULL (NOT VALID) | ❌ | ✅ NEW |
153
+
154
+ ### PostgreSQL Core Patterns
155
+
156
+ ```sql
157
+ -- ✅ Parameterized queries (prevent SQL injection)
158
+ SELECT id, name, email FROM users WHERE id = $1;
159
+
160
+ -- ✅ Indexes (critical for performance)
161
+ CREATE INDEX idx_users_email ON users(email);
162
+ CREATE INDEX idx_orders_user_created
163
+ ON orders(user_id, created_at DESC);
164
+
165
+ -- ✅ Partial index (index subset of rows)
166
+ CREATE INDEX idx_active_users ON users(email)
167
+ WHERE active = true;
168
+
169
+ -- ✅ Covering index (include columns to avoid table lookup)
170
+ CREATE INDEX idx_orders_covering
171
+ ON orders(user_id) INCLUDE (status, total);
172
+
173
+ -- ✅ BRIN index (for large time-series tables)
174
+ CREATE INDEX idx_events_created
175
+ ON events USING BRIN(created_at);
176
+ ```
177
+
178
+ ### PostgreSQL 18 New Features
179
+
180
+ ```sql
181
+ -- ✅ PG 18: RETURNING OLD and NEW values
182
+ UPDATE products SET price = price * 1.1
183
+ RETURNING OLD.price AS old_price, NEW.price AS new_price;
184
+
185
+ DELETE FROM users WHERE inactive = true
186
+ RETURNING OLD.*;
187
+
188
+ -- ✅ PG 18: UUIDv7 (time-ordered, better for indexes)
189
+ SELECT uuidv7(); -- e.g., 019445a0-c000-7000-8000-000000000001
190
+
191
+ -- ✅ PG 18: NOT NULL constraint without full scan
192
+ ALTER TABLE large_table
193
+ ADD CONSTRAINT col_not_null
194
+ CHECK (col IS NOT NULL) NOT VALID;
195
+ -- Validate later without ACCESS EXCLUSIVE lock
196
+ ALTER TABLE large_table
197
+ VALIDATE CONSTRAINT col_not_null;
198
+ ```
199
+
200
+ ### PostgreSQL JSON Operations
201
+
202
+ ```sql
203
+ -- ✅ JSONB storage and querying
204
+ CREATE TABLE events (
205
+ id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
206
+ data JSONB NOT NULL,
207
+ created_at TIMESTAMPTZ DEFAULT NOW()
208
+ );
209
+
210
+ -- GIN index for JSONB
211
+ CREATE INDEX idx_events_data ON events USING GIN(data);
212
+
213
+ -- Query JSONB
214
+ SELECT * FROM events
215
+ WHERE data @> '{"type": "purchase"}';
216
+
217
+ SELECT data->>'user_id' AS user_id,
218
+ (data->>'amount')::NUMERIC AS amount
219
+ FROM events
220
+ WHERE data->>'type' = 'purchase';
221
+
222
+ -- ✅ PG 17: JSON_TABLE (convert JSON to rows)
223
+ SELECT jt.*
224
+ FROM events,
225
+ JSON_TABLE(
226
+ data,
227
+ '$.items[*]'
228
+ COLUMNS (
229
+ product_id INT PATH '$.product_id',
230
+ quantity INT PATH '$.qty',
231
+ price NUMERIC PATH '$.price'
232
+ )
233
+ ) AS jt;
234
+ ```
235
+
236
+ ### PostgreSQL Transactions & Locking
237
+
238
+ ```sql
239
+ -- ✅ Transaction with proper isolation
240
+ BEGIN;
241
+ SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
242
+
243
+ SELECT balance FROM accounts WHERE id = 1 FOR UPDATE;
244
+ UPDATE accounts SET balance = balance - 100 WHERE id = 1;
245
+ UPDATE accounts SET balance = balance + 100 WHERE id = 2;
246
+
247
+ COMMIT;
248
+
249
+ -- ✅ Advisory locks (application-level)
250
+ SELECT pg_advisory_lock(12345); -- Acquire
251
+ -- Do work...
252
+ SELECT pg_advisory_unlock(12345); -- Release
253
+ ```
254
+
255
+ ### PostgreSQL Configuration (Performance)
256
+
257
+ ```sql
258
+ -- Key parameters for performance tuning
259
+ -- postgresql.conf
260
+
261
+ -- Memory (adjust based on RAM)
262
+ shared_buffers = '4GB' -- 25% of RAM
263
+ effective_cache_size = '12GB' -- 75% of RAM
264
+ work_mem = '256MB' -- Per operation
265
+ maintenance_work_mem = '1GB' -- For VACUUM, CREATE INDEX
266
+
267
+ -- WAL
268
+ wal_buffers = '64MB'
269
+ checkpoint_timeout = '15min'
270
+ max_wal_size = '4GB'
271
+
272
+ -- Connections
273
+ max_connections = 200
274
+ -- Use PgBouncer for connection pooling!
275
+
276
+ -- Queries
277
+ statement_timeout = '30s' -- Prevent long queries
278
+ lock_timeout = '10s' -- Prevent lock waiting
279
+ ```
280
+
281
+ ---
282
+
283
+ ## 🐬 MySQL 8.x
284
+
285
+ ### MySQL Core Patterns
286
+
287
+ ```sql
288
+ -- ✅ Parameterized queries (use ? placeholder)
289
+ SELECT id, name FROM users WHERE id = ?;
290
+
291
+ -- ✅ Indexes
292
+ CREATE INDEX idx_users_email ON users(email);
293
+
294
+ -- ✅ Full-text search
295
+ CREATE FULLTEXT INDEX idx_products_search
296
+ ON products(name, description);
297
+
298
+ SELECT * FROM products
299
+ WHERE MATCH(name, description) AGAINST('laptop' IN NATURAL LANGUAGE MODE);
300
+
301
+ -- ✅ Window functions
302
+ SELECT id, name, price,
303
+ ROW_NUMBER() OVER (ORDER BY price DESC) AS rank,
304
+ AVG(price) OVER () AS avg_price
305
+ FROM products;
306
+ ```
307
+
308
+ ### MySQL vs PostgreSQL
309
+
310
+ | Feature | PostgreSQL | MySQL |
311
+ | ---------------- | ----------------------- | ----------------- |
312
+ | JSON Support | JSONB (binary, indexed) | JSON (text-based) |
313
+ | Full-text Search | Built-in tsquery | FULLTEXT index |
314
+ | CTEs | Optimized | Less optimized |
315
+ | Arrays | Native | JSON workaround |
316
+ | Enums | Native | Limited |
317
+ | Partitioning | Declarative | Hash, Range, List |
318
+ | Replication | Logical + Physical | Group Replication |
319
+
320
+ ---
321
+
322
+ ## 📦 ORMs Comparison (2025)
323
+
324
+ ### Node.js/TypeScript
325
+
326
+ | ORM | Type Safety | Performance | Bundle Size | Best For |
327
+ | ------------- | ----------- | ----------- | ----------- | --------------------- |
328
+ | **Prisma 7** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 90% smaller | Type-safe, Next.js |
329
+ | **Drizzle** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ~7.4kb | Serverless, SQL-first |
330
+ | **TypeORM** | ⭐⭐⭐⭐ | ⭐⭐⭐ | Medium | NestJS, Enterprise |
331
+ | **Sequelize** | ⭐⭐⭐ | ⭐⭐⭐ | Medium | Legacy, Beginner |
332
+ | **Kysely** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Tiny | Type-safe SQL builder |
333
+
334
+ ### Python
335
+
336
+ | ORM | Use Case |
337
+ | ------------------ | -------------------------------- |
338
+ | **SQLAlchemy 2.0** | Industry standard, async support |
339
+ | **Tortoise ORM** | Async-first, Django-like |
340
+ | **SQLModel** | Pydantic + SQLAlchemy |
341
+
342
+ ### Go
343
+
344
+ | Library | Use Case |
345
+ | -------- | --------------------------- |
346
+ | **GORM** | Full-featured ORM |
347
+ | **sqlc** | Code generation from SQL |
348
+ | **sqlx** | Extensions for database/sql |
349
+ | **pgx** | PostgreSQL driver |
350
+
351
+ ---
352
+
353
+ ## 🔷 Prisma Patterns
354
+
355
+ ### Schema Definition
356
+
357
+ ```prisma
358
+ // schema.prisma
359
+ generator client {
360
+ provider = "prisma-client-js"
361
+ }
362
+
363
+ datasource db {
364
+ provider = "postgresql"
365
+ url = env("DATABASE_URL")
366
+ }
367
+
368
+ model User {
369
+ id String @id @default(cuid())
370
+ email String @unique
371
+ name String?
372
+ role Role @default(USER)
373
+ posts Post[]
374
+ profile Profile?
375
+ createdAt DateTime @default(now())
376
+ updatedAt DateTime @updatedAt
377
+
378
+ @@index([email])
379
+ @@index([createdAt])
380
+ }
381
+
382
+ model Post {
383
+ id String @id @default(cuid())
384
+ title String
385
+ content String?
386
+ published Boolean @default(false)
387
+ author User @relation(fields: [authorId], references: [id])
388
+ authorId String
389
+ tags Tag[]
390
+ createdAt DateTime @default(now())
391
+
392
+ @@index([authorId])
393
+ @@index([published, createdAt])
394
+ }
395
+
396
+ enum Role {
397
+ USER
398
+ ADMIN
399
+ MODERATOR
400
+ }
401
+ ```
402
+
403
+ ### Prisma Queries
404
+
405
+ ```typescript
406
+ import { PrismaClient } from "@prisma/client";
407
+
408
+ const prisma = new PrismaClient();
409
+
410
+ // ✅ Find with relations
411
+ const users = await prisma.user.findMany({
412
+ where: { role: "ADMIN" },
413
+ include: { posts: { where: { published: true } } },
414
+ orderBy: { createdAt: "desc" },
415
+ take: 10,
416
+ });
417
+
418
+ // ✅ Create with nested relations
419
+ const user = await prisma.user.create({
420
+ data: {
421
+ email: "alice@example.com",
422
+ name: "Alice",
423
+ posts: {
424
+ create: [{ title: "Hello World", content: "First post!" }],
425
+ },
426
+ },
427
+ include: { posts: true },
428
+ });
429
+
430
+ // ✅ Transaction (atomic operations)
431
+ const [updatedUser, newPost] = await prisma.$transaction([
432
+ prisma.user.update({
433
+ where: { id: userId },
434
+ data: { postCount: { increment: 1 } },
435
+ }),
436
+ prisma.post.create({
437
+ data: { title: "New Post", authorId: userId },
438
+ }),
439
+ ]);
440
+
441
+ // ✅ Interactive transaction
442
+ await prisma.$transaction(async (tx) => {
443
+ const balance = await tx.account.findUnique({
444
+ where: { id: fromAccountId },
445
+ });
446
+
447
+ if (balance.amount < transferAmount) {
448
+ throw new Error("Insufficient funds");
449
+ }
450
+
451
+ await tx.account.update({
452
+ where: { id: fromAccountId },
453
+ data: { amount: { decrement: transferAmount } },
454
+ });
455
+
456
+ await tx.account.update({
457
+ where: { id: toAccountId },
458
+ data: { amount: { increment: transferAmount } },
459
+ });
460
+ });
461
+ ```
462
+
463
+ ---
464
+
465
+ ## 🔶 Drizzle Patterns
466
+
467
+ ### Schema Definition
468
+
469
+ ```typescript
470
+ // schema.ts
471
+ import { pgTable, text, timestamp, boolean, index } from "drizzle-orm/pg-core";
472
+ import { relations } from "drizzle-orm";
473
+
474
+ export const users = pgTable(
475
+ "users",
476
+ {
477
+ id: text("id")
478
+ .primaryKey()
479
+ .$defaultFn(() => crypto.randomUUID()),
480
+ email: text("email").notNull().unique(),
481
+ name: text("name"),
482
+ createdAt: timestamp("created_at").defaultNow().notNull(),
483
+ },
484
+ (table) => ({
485
+ emailIdx: index("users_email_idx").on(table.email),
486
+ }),
487
+ );
488
+
489
+ export const posts = pgTable(
490
+ "posts",
491
+ {
492
+ id: text("id")
493
+ .primaryKey()
494
+ .$defaultFn(() => crypto.randomUUID()),
495
+ title: text("title").notNull(),
496
+ content: text("content"),
497
+ published: boolean("published").default(false),
498
+ authorId: text("author_id")
499
+ .notNull()
500
+ .references(() => users.id),
501
+ createdAt: timestamp("created_at").defaultNow().notNull(),
502
+ },
503
+ (table) => ({
504
+ authorIdx: index("posts_author_idx").on(table.authorId),
505
+ }),
506
+ );
507
+
508
+ export const usersRelations = relations(users, ({ many }) => ({
509
+ posts: many(posts),
510
+ }));
511
+
512
+ export const postsRelations = relations(posts, ({ one }) => ({
513
+ author: one(users, {
514
+ fields: [posts.authorId],
515
+ references: [users.id],
516
+ }),
517
+ }));
518
+ ```
519
+
520
+ ### Drizzle Queries
521
+
522
+ ```typescript
523
+ import { drizzle } from "drizzle-orm/node-postgres";
524
+ import { eq, and, desc } from "drizzle-orm";
525
+ import * as schema from "./schema";
526
+
527
+ const db = drizzle(pool, { schema });
528
+
529
+ // ✅ SQL-like query API
530
+ const activeUsers = await db
531
+ .select()
532
+ .from(schema.users)
533
+ .where(eq(schema.users.active, true))
534
+ .orderBy(desc(schema.users.createdAt))
535
+ .limit(10);
536
+
537
+ // ✅ Relational query API
538
+ const usersWithPosts = await db.query.users.findMany({
539
+ with: {
540
+ posts: {
541
+ where: eq(schema.posts.published, true),
542
+ },
543
+ },
544
+ });
545
+
546
+ // ✅ Transaction
547
+ await db.transaction(async (tx) => {
548
+ await tx
549
+ .update(schema.accounts)
550
+ .set({ balance: sql`balance - 100` })
551
+ .where(eq(schema.accounts.id, 1));
552
+
553
+ await tx
554
+ .update(schema.accounts)
555
+ .set({ balance: sql`balance + 100` })
556
+ .where(eq(schema.accounts.id, 2));
557
+ });
558
+ ```
559
+
560
+ ---
561
+
562
+ ## 🍃 MongoDB Patterns
563
+
564
+ ### When to Use MongoDB
565
+
566
+ | ✅ Good For | ❌ Not Good For |
567
+ | ------------------------ | ----------------------------- |
568
+ | Flexible/evolving schema | Complex joins |
569
+ | JSON-like documents | ACID transactions (multi-doc) |
570
+ | Rapid prototyping | Strong consistency |
571
+ | Content management | Financial data |
572
+ | IoT data ingestion | Complex queries |
573
+ | Real-time analytics | Relational data |
574
+
575
+ ### MongoDB Node.js Patterns
576
+
577
+ ```typescript
578
+ import { MongoClient, ObjectId } from "mongodb";
579
+
580
+ const client = new MongoClient(process.env.MONGODB_URI);
581
+ const db = client.db("myapp");
582
+
583
+ // ✅ Insert
584
+ await db.collection("users").insertOne({
585
+ email: "alice@example.com",
586
+ name: "Alice",
587
+ metadata: { lastLogin: new Date(), preferences: { theme: "dark" } },
588
+ createdAt: new Date(),
589
+ });
590
+
591
+ // ✅ Find with projection
592
+ const user = await db.collection("users").findOne(
593
+ { email: "alice@example.com" },
594
+ { projection: { password: 0 } }, // Exclude password
595
+ );
596
+
597
+ // ✅ Aggregation pipeline
598
+ const results = await db
599
+ .collection("orders")
600
+ .aggregate([
601
+ { $match: { status: "completed" } },
602
+ {
603
+ $group: {
604
+ _id: "$userId",
605
+ totalAmount: { $sum: "$amount" },
606
+ orderCount: { $sum: 1 },
607
+ },
608
+ },
609
+ { $sort: { totalAmount: -1 } },
610
+ { $limit: 10 },
611
+ ])
612
+ .toArray();
613
+
614
+ // ✅ Indexes
615
+ await db.collection("users").createIndex({ email: 1 }, { unique: true });
616
+ await db
617
+ .collection("events")
618
+ .createIndex({ createdAt: 1 }, { expireAfterSeconds: 86400 });
619
+ ```
620
+
621
+ ---
622
+
623
+ ## 🔴 Redis Patterns
624
+
625
+ ### Redis Use Cases
626
+
627
+ | Pattern | Use Case | TTL |
628
+ | --------------- | -------------------- | ---------- |
629
+ | **Cache** | Database query cache | 5-60 min |
630
+ | **Session** | User sessions | 24h |
631
+ | **Rate Limit** | API throttling | 1 min |
632
+ | **Leaderboard** | Sorted sets | Persistent |
633
+ | **Pub/Sub** | Real-time events | N/A |
634
+ | **Queue** | Job queue (List) | N/A |
635
+ | **Lock** | Distributed lock | 30s |
636
+
637
+ ### Redis Node.js Patterns
638
+
639
+ ```typescript
640
+ import Redis from "ioredis";
641
+
642
+ const redis = new Redis(process.env.REDIS_URL);
643
+
644
+ // ✅ Cache pattern
645
+ async function getCachedUser(userId: string) {
646
+ const cacheKey = `user:${userId}`;
647
+
648
+ // Try cache first
649
+ const cached = await redis.get(cacheKey);
650
+ if (cached) return JSON.parse(cached);
651
+
652
+ // Cache miss - fetch from DB
653
+ const user = await db.users.findUnique({ where: { id: userId } });
654
+
655
+ // Store in cache with TTL
656
+ await redis.setex(cacheKey, 3600, JSON.stringify(user));
657
+
658
+ return user;
659
+ }
660
+
661
+ // ✅ Rate limiting (sliding window)
662
+ async function checkRateLimit(ip: string, limit = 100, windowSec = 60) {
663
+ const key = `ratelimit:${ip}`;
664
+ const current = await redis.incr(key);
665
+
666
+ if (current === 1) {
667
+ await redis.expire(key, windowSec);
668
+ }
669
+
670
+ return current <= limit;
671
+ }
672
+
673
+ // ✅ Session storage
674
+ await redis.hset(`session:${sessionId}`, {
675
+ userId: user.id,
676
+ email: user.email,
677
+ loginAt: Date.now(),
678
+ });
679
+ await redis.expire(`session:${sessionId}`, 86400); // 24h
680
+
681
+ // ✅ Leaderboard
682
+ await redis.zadd("leaderboard", score, `user:${userId}`);
683
+ const top10 = await redis.zrevrange("leaderboard", 0, 9, "WITHSCORES");
684
+
685
+ // ✅ Pub/Sub
686
+ const subscriber = redis.duplicate();
687
+ await subscriber.subscribe("notifications");
688
+ subscriber.on("message", (channel, message) => {
689
+ console.log(`Received: ${message}`);
690
+ });
691
+
692
+ await redis.publish("notifications", JSON.stringify({ type: "new_order" }));
693
+
694
+ // ✅ Distributed lock
695
+ async function withLock<T>(key: string, fn: () => Promise<T>, ttlMs = 30000) {
696
+ const lockKey = `lock:${key}`;
697
+ const lockValue = crypto.randomUUID();
698
+
699
+ const acquired = await redis.set(lockKey, lockValue, "PX", ttlMs, "NX");
700
+ if (!acquired) throw new Error("Failed to acquire lock");
701
+
702
+ try {
703
+ return await fn();
704
+ } finally {
705
+ // Release only if we own the lock
706
+ const script = `
707
+ if redis.call("get", KEYS[1]) == ARGV[1] then
708
+ return redis.call("del", KEYS[1])
709
+ else
710
+ return 0
711
+ end
712
+ `;
713
+ await redis.eval(script, 1, lockKey, lockValue);
714
+ }
715
+ }
716
+ ```
717
+
718
+ ---
719
+
720
+ ## 🛠️ Database Tools
721
+
722
+ ### Migration Tools
723
+
724
+ | Tool | Language | Database |
725
+ | ------------------ | -------- | ---------- |
726
+ | **Prisma Migrate** | TS/JS | Multi |
727
+ | **Drizzle Kit** | TS/JS | Multi |
728
+ | **golang-migrate** | Go | Multi |
729
+ | **Alembic** | Python | SQLAlchemy |
730
+ | **Flyway** | Java/CLI | Multi |
731
+ | **Atlas** | Go | Multi |
732
+
733
+ ### Monitoring & GUI
734
+
735
+ | Tool | Purpose |
736
+ | ------------------- | -------------- |
737
+ | **pgAdmin** | PostgreSQL GUI |
738
+ | **DBeaver** | Universal GUI |
739
+ | **TablePlus** | Multi-DB GUI |
740
+ | **Prisma Studio** | Prisma visual |
741
+ | **RedisInsight** | Redis GUI |
742
+ | **MongoDB Compass** | MongoDB GUI |
743
+
744
+ ### Connection Pooling
745
+
746
+ | Tool | Database |
747
+ | ----------------- | ---------- |
748
+ | **PgBouncer** | PostgreSQL |
749
+ | **PgCat** | PostgreSQL |
750
+ | **ProxySQL** | MySQL |
751
+ | **Redis Cluster** | Redis |
752
+
753
+ ---
754
+
755
+ ## ✅ Production Checklist
756
+
757
+ ### Schema Design
758
+
759
+ - [ ] Primary keys defined (prefer UUID/CUID)
760
+ - [ ] Foreign keys with proper constraints
761
+ - [ ] Indexes on frequently queried columns
762
+ - [ ] Indexes on foreign keys
763
+ - [ ] NOT NULL where appropriate
764
+ - [ ] Proper data types selected
765
+
766
+ ### Performance
767
+
768
+ - [ ] Connection pooling configured
769
+ - [ ] Query plans analyzed (EXPLAIN ANALYZE)
770
+ - [ ] N+1 queries eliminated
771
+ - [ ] Slow query logging enabled
772
+ - [ ] Autovacuum tuned (PostgreSQL)
773
+
774
+ ### Security
775
+
776
+ - [ ] Parameterized queries (no SQL injection)
777
+ - [ ] Least privilege DB users
778
+ - [ ] Secrets in environment variables
779
+ - [ ] SSL/TLS connections
780
+ - [ ] Row-level security where needed
781
+
782
+ ### Operations
783
+
784
+ - [ ] Migrations versioned and tested
785
+ - [ ] Backup strategy in place
786
+ - [ ] Point-in-time recovery tested
787
+ - [ ] Monitoring and alerts configured
788
+ - [ ] Read replicas for scale (if needed)
789
+
790
+ ---
791
+
792
+ ## 🔌 HSA Integration
793
+
794
+ This skill is powered by HSA adapter for semantic search across 6 database domains:
795
+
796
+ ```python
797
+ from .agent.scripts.hsa.adapters import (
798
+ search_database_patterns,
799
+ get_db_patterns_for,
800
+ get_orm_patterns,
801
+ get_query_optimization,
802
+ )
803
+
804
+ # Search database patterns
805
+ results = search_database_patterns("connection pool", database="postgresql")
806
+
807
+ # Get ORM patterns
808
+ orm = get_orm_patterns("prisma")
809
+ # → {"n_plus_one_fix": "include: {}", ...}
810
+ ```
811
+
812
+ **Available Functions**: `search_database_patterns`, `get_db_patterns_for`, `get_orm_patterns`, `get_db_anti_patterns`, `get_query_optimization`, `get_connection_pooling`
813
+
814
+ ---
815
+
816
+ _DOMYH Awesome Code • Database Patterns • HSA-Powered • 2025-2026_