@su-record/vibe 2.7.11 → 2.7.13

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 (1677) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +126 -222
  3. package/LICENSE +21 -21
  4. package/README.md +449 -580
  5. package/agents/architect-low.md +41 -41
  6. package/agents/architect-medium.md +59 -59
  7. package/agents/architect.md +80 -80
  8. package/agents/build-error-resolver.md +115 -115
  9. package/agents/compounder.md +261 -261
  10. package/agents/diagrammer.md +178 -178
  11. package/agents/docs/api-documenter.md +99 -99
  12. package/agents/docs/changelog-writer.md +93 -93
  13. package/agents/e2e-tester.md +294 -266
  14. package/agents/explorer-low.md +42 -42
  15. package/agents/explorer-medium.md +59 -59
  16. package/agents/explorer.md +48 -48
  17. package/agents/implementer-low.md +43 -43
  18. package/agents/implementer-medium.md +52 -52
  19. package/agents/implementer.md +54 -54
  20. package/agents/junior-mentor.md +141 -141
  21. package/agents/planning/requirements-analyst.md +84 -84
  22. package/agents/planning/ux-advisor.md +83 -83
  23. package/agents/qa/acceptance-tester.md +86 -86
  24. package/agents/qa/edge-case-finder.md +93 -93
  25. package/agents/refactor-cleaner.md +143 -143
  26. package/agents/research/best-practices-agent.md +199 -199
  27. package/agents/research/codebase-patterns-agent.md +157 -157
  28. package/agents/research/framework-docs-agent.md +188 -188
  29. package/agents/research/security-advisory-agent.md +213 -213
  30. package/agents/review/architecture-reviewer.md +107 -107
  31. package/agents/review/complexity-reviewer.md +116 -116
  32. package/agents/review/data-integrity-reviewer.md +88 -88
  33. package/agents/review/git-history-reviewer.md +103 -103
  34. package/agents/review/performance-reviewer.md +86 -86
  35. package/agents/review/python-reviewer.md +150 -150
  36. package/agents/review/rails-reviewer.md +139 -139
  37. package/agents/review/react-reviewer.md +144 -144
  38. package/agents/review/security-reviewer.md +80 -80
  39. package/agents/review/simplicity-reviewer.md +140 -140
  40. package/agents/review/test-coverage-reviewer.md +116 -116
  41. package/agents/review/typescript-reviewer.md +127 -127
  42. package/agents/searcher.md +54 -54
  43. package/agents/simplifier.md +120 -120
  44. package/agents/tester.md +49 -49
  45. package/agents/ui/ui-a11y-auditor.md +93 -93
  46. package/agents/ui/ui-antipattern-detector.md +94 -94
  47. package/agents/ui/ui-dataviz-advisor.md +69 -69
  48. package/agents/ui/ui-design-system-gen.md +57 -57
  49. package/agents/ui/ui-industry-analyzer.md +49 -49
  50. package/agents/ui/ui-layout-architect.md +65 -65
  51. package/agents/ui/ui-stack-implementer.md +68 -68
  52. package/agents/ui/ux-compliance-reviewer.md +81 -81
  53. package/agents/ui-previewer.md +260 -260
  54. package/commands/vibe.analyze.md +8 -0
  55. package/commands/vibe.review.md +10 -3
  56. package/commands/vibe.run.md +2078 -1939
  57. package/commands/vibe.spec.md +10 -10
  58. package/commands/vibe.spec.review.md +565 -558
  59. package/commands/vibe.utils.md +413 -413
  60. package/commands/vibe.verify.md +45 -0
  61. package/dist/cli/auth.d.ts +1 -1
  62. package/dist/cli/auth.d.ts.map +1 -1
  63. package/dist/cli/auth.js +16 -14
  64. package/dist/cli/auth.js.map +1 -1
  65. package/dist/cli/collaborator.js +52 -52
  66. package/dist/cli/commands/evolution.js +12 -12
  67. package/dist/cli/commands/index.d.ts +1 -0
  68. package/dist/cli/commands/index.d.ts.map +1 -1
  69. package/dist/cli/commands/index.js +1 -0
  70. package/dist/cli/commands/index.js.map +1 -1
  71. package/dist/cli/commands/info.d.ts.map +1 -1
  72. package/dist/cli/commands/info.js +60 -69
  73. package/dist/cli/commands/info.js.map +1 -1
  74. package/dist/cli/commands/init.d.ts.map +1 -1
  75. package/dist/cli/commands/init.js +9 -7
  76. package/dist/cli/commands/init.js.map +1 -1
  77. package/dist/cli/commands/remove.js +14 -14
  78. package/dist/cli/commands/sentinel.js +27 -27
  79. package/dist/cli/commands/setup.js +1 -1
  80. package/dist/cli/commands/setup.js.map +1 -1
  81. package/dist/cli/commands/skills.d.ts +13 -0
  82. package/dist/cli/commands/skills.d.ts.map +1 -0
  83. package/dist/cli/commands/skills.js +83 -0
  84. package/dist/cli/commands/skills.js.map +1 -0
  85. package/dist/cli/commands/slack.js +10 -10
  86. package/dist/cli/commands/telegram.js +12 -12
  87. package/dist/cli/commands/update.d.ts.map +1 -1
  88. package/dist/cli/commands/update.js +6 -4
  89. package/dist/cli/commands/update.js.map +1 -1
  90. package/dist/cli/detect.js +32 -32
  91. package/dist/cli/index.d.ts.map +1 -1
  92. package/dist/cli/index.js +64 -51
  93. package/dist/cli/index.js.map +1 -1
  94. package/dist/cli/llm/claude-commands.js +16 -16
  95. package/dist/cli/llm/config.js +19 -19
  96. package/dist/cli/llm/config.js.map +1 -1
  97. package/dist/cli/llm/gemini-commands.d.ts +4 -6
  98. package/dist/cli/llm/gemini-commands.d.ts.map +1 -1
  99. package/dist/cli/llm/gemini-commands.js +52 -322
  100. package/dist/cli/llm/gemini-commands.js.map +1 -1
  101. package/dist/cli/llm/gpt-commands.js +21 -21
  102. package/dist/cli/llm/gpt-commands.js.map +1 -1
  103. package/dist/cli/llm/help.js +21 -21
  104. package/dist/cli/postinstall/constants.d.ts +8 -0
  105. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  106. package/dist/cli/postinstall/constants.js +34 -1
  107. package/dist/cli/postinstall/constants.js.map +1 -1
  108. package/dist/cli/postinstall/cursor-agents.js +32 -32
  109. package/dist/cli/postinstall/cursor-rules.js +83 -83
  110. package/dist/cli/postinstall/cursor-skills.js +743 -743
  111. package/dist/cli/postinstall/index.d.ts +1 -1
  112. package/dist/cli/postinstall/index.d.ts.map +1 -1
  113. package/dist/cli/postinstall/index.js +1 -1
  114. package/dist/cli/postinstall/index.js.map +1 -1
  115. package/dist/cli/postinstall/inline-skills.js +1 -1
  116. package/dist/cli/postinstall/inline-skills.js.map +1 -1
  117. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  118. package/dist/cli/setup/ProjectSetup.js +5 -0
  119. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  120. package/dist/cli/setup/Provisioner.js +42 -42
  121. package/dist/cli/types.d.ts +3 -16
  122. package/dist/cli/types.d.ts.map +1 -1
  123. package/dist/cli/utils.d.ts +0 -9
  124. package/dist/cli/utils.d.ts.map +1 -1
  125. package/dist/cli/utils.js +0 -28
  126. package/dist/cli/utils.js.map +1 -1
  127. package/dist/infra/lib/DeepInit.js +24 -24
  128. package/dist/infra/lib/IterationTracker.js +11 -11
  129. package/dist/infra/lib/PythonParser.js +108 -108
  130. package/dist/infra/lib/ReviewRace.js +96 -96
  131. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  132. package/dist/infra/lib/SkillQualityGate.js +9 -9
  133. package/dist/infra/lib/SkillRepository.js +159 -159
  134. package/dist/infra/lib/UltraQA.js +99 -99
  135. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  136. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  137. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  138. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  139. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  140. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  141. package/dist/infra/lib/config/GlobalConfigManager.d.ts +0 -2
  142. package/dist/infra/lib/config/GlobalConfigManager.d.ts.map +1 -1
  143. package/dist/infra/lib/config/GlobalConfigManager.js +0 -27
  144. package/dist/infra/lib/config/GlobalConfigManager.js.map +1 -1
  145. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  146. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  147. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  148. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  149. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  150. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  151. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  152. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  153. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  154. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  155. package/dist/infra/lib/gemini/auth.d.ts +4 -16
  156. package/dist/infra/lib/gemini/auth.d.ts.map +1 -1
  157. package/dist/infra/lib/gemini/auth.js +10 -405
  158. package/dist/infra/lib/gemini/auth.js.map +1 -1
  159. package/dist/infra/lib/gemini/capabilities.d.ts +4 -8
  160. package/dist/infra/lib/gemini/capabilities.d.ts.map +1 -1
  161. package/dist/infra/lib/gemini/capabilities.js +8 -166
  162. package/dist/infra/lib/gemini/capabilities.js.map +1 -1
  163. package/dist/infra/lib/gemini/chat.d.ts +4 -13
  164. package/dist/infra/lib/gemini/chat.d.ts.map +1 -1
  165. package/dist/infra/lib/gemini/chat.js +10 -323
  166. package/dist/infra/lib/gemini/chat.js.map +1 -1
  167. package/dist/infra/lib/gemini/completion.d.ts +5 -15
  168. package/dist/infra/lib/gemini/completion.d.ts.map +1 -1
  169. package/dist/infra/lib/gemini/completion.js +6 -97
  170. package/dist/infra/lib/gemini/completion.js.map +1 -1
  171. package/dist/infra/lib/gemini/constants.d.ts +2 -31
  172. package/dist/infra/lib/gemini/constants.d.ts.map +1 -1
  173. package/dist/infra/lib/gemini/constants.js +2 -77
  174. package/dist/infra/lib/gemini/constants.js.map +1 -1
  175. package/dist/infra/lib/gemini/index.d.ts +5 -8
  176. package/dist/infra/lib/gemini/index.d.ts.map +1 -1
  177. package/dist/infra/lib/gemini/index.js +4 -7
  178. package/dist/infra/lib/gemini/index.js.map +1 -1
  179. package/dist/infra/lib/gemini/models.d.ts +3 -4
  180. package/dist/infra/lib/gemini/models.d.ts.map +1 -1
  181. package/dist/infra/lib/gemini/models.js +8 -84
  182. package/dist/infra/lib/gemini/models.js.map +1 -1
  183. package/dist/infra/lib/gemini/orchestration.js +5 -5
  184. package/dist/infra/lib/gemini/types.d.ts +16 -44
  185. package/dist/infra/lib/gemini/types.d.ts.map +1 -1
  186. package/dist/infra/lib/gemini/types.js +1 -1
  187. package/dist/infra/lib/gpt/auth.d.ts +2 -5
  188. package/dist/infra/lib/gpt/auth.d.ts.map +1 -1
  189. package/dist/infra/lib/gpt/auth.js +8 -38
  190. package/dist/infra/lib/gpt/auth.js.map +1 -1
  191. package/dist/infra/lib/gpt/chat.d.ts +3 -3
  192. package/dist/infra/lib/gpt/chat.d.ts.map +1 -1
  193. package/dist/infra/lib/gpt/chat.js +37 -53
  194. package/dist/infra/lib/gpt/chat.js.map +1 -1
  195. package/dist/infra/lib/gpt/constants.d.ts +2 -5
  196. package/dist/infra/lib/gpt/constants.d.ts.map +1 -1
  197. package/dist/infra/lib/gpt/constants.js +4 -9
  198. package/dist/infra/lib/gpt/constants.js.map +1 -1
  199. package/dist/infra/lib/gpt/embedding.d.ts +1 -1
  200. package/dist/infra/lib/gpt/embedding.js +3 -3
  201. package/dist/infra/lib/gpt/embedding.js.map +1 -1
  202. package/dist/infra/lib/gpt/oauth.d.ts +6 -39
  203. package/dist/infra/lib/gpt/oauth.d.ts.map +1 -1
  204. package/dist/infra/lib/gpt/oauth.js +8 -340
  205. package/dist/infra/lib/gpt/oauth.js.map +1 -1
  206. package/dist/infra/lib/gpt/orchestration.js +5 -5
  207. package/dist/infra/lib/gpt/orchestration.js.map +1 -1
  208. package/dist/infra/lib/gpt/specializations.d.ts +2 -2
  209. package/dist/infra/lib/gpt/specializations.js +3 -3
  210. package/dist/infra/lib/gpt/specializations.js.map +1 -1
  211. package/dist/infra/lib/gpt/types.d.ts +1 -1
  212. package/dist/infra/lib/gpt/types.d.ts.map +1 -1
  213. package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts +2 -2
  214. package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts.map +1 -1
  215. package/dist/infra/lib/llm/auth/AuthProfileManager.js.map +1 -1
  216. package/dist/infra/lib/llm/auth/AuthProfileManager.test.js +1 -1
  217. package/dist/infra/lib/llm/auth/AuthProfileManager.test.js.map +1 -1
  218. package/dist/infra/lib/llm/auth/TokenRefresher.d.ts +1 -1
  219. package/dist/infra/lib/llm/auth/TokenRefresher.js +1 -1
  220. package/dist/infra/lib/llm/auth/index.d.ts +2 -12
  221. package/dist/infra/lib/llm/auth/index.d.ts.map +1 -1
  222. package/dist/infra/lib/llm/auth/index.js +5 -63
  223. package/dist/infra/lib/llm/auth/index.js.map +1 -1
  224. package/dist/infra/lib/llm/types.d.ts +1 -1
  225. package/dist/infra/lib/llm/types.d.ts.map +1 -1
  226. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  227. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  228. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  229. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  230. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  231. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  232. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  233. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  234. package/dist/infra/orchestrator/AgentManager.js +12 -12
  235. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  236. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  237. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  238. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  239. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  240. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  241. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  242. package/dist/tools/memory/getMemoryGraph.js +12 -12
  243. package/dist/tools/memory/getSessionContext.js +9 -9
  244. package/dist/tools/memory/linkMemories.js +14 -14
  245. package/dist/tools/memory/listMemories.js +4 -4
  246. package/dist/tools/memory/recallMemory.js +4 -4
  247. package/dist/tools/memory/saveMemory.js +4 -4
  248. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  249. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  250. package/dist/tools/semantic/astGrep.test.js +6 -6
  251. package/dist/tools/spec/prdParser.test.js +171 -171
  252. package/dist/tools/spec/specGenerator.js +169 -169
  253. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  254. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  255. package/hooks/gemini-hooks.json +73 -73
  256. package/hooks/hooks.json +137 -137
  257. package/hooks/scripts/code-check.js +70 -70
  258. package/hooks/scripts/context-save.js +212 -212
  259. package/hooks/scripts/hud-status.js +291 -291
  260. package/hooks/scripts/keyword-detector.js +214 -214
  261. package/hooks/scripts/llm-orchestrate.js +475 -646
  262. package/hooks/scripts/post-edit.js +32 -32
  263. package/hooks/scripts/pre-tool-guard.js +125 -125
  264. package/hooks/scripts/prompt-dispatcher.js +185 -185
  265. package/hooks/scripts/sentinel-guard.js +104 -104
  266. package/hooks/scripts/session-start.js +106 -106
  267. package/hooks/scripts/stop-notify.js +209 -209
  268. package/hooks/scripts/utils.js +100 -100
  269. package/languages/csharp-unity.md +515 -515
  270. package/languages/gdscript-godot.md +470 -470
  271. package/languages/ruby-rails.md +489 -489
  272. package/languages/typescript-angular.md +433 -433
  273. package/languages/typescript-astro.md +416 -416
  274. package/languages/typescript-electron.md +406 -406
  275. package/languages/typescript-nestjs.md +524 -524
  276. package/languages/typescript-svelte.md +407 -407
  277. package/languages/typescript-tauri.md +365 -365
  278. package/package.json +121 -121
  279. package/skills/agents-md/SKILL.md +120 -120
  280. package/skills/arch-guard/SKILL.md +180 -0
  281. package/skills/brand-assets/SKILL.md +146 -146
  282. package/skills/capability-loop/SKILL.md +167 -0
  283. package/skills/characterization-test/SKILL.md +206 -206
  284. package/skills/commerce-patterns/SKILL.md +59 -59
  285. package/skills/commit-push-pr/SKILL.md +75 -75
  286. package/skills/context7-usage/SKILL.md +105 -105
  287. package/skills/core-capabilities/SKILL.md +48 -48
  288. package/skills/e2e-commerce/SKILL.md +57 -57
  289. package/skills/exec-plan/SKILL.md +147 -0
  290. package/skills/frontend-design/SKILL.md +73 -73
  291. package/skills/git-worktree/SKILL.md +72 -72
  292. package/skills/handoff/SKILL.md +109 -109
  293. package/skills/parallel-research/SKILL.md +87 -87
  294. package/skills/priority-todos/SKILL.md +63 -63
  295. package/skills/seo-checklist/SKILL.md +57 -57
  296. package/skills/techdebt/SKILL.md +122 -122
  297. package/skills/tool-fallback/SKILL.md +103 -103
  298. package/skills/typescript-advanced-types/SKILL.md +65 -65
  299. package/skills/ui-ux-pro-max/SKILL.md +206 -206
  300. package/skills/vercel-react-best-practices/SKILL.md +59 -59
  301. package/skills/video-production/SKILL.md +51 -51
  302. package/vibe/config.json +29 -29
  303. package/vibe/constitution.md +227 -227
  304. package/vibe/rules/principles/communication-guide.md +98 -98
  305. package/vibe/rules/principles/development-philosophy.md +52 -52
  306. package/vibe/rules/principles/quick-start.md +102 -102
  307. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  308. package/vibe/rules/quality/checklist.md +276 -276
  309. package/vibe/rules/quality/performance.md +236 -236
  310. package/vibe/rules/quality/testing-strategy.md +440 -440
  311. package/vibe/rules/standards/anti-patterns.md +541 -541
  312. package/vibe/rules/standards/code-structure.md +291 -291
  313. package/vibe/rules/standards/complexity-metrics.md +313 -313
  314. package/vibe/rules/standards/git-workflow.md +237 -237
  315. package/vibe/rules/standards/naming-conventions.md +198 -198
  316. package/vibe/rules/standards/security.md +305 -305
  317. package/vibe/rules/writing/document-style.md +74 -74
  318. package/vibe/setup.sh +31 -31
  319. package/vibe/templates/constitution-template.md +252 -252
  320. package/vibe/templates/contract-backend-template.md +526 -526
  321. package/vibe/templates/contract-frontend-template.md +599 -599
  322. package/vibe/templates/feature-template.md +96 -96
  323. package/vibe/templates/spec-template.md +221 -221
  324. package/vibe/ui-ux-data/charts.csv +26 -26
  325. package/vibe/ui-ux-data/colors.csv +97 -97
  326. package/vibe/ui-ux-data/icons.csv +101 -101
  327. package/vibe/ui-ux-data/landing.csv +31 -31
  328. package/vibe/ui-ux-data/products.csv +96 -96
  329. package/vibe/ui-ux-data/react-performance.csv +45 -45
  330. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  331. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  332. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  333. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  334. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  335. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  336. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  337. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  338. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  339. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  340. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  341. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  342. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  343. package/vibe/ui-ux-data/styles.csv +68 -68
  344. package/vibe/ui-ux-data/typography.csv +57 -57
  345. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  346. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  347. package/vibe/ui-ux-data/version.json +31 -31
  348. package/vibe/ui-ux-data/web-interface.csv +31 -31
  349. package/commands/vibe.voice.md +0 -79
  350. package/dist/agent/AgentLoop.d.ts +0 -97
  351. package/dist/agent/AgentLoop.d.ts.map +0 -1
  352. package/dist/agent/AgentLoop.js +0 -546
  353. package/dist/agent/AgentLoop.js.map +0 -1
  354. package/dist/agent/ConversationState.d.ts +0 -29
  355. package/dist/agent/ConversationState.d.ts.map +0 -1
  356. package/dist/agent/ConversationState.js +0 -107
  357. package/dist/agent/ConversationState.js.map +0 -1
  358. package/dist/agent/ConversationStore.d.ts +0 -31
  359. package/dist/agent/ConversationStore.d.ts.map +0 -1
  360. package/dist/agent/ConversationStore.integration.test.d.ts +0 -2
  361. package/dist/agent/ConversationStore.integration.test.d.ts.map +0 -1
  362. package/dist/agent/ConversationStore.integration.test.js +0 -162
  363. package/dist/agent/ConversationStore.integration.test.js.map +0 -1
  364. package/dist/agent/ConversationStore.js +0 -126
  365. package/dist/agent/ConversationStore.js.map +0 -1
  366. package/dist/agent/ConversationStore.test.d.ts +0 -2
  367. package/dist/agent/ConversationStore.test.d.ts.map +0 -1
  368. package/dist/agent/ConversationStore.test.js +0 -93
  369. package/dist/agent/ConversationStore.test.js.map +0 -1
  370. package/dist/agent/HeadModelSelector.d.ts +0 -36
  371. package/dist/agent/HeadModelSelector.d.ts.map +0 -1
  372. package/dist/agent/HeadModelSelector.js +0 -124
  373. package/dist/agent/HeadModelSelector.js.map +0 -1
  374. package/dist/agent/RateLimiter.d.ts +0 -44
  375. package/dist/agent/RateLimiter.d.ts.map +0 -1
  376. package/dist/agent/RateLimiter.js +0 -71
  377. package/dist/agent/RateLimiter.js.map +0 -1
  378. package/dist/agent/SystemPrompt.d.ts +0 -35
  379. package/dist/agent/SystemPrompt.d.ts.map +0 -1
  380. package/dist/agent/SystemPrompt.js +0 -151
  381. package/dist/agent/SystemPrompt.js.map +0 -1
  382. package/dist/agent/ToolExecutor.d.ts +0 -33
  383. package/dist/agent/ToolExecutor.d.ts.map +0 -1
  384. package/dist/agent/ToolExecutor.js +0 -123
  385. package/dist/agent/ToolExecutor.js.map +0 -1
  386. package/dist/agent/ToolRegistry.d.ts +0 -37
  387. package/dist/agent/ToolRegistry.d.ts.map +0 -1
  388. package/dist/agent/ToolRegistry.js +0 -125
  389. package/dist/agent/ToolRegistry.js.map +0 -1
  390. package/dist/agent/__tests__/AgentLoop.test.d.ts +0 -6
  391. package/dist/agent/__tests__/AgentLoop.test.d.ts.map +0 -1
  392. package/dist/agent/__tests__/AgentLoop.test.js +0 -208
  393. package/dist/agent/__tests__/AgentLoop.test.js.map +0 -1
  394. package/dist/agent/__tests__/ConversationState.test.d.ts +0 -6
  395. package/dist/agent/__tests__/ConversationState.test.d.ts.map +0 -1
  396. package/dist/agent/__tests__/ConversationState.test.js +0 -102
  397. package/dist/agent/__tests__/ConversationState.test.js.map +0 -1
  398. package/dist/agent/__tests__/HeadModelSelector.test.d.ts +0 -6
  399. package/dist/agent/__tests__/HeadModelSelector.test.d.ts.map +0 -1
  400. package/dist/agent/__tests__/HeadModelSelector.test.js +0 -132
  401. package/dist/agent/__tests__/HeadModelSelector.test.js.map +0 -1
  402. package/dist/agent/__tests__/JobManager.test.d.ts +0 -6
  403. package/dist/agent/__tests__/JobManager.test.d.ts.map +0 -1
  404. package/dist/agent/__tests__/JobManager.test.js +0 -197
  405. package/dist/agent/__tests__/JobManager.test.js.map +0 -1
  406. package/dist/agent/__tests__/MediaPreprocessor.test.d.ts +0 -6
  407. package/dist/agent/__tests__/MediaPreprocessor.test.d.ts.map +0 -1
  408. package/dist/agent/__tests__/MediaPreprocessor.test.js +0 -163
  409. package/dist/agent/__tests__/MediaPreprocessor.test.js.map +0 -1
  410. package/dist/agent/__tests__/ToolExecutor.test.d.ts +0 -6
  411. package/dist/agent/__tests__/ToolExecutor.test.d.ts.map +0 -1
  412. package/dist/agent/__tests__/ToolExecutor.test.js +0 -140
  413. package/dist/agent/__tests__/ToolExecutor.test.js.map +0 -1
  414. package/dist/agent/__tests__/ToolRegistry.test.d.ts +0 -6
  415. package/dist/agent/__tests__/ToolRegistry.test.d.ts.map +0 -1
  416. package/dist/agent/__tests__/ToolRegistry.test.js +0 -172
  417. package/dist/agent/__tests__/ToolRegistry.test.js.map +0 -1
  418. package/dist/agent/__tests__/tools.test.d.ts +0 -6
  419. package/dist/agent/__tests__/tools.test.d.ts.map +0 -1
  420. package/dist/agent/__tests__/tools.test.js +0 -177
  421. package/dist/agent/__tests__/tools.test.js.map +0 -1
  422. package/dist/agent/index.d.ts +0 -19
  423. package/dist/agent/index.d.ts.map +0 -1
  424. package/dist/agent/index.js +0 -18
  425. package/dist/agent/index.js.map +0 -1
  426. package/dist/agent/jobs/JobManager.d.ts +0 -46
  427. package/dist/agent/jobs/JobManager.d.ts.map +0 -1
  428. package/dist/agent/jobs/JobManager.js +0 -213
  429. package/dist/agent/jobs/JobManager.js.map +0 -1
  430. package/dist/agent/jobs/ProgressReporter.d.ts +0 -32
  431. package/dist/agent/jobs/ProgressReporter.d.ts.map +0 -1
  432. package/dist/agent/jobs/ProgressReporter.js +0 -82
  433. package/dist/agent/jobs/ProgressReporter.js.map +0 -1
  434. package/dist/agent/jobs/types.d.ts +0 -32
  435. package/dist/agent/jobs/types.d.ts.map +0 -1
  436. package/dist/agent/jobs/types.js +0 -6
  437. package/dist/agent/jobs/types.js.map +0 -1
  438. package/dist/agent/policy-integration.test.d.ts +0 -6
  439. package/dist/agent/policy-integration.test.d.ts.map +0 -1
  440. package/dist/agent/policy-integration.test.js +0 -148
  441. package/dist/agent/policy-integration.test.js.map +0 -1
  442. package/dist/agent/preprocessors/MediaPreprocessor.d.ts +0 -63
  443. package/dist/agent/preprocessors/MediaPreprocessor.d.ts.map +0 -1
  444. package/dist/agent/preprocessors/MediaPreprocessor.js +0 -320
  445. package/dist/agent/preprocessors/MediaPreprocessor.js.map +0 -1
  446. package/dist/agent/providers/claude-head.d.ts +0 -17
  447. package/dist/agent/providers/claude-head.d.ts.map +0 -1
  448. package/dist/agent/providers/claude-head.js +0 -124
  449. package/dist/agent/providers/claude-head.js.map +0 -1
  450. package/dist/agent/providers/gpt-head.d.ts +0 -30
  451. package/dist/agent/providers/gpt-head.d.ts.map +0 -1
  452. package/dist/agent/providers/gpt-head.js +0 -359
  453. package/dist/agent/providers/gpt-head.js.map +0 -1
  454. package/dist/agent/tools/claude-code.d.ts +0 -11
  455. package/dist/agent/tools/claude-code.d.ts.map +0 -1
  456. package/dist/agent/tools/claude-code.js +0 -148
  457. package/dist/agent/tools/claude-code.js.map +0 -1
  458. package/dist/agent/tools/dm-pair.d.ts +0 -23
  459. package/dist/agent/tools/dm-pair.d.ts.map +0 -1
  460. package/dist/agent/tools/dm-pair.js +0 -70
  461. package/dist/agent/tools/dm-pair.js.map +0 -1
  462. package/dist/agent/tools/dm-pair.test.d.ts +0 -6
  463. package/dist/agent/tools/dm-pair.test.d.ts.map +0 -1
  464. package/dist/agent/tools/dm-pair.test.js +0 -106
  465. package/dist/agent/tools/dm-pair.test.js.map +0 -1
  466. package/dist/agent/tools/gemini-stt.d.ts +0 -9
  467. package/dist/agent/tools/gemini-stt.d.ts.map +0 -1
  468. package/dist/agent/tools/gemini-stt.js +0 -33
  469. package/dist/agent/tools/gemini-stt.js.map +0 -1
  470. package/dist/agent/tools/google-search.d.ts +0 -9
  471. package/dist/agent/tools/google-search.d.ts.map +0 -1
  472. package/dist/agent/tools/google-search.js +0 -38
  473. package/dist/agent/tools/google-search.js.map +0 -1
  474. package/dist/agent/tools/index.d.ts +0 -22
  475. package/dist/agent/tools/index.d.ts.map +0 -1
  476. package/dist/agent/tools/index.js +0 -37
  477. package/dist/agent/tools/index.js.map +0 -1
  478. package/dist/agent/tools/kimi-analyze.d.ts +0 -9
  479. package/dist/agent/tools/kimi-analyze.d.ts.map +0 -1
  480. package/dist/agent/tools/kimi-analyze.js +0 -49
  481. package/dist/agent/tools/kimi-analyze.js.map +0 -1
  482. package/dist/agent/tools/manage-memory.d.ts +0 -10
  483. package/dist/agent/tools/manage-memory.d.ts.map +0 -1
  484. package/dist/agent/tools/manage-memory.js +0 -70
  485. package/dist/agent/tools/manage-memory.js.map +0 -1
  486. package/dist/agent/tools/send-imessage.d.ts +0 -19
  487. package/dist/agent/tools/send-imessage.d.ts.map +0 -1
  488. package/dist/agent/tools/send-imessage.js +0 -67
  489. package/dist/agent/tools/send-imessage.js.map +0 -1
  490. package/dist/agent/tools/send-slack.d.ts +0 -21
  491. package/dist/agent/tools/send-slack.d.ts.map +0 -1
  492. package/dist/agent/tools/send-slack.js +0 -63
  493. package/dist/agent/tools/send-slack.js.map +0 -1
  494. package/dist/agent/tools/send-telegram.d.ts +0 -20
  495. package/dist/agent/tools/send-telegram.d.ts.map +0 -1
  496. package/dist/agent/tools/send-telegram.js +0 -58
  497. package/dist/agent/tools/send-telegram.js.map +0 -1
  498. package/dist/agent/tools/vision-analyze.d.ts +0 -11
  499. package/dist/agent/tools/vision-analyze.d.ts.map +0 -1
  500. package/dist/agent/tools/vision-analyze.js +0 -103
  501. package/dist/agent/tools/vision-analyze.js.map +0 -1
  502. package/dist/agent/tools/vision-capture.d.ts +0 -13
  503. package/dist/agent/tools/vision-capture.d.ts.map +0 -1
  504. package/dist/agent/tools/vision-capture.js +0 -87
  505. package/dist/agent/tools/vision-capture.js.map +0 -1
  506. package/dist/agent/tools/web-browse.d.ts +0 -20
  507. package/dist/agent/tools/web-browse.d.ts.map +0 -1
  508. package/dist/agent/tools/web-browse.js +0 -196
  509. package/dist/agent/tools/web-browse.js.map +0 -1
  510. package/dist/agent/types.d.ts +0 -151
  511. package/dist/agent/types.d.ts.map +0 -1
  512. package/dist/agent/types.js +0 -6
  513. package/dist/agent/types.js.map +0 -1
  514. package/dist/bridge/telegram-assistant-bridge.d.ts +0 -10
  515. package/dist/bridge/telegram-assistant-bridge.d.ts.map +0 -1
  516. package/dist/bridge/telegram-assistant-bridge.js +0 -274
  517. package/dist/bridge/telegram-assistant-bridge.js.map +0 -1
  518. package/dist/bridge/telegram-bridge.d.ts +0 -10
  519. package/dist/bridge/telegram-bridge.d.ts.map +0 -1
  520. package/dist/bridge/telegram-bridge.js +0 -154
  521. package/dist/bridge/telegram-bridge.js.map +0 -1
  522. package/dist/cli/commands/autostart.d.ts +0 -19
  523. package/dist/cli/commands/autostart.d.ts.map +0 -1
  524. package/dist/cli/commands/autostart.js +0 -213
  525. package/dist/cli/commands/autostart.js.map +0 -1
  526. package/dist/cli/commands/browser.d.ts +0 -12
  527. package/dist/cli/commands/browser.d.ts.map +0 -1
  528. package/dist/cli/commands/browser.js +0 -50
  529. package/dist/cli/commands/browser.js.map +0 -1
  530. package/dist/cli/commands/daemon.d.ts +0 -16
  531. package/dist/cli/commands/daemon.d.ts.map +0 -1
  532. package/dist/cli/commands/daemon.js +0 -277
  533. package/dist/cli/commands/daemon.js.map +0 -1
  534. package/dist/cli/commands/device.d.ts +0 -9
  535. package/dist/cli/commands/device.d.ts.map +0 -1
  536. package/dist/cli/commands/device.js +0 -56
  537. package/dist/cli/commands/device.js.map +0 -1
  538. package/dist/cli/commands/google.d.ts +0 -12
  539. package/dist/cli/commands/google.d.ts.map +0 -1
  540. package/dist/cli/commands/google.js +0 -83
  541. package/dist/cli/commands/google.js.map +0 -1
  542. package/dist/cli/commands/imessage.d.ts +0 -11
  543. package/dist/cli/commands/imessage.d.ts.map +0 -1
  544. package/dist/cli/commands/imessage.js +0 -85
  545. package/dist/cli/commands/imessage.js.map +0 -1
  546. package/dist/cli/commands/interface.d.ts +0 -15
  547. package/dist/cli/commands/interface.d.ts.map +0 -1
  548. package/dist/cli/commands/interface.js +0 -167
  549. package/dist/cli/commands/interface.js.map +0 -1
  550. package/dist/cli/commands/job.d.ts +0 -14
  551. package/dist/cli/commands/job.d.ts.map +0 -1
  552. package/dist/cli/commands/job.js +0 -170
  553. package/dist/cli/commands/job.js.map +0 -1
  554. package/dist/cli/commands/pc.d.ts +0 -12
  555. package/dist/cli/commands/pc.d.ts.map +0 -1
  556. package/dist/cli/commands/pc.js +0 -75
  557. package/dist/cli/commands/pc.js.map +0 -1
  558. package/dist/cli/commands/policy.d.ts +0 -10
  559. package/dist/cli/commands/policy.d.ts.map +0 -1
  560. package/dist/cli/commands/policy.js +0 -75
  561. package/dist/cli/commands/policy.js.map +0 -1
  562. package/dist/cli/commands/sandbox.d.ts +0 -10
  563. package/dist/cli/commands/sandbox.d.ts.map +0 -1
  564. package/dist/cli/commands/sandbox.js +0 -53
  565. package/dist/cli/commands/sandbox.js.map +0 -1
  566. package/dist/cli/commands/sync.d.ts +0 -9
  567. package/dist/cli/commands/sync.d.ts.map +0 -1
  568. package/dist/cli/commands/sync.js +0 -167
  569. package/dist/cli/commands/sync.js.map +0 -1
  570. package/dist/cli/commands/vision.d.ts +0 -12
  571. package/dist/cli/commands/vision.d.ts.map +0 -1
  572. package/dist/cli/commands/vision.js +0 -74
  573. package/dist/cli/commands/vision.js.map +0 -1
  574. package/dist/cli/commands/voice.d.ts +0 -12
  575. package/dist/cli/commands/voice.d.ts.map +0 -1
  576. package/dist/cli/commands/voice.js +0 -67
  577. package/dist/cli/commands/voice.js.map +0 -1
  578. package/dist/cli/commands/webhook.d.ts +0 -9
  579. package/dist/cli/commands/webhook.d.ts.map +0 -1
  580. package/dist/cli/commands/webhook.js +0 -85
  581. package/dist/cli/commands/webhook.js.map +0 -1
  582. package/dist/cli/hud.d.ts +0 -46
  583. package/dist/cli/hud.d.ts.map +0 -1
  584. package/dist/cli/hud.js +0 -392
  585. package/dist/cli/hud.js.map +0 -1
  586. package/dist/cli/llm/az-commands.d.ts +0 -12
  587. package/dist/cli/llm/az-commands.d.ts.map +0 -1
  588. package/dist/cli/llm/az-commands.js +0 -99
  589. package/dist/cli/llm/az-commands.js.map +0 -1
  590. package/dist/cli/llm/kimi-commands.d.ts +0 -12
  591. package/dist/cli/llm/kimi-commands.d.ts.map +0 -1
  592. package/dist/cli/llm/kimi-commands.js +0 -100
  593. package/dist/cli/llm/kimi-commands.js.map +0 -1
  594. package/dist/cli/llm/nvidia-commands.d.ts +0 -16
  595. package/dist/cli/llm/nvidia-commands.d.ts.map +0 -1
  596. package/dist/cli/llm/nvidia-commands.js +0 -105
  597. package/dist/cli/llm/nvidia-commands.js.map +0 -1
  598. package/dist/cli/llm/priority-commands.d.ts +0 -18
  599. package/dist/cli/llm/priority-commands.d.ts.map +0 -1
  600. package/dist/cli/llm/priority-commands.js +0 -69
  601. package/dist/cli/llm/priority-commands.js.map +0 -1
  602. package/dist/cli/postinstall/npmrc.d.ts +0 -9
  603. package/dist/cli/postinstall/npmrc.d.ts.map +0 -1
  604. package/dist/cli/postinstall/npmrc.js +0 -80
  605. package/dist/cli/postinstall/npmrc.js.map +0 -1
  606. package/dist/daemon/DaemonIPC.d.ts +0 -40
  607. package/dist/daemon/DaemonIPC.d.ts.map +0 -1
  608. package/dist/daemon/DaemonIPC.js +0 -327
  609. package/dist/daemon/DaemonIPC.js.map +0 -1
  610. package/dist/daemon/InterfaceManager.d.ts +0 -62
  611. package/dist/daemon/InterfaceManager.d.ts.map +0 -1
  612. package/dist/daemon/InterfaceManager.js +0 -785
  613. package/dist/daemon/InterfaceManager.js.map +0 -1
  614. package/dist/daemon/SessionPool.d.ts +0 -80
  615. package/dist/daemon/SessionPool.d.ts.map +0 -1
  616. package/dist/daemon/SessionPool.js +0 -414
  617. package/dist/daemon/SessionPool.js.map +0 -1
  618. package/dist/daemon/VibeDaemon.d.ts +0 -69
  619. package/dist/daemon/VibeDaemon.d.ts.map +0 -1
  620. package/dist/daemon/VibeDaemon.js +0 -400
  621. package/dist/daemon/VibeDaemon.js.map +0 -1
  622. package/dist/daemon/daemon.test.d.ts +0 -6
  623. package/dist/daemon/daemon.test.d.ts.map +0 -1
  624. package/dist/daemon/daemon.test.js +0 -348
  625. package/dist/daemon/daemon.test.js.map +0 -1
  626. package/dist/daemon/index.d.ts +0 -10
  627. package/dist/daemon/index.d.ts.map +0 -1
  628. package/dist/daemon/index.js +0 -9
  629. package/dist/daemon/index.js.map +0 -1
  630. package/dist/daemon/pipeline.test.d.ts +0 -6
  631. package/dist/daemon/pipeline.test.d.ts.map +0 -1
  632. package/dist/daemon/pipeline.test.js +0 -258
  633. package/dist/daemon/pipeline.test.js.map +0 -1
  634. package/dist/daemon/preflight.d.ts +0 -23
  635. package/dist/daemon/preflight.d.ts.map +0 -1
  636. package/dist/daemon/preflight.js +0 -204
  637. package/dist/daemon/preflight.js.map +0 -1
  638. package/dist/daemon/preflight.test.d.ts +0 -6
  639. package/dist/daemon/preflight.test.d.ts.map +0 -1
  640. package/dist/daemon/preflight.test.js +0 -88
  641. package/dist/daemon/preflight.test.js.map +0 -1
  642. package/dist/daemon/types.d.ts +0 -117
  643. package/dist/daemon/types.d.ts.map +0 -1
  644. package/dist/daemon/types.js +0 -15
  645. package/dist/daemon/types.js.map +0 -1
  646. package/dist/infra/lib/az/auth.d.ts +0 -15
  647. package/dist/infra/lib/az/auth.d.ts.map +0 -1
  648. package/dist/infra/lib/az/auth.js +0 -67
  649. package/dist/infra/lib/az/auth.js.map +0 -1
  650. package/dist/infra/lib/az/chat.d.ts +0 -26
  651. package/dist/infra/lib/az/chat.d.ts.map +0 -1
  652. package/dist/infra/lib/az/chat.js +0 -116
  653. package/dist/infra/lib/az/chat.js.map +0 -1
  654. package/dist/infra/lib/az/embedding.d.ts +0 -13
  655. package/dist/infra/lib/az/embedding.d.ts.map +0 -1
  656. package/dist/infra/lib/az/embedding.js +0 -60
  657. package/dist/infra/lib/az/embedding.js.map +0 -1
  658. package/dist/infra/lib/az/index.d.ts +0 -9
  659. package/dist/infra/lib/az/index.d.ts.map +0 -1
  660. package/dist/infra/lib/az/index.js +0 -9
  661. package/dist/infra/lib/az/index.js.map +0 -1
  662. package/dist/infra/lib/az/orchestration.d.ts +0 -11
  663. package/dist/infra/lib/az/orchestration.d.ts.map +0 -1
  664. package/dist/infra/lib/az/orchestration.js +0 -24
  665. package/dist/infra/lib/az/orchestration.js.map +0 -1
  666. package/dist/infra/lib/az/types.d.ts +0 -35
  667. package/dist/infra/lib/az/types.d.ts.map +0 -1
  668. package/dist/infra/lib/az/types.js +0 -5
  669. package/dist/infra/lib/az/types.js.map +0 -1
  670. package/dist/infra/lib/az-api.d.ts +0 -5
  671. package/dist/infra/lib/az-api.d.ts.map +0 -1
  672. package/dist/infra/lib/az-api.js +0 -5
  673. package/dist/infra/lib/az-api.js.map +0 -1
  674. package/dist/infra/lib/az-constants.d.ts +0 -44
  675. package/dist/infra/lib/az-constants.d.ts.map +0 -1
  676. package/dist/infra/lib/az-constants.js +0 -58
  677. package/dist/infra/lib/az-constants.js.map +0 -1
  678. package/dist/infra/lib/az-storage.d.ts +0 -12
  679. package/dist/infra/lib/az-storage.d.ts.map +0 -1
  680. package/dist/infra/lib/az-storage.js +0 -59
  681. package/dist/infra/lib/az-storage.js.map +0 -1
  682. package/dist/infra/lib/claude-storage.d.ts +0 -12
  683. package/dist/infra/lib/claude-storage.d.ts.map +0 -1
  684. package/dist/infra/lib/claude-storage.js +0 -59
  685. package/dist/infra/lib/claude-storage.js.map +0 -1
  686. package/dist/infra/lib/gemini-api.d.ts +0 -13
  687. package/dist/infra/lib/gemini-api.d.ts.map +0 -1
  688. package/dist/infra/lib/gemini-api.js +0 -13
  689. package/dist/infra/lib/gemini-api.js.map +0 -1
  690. package/dist/infra/lib/gemini-constants.d.ts +0 -19
  691. package/dist/infra/lib/gemini-constants.d.ts.map +0 -1
  692. package/dist/infra/lib/gemini-constants.js +0 -34
  693. package/dist/infra/lib/gemini-constants.js.map +0 -1
  694. package/dist/infra/lib/gemini-oauth.d.ts +0 -60
  695. package/dist/infra/lib/gemini-oauth.d.ts.map +0 -1
  696. package/dist/infra/lib/gemini-oauth.js +0 -386
  697. package/dist/infra/lib/gemini-oauth.js.map +0 -1
  698. package/dist/infra/lib/gemini-storage.d.ts +0 -64
  699. package/dist/infra/lib/gemini-storage.d.ts.map +0 -1
  700. package/dist/infra/lib/gemini-storage.js +0 -177
  701. package/dist/infra/lib/gemini-storage.js.map +0 -1
  702. package/dist/infra/lib/gpt-api.d.ts +0 -13
  703. package/dist/infra/lib/gpt-api.d.ts.map +0 -1
  704. package/dist/infra/lib/gpt-api.js +0 -13
  705. package/dist/infra/lib/gpt-api.js.map +0 -1
  706. package/dist/infra/lib/gpt-constants.d.ts +0 -12
  707. package/dist/infra/lib/gpt-constants.d.ts.map +0 -1
  708. package/dist/infra/lib/gpt-constants.js +0 -18
  709. package/dist/infra/lib/gpt-constants.js.map +0 -1
  710. package/dist/infra/lib/gpt-oauth.d.ts +0 -66
  711. package/dist/infra/lib/gpt-oauth.d.ts.map +0 -1
  712. package/dist/infra/lib/gpt-oauth.js +0 -389
  713. package/dist/infra/lib/gpt-oauth.js.map +0 -1
  714. package/dist/infra/lib/gpt-storage.d.ts +0 -64
  715. package/dist/infra/lib/gpt-storage.d.ts.map +0 -1
  716. package/dist/infra/lib/gpt-storage.js +0 -180
  717. package/dist/infra/lib/gpt-storage.js.map +0 -1
  718. package/dist/infra/lib/kimi/auth.d.ts +0 -10
  719. package/dist/infra/lib/kimi/auth.d.ts.map +0 -1
  720. package/dist/infra/lib/kimi/auth.js +0 -45
  721. package/dist/infra/lib/kimi/auth.js.map +0 -1
  722. package/dist/infra/lib/kimi/chat.d.ts +0 -26
  723. package/dist/infra/lib/kimi/chat.d.ts.map +0 -1
  724. package/dist/infra/lib/kimi/chat.js +0 -115
  725. package/dist/infra/lib/kimi/chat.js.map +0 -1
  726. package/dist/infra/lib/kimi/index.d.ts +0 -8
  727. package/dist/infra/lib/kimi/index.d.ts.map +0 -1
  728. package/dist/infra/lib/kimi/index.js +0 -8
  729. package/dist/infra/lib/kimi/index.js.map +0 -1
  730. package/dist/infra/lib/kimi/orchestration.d.ts +0 -10
  731. package/dist/infra/lib/kimi/orchestration.d.ts.map +0 -1
  732. package/dist/infra/lib/kimi/orchestration.js +0 -22
  733. package/dist/infra/lib/kimi/orchestration.js.map +0 -1
  734. package/dist/infra/lib/kimi/types.d.ts +0 -30
  735. package/dist/infra/lib/kimi/types.d.ts.map +0 -1
  736. package/dist/infra/lib/kimi/types.js +0 -5
  737. package/dist/infra/lib/kimi/types.js.map +0 -1
  738. package/dist/infra/lib/kimi-api.d.ts +0 -5
  739. package/dist/infra/lib/kimi-api.d.ts.map +0 -1
  740. package/dist/infra/lib/kimi-api.js +0 -5
  741. package/dist/infra/lib/kimi-api.js.map +0 -1
  742. package/dist/infra/lib/kimi-constants.d.ts +0 -27
  743. package/dist/infra/lib/kimi-constants.d.ts.map +0 -1
  744. package/dist/infra/lib/kimi-constants.js +0 -31
  745. package/dist/infra/lib/kimi-constants.js.map +0 -1
  746. package/dist/infra/lib/kimi-storage.d.ts +0 -12
  747. package/dist/infra/lib/kimi-storage.d.ts.map +0 -1
  748. package/dist/infra/lib/kimi-storage.js +0 -59
  749. package/dist/infra/lib/kimi-storage.js.map +0 -1
  750. package/dist/infra/lib/priority-config.d.ts +0 -39
  751. package/dist/infra/lib/priority-config.d.ts.map +0 -1
  752. package/dist/infra/lib/priority-config.js +0 -137
  753. package/dist/infra/lib/priority-config.js.map +0 -1
  754. package/dist/infra/lib/sync/constants.d.ts +0 -21
  755. package/dist/infra/lib/sync/constants.d.ts.map +0 -1
  756. package/dist/infra/lib/sync/constants.js +0 -78
  757. package/dist/infra/lib/sync/constants.js.map +0 -1
  758. package/dist/infra/lib/sync/crypto.d.ts +0 -23
  759. package/dist/infra/lib/sync/crypto.d.ts.map +0 -1
  760. package/dist/infra/lib/sync/crypto.js +0 -55
  761. package/dist/infra/lib/sync/crypto.js.map +0 -1
  762. package/dist/infra/lib/sync/drive.d.ts +0 -22
  763. package/dist/infra/lib/sync/drive.d.ts.map +0 -1
  764. package/dist/infra/lib/sync/drive.js +0 -99
  765. package/dist/infra/lib/sync/drive.js.map +0 -1
  766. package/dist/infra/lib/sync/index.d.ts +0 -9
  767. package/dist/infra/lib/sync/index.d.ts.map +0 -1
  768. package/dist/infra/lib/sync/index.js +0 -9
  769. package/dist/infra/lib/sync/index.js.map +0 -1
  770. package/dist/infra/lib/sync/oauth.d.ts +0 -12
  771. package/dist/infra/lib/sync/oauth.d.ts.map +0 -1
  772. package/dist/infra/lib/sync/oauth.js +0 -157
  773. package/dist/infra/lib/sync/oauth.js.map +0 -1
  774. package/dist/infra/lib/sync/storage.d.ts +0 -21
  775. package/dist/infra/lib/sync/storage.d.ts.map +0 -1
  776. package/dist/infra/lib/sync/storage.js +0 -32
  777. package/dist/infra/lib/sync/storage.js.map +0 -1
  778. package/dist/infra/policy/Evidence.d.ts +0 -30
  779. package/dist/infra/policy/Evidence.d.ts.map +0 -1
  780. package/dist/infra/policy/Evidence.js +0 -134
  781. package/dist/infra/policy/Evidence.js.map +0 -1
  782. package/dist/infra/policy/PolicyEngine.d.ts +0 -34
  783. package/dist/infra/policy/PolicyEngine.d.ts.map +0 -1
  784. package/dist/infra/policy/PolicyEngine.js +0 -219
  785. package/dist/infra/policy/PolicyEngine.js.map +0 -1
  786. package/dist/infra/policy/PolicyStore.d.ts +0 -36
  787. package/dist/infra/policy/PolicyStore.d.ts.map +0 -1
  788. package/dist/infra/policy/PolicyStore.js +0 -160
  789. package/dist/infra/policy/PolicyStore.js.map +0 -1
  790. package/dist/infra/policy/RiskCalculator.d.ts +0 -20
  791. package/dist/infra/policy/RiskCalculator.d.ts.map +0 -1
  792. package/dist/infra/policy/RiskCalculator.js +0 -64
  793. package/dist/infra/policy/RiskCalculator.js.map +0 -1
  794. package/dist/infra/policy/default-policies.d.ts +0 -13
  795. package/dist/infra/policy/default-policies.d.ts.map +0 -1
  796. package/dist/infra/policy/default-policies.js +0 -99
  797. package/dist/infra/policy/default-policies.js.map +0 -1
  798. package/dist/infra/policy/index.d.ts +0 -11
  799. package/dist/infra/policy/index.d.ts.map +0 -1
  800. package/dist/infra/policy/index.js +0 -10
  801. package/dist/infra/policy/index.js.map +0 -1
  802. package/dist/infra/policy/policy.test.d.ts +0 -5
  803. package/dist/infra/policy/policy.test.d.ts.map +0 -1
  804. package/dist/infra/policy/policy.test.js +0 -628
  805. package/dist/infra/policy/policy.test.js.map +0 -1
  806. package/dist/infra/policy/types.d.ts +0 -71
  807. package/dist/infra/policy/types.d.ts.map +0 -1
  808. package/dist/infra/policy/types.js +0 -18
  809. package/dist/infra/policy/types.js.map +0 -1
  810. package/dist/interface/BaseInterface.d.ts +0 -37
  811. package/dist/interface/BaseInterface.d.ts.map +0 -1
  812. package/dist/interface/BaseInterface.js +0 -105
  813. package/dist/interface/BaseInterface.js.map +0 -1
  814. package/dist/interface/ClaudeCodeBridge.d.ts +0 -38
  815. package/dist/interface/ClaudeCodeBridge.d.ts.map +0 -1
  816. package/dist/interface/ClaudeCodeBridge.js +0 -216
  817. package/dist/interface/ClaudeCodeBridge.js.map +0 -1
  818. package/dist/interface/imessage/IMessageBot.d.ts +0 -33
  819. package/dist/interface/imessage/IMessageBot.d.ts.map +0 -1
  820. package/dist/interface/imessage/IMessageBot.js +0 -222
  821. package/dist/interface/imessage/IMessageBot.js.map +0 -1
  822. package/dist/interface/imessage/IMessageFormatter.d.ts +0 -15
  823. package/dist/interface/imessage/IMessageFormatter.d.ts.map +0 -1
  824. package/dist/interface/imessage/IMessageFormatter.js +0 -81
  825. package/dist/interface/imessage/IMessageFormatter.js.map +0 -1
  826. package/dist/interface/imessage/IMessageRpcClient.d.ts +0 -39
  827. package/dist/interface/imessage/IMessageRpcClient.d.ts.map +0 -1
  828. package/dist/interface/imessage/IMessageRpcClient.js +0 -174
  829. package/dist/interface/imessage/IMessageRpcClient.js.map +0 -1
  830. package/dist/interface/imessage/IMessageSender.d.ts +0 -19
  831. package/dist/interface/imessage/IMessageSender.d.ts.map +0 -1
  832. package/dist/interface/imessage/IMessageSender.js +0 -136
  833. package/dist/interface/imessage/IMessageSender.js.map +0 -1
  834. package/dist/interface/imessage/__tests__/IMessageBot.test.d.ts +0 -5
  835. package/dist/interface/imessage/__tests__/IMessageBot.test.d.ts.map +0 -1
  836. package/dist/interface/imessage/__tests__/IMessageBot.test.js +0 -60
  837. package/dist/interface/imessage/__tests__/IMessageBot.test.js.map +0 -1
  838. package/dist/interface/imessage/__tests__/IMessageFormatter.test.d.ts +0 -5
  839. package/dist/interface/imessage/__tests__/IMessageFormatter.test.d.ts.map +0 -1
  840. package/dist/interface/imessage/__tests__/IMessageFormatter.test.js +0 -110
  841. package/dist/interface/imessage/__tests__/IMessageFormatter.test.js.map +0 -1
  842. package/dist/interface/imessage/__tests__/IMessageSender.test.d.ts +0 -5
  843. package/dist/interface/imessage/__tests__/IMessageSender.test.d.ts.map +0 -1
  844. package/dist/interface/imessage/__tests__/IMessageSender.test.js +0 -67
  845. package/dist/interface/imessage/__tests__/IMessageSender.test.js.map +0 -1
  846. package/dist/interface/imessage/index.d.ts +0 -8
  847. package/dist/interface/imessage/index.d.ts.map +0 -1
  848. package/dist/interface/imessage/index.js +0 -8
  849. package/dist/interface/imessage/index.js.map +0 -1
  850. package/dist/interface/index.d.ts +0 -26
  851. package/dist/interface/index.d.ts.map +0 -1
  852. package/dist/interface/index.js +0 -26
  853. package/dist/interface/index.js.map +0 -1
  854. package/dist/interface/interface.test.d.ts +0 -5
  855. package/dist/interface/interface.test.d.ts.map +0 -1
  856. package/dist/interface/interface.test.js +0 -442
  857. package/dist/interface/interface.test.js.map +0 -1
  858. package/dist/interface/slack/SlackBot.d.ts +0 -83
  859. package/dist/interface/slack/SlackBot.d.ts.map +0 -1
  860. package/dist/interface/slack/SlackBot.js +0 -563
  861. package/dist/interface/slack/SlackBot.js.map +0 -1
  862. package/dist/interface/slack/SlackFormatter.d.ts +0 -19
  863. package/dist/interface/slack/SlackFormatter.d.ts.map +0 -1
  864. package/dist/interface/slack/SlackFormatter.js +0 -76
  865. package/dist/interface/slack/SlackFormatter.js.map +0 -1
  866. package/dist/interface/slack/__tests__/SlackBot.test.d.ts +0 -5
  867. package/dist/interface/slack/__tests__/SlackBot.test.d.ts.map +0 -1
  868. package/dist/interface/slack/__tests__/SlackBot.test.js +0 -37
  869. package/dist/interface/slack/__tests__/SlackBot.test.js.map +0 -1
  870. package/dist/interface/slack/__tests__/SlackFormatter.test.d.ts +0 -5
  871. package/dist/interface/slack/__tests__/SlackFormatter.test.d.ts.map +0 -1
  872. package/dist/interface/slack/__tests__/SlackFormatter.test.js +0 -93
  873. package/dist/interface/slack/__tests__/SlackFormatter.test.js.map +0 -1
  874. package/dist/interface/slack/index.d.ts +0 -7
  875. package/dist/interface/slack/index.d.ts.map +0 -1
  876. package/dist/interface/slack/index.js +0 -7
  877. package/dist/interface/slack/index.js.map +0 -1
  878. package/dist/interface/telegram/TelegramBot.d.ts +0 -60
  879. package/dist/interface/telegram/TelegramBot.d.ts.map +0 -1
  880. package/dist/interface/telegram/TelegramBot.js +0 -400
  881. package/dist/interface/telegram/TelegramBot.js.map +0 -1
  882. package/dist/interface/telegram/TelegramFormatter.d.ts +0 -19
  883. package/dist/interface/telegram/TelegramFormatter.d.ts.map +0 -1
  884. package/dist/interface/telegram/TelegramFormatter.js +0 -66
  885. package/dist/interface/telegram/TelegramFormatter.js.map +0 -1
  886. package/dist/interface/types.d.ts +0 -167
  887. package/dist/interface/types.d.ts.map +0 -1
  888. package/dist/interface/types.js +0 -6
  889. package/dist/interface/types.js.map +0 -1
  890. package/dist/interface/utils/MessageCombiner.d.ts +0 -14
  891. package/dist/interface/utils/MessageCombiner.d.ts.map +0 -1
  892. package/dist/interface/utils/MessageCombiner.js +0 -48
  893. package/dist/interface/utils/MessageCombiner.js.map +0 -1
  894. package/dist/interface/vision/AdaptiveFrameSampler.d.ts +0 -44
  895. package/dist/interface/vision/AdaptiveFrameSampler.d.ts.map +0 -1
  896. package/dist/interface/vision/AdaptiveFrameSampler.js +0 -109
  897. package/dist/interface/vision/AdaptiveFrameSampler.js.map +0 -1
  898. package/dist/interface/vision/AdaptiveFrameSampler.test.d.ts +0 -7
  899. package/dist/interface/vision/AdaptiveFrameSampler.test.d.ts.map +0 -1
  900. package/dist/interface/vision/AdaptiveFrameSampler.test.js +0 -113
  901. package/dist/interface/vision/AdaptiveFrameSampler.test.js.map +0 -1
  902. package/dist/interface/vision/GeminiLive.d.ts +0 -37
  903. package/dist/interface/vision/GeminiLive.d.ts.map +0 -1
  904. package/dist/interface/vision/GeminiLive.js +0 -272
  905. package/dist/interface/vision/GeminiLive.js.map +0 -1
  906. package/dist/interface/vision/GeminiLive.test.d.ts +0 -6
  907. package/dist/interface/vision/GeminiLive.test.d.ts.map +0 -1
  908. package/dist/interface/vision/GeminiLive.test.js +0 -40
  909. package/dist/interface/vision/GeminiLive.test.js.map +0 -1
  910. package/dist/interface/vision/GeminiLiveStream.d.ts +0 -55
  911. package/dist/interface/vision/GeminiLiveStream.d.ts.map +0 -1
  912. package/dist/interface/vision/GeminiLiveStream.js +0 -213
  913. package/dist/interface/vision/GeminiLiveStream.js.map +0 -1
  914. package/dist/interface/vision/GeminiVision.d.ts +0 -25
  915. package/dist/interface/vision/GeminiVision.d.ts.map +0 -1
  916. package/dist/interface/vision/GeminiVision.js +0 -202
  917. package/dist/interface/vision/GeminiVision.js.map +0 -1
  918. package/dist/interface/vision/ScreenCapture.d.ts +0 -77
  919. package/dist/interface/vision/ScreenCapture.d.ts.map +0 -1
  920. package/dist/interface/vision/ScreenCapture.js +0 -314
  921. package/dist/interface/vision/ScreenCapture.js.map +0 -1
  922. package/dist/interface/vision/ScreenCaptureEngine.d.ts +0 -55
  923. package/dist/interface/vision/ScreenCaptureEngine.d.ts.map +0 -1
  924. package/dist/interface/vision/ScreenCaptureEngine.js +0 -223
  925. package/dist/interface/vision/ScreenCaptureEngine.js.map +0 -1
  926. package/dist/interface/vision/ScreenCaptureEngine.test.d.ts +0 -8
  927. package/dist/interface/vision/ScreenCaptureEngine.test.d.ts.map +0 -1
  928. package/dist/interface/vision/ScreenCaptureEngine.test.js +0 -175
  929. package/dist/interface/vision/ScreenCaptureEngine.test.js.map +0 -1
  930. package/dist/interface/vision/VisionInterface.d.ts +0 -26
  931. package/dist/interface/vision/VisionInterface.d.ts.map +0 -1
  932. package/dist/interface/vision/VisionInterface.js +0 -105
  933. package/dist/interface/vision/VisionInterface.js.map +0 -1
  934. package/dist/interface/vision/VisionSession.d.ts +0 -66
  935. package/dist/interface/vision/VisionSession.d.ts.map +0 -1
  936. package/dist/interface/vision/VisionSession.js +0 -274
  937. package/dist/interface/vision/VisionSession.js.map +0 -1
  938. package/dist/interface/vision/VisionSession.test.d.ts +0 -7
  939. package/dist/interface/vision/VisionSession.test.d.ts.map +0 -1
  940. package/dist/interface/vision/VisionSession.test.js +0 -218
  941. package/dist/interface/vision/VisionSession.test.js.map +0 -1
  942. package/dist/interface/vision/__tests__/GeminiVision.test.d.ts +0 -5
  943. package/dist/interface/vision/__tests__/GeminiVision.test.d.ts.map +0 -1
  944. package/dist/interface/vision/__tests__/GeminiVision.test.js +0 -92
  945. package/dist/interface/vision/__tests__/GeminiVision.test.js.map +0 -1
  946. package/dist/interface/vision/__tests__/ScreenCapture.test.d.ts +0 -5
  947. package/dist/interface/vision/__tests__/ScreenCapture.test.d.ts.map +0 -1
  948. package/dist/interface/vision/__tests__/ScreenCapture.test.js +0 -24
  949. package/dist/interface/vision/__tests__/ScreenCapture.test.js.map +0 -1
  950. package/dist/interface/vision/__tests__/VisionInterface.test.d.ts +0 -5
  951. package/dist/interface/vision/__tests__/VisionInterface.test.d.ts.map +0 -1
  952. package/dist/interface/vision/__tests__/VisionInterface.test.js +0 -59
  953. package/dist/interface/vision/__tests__/VisionInterface.test.js.map +0 -1
  954. package/dist/interface/vision/index.d.ts +0 -20
  955. package/dist/interface/vision/index.d.ts.map +0 -1
  956. package/dist/interface/vision/index.js +0 -16
  957. package/dist/interface/vision/index.js.map +0 -1
  958. package/dist/interface/vision/types.d.ts +0 -79
  959. package/dist/interface/vision/types.d.ts.map +0 -1
  960. package/dist/interface/vision/types.js +0 -22
  961. package/dist/interface/vision/types.js.map +0 -1
  962. package/dist/interface/voice/STTProvider.d.ts +0 -48
  963. package/dist/interface/voice/STTProvider.d.ts.map +0 -1
  964. package/dist/interface/voice/STTProvider.js +0 -254
  965. package/dist/interface/voice/STTProvider.js.map +0 -1
  966. package/dist/interface/voice/STTProvider.test.d.ts +0 -8
  967. package/dist/interface/voice/STTProvider.test.d.ts.map +0 -1
  968. package/dist/interface/voice/STTProvider.test.js +0 -144
  969. package/dist/interface/voice/STTProvider.test.js.map +0 -1
  970. package/dist/interface/voice/TTSProvider.d.ts +0 -44
  971. package/dist/interface/voice/TTSProvider.d.ts.map +0 -1
  972. package/dist/interface/voice/TTSProvider.js +0 -252
  973. package/dist/interface/voice/TTSProvider.js.map +0 -1
  974. package/dist/interface/voice/TTSProvider.test.d.ts +0 -8
  975. package/dist/interface/voice/TTSProvider.test.d.ts.map +0 -1
  976. package/dist/interface/voice/TTSProvider.test.js +0 -143
  977. package/dist/interface/voice/TTSProvider.test.js.map +0 -1
  978. package/dist/interface/voice/VADProcessor.d.ts +0 -34
  979. package/dist/interface/voice/VADProcessor.d.ts.map +0 -1
  980. package/dist/interface/voice/VADProcessor.js +0 -116
  981. package/dist/interface/voice/VADProcessor.js.map +0 -1
  982. package/dist/interface/voice/VADProcessor.test.d.ts +0 -8
  983. package/dist/interface/voice/VADProcessor.test.d.ts.map +0 -1
  984. package/dist/interface/voice/VADProcessor.test.js +0 -159
  985. package/dist/interface/voice/VADProcessor.test.js.map +0 -1
  986. package/dist/interface/voice/VoiceSession.d.ts +0 -77
  987. package/dist/interface/voice/VoiceSession.d.ts.map +0 -1
  988. package/dist/interface/voice/VoiceSession.js +0 -249
  989. package/dist/interface/voice/VoiceSession.js.map +0 -1
  990. package/dist/interface/voice/VoiceSession.test.d.ts +0 -8
  991. package/dist/interface/voice/VoiceSession.test.d.ts.map +0 -1
  992. package/dist/interface/voice/VoiceSession.test.js +0 -260
  993. package/dist/interface/voice/VoiceSession.test.js.map +0 -1
  994. package/dist/interface/voice/VoiceWebSocket.d.ts +0 -52
  995. package/dist/interface/voice/VoiceWebSocket.d.ts.map +0 -1
  996. package/dist/interface/voice/VoiceWebSocket.js +0 -165
  997. package/dist/interface/voice/VoiceWebSocket.js.map +0 -1
  998. package/dist/interface/voice/types.d.ts +0 -144
  999. package/dist/interface/voice/types.d.ts.map +0 -1
  1000. package/dist/interface/voice/types.js +0 -23
  1001. package/dist/interface/voice/types.js.map +0 -1
  1002. package/dist/interface/voice/types.test.d.ts +0 -8
  1003. package/dist/interface/voice/types.test.d.ts.map +0 -1
  1004. package/dist/interface/voice/types.test.js +0 -90
  1005. package/dist/interface/voice/types.test.js.map +0 -1
  1006. package/dist/interface/web/WebServer.d.ts +0 -80
  1007. package/dist/interface/web/WebServer.d.ts.map +0 -1
  1008. package/dist/interface/web/WebServer.js +0 -999
  1009. package/dist/interface/web/WebServer.js.map +0 -1
  1010. package/dist/interface/web/__tests__/WebServer.test.d.ts +0 -5
  1011. package/dist/interface/web/__tests__/WebServer.test.d.ts.map +0 -1
  1012. package/dist/interface/web/__tests__/WebServer.test.js +0 -345
  1013. package/dist/interface/web/__tests__/WebServer.test.js.map +0 -1
  1014. package/dist/interface/web/types.d.ts +0 -109
  1015. package/dist/interface/web/types.d.ts.map +0 -1
  1016. package/dist/interface/web/types.js +0 -67
  1017. package/dist/interface/web/types.js.map +0 -1
  1018. package/dist/interface/webhook/WebhookHandler.d.ts +0 -45
  1019. package/dist/interface/webhook/WebhookHandler.d.ts.map +0 -1
  1020. package/dist/interface/webhook/WebhookHandler.js +0 -273
  1021. package/dist/interface/webhook/WebhookHandler.js.map +0 -1
  1022. package/dist/job/ActionPlanGenerator.d.ts +0 -21
  1023. package/dist/job/ActionPlanGenerator.d.ts.map +0 -1
  1024. package/dist/job/ActionPlanGenerator.js +0 -153
  1025. package/dist/job/ActionPlanGenerator.js.map +0 -1
  1026. package/dist/job/AgentJobManager.d.ts +0 -46
  1027. package/dist/job/AgentJobManager.d.ts.map +0 -1
  1028. package/dist/job/AgentJobManager.js +0 -213
  1029. package/dist/job/AgentJobManager.js.map +0 -1
  1030. package/dist/job/AgentJobManager.test.d.ts +0 -6
  1031. package/dist/job/AgentJobManager.test.d.ts.map +0 -1
  1032. package/dist/job/AgentJobManager.test.js +0 -197
  1033. package/dist/job/AgentJobManager.test.js.map +0 -1
  1034. package/dist/job/IntentParser.d.ts +0 -21
  1035. package/dist/job/IntentParser.d.ts.map +0 -1
  1036. package/dist/job/IntentParser.js +0 -142
  1037. package/dist/job/IntentParser.js.map +0 -1
  1038. package/dist/job/JobManager.d.ts +0 -54
  1039. package/dist/job/JobManager.d.ts.map +0 -1
  1040. package/dist/job/JobManager.js +0 -220
  1041. package/dist/job/JobManager.js.map +0 -1
  1042. package/dist/job/JobQueue.d.ts +0 -41
  1043. package/dist/job/JobQueue.d.ts.map +0 -1
  1044. package/dist/job/JobQueue.js +0 -153
  1045. package/dist/job/JobQueue.js.map +0 -1
  1046. package/dist/job/JobStore.d.ts +0 -36
  1047. package/dist/job/JobStore.d.ts.map +0 -1
  1048. package/dist/job/JobStore.js +0 -260
  1049. package/dist/job/JobStore.js.map +0 -1
  1050. package/dist/job/ProgressReporter.d.ts +0 -32
  1051. package/dist/job/ProgressReporter.d.ts.map +0 -1
  1052. package/dist/job/ProgressReporter.js +0 -82
  1053. package/dist/job/ProgressReporter.js.map +0 -1
  1054. package/dist/job/agent-job-types.d.ts +0 -32
  1055. package/dist/job/agent-job-types.d.ts.map +0 -1
  1056. package/dist/job/agent-job-types.js +0 -6
  1057. package/dist/job/agent-job-types.js.map +0 -1
  1058. package/dist/job/index.d.ts +0 -15
  1059. package/dist/job/index.d.ts.map +0 -1
  1060. package/dist/job/index.js +0 -15
  1061. package/dist/job/index.js.map +0 -1
  1062. package/dist/job/job.test.d.ts +0 -5
  1063. package/dist/job/job.test.d.ts.map +0 -1
  1064. package/dist/job/job.test.js +0 -303
  1065. package/dist/job/job.test.js.map +0 -1
  1066. package/dist/job/types.d.ts +0 -82
  1067. package/dist/job/types.d.ts.map +0 -1
  1068. package/dist/job/types.js +0 -40
  1069. package/dist/job/types.js.map +0 -1
  1070. package/dist/orchestrator/AgentAnnouncer.d.ts +0 -64
  1071. package/dist/orchestrator/AgentAnnouncer.d.ts.map +0 -1
  1072. package/dist/orchestrator/AgentAnnouncer.js +0 -127
  1073. package/dist/orchestrator/AgentAnnouncer.js.map +0 -1
  1074. package/dist/orchestrator/AgentAnnouncer.test.d.ts +0 -5
  1075. package/dist/orchestrator/AgentAnnouncer.test.d.ts.map +0 -1
  1076. package/dist/orchestrator/AgentAnnouncer.test.js +0 -119
  1077. package/dist/orchestrator/AgentAnnouncer.test.js.map +0 -1
  1078. package/dist/orchestrator/AgentExecutor.d.ts +0 -23
  1079. package/dist/orchestrator/AgentExecutor.d.ts.map +0 -1
  1080. package/dist/orchestrator/AgentExecutor.js +0 -231
  1081. package/dist/orchestrator/AgentExecutor.js.map +0 -1
  1082. package/dist/orchestrator/AgentManager.d.ts +0 -73
  1083. package/dist/orchestrator/AgentManager.d.ts.map +0 -1
  1084. package/dist/orchestrator/AgentManager.js +0 -184
  1085. package/dist/orchestrator/AgentManager.js.map +0 -1
  1086. package/dist/orchestrator/AgentRegistry.d.ts +0 -76
  1087. package/dist/orchestrator/AgentRegistry.d.ts.map +0 -1
  1088. package/dist/orchestrator/AgentRegistry.js +0 -217
  1089. package/dist/orchestrator/AgentRegistry.js.map +0 -1
  1090. package/dist/orchestrator/AgentRegistry.test.d.ts +0 -5
  1091. package/dist/orchestrator/AgentRegistry.test.d.ts.map +0 -1
  1092. package/dist/orchestrator/AgentRegistry.test.js +0 -122
  1093. package/dist/orchestrator/AgentRegistry.test.js.map +0 -1
  1094. package/dist/orchestrator/BackgroundManager.d.ts +0 -114
  1095. package/dist/orchestrator/BackgroundManager.d.ts.map +0 -1
  1096. package/dist/orchestrator/BackgroundManager.js +0 -517
  1097. package/dist/orchestrator/BackgroundManager.js.map +0 -1
  1098. package/dist/orchestrator/BackgroundManager.test.d.ts +0 -6
  1099. package/dist/orchestrator/BackgroundManager.test.d.ts.map +0 -1
  1100. package/dist/orchestrator/BackgroundManager.test.js +0 -162
  1101. package/dist/orchestrator/BackgroundManager.test.js.map +0 -1
  1102. package/dist/orchestrator/CheckpointManager.d.ts +0 -54
  1103. package/dist/orchestrator/CheckpointManager.d.ts.map +0 -1
  1104. package/dist/orchestrator/CheckpointManager.js +0 -121
  1105. package/dist/orchestrator/CheckpointManager.js.map +0 -1
  1106. package/dist/orchestrator/LLMCluster.d.ts +0 -91
  1107. package/dist/orchestrator/LLMCluster.d.ts.map +0 -1
  1108. package/dist/orchestrator/LLMCluster.js +0 -124
  1109. package/dist/orchestrator/LLMCluster.js.map +0 -1
  1110. package/dist/orchestrator/MultiLlmResearch.d.ts +0 -27
  1111. package/dist/orchestrator/MultiLlmResearch.d.ts.map +0 -1
  1112. package/dist/orchestrator/MultiLlmResearch.js +0 -145
  1113. package/dist/orchestrator/MultiLlmResearch.js.map +0 -1
  1114. package/dist/orchestrator/PhasePipeline.d.ts +0 -123
  1115. package/dist/orchestrator/PhasePipeline.d.ts.map +0 -1
  1116. package/dist/orchestrator/PhasePipeline.js +0 -382
  1117. package/dist/orchestrator/PhasePipeline.js.map +0 -1
  1118. package/dist/orchestrator/PhaseResultStore.d.ts +0 -39
  1119. package/dist/orchestrator/PhaseResultStore.d.ts.map +0 -1
  1120. package/dist/orchestrator/PhaseResultStore.js +0 -151
  1121. package/dist/orchestrator/PhaseResultStore.js.map +0 -1
  1122. package/dist/orchestrator/SessionStore.d.ts +0 -41
  1123. package/dist/orchestrator/SessionStore.d.ts.map +0 -1
  1124. package/dist/orchestrator/SessionStore.js +0 -117
  1125. package/dist/orchestrator/SessionStore.js.map +0 -1
  1126. package/dist/orchestrator/SmartRouter.d.ts +0 -77
  1127. package/dist/orchestrator/SmartRouter.d.ts.map +0 -1
  1128. package/dist/orchestrator/SmartRouter.js +0 -305
  1129. package/dist/orchestrator/SmartRouter.js.map +0 -1
  1130. package/dist/orchestrator/SwarmOrchestrator.d.ts +0 -144
  1131. package/dist/orchestrator/SwarmOrchestrator.d.ts.map +0 -1
  1132. package/dist/orchestrator/SwarmOrchestrator.js +0 -361
  1133. package/dist/orchestrator/SwarmOrchestrator.js.map +0 -1
  1134. package/dist/orchestrator/SwarmOrchestrator.test.d.ts +0 -5
  1135. package/dist/orchestrator/SwarmOrchestrator.test.d.ts.map +0 -1
  1136. package/dist/orchestrator/SwarmOrchestrator.test.js +0 -95
  1137. package/dist/orchestrator/SwarmOrchestrator.test.js.map +0 -1
  1138. package/dist/orchestrator/agentDiscovery.d.ts +0 -18
  1139. package/dist/orchestrator/agentDiscovery.d.ts.map +0 -1
  1140. package/dist/orchestrator/agentDiscovery.js +0 -175
  1141. package/dist/orchestrator/agentDiscovery.js.map +0 -1
  1142. package/dist/orchestrator/backgroundAgent.d.ts +0 -15
  1143. package/dist/orchestrator/backgroundAgent.d.ts.map +0 -1
  1144. package/dist/orchestrator/backgroundAgent.js +0 -16
  1145. package/dist/orchestrator/backgroundAgent.js.map +0 -1
  1146. package/dist/orchestrator/index.d.ts +0 -213
  1147. package/dist/orchestrator/index.d.ts.map +0 -1
  1148. package/dist/orchestrator/index.js +0 -391
  1149. package/dist/orchestrator/index.js.map +0 -1
  1150. package/dist/orchestrator/orchestrator.d.ts +0 -63
  1151. package/dist/orchestrator/orchestrator.d.ts.map +0 -1
  1152. package/dist/orchestrator/orchestrator.js +0 -217
  1153. package/dist/orchestrator/orchestrator.js.map +0 -1
  1154. package/dist/orchestrator/parallelResearch.d.ts +0 -30
  1155. package/dist/orchestrator/parallelResearch.d.ts.map +0 -1
  1156. package/dist/orchestrator/parallelResearch.js +0 -247
  1157. package/dist/orchestrator/parallelResearch.js.map +0 -1
  1158. package/dist/orchestrator/types.d.ts +0 -185
  1159. package/dist/orchestrator/types.d.ts.map +0 -1
  1160. package/dist/orchestrator/types.js +0 -21
  1161. package/dist/orchestrator/types.js.map +0 -1
  1162. package/dist/pc/CommandDispatcher.d.ts +0 -31
  1163. package/dist/pc/CommandDispatcher.d.ts.map +0 -1
  1164. package/dist/pc/CommandDispatcher.js +0 -132
  1165. package/dist/pc/CommandDispatcher.js.map +0 -1
  1166. package/dist/pc/CommandDispatcher.test.d.ts +0 -2
  1167. package/dist/pc/CommandDispatcher.test.d.ts.map +0 -1
  1168. package/dist/pc/CommandDispatcher.test.js +0 -360
  1169. package/dist/pc/CommandDispatcher.test.js.map +0 -1
  1170. package/dist/pc/ModuleRegistry.d.ts +0 -40
  1171. package/dist/pc/ModuleRegistry.d.ts.map +0 -1
  1172. package/dist/pc/ModuleRegistry.js +0 -163
  1173. package/dist/pc/ModuleRegistry.js.map +0 -1
  1174. package/dist/pc/ResultFormatter.d.ts +0 -27
  1175. package/dist/pc/ResultFormatter.d.ts.map +0 -1
  1176. package/dist/pc/ResultFormatter.js +0 -128
  1177. package/dist/pc/ResultFormatter.js.map +0 -1
  1178. package/dist/pc/ResultFormatter.test.d.ts +0 -2
  1179. package/dist/pc/ResultFormatter.test.d.ts.map +0 -1
  1180. package/dist/pc/ResultFormatter.test.js +0 -115
  1181. package/dist/pc/ResultFormatter.test.js.map +0 -1
  1182. package/dist/pc/SecurityGate.d.ts +0 -53
  1183. package/dist/pc/SecurityGate.d.ts.map +0 -1
  1184. package/dist/pc/SecurityGate.js +0 -142
  1185. package/dist/pc/SecurityGate.js.map +0 -1
  1186. package/dist/pc/SecurityGate.test.d.ts +0 -2
  1187. package/dist/pc/SecurityGate.test.d.ts.map +0 -1
  1188. package/dist/pc/SecurityGate.test.js +0 -160
  1189. package/dist/pc/SecurityGate.test.js.map +0 -1
  1190. package/dist/pc/SessionContext.d.ts +0 -31
  1191. package/dist/pc/SessionContext.d.ts.map +0 -1
  1192. package/dist/pc/SessionContext.js +0 -108
  1193. package/dist/pc/SessionContext.js.map +0 -1
  1194. package/dist/pc/browser/BrowserActions.d.ts +0 -22
  1195. package/dist/pc/browser/BrowserActions.d.ts.map +0 -1
  1196. package/dist/pc/browser/BrowserActions.js +0 -223
  1197. package/dist/pc/browser/BrowserActions.js.map +0 -1
  1198. package/dist/pc/browser/BrowserActions.test.d.ts +0 -7
  1199. package/dist/pc/browser/BrowserActions.test.d.ts.map +0 -1
  1200. package/dist/pc/browser/BrowserActions.test.js +0 -150
  1201. package/dist/pc/browser/BrowserActions.test.js.map +0 -1
  1202. package/dist/pc/browser/BrowserService.d.ts +0 -66
  1203. package/dist/pc/browser/BrowserService.d.ts.map +0 -1
  1204. package/dist/pc/browser/BrowserService.js +0 -319
  1205. package/dist/pc/browser/BrowserService.js.map +0 -1
  1206. package/dist/pc/browser/BrowserService.test.d.ts +0 -7
  1207. package/dist/pc/browser/BrowserService.test.d.ts.map +0 -1
  1208. package/dist/pc/browser/BrowserService.test.js +0 -160
  1209. package/dist/pc/browser/BrowserService.test.js.map +0 -1
  1210. package/dist/pc/browser/RefLocator.d.ts +0 -39
  1211. package/dist/pc/browser/RefLocator.d.ts.map +0 -1
  1212. package/dist/pc/browser/RefLocator.js +0 -88
  1213. package/dist/pc/browser/RefLocator.js.map +0 -1
  1214. package/dist/pc/browser/RoleSnapshotManager.d.ts +0 -22
  1215. package/dist/pc/browser/RoleSnapshotManager.d.ts.map +0 -1
  1216. package/dist/pc/browser/RoleSnapshotManager.js +0 -143
  1217. package/dist/pc/browser/RoleSnapshotManager.js.map +0 -1
  1218. package/dist/pc/browser/RoleSnapshotManager.test.d.ts +0 -7
  1219. package/dist/pc/browser/RoleSnapshotManager.test.d.ts.map +0 -1
  1220. package/dist/pc/browser/RoleSnapshotManager.test.js +0 -152
  1221. package/dist/pc/browser/RoleSnapshotManager.test.js.map +0 -1
  1222. package/dist/pc/browser/Security.test.d.ts +0 -7
  1223. package/dist/pc/browser/Security.test.d.ts.map +0 -1
  1224. package/dist/pc/browser/Security.test.js +0 -171
  1225. package/dist/pc/browser/Security.test.js.map +0 -1
  1226. package/dist/pc/browser/types.d.ts +0 -142
  1227. package/dist/pc/browser/types.d.ts.map +0 -1
  1228. package/dist/pc/browser/types.js +0 -60
  1229. package/dist/pc/browser/types.js.map +0 -1
  1230. package/dist/pc/google/OAuthFlow.d.ts +0 -58
  1231. package/dist/pc/google/OAuthFlow.d.ts.map +0 -1
  1232. package/dist/pc/google/OAuthFlow.js +0 -322
  1233. package/dist/pc/google/OAuthFlow.js.map +0 -1
  1234. package/dist/pc/google/OAuthFlow.test.d.ts +0 -7
  1235. package/dist/pc/google/OAuthFlow.test.d.ts.map +0 -1
  1236. package/dist/pc/google/OAuthFlow.test.js +0 -178
  1237. package/dist/pc/google/OAuthFlow.test.js.map +0 -1
  1238. package/dist/pc/google/ScopeManager.d.ts +0 -28
  1239. package/dist/pc/google/ScopeManager.d.ts.map +0 -1
  1240. package/dist/pc/google/ScopeManager.js +0 -75
  1241. package/dist/pc/google/ScopeManager.js.map +0 -1
  1242. package/dist/pc/google/TokenStore.d.ts +0 -49
  1243. package/dist/pc/google/TokenStore.d.ts.map +0 -1
  1244. package/dist/pc/google/TokenStore.js +0 -324
  1245. package/dist/pc/google/TokenStore.js.map +0 -1
  1246. package/dist/pc/google/TokenStore.test.d.ts +0 -7
  1247. package/dist/pc/google/TokenStore.test.d.ts.map +0 -1
  1248. package/dist/pc/google/TokenStore.test.js +0 -134
  1249. package/dist/pc/google/TokenStore.test.js.map +0 -1
  1250. package/dist/pc/google/services/CalendarService.d.ts +0 -45
  1251. package/dist/pc/google/services/CalendarService.d.ts.map +0 -1
  1252. package/dist/pc/google/services/CalendarService.js +0 -148
  1253. package/dist/pc/google/services/CalendarService.js.map +0 -1
  1254. package/dist/pc/google/services/DriveService.d.ts +0 -33
  1255. package/dist/pc/google/services/DriveService.d.ts.map +0 -1
  1256. package/dist/pc/google/services/DriveService.js +0 -199
  1257. package/dist/pc/google/services/DriveService.js.map +0 -1
  1258. package/dist/pc/google/services/GmailService.d.ts +0 -50
  1259. package/dist/pc/google/services/GmailService.d.ts.map +0 -1
  1260. package/dist/pc/google/services/GmailService.js +0 -177
  1261. package/dist/pc/google/services/GmailService.js.map +0 -1
  1262. package/dist/pc/google/services/Services.test.d.ts +0 -8
  1263. package/dist/pc/google/services/Services.test.d.ts.map +0 -1
  1264. package/dist/pc/google/services/Services.test.js +0 -148
  1265. package/dist/pc/google/services/Services.test.js.map +0 -1
  1266. package/dist/pc/google/services/SheetsService.d.ts +0 -27
  1267. package/dist/pc/google/services/SheetsService.d.ts.map +0 -1
  1268. package/dist/pc/google/services/SheetsService.js +0 -107
  1269. package/dist/pc/google/services/SheetsService.js.map +0 -1
  1270. package/dist/pc/google/types.d.ts +0 -97
  1271. package/dist/pc/google/types.d.ts.map +0 -1
  1272. package/dist/pc/google/types.js +0 -39
  1273. package/dist/pc/google/types.js.map +0 -1
  1274. package/dist/pc/google/types.test.d.ts +0 -8
  1275. package/dist/pc/google/types.test.d.ts.map +0 -1
  1276. package/dist/pc/google/types.test.js +0 -131
  1277. package/dist/pc/google/types.test.js.map +0 -1
  1278. package/dist/pc/sandbox/ContainerConfig.d.ts +0 -24
  1279. package/dist/pc/sandbox/ContainerConfig.d.ts.map +0 -1
  1280. package/dist/pc/sandbox/ContainerConfig.js +0 -103
  1281. package/dist/pc/sandbox/ContainerConfig.js.map +0 -1
  1282. package/dist/pc/sandbox/ContainerManager.d.ts +0 -31
  1283. package/dist/pc/sandbox/ContainerManager.d.ts.map +0 -1
  1284. package/dist/pc/sandbox/ContainerManager.js +0 -245
  1285. package/dist/pc/sandbox/ContainerManager.js.map +0 -1
  1286. package/dist/pc/sandbox/ContainerManager.test.d.ts +0 -2
  1287. package/dist/pc/sandbox/ContainerManager.test.d.ts.map +0 -1
  1288. package/dist/pc/sandbox/ContainerManager.test.js +0 -249
  1289. package/dist/pc/sandbox/ContainerManager.test.js.map +0 -1
  1290. package/dist/pc/sandbox/ExecAllowlist.d.ts +0 -35
  1291. package/dist/pc/sandbox/ExecAllowlist.d.ts.map +0 -1
  1292. package/dist/pc/sandbox/ExecAllowlist.js +0 -148
  1293. package/dist/pc/sandbox/ExecAllowlist.js.map +0 -1
  1294. package/dist/pc/sandbox/ExecAllowlist.test.d.ts +0 -2
  1295. package/dist/pc/sandbox/ExecAllowlist.test.d.ts.map +0 -1
  1296. package/dist/pc/sandbox/ExecAllowlist.test.js +0 -210
  1297. package/dist/pc/sandbox/ExecAllowlist.test.js.map +0 -1
  1298. package/dist/pc/sandbox/SandboxBrowser.d.ts +0 -29
  1299. package/dist/pc/sandbox/SandboxBrowser.d.ts.map +0 -1
  1300. package/dist/pc/sandbox/SandboxBrowser.js +0 -72
  1301. package/dist/pc/sandbox/SandboxBrowser.js.map +0 -1
  1302. package/dist/pc/sandbox/ToolPolicy.d.ts +0 -24
  1303. package/dist/pc/sandbox/ToolPolicy.d.ts.map +0 -1
  1304. package/dist/pc/sandbox/ToolPolicy.js +0 -127
  1305. package/dist/pc/sandbox/ToolPolicy.js.map +0 -1
  1306. package/dist/pc/sandbox/ToolPolicy.test.d.ts +0 -2
  1307. package/dist/pc/sandbox/ToolPolicy.test.d.ts.map +0 -1
  1308. package/dist/pc/sandbox/ToolPolicy.test.js +0 -189
  1309. package/dist/pc/sandbox/ToolPolicy.test.js.map +0 -1
  1310. package/dist/pc/sandbox/types.d.ts +0 -109
  1311. package/dist/pc/sandbox/types.d.ts.map +0 -1
  1312. package/dist/pc/sandbox/types.js +0 -26
  1313. package/dist/pc/sandbox/types.js.map +0 -1
  1314. package/dist/pc/types.d.ts +0 -84
  1315. package/dist/pc/types.d.ts.map +0 -1
  1316. package/dist/pc/types.js +0 -7
  1317. package/dist/pc/types.js.map +0 -1
  1318. package/dist/policy/Evidence.d.ts +0 -30
  1319. package/dist/policy/Evidence.d.ts.map +0 -1
  1320. package/dist/policy/Evidence.js +0 -134
  1321. package/dist/policy/Evidence.js.map +0 -1
  1322. package/dist/policy/PolicyEngine.d.ts +0 -34
  1323. package/dist/policy/PolicyEngine.d.ts.map +0 -1
  1324. package/dist/policy/PolicyEngine.js +0 -219
  1325. package/dist/policy/PolicyEngine.js.map +0 -1
  1326. package/dist/policy/PolicyStore.d.ts +0 -36
  1327. package/dist/policy/PolicyStore.d.ts.map +0 -1
  1328. package/dist/policy/PolicyStore.js +0 -160
  1329. package/dist/policy/PolicyStore.js.map +0 -1
  1330. package/dist/policy/RiskCalculator.d.ts +0 -20
  1331. package/dist/policy/RiskCalculator.d.ts.map +0 -1
  1332. package/dist/policy/RiskCalculator.js +0 -64
  1333. package/dist/policy/RiskCalculator.js.map +0 -1
  1334. package/dist/policy/default-policies.d.ts +0 -13
  1335. package/dist/policy/default-policies.d.ts.map +0 -1
  1336. package/dist/policy/default-policies.js +0 -99
  1337. package/dist/policy/default-policies.js.map +0 -1
  1338. package/dist/policy/index.d.ts +0 -11
  1339. package/dist/policy/index.d.ts.map +0 -1
  1340. package/dist/policy/index.js +0 -10
  1341. package/dist/policy/index.js.map +0 -1
  1342. package/dist/policy/policy.test.d.ts +0 -5
  1343. package/dist/policy/policy.test.d.ts.map +0 -1
  1344. package/dist/policy/policy.test.js +0 -628
  1345. package/dist/policy/policy.test.js.map +0 -1
  1346. package/dist/policy/types.d.ts +0 -71
  1347. package/dist/policy/types.d.ts.map +0 -1
  1348. package/dist/policy/types.js +0 -18
  1349. package/dist/policy/types.js.map +0 -1
  1350. package/dist/router/ModelARouter.d.ts +0 -79
  1351. package/dist/router/ModelARouter.d.ts.map +0 -1
  1352. package/dist/router/ModelARouter.js +0 -325
  1353. package/dist/router/ModelARouter.js.map +0 -1
  1354. package/dist/router/ModelARouter.test.d.ts +0 -6
  1355. package/dist/router/ModelARouter.test.d.ts.map +0 -1
  1356. package/dist/router/ModelARouter.test.js +0 -100
  1357. package/dist/router/ModelARouter.test.js.map +0 -1
  1358. package/dist/router/MultiChannelRouter.d.ts +0 -54
  1359. package/dist/router/MultiChannelRouter.d.ts.map +0 -1
  1360. package/dist/router/MultiChannelRouter.js +0 -138
  1361. package/dist/router/MultiChannelRouter.js.map +0 -1
  1362. package/dist/router/RouteRegistry.d.ts +0 -23
  1363. package/dist/router/RouteRegistry.d.ts.map +0 -1
  1364. package/dist/router/RouteRegistry.js +0 -42
  1365. package/dist/router/RouteRegistry.js.map +0 -1
  1366. package/dist/router/browser/BrowserAgent.d.ts +0 -30
  1367. package/dist/router/browser/BrowserAgent.d.ts.map +0 -1
  1368. package/dist/router/browser/BrowserAgent.js +0 -232
  1369. package/dist/router/browser/BrowserAgent.js.map +0 -1
  1370. package/dist/router/browser/BrowserManager.d.ts +0 -36
  1371. package/dist/router/browser/BrowserManager.d.ts.map +0 -1
  1372. package/dist/router/browser/BrowserManager.js +0 -106
  1373. package/dist/router/browser/BrowserManager.js.map +0 -1
  1374. package/dist/router/browser/BrowserPool.d.ts +0 -37
  1375. package/dist/router/browser/BrowserPool.d.ts.map +0 -1
  1376. package/dist/router/browser/BrowserPool.js +0 -114
  1377. package/dist/router/browser/BrowserPool.js.map +0 -1
  1378. package/dist/router/handlers/GitOpsHandler.d.ts +0 -24
  1379. package/dist/router/handlers/GitOpsHandler.d.ts.map +0 -1
  1380. package/dist/router/handlers/GitOpsHandler.js +0 -66
  1381. package/dist/router/handlers/GitOpsHandler.js.map +0 -1
  1382. package/dist/router/index.d.ts +0 -22
  1383. package/dist/router/index.d.ts.map +0 -1
  1384. package/dist/router/index.js +0 -29
  1385. package/dist/router/index.js.map +0 -1
  1386. package/dist/router/index.test.d.ts +0 -2
  1387. package/dist/router/index.test.d.ts.map +0 -1
  1388. package/dist/router/index.test.js +0 -78
  1389. package/dist/router/index.test.js.map +0 -1
  1390. package/dist/router/notifications/NotificationManager.d.ts +0 -37
  1391. package/dist/router/notifications/NotificationManager.d.ts.map +0 -1
  1392. package/dist/router/notifications/NotificationManager.js +0 -118
  1393. package/dist/router/notifications/NotificationManager.js.map +0 -1
  1394. package/dist/router/planner/TaskExecutor.d.ts +0 -48
  1395. package/dist/router/planner/TaskExecutor.d.ts.map +0 -1
  1396. package/dist/router/planner/TaskExecutor.js +0 -160
  1397. package/dist/router/planner/TaskExecutor.js.map +0 -1
  1398. package/dist/router/planner/TaskExecutor.test.d.ts +0 -6
  1399. package/dist/router/planner/TaskExecutor.test.d.ts.map +0 -1
  1400. package/dist/router/planner/TaskExecutor.test.js +0 -121
  1401. package/dist/router/planner/TaskExecutor.test.js.map +0 -1
  1402. package/dist/router/planner/TaskPlanner.d.ts +0 -37
  1403. package/dist/router/planner/TaskPlanner.d.ts.map +0 -1
  1404. package/dist/router/planner/TaskPlanner.js +0 -176
  1405. package/dist/router/planner/TaskPlanner.js.map +0 -1
  1406. package/dist/router/planner/TaskPlanner.test.d.ts +0 -6
  1407. package/dist/router/planner/TaskPlanner.test.d.ts.map +0 -1
  1408. package/dist/router/planner/TaskPlanner.test.js +0 -119
  1409. package/dist/router/planner/TaskPlanner.test.js.map +0 -1
  1410. package/dist/router/qa/TelegramQABridge.d.ts +0 -37
  1411. package/dist/router/qa/TelegramQABridge.d.ts.map +0 -1
  1412. package/dist/router/qa/TelegramQABridge.js +0 -147
  1413. package/dist/router/qa/TelegramQABridge.js.map +0 -1
  1414. package/dist/router/qa/TelegramQABridge.test.d.ts +0 -6
  1415. package/dist/router/qa/TelegramQABridge.test.d.ts.map +0 -1
  1416. package/dist/router/qa/TelegramQABridge.test.js +0 -143
  1417. package/dist/router/qa/TelegramQABridge.test.js.map +0 -1
  1418. package/dist/router/resolvers/RepoResolver.d.ts +0 -29
  1419. package/dist/router/resolvers/RepoResolver.d.ts.map +0 -1
  1420. package/dist/router/resolvers/RepoResolver.js +0 -105
  1421. package/dist/router/resolvers/RepoResolver.js.map +0 -1
  1422. package/dist/router/resolvers/RepoResolver.test.d.ts +0 -6
  1423. package/dist/router/resolvers/RepoResolver.test.d.ts.map +0 -1
  1424. package/dist/router/resolvers/RepoResolver.test.js +0 -92
  1425. package/dist/router/resolvers/RepoResolver.test.js.map +0 -1
  1426. package/dist/router/routes/BaseRoute.d.ts +0 -22
  1427. package/dist/router/routes/BaseRoute.d.ts.map +0 -1
  1428. package/dist/router/routes/BaseRoute.js +0 -55
  1429. package/dist/router/routes/BaseRoute.js.map +0 -1
  1430. package/dist/router/routes/BrowseRoute.d.ts +0 -21
  1431. package/dist/router/routes/BrowseRoute.d.ts.map +0 -1
  1432. package/dist/router/routes/BrowseRoute.js +0 -121
  1433. package/dist/router/routes/BrowseRoute.js.map +0 -1
  1434. package/dist/router/routes/CompositeRoute.d.ts +0 -28
  1435. package/dist/router/routes/CompositeRoute.d.ts.map +0 -1
  1436. package/dist/router/routes/CompositeRoute.js +0 -125
  1437. package/dist/router/routes/CompositeRoute.js.map +0 -1
  1438. package/dist/router/routes/CompositeRoute.test.d.ts +0 -6
  1439. package/dist/router/routes/CompositeRoute.test.d.ts.map +0 -1
  1440. package/dist/router/routes/CompositeRoute.test.js +0 -82
  1441. package/dist/router/routes/CompositeRoute.test.js.map +0 -1
  1442. package/dist/router/routes/DevRoute.d.ts +0 -26
  1443. package/dist/router/routes/DevRoute.d.ts.map +0 -1
  1444. package/dist/router/routes/DevRoute.js +0 -118
  1445. package/dist/router/routes/DevRoute.js.map +0 -1
  1446. package/dist/router/routes/GoogleRoute.d.ts +0 -46
  1447. package/dist/router/routes/GoogleRoute.d.ts.map +0 -1
  1448. package/dist/router/routes/GoogleRoute.js +0 -293
  1449. package/dist/router/routes/GoogleRoute.js.map +0 -1
  1450. package/dist/router/routes/GoogleRoute.test.d.ts +0 -6
  1451. package/dist/router/routes/GoogleRoute.test.d.ts.map +0 -1
  1452. package/dist/router/routes/GoogleRoute.test.js +0 -171
  1453. package/dist/router/routes/GoogleRoute.test.js.map +0 -1
  1454. package/dist/router/routes/MonitorRoute.d.ts +0 -25
  1455. package/dist/router/routes/MonitorRoute.d.ts.map +0 -1
  1456. package/dist/router/routes/MonitorRoute.js +0 -112
  1457. package/dist/router/routes/MonitorRoute.js.map +0 -1
  1458. package/dist/router/routes/MonitorRoute.test.d.ts +0 -6
  1459. package/dist/router/routes/MonitorRoute.test.d.ts.map +0 -1
  1460. package/dist/router/routes/MonitorRoute.test.js +0 -97
  1461. package/dist/router/routes/MonitorRoute.test.js.map +0 -1
  1462. package/dist/router/routes/ResearchRoute.d.ts +0 -25
  1463. package/dist/router/routes/ResearchRoute.d.ts.map +0 -1
  1464. package/dist/router/routes/ResearchRoute.js +0 -113
  1465. package/dist/router/routes/ResearchRoute.js.map +0 -1
  1466. package/dist/router/routes/ResearchRoute.test.d.ts +0 -6
  1467. package/dist/router/routes/ResearchRoute.test.d.ts.map +0 -1
  1468. package/dist/router/routes/ResearchRoute.test.js +0 -104
  1469. package/dist/router/routes/ResearchRoute.test.js.map +0 -1
  1470. package/dist/router/routes/UtilityRoute.d.ts +0 -32
  1471. package/dist/router/routes/UtilityRoute.d.ts.map +0 -1
  1472. package/dist/router/routes/UtilityRoute.js +0 -144
  1473. package/dist/router/routes/UtilityRoute.js.map +0 -1
  1474. package/dist/router/routes/UtilityRoute.test.d.ts +0 -6
  1475. package/dist/router/routes/UtilityRoute.test.d.ts.map +0 -1
  1476. package/dist/router/routes/UtilityRoute.test.js +0 -134
  1477. package/dist/router/routes/UtilityRoute.test.js.map +0 -1
  1478. package/dist/router/services/BookmarkService.d.ts +0 -34
  1479. package/dist/router/services/BookmarkService.d.ts.map +0 -1
  1480. package/dist/router/services/BookmarkService.js +0 -86
  1481. package/dist/router/services/BookmarkService.js.map +0 -1
  1482. package/dist/router/services/BookmarkService.test.d.ts +0 -6
  1483. package/dist/router/services/BookmarkService.test.d.ts.map +0 -1
  1484. package/dist/router/services/BookmarkService.test.js +0 -82
  1485. package/dist/router/services/BookmarkService.test.js.map +0 -1
  1486. package/dist/router/services/CalendarService.d.ts +0 -30
  1487. package/dist/router/services/CalendarService.d.ts.map +0 -1
  1488. package/dist/router/services/CalendarService.js +0 -168
  1489. package/dist/router/services/CalendarService.js.map +0 -1
  1490. package/dist/router/services/CalendarService.test.d.ts +0 -6
  1491. package/dist/router/services/CalendarService.test.d.ts.map +0 -1
  1492. package/dist/router/services/CalendarService.test.js +0 -107
  1493. package/dist/router/services/CalendarService.test.js.map +0 -1
  1494. package/dist/router/services/ContentSummarizer.d.ts +0 -32
  1495. package/dist/router/services/ContentSummarizer.d.ts.map +0 -1
  1496. package/dist/router/services/ContentSummarizer.js +0 -108
  1497. package/dist/router/services/ContentSummarizer.js.map +0 -1
  1498. package/dist/router/services/ContentSummarizer.test.d.ts +0 -6
  1499. package/dist/router/services/ContentSummarizer.test.d.ts.map +0 -1
  1500. package/dist/router/services/ContentSummarizer.test.js +0 -82
  1501. package/dist/router/services/ContentSummarizer.test.js.map +0 -1
  1502. package/dist/router/services/DailyReportGenerator.d.ts +0 -34
  1503. package/dist/router/services/DailyReportGenerator.d.ts.map +0 -1
  1504. package/dist/router/services/DailyReportGenerator.js +0 -110
  1505. package/dist/router/services/DailyReportGenerator.js.map +0 -1
  1506. package/dist/router/services/DocumentGenerator.d.ts +0 -20
  1507. package/dist/router/services/DocumentGenerator.d.ts.map +0 -1
  1508. package/dist/router/services/DocumentGenerator.js +0 -34
  1509. package/dist/router/services/DocumentGenerator.js.map +0 -1
  1510. package/dist/router/services/DriveService.d.ts +0 -29
  1511. package/dist/router/services/DriveService.d.ts.map +0 -1
  1512. package/dist/router/services/DriveService.js +0 -176
  1513. package/dist/router/services/DriveService.js.map +0 -1
  1514. package/dist/router/services/DriveService.test.d.ts +0 -6
  1515. package/dist/router/services/DriveService.test.d.ts.map +0 -1
  1516. package/dist/router/services/DriveService.test.js +0 -83
  1517. package/dist/router/services/DriveService.test.js.map +0 -1
  1518. package/dist/router/services/FileAnalyzer.d.ts +0 -26
  1519. package/dist/router/services/FileAnalyzer.d.ts.map +0 -1
  1520. package/dist/router/services/FileAnalyzer.js +0 -82
  1521. package/dist/router/services/FileAnalyzer.js.map +0 -1
  1522. package/dist/router/services/GitHubMonitor.d.ts +0 -38
  1523. package/dist/router/services/GitHubMonitor.d.ts.map +0 -1
  1524. package/dist/router/services/GitHubMonitor.js +0 -82
  1525. package/dist/router/services/GitHubMonitor.js.map +0 -1
  1526. package/dist/router/services/GitHubMonitor.test.d.ts +0 -6
  1527. package/dist/router/services/GitHubMonitor.test.d.ts.map +0 -1
  1528. package/dist/router/services/GitHubMonitor.test.js +0 -103
  1529. package/dist/router/services/GitHubMonitor.test.js.map +0 -1
  1530. package/dist/router/services/GmailService.d.ts +0 -28
  1531. package/dist/router/services/GmailService.d.ts.map +0 -1
  1532. package/dist/router/services/GmailService.js +0 -169
  1533. package/dist/router/services/GmailService.js.map +0 -1
  1534. package/dist/router/services/GmailService.test.d.ts +0 -6
  1535. package/dist/router/services/GmailService.test.d.ts.map +0 -1
  1536. package/dist/router/services/GmailService.test.js +0 -113
  1537. package/dist/router/services/GmailService.test.js.map +0 -1
  1538. package/dist/router/services/GoogleAuthManager.d.ts +0 -31
  1539. package/dist/router/services/GoogleAuthManager.d.ts.map +0 -1
  1540. package/dist/router/services/GoogleAuthManager.js +0 -219
  1541. package/dist/router/services/GoogleAuthManager.js.map +0 -1
  1542. package/dist/router/services/GoogleAuthManager.test.d.ts +0 -6
  1543. package/dist/router/services/GoogleAuthManager.test.d.ts.map +0 -1
  1544. package/dist/router/services/GoogleAuthManager.test.js +0 -153
  1545. package/dist/router/services/GoogleAuthManager.test.js.map +0 -1
  1546. package/dist/router/services/ImageGenerator.d.ts +0 -20
  1547. package/dist/router/services/ImageGenerator.d.ts.map +0 -1
  1548. package/dist/router/services/ImageGenerator.js +0 -41
  1549. package/dist/router/services/ImageGenerator.js.map +0 -1
  1550. package/dist/router/services/NoteService.d.ts +0 -36
  1551. package/dist/router/services/NoteService.d.ts.map +0 -1
  1552. package/dist/router/services/NoteService.js +0 -125
  1553. package/dist/router/services/NoteService.js.map +0 -1
  1554. package/dist/router/services/NoteService.test.d.ts +0 -6
  1555. package/dist/router/services/NoteService.test.d.ts.map +0 -1
  1556. package/dist/router/services/NoteService.test.js +0 -90
  1557. package/dist/router/services/NoteService.test.js.map +0 -1
  1558. package/dist/router/services/ProgressReporter.d.ts +0 -32
  1559. package/dist/router/services/ProgressReporter.d.ts.map +0 -1
  1560. package/dist/router/services/ProgressReporter.js +0 -81
  1561. package/dist/router/services/ProgressReporter.js.map +0 -1
  1562. package/dist/router/services/SchedulerEngine.d.ts +0 -55
  1563. package/dist/router/services/SchedulerEngine.d.ts.map +0 -1
  1564. package/dist/router/services/SchedulerEngine.js +0 -215
  1565. package/dist/router/services/SchedulerEngine.js.map +0 -1
  1566. package/dist/router/services/SchedulerEngine.test.d.ts +0 -6
  1567. package/dist/router/services/SchedulerEngine.test.d.ts.map +0 -1
  1568. package/dist/router/services/SchedulerEngine.test.js +0 -102
  1569. package/dist/router/services/SchedulerEngine.test.js.map +0 -1
  1570. package/dist/router/services/ScreenshotService.d.ts +0 -22
  1571. package/dist/router/services/ScreenshotService.d.ts.map +0 -1
  1572. package/dist/router/services/ScreenshotService.js +0 -39
  1573. package/dist/router/services/ScreenshotService.js.map +0 -1
  1574. package/dist/router/services/SheetsService.d.ts +0 -27
  1575. package/dist/router/services/SheetsService.d.ts.map +0 -1
  1576. package/dist/router/services/SheetsService.js +0 -91
  1577. package/dist/router/services/SheetsService.js.map +0 -1
  1578. package/dist/router/services/SheetsService.test.d.ts +0 -6
  1579. package/dist/router/services/SheetsService.test.d.ts.map +0 -1
  1580. package/dist/router/services/SheetsService.test.js +0 -86
  1581. package/dist/router/services/SheetsService.test.js.map +0 -1
  1582. package/dist/router/services/TranslationService.d.ts +0 -21
  1583. package/dist/router/services/TranslationService.d.ts.map +0 -1
  1584. package/dist/router/services/TranslationService.js +0 -76
  1585. package/dist/router/services/TranslationService.js.map +0 -1
  1586. package/dist/router/services/TranslationService.test.d.ts +0 -6
  1587. package/dist/router/services/TranslationService.test.d.ts.map +0 -1
  1588. package/dist/router/services/TranslationService.test.js +0 -61
  1589. package/dist/router/services/TranslationService.test.js.map +0 -1
  1590. package/dist/router/services/WebSearchService.d.ts +0 -24
  1591. package/dist/router/services/WebSearchService.d.ts.map +0 -1
  1592. package/dist/router/services/WebSearchService.js +0 -78
  1593. package/dist/router/services/WebSearchService.js.map +0 -1
  1594. package/dist/router/services/WebSearchService.test.d.ts +0 -6
  1595. package/dist/router/services/WebSearchService.test.d.ts.map +0 -1
  1596. package/dist/router/services/WebSearchService.test.js +0 -75
  1597. package/dist/router/services/WebSearchService.test.js.map +0 -1
  1598. package/dist/router/services/YouTubeService.d.ts +0 -30
  1599. package/dist/router/services/YouTubeService.d.ts.map +0 -1
  1600. package/dist/router/services/YouTubeService.js +0 -145
  1601. package/dist/router/services/YouTubeService.js.map +0 -1
  1602. package/dist/router/services/YouTubeService.test.d.ts +0 -6
  1603. package/dist/router/services/YouTubeService.test.d.ts.map +0 -1
  1604. package/dist/router/services/YouTubeService.test.js +0 -128
  1605. package/dist/router/services/YouTubeService.test.js.map +0 -1
  1606. package/dist/router/services/google-types.d.ts +0 -222
  1607. package/dist/router/services/google-types.d.ts.map +0 -1
  1608. package/dist/router/services/google-types.js +0 -6
  1609. package/dist/router/services/google-types.js.map +0 -1
  1610. package/dist/router/sessions/DevSessionManager.d.ts +0 -39
  1611. package/dist/router/sessions/DevSessionManager.d.ts.map +0 -1
  1612. package/dist/router/sessions/DevSessionManager.js +0 -151
  1613. package/dist/router/sessions/DevSessionManager.js.map +0 -1
  1614. package/dist/router/types.d.ts +0 -117
  1615. package/dist/router/types.d.ts.map +0 -1
  1616. package/dist/router/types.js +0 -25
  1617. package/dist/router/types.js.map +0 -1
  1618. package/dist/sync/ConflictResolver.d.ts +0 -29
  1619. package/dist/sync/ConflictResolver.d.ts.map +0 -1
  1620. package/dist/sync/ConflictResolver.js +0 -106
  1621. package/dist/sync/ConflictResolver.js.map +0 -1
  1622. package/dist/sync/DataSerializer.d.ts +0 -33
  1623. package/dist/sync/DataSerializer.d.ts.map +0 -1
  1624. package/dist/sync/DataSerializer.js +0 -207
  1625. package/dist/sync/DataSerializer.js.map +0 -1
  1626. package/dist/sync/DeviceManager.d.ts +0 -31
  1627. package/dist/sync/DeviceManager.d.ts.map +0 -1
  1628. package/dist/sync/DeviceManager.js +0 -141
  1629. package/dist/sync/DeviceManager.js.map +0 -1
  1630. package/dist/sync/SyncEngine.d.ts +0 -56
  1631. package/dist/sync/SyncEngine.d.ts.map +0 -1
  1632. package/dist/sync/SyncEngine.js +0 -172
  1633. package/dist/sync/SyncEngine.js.map +0 -1
  1634. package/dist/sync/SyncStore.d.ts +0 -46
  1635. package/dist/sync/SyncStore.d.ts.map +0 -1
  1636. package/dist/sync/SyncStore.js +0 -219
  1637. package/dist/sync/SyncStore.js.map +0 -1
  1638. package/dist/sync/index.d.ts +0 -12
  1639. package/dist/sync/index.d.ts.map +0 -1
  1640. package/dist/sync/index.js +0 -11
  1641. package/dist/sync/index.js.map +0 -1
  1642. package/dist/sync/sync.test.d.ts +0 -5
  1643. package/dist/sync/sync.test.d.ts.map +0 -1
  1644. package/dist/sync/sync.test.js +0 -416
  1645. package/dist/sync/sync.test.js.map +0 -1
  1646. package/dist/sync/types.d.ts +0 -80
  1647. package/dist/sync/types.d.ts.map +0 -1
  1648. package/dist/sync/types.js +0 -12
  1649. package/dist/sync/types.js.map +0 -1
  1650. package/dist/tools/browser/index.d.ts +0 -47
  1651. package/dist/tools/browser/index.d.ts.map +0 -1
  1652. package/dist/tools/browser/index.js +0 -413
  1653. package/dist/tools/browser/index.js.map +0 -1
  1654. package/dist/tools/google/index.d.ts +0 -84
  1655. package/dist/tools/google/index.d.ts.map +0 -1
  1656. package/dist/tools/google/index.js +0 -508
  1657. package/dist/tools/google/index.js.map +0 -1
  1658. package/dist/tools/integration/index.d.ts +0 -24
  1659. package/dist/tools/integration/index.d.ts.map +0 -1
  1660. package/dist/tools/integration/index.js +0 -223
  1661. package/dist/tools/integration/index.js.map +0 -1
  1662. package/dist/tools/sandbox/index.d.ts +0 -25
  1663. package/dist/tools/sandbox/index.d.ts.map +0 -1
  1664. package/dist/tools/sandbox/index.js +0 -255
  1665. package/dist/tools/sandbox/index.js.map +0 -1
  1666. package/dist/tools/vision/index.d.ts +0 -45
  1667. package/dist/tools/vision/index.d.ts.map +0 -1
  1668. package/dist/tools/vision/index.js +0 -328
  1669. package/dist/tools/vision/index.js.map +0 -1
  1670. package/dist/tools/voice/index.d.ts +0 -24
  1671. package/dist/tools/voice/index.d.ts.map +0 -1
  1672. package/dist/tools/voice/index.js +0 -204
  1673. package/dist/tools/voice/index.js.map +0 -1
  1674. package/dist/types/tool.d.ts +0 -64
  1675. package/dist/types/tool.d.ts.map +0 -1
  1676. package/dist/types/tool.js +0 -3
  1677. package/dist/types/tool.js.map +0 -1
@@ -1,52 +1,52 @@
1
- No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
- 1,Components,Use functional components,Hooks-based components are standard,Functional components with hooks,Class components,const App = () => { },class App extends Component,Medium,https://reactnative.dev/docs/intro-react
3
- 2,Components,Keep components small,Single responsibility principle,Split into smaller components,Large monolithic components,<Header /><Content /><Footer />,500+ line component,Medium,
4
- 3,Components,Use TypeScript,Type safety for props and state,TypeScript for new projects,JavaScript without types,const Button: FC<Props> = () => { },const Button = (props) => { },Medium,
5
- 4,Components,Colocate component files,Keep related files together,Component folder with styles,Flat structure,components/Button/index.tsx styles.ts,components/Button.tsx styles/button.ts,Low,
6
- 5,Styling,Use StyleSheet.create,Optimized style objects,StyleSheet for all styles,Inline style objects,StyleSheet.create({ container: {} }),style={{ margin: 10 }},High,https://reactnative.dev/docs/stylesheet
7
- 6,Styling,Avoid inline styles,Prevent object recreation,Styles in StyleSheet,Inline style objects in render,style={styles.container},"style={{ margin: 10, padding: 5 }}",Medium,
8
- 7,Styling,Use flexbox for layout,React Native uses flexbox,flexDirection alignItems justifyContent,Absolute positioning everywhere,flexDirection: 'row',position: 'absolute' everywhere,Medium,https://reactnative.dev/docs/flexbox
9
- 8,Styling,Handle platform differences,Platform-specific styles,Platform.select or .ios/.android files,Same styles for both platforms,"Platform.select({ ios: {}, android: {} })",Hardcoded iOS values,Medium,https://reactnative.dev/docs/platform-specific-code
10
- 9,Styling,Use responsive dimensions,Scale for different screens,Dimensions or useWindowDimensions,Fixed pixel values,useWindowDimensions(),width: 375,Medium,
11
- 10,Navigation,Use React Navigation,Standard navigation library,React Navigation for routing,Manual navigation management,createStackNavigator(),Custom navigation state,Medium,https://reactnavigation.org/
12
- 11,Navigation,Type navigation params,Type-safe navigation,Typed navigation props,Untyped navigation,"navigation.navigate<RootStackParamList>('Home', { id })","navigation.navigate('Home', { id })",Medium,
13
- 12,Navigation,Use deep linking,Support URL-based navigation,Configure linking prop,No deep link support,linking: { prefixes: [] },No linking configuration,Medium,https://reactnavigation.org/docs/deep-linking/
14
- 13,Navigation,Handle back button,Android back button handling,useFocusEffect with BackHandler,Ignore back button,BackHandler.addEventListener,No back handler,High,
15
- 14,State,Use useState for local state,Simple component state,useState for UI state,Class component state,"const [count, setCount] = useState(0)",this.state = { count: 0 },Medium,
16
- 15,State,Use useReducer for complex state,Complex state logic,useReducer for related state,Multiple useState for related values,useReducer(reducer initialState),5+ useState calls,Medium,
17
- 16,State,Use context sparingly,Context for global state,Context for theme auth locale,Context for frequently changing data,ThemeContext for app theme,Context for list item data,Medium,
18
- 17,State,Consider Zustand or Redux,External state management,Zustand for simple Redux for complex,useState for global state,create((set) => ({ })),Prop drilling global state,Medium,
19
- 18,Lists,Use FlatList for long lists,Virtualized list rendering,FlatList for 50+ items,ScrollView with map,<FlatList data={items} />,<ScrollView>{items.map()}</ScrollView>,High,https://reactnative.dev/docs/flatlist
20
- 19,Lists,Provide keyExtractor,Unique keys for list items,keyExtractor with stable ID,Index as key,keyExtractor={(item) => item.id},"keyExtractor={(_, index) => index}",High,
21
- 20,Lists,Optimize renderItem,Memoize list item components,React.memo for list items,Inline render function,renderItem={({ item }) => <MemoizedItem item={item} />},renderItem={({ item }) => <View>...</View>},High,
22
- 21,Lists,Use getItemLayout for fixed height,Skip measurement for performance,getItemLayout when height known,Dynamic measurement for fixed items,"getItemLayout={(_, index) => ({ length: 50, offset: 50 * index, index })}",No getItemLayout for fixed height,Medium,
23
- 22,Lists,Implement windowSize,Control render window,Smaller windowSize for memory,Default windowSize for large lists,windowSize={5},windowSize={21} for huge lists,Medium,
24
- 23,Performance,Use React.memo,Prevent unnecessary re-renders,memo for pure components,No memoization,export default memo(MyComponent),export default MyComponent,Medium,
25
- 24,Performance,Use useCallback for handlers,Stable function references,useCallback for props,New function on every render,"useCallback(() => {}, [deps])",() => handlePress(),Medium,
26
- 25,Performance,Use useMemo for expensive ops,Cache expensive calculations,useMemo for heavy computations,Recalculate every render,"useMemo(() => expensive(), [deps])",const result = expensive(),Medium,
27
- 26,Performance,Avoid anonymous functions in JSX,Prevent re-renders,Named handlers or useCallback,Inline arrow functions,onPress={handlePress},onPress={() => doSomething()},Medium,
28
- 27,Performance,Use Hermes engine,Improved startup and memory,Enable Hermes in build,JavaScriptCore for new projects,hermes_enabled: true,hermes_enabled: false,Medium,https://reactnative.dev/docs/hermes
29
- 28,Images,Use expo-image,Modern performant image component for React Native,"Use expo-image for caching, blurring, and performance",Use default Image for heavy lists or unmaintained libraries,<Image source={url} cachePolicy='memory-disk' /> (expo-image),<FastImage source={url} />,Medium,https://docs.expo.dev/versions/latest/sdk/image/
30
- 29,Images,Specify image dimensions,Prevent layout shifts,width and height for remote images,No dimensions for network images,<Image style={{ width: 100 height: 100 }} />,<Image source={{ uri }} /> no size,High,
31
- 30,Images,Use resizeMode,Control image scaling,resizeMode cover contain,Stretch images,"resizeMode=""cover""",No resizeMode,Low,
32
- 31,Forms,Use controlled inputs,State-controlled form fields,value + onChangeText,Uncontrolled inputs,<TextInput value={text} onChangeText={setText} />,<TextInput defaultValue={text} />,Medium,
33
- 32,Forms,Handle keyboard,Manage keyboard visibility,KeyboardAvoidingView,Content hidden by keyboard,"<KeyboardAvoidingView behavior=""padding"">",No keyboard handling,High,https://reactnative.dev/docs/keyboardavoidingview
34
- 33,Forms,Use proper keyboard types,Appropriate keyboard for input,keyboardType for input type,Default keyboard for all,"keyboardType=""email-address""","keyboardType=""default"" for email",Low,
35
- 34,Touch,Use Pressable,Modern touch handling,Pressable for touch interactions,TouchableOpacity for new code,<Pressable onPress={} />,<TouchableOpacity onPress={} />,Low,https://reactnative.dev/docs/pressable
36
- 35,Touch,Provide touch feedback,Visual feedback on press,Ripple or opacity change,No feedback on press,android_ripple={{ color: 'gray' }},No press feedback,Medium,
37
- 36,Touch,Set hitSlop for small targets,Increase touch area,hitSlop for icons and small buttons,Tiny touch targets,hitSlop={{ top: 10 bottom: 10 }},44x44 with no hitSlop,Medium,
38
- 37,Animation,Use Reanimated,High-performance animations,react-native-reanimated,Animated API for complex,useSharedValue useAnimatedStyle,Animated.timing for gesture,Medium,https://docs.swmansion.com/react-native-reanimated/
39
- 38,Animation,Run on UI thread,worklets for smooth animation,Run animations on UI thread,JS thread animations,runOnUI(() => {}),Animated on JS thread,High,
40
- 39,Animation,Use gesture handler,Native gesture recognition,react-native-gesture-handler,JS-based gesture handling,<GestureDetector>,<View onTouchMove={} />,Medium,https://docs.swmansion.com/react-native-gesture-handler/
41
- 40,Async,Handle loading states,Show loading indicators,ActivityIndicator during load,Empty screen during load,{isLoading ? <ActivityIndicator /> : <Content />},No loading state,Medium,
42
- 41,Async,Handle errors gracefully,Error boundaries and fallbacks,Error UI for failed requests,Crash on error,{error ? <ErrorView /> : <Content />},No error handling,High,
43
- 42,Async,Cancel async operations,Cleanup on unmount,AbortController or cleanup,Memory leaks from async,useEffect cleanup,No cleanup for subscriptions,High,
44
- 43,Accessibility,Add accessibility labels,Describe UI elements,accessibilityLabel for all interactive,Missing labels,"accessibilityLabel=""Submit form""",<Pressable> without label,High,https://reactnative.dev/docs/accessibility
45
- 44,Accessibility,Use accessibility roles,Semantic meaning,accessibilityRole for elements,Wrong roles,"accessibilityRole=""button""",No role for button,Medium,
46
- 45,Accessibility,Support screen readers,Test with TalkBack/VoiceOver,Test with screen readers,Skip accessibility testing,Regular TalkBack testing,No screen reader testing,High,
47
- 46,Testing,Use React Native Testing Library,Component testing,render and fireEvent,Enzyme or manual testing,render(<Component />),shallow(<Component />),Medium,https://callstack.github.io/react-native-testing-library/
48
- 47,Testing,Test on real devices,Real device behavior,Test on iOS and Android devices,Simulator only,Device testing in CI,Simulator only testing,High,
49
- 48,Testing,Use Detox for E2E,End-to-end testing,Detox for critical flows,Manual E2E testing,detox test,Manual testing only,Medium,https://wix.github.io/Detox/
50
- 49,Native,Use native modules carefully,Bridge has overhead,Batch native calls,Frequent bridge crossing,Batch updates,Call native on every keystroke,High,
51
- 50,Native,Use Expo when possible,Simplified development,Expo for standard features,Bare RN for simple apps,expo install package,react-native link package,Low,https://docs.expo.dev/
52
- 51,Native,Handle permissions,Request permissions properly,Check and request permissions,Assume permissions granted,PermissionsAndroid.request(),Access without permission check,High,https://reactnative.dev/docs/permissionsandroid
1
+ No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
+ 1,Components,Use functional components,Hooks-based components are standard,Functional components with hooks,Class components,const App = () => { },class App extends Component,Medium,https://reactnative.dev/docs/intro-react
3
+ 2,Components,Keep components small,Single responsibility principle,Split into smaller components,Large monolithic components,<Header /><Content /><Footer />,500+ line component,Medium,
4
+ 3,Components,Use TypeScript,Type safety for props and state,TypeScript for new projects,JavaScript without types,const Button: FC<Props> = () => { },const Button = (props) => { },Medium,
5
+ 4,Components,Colocate component files,Keep related files together,Component folder with styles,Flat structure,components/Button/index.tsx styles.ts,components/Button.tsx styles/button.ts,Low,
6
+ 5,Styling,Use StyleSheet.create,Optimized style objects,StyleSheet for all styles,Inline style objects,StyleSheet.create({ container: {} }),style={{ margin: 10 }},High,https://reactnative.dev/docs/stylesheet
7
+ 6,Styling,Avoid inline styles,Prevent object recreation,Styles in StyleSheet,Inline style objects in render,style={styles.container},"style={{ margin: 10, padding: 5 }}",Medium,
8
+ 7,Styling,Use flexbox for layout,React Native uses flexbox,flexDirection alignItems justifyContent,Absolute positioning everywhere,flexDirection: 'row',position: 'absolute' everywhere,Medium,https://reactnative.dev/docs/flexbox
9
+ 8,Styling,Handle platform differences,Platform-specific styles,Platform.select or .ios/.android files,Same styles for both platforms,"Platform.select({ ios: {}, android: {} })",Hardcoded iOS values,Medium,https://reactnative.dev/docs/platform-specific-code
10
+ 9,Styling,Use responsive dimensions,Scale for different screens,Dimensions or useWindowDimensions,Fixed pixel values,useWindowDimensions(),width: 375,Medium,
11
+ 10,Navigation,Use React Navigation,Standard navigation library,React Navigation for routing,Manual navigation management,createStackNavigator(),Custom navigation state,Medium,https://reactnavigation.org/
12
+ 11,Navigation,Type navigation params,Type-safe navigation,Typed navigation props,Untyped navigation,"navigation.navigate<RootStackParamList>('Home', { id })","navigation.navigate('Home', { id })",Medium,
13
+ 12,Navigation,Use deep linking,Support URL-based navigation,Configure linking prop,No deep link support,linking: { prefixes: [] },No linking configuration,Medium,https://reactnavigation.org/docs/deep-linking/
14
+ 13,Navigation,Handle back button,Android back button handling,useFocusEffect with BackHandler,Ignore back button,BackHandler.addEventListener,No back handler,High,
15
+ 14,State,Use useState for local state,Simple component state,useState for UI state,Class component state,"const [count, setCount] = useState(0)",this.state = { count: 0 },Medium,
16
+ 15,State,Use useReducer for complex state,Complex state logic,useReducer for related state,Multiple useState for related values,useReducer(reducer initialState),5+ useState calls,Medium,
17
+ 16,State,Use context sparingly,Context for global state,Context for theme auth locale,Context for frequently changing data,ThemeContext for app theme,Context for list item data,Medium,
18
+ 17,State,Consider Zustand or Redux,External state management,Zustand for simple Redux for complex,useState for global state,create((set) => ({ })),Prop drilling global state,Medium,
19
+ 18,Lists,Use FlatList for long lists,Virtualized list rendering,FlatList for 50+ items,ScrollView with map,<FlatList data={items} />,<ScrollView>{items.map()}</ScrollView>,High,https://reactnative.dev/docs/flatlist
20
+ 19,Lists,Provide keyExtractor,Unique keys for list items,keyExtractor with stable ID,Index as key,keyExtractor={(item) => item.id},"keyExtractor={(_, index) => index}",High,
21
+ 20,Lists,Optimize renderItem,Memoize list item components,React.memo for list items,Inline render function,renderItem={({ item }) => <MemoizedItem item={item} />},renderItem={({ item }) => <View>...</View>},High,
22
+ 21,Lists,Use getItemLayout for fixed height,Skip measurement for performance,getItemLayout when height known,Dynamic measurement for fixed items,"getItemLayout={(_, index) => ({ length: 50, offset: 50 * index, index })}",No getItemLayout for fixed height,Medium,
23
+ 22,Lists,Implement windowSize,Control render window,Smaller windowSize for memory,Default windowSize for large lists,windowSize={5},windowSize={21} for huge lists,Medium,
24
+ 23,Performance,Use React.memo,Prevent unnecessary re-renders,memo for pure components,No memoization,export default memo(MyComponent),export default MyComponent,Medium,
25
+ 24,Performance,Use useCallback for handlers,Stable function references,useCallback for props,New function on every render,"useCallback(() => {}, [deps])",() => handlePress(),Medium,
26
+ 25,Performance,Use useMemo for expensive ops,Cache expensive calculations,useMemo for heavy computations,Recalculate every render,"useMemo(() => expensive(), [deps])",const result = expensive(),Medium,
27
+ 26,Performance,Avoid anonymous functions in JSX,Prevent re-renders,Named handlers or useCallback,Inline arrow functions,onPress={handlePress},onPress={() => doSomething()},Medium,
28
+ 27,Performance,Use Hermes engine,Improved startup and memory,Enable Hermes in build,JavaScriptCore for new projects,hermes_enabled: true,hermes_enabled: false,Medium,https://reactnative.dev/docs/hermes
29
+ 28,Images,Use expo-image,Modern performant image component for React Native,"Use expo-image for caching, blurring, and performance",Use default Image for heavy lists or unmaintained libraries,<Image source={url} cachePolicy='memory-disk' /> (expo-image),<FastImage source={url} />,Medium,https://docs.expo.dev/versions/latest/sdk/image/
30
+ 29,Images,Specify image dimensions,Prevent layout shifts,width and height for remote images,No dimensions for network images,<Image style={{ width: 100 height: 100 }} />,<Image source={{ uri }} /> no size,High,
31
+ 30,Images,Use resizeMode,Control image scaling,resizeMode cover contain,Stretch images,"resizeMode=""cover""",No resizeMode,Low,
32
+ 31,Forms,Use controlled inputs,State-controlled form fields,value + onChangeText,Uncontrolled inputs,<TextInput value={text} onChangeText={setText} />,<TextInput defaultValue={text} />,Medium,
33
+ 32,Forms,Handle keyboard,Manage keyboard visibility,KeyboardAvoidingView,Content hidden by keyboard,"<KeyboardAvoidingView behavior=""padding"">",No keyboard handling,High,https://reactnative.dev/docs/keyboardavoidingview
34
+ 33,Forms,Use proper keyboard types,Appropriate keyboard for input,keyboardType for input type,Default keyboard for all,"keyboardType=""email-address""","keyboardType=""default"" for email",Low,
35
+ 34,Touch,Use Pressable,Modern touch handling,Pressable for touch interactions,TouchableOpacity for new code,<Pressable onPress={} />,<TouchableOpacity onPress={} />,Low,https://reactnative.dev/docs/pressable
36
+ 35,Touch,Provide touch feedback,Visual feedback on press,Ripple or opacity change,No feedback on press,android_ripple={{ color: 'gray' }},No press feedback,Medium,
37
+ 36,Touch,Set hitSlop for small targets,Increase touch area,hitSlop for icons and small buttons,Tiny touch targets,hitSlop={{ top: 10 bottom: 10 }},44x44 with no hitSlop,Medium,
38
+ 37,Animation,Use Reanimated,High-performance animations,react-native-reanimated,Animated API for complex,useSharedValue useAnimatedStyle,Animated.timing for gesture,Medium,https://docs.swmansion.com/react-native-reanimated/
39
+ 38,Animation,Run on UI thread,worklets for smooth animation,Run animations on UI thread,JS thread animations,runOnUI(() => {}),Animated on JS thread,High,
40
+ 39,Animation,Use gesture handler,Native gesture recognition,react-native-gesture-handler,JS-based gesture handling,<GestureDetector>,<View onTouchMove={} />,Medium,https://docs.swmansion.com/react-native-gesture-handler/
41
+ 40,Async,Handle loading states,Show loading indicators,ActivityIndicator during load,Empty screen during load,{isLoading ? <ActivityIndicator /> : <Content />},No loading state,Medium,
42
+ 41,Async,Handle errors gracefully,Error boundaries and fallbacks,Error UI for failed requests,Crash on error,{error ? <ErrorView /> : <Content />},No error handling,High,
43
+ 42,Async,Cancel async operations,Cleanup on unmount,AbortController or cleanup,Memory leaks from async,useEffect cleanup,No cleanup for subscriptions,High,
44
+ 43,Accessibility,Add accessibility labels,Describe UI elements,accessibilityLabel for all interactive,Missing labels,"accessibilityLabel=""Submit form""",<Pressable> without label,High,https://reactnative.dev/docs/accessibility
45
+ 44,Accessibility,Use accessibility roles,Semantic meaning,accessibilityRole for elements,Wrong roles,"accessibilityRole=""button""",No role for button,Medium,
46
+ 45,Accessibility,Support screen readers,Test with TalkBack/VoiceOver,Test with screen readers,Skip accessibility testing,Regular TalkBack testing,No screen reader testing,High,
47
+ 46,Testing,Use React Native Testing Library,Component testing,render and fireEvent,Enzyme or manual testing,render(<Component />),shallow(<Component />),Medium,https://callstack.github.io/react-native-testing-library/
48
+ 47,Testing,Test on real devices,Real device behavior,Test on iOS and Android devices,Simulator only,Device testing in CI,Simulator only testing,High,
49
+ 48,Testing,Use Detox for E2E,End-to-end testing,Detox for critical flows,Manual E2E testing,detox test,Manual testing only,Medium,https://wix.github.io/Detox/
50
+ 49,Native,Use native modules carefully,Bridge has overhead,Batch native calls,Frequent bridge crossing,Batch updates,Call native on every keystroke,High,
51
+ 50,Native,Use Expo when possible,Simplified development,Expo for standard features,Bare RN for simple apps,expo install package,react-native link package,Low,https://docs.expo.dev/
52
+ 51,Native,Handle permissions,Request permissions properly,Check and request permissions,Assume permissions granted,PermissionsAndroid.request(),Access without permission check,High,https://reactnative.dev/docs/permissionsandroid
@@ -1,54 +1,54 @@
1
- No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
- 1,State,Use useState for local state,Simple component state should use useState hook,useState for form inputs toggles counters,Class components this.state,"const [count, setCount] = useState(0)",this.state = { count: 0 },Medium,https://react.dev/reference/react/useState
3
- 2,State,Lift state up when needed,Share state between siblings by lifting to parent,Lift shared state to common ancestor,Prop drilling through many levels,Parent holds state passes down,Deep prop chains,Medium,https://react.dev/learn/sharing-state-between-components
4
- 3,State,Use useReducer for complex state,Complex state logic benefits from reducer pattern,useReducer for state with multiple sub-values,Multiple useState for related values,useReducer with action types,5+ useState calls that update together,Medium,https://react.dev/reference/react/useReducer
5
- 4,State,Avoid unnecessary state,Derive values from existing state when possible,Compute derived values in render,Store derivable values in state,const total = items.reduce(...),"const [total, setTotal] = useState(0)",High,https://react.dev/learn/choosing-the-state-structure
6
- 5,State,Initialize state lazily,Use function form for expensive initial state,useState(() => computeExpensive()),useState(computeExpensive()),useState(() => JSON.parse(data)),useState(JSON.parse(data)),Medium,https://react.dev/reference/react/useState#avoiding-recreating-the-initial-state
7
- 6,Effects,Clean up effects,Return cleanup function for subscriptions timers,Return cleanup function in useEffect,No cleanup for subscriptions,useEffect(() => { sub(); return unsub; }),useEffect(() => { subscribe(); }),High,https://react.dev/reference/react/useEffect#connecting-to-an-external-system
8
- 7,Effects,Specify dependencies correctly,Include all values used inside effect in deps array,All referenced values in dependency array,Empty deps with external references,[value] when using value in effect,[] when using props/state in effect,High,https://react.dev/reference/react/useEffect#specifying-reactive-dependencies
9
- 8,Effects,Avoid unnecessary effects,Don't use effects for transforming data or events,Transform data during render handle events directly,useEffect for derived state or event handling,const filtered = items.filter(...),useEffect(() => setFiltered(items.filter(...))),High,https://react.dev/learn/you-might-not-need-an-effect
10
- 9,Effects,Use refs for non-reactive values,Store values that don't trigger re-renders in refs,useRef for interval IDs DOM elements,useState for values that don't need render,const intervalRef = useRef(null),"const [intervalId, setIntervalId] = useState()",Medium,https://react.dev/reference/react/useRef
11
- 10,Rendering,Use keys properly,Stable unique keys for list items,Use stable IDs as keys,Array index as key for dynamic lists,key={item.id},key={index},High,https://react.dev/learn/rendering-lists#keeping-list-items-in-order-with-key
12
- 11,Rendering,Memoize expensive calculations,Use useMemo for costly computations,useMemo for expensive filtering/sorting,Recalculate every render,"useMemo(() => expensive(), [deps])",const result = expensiveCalc(),Medium,https://react.dev/reference/react/useMemo
13
- 12,Rendering,Memoize callbacks passed to children,Use useCallback for functions passed as props,useCallback for handlers passed to memoized children,New function reference every render,"useCallback(() => {}, [deps])",const handler = () => {},Medium,https://react.dev/reference/react/useCallback
14
- 13,Rendering,Use React.memo wisely,Wrap components that render often with same props,memo for pure components with stable props,memo everything or nothing,memo(ExpensiveList),memo(SimpleButton),Low,https://react.dev/reference/react/memo
15
- 14,Rendering,Avoid inline object/array creation in JSX,Create objects outside render or memoize,Define style objects outside component,Inline objects in props,<div style={styles.container}>,<div style={{ margin: 10 }}>,Medium,
16
- 15,Components,Keep components small and focused,Single responsibility for each component,One concern per component,Large multi-purpose components,<UserAvatar /><UserName />,<UserCard /> with 500 lines,Medium,
17
- 16,Components,Use composition over inheritance,Compose components using children and props,Use children prop for flexibility,Inheritance hierarchies,<Card>{content}</Card>,class SpecialCard extends Card,Medium,https://react.dev/learn/thinking-in-react
18
- 17,Components,Colocate related code,Keep related components and hooks together,Related files in same directory,Flat structure with many files,components/User/UserCard.tsx,components/UserCard.tsx + hooks/useUser.ts,Low,
19
- 18,Components,Use fragments to avoid extra DOM,Fragment or <> for multiple elements without wrapper,<> for grouping without DOM node,Extra div wrappers,<>{items.map(...)}</>,<div>{items.map(...)}</div>,Low,https://react.dev/reference/react/Fragment
20
- 19,Props,Destructure props,Destructure props for cleaner component code,Destructure in function signature,props.name props.value throughout,"function User({ name, age })",function User(props),Low,
21
- 20,Props,Provide default props values,Use default parameters or defaultProps,Default values in destructuring,Undefined checks throughout,function Button({ size = 'md' }),if (size === undefined) size = 'md',Low,
22
- 21,Props,Avoid prop drilling,Use context or composition for deeply nested data,Context for global data composition for UI,Passing props through 5+ levels,<UserContext.Provider>,<A user={u}><B user={u}><C user={u}>,Medium,https://react.dev/learn/passing-data-deeply-with-context
23
- 22,Props,Validate props with TypeScript,Use TypeScript interfaces for prop types,interface Props { name: string },PropTypes or no validation,interface ButtonProps { onClick: () => void },Button.propTypes = {},Medium,
24
- 23,Events,Use synthetic events correctly,React normalizes events across browsers,e.preventDefault() e.stopPropagation(),Access native event unnecessarily,onClick={(e) => e.preventDefault()},onClick={(e) => e.nativeEvent.preventDefault()},Low,https://react.dev/reference/react-dom/components/common#react-event-object
25
- 24,Events,Avoid binding in render,Use arrow functions in class or hooks,Arrow functions in functional components,bind in render or constructor,const handleClick = () => {},this.handleClick.bind(this),Medium,
26
- 25,Events,Pass event handlers not call results,Pass function reference not invocation,onClick={handleClick},onClick={handleClick()} causing immediate call,onClick={handleClick},onClick={handleClick()},High,
27
- 26,Forms,Controlled components for forms,Use state to control form inputs,value + onChange for inputs,Uncontrolled inputs with refs,<input value={val} onChange={setVal}>,<input ref={inputRef}>,Medium,https://react.dev/reference/react-dom/components/input#controlling-an-input-with-a-state-variable
28
- 27,Forms,Handle form submission properly,Prevent default and handle in submit handler,onSubmit with preventDefault,onClick on submit button only,<form onSubmit={handleSubmit}>,<button onClick={handleSubmit}>,Medium,
29
- 28,Forms,Debounce rapid input changes,Debounce search/filter inputs,useDeferredValue or debounce for search,Filter on every keystroke,useDeferredValue(searchTerm),useEffect filtering on every change,Medium,https://react.dev/reference/react/useDeferredValue
30
- 29,Hooks,Follow rules of hooks,Only call hooks at top level and in React functions,Hooks at component top level,Hooks in conditions loops or callbacks,"const [x, setX] = useState()","if (cond) { const [x, setX] = useState() }",High,https://react.dev/reference/rules/rules-of-hooks
31
- 30,Hooks,Custom hooks for reusable logic,Extract shared stateful logic to custom hooks,useCustomHook for reusable patterns,Duplicate hook logic across components,const { data } = useFetch(url),Duplicate useEffect/useState in components,Medium,https://react.dev/learn/reusing-logic-with-custom-hooks
32
- 31,Hooks,Name custom hooks with use prefix,Custom hooks must start with use,useFetch useForm useAuth,fetchData or getData for hook,function useFetch(url),function fetchData(url),High,
33
- 32,Context,Use context for global data,Context for theme auth locale,Context for app-wide state,Context for frequently changing data,<ThemeContext.Provider>,Context for form field values,Medium,https://react.dev/learn/passing-data-deeply-with-context
34
- 33,Context,Split contexts by concern,Separate contexts for different domains,ThemeContext + AuthContext,One giant AppContext,<ThemeProvider><AuthProvider>,<AppProvider value={{theme user...}}>,Medium,
35
- 34,Context,Memoize context values,Prevent unnecessary re-renders with useMemo,useMemo for context value object,New object reference every render,"value={useMemo(() => ({...}), [])}","value={{ user, theme }}",High,
36
- 35,Performance,Use React DevTools Profiler,Profile to identify performance bottlenecks,Profile before optimizing,Optimize without measuring,React DevTools Profiler,Guessing at bottlenecks,Medium,https://react.dev/learn/react-developer-tools
37
- 36,Performance,Lazy load components,Use React.lazy for code splitting,lazy() for routes and heavy components,Import everything upfront,const Page = lazy(() => import('./Page')),import Page from './Page',Medium,https://react.dev/reference/react/lazy
38
- 37,Performance,Virtualize long lists,Use windowing for lists over 100 items,react-window or react-virtual,Render thousands of DOM nodes,<VirtualizedList items={items}/>,{items.map(i => <Item />)},High,
39
- 38,Performance,Batch state updates,React 18 auto-batches but be aware,Let React batch related updates,Manual batching with flushSync,setA(1); setB(2); // batched,flushSync(() => setA(1)),Low,https://react.dev/learn/queueing-a-series-of-state-updates
40
- 39,ErrorHandling,Use error boundaries,Catch JavaScript errors in component tree,ErrorBoundary wrapping sections,Let errors crash entire app,<ErrorBoundary><App/></ErrorBoundary>,No error handling,High,https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary
41
- 40,ErrorHandling,Handle async errors,Catch errors in async operations,try/catch in async handlers,Unhandled promise rejections,try { await fetch() } catch(e) {},await fetch() // no catch,High,
42
- 41,Testing,Test behavior not implementation,Test what user sees and does,Test renders and interactions,Test internal state or methods,expect(screen.getByText('Hello')),expect(component.state.name),Medium,https://testing-library.com/docs/react-testing-library/intro/
43
- 42,Testing,Use testing-library queries,Use accessible queries,getByRole getByLabelText,getByTestId for everything,getByRole('button'),getByTestId('submit-btn'),Medium,https://testing-library.com/docs/queries/about#priority
44
- 43,Accessibility,Use semantic HTML,Proper HTML elements for their purpose,button for clicks nav for navigation,div with onClick for buttons,<button onClick={...}>,<div onClick={...}>,High,https://react.dev/reference/react-dom/components#all-html-components
45
- 44,Accessibility,Manage focus properly,Handle focus for modals dialogs,Focus trap in modals return focus on close,No focus management,useEffect to focus input,Modal without focus trap,High,
46
- 45,Accessibility,Announce dynamic content,Use ARIA live regions for updates,aria-live for dynamic updates,Silent updates to screen readers,"<div aria-live=""polite"">{msg}</div>",<div>{msg}</div>,Medium,
47
- 46,Accessibility,Label form controls,Associate labels with inputs,htmlFor matching input id,Placeholder as only label,"<label htmlFor=""email"">Email</label>","<input placeholder=""Email""/>",High,
48
- 47,TypeScript,Type component props,Define interfaces for all props,interface Props with all prop types,any or missing types,interface Props { name: string },function Component(props: any),High,
49
- 48,TypeScript,Type state properly,Provide types for useState,useState<Type>() for complex state,Inferred any types,useState<User | null>(null),useState(null),Medium,
50
- 49,TypeScript,Type event handlers,Use React event types,React.ChangeEvent<HTMLInputElement>,Generic Event type,onChange: React.ChangeEvent<HTMLInputElement>,onChange: Event,Medium,
51
- 50,TypeScript,Use generics for reusable components,Generic components for flexible typing,Generic props for list components,Union types for flexibility,<List<T> items={T[]}>,<List items={any[]}>,Medium,
52
- 51,Patterns,Container/Presentational split,Separate data logic from UI,Container fetches presentational renders,Mixed data and UI in one,<UserContainer><UserView/></UserContainer>,<User /> with fetch and render,Low,
53
- 52,Patterns,Render props for flexibility,Share code via render prop pattern,Render prop for customizable rendering,Duplicate logic across components,<DataFetcher render={data => ...}/>,Copy paste fetch logic,Low,https://react.dev/reference/react/cloneElement#passing-data-with-a-render-prop
54
- 53,Patterns,Compound components,Related components sharing state,Tab + TabPanel sharing context,Prop drilling between related,<Tabs><Tab/><TabPanel/></Tabs>,<Tabs tabs={[]} panels={[...]}/>,Low,
1
+ No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
+ 1,State,Use useState for local state,Simple component state should use useState hook,useState for form inputs toggles counters,Class components this.state,"const [count, setCount] = useState(0)",this.state = { count: 0 },Medium,https://react.dev/reference/react/useState
3
+ 2,State,Lift state up when needed,Share state between siblings by lifting to parent,Lift shared state to common ancestor,Prop drilling through many levels,Parent holds state passes down,Deep prop chains,Medium,https://react.dev/learn/sharing-state-between-components
4
+ 3,State,Use useReducer for complex state,Complex state logic benefits from reducer pattern,useReducer for state with multiple sub-values,Multiple useState for related values,useReducer with action types,5+ useState calls that update together,Medium,https://react.dev/reference/react/useReducer
5
+ 4,State,Avoid unnecessary state,Derive values from existing state when possible,Compute derived values in render,Store derivable values in state,const total = items.reduce(...),"const [total, setTotal] = useState(0)",High,https://react.dev/learn/choosing-the-state-structure
6
+ 5,State,Initialize state lazily,Use function form for expensive initial state,useState(() => computeExpensive()),useState(computeExpensive()),useState(() => JSON.parse(data)),useState(JSON.parse(data)),Medium,https://react.dev/reference/react/useState#avoiding-recreating-the-initial-state
7
+ 6,Effects,Clean up effects,Return cleanup function for subscriptions timers,Return cleanup function in useEffect,No cleanup for subscriptions,useEffect(() => { sub(); return unsub; }),useEffect(() => { subscribe(); }),High,https://react.dev/reference/react/useEffect#connecting-to-an-external-system
8
+ 7,Effects,Specify dependencies correctly,Include all values used inside effect in deps array,All referenced values in dependency array,Empty deps with external references,[value] when using value in effect,[] when using props/state in effect,High,https://react.dev/reference/react/useEffect#specifying-reactive-dependencies
9
+ 8,Effects,Avoid unnecessary effects,Don't use effects for transforming data or events,Transform data during render handle events directly,useEffect for derived state or event handling,const filtered = items.filter(...),useEffect(() => setFiltered(items.filter(...))),High,https://react.dev/learn/you-might-not-need-an-effect
10
+ 9,Effects,Use refs for non-reactive values,Store values that don't trigger re-renders in refs,useRef for interval IDs DOM elements,useState for values that don't need render,const intervalRef = useRef(null),"const [intervalId, setIntervalId] = useState()",Medium,https://react.dev/reference/react/useRef
11
+ 10,Rendering,Use keys properly,Stable unique keys for list items,Use stable IDs as keys,Array index as key for dynamic lists,key={item.id},key={index},High,https://react.dev/learn/rendering-lists#keeping-list-items-in-order-with-key
12
+ 11,Rendering,Memoize expensive calculations,Use useMemo for costly computations,useMemo for expensive filtering/sorting,Recalculate every render,"useMemo(() => expensive(), [deps])",const result = expensiveCalc(),Medium,https://react.dev/reference/react/useMemo
13
+ 12,Rendering,Memoize callbacks passed to children,Use useCallback for functions passed as props,useCallback for handlers passed to memoized children,New function reference every render,"useCallback(() => {}, [deps])",const handler = () => {},Medium,https://react.dev/reference/react/useCallback
14
+ 13,Rendering,Use React.memo wisely,Wrap components that render often with same props,memo for pure components with stable props,memo everything or nothing,memo(ExpensiveList),memo(SimpleButton),Low,https://react.dev/reference/react/memo
15
+ 14,Rendering,Avoid inline object/array creation in JSX,Create objects outside render or memoize,Define style objects outside component,Inline objects in props,<div style={styles.container}>,<div style={{ margin: 10 }}>,Medium,
16
+ 15,Components,Keep components small and focused,Single responsibility for each component,One concern per component,Large multi-purpose components,<UserAvatar /><UserName />,<UserCard /> with 500 lines,Medium,
17
+ 16,Components,Use composition over inheritance,Compose components using children and props,Use children prop for flexibility,Inheritance hierarchies,<Card>{content}</Card>,class SpecialCard extends Card,Medium,https://react.dev/learn/thinking-in-react
18
+ 17,Components,Colocate related code,Keep related components and hooks together,Related files in same directory,Flat structure with many files,components/User/UserCard.tsx,components/UserCard.tsx + hooks/useUser.ts,Low,
19
+ 18,Components,Use fragments to avoid extra DOM,Fragment or <> for multiple elements without wrapper,<> for grouping without DOM node,Extra div wrappers,<>{items.map(...)}</>,<div>{items.map(...)}</div>,Low,https://react.dev/reference/react/Fragment
20
+ 19,Props,Destructure props,Destructure props for cleaner component code,Destructure in function signature,props.name props.value throughout,"function User({ name, age })",function User(props),Low,
21
+ 20,Props,Provide default props values,Use default parameters or defaultProps,Default values in destructuring,Undefined checks throughout,function Button({ size = 'md' }),if (size === undefined) size = 'md',Low,
22
+ 21,Props,Avoid prop drilling,Use context or composition for deeply nested data,Context for global data composition for UI,Passing props through 5+ levels,<UserContext.Provider>,<A user={u}><B user={u}><C user={u}>,Medium,https://react.dev/learn/passing-data-deeply-with-context
23
+ 22,Props,Validate props with TypeScript,Use TypeScript interfaces for prop types,interface Props { name: string },PropTypes or no validation,interface ButtonProps { onClick: () => void },Button.propTypes = {},Medium,
24
+ 23,Events,Use synthetic events correctly,React normalizes events across browsers,e.preventDefault() e.stopPropagation(),Access native event unnecessarily,onClick={(e) => e.preventDefault()},onClick={(e) => e.nativeEvent.preventDefault()},Low,https://react.dev/reference/react-dom/components/common#react-event-object
25
+ 24,Events,Avoid binding in render,Use arrow functions in class or hooks,Arrow functions in functional components,bind in render or constructor,const handleClick = () => {},this.handleClick.bind(this),Medium,
26
+ 25,Events,Pass event handlers not call results,Pass function reference not invocation,onClick={handleClick},onClick={handleClick()} causing immediate call,onClick={handleClick},onClick={handleClick()},High,
27
+ 26,Forms,Controlled components for forms,Use state to control form inputs,value + onChange for inputs,Uncontrolled inputs with refs,<input value={val} onChange={setVal}>,<input ref={inputRef}>,Medium,https://react.dev/reference/react-dom/components/input#controlling-an-input-with-a-state-variable
28
+ 27,Forms,Handle form submission properly,Prevent default and handle in submit handler,onSubmit with preventDefault,onClick on submit button only,<form onSubmit={handleSubmit}>,<button onClick={handleSubmit}>,Medium,
29
+ 28,Forms,Debounce rapid input changes,Debounce search/filter inputs,useDeferredValue or debounce for search,Filter on every keystroke,useDeferredValue(searchTerm),useEffect filtering on every change,Medium,https://react.dev/reference/react/useDeferredValue
30
+ 29,Hooks,Follow rules of hooks,Only call hooks at top level and in React functions,Hooks at component top level,Hooks in conditions loops or callbacks,"const [x, setX] = useState()","if (cond) { const [x, setX] = useState() }",High,https://react.dev/reference/rules/rules-of-hooks
31
+ 30,Hooks,Custom hooks for reusable logic,Extract shared stateful logic to custom hooks,useCustomHook for reusable patterns,Duplicate hook logic across components,const { data } = useFetch(url),Duplicate useEffect/useState in components,Medium,https://react.dev/learn/reusing-logic-with-custom-hooks
32
+ 31,Hooks,Name custom hooks with use prefix,Custom hooks must start with use,useFetch useForm useAuth,fetchData or getData for hook,function useFetch(url),function fetchData(url),High,
33
+ 32,Context,Use context for global data,Context for theme auth locale,Context for app-wide state,Context for frequently changing data,<ThemeContext.Provider>,Context for form field values,Medium,https://react.dev/learn/passing-data-deeply-with-context
34
+ 33,Context,Split contexts by concern,Separate contexts for different domains,ThemeContext + AuthContext,One giant AppContext,<ThemeProvider><AuthProvider>,<AppProvider value={{theme user...}}>,Medium,
35
+ 34,Context,Memoize context values,Prevent unnecessary re-renders with useMemo,useMemo for context value object,New object reference every render,"value={useMemo(() => ({...}), [])}","value={{ user, theme }}",High,
36
+ 35,Performance,Use React DevTools Profiler,Profile to identify performance bottlenecks,Profile before optimizing,Optimize without measuring,React DevTools Profiler,Guessing at bottlenecks,Medium,https://react.dev/learn/react-developer-tools
37
+ 36,Performance,Lazy load components,Use React.lazy for code splitting,lazy() for routes and heavy components,Import everything upfront,const Page = lazy(() => import('./Page')),import Page from './Page',Medium,https://react.dev/reference/react/lazy
38
+ 37,Performance,Virtualize long lists,Use windowing for lists over 100 items,react-window or react-virtual,Render thousands of DOM nodes,<VirtualizedList items={items}/>,{items.map(i => <Item />)},High,
39
+ 38,Performance,Batch state updates,React 18 auto-batches but be aware,Let React batch related updates,Manual batching with flushSync,setA(1); setB(2); // batched,flushSync(() => setA(1)),Low,https://react.dev/learn/queueing-a-series-of-state-updates
40
+ 39,ErrorHandling,Use error boundaries,Catch JavaScript errors in component tree,ErrorBoundary wrapping sections,Let errors crash entire app,<ErrorBoundary><App/></ErrorBoundary>,No error handling,High,https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary
41
+ 40,ErrorHandling,Handle async errors,Catch errors in async operations,try/catch in async handlers,Unhandled promise rejections,try { await fetch() } catch(e) {},await fetch() // no catch,High,
42
+ 41,Testing,Test behavior not implementation,Test what user sees and does,Test renders and interactions,Test internal state or methods,expect(screen.getByText('Hello')),expect(component.state.name),Medium,https://testing-library.com/docs/react-testing-library/intro/
43
+ 42,Testing,Use testing-library queries,Use accessible queries,getByRole getByLabelText,getByTestId for everything,getByRole('button'),getByTestId('submit-btn'),Medium,https://testing-library.com/docs/queries/about#priority
44
+ 43,Accessibility,Use semantic HTML,Proper HTML elements for their purpose,button for clicks nav for navigation,div with onClick for buttons,<button onClick={...}>,<div onClick={...}>,High,https://react.dev/reference/react-dom/components#all-html-components
45
+ 44,Accessibility,Manage focus properly,Handle focus for modals dialogs,Focus trap in modals return focus on close,No focus management,useEffect to focus input,Modal without focus trap,High,
46
+ 45,Accessibility,Announce dynamic content,Use ARIA live regions for updates,aria-live for dynamic updates,Silent updates to screen readers,"<div aria-live=""polite"">{msg}</div>",<div>{msg}</div>,Medium,
47
+ 46,Accessibility,Label form controls,Associate labels with inputs,htmlFor matching input id,Placeholder as only label,"<label htmlFor=""email"">Email</label>","<input placeholder=""Email""/>",High,
48
+ 47,TypeScript,Type component props,Define interfaces for all props,interface Props with all prop types,any or missing types,interface Props { name: string },function Component(props: any),High,
49
+ 48,TypeScript,Type state properly,Provide types for useState,useState<Type>() for complex state,Inferred any types,useState<User | null>(null),useState(null),Medium,
50
+ 49,TypeScript,Type event handlers,Use React event types,React.ChangeEvent<HTMLInputElement>,Generic Event type,onChange: React.ChangeEvent<HTMLInputElement>,onChange: Event,Medium,
51
+ 50,TypeScript,Use generics for reusable components,Generic components for flexible typing,Generic props for list components,Union types for flexibility,<List<T> items={T[]}>,<List items={any[]}>,Medium,
52
+ 51,Patterns,Container/Presentational split,Separate data logic from UI,Container fetches presentational renders,Mixed data and UI in one,<UserContainer><UserView/></UserContainer>,<User /> with fetch and render,Low,
53
+ 52,Patterns,Render props for flexibility,Share code via render prop pattern,Render prop for customizable rendering,Duplicate logic across components,<DataFetcher render={data => ...}/>,Copy paste fetch logic,Low,https://react.dev/reference/react/cloneElement#passing-data-with-a-render-prop
54
+ 53,Patterns,Compound components,Related components sharing state,Tab + TabPanel sharing context,Prop drilling between related,<Tabs><Tab/><TabPanel/></Tabs>,<Tabs tabs={[]} panels={[...]}/>,Low,
@@ -1,61 +1,61 @@
1
- No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
- 1,Setup,Use CLI for installation,Install components via shadcn CLI for proper setup,npx shadcn@latest add component-name,Manual copy-paste from docs,npx shadcn@latest add button,Copy component code manually,High,https://ui.shadcn.com/docs/cli
3
- 2,Setup,Initialize project properly,Run init command to set up components.json and globals.css,npx shadcn@latest init before adding components,Skip init and add components directly,npx shadcn@latest init,npx shadcn@latest add button (without init),High,https://ui.shadcn.com/docs/installation
4
- 3,Setup,Configure path aliases,Set up proper import aliases in tsconfig and components.json,Use @/components/ui path aliases,Relative imports like ../../components,import { Button } from "@/components/ui/button",import { Button } from "../../components/ui/button",Medium,https://ui.shadcn.com/docs/installation
5
- 4,Theming,Use CSS variables for colors,Define colors as CSS variables in globals.css for theming,CSS variables in :root and .dark,Hardcoded color values in components,bg-primary text-primary-foreground,bg-blue-500 text-white,High,https://ui.shadcn.com/docs/theming
6
- 5,Theming,Follow naming convention,Use semantic color names with foreground pattern,primary/primary-foreground secondary/secondary-foreground,Generic color names,--primary --primary-foreground,--blue --light-blue,Medium,https://ui.shadcn.com/docs/theming
7
- 6,Theming,Support dark mode,Include .dark class styles for all custom CSS,Define both :root and .dark color schemes,Only light mode colors,.dark { --background: 240 10% 3.9%; },No .dark class styles,High,https://ui.shadcn.com/docs/dark-mode
8
- 7,Components,Use component variants,Leverage cva variants for consistent styling,Use variant prop for different styles,Inline conditional classes,<Button variant="destructive">,<Button className={isError ? "bg-red-500" : "bg-blue-500"}>,Medium,https://ui.shadcn.com/docs/components/button
9
- 8,Components,Compose with className,Add custom classes via className prop for overrides,Extend with className for one-off customizations,Modify component source directly,<Button className="w-full">,Edit button.tsx to add w-full,Medium,https://ui.shadcn.com/docs/components/button
10
- 9,Components,Use size variants consistently,Apply size prop for consistent sizing across components,size="sm" size="lg" for sizing,Mix size classes inconsistently,<Button size="lg">,<Button className="text-lg px-8 py-4">,Medium,https://ui.shadcn.com/docs/components/button
11
- 10,Components,Prefer compound components,Use provided sub-components for complex UI,Card + CardHeader + CardContent pattern,Single component with many props,<Card><CardHeader><CardTitle>,<Card title="x" content="y" footer="z">,Medium,https://ui.shadcn.com/docs/components/card
12
- 11,Dialog,Use Dialog for modal content,Dialog component for overlay modal windows,Dialog for confirmations forms details,Alert for modal content,<Dialog><DialogContent>,<Alert> styled as modal,High,https://ui.shadcn.com/docs/components/dialog
13
- 12,Dialog,Handle dialog state properly,Use open and onOpenChange for controlled dialogs,Controlled state with useState,Uncontrolled with default open only,"<Dialog open={open} onOpenChange={setOpen}>","<Dialog defaultOpen={true}>",Medium,https://ui.shadcn.com/docs/components/dialog
14
- 13,Dialog,Include proper dialog structure,Use DialogHeader DialogTitle DialogDescription,Complete semantic structure,Missing title or description,<DialogHeader><DialogTitle><DialogDescription>,<DialogContent><p>Content</p></DialogContent>,High,https://ui.shadcn.com/docs/components/dialog
15
- 14,Sheet,Use Sheet for side panels,Sheet component for slide-out panels and drawers,Sheet for navigation filters settings,Dialog for side content,<Sheet side="right">,<Dialog> with slide animation,Medium,https://ui.shadcn.com/docs/components/sheet
16
- 15,Sheet,Specify sheet side,Set side prop for sheet slide direction,Explicit side="left" or side="right",Default side without consideration,<Sheet><SheetContent side="left">,<Sheet><SheetContent>,Low,https://ui.shadcn.com/docs/components/sheet
17
- 16,Form,Use Form with react-hook-form,Integrate Form component with react-hook-form for validation,useForm + Form + FormField pattern,Custom form handling without Form,<Form {...form}><FormField control={form.control}>,<form onSubmit={handleSubmit}>,High,https://ui.shadcn.com/docs/components/form
18
- 17,Form,Use FormField for inputs,Wrap inputs in FormField for proper labeling and errors,FormField + FormItem + FormLabel + FormControl,Input without FormField wrapper,<FormField><FormItem><FormLabel><FormControl><Input>,<Input onChange={...}>,High,https://ui.shadcn.com/docs/components/form
19
- 18,Form,Display form messages,Use FormMessage for validation error display,FormMessage after FormControl,Custom error text without FormMessage,<FormControl><Input/></FormControl><FormMessage/>,<Input/>{error && <span>{error}</span>},Medium,https://ui.shadcn.com/docs/components/form
20
- 19,Form,Use Zod for validation,Define form schema with Zod for type-safe validation,zodResolver with form schema,Manual validation logic,zodResolver(formSchema),validate: (values) => { if (!values.email) },Medium,https://ui.shadcn.com/docs/components/form
21
- 20,Select,Use Select for dropdowns,Select component for option selection,Select for choosing from list,Native select element,<Select><SelectTrigger><SelectContent>,<select><option>,Medium,https://ui.shadcn.com/docs/components/select
22
- 21,Select,Structure Select properly,Include Trigger Value Content and Items,Complete Select structure,Missing SelectValue or SelectContent,<SelectTrigger><SelectValue/></SelectTrigger><SelectContent><SelectItem>,<Select><option>,High,https://ui.shadcn.com/docs/components/select
23
- 22,Command,Use Command for search,Command component for searchable lists and palettes,Command for command palette search,Input with custom dropdown,<Command><CommandInput><CommandList>,<Input><div className="dropdown">,Medium,https://ui.shadcn.com/docs/components/command
24
- 23,Command,Group command items,Use CommandGroup for categorized items,CommandGroup with heading for sections,Flat list without grouping,<CommandGroup heading="Suggestions"><CommandItem>,<CommandItem> without groups,Low,https://ui.shadcn.com/docs/components/command
25
- 24,Table,Use Table for data display,Table component for structured data,Table for tabular data display,Div grid for table-like layouts,<Table><TableHeader><TableBody><TableRow>,<div className="grid">,Medium,https://ui.shadcn.com/docs/components/table
26
- 25,Table,Include proper table structure,Use TableHeader TableBody TableRow TableCell,Semantic table structure,Missing thead or tbody,<TableHeader><TableRow><TableHead>,<Table><TableRow> without header,High,https://ui.shadcn.com/docs/components/table
27
- 26,DataTable,Use DataTable for complex tables,Combine Table with TanStack Table for features,DataTable pattern for sorting filtering pagination,Custom table implementation,useReactTable + Table components,Custom sort filter pagination logic,Medium,https://ui.shadcn.com/docs/components/data-table
28
- 27,Tabs,Use Tabs for content switching,Tabs component for tabbed interfaces,Tabs for related content sections,Custom tab implementation,<Tabs><TabsList><TabsTrigger><TabsContent>,<div onClick={() => setTab(...)},Medium,https://ui.shadcn.com/docs/components/tabs
29
- 28,Tabs,Set default tab value,Specify defaultValue for initial tab,defaultValue on Tabs component,No default leaving first tab,<Tabs defaultValue="account">,<Tabs> without defaultValue,Low,https://ui.shadcn.com/docs/components/tabs
30
- 29,Accordion,Use Accordion for collapsible,Accordion for expandable content sections,Accordion for FAQ settings panels,Custom collapse implementation,<Accordion><AccordionItem><AccordionTrigger>,<div onClick={() => setOpen(!open)}>,Medium,https://ui.shadcn.com/docs/components/accordion
31
- 30,Accordion,Choose accordion type,Use type="single" or type="multiple" appropriately,type="single" for one open type="multiple" for many,Default type without consideration,<Accordion type="single" collapsible>,<Accordion> without type,Low,https://ui.shadcn.com/docs/components/accordion
32
- 31,Toast,Use Sonner for toasts,Sonner integration for toast notifications,toast() from sonner for notifications,Custom toast implementation,toast("Event created"),setShowToast(true),Medium,https://ui.shadcn.com/docs/components/sonner
33
- 32,Toast,Add Toaster to layout,Include Toaster component in root layout,<Toaster /> in app layout,Toaster in individual pages,app/layout.tsx: <Toaster />,page.tsx: <Toaster />,High,https://ui.shadcn.com/docs/components/sonner
34
- 33,Toast,Use toast variants,Apply toast.success toast.error for context,Semantic toast methods,Generic toast for all messages,toast.success("Saved!") toast.error("Failed"),toast("Saved!") toast("Failed"),Medium,https://ui.shadcn.com/docs/components/sonner
35
- 34,Popover,Use Popover for floating content,Popover for dropdown menus and floating panels,Popover for contextual actions,Absolute positioned divs,<Popover><PopoverTrigger><PopoverContent>,<div className="relative"><div className="absolute">,Medium,https://ui.shadcn.com/docs/components/popover
36
- 35,Popover,Handle popover alignment,Use align and side props for positioning,Explicit alignment configuration,Default alignment for all,<PopoverContent align="start" side="bottom">,<PopoverContent>,Low,https://ui.shadcn.com/docs/components/popover
37
- 36,DropdownMenu,Use DropdownMenu for actions,DropdownMenu for action lists and context menus,DropdownMenu for user menu actions,Popover for action lists,<DropdownMenu><DropdownMenuTrigger><DropdownMenuContent>,<Popover> for menu actions,Medium,https://ui.shadcn.com/docs/components/dropdown-menu
38
- 37,DropdownMenu,Group menu items,Use DropdownMenuGroup and DropdownMenuSeparator,Organized menu with separators,Flat list of items,<DropdownMenuGroup><DropdownMenuItem><DropdownMenuSeparator>,<DropdownMenuItem> without organization,Low,https://ui.shadcn.com/docs/components/dropdown-menu
39
- 38,Tooltip,Use Tooltip for hints,Tooltip for icon buttons and truncated text,Tooltip for additional context,Title attribute for tooltips,<Tooltip><TooltipTrigger><TooltipContent>,<button title="Delete">,Medium,https://ui.shadcn.com/docs/components/tooltip
40
- 39,Tooltip,Add TooltipProvider,Wrap app or section in TooltipProvider,TooltipProvider at app level,TooltipProvider per tooltip,<TooltipProvider><App/></TooltipProvider>,<Tooltip><TooltipProvider>,High,https://ui.shadcn.com/docs/components/tooltip
41
- 40,Skeleton,Use Skeleton for loading,Skeleton component for loading placeholders,Skeleton matching content layout,Spinner for content loading,<Skeleton className="h-4 w-[200px]"/>,<Spinner/> for card loading,Medium,https://ui.shadcn.com/docs/components/skeleton
42
- 41,Skeleton,Match skeleton dimensions,Size skeleton to match loaded content,Skeleton same size as expected content,Generic skeleton size,<Skeleton className="h-12 w-12 rounded-full"/>,<Skeleton/> without sizing,Medium,https://ui.shadcn.com/docs/components/skeleton
43
- 42,AlertDialog,Use AlertDialog for confirms,AlertDialog for destructive action confirmation,AlertDialog for delete confirmations,Dialog for confirmations,<AlertDialog><AlertDialogTrigger><AlertDialogContent>,<Dialog> for delete confirmation,High,https://ui.shadcn.com/docs/components/alert-dialog
44
- 43,AlertDialog,Include action buttons,Use AlertDialogAction and AlertDialogCancel,Standard confirm/cancel pattern,Custom buttons in AlertDialog,<AlertDialogCancel>Cancel</AlertDialogCancel><AlertDialogAction>,<Button>Cancel</Button><Button>Confirm</Button>,Medium,https://ui.shadcn.com/docs/components/alert-dialog
45
- 44,Sidebar,Use Sidebar for navigation,Sidebar component for app navigation,Sidebar for main app navigation,Custom sidebar implementation,<SidebarProvider><Sidebar><SidebarContent>,<div className="w-64 fixed">,Medium,https://ui.shadcn.com/docs/components/sidebar
46
- 45,Sidebar,Wrap in SidebarProvider,Use SidebarProvider for sidebar state management,SidebarProvider at layout level,Sidebar without provider,<SidebarProvider><Sidebar></SidebarProvider>,<Sidebar> without provider,High,https://ui.shadcn.com/docs/components/sidebar
47
- 46,Sidebar,Use SidebarTrigger,Include SidebarTrigger for mobile toggle,SidebarTrigger for responsive toggle,Custom toggle button,<SidebarTrigger/>,<Button onClick={() => toggleSidebar()}>,Medium,https://ui.shadcn.com/docs/components/sidebar
48
- 47,Chart,Use Chart for data viz,Chart component with Recharts integration,Chart component for dashboards,Direct Recharts without wrapper,<ChartContainer config={chartConfig}>,<ResponsiveContainer><BarChart>,Medium,https://ui.shadcn.com/docs/components/chart
49
- 48,Chart,Define chart config,Create chartConfig for consistent theming,chartConfig with color definitions,Inline colors in charts,"{ desktop: { label: ""Desktop"", color: ""#2563eb"" } }",<Bar fill="#2563eb"/>,Medium,https://ui.shadcn.com/docs/components/chart
50
- 49,Chart,Use ChartTooltip,Apply ChartTooltip for interactive charts,ChartTooltip with ChartTooltipContent,Recharts Tooltip directly,<ChartTooltip content={<ChartTooltipContent/>}/>,<Tooltip/> from recharts,Low,https://ui.shadcn.com/docs/components/chart
51
- 50,Blocks,Use blocks for scaffolding,Start from shadcn blocks for common layouts,npx shadcn@latest add dashboard-01,Build dashboard from scratch,npx shadcn@latest add login-01,Custom login page from scratch,Medium,https://ui.shadcn.com/blocks
52
- 51,Blocks,Customize block components,Modify copied block code to fit needs,Edit block files after installation,Use blocks without modification,Customize dashboard-01 layout,Use dashboard-01 as-is,Low,https://ui.shadcn.com/blocks
53
- 52,A11y,Use semantic components,Shadcn components have built-in ARIA,Rely on component accessibility,Override ARIA attributes,<Button> has button role,<div role="button">,High,https://ui.shadcn.com/docs/components/button
54
- 53,A11y,Maintain focus management,Dialog Sheet handle focus automatically,Let components manage focus,Custom focus handling,<Dialog> traps focus,document.querySelector().focus(),High,https://ui.shadcn.com/docs/components/dialog
55
- 54,A11y,Provide labels,Use FormLabel and aria-label appropriately,FormLabel for form inputs,Placeholder as only label,<FormLabel>Email</FormLabel><Input/>,<Input placeholder="Email"/>,High,https://ui.shadcn.com/docs/components/form
56
- 55,Performance,Import components individually,Import only needed components,Named imports from component files,Import all from index,import { Button } from "@/components/ui/button",import { Button Card Dialog } from "@/components/ui",Medium,
57
- 56,Performance,Lazy load dialogs,Dynamic import for heavy dialog content,React.lazy for dialog content,Import all dialogs upfront,const HeavyContent = lazy(() => import('./Heavy')),import HeavyContent from './Heavy',Medium,
58
- 57,Customization,Extend variants with cva,Add new variants using class-variance-authority,Extend buttonVariants for new styles,Inline classes for variants,"variants: { size: { xl: ""h-14 px-8"" } }",className="h-14 px-8",Medium,https://ui.shadcn.com/docs/components/button
59
- 58,Customization,Create custom components,Build new components following shadcn patterns,Use cn() and cva for custom components,Different patterns for custom,const Custom = ({ className }) => <div className={cn("base" className)}>,const Custom = ({ style }) => <div style={style}>,Medium,
60
- 59,Patterns,Use asChild for composition,asChild prop for component composition,Slot pattern with asChild,Wrapper divs for composition,<Button asChild><Link href="/">,<Button><Link href="/"></Link></Button>,Medium,https://ui.shadcn.com/docs/components/button
61
- 60,Patterns,Combine with React Hook Form,Form + useForm for complete forms,RHF Controller with shadcn inputs,Custom form state management,<FormField control={form.control} name="email">,<Input value={email} onChange={(e) => setEmail(e.target.value)},High,https://ui.shadcn.com/docs/components/form
1
+ No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
+ 1,Setup,Use CLI for installation,Install components via shadcn CLI for proper setup,npx shadcn@latest add component-name,Manual copy-paste from docs,npx shadcn@latest add button,Copy component code manually,High,https://ui.shadcn.com/docs/cli
3
+ 2,Setup,Initialize project properly,Run init command to set up components.json and globals.css,npx shadcn@latest init before adding components,Skip init and add components directly,npx shadcn@latest init,npx shadcn@latest add button (without init),High,https://ui.shadcn.com/docs/installation
4
+ 3,Setup,Configure path aliases,Set up proper import aliases in tsconfig and components.json,Use @/components/ui path aliases,Relative imports like ../../components,import { Button } from "@/components/ui/button",import { Button } from "../../components/ui/button",Medium,https://ui.shadcn.com/docs/installation
5
+ 4,Theming,Use CSS variables for colors,Define colors as CSS variables in globals.css for theming,CSS variables in :root and .dark,Hardcoded color values in components,bg-primary text-primary-foreground,bg-blue-500 text-white,High,https://ui.shadcn.com/docs/theming
6
+ 5,Theming,Follow naming convention,Use semantic color names with foreground pattern,primary/primary-foreground secondary/secondary-foreground,Generic color names,--primary --primary-foreground,--blue --light-blue,Medium,https://ui.shadcn.com/docs/theming
7
+ 6,Theming,Support dark mode,Include .dark class styles for all custom CSS,Define both :root and .dark color schemes,Only light mode colors,.dark { --background: 240 10% 3.9%; },No .dark class styles,High,https://ui.shadcn.com/docs/dark-mode
8
+ 7,Components,Use component variants,Leverage cva variants for consistent styling,Use variant prop for different styles,Inline conditional classes,<Button variant="destructive">,<Button className={isError ? "bg-red-500" : "bg-blue-500"}>,Medium,https://ui.shadcn.com/docs/components/button
9
+ 8,Components,Compose with className,Add custom classes via className prop for overrides,Extend with className for one-off customizations,Modify component source directly,<Button className="w-full">,Edit button.tsx to add w-full,Medium,https://ui.shadcn.com/docs/components/button
10
+ 9,Components,Use size variants consistently,Apply size prop for consistent sizing across components,size="sm" size="lg" for sizing,Mix size classes inconsistently,<Button size="lg">,<Button className="text-lg px-8 py-4">,Medium,https://ui.shadcn.com/docs/components/button
11
+ 10,Components,Prefer compound components,Use provided sub-components for complex UI,Card + CardHeader + CardContent pattern,Single component with many props,<Card><CardHeader><CardTitle>,<Card title="x" content="y" footer="z">,Medium,https://ui.shadcn.com/docs/components/card
12
+ 11,Dialog,Use Dialog for modal content,Dialog component for overlay modal windows,Dialog for confirmations forms details,Alert for modal content,<Dialog><DialogContent>,<Alert> styled as modal,High,https://ui.shadcn.com/docs/components/dialog
13
+ 12,Dialog,Handle dialog state properly,Use open and onOpenChange for controlled dialogs,Controlled state with useState,Uncontrolled with default open only,"<Dialog open={open} onOpenChange={setOpen}>","<Dialog defaultOpen={true}>",Medium,https://ui.shadcn.com/docs/components/dialog
14
+ 13,Dialog,Include proper dialog structure,Use DialogHeader DialogTitle DialogDescription,Complete semantic structure,Missing title or description,<DialogHeader><DialogTitle><DialogDescription>,<DialogContent><p>Content</p></DialogContent>,High,https://ui.shadcn.com/docs/components/dialog
15
+ 14,Sheet,Use Sheet for side panels,Sheet component for slide-out panels and drawers,Sheet for navigation filters settings,Dialog for side content,<Sheet side="right">,<Dialog> with slide animation,Medium,https://ui.shadcn.com/docs/components/sheet
16
+ 15,Sheet,Specify sheet side,Set side prop for sheet slide direction,Explicit side="left" or side="right",Default side without consideration,<Sheet><SheetContent side="left">,<Sheet><SheetContent>,Low,https://ui.shadcn.com/docs/components/sheet
17
+ 16,Form,Use Form with react-hook-form,Integrate Form component with react-hook-form for validation,useForm + Form + FormField pattern,Custom form handling without Form,<Form {...form}><FormField control={form.control}>,<form onSubmit={handleSubmit}>,High,https://ui.shadcn.com/docs/components/form
18
+ 17,Form,Use FormField for inputs,Wrap inputs in FormField for proper labeling and errors,FormField + FormItem + FormLabel + FormControl,Input without FormField wrapper,<FormField><FormItem><FormLabel><FormControl><Input>,<Input onChange={...}>,High,https://ui.shadcn.com/docs/components/form
19
+ 18,Form,Display form messages,Use FormMessage for validation error display,FormMessage after FormControl,Custom error text without FormMessage,<FormControl><Input/></FormControl><FormMessage/>,<Input/>{error && <span>{error}</span>},Medium,https://ui.shadcn.com/docs/components/form
20
+ 19,Form,Use Zod for validation,Define form schema with Zod for type-safe validation,zodResolver with form schema,Manual validation logic,zodResolver(formSchema),validate: (values) => { if (!values.email) },Medium,https://ui.shadcn.com/docs/components/form
21
+ 20,Select,Use Select for dropdowns,Select component for option selection,Select for choosing from list,Native select element,<Select><SelectTrigger><SelectContent>,<select><option>,Medium,https://ui.shadcn.com/docs/components/select
22
+ 21,Select,Structure Select properly,Include Trigger Value Content and Items,Complete Select structure,Missing SelectValue or SelectContent,<SelectTrigger><SelectValue/></SelectTrigger><SelectContent><SelectItem>,<Select><option>,High,https://ui.shadcn.com/docs/components/select
23
+ 22,Command,Use Command for search,Command component for searchable lists and palettes,Command for command palette search,Input with custom dropdown,<Command><CommandInput><CommandList>,<Input><div className="dropdown">,Medium,https://ui.shadcn.com/docs/components/command
24
+ 23,Command,Group command items,Use CommandGroup for categorized items,CommandGroup with heading for sections,Flat list without grouping,<CommandGroup heading="Suggestions"><CommandItem>,<CommandItem> without groups,Low,https://ui.shadcn.com/docs/components/command
25
+ 24,Table,Use Table for data display,Table component for structured data,Table for tabular data display,Div grid for table-like layouts,<Table><TableHeader><TableBody><TableRow>,<div className="grid">,Medium,https://ui.shadcn.com/docs/components/table
26
+ 25,Table,Include proper table structure,Use TableHeader TableBody TableRow TableCell,Semantic table structure,Missing thead or tbody,<TableHeader><TableRow><TableHead>,<Table><TableRow> without header,High,https://ui.shadcn.com/docs/components/table
27
+ 26,DataTable,Use DataTable for complex tables,Combine Table with TanStack Table for features,DataTable pattern for sorting filtering pagination,Custom table implementation,useReactTable + Table components,Custom sort filter pagination logic,Medium,https://ui.shadcn.com/docs/components/data-table
28
+ 27,Tabs,Use Tabs for content switching,Tabs component for tabbed interfaces,Tabs for related content sections,Custom tab implementation,<Tabs><TabsList><TabsTrigger><TabsContent>,<div onClick={() => setTab(...)},Medium,https://ui.shadcn.com/docs/components/tabs
29
+ 28,Tabs,Set default tab value,Specify defaultValue for initial tab,defaultValue on Tabs component,No default leaving first tab,<Tabs defaultValue="account">,<Tabs> without defaultValue,Low,https://ui.shadcn.com/docs/components/tabs
30
+ 29,Accordion,Use Accordion for collapsible,Accordion for expandable content sections,Accordion for FAQ settings panels,Custom collapse implementation,<Accordion><AccordionItem><AccordionTrigger>,<div onClick={() => setOpen(!open)}>,Medium,https://ui.shadcn.com/docs/components/accordion
31
+ 30,Accordion,Choose accordion type,Use type="single" or type="multiple" appropriately,type="single" for one open type="multiple" for many,Default type without consideration,<Accordion type="single" collapsible>,<Accordion> without type,Low,https://ui.shadcn.com/docs/components/accordion
32
+ 31,Toast,Use Sonner for toasts,Sonner integration for toast notifications,toast() from sonner for notifications,Custom toast implementation,toast("Event created"),setShowToast(true),Medium,https://ui.shadcn.com/docs/components/sonner
33
+ 32,Toast,Add Toaster to layout,Include Toaster component in root layout,<Toaster /> in app layout,Toaster in individual pages,app/layout.tsx: <Toaster />,page.tsx: <Toaster />,High,https://ui.shadcn.com/docs/components/sonner
34
+ 33,Toast,Use toast variants,Apply toast.success toast.error for context,Semantic toast methods,Generic toast for all messages,toast.success("Saved!") toast.error("Failed"),toast("Saved!") toast("Failed"),Medium,https://ui.shadcn.com/docs/components/sonner
35
+ 34,Popover,Use Popover for floating content,Popover for dropdown menus and floating panels,Popover for contextual actions,Absolute positioned divs,<Popover><PopoverTrigger><PopoverContent>,<div className="relative"><div className="absolute">,Medium,https://ui.shadcn.com/docs/components/popover
36
+ 35,Popover,Handle popover alignment,Use align and side props for positioning,Explicit alignment configuration,Default alignment for all,<PopoverContent align="start" side="bottom">,<PopoverContent>,Low,https://ui.shadcn.com/docs/components/popover
37
+ 36,DropdownMenu,Use DropdownMenu for actions,DropdownMenu for action lists and context menus,DropdownMenu for user menu actions,Popover for action lists,<DropdownMenu><DropdownMenuTrigger><DropdownMenuContent>,<Popover> for menu actions,Medium,https://ui.shadcn.com/docs/components/dropdown-menu
38
+ 37,DropdownMenu,Group menu items,Use DropdownMenuGroup and DropdownMenuSeparator,Organized menu with separators,Flat list of items,<DropdownMenuGroup><DropdownMenuItem><DropdownMenuSeparator>,<DropdownMenuItem> without organization,Low,https://ui.shadcn.com/docs/components/dropdown-menu
39
+ 38,Tooltip,Use Tooltip for hints,Tooltip for icon buttons and truncated text,Tooltip for additional context,Title attribute for tooltips,<Tooltip><TooltipTrigger><TooltipContent>,<button title="Delete">,Medium,https://ui.shadcn.com/docs/components/tooltip
40
+ 39,Tooltip,Add TooltipProvider,Wrap app or section in TooltipProvider,TooltipProvider at app level,TooltipProvider per tooltip,<TooltipProvider><App/></TooltipProvider>,<Tooltip><TooltipProvider>,High,https://ui.shadcn.com/docs/components/tooltip
41
+ 40,Skeleton,Use Skeleton for loading,Skeleton component for loading placeholders,Skeleton matching content layout,Spinner for content loading,<Skeleton className="h-4 w-[200px]"/>,<Spinner/> for card loading,Medium,https://ui.shadcn.com/docs/components/skeleton
42
+ 41,Skeleton,Match skeleton dimensions,Size skeleton to match loaded content,Skeleton same size as expected content,Generic skeleton size,<Skeleton className="h-12 w-12 rounded-full"/>,<Skeleton/> without sizing,Medium,https://ui.shadcn.com/docs/components/skeleton
43
+ 42,AlertDialog,Use AlertDialog for confirms,AlertDialog for destructive action confirmation,AlertDialog for delete confirmations,Dialog for confirmations,<AlertDialog><AlertDialogTrigger><AlertDialogContent>,<Dialog> for delete confirmation,High,https://ui.shadcn.com/docs/components/alert-dialog
44
+ 43,AlertDialog,Include action buttons,Use AlertDialogAction and AlertDialogCancel,Standard confirm/cancel pattern,Custom buttons in AlertDialog,<AlertDialogCancel>Cancel</AlertDialogCancel><AlertDialogAction>,<Button>Cancel</Button><Button>Confirm</Button>,Medium,https://ui.shadcn.com/docs/components/alert-dialog
45
+ 44,Sidebar,Use Sidebar for navigation,Sidebar component for app navigation,Sidebar for main app navigation,Custom sidebar implementation,<SidebarProvider><Sidebar><SidebarContent>,<div className="w-64 fixed">,Medium,https://ui.shadcn.com/docs/components/sidebar
46
+ 45,Sidebar,Wrap in SidebarProvider,Use SidebarProvider for sidebar state management,SidebarProvider at layout level,Sidebar without provider,<SidebarProvider><Sidebar></SidebarProvider>,<Sidebar> without provider,High,https://ui.shadcn.com/docs/components/sidebar
47
+ 46,Sidebar,Use SidebarTrigger,Include SidebarTrigger for mobile toggle,SidebarTrigger for responsive toggle,Custom toggle button,<SidebarTrigger/>,<Button onClick={() => toggleSidebar()}>,Medium,https://ui.shadcn.com/docs/components/sidebar
48
+ 47,Chart,Use Chart for data viz,Chart component with Recharts integration,Chart component for dashboards,Direct Recharts without wrapper,<ChartContainer config={chartConfig}>,<ResponsiveContainer><BarChart>,Medium,https://ui.shadcn.com/docs/components/chart
49
+ 48,Chart,Define chart config,Create chartConfig for consistent theming,chartConfig with color definitions,Inline colors in charts,"{ desktop: { label: ""Desktop"", color: ""#2563eb"" } }",<Bar fill="#2563eb"/>,Medium,https://ui.shadcn.com/docs/components/chart
50
+ 49,Chart,Use ChartTooltip,Apply ChartTooltip for interactive charts,ChartTooltip with ChartTooltipContent,Recharts Tooltip directly,<ChartTooltip content={<ChartTooltipContent/>}/>,<Tooltip/> from recharts,Low,https://ui.shadcn.com/docs/components/chart
51
+ 50,Blocks,Use blocks for scaffolding,Start from shadcn blocks for common layouts,npx shadcn@latest add dashboard-01,Build dashboard from scratch,npx shadcn@latest add login-01,Custom login page from scratch,Medium,https://ui.shadcn.com/blocks
52
+ 51,Blocks,Customize block components,Modify copied block code to fit needs,Edit block files after installation,Use blocks without modification,Customize dashboard-01 layout,Use dashboard-01 as-is,Low,https://ui.shadcn.com/blocks
53
+ 52,A11y,Use semantic components,Shadcn components have built-in ARIA,Rely on component accessibility,Override ARIA attributes,<Button> has button role,<div role="button">,High,https://ui.shadcn.com/docs/components/button
54
+ 53,A11y,Maintain focus management,Dialog Sheet handle focus automatically,Let components manage focus,Custom focus handling,<Dialog> traps focus,document.querySelector().focus(),High,https://ui.shadcn.com/docs/components/dialog
55
+ 54,A11y,Provide labels,Use FormLabel and aria-label appropriately,FormLabel for form inputs,Placeholder as only label,<FormLabel>Email</FormLabel><Input/>,<Input placeholder="Email"/>,High,https://ui.shadcn.com/docs/components/form
56
+ 55,Performance,Import components individually,Import only needed components,Named imports from component files,Import all from index,import { Button } from "@/components/ui/button",import { Button Card Dialog } from "@/components/ui",Medium,
57
+ 56,Performance,Lazy load dialogs,Dynamic import for heavy dialog content,React.lazy for dialog content,Import all dialogs upfront,const HeavyContent = lazy(() => import('./Heavy')),import HeavyContent from './Heavy',Medium,
58
+ 57,Customization,Extend variants with cva,Add new variants using class-variance-authority,Extend buttonVariants for new styles,Inline classes for variants,"variants: { size: { xl: ""h-14 px-8"" } }",className="h-14 px-8",Medium,https://ui.shadcn.com/docs/components/button
59
+ 58,Customization,Create custom components,Build new components following shadcn patterns,Use cn() and cva for custom components,Different patterns for custom,const Custom = ({ className }) => <div className={cn("base" className)}>,const Custom = ({ style }) => <div style={style}>,Medium,
60
+ 59,Patterns,Use asChild for composition,asChild prop for component composition,Slot pattern with asChild,Wrapper divs for composition,<Button asChild><Link href="/">,<Button><Link href="/"></Link></Button>,Medium,https://ui.shadcn.com/docs/components/button
61
+ 60,Patterns,Combine with React Hook Form,Form + useForm for complete forms,RHF Controller with shadcn inputs,Custom form state management,<FormField control={form.control} name="email">,<Input value={email} onChange={(e) => setEmail(e.target.value)},High,https://ui.shadcn.com/docs/components/form