@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,397 @@
1
+ # =============================================================================
2
+ # TypeScript Async Patterns (Feb 2026)
3
+ # Version: TypeScript 5.8/ES2025
4
+ # =============================================================================
5
+
6
+ metadata:
7
+ skill: typescript
8
+ domain: async
9
+ version: "5.8"
10
+ updated: "2026-02-05"
11
+ patterns_count: 5
12
+
13
+ patterns:
14
+ - id: ts201
15
+ name: Promise Utilities
16
+ category: async
17
+ version: "ES2020+"
18
+ description: |
19
+ Modern Promise utilities and patterns.
20
+ allSettled, any, withResolvers.
21
+ text: promise all settled any withResolvers concurrent
22
+ example: |
23
+ // ✅ Promise.allSettled - all results, no short-circuit
24
+ async function fetchAllUsers(ids: number[]): Promise<Map<number, User | Error>> {
25
+ const results = await Promise.allSettled(
26
+ ids.map(id => fetchUser(id))
27
+ );
28
+
29
+ return new Map(
30
+ results.map((result, i) => [
31
+ ids[i],
32
+ result.status === 'fulfilled' ? result.value : result.reason,
33
+ ])
34
+ );
35
+ }
36
+
37
+ // ✅ Promise.any - first success wins
38
+ async function fetchFromMirrors(url: string): Promise<Response> {
39
+ const mirrors = [
40
+ `https://mirror1.example.com${url}`,
41
+ `https://mirror2.example.com${url}`,
42
+ `https://mirror3.example.com${url}`,
43
+ ];
44
+
45
+ try {
46
+ return await Promise.any(mirrors.map(fetch));
47
+ } catch (error) {
48
+ if (error instanceof AggregateError) {
49
+ console.error('All mirrors failed:', error.errors);
50
+ }
51
+ throw error;
52
+ }
53
+ }
54
+
55
+ // ✅ Promise.withResolvers (ES2024)
56
+ function createDeferred<T>() {
57
+ const { promise, resolve, reject } = Promise.withResolvers<T>();
58
+ return { promise, resolve, reject };
59
+ }
60
+
61
+ // Usage: External control over promise
62
+ const deferred = createDeferred<string>();
63
+
64
+ setTimeout(() => deferred.resolve('done'), 1000);
65
+
66
+ // Or in event handler
67
+ button.onclick = () => deferred.resolve('clicked');
68
+
69
+ const result = await deferred.promise;
70
+
71
+ // ✅ Parallel with limit
72
+ async function parallelLimit<T, R>(
73
+ items: T[],
74
+ limit: number,
75
+ fn: (item: T) => Promise<R>
76
+ ): Promise<R[]> {
77
+ const results: R[] = [];
78
+ const executing: Promise<void>[] = [];
79
+
80
+ for (const item of items) {
81
+ const p = fn(item).then(result => {
82
+ results.push(result);
83
+ });
84
+ executing.push(p);
85
+
86
+ if (executing.length >= limit) {
87
+ await Promise.race(executing);
88
+ executing.splice(executing.findIndex(p => p), 1);
89
+ }
90
+ }
91
+
92
+ await Promise.all(executing);
93
+ return results;
94
+ }
95
+ severity: HIGH
96
+ docs_url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
97
+
98
+ - id: ts202
99
+ name: Result Pattern
100
+ category: error-handling
101
+ version: "TypeScript 4.0+"
102
+ description: |
103
+ Functional error handling without exceptions.
104
+ Inspired by Rust Result type.
105
+ text: result pattern error handling either ok err
106
+ example: |
107
+ // ✅ Result type definition
108
+ type Result<T, E = Error> =
109
+ | { ok: true; value: T }
110
+ | { ok: false; error: E };
111
+
112
+ // Helper functions
113
+ function Ok<T>(value: T): Result<T, never> {
114
+ return { ok: true, value };
115
+ }
116
+
117
+ function Err<E>(error: E): Result<never, E> {
118
+ return { ok: false, error };
119
+ }
120
+
121
+ // ✅ Usage in functions
122
+ async function fetchUser(id: number): Promise<Result<User, ApiError>> {
123
+ try {
124
+ const response = await fetch(`/api/users/${id}`);
125
+
126
+ if (!response.ok) {
127
+ return Err({
128
+ code: response.status,
129
+ message: `User ${id} not found`,
130
+ });
131
+ }
132
+
133
+ const user = await response.json();
134
+ return Ok(user);
135
+ } catch (error) {
136
+ return Err({
137
+ code: 500,
138
+ message: error instanceof Error ? error.message : 'Unknown error',
139
+ });
140
+ }
141
+ }
142
+
143
+ // ✅ Consuming Result
144
+ async function getUserName(id: number): Promise<string> {
145
+ const result = await fetchUser(id);
146
+
147
+ if (!result.ok) {
148
+ console.error(`Error ${result.error.code}: ${result.error.message}`);
149
+ return 'Unknown User';
150
+ }
151
+
152
+ return result.value.name;
153
+ }
154
+
155
+ // ✅ Chaining Results
156
+ function map<T, U, E>(result: Result<T, E>, fn: (value: T) => U): Result<U, E> {
157
+ return result.ok ? Ok(fn(result.value)) : result;
158
+ }
159
+
160
+ function flatMap<T, U, E>(
161
+ result: Result<T, E>,
162
+ fn: (value: T) => Result<U, E>
163
+ ): Result<U, E> {
164
+ return result.ok ? fn(result.value) : result;
165
+ }
166
+
167
+ // Usage
168
+ const nameResult = map(await fetchUser(1), user => user.name);
169
+ severity: MEDIUM
170
+ docs_url: https://www.typescriptlang.org/docs/handbook/2/narrowing.html
171
+
172
+ - id: ts203
173
+ name: AbortController Pattern
174
+ category: cancellation
175
+ version: "ES2017+"
176
+ description: |
177
+ Cancel async operations with AbortController.
178
+ Timeout, user cancellation, cleanup.
179
+ text: abort controller cancel timeout signal cleanup
180
+ example: |
181
+ // ✅ Basic AbortController usage
182
+ async function fetchWithTimeout(
183
+ url: string,
184
+ timeoutMs: number
185
+ ): Promise<Response> {
186
+ const controller = new AbortController();
187
+ const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
188
+
189
+ try {
190
+ const response = await fetch(url, { signal: controller.signal });
191
+ return response;
192
+ } finally {
193
+ clearTimeout(timeoutId);
194
+ }
195
+ }
196
+
197
+ // ✅ User cancellation
198
+ function createCancellableRequest() {
199
+ const controller = new AbortController();
200
+
201
+ const request = async (url: string) => {
202
+ const response = await fetch(url, { signal: controller.signal });
203
+ return response.json();
204
+ };
205
+
206
+ const cancel = () => controller.abort();
207
+
208
+ return { request, cancel };
209
+ }
210
+
211
+ // Usage
212
+ const { request, cancel } = createCancellableRequest();
213
+ button.onclick = cancel; // Cancel on button click
214
+ const data = await request('/api/data');
215
+
216
+ // ✅ AbortSignal.timeout (modern)
217
+ async function fetchWithModernTimeout(url: string): Promise<Response> {
218
+ return fetch(url, { signal: AbortSignal.timeout(5000) });
219
+ }
220
+
221
+ // ✅ Combine multiple signals
222
+ function combineSignals(...signals: AbortSignal[]): AbortSignal {
223
+ const controller = new AbortController();
224
+
225
+ for (const signal of signals) {
226
+ if (signal.aborted) {
227
+ controller.abort(signal.reason);
228
+ break;
229
+ }
230
+ signal.addEventListener('abort', () => {
231
+ controller.abort(signal.reason);
232
+ });
233
+ }
234
+
235
+ return controller.signal;
236
+ }
237
+
238
+ // Usage: timeout + user cancellation
239
+ const userController = new AbortController();
240
+ const combined = combineSignals(
241
+ userController.signal,
242
+ AbortSignal.timeout(30000)
243
+ );
244
+
245
+ await fetch(url, { signal: combined });
246
+ severity: HIGH
247
+ docs_url: https://developer.mozilla.org/en-US/docs/Web/API/AbortController
248
+
249
+ - id: ts204
250
+ name: Iterator Helpers (ES2025)
251
+ category: iteration
252
+ version: "ES2025"
253
+ description: |
254
+ Built-in iterator helper methods.
255
+ map, filter, take, drop, flatMap on iterators.
256
+ text: iterator helpers map filter take drop flatMap
257
+ example: |
258
+ // ✅ Iterator helpers (ES2025)
259
+ // Available on all iterators, not just arrays
260
+
261
+ function* numbers() {
262
+ let i = 0;
263
+ while (true) yield i++;
264
+ }
265
+
266
+ // Chain operations lazily
267
+ const result = numbers()
268
+ .filter(n => n % 2 === 0) // Even numbers
269
+ .map(n => n * 2) // Double them
270
+ .take(5) // First 5
271
+ .toArray(); // Materialize
272
+
273
+ console.log(result); // [0, 4, 8, 12, 16]
274
+
275
+ // ✅ Available methods
276
+ const iter = [1, 2, 3, 4, 5].values();
277
+
278
+ iter.map(x => x * 2); // Transform each element
279
+ iter.filter(x => x > 2); // Keep matching elements
280
+ iter.take(3); // First n elements
281
+ iter.drop(2); // Skip first n elements
282
+ iter.flatMap(x => [x, x]); // Map and flatten
283
+ iter.reduce((a, b) => a + b);// Reduce to single value
284
+ iter.toArray(); // Convert to array
285
+ iter.forEach(console.log); // Side effect each element
286
+ iter.some(x => x > 3); // Any match?
287
+ iter.every(x => x > 0); // All match?
288
+ iter.find(x => x === 3); // First match
289
+
290
+ // ✅ Lazy evaluation benefit
291
+ function* infiniteUsers() {
292
+ let id = 0;
293
+ while (true) {
294
+ yield fetchUserSync(id++);
295
+ }
296
+ }
297
+
298
+ // Only fetches 10 active users, not all
299
+ const activeUsers = infiniteUsers()
300
+ .filter(user => user.active)
301
+ .take(10)
302
+ .toArray();
303
+
304
+ // ✅ Working with async iterators
305
+ async function* fetchPages(url: string) {
306
+ let page = 1;
307
+ while (true) {
308
+ const data = await fetch(`${url}?page=${page++}`).then(r => r.json());
309
+ if (!data.items.length) break;
310
+ yield* data.items;
311
+ }
312
+ }
313
+
314
+ // Async iterator helpers (proposal)
315
+ for await (const item of fetchPages('/api/items')) {
316
+ process(item);
317
+ }
318
+ severity: MEDIUM
319
+ docs_url: https://github.com/tc39/proposal-iterator-helpers
320
+
321
+ - id: ts205
322
+ name: Explicit Resource Management
323
+ category: cleanup
324
+ version: "ES2025/TS 5.2+"
325
+ description: |
326
+ using declaration for automatic cleanup.
327
+ RAII pattern in JavaScript/TypeScript.
328
+ text: using declaration dispose asyncDispose cleanup RAII
329
+ example: |
330
+ // ✅ using declaration (ES2025 / TS 5.2+)
331
+ // Automatically calls Symbol.dispose when scope exits
332
+
333
+ class FileHandle {
334
+ constructor(public path: string) {
335
+ console.log(`Opening ${path}`);
336
+ }
337
+
338
+ read(): string {
339
+ return 'file contents';
340
+ }
341
+
342
+ [Symbol.dispose](): void {
343
+ console.log(`Closing ${this.path}`);
344
+ }
345
+ }
346
+
347
+ function processFile(path: string): string {
348
+ using file = new FileHandle(path);
349
+ return file.read();
350
+ // file automatically closed here
351
+ }
352
+
353
+ // ✅ Async disposal
354
+ class DatabaseConnection {
355
+ async execute(sql: string): Promise<any> {
356
+ // ...
357
+ }
358
+
359
+ async [Symbol.asyncDispose](): Promise<void> {
360
+ console.log('Closing database connection');
361
+ await this.execute('COMMIT');
362
+ }
363
+ }
364
+
365
+ async function queryDatabase() {
366
+ await using db = await getConnection();
367
+ const result = await db.execute('SELECT * FROM users');
368
+ return result;
369
+ // Connection automatically closed
370
+ }
371
+
372
+ // ✅ Multiple resources
373
+ async function copyFile(src: string, dest: string) {
374
+ await using srcFile = await openFile(src, 'r');
375
+ await using destFile = await openFile(dest, 'w');
376
+
377
+ const content = await srcFile.read();
378
+ await destFile.write(content);
379
+ // Both files closed in reverse order
380
+ }
381
+
382
+ // ✅ DisposableStack for dynamic resources
383
+ async function processMultiple(paths: string[]) {
384
+ await using stack = new AsyncDisposableStack();
385
+
386
+ const files = paths.map(path => {
387
+ const file = new FileHandle(path);
388
+ stack.use(file); // Track for disposal
389
+ return file;
390
+ });
391
+
392
+ // Process files...
393
+
394
+ // All files closed when stack disposes
395
+ }
396
+ severity: HIGH
397
+ docs_url: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management
@@ -0,0 +1,283 @@
1
+ # =============================================================================
2
+ # TypeScript Core Patterns (Feb 2026)
3
+ # Version: TypeScript 5.8/6.0
4
+ # =============================================================================
5
+
6
+ metadata:
7
+ skill: typescript
8
+ domain: core
9
+ version: "6.0"
10
+ updated: "2026-02-05"
11
+ patterns_count: 5
12
+
13
+ patterns:
14
+ - id: ts001
15
+ name: Utility Types
16
+ category: types
17
+ version: "4.0+"
18
+ description: |
19
+ Built-in utility types for type transformations.
20
+ Omit, Pick, Partial, Required, Record, etc.
21
+ text: utility types omit pick partial required record
22
+ example: |
23
+ // ✅ Pick/Omit - Select or exclude properties
24
+ interface User {
25
+ id: number;
26
+ name: string;
27
+ email: string;
28
+ password: string;
29
+ }
30
+
31
+ type UserPublic = Omit<User, 'password'>;
32
+ type UserCredentials = Pick<User, 'email' | 'password'>;
33
+
34
+ // ✅ Partial/Required - Make all props optional/required
35
+ type UserUpdate = Partial<User>; // All optional
36
+ type StrictUser = Required<User>; // All required
37
+
38
+ // ✅ Record - Object type with specified keys
39
+ type UserRole = 'admin' | 'user' | 'guest';
40
+ type RolePermissions = Record<UserRole, string[]>;
41
+
42
+ const permissions: RolePermissions = {
43
+ admin: ['read', 'write', 'delete'],
44
+ user: ['read', 'write'],
45
+ guest: ['read'],
46
+ };
47
+
48
+ // ✅ Readonly - Immutable types
49
+ type ImmutableUser = Readonly<User>;
50
+
51
+ // ✅ Extract/Exclude - Union type manipulation
52
+ type NumericKeys = Extract<keyof User, 'id'>; // 'id'
53
+ type StringKeys = Exclude<keyof User, 'id'>; // 'name' | 'email' | 'password'
54
+
55
+ // ✅ ReturnType/Parameters - Function type extraction
56
+ function createUser(name: string, age: number): User {
57
+ return { id: 1, name, email: '', password: '' };
58
+ }
59
+
60
+ type CreateUserReturn = ReturnType<typeof createUser>; // User
61
+ type CreateUserParams = Parameters<typeof createUser>; // [string, number]
62
+ severity: HIGH
63
+ docs_url: https://www.typescriptlang.org/docs/handbook/utility-types.html
64
+
65
+ - id: ts002
66
+ name: Discriminated Unions
67
+ category: types
68
+ version: "2.0+"
69
+ description: |
70
+ Type-safe unions with discriminant property.
71
+ Exhaustive pattern matching with never.
72
+ text: discriminated union tagged union pattern matching exhaustive
73
+ example: |
74
+ // ✅ Discriminated union with 'type' discriminant
75
+ type Result<T> =
76
+ | { type: 'success'; data: T }
77
+ | { type: 'error'; error: Error }
78
+ | { type: 'loading' };
79
+
80
+ function handleResult<T>(result: Result<T>): T | null {
81
+ switch (result.type) {
82
+ case 'success':
83
+ return result.data; // TypeScript knows data exists
84
+ case 'error':
85
+ console.error(result.error);
86
+ return null;
87
+ case 'loading':
88
+ return null;
89
+ default:
90
+ // Exhaustiveness check
91
+ const _exhaustive: never = result;
92
+ return _exhaustive;
93
+ }
94
+ }
95
+
96
+ // ✅ API response pattern
97
+ type ApiResponse<T> =
98
+ | { status: 'ok'; data: T; timestamp: Date }
99
+ | { status: 'error'; message: string; code: number }
100
+ | { status: 'pending' };
101
+
102
+ // ✅ State machine pattern
103
+ type ConnectionState =
104
+ | { state: 'disconnected' }
105
+ | { state: 'connecting'; attempt: number }
106
+ | { state: 'connected'; socket: WebSocket }
107
+ | { state: 'error'; error: Error; retryAt: Date };
108
+
109
+ function getConnectionInfo(conn: ConnectionState): string {
110
+ switch (conn.state) {
111
+ case 'disconnected':
112
+ return 'Not connected';
113
+ case 'connecting':
114
+ return `Connecting (attempt ${conn.attempt})`;
115
+ case 'connected':
116
+ return `Connected to ${conn.socket.url}`;
117
+ case 'error':
118
+ return `Error: ${conn.error.message}`;
119
+ }
120
+ }
121
+ severity: HIGH
122
+ docs_url: https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions
123
+
124
+ - id: ts003
125
+ name: Branded Types
126
+ category: types
127
+ version: "2.0+"
128
+ description: |
129
+ Nominal typing via branded types.
130
+ Prevent mixing similar primitive types.
131
+ text: branded types nominal typing type safety
132
+ example: |
133
+ // ✅ Branded type pattern
134
+ declare const __brand: unique symbol;
135
+ type Brand<T, B> = T & { [__brand]: B };
136
+
137
+ // Define branded types
138
+ type UserId = Brand<number, 'UserId'>;
139
+ type OrderId = Brand<number, 'OrderId'>;
140
+ type Email = Brand<string, 'Email'>;
141
+
142
+ // ✅ Type guards for creating branded types
143
+ function isValidEmail(email: string): email is Email {
144
+ return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
145
+ }
146
+
147
+ function createEmail(value: string): Email {
148
+ if (!isValidEmail(value)) {
149
+ throw new Error('Invalid email');
150
+ }
151
+ return value;
152
+ }
153
+
154
+ function createUserId(id: number): UserId {
155
+ if (id <= 0) throw new Error('Invalid user ID');
156
+ return id as UserId;
157
+ }
158
+
159
+ // ✅ Usage - compiler prevents mixing IDs
160
+ function getUser(id: UserId): Promise<User> {
161
+ return fetch(`/users/${id}`).then(r => r.json());
162
+ }
163
+
164
+ function getOrder(id: OrderId): Promise<Order> {
165
+ return fetch(`/orders/${id}`).then(r => r.json());
166
+ }
167
+
168
+ const userId = createUserId(123);
169
+ const orderId = createUserId(456) as unknown as OrderId;
170
+
171
+ getUser(userId); // ✅ OK
172
+ // getUser(orderId); // ❌ Type error: OrderId not assignable to UserId
173
+ // getUser(123); // ❌ Type error: number not assignable to UserId
174
+ severity: MEDIUM
175
+ docs_url: https://www.typescriptlang.org/play#example/nominal-typing
176
+
177
+ - id: ts004
178
+ name: Template Literal Types
179
+ category: types
180
+ version: "4.1+"
181
+ description: |
182
+ String manipulation at type level.
183
+ Build complex string patterns from types.
184
+ text: template literal types string manipulation type level
185
+ example: |
186
+ // ✅ Basic template literal type
187
+ type EventName = 'click' | 'focus' | 'blur';
188
+ type EventHandler = `on${Capitalize<EventName>}`; // 'onClick' | 'onFocus' | 'onBlur'
189
+
190
+ // ✅ Route patterns
191
+ type Method = 'GET' | 'POST' | 'PUT' | 'DELETE';
192
+ type Resource = 'users' | 'posts' | 'comments';
193
+ type Route = `${Lowercase<Method>} /api/${Resource}`;
194
+ // 'get /api/users' | 'get /api/posts' | 'post /api/users' | ...
195
+
196
+ // ✅ CSS property types
197
+ type CSSUnit = 'px' | 'rem' | 'em' | '%';
198
+ type CSSValue = `${number}${CSSUnit}`;
199
+
200
+ function setWidth(width: CSSValue): void {
201
+ // ...
202
+ }
203
+
204
+ setWidth('100px'); // ✅
205
+ setWidth('2rem'); // ✅
206
+ // setWidth('100'); // ❌ Type error
207
+
208
+ // ✅ Object key transformation
209
+ type Getters<T> = {
210
+ [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K];
211
+ };
212
+
213
+ interface Person {
214
+ name: string;
215
+ age: number;
216
+ }
217
+
218
+ type PersonGetters = Getters<Person>;
219
+ // { getName: () => string; getAge: () => number }
220
+
221
+ // ✅ Parse string patterns
222
+ type ParseRoute<T extends string> =
223
+ T extends `${infer Method} ${infer Path}`
224
+ ? { method: Method; path: Path }
225
+ : never;
226
+
227
+ type Parsed = ParseRoute<'GET /users'>; // { method: 'GET'; path: '/users' }
228
+ severity: MEDIUM
229
+ docs_url: https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html
230
+
231
+ - id: ts005
232
+ name: const Assertions
233
+ category: types
234
+ version: "3.4+"
235
+ description: |
236
+ Narrow literal types with 'as const'.
237
+ Readonly inference for objects and arrays.
238
+ text: const assertion literal type readonly inference
239
+ example: |
240
+ // ✅ Array as tuple
241
+ const colors = ['red', 'green', 'blue'] as const;
242
+ // type: readonly ['red', 'green', 'blue']
243
+
244
+ type Color = (typeof colors)[number]; // 'red' | 'green' | 'blue'
245
+
246
+ // ✅ Object literal types
247
+ const config = {
248
+ apiUrl: 'https://api.example.com',
249
+ timeout: 5000,
250
+ retries: 3,
251
+ } as const;
252
+
253
+ type Config = typeof config;
254
+ // { readonly apiUrl: 'https://api.example.com'; readonly timeout: 5000; readonly retries: 3 }
255
+
256
+ // ✅ Enum-like pattern
257
+ const HttpStatus = {
258
+ OK: 200,
259
+ NotFound: 404,
260
+ ServerError: 500,
261
+ } as const;
262
+
263
+ type HttpStatusCode = (typeof HttpStatus)[keyof typeof HttpStatus];
264
+ // 200 | 404 | 500
265
+
266
+ // ✅ Function with const type parameter (5.0+)
267
+ function createRoute<const T extends string>(path: T): { path: T } {
268
+ return { path };
269
+ }
270
+
271
+ const route = createRoute('/users/:id');
272
+ // type: { path: '/users/:id' } (not { path: string })
273
+
274
+ // ✅ satisfies with as const
275
+ const routes = {
276
+ home: '/',
277
+ users: '/users',
278
+ posts: '/posts',
279
+ } as const satisfies Record<string, string>;
280
+
281
+ type RouteName = keyof typeof routes; // 'home' | 'users' | 'posts'
282
+ severity: MEDIUM
283
+ docs_url: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions