@su-record/vibe 2.7.2 → 2.7.5

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 (1567) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +222 -222
  3. package/LICENSE +21 -21
  4. package/README.md +580 -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 +266 -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.run.md +1 -1
  55. package/commands/vibe.spec.md +8 -8
  56. package/commands/vibe.spec.review.md +558 -558
  57. package/commands/vibe.utils.md +413 -413
  58. package/commands/vibe.voice.md +79 -79
  59. package/dist/agent/AgentLoop.d.ts +97 -0
  60. package/dist/agent/AgentLoop.d.ts.map +1 -0
  61. package/dist/agent/AgentLoop.js +546 -0
  62. package/dist/agent/AgentLoop.js.map +1 -0
  63. package/dist/agent/ConversationState.d.ts +29 -0
  64. package/dist/agent/ConversationState.d.ts.map +1 -0
  65. package/dist/agent/ConversationState.js +107 -0
  66. package/dist/agent/ConversationState.js.map +1 -0
  67. package/dist/agent/ConversationStore.d.ts +31 -0
  68. package/dist/agent/ConversationStore.d.ts.map +1 -0
  69. package/dist/agent/ConversationStore.integration.test.d.ts +2 -0
  70. package/dist/agent/ConversationStore.integration.test.d.ts.map +1 -0
  71. package/dist/agent/ConversationStore.integration.test.js +162 -0
  72. package/dist/agent/ConversationStore.integration.test.js.map +1 -0
  73. package/dist/agent/ConversationStore.js +126 -0
  74. package/dist/agent/ConversationStore.js.map +1 -0
  75. package/dist/agent/ConversationStore.test.d.ts +2 -0
  76. package/dist/agent/ConversationStore.test.d.ts.map +1 -0
  77. package/dist/agent/ConversationStore.test.js +93 -0
  78. package/dist/agent/ConversationStore.test.js.map +1 -0
  79. package/dist/agent/HeadModelSelector.d.ts +36 -0
  80. package/dist/agent/HeadModelSelector.d.ts.map +1 -0
  81. package/dist/agent/HeadModelSelector.js +124 -0
  82. package/dist/agent/HeadModelSelector.js.map +1 -0
  83. package/dist/agent/RateLimiter.d.ts +44 -0
  84. package/dist/agent/RateLimiter.d.ts.map +1 -0
  85. package/dist/agent/RateLimiter.js +71 -0
  86. package/dist/agent/RateLimiter.js.map +1 -0
  87. package/dist/agent/SystemPrompt.d.ts +35 -0
  88. package/dist/agent/SystemPrompt.d.ts.map +1 -0
  89. package/dist/agent/SystemPrompt.js +151 -0
  90. package/dist/agent/SystemPrompt.js.map +1 -0
  91. package/dist/agent/ToolExecutor.d.ts +33 -0
  92. package/dist/agent/ToolExecutor.d.ts.map +1 -0
  93. package/dist/agent/ToolExecutor.js +123 -0
  94. package/dist/agent/ToolExecutor.js.map +1 -0
  95. package/dist/agent/ToolRegistry.d.ts +37 -0
  96. package/dist/agent/ToolRegistry.d.ts.map +1 -0
  97. package/dist/agent/ToolRegistry.js +125 -0
  98. package/dist/agent/ToolRegistry.js.map +1 -0
  99. package/dist/agent/__tests__/AgentLoop.test.d.ts +6 -0
  100. package/dist/agent/__tests__/AgentLoop.test.d.ts.map +1 -0
  101. package/dist/agent/__tests__/AgentLoop.test.js +208 -0
  102. package/dist/agent/__tests__/AgentLoop.test.js.map +1 -0
  103. package/dist/agent/__tests__/ConversationState.test.d.ts +6 -0
  104. package/dist/agent/__tests__/ConversationState.test.d.ts.map +1 -0
  105. package/dist/agent/__tests__/ConversationState.test.js +102 -0
  106. package/dist/agent/__tests__/ConversationState.test.js.map +1 -0
  107. package/dist/agent/__tests__/HeadModelSelector.test.d.ts +6 -0
  108. package/dist/agent/__tests__/HeadModelSelector.test.d.ts.map +1 -0
  109. package/dist/agent/__tests__/HeadModelSelector.test.js +132 -0
  110. package/dist/agent/__tests__/HeadModelSelector.test.js.map +1 -0
  111. package/dist/agent/__tests__/JobManager.test.d.ts +6 -0
  112. package/dist/agent/__tests__/JobManager.test.d.ts.map +1 -0
  113. package/dist/agent/__tests__/JobManager.test.js +197 -0
  114. package/dist/agent/__tests__/JobManager.test.js.map +1 -0
  115. package/dist/agent/__tests__/MediaPreprocessor.test.d.ts +6 -0
  116. package/dist/agent/__tests__/MediaPreprocessor.test.d.ts.map +1 -0
  117. package/dist/agent/__tests__/MediaPreprocessor.test.js +163 -0
  118. package/dist/agent/__tests__/MediaPreprocessor.test.js.map +1 -0
  119. package/dist/agent/__tests__/ToolExecutor.test.d.ts +6 -0
  120. package/dist/agent/__tests__/ToolExecutor.test.d.ts.map +1 -0
  121. package/dist/agent/__tests__/ToolExecutor.test.js +140 -0
  122. package/dist/agent/__tests__/ToolExecutor.test.js.map +1 -0
  123. package/dist/agent/__tests__/ToolRegistry.test.d.ts +6 -0
  124. package/dist/agent/__tests__/ToolRegistry.test.d.ts.map +1 -0
  125. package/dist/agent/__tests__/ToolRegistry.test.js +172 -0
  126. package/dist/agent/__tests__/ToolRegistry.test.js.map +1 -0
  127. package/dist/agent/__tests__/tools.test.d.ts +6 -0
  128. package/dist/agent/__tests__/tools.test.d.ts.map +1 -0
  129. package/dist/agent/__tests__/tools.test.js +177 -0
  130. package/dist/agent/__tests__/tools.test.js.map +1 -0
  131. package/dist/agent/index.d.ts +19 -0
  132. package/dist/agent/index.d.ts.map +1 -0
  133. package/dist/agent/index.js +18 -0
  134. package/dist/agent/index.js.map +1 -0
  135. package/dist/agent/jobs/JobManager.d.ts +46 -0
  136. package/dist/agent/jobs/JobManager.d.ts.map +1 -0
  137. package/dist/agent/jobs/JobManager.js +213 -0
  138. package/dist/agent/jobs/JobManager.js.map +1 -0
  139. package/dist/agent/jobs/ProgressReporter.d.ts +32 -0
  140. package/dist/agent/jobs/ProgressReporter.d.ts.map +1 -0
  141. package/dist/agent/jobs/ProgressReporter.js +82 -0
  142. package/dist/agent/jobs/ProgressReporter.js.map +1 -0
  143. package/dist/agent/jobs/types.d.ts +32 -0
  144. package/dist/agent/jobs/types.d.ts.map +1 -0
  145. package/dist/agent/jobs/types.js +6 -0
  146. package/dist/agent/jobs/types.js.map +1 -0
  147. package/dist/agent/policy-integration.test.d.ts +6 -0
  148. package/dist/agent/policy-integration.test.d.ts.map +1 -0
  149. package/dist/agent/policy-integration.test.js +148 -0
  150. package/dist/agent/policy-integration.test.js.map +1 -0
  151. package/dist/agent/preprocessors/MediaPreprocessor.d.ts +63 -0
  152. package/dist/agent/preprocessors/MediaPreprocessor.d.ts.map +1 -0
  153. package/dist/agent/preprocessors/MediaPreprocessor.js +320 -0
  154. package/dist/agent/preprocessors/MediaPreprocessor.js.map +1 -0
  155. package/dist/agent/providers/claude-head.d.ts +17 -0
  156. package/dist/agent/providers/claude-head.d.ts.map +1 -0
  157. package/dist/agent/providers/claude-head.js +124 -0
  158. package/dist/agent/providers/claude-head.js.map +1 -0
  159. package/dist/agent/providers/gpt-head.d.ts +30 -0
  160. package/dist/agent/providers/gpt-head.d.ts.map +1 -0
  161. package/dist/agent/providers/gpt-head.js +359 -0
  162. package/dist/agent/providers/gpt-head.js.map +1 -0
  163. package/dist/agent/tools/claude-code.d.ts +11 -0
  164. package/dist/agent/tools/claude-code.d.ts.map +1 -0
  165. package/dist/agent/tools/claude-code.js +148 -0
  166. package/dist/agent/tools/claude-code.js.map +1 -0
  167. package/dist/agent/tools/dm-pair.d.ts +23 -0
  168. package/dist/agent/tools/dm-pair.d.ts.map +1 -0
  169. package/dist/agent/tools/dm-pair.js +70 -0
  170. package/dist/agent/tools/dm-pair.js.map +1 -0
  171. package/dist/agent/tools/dm-pair.test.d.ts +6 -0
  172. package/dist/agent/tools/dm-pair.test.d.ts.map +1 -0
  173. package/dist/agent/tools/dm-pair.test.js +106 -0
  174. package/dist/agent/tools/dm-pair.test.js.map +1 -0
  175. package/dist/agent/tools/gemini-stt.d.ts +9 -0
  176. package/dist/agent/tools/gemini-stt.d.ts.map +1 -0
  177. package/dist/agent/tools/gemini-stt.js +33 -0
  178. package/dist/agent/tools/gemini-stt.js.map +1 -0
  179. package/dist/agent/tools/google-search.d.ts +9 -0
  180. package/dist/agent/tools/google-search.d.ts.map +1 -0
  181. package/dist/agent/tools/google-search.js +38 -0
  182. package/dist/agent/tools/google-search.js.map +1 -0
  183. package/dist/agent/tools/index.d.ts +22 -0
  184. package/dist/agent/tools/index.d.ts.map +1 -0
  185. package/dist/agent/tools/index.js +37 -0
  186. package/dist/agent/tools/index.js.map +1 -0
  187. package/dist/agent/tools/kimi-analyze.d.ts +9 -0
  188. package/dist/agent/tools/kimi-analyze.d.ts.map +1 -0
  189. package/dist/agent/tools/kimi-analyze.js +49 -0
  190. package/dist/agent/tools/kimi-analyze.js.map +1 -0
  191. package/dist/agent/tools/manage-memory.d.ts +10 -0
  192. package/dist/agent/tools/manage-memory.d.ts.map +1 -0
  193. package/dist/agent/tools/manage-memory.js +70 -0
  194. package/dist/agent/tools/manage-memory.js.map +1 -0
  195. package/dist/agent/tools/send-imessage.d.ts +19 -0
  196. package/dist/agent/tools/send-imessage.d.ts.map +1 -0
  197. package/dist/agent/tools/send-imessage.js +67 -0
  198. package/dist/agent/tools/send-imessage.js.map +1 -0
  199. package/dist/agent/tools/send-slack.d.ts +21 -0
  200. package/dist/agent/tools/send-slack.d.ts.map +1 -0
  201. package/dist/agent/tools/send-slack.js +63 -0
  202. package/dist/agent/tools/send-slack.js.map +1 -0
  203. package/dist/agent/tools/send-telegram.d.ts +20 -0
  204. package/dist/agent/tools/send-telegram.d.ts.map +1 -0
  205. package/dist/agent/tools/send-telegram.js +58 -0
  206. package/dist/agent/tools/send-telegram.js.map +1 -0
  207. package/dist/agent/tools/vision-analyze.d.ts +11 -0
  208. package/dist/agent/tools/vision-analyze.d.ts.map +1 -0
  209. package/dist/agent/tools/vision-analyze.js +103 -0
  210. package/dist/agent/tools/vision-analyze.js.map +1 -0
  211. package/dist/agent/tools/vision-capture.d.ts +13 -0
  212. package/dist/agent/tools/vision-capture.d.ts.map +1 -0
  213. package/dist/agent/tools/vision-capture.js +87 -0
  214. package/dist/agent/tools/vision-capture.js.map +1 -0
  215. package/dist/agent/tools/web-browse.d.ts +20 -0
  216. package/dist/agent/tools/web-browse.d.ts.map +1 -0
  217. package/dist/agent/tools/web-browse.js +196 -0
  218. package/dist/agent/tools/web-browse.js.map +1 -0
  219. package/dist/agent/types.d.ts +151 -0
  220. package/dist/agent/types.d.ts.map +1 -0
  221. package/dist/agent/types.js +6 -0
  222. package/dist/agent/types.js.map +1 -0
  223. package/dist/bridge/telegram-assistant-bridge.d.ts +10 -0
  224. package/dist/bridge/telegram-assistant-bridge.d.ts.map +1 -0
  225. package/dist/bridge/telegram-assistant-bridge.js +274 -0
  226. package/dist/bridge/telegram-assistant-bridge.js.map +1 -0
  227. package/dist/bridge/telegram-bridge.d.ts +10 -0
  228. package/dist/bridge/telegram-bridge.d.ts.map +1 -0
  229. package/dist/bridge/telegram-bridge.js +154 -0
  230. package/dist/bridge/telegram-bridge.js.map +1 -0
  231. package/dist/cli/collaborator.js +52 -52
  232. package/dist/cli/commands/autostart.d.ts +19 -0
  233. package/dist/cli/commands/autostart.d.ts.map +1 -0
  234. package/dist/cli/commands/autostart.js +213 -0
  235. package/dist/cli/commands/autostart.js.map +1 -0
  236. package/dist/cli/commands/browser.d.ts +12 -0
  237. package/dist/cli/commands/browser.d.ts.map +1 -0
  238. package/dist/cli/commands/browser.js +50 -0
  239. package/dist/cli/commands/browser.js.map +1 -0
  240. package/dist/cli/commands/daemon.d.ts +16 -0
  241. package/dist/cli/commands/daemon.d.ts.map +1 -0
  242. package/dist/cli/commands/daemon.js +277 -0
  243. package/dist/cli/commands/daemon.js.map +1 -0
  244. package/dist/cli/commands/device.d.ts +9 -0
  245. package/dist/cli/commands/device.d.ts.map +1 -0
  246. package/dist/cli/commands/device.js +56 -0
  247. package/dist/cli/commands/device.js.map +1 -0
  248. package/dist/cli/commands/evolution.js +12 -12
  249. package/dist/cli/commands/google.d.ts +12 -0
  250. package/dist/cli/commands/google.d.ts.map +1 -0
  251. package/dist/cli/commands/google.js +83 -0
  252. package/dist/cli/commands/google.js.map +1 -0
  253. package/dist/cli/commands/imessage.d.ts +11 -0
  254. package/dist/cli/commands/imessage.d.ts.map +1 -0
  255. package/dist/cli/commands/imessage.js +85 -0
  256. package/dist/cli/commands/imessage.js.map +1 -0
  257. package/dist/cli/commands/info.js +54 -54
  258. package/dist/cli/commands/init.js +6 -6
  259. package/dist/cli/commands/interface.d.ts +15 -0
  260. package/dist/cli/commands/interface.d.ts.map +1 -0
  261. package/dist/cli/commands/interface.js +167 -0
  262. package/dist/cli/commands/interface.js.map +1 -0
  263. package/dist/cli/commands/job.d.ts +14 -0
  264. package/dist/cli/commands/job.d.ts.map +1 -0
  265. package/dist/cli/commands/job.js +170 -0
  266. package/dist/cli/commands/job.js.map +1 -0
  267. package/dist/cli/commands/pc.d.ts +12 -0
  268. package/dist/cli/commands/pc.d.ts.map +1 -0
  269. package/dist/cli/commands/pc.js +75 -0
  270. package/dist/cli/commands/pc.js.map +1 -0
  271. package/dist/cli/commands/policy.d.ts +10 -0
  272. package/dist/cli/commands/policy.d.ts.map +1 -0
  273. package/dist/cli/commands/policy.js +75 -0
  274. package/dist/cli/commands/policy.js.map +1 -0
  275. package/dist/cli/commands/remove.js +14 -14
  276. package/dist/cli/commands/sandbox.d.ts +10 -0
  277. package/dist/cli/commands/sandbox.d.ts.map +1 -0
  278. package/dist/cli/commands/sandbox.js +53 -0
  279. package/dist/cli/commands/sandbox.js.map +1 -0
  280. package/dist/cli/commands/sentinel.js +27 -27
  281. package/dist/cli/commands/setup.d.ts.map +1 -1
  282. package/dist/cli/commands/setup.js +1 -25
  283. package/dist/cli/commands/setup.js.map +1 -1
  284. package/dist/cli/commands/slack.js +10 -10
  285. package/dist/cli/commands/sync.d.ts +9 -0
  286. package/dist/cli/commands/sync.d.ts.map +1 -0
  287. package/dist/cli/commands/sync.js +167 -0
  288. package/dist/cli/commands/sync.js.map +1 -0
  289. package/dist/cli/commands/telegram.js +12 -12
  290. package/dist/cli/commands/vision.d.ts +12 -0
  291. package/dist/cli/commands/vision.d.ts.map +1 -0
  292. package/dist/cli/commands/vision.js +74 -0
  293. package/dist/cli/commands/vision.js.map +1 -0
  294. package/dist/cli/commands/voice.d.ts +12 -0
  295. package/dist/cli/commands/voice.d.ts.map +1 -0
  296. package/dist/cli/commands/voice.js +67 -0
  297. package/dist/cli/commands/voice.js.map +1 -0
  298. package/dist/cli/commands/webhook.d.ts +9 -0
  299. package/dist/cli/commands/webhook.d.ts.map +1 -0
  300. package/dist/cli/commands/webhook.js +85 -0
  301. package/dist/cli/commands/webhook.js.map +1 -0
  302. package/dist/cli/detect.js +32 -32
  303. package/dist/cli/hud.d.ts +46 -0
  304. package/dist/cli/hud.d.ts.map +1 -0
  305. package/dist/cli/hud.js +392 -0
  306. package/dist/cli/hud.js.map +1 -0
  307. package/dist/cli/index.d.ts.map +1 -1
  308. package/dist/cli/index.js +48 -53
  309. package/dist/cli/index.js.map +1 -1
  310. package/dist/cli/llm/az-commands.d.ts +12 -0
  311. package/dist/cli/llm/az-commands.d.ts.map +1 -0
  312. package/dist/cli/llm/az-commands.js +99 -0
  313. package/dist/cli/llm/az-commands.js.map +1 -0
  314. package/dist/cli/llm/claude-commands.js +16 -16
  315. package/dist/cli/llm/config.js +18 -18
  316. package/dist/cli/llm/gemini-commands.js +47 -47
  317. package/dist/cli/llm/gpt-commands.d.ts +6 -13
  318. package/dist/cli/llm/gpt-commands.d.ts.map +1 -1
  319. package/dist/cli/llm/gpt-commands.js +47 -117
  320. package/dist/cli/llm/gpt-commands.js.map +1 -1
  321. package/dist/cli/llm/help.js +21 -21
  322. package/dist/cli/llm/kimi-commands.d.ts +12 -0
  323. package/dist/cli/llm/kimi-commands.d.ts.map +1 -0
  324. package/dist/cli/llm/kimi-commands.js +100 -0
  325. package/dist/cli/llm/kimi-commands.js.map +1 -0
  326. package/dist/cli/llm/nvidia-commands.d.ts +16 -0
  327. package/dist/cli/llm/nvidia-commands.d.ts.map +1 -0
  328. package/dist/cli/llm/nvidia-commands.js +105 -0
  329. package/dist/cli/llm/nvidia-commands.js.map +1 -0
  330. package/dist/cli/llm/priority-commands.d.ts +18 -0
  331. package/dist/cli/llm/priority-commands.d.ts.map +1 -0
  332. package/dist/cli/llm/priority-commands.js +69 -0
  333. package/dist/cli/llm/priority-commands.js.map +1 -0
  334. package/dist/cli/postinstall/cursor-agents.js +32 -32
  335. package/dist/cli/postinstall/cursor-rules.js +83 -83
  336. package/dist/cli/postinstall/cursor-skills.js +743 -743
  337. package/dist/cli/postinstall/npmrc.d.ts +9 -0
  338. package/dist/cli/postinstall/npmrc.d.ts.map +1 -0
  339. package/dist/cli/postinstall/npmrc.js +80 -0
  340. package/dist/cli/postinstall/npmrc.js.map +1 -0
  341. package/dist/cli/types.d.ts +1 -0
  342. package/dist/cli/types.d.ts.map +1 -1
  343. package/dist/daemon/DaemonIPC.d.ts +40 -0
  344. package/dist/daemon/DaemonIPC.d.ts.map +1 -0
  345. package/dist/daemon/DaemonIPC.js +327 -0
  346. package/dist/daemon/DaemonIPC.js.map +1 -0
  347. package/dist/daemon/InterfaceManager.d.ts +62 -0
  348. package/dist/daemon/InterfaceManager.d.ts.map +1 -0
  349. package/dist/daemon/InterfaceManager.js +785 -0
  350. package/dist/daemon/InterfaceManager.js.map +1 -0
  351. package/dist/daemon/SessionPool.d.ts +80 -0
  352. package/dist/daemon/SessionPool.d.ts.map +1 -0
  353. package/dist/daemon/SessionPool.js +414 -0
  354. package/dist/daemon/SessionPool.js.map +1 -0
  355. package/dist/daemon/VibeDaemon.d.ts +69 -0
  356. package/dist/daemon/VibeDaemon.d.ts.map +1 -0
  357. package/dist/daemon/VibeDaemon.js +400 -0
  358. package/dist/daemon/VibeDaemon.js.map +1 -0
  359. package/dist/daemon/daemon.test.d.ts +6 -0
  360. package/dist/daemon/daemon.test.d.ts.map +1 -0
  361. package/dist/daemon/daemon.test.js +348 -0
  362. package/dist/daemon/daemon.test.js.map +1 -0
  363. package/dist/daemon/index.d.ts +10 -0
  364. package/dist/daemon/index.d.ts.map +1 -0
  365. package/dist/daemon/index.js +9 -0
  366. package/dist/daemon/index.js.map +1 -0
  367. package/dist/daemon/pipeline.test.d.ts +6 -0
  368. package/dist/daemon/pipeline.test.d.ts.map +1 -0
  369. package/dist/daemon/pipeline.test.js +258 -0
  370. package/dist/daemon/pipeline.test.js.map +1 -0
  371. package/dist/daemon/preflight.d.ts +23 -0
  372. package/dist/daemon/preflight.d.ts.map +1 -0
  373. package/dist/daemon/preflight.js +204 -0
  374. package/dist/daemon/preflight.js.map +1 -0
  375. package/dist/daemon/preflight.test.d.ts +6 -0
  376. package/dist/daemon/preflight.test.d.ts.map +1 -0
  377. package/dist/daemon/preflight.test.js +88 -0
  378. package/dist/daemon/preflight.test.js.map +1 -0
  379. package/dist/daemon/types.d.ts +117 -0
  380. package/dist/daemon/types.d.ts.map +1 -0
  381. package/dist/daemon/types.js +15 -0
  382. package/dist/daemon/types.js.map +1 -0
  383. package/dist/infra/lib/DeepInit.js +24 -24
  384. package/dist/infra/lib/IterationTracker.js +11 -11
  385. package/dist/infra/lib/PythonParser.js +108 -108
  386. package/dist/infra/lib/ReviewRace.js +96 -96
  387. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  388. package/dist/infra/lib/SkillQualityGate.js +9 -9
  389. package/dist/infra/lib/SkillRepository.js +159 -159
  390. package/dist/infra/lib/UltraQA.js +99 -99
  391. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  392. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  393. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  394. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  395. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  396. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  397. package/dist/infra/lib/az/auth.d.ts +15 -0
  398. package/dist/infra/lib/az/auth.d.ts.map +1 -0
  399. package/dist/infra/lib/az/auth.js +67 -0
  400. package/dist/infra/lib/az/auth.js.map +1 -0
  401. package/dist/infra/lib/az/chat.d.ts +26 -0
  402. package/dist/infra/lib/az/chat.d.ts.map +1 -0
  403. package/dist/infra/lib/az/chat.js +116 -0
  404. package/dist/infra/lib/az/chat.js.map +1 -0
  405. package/dist/infra/lib/az/embedding.d.ts +13 -0
  406. package/dist/infra/lib/az/embedding.d.ts.map +1 -0
  407. package/dist/infra/lib/az/embedding.js +60 -0
  408. package/dist/infra/lib/az/embedding.js.map +1 -0
  409. package/dist/infra/lib/az/index.d.ts +9 -0
  410. package/dist/infra/lib/az/index.d.ts.map +1 -0
  411. package/dist/infra/lib/az/index.js +9 -0
  412. package/dist/infra/lib/az/index.js.map +1 -0
  413. package/dist/infra/lib/az/orchestration.d.ts +11 -0
  414. package/dist/infra/lib/az/orchestration.d.ts.map +1 -0
  415. package/dist/infra/lib/az/orchestration.js +24 -0
  416. package/dist/infra/lib/az/orchestration.js.map +1 -0
  417. package/dist/infra/lib/az/types.d.ts +35 -0
  418. package/dist/infra/lib/az/types.d.ts.map +1 -0
  419. package/dist/infra/lib/az/types.js +5 -0
  420. package/dist/infra/lib/az/types.js.map +1 -0
  421. package/dist/infra/lib/az-api.d.ts +5 -0
  422. package/dist/infra/lib/az-api.d.ts.map +1 -0
  423. package/dist/infra/lib/az-api.js +5 -0
  424. package/dist/infra/lib/az-api.js.map +1 -0
  425. package/dist/infra/lib/az-constants.d.ts +44 -0
  426. package/dist/infra/lib/az-constants.d.ts.map +1 -0
  427. package/dist/infra/lib/az-constants.js +58 -0
  428. package/dist/infra/lib/az-constants.js.map +1 -0
  429. package/dist/infra/lib/az-storage.d.ts +12 -0
  430. package/dist/infra/lib/az-storage.d.ts.map +1 -0
  431. package/dist/infra/lib/az-storage.js +59 -0
  432. package/dist/infra/lib/az-storage.js.map +1 -0
  433. package/dist/infra/lib/claude-storage.d.ts +12 -0
  434. package/dist/infra/lib/claude-storage.d.ts.map +1 -0
  435. package/dist/infra/lib/claude-storage.js +59 -0
  436. package/dist/infra/lib/claude-storage.js.map +1 -0
  437. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  438. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  439. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  440. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  441. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  442. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  443. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  444. package/dist/infra/lib/gemini/constants.js +14 -14
  445. package/dist/infra/lib/gemini/orchestration.js +5 -5
  446. package/dist/infra/lib/gemini-api.d.ts +13 -0
  447. package/dist/infra/lib/gemini-api.d.ts.map +1 -0
  448. package/dist/infra/lib/gemini-api.js +13 -0
  449. package/dist/infra/lib/gemini-api.js.map +1 -0
  450. package/dist/infra/lib/gemini-constants.d.ts +19 -0
  451. package/dist/infra/lib/gemini-constants.d.ts.map +1 -0
  452. package/dist/infra/lib/gemini-constants.js +34 -0
  453. package/dist/infra/lib/gemini-constants.js.map +1 -0
  454. package/dist/infra/lib/gemini-oauth.d.ts +60 -0
  455. package/dist/infra/lib/gemini-oauth.d.ts.map +1 -0
  456. package/dist/infra/lib/gemini-oauth.js +386 -0
  457. package/dist/infra/lib/gemini-oauth.js.map +1 -0
  458. package/dist/infra/lib/gemini-storage.d.ts +64 -0
  459. package/dist/infra/lib/gemini-storage.d.ts.map +1 -0
  460. package/dist/infra/lib/gemini-storage.js +177 -0
  461. package/dist/infra/lib/gemini-storage.js.map +1 -0
  462. package/dist/infra/lib/gpt/auth.d.ts +18 -2
  463. package/dist/infra/lib/gpt/auth.d.ts.map +1 -1
  464. package/dist/infra/lib/gpt/auth.js +91 -7
  465. package/dist/infra/lib/gpt/auth.js.map +1 -1
  466. package/dist/infra/lib/gpt/chat.d.ts.map +1 -1
  467. package/dist/infra/lib/gpt/chat.js +1 -0
  468. package/dist/infra/lib/gpt/chat.js.map +1 -1
  469. package/dist/infra/lib/gpt/oauth.js +44 -44
  470. package/dist/infra/lib/gpt/orchestration.js +4 -4
  471. package/dist/infra/lib/gpt/types.d.ts +1 -1
  472. package/dist/infra/lib/gpt/types.d.ts.map +1 -1
  473. package/dist/infra/lib/gpt-api.d.ts +13 -0
  474. package/dist/infra/lib/gpt-api.d.ts.map +1 -0
  475. package/dist/infra/lib/gpt-api.js +13 -0
  476. package/dist/infra/lib/gpt-api.js.map +1 -0
  477. package/dist/infra/lib/gpt-constants.d.ts +12 -0
  478. package/dist/infra/lib/gpt-constants.d.ts.map +1 -0
  479. package/dist/infra/lib/gpt-constants.js +18 -0
  480. package/dist/infra/lib/gpt-constants.js.map +1 -0
  481. package/dist/infra/lib/gpt-oauth.d.ts +66 -0
  482. package/dist/infra/lib/gpt-oauth.d.ts.map +1 -0
  483. package/dist/infra/lib/gpt-oauth.js +389 -0
  484. package/dist/infra/lib/gpt-oauth.js.map +1 -0
  485. package/dist/infra/lib/gpt-storage.d.ts +64 -0
  486. package/dist/infra/lib/gpt-storage.d.ts.map +1 -0
  487. package/dist/infra/lib/gpt-storage.js +180 -0
  488. package/dist/infra/lib/gpt-storage.js.map +1 -0
  489. package/dist/infra/lib/kimi/auth.d.ts +10 -0
  490. package/dist/infra/lib/kimi/auth.d.ts.map +1 -0
  491. package/dist/infra/lib/kimi/auth.js +45 -0
  492. package/dist/infra/lib/kimi/auth.js.map +1 -0
  493. package/dist/infra/lib/kimi/chat.d.ts +26 -0
  494. package/dist/infra/lib/kimi/chat.d.ts.map +1 -0
  495. package/dist/infra/lib/kimi/chat.js +115 -0
  496. package/dist/infra/lib/kimi/chat.js.map +1 -0
  497. package/dist/infra/lib/kimi/index.d.ts +8 -0
  498. package/dist/infra/lib/kimi/index.d.ts.map +1 -0
  499. package/dist/infra/lib/kimi/index.js +8 -0
  500. package/dist/infra/lib/kimi/index.js.map +1 -0
  501. package/dist/infra/lib/kimi/orchestration.d.ts +10 -0
  502. package/dist/infra/lib/kimi/orchestration.d.ts.map +1 -0
  503. package/dist/infra/lib/kimi/orchestration.js +22 -0
  504. package/dist/infra/lib/kimi/orchestration.js.map +1 -0
  505. package/dist/infra/lib/kimi/types.d.ts +30 -0
  506. package/dist/infra/lib/kimi/types.d.ts.map +1 -0
  507. package/dist/infra/lib/kimi/types.js +5 -0
  508. package/dist/infra/lib/kimi/types.js.map +1 -0
  509. package/dist/infra/lib/kimi-api.d.ts +5 -0
  510. package/dist/infra/lib/kimi-api.d.ts.map +1 -0
  511. package/dist/infra/lib/kimi-api.js +5 -0
  512. package/dist/infra/lib/kimi-api.js.map +1 -0
  513. package/dist/infra/lib/kimi-constants.d.ts +27 -0
  514. package/dist/infra/lib/kimi-constants.d.ts.map +1 -0
  515. package/dist/infra/lib/kimi-constants.js +31 -0
  516. package/dist/infra/lib/kimi-constants.js.map +1 -0
  517. package/dist/infra/lib/kimi-storage.d.ts +12 -0
  518. package/dist/infra/lib/kimi-storage.d.ts.map +1 -0
  519. package/dist/infra/lib/kimi-storage.js +59 -0
  520. package/dist/infra/lib/kimi-storage.js.map +1 -0
  521. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  522. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  523. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  524. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  525. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  526. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  527. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  528. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  529. package/dist/infra/lib/priority-config.d.ts +39 -0
  530. package/dist/infra/lib/priority-config.d.ts.map +1 -0
  531. package/dist/infra/lib/priority-config.js +137 -0
  532. package/dist/infra/lib/priority-config.js.map +1 -0
  533. package/dist/infra/lib/sync/constants.d.ts +21 -0
  534. package/dist/infra/lib/sync/constants.d.ts.map +1 -0
  535. package/dist/infra/lib/sync/constants.js +78 -0
  536. package/dist/infra/lib/sync/constants.js.map +1 -0
  537. package/dist/infra/lib/sync/crypto.d.ts +23 -0
  538. package/dist/infra/lib/sync/crypto.d.ts.map +1 -0
  539. package/dist/infra/lib/sync/crypto.js +55 -0
  540. package/dist/infra/lib/sync/crypto.js.map +1 -0
  541. package/dist/infra/lib/sync/drive.d.ts +22 -0
  542. package/dist/infra/lib/sync/drive.d.ts.map +1 -0
  543. package/dist/infra/lib/sync/drive.js +99 -0
  544. package/dist/infra/lib/sync/drive.js.map +1 -0
  545. package/dist/infra/lib/sync/index.d.ts +9 -0
  546. package/dist/infra/lib/sync/index.d.ts.map +1 -0
  547. package/dist/infra/lib/sync/index.js +9 -0
  548. package/dist/infra/lib/sync/index.js.map +1 -0
  549. package/dist/infra/lib/sync/oauth.d.ts +12 -0
  550. package/dist/infra/lib/sync/oauth.d.ts.map +1 -0
  551. package/dist/infra/lib/sync/oauth.js +157 -0
  552. package/dist/infra/lib/sync/oauth.js.map +1 -0
  553. package/dist/infra/lib/sync/storage.d.ts +21 -0
  554. package/dist/infra/lib/sync/storage.d.ts.map +1 -0
  555. package/dist/infra/lib/sync/storage.js +32 -0
  556. package/dist/infra/lib/sync/storage.js.map +1 -0
  557. package/dist/infra/orchestrator/AgentManager.js +12 -12
  558. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  559. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  560. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  561. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  562. package/dist/infra/policy/Evidence.d.ts +30 -0
  563. package/dist/infra/policy/Evidence.d.ts.map +1 -0
  564. package/dist/infra/policy/Evidence.js +134 -0
  565. package/dist/infra/policy/Evidence.js.map +1 -0
  566. package/dist/infra/policy/PolicyEngine.d.ts +34 -0
  567. package/dist/infra/policy/PolicyEngine.d.ts.map +1 -0
  568. package/dist/infra/policy/PolicyEngine.js +219 -0
  569. package/dist/infra/policy/PolicyEngine.js.map +1 -0
  570. package/dist/infra/policy/PolicyStore.d.ts +36 -0
  571. package/dist/infra/policy/PolicyStore.d.ts.map +1 -0
  572. package/dist/infra/policy/PolicyStore.js +160 -0
  573. package/dist/infra/policy/PolicyStore.js.map +1 -0
  574. package/dist/infra/policy/RiskCalculator.d.ts +20 -0
  575. package/dist/infra/policy/RiskCalculator.d.ts.map +1 -0
  576. package/dist/infra/policy/RiskCalculator.js +64 -0
  577. package/dist/infra/policy/RiskCalculator.js.map +1 -0
  578. package/dist/infra/policy/default-policies.d.ts +13 -0
  579. package/dist/infra/policy/default-policies.d.ts.map +1 -0
  580. package/dist/infra/policy/default-policies.js +99 -0
  581. package/dist/infra/policy/default-policies.js.map +1 -0
  582. package/dist/infra/policy/index.d.ts +11 -0
  583. package/dist/infra/policy/index.d.ts.map +1 -0
  584. package/dist/infra/policy/index.js +10 -0
  585. package/dist/infra/policy/index.js.map +1 -0
  586. package/dist/infra/policy/policy.test.d.ts +5 -0
  587. package/dist/infra/policy/policy.test.d.ts.map +1 -0
  588. package/dist/infra/policy/policy.test.js +628 -0
  589. package/dist/infra/policy/policy.test.js.map +1 -0
  590. package/dist/infra/policy/types.d.ts +71 -0
  591. package/dist/infra/policy/types.d.ts.map +1 -0
  592. package/dist/infra/policy/types.js +18 -0
  593. package/dist/infra/policy/types.js.map +1 -0
  594. package/dist/interface/BaseInterface.d.ts +37 -0
  595. package/dist/interface/BaseInterface.d.ts.map +1 -0
  596. package/dist/interface/BaseInterface.js +105 -0
  597. package/dist/interface/BaseInterface.js.map +1 -0
  598. package/dist/interface/ClaudeCodeBridge.d.ts +38 -0
  599. package/dist/interface/ClaudeCodeBridge.d.ts.map +1 -0
  600. package/dist/interface/ClaudeCodeBridge.js +216 -0
  601. package/dist/interface/ClaudeCodeBridge.js.map +1 -0
  602. package/dist/interface/imessage/IMessageBot.d.ts +33 -0
  603. package/dist/interface/imessage/IMessageBot.d.ts.map +1 -0
  604. package/dist/interface/imessage/IMessageBot.js +222 -0
  605. package/dist/interface/imessage/IMessageBot.js.map +1 -0
  606. package/dist/interface/imessage/IMessageFormatter.d.ts +15 -0
  607. package/dist/interface/imessage/IMessageFormatter.d.ts.map +1 -0
  608. package/dist/interface/imessage/IMessageFormatter.js +81 -0
  609. package/dist/interface/imessage/IMessageFormatter.js.map +1 -0
  610. package/dist/interface/imessage/IMessageRpcClient.d.ts +39 -0
  611. package/dist/interface/imessage/IMessageRpcClient.d.ts.map +1 -0
  612. package/dist/interface/imessage/IMessageRpcClient.js +174 -0
  613. package/dist/interface/imessage/IMessageRpcClient.js.map +1 -0
  614. package/dist/interface/imessage/IMessageSender.d.ts +19 -0
  615. package/dist/interface/imessage/IMessageSender.d.ts.map +1 -0
  616. package/dist/interface/imessage/IMessageSender.js +136 -0
  617. package/dist/interface/imessage/IMessageSender.js.map +1 -0
  618. package/dist/interface/imessage/__tests__/IMessageBot.test.d.ts +5 -0
  619. package/dist/interface/imessage/__tests__/IMessageBot.test.d.ts.map +1 -0
  620. package/dist/interface/imessage/__tests__/IMessageBot.test.js +60 -0
  621. package/dist/interface/imessage/__tests__/IMessageBot.test.js.map +1 -0
  622. package/dist/interface/imessage/__tests__/IMessageFormatter.test.d.ts +5 -0
  623. package/dist/interface/imessage/__tests__/IMessageFormatter.test.d.ts.map +1 -0
  624. package/dist/interface/imessage/__tests__/IMessageFormatter.test.js +110 -0
  625. package/dist/interface/imessage/__tests__/IMessageFormatter.test.js.map +1 -0
  626. package/dist/interface/imessage/__tests__/IMessageSender.test.d.ts +5 -0
  627. package/dist/interface/imessage/__tests__/IMessageSender.test.d.ts.map +1 -0
  628. package/dist/interface/imessage/__tests__/IMessageSender.test.js +67 -0
  629. package/dist/interface/imessage/__tests__/IMessageSender.test.js.map +1 -0
  630. package/dist/interface/imessage/index.d.ts +8 -0
  631. package/dist/interface/imessage/index.d.ts.map +1 -0
  632. package/dist/interface/imessage/index.js +8 -0
  633. package/dist/interface/imessage/index.js.map +1 -0
  634. package/dist/interface/index.d.ts +26 -0
  635. package/dist/interface/index.d.ts.map +1 -0
  636. package/dist/interface/index.js +26 -0
  637. package/dist/interface/index.js.map +1 -0
  638. package/dist/interface/interface.test.d.ts +5 -0
  639. package/dist/interface/interface.test.d.ts.map +1 -0
  640. package/dist/interface/interface.test.js +442 -0
  641. package/dist/interface/interface.test.js.map +1 -0
  642. package/dist/interface/slack/SlackBot.d.ts +83 -0
  643. package/dist/interface/slack/SlackBot.d.ts.map +1 -0
  644. package/dist/interface/slack/SlackBot.js +563 -0
  645. package/dist/interface/slack/SlackBot.js.map +1 -0
  646. package/dist/interface/slack/SlackFormatter.d.ts +19 -0
  647. package/dist/interface/slack/SlackFormatter.d.ts.map +1 -0
  648. package/dist/interface/slack/SlackFormatter.js +76 -0
  649. package/dist/interface/slack/SlackFormatter.js.map +1 -0
  650. package/dist/interface/slack/__tests__/SlackBot.test.d.ts +5 -0
  651. package/dist/interface/slack/__tests__/SlackBot.test.d.ts.map +1 -0
  652. package/dist/interface/slack/__tests__/SlackBot.test.js +37 -0
  653. package/dist/interface/slack/__tests__/SlackBot.test.js.map +1 -0
  654. package/dist/interface/slack/__tests__/SlackFormatter.test.d.ts +5 -0
  655. package/dist/interface/slack/__tests__/SlackFormatter.test.d.ts.map +1 -0
  656. package/dist/interface/slack/__tests__/SlackFormatter.test.js +93 -0
  657. package/dist/interface/slack/__tests__/SlackFormatter.test.js.map +1 -0
  658. package/dist/interface/slack/index.d.ts +7 -0
  659. package/dist/interface/slack/index.d.ts.map +1 -0
  660. package/dist/interface/slack/index.js +7 -0
  661. package/dist/interface/slack/index.js.map +1 -0
  662. package/dist/interface/telegram/TelegramBot.d.ts +60 -0
  663. package/dist/interface/telegram/TelegramBot.d.ts.map +1 -0
  664. package/dist/interface/telegram/TelegramBot.js +400 -0
  665. package/dist/interface/telegram/TelegramBot.js.map +1 -0
  666. package/dist/interface/telegram/TelegramFormatter.d.ts +19 -0
  667. package/dist/interface/telegram/TelegramFormatter.d.ts.map +1 -0
  668. package/dist/interface/telegram/TelegramFormatter.js +66 -0
  669. package/dist/interface/telegram/TelegramFormatter.js.map +1 -0
  670. package/dist/interface/types.d.ts +167 -0
  671. package/dist/interface/types.d.ts.map +1 -0
  672. package/dist/interface/types.js +6 -0
  673. package/dist/interface/types.js.map +1 -0
  674. package/dist/interface/utils/MessageCombiner.d.ts +14 -0
  675. package/dist/interface/utils/MessageCombiner.d.ts.map +1 -0
  676. package/dist/interface/utils/MessageCombiner.js +48 -0
  677. package/dist/interface/utils/MessageCombiner.js.map +1 -0
  678. package/dist/interface/vision/AdaptiveFrameSampler.d.ts +44 -0
  679. package/dist/interface/vision/AdaptiveFrameSampler.d.ts.map +1 -0
  680. package/dist/interface/vision/AdaptiveFrameSampler.js +109 -0
  681. package/dist/interface/vision/AdaptiveFrameSampler.js.map +1 -0
  682. package/dist/interface/vision/AdaptiveFrameSampler.test.d.ts +7 -0
  683. package/dist/interface/vision/AdaptiveFrameSampler.test.d.ts.map +1 -0
  684. package/dist/interface/vision/AdaptiveFrameSampler.test.js +113 -0
  685. package/dist/interface/vision/AdaptiveFrameSampler.test.js.map +1 -0
  686. package/dist/interface/vision/GeminiLive.d.ts +37 -0
  687. package/dist/interface/vision/GeminiLive.d.ts.map +1 -0
  688. package/dist/interface/vision/GeminiLive.js +272 -0
  689. package/dist/interface/vision/GeminiLive.js.map +1 -0
  690. package/dist/interface/vision/GeminiLive.test.d.ts +6 -0
  691. package/dist/interface/vision/GeminiLive.test.d.ts.map +1 -0
  692. package/dist/interface/vision/GeminiLive.test.js +40 -0
  693. package/dist/interface/vision/GeminiLive.test.js.map +1 -0
  694. package/dist/interface/vision/GeminiLiveStream.d.ts +55 -0
  695. package/dist/interface/vision/GeminiLiveStream.d.ts.map +1 -0
  696. package/dist/interface/vision/GeminiLiveStream.js +213 -0
  697. package/dist/interface/vision/GeminiLiveStream.js.map +1 -0
  698. package/dist/interface/vision/GeminiVision.d.ts +25 -0
  699. package/dist/interface/vision/GeminiVision.d.ts.map +1 -0
  700. package/dist/interface/vision/GeminiVision.js +202 -0
  701. package/dist/interface/vision/GeminiVision.js.map +1 -0
  702. package/dist/interface/vision/ScreenCapture.d.ts +77 -0
  703. package/dist/interface/vision/ScreenCapture.d.ts.map +1 -0
  704. package/dist/interface/vision/ScreenCapture.js +314 -0
  705. package/dist/interface/vision/ScreenCapture.js.map +1 -0
  706. package/dist/interface/vision/ScreenCaptureEngine.d.ts +55 -0
  707. package/dist/interface/vision/ScreenCaptureEngine.d.ts.map +1 -0
  708. package/dist/interface/vision/ScreenCaptureEngine.js +223 -0
  709. package/dist/interface/vision/ScreenCaptureEngine.js.map +1 -0
  710. package/dist/interface/vision/ScreenCaptureEngine.test.d.ts +8 -0
  711. package/dist/interface/vision/ScreenCaptureEngine.test.d.ts.map +1 -0
  712. package/dist/interface/vision/ScreenCaptureEngine.test.js +175 -0
  713. package/dist/interface/vision/ScreenCaptureEngine.test.js.map +1 -0
  714. package/dist/interface/vision/VisionInterface.d.ts +26 -0
  715. package/dist/interface/vision/VisionInterface.d.ts.map +1 -0
  716. package/dist/interface/vision/VisionInterface.js +105 -0
  717. package/dist/interface/vision/VisionInterface.js.map +1 -0
  718. package/dist/interface/vision/VisionSession.d.ts +66 -0
  719. package/dist/interface/vision/VisionSession.d.ts.map +1 -0
  720. package/dist/interface/vision/VisionSession.js +274 -0
  721. package/dist/interface/vision/VisionSession.js.map +1 -0
  722. package/dist/interface/vision/VisionSession.test.d.ts +7 -0
  723. package/dist/interface/vision/VisionSession.test.d.ts.map +1 -0
  724. package/dist/interface/vision/VisionSession.test.js +218 -0
  725. package/dist/interface/vision/VisionSession.test.js.map +1 -0
  726. package/dist/interface/vision/__tests__/GeminiVision.test.d.ts +5 -0
  727. package/dist/interface/vision/__tests__/GeminiVision.test.d.ts.map +1 -0
  728. package/dist/interface/vision/__tests__/GeminiVision.test.js +92 -0
  729. package/dist/interface/vision/__tests__/GeminiVision.test.js.map +1 -0
  730. package/dist/interface/vision/__tests__/ScreenCapture.test.d.ts +5 -0
  731. package/dist/interface/vision/__tests__/ScreenCapture.test.d.ts.map +1 -0
  732. package/dist/interface/vision/__tests__/ScreenCapture.test.js +24 -0
  733. package/dist/interface/vision/__tests__/ScreenCapture.test.js.map +1 -0
  734. package/dist/interface/vision/__tests__/VisionInterface.test.d.ts +5 -0
  735. package/dist/interface/vision/__tests__/VisionInterface.test.d.ts.map +1 -0
  736. package/dist/interface/vision/__tests__/VisionInterface.test.js +59 -0
  737. package/dist/interface/vision/__tests__/VisionInterface.test.js.map +1 -0
  738. package/dist/interface/vision/index.d.ts +20 -0
  739. package/dist/interface/vision/index.d.ts.map +1 -0
  740. package/dist/interface/vision/index.js +16 -0
  741. package/dist/interface/vision/index.js.map +1 -0
  742. package/dist/interface/vision/types.d.ts +79 -0
  743. package/dist/interface/vision/types.d.ts.map +1 -0
  744. package/dist/interface/vision/types.js +22 -0
  745. package/dist/interface/vision/types.js.map +1 -0
  746. package/dist/interface/voice/STTProvider.d.ts +48 -0
  747. package/dist/interface/voice/STTProvider.d.ts.map +1 -0
  748. package/dist/interface/voice/STTProvider.js +254 -0
  749. package/dist/interface/voice/STTProvider.js.map +1 -0
  750. package/dist/interface/voice/STTProvider.test.d.ts +8 -0
  751. package/dist/interface/voice/STTProvider.test.d.ts.map +1 -0
  752. package/dist/interface/voice/STTProvider.test.js +144 -0
  753. package/dist/interface/voice/STTProvider.test.js.map +1 -0
  754. package/dist/interface/voice/TTSProvider.d.ts +44 -0
  755. package/dist/interface/voice/TTSProvider.d.ts.map +1 -0
  756. package/dist/interface/voice/TTSProvider.js +252 -0
  757. package/dist/interface/voice/TTSProvider.js.map +1 -0
  758. package/dist/interface/voice/TTSProvider.test.d.ts +8 -0
  759. package/dist/interface/voice/TTSProvider.test.d.ts.map +1 -0
  760. package/dist/interface/voice/TTSProvider.test.js +143 -0
  761. package/dist/interface/voice/TTSProvider.test.js.map +1 -0
  762. package/dist/interface/voice/VADProcessor.d.ts +34 -0
  763. package/dist/interface/voice/VADProcessor.d.ts.map +1 -0
  764. package/dist/interface/voice/VADProcessor.js +116 -0
  765. package/dist/interface/voice/VADProcessor.js.map +1 -0
  766. package/dist/interface/voice/VADProcessor.test.d.ts +8 -0
  767. package/dist/interface/voice/VADProcessor.test.d.ts.map +1 -0
  768. package/dist/interface/voice/VADProcessor.test.js +159 -0
  769. package/dist/interface/voice/VADProcessor.test.js.map +1 -0
  770. package/dist/interface/voice/VoiceSession.d.ts +77 -0
  771. package/dist/interface/voice/VoiceSession.d.ts.map +1 -0
  772. package/dist/interface/voice/VoiceSession.js +249 -0
  773. package/dist/interface/voice/VoiceSession.js.map +1 -0
  774. package/dist/interface/voice/VoiceSession.test.d.ts +8 -0
  775. package/dist/interface/voice/VoiceSession.test.d.ts.map +1 -0
  776. package/dist/interface/voice/VoiceSession.test.js +260 -0
  777. package/dist/interface/voice/VoiceSession.test.js.map +1 -0
  778. package/dist/interface/voice/VoiceWebSocket.d.ts +52 -0
  779. package/dist/interface/voice/VoiceWebSocket.d.ts.map +1 -0
  780. package/dist/interface/voice/VoiceWebSocket.js +165 -0
  781. package/dist/interface/voice/VoiceWebSocket.js.map +1 -0
  782. package/dist/interface/voice/types.d.ts +144 -0
  783. package/dist/interface/voice/types.d.ts.map +1 -0
  784. package/dist/interface/voice/types.js +23 -0
  785. package/dist/interface/voice/types.js.map +1 -0
  786. package/dist/interface/voice/types.test.d.ts +8 -0
  787. package/dist/interface/voice/types.test.d.ts.map +1 -0
  788. package/dist/interface/voice/types.test.js +90 -0
  789. package/dist/interface/voice/types.test.js.map +1 -0
  790. package/dist/interface/web/WebServer.d.ts +80 -0
  791. package/dist/interface/web/WebServer.d.ts.map +1 -0
  792. package/dist/interface/web/WebServer.js +999 -0
  793. package/dist/interface/web/WebServer.js.map +1 -0
  794. package/dist/interface/web/__tests__/WebServer.test.d.ts +5 -0
  795. package/dist/interface/web/__tests__/WebServer.test.d.ts.map +1 -0
  796. package/dist/interface/web/__tests__/WebServer.test.js +345 -0
  797. package/dist/interface/web/__tests__/WebServer.test.js.map +1 -0
  798. package/dist/interface/web/types.d.ts +109 -0
  799. package/dist/interface/web/types.d.ts.map +1 -0
  800. package/dist/interface/web/types.js +67 -0
  801. package/dist/interface/web/types.js.map +1 -0
  802. package/dist/interface/webhook/WebhookHandler.d.ts +45 -0
  803. package/dist/interface/webhook/WebhookHandler.d.ts.map +1 -0
  804. package/dist/interface/webhook/WebhookHandler.js +273 -0
  805. package/dist/interface/webhook/WebhookHandler.js.map +1 -0
  806. package/dist/job/ActionPlanGenerator.d.ts +21 -0
  807. package/dist/job/ActionPlanGenerator.d.ts.map +1 -0
  808. package/dist/job/ActionPlanGenerator.js +153 -0
  809. package/dist/job/ActionPlanGenerator.js.map +1 -0
  810. package/dist/job/AgentJobManager.d.ts +46 -0
  811. package/dist/job/AgentJobManager.d.ts.map +1 -0
  812. package/dist/job/AgentJobManager.js +213 -0
  813. package/dist/job/AgentJobManager.js.map +1 -0
  814. package/dist/job/AgentJobManager.test.d.ts +6 -0
  815. package/dist/job/AgentJobManager.test.d.ts.map +1 -0
  816. package/dist/job/AgentJobManager.test.js +197 -0
  817. package/dist/job/AgentJobManager.test.js.map +1 -0
  818. package/dist/job/IntentParser.d.ts +21 -0
  819. package/dist/job/IntentParser.d.ts.map +1 -0
  820. package/dist/job/IntentParser.js +142 -0
  821. package/dist/job/IntentParser.js.map +1 -0
  822. package/dist/job/JobManager.d.ts +54 -0
  823. package/dist/job/JobManager.d.ts.map +1 -0
  824. package/dist/job/JobManager.js +220 -0
  825. package/dist/job/JobManager.js.map +1 -0
  826. package/dist/job/JobQueue.d.ts +41 -0
  827. package/dist/job/JobQueue.d.ts.map +1 -0
  828. package/dist/job/JobQueue.js +153 -0
  829. package/dist/job/JobQueue.js.map +1 -0
  830. package/dist/job/JobStore.d.ts +36 -0
  831. package/dist/job/JobStore.d.ts.map +1 -0
  832. package/dist/job/JobStore.js +260 -0
  833. package/dist/job/JobStore.js.map +1 -0
  834. package/dist/job/ProgressReporter.d.ts +32 -0
  835. package/dist/job/ProgressReporter.d.ts.map +1 -0
  836. package/dist/job/ProgressReporter.js +82 -0
  837. package/dist/job/ProgressReporter.js.map +1 -0
  838. package/dist/job/agent-job-types.d.ts +32 -0
  839. package/dist/job/agent-job-types.d.ts.map +1 -0
  840. package/dist/job/agent-job-types.js +6 -0
  841. package/dist/job/agent-job-types.js.map +1 -0
  842. package/dist/job/index.d.ts +15 -0
  843. package/dist/job/index.d.ts.map +1 -0
  844. package/dist/job/index.js +15 -0
  845. package/dist/job/index.js.map +1 -0
  846. package/dist/job/job.test.d.ts +5 -0
  847. package/dist/job/job.test.d.ts.map +1 -0
  848. package/dist/job/job.test.js +303 -0
  849. package/dist/job/job.test.js.map +1 -0
  850. package/dist/job/types.d.ts +82 -0
  851. package/dist/job/types.d.ts.map +1 -0
  852. package/dist/job/types.js +40 -0
  853. package/dist/job/types.js.map +1 -0
  854. package/dist/orchestrator/AgentAnnouncer.d.ts +64 -0
  855. package/dist/orchestrator/AgentAnnouncer.d.ts.map +1 -0
  856. package/dist/orchestrator/AgentAnnouncer.js +127 -0
  857. package/dist/orchestrator/AgentAnnouncer.js.map +1 -0
  858. package/dist/orchestrator/AgentAnnouncer.test.d.ts +5 -0
  859. package/dist/orchestrator/AgentAnnouncer.test.d.ts.map +1 -0
  860. package/dist/orchestrator/AgentAnnouncer.test.js +119 -0
  861. package/dist/orchestrator/AgentAnnouncer.test.js.map +1 -0
  862. package/dist/orchestrator/AgentExecutor.d.ts +23 -0
  863. package/dist/orchestrator/AgentExecutor.d.ts.map +1 -0
  864. package/dist/orchestrator/AgentExecutor.js +231 -0
  865. package/dist/orchestrator/AgentExecutor.js.map +1 -0
  866. package/dist/orchestrator/AgentManager.d.ts +73 -0
  867. package/dist/orchestrator/AgentManager.d.ts.map +1 -0
  868. package/dist/orchestrator/AgentManager.js +184 -0
  869. package/dist/orchestrator/AgentManager.js.map +1 -0
  870. package/dist/orchestrator/AgentRegistry.d.ts +76 -0
  871. package/dist/orchestrator/AgentRegistry.d.ts.map +1 -0
  872. package/dist/orchestrator/AgentRegistry.js +217 -0
  873. package/dist/orchestrator/AgentRegistry.js.map +1 -0
  874. package/dist/orchestrator/AgentRegistry.test.d.ts +5 -0
  875. package/dist/orchestrator/AgentRegistry.test.d.ts.map +1 -0
  876. package/dist/orchestrator/AgentRegistry.test.js +122 -0
  877. package/dist/orchestrator/AgentRegistry.test.js.map +1 -0
  878. package/dist/orchestrator/BackgroundManager.d.ts +114 -0
  879. package/dist/orchestrator/BackgroundManager.d.ts.map +1 -0
  880. package/dist/orchestrator/BackgroundManager.js +517 -0
  881. package/dist/orchestrator/BackgroundManager.js.map +1 -0
  882. package/dist/orchestrator/BackgroundManager.test.d.ts +6 -0
  883. package/dist/orchestrator/BackgroundManager.test.d.ts.map +1 -0
  884. package/dist/orchestrator/BackgroundManager.test.js +162 -0
  885. package/dist/orchestrator/BackgroundManager.test.js.map +1 -0
  886. package/dist/orchestrator/CheckpointManager.d.ts +54 -0
  887. package/dist/orchestrator/CheckpointManager.d.ts.map +1 -0
  888. package/dist/orchestrator/CheckpointManager.js +121 -0
  889. package/dist/orchestrator/CheckpointManager.js.map +1 -0
  890. package/dist/orchestrator/LLMCluster.d.ts +91 -0
  891. package/dist/orchestrator/LLMCluster.d.ts.map +1 -0
  892. package/dist/orchestrator/LLMCluster.js +124 -0
  893. package/dist/orchestrator/LLMCluster.js.map +1 -0
  894. package/dist/orchestrator/MultiLlmResearch.d.ts +27 -0
  895. package/dist/orchestrator/MultiLlmResearch.d.ts.map +1 -0
  896. package/dist/orchestrator/MultiLlmResearch.js +145 -0
  897. package/dist/orchestrator/MultiLlmResearch.js.map +1 -0
  898. package/dist/orchestrator/PhasePipeline.d.ts +123 -0
  899. package/dist/orchestrator/PhasePipeline.d.ts.map +1 -0
  900. package/dist/orchestrator/PhasePipeline.js +382 -0
  901. package/dist/orchestrator/PhasePipeline.js.map +1 -0
  902. package/dist/orchestrator/PhaseResultStore.d.ts +39 -0
  903. package/dist/orchestrator/PhaseResultStore.d.ts.map +1 -0
  904. package/dist/orchestrator/PhaseResultStore.js +151 -0
  905. package/dist/orchestrator/PhaseResultStore.js.map +1 -0
  906. package/dist/orchestrator/SessionStore.d.ts +41 -0
  907. package/dist/orchestrator/SessionStore.d.ts.map +1 -0
  908. package/dist/orchestrator/SessionStore.js +117 -0
  909. package/dist/orchestrator/SessionStore.js.map +1 -0
  910. package/dist/orchestrator/SmartRouter.d.ts +77 -0
  911. package/dist/orchestrator/SmartRouter.d.ts.map +1 -0
  912. package/dist/orchestrator/SmartRouter.js +305 -0
  913. package/dist/orchestrator/SmartRouter.js.map +1 -0
  914. package/dist/orchestrator/SwarmOrchestrator.d.ts +144 -0
  915. package/dist/orchestrator/SwarmOrchestrator.d.ts.map +1 -0
  916. package/dist/orchestrator/SwarmOrchestrator.js +361 -0
  917. package/dist/orchestrator/SwarmOrchestrator.js.map +1 -0
  918. package/dist/orchestrator/SwarmOrchestrator.test.d.ts +5 -0
  919. package/dist/orchestrator/SwarmOrchestrator.test.d.ts.map +1 -0
  920. package/dist/orchestrator/SwarmOrchestrator.test.js +95 -0
  921. package/dist/orchestrator/SwarmOrchestrator.test.js.map +1 -0
  922. package/dist/orchestrator/agentDiscovery.d.ts +18 -0
  923. package/dist/orchestrator/agentDiscovery.d.ts.map +1 -0
  924. package/dist/orchestrator/agentDiscovery.js +175 -0
  925. package/dist/orchestrator/agentDiscovery.js.map +1 -0
  926. package/dist/orchestrator/backgroundAgent.d.ts +15 -0
  927. package/dist/orchestrator/backgroundAgent.d.ts.map +1 -0
  928. package/dist/orchestrator/backgroundAgent.js +16 -0
  929. package/dist/orchestrator/backgroundAgent.js.map +1 -0
  930. package/dist/orchestrator/index.d.ts +213 -0
  931. package/dist/orchestrator/index.d.ts.map +1 -0
  932. package/dist/orchestrator/index.js +391 -0
  933. package/dist/orchestrator/index.js.map +1 -0
  934. package/dist/orchestrator/orchestrator.d.ts +63 -0
  935. package/dist/orchestrator/orchestrator.d.ts.map +1 -0
  936. package/dist/orchestrator/orchestrator.js +217 -0
  937. package/dist/orchestrator/orchestrator.js.map +1 -0
  938. package/dist/orchestrator/parallelResearch.d.ts +30 -0
  939. package/dist/orchestrator/parallelResearch.d.ts.map +1 -0
  940. package/dist/orchestrator/parallelResearch.js +247 -0
  941. package/dist/orchestrator/parallelResearch.js.map +1 -0
  942. package/dist/orchestrator/types.d.ts +185 -0
  943. package/dist/orchestrator/types.d.ts.map +1 -0
  944. package/dist/orchestrator/types.js +21 -0
  945. package/dist/orchestrator/types.js.map +1 -0
  946. package/dist/pc/CommandDispatcher.d.ts +31 -0
  947. package/dist/pc/CommandDispatcher.d.ts.map +1 -0
  948. package/dist/pc/CommandDispatcher.js +132 -0
  949. package/dist/pc/CommandDispatcher.js.map +1 -0
  950. package/dist/pc/CommandDispatcher.test.d.ts +2 -0
  951. package/dist/pc/CommandDispatcher.test.d.ts.map +1 -0
  952. package/dist/pc/CommandDispatcher.test.js +360 -0
  953. package/dist/pc/CommandDispatcher.test.js.map +1 -0
  954. package/dist/pc/ModuleRegistry.d.ts +40 -0
  955. package/dist/pc/ModuleRegistry.d.ts.map +1 -0
  956. package/dist/pc/ModuleRegistry.js +163 -0
  957. package/dist/pc/ModuleRegistry.js.map +1 -0
  958. package/dist/pc/ResultFormatter.d.ts +27 -0
  959. package/dist/pc/ResultFormatter.d.ts.map +1 -0
  960. package/dist/pc/ResultFormatter.js +128 -0
  961. package/dist/pc/ResultFormatter.js.map +1 -0
  962. package/dist/pc/ResultFormatter.test.d.ts +2 -0
  963. package/dist/pc/ResultFormatter.test.d.ts.map +1 -0
  964. package/dist/pc/ResultFormatter.test.js +115 -0
  965. package/dist/pc/ResultFormatter.test.js.map +1 -0
  966. package/dist/pc/SecurityGate.d.ts +53 -0
  967. package/dist/pc/SecurityGate.d.ts.map +1 -0
  968. package/dist/pc/SecurityGate.js +142 -0
  969. package/dist/pc/SecurityGate.js.map +1 -0
  970. package/dist/pc/SecurityGate.test.d.ts +2 -0
  971. package/dist/pc/SecurityGate.test.d.ts.map +1 -0
  972. package/dist/pc/SecurityGate.test.js +160 -0
  973. package/dist/pc/SecurityGate.test.js.map +1 -0
  974. package/dist/pc/SessionContext.d.ts +31 -0
  975. package/dist/pc/SessionContext.d.ts.map +1 -0
  976. package/dist/pc/SessionContext.js +108 -0
  977. package/dist/pc/SessionContext.js.map +1 -0
  978. package/dist/pc/browser/BrowserActions.d.ts +22 -0
  979. package/dist/pc/browser/BrowserActions.d.ts.map +1 -0
  980. package/dist/pc/browser/BrowserActions.js +223 -0
  981. package/dist/pc/browser/BrowserActions.js.map +1 -0
  982. package/dist/pc/browser/BrowserActions.test.d.ts +7 -0
  983. package/dist/pc/browser/BrowserActions.test.d.ts.map +1 -0
  984. package/dist/pc/browser/BrowserActions.test.js +150 -0
  985. package/dist/pc/browser/BrowserActions.test.js.map +1 -0
  986. package/dist/pc/browser/BrowserService.d.ts +66 -0
  987. package/dist/pc/browser/BrowserService.d.ts.map +1 -0
  988. package/dist/pc/browser/BrowserService.js +319 -0
  989. package/dist/pc/browser/BrowserService.js.map +1 -0
  990. package/dist/pc/browser/BrowserService.test.d.ts +7 -0
  991. package/dist/pc/browser/BrowserService.test.d.ts.map +1 -0
  992. package/dist/pc/browser/BrowserService.test.js +160 -0
  993. package/dist/pc/browser/BrowserService.test.js.map +1 -0
  994. package/dist/pc/browser/RefLocator.d.ts +39 -0
  995. package/dist/pc/browser/RefLocator.d.ts.map +1 -0
  996. package/dist/pc/browser/RefLocator.js +88 -0
  997. package/dist/pc/browser/RefLocator.js.map +1 -0
  998. package/dist/pc/browser/RoleSnapshotManager.d.ts +22 -0
  999. package/dist/pc/browser/RoleSnapshotManager.d.ts.map +1 -0
  1000. package/dist/pc/browser/RoleSnapshotManager.js +143 -0
  1001. package/dist/pc/browser/RoleSnapshotManager.js.map +1 -0
  1002. package/dist/pc/browser/RoleSnapshotManager.test.d.ts +7 -0
  1003. package/dist/pc/browser/RoleSnapshotManager.test.d.ts.map +1 -0
  1004. package/dist/pc/browser/RoleSnapshotManager.test.js +152 -0
  1005. package/dist/pc/browser/RoleSnapshotManager.test.js.map +1 -0
  1006. package/dist/pc/browser/Security.test.d.ts +7 -0
  1007. package/dist/pc/browser/Security.test.d.ts.map +1 -0
  1008. package/dist/pc/browser/Security.test.js +171 -0
  1009. package/dist/pc/browser/Security.test.js.map +1 -0
  1010. package/dist/pc/browser/types.d.ts +142 -0
  1011. package/dist/pc/browser/types.d.ts.map +1 -0
  1012. package/dist/pc/browser/types.js +60 -0
  1013. package/dist/pc/browser/types.js.map +1 -0
  1014. package/dist/pc/google/OAuthFlow.d.ts +58 -0
  1015. package/dist/pc/google/OAuthFlow.d.ts.map +1 -0
  1016. package/dist/pc/google/OAuthFlow.js +322 -0
  1017. package/dist/pc/google/OAuthFlow.js.map +1 -0
  1018. package/dist/pc/google/OAuthFlow.test.d.ts +7 -0
  1019. package/dist/pc/google/OAuthFlow.test.d.ts.map +1 -0
  1020. package/dist/pc/google/OAuthFlow.test.js +178 -0
  1021. package/dist/pc/google/OAuthFlow.test.js.map +1 -0
  1022. package/dist/pc/google/ScopeManager.d.ts +28 -0
  1023. package/dist/pc/google/ScopeManager.d.ts.map +1 -0
  1024. package/dist/pc/google/ScopeManager.js +75 -0
  1025. package/dist/pc/google/ScopeManager.js.map +1 -0
  1026. package/dist/pc/google/TokenStore.d.ts +49 -0
  1027. package/dist/pc/google/TokenStore.d.ts.map +1 -0
  1028. package/dist/pc/google/TokenStore.js +324 -0
  1029. package/dist/pc/google/TokenStore.js.map +1 -0
  1030. package/dist/pc/google/TokenStore.test.d.ts +7 -0
  1031. package/dist/pc/google/TokenStore.test.d.ts.map +1 -0
  1032. package/dist/pc/google/TokenStore.test.js +134 -0
  1033. package/dist/pc/google/TokenStore.test.js.map +1 -0
  1034. package/dist/pc/google/services/CalendarService.d.ts +45 -0
  1035. package/dist/pc/google/services/CalendarService.d.ts.map +1 -0
  1036. package/dist/pc/google/services/CalendarService.js +148 -0
  1037. package/dist/pc/google/services/CalendarService.js.map +1 -0
  1038. package/dist/pc/google/services/DriveService.d.ts +33 -0
  1039. package/dist/pc/google/services/DriveService.d.ts.map +1 -0
  1040. package/dist/pc/google/services/DriveService.js +199 -0
  1041. package/dist/pc/google/services/DriveService.js.map +1 -0
  1042. package/dist/pc/google/services/GmailService.d.ts +50 -0
  1043. package/dist/pc/google/services/GmailService.d.ts.map +1 -0
  1044. package/dist/pc/google/services/GmailService.js +177 -0
  1045. package/dist/pc/google/services/GmailService.js.map +1 -0
  1046. package/dist/pc/google/services/Services.test.d.ts +8 -0
  1047. package/dist/pc/google/services/Services.test.d.ts.map +1 -0
  1048. package/dist/pc/google/services/Services.test.js +148 -0
  1049. package/dist/pc/google/services/Services.test.js.map +1 -0
  1050. package/dist/pc/google/services/SheetsService.d.ts +27 -0
  1051. package/dist/pc/google/services/SheetsService.d.ts.map +1 -0
  1052. package/dist/pc/google/services/SheetsService.js +107 -0
  1053. package/dist/pc/google/services/SheetsService.js.map +1 -0
  1054. package/dist/pc/google/types.d.ts +97 -0
  1055. package/dist/pc/google/types.d.ts.map +1 -0
  1056. package/dist/pc/google/types.js +39 -0
  1057. package/dist/pc/google/types.js.map +1 -0
  1058. package/dist/pc/google/types.test.d.ts +8 -0
  1059. package/dist/pc/google/types.test.d.ts.map +1 -0
  1060. package/dist/pc/google/types.test.js +131 -0
  1061. package/dist/pc/google/types.test.js.map +1 -0
  1062. package/dist/pc/sandbox/ContainerConfig.d.ts +24 -0
  1063. package/dist/pc/sandbox/ContainerConfig.d.ts.map +1 -0
  1064. package/dist/pc/sandbox/ContainerConfig.js +103 -0
  1065. package/dist/pc/sandbox/ContainerConfig.js.map +1 -0
  1066. package/dist/pc/sandbox/ContainerManager.d.ts +31 -0
  1067. package/dist/pc/sandbox/ContainerManager.d.ts.map +1 -0
  1068. package/dist/pc/sandbox/ContainerManager.js +245 -0
  1069. package/dist/pc/sandbox/ContainerManager.js.map +1 -0
  1070. package/dist/pc/sandbox/ContainerManager.test.d.ts +2 -0
  1071. package/dist/pc/sandbox/ContainerManager.test.d.ts.map +1 -0
  1072. package/dist/pc/sandbox/ContainerManager.test.js +249 -0
  1073. package/dist/pc/sandbox/ContainerManager.test.js.map +1 -0
  1074. package/dist/pc/sandbox/ExecAllowlist.d.ts +35 -0
  1075. package/dist/pc/sandbox/ExecAllowlist.d.ts.map +1 -0
  1076. package/dist/pc/sandbox/ExecAllowlist.js +148 -0
  1077. package/dist/pc/sandbox/ExecAllowlist.js.map +1 -0
  1078. package/dist/pc/sandbox/ExecAllowlist.test.d.ts +2 -0
  1079. package/dist/pc/sandbox/ExecAllowlist.test.d.ts.map +1 -0
  1080. package/dist/pc/sandbox/ExecAllowlist.test.js +210 -0
  1081. package/dist/pc/sandbox/ExecAllowlist.test.js.map +1 -0
  1082. package/dist/pc/sandbox/SandboxBrowser.d.ts +29 -0
  1083. package/dist/pc/sandbox/SandboxBrowser.d.ts.map +1 -0
  1084. package/dist/pc/sandbox/SandboxBrowser.js +72 -0
  1085. package/dist/pc/sandbox/SandboxBrowser.js.map +1 -0
  1086. package/dist/pc/sandbox/ToolPolicy.d.ts +24 -0
  1087. package/dist/pc/sandbox/ToolPolicy.d.ts.map +1 -0
  1088. package/dist/pc/sandbox/ToolPolicy.js +127 -0
  1089. package/dist/pc/sandbox/ToolPolicy.js.map +1 -0
  1090. package/dist/pc/sandbox/ToolPolicy.test.d.ts +2 -0
  1091. package/dist/pc/sandbox/ToolPolicy.test.d.ts.map +1 -0
  1092. package/dist/pc/sandbox/ToolPolicy.test.js +189 -0
  1093. package/dist/pc/sandbox/ToolPolicy.test.js.map +1 -0
  1094. package/dist/pc/sandbox/types.d.ts +109 -0
  1095. package/dist/pc/sandbox/types.d.ts.map +1 -0
  1096. package/dist/pc/sandbox/types.js +26 -0
  1097. package/dist/pc/sandbox/types.js.map +1 -0
  1098. package/dist/pc/types.d.ts +84 -0
  1099. package/dist/pc/types.d.ts.map +1 -0
  1100. package/dist/pc/types.js +7 -0
  1101. package/dist/pc/types.js.map +1 -0
  1102. package/dist/policy/Evidence.d.ts +30 -0
  1103. package/dist/policy/Evidence.d.ts.map +1 -0
  1104. package/dist/policy/Evidence.js +134 -0
  1105. package/dist/policy/Evidence.js.map +1 -0
  1106. package/dist/policy/PolicyEngine.d.ts +34 -0
  1107. package/dist/policy/PolicyEngine.d.ts.map +1 -0
  1108. package/dist/policy/PolicyEngine.js +219 -0
  1109. package/dist/policy/PolicyEngine.js.map +1 -0
  1110. package/dist/policy/PolicyStore.d.ts +36 -0
  1111. package/dist/policy/PolicyStore.d.ts.map +1 -0
  1112. package/dist/policy/PolicyStore.js +160 -0
  1113. package/dist/policy/PolicyStore.js.map +1 -0
  1114. package/dist/policy/RiskCalculator.d.ts +20 -0
  1115. package/dist/policy/RiskCalculator.d.ts.map +1 -0
  1116. package/dist/policy/RiskCalculator.js +64 -0
  1117. package/dist/policy/RiskCalculator.js.map +1 -0
  1118. package/dist/policy/default-policies.d.ts +13 -0
  1119. package/dist/policy/default-policies.d.ts.map +1 -0
  1120. package/dist/policy/default-policies.js +99 -0
  1121. package/dist/policy/default-policies.js.map +1 -0
  1122. package/dist/policy/index.d.ts +11 -0
  1123. package/dist/policy/index.d.ts.map +1 -0
  1124. package/dist/policy/index.js +10 -0
  1125. package/dist/policy/index.js.map +1 -0
  1126. package/dist/policy/policy.test.d.ts +5 -0
  1127. package/dist/policy/policy.test.d.ts.map +1 -0
  1128. package/dist/policy/policy.test.js +628 -0
  1129. package/dist/policy/policy.test.js.map +1 -0
  1130. package/dist/policy/types.d.ts +71 -0
  1131. package/dist/policy/types.d.ts.map +1 -0
  1132. package/dist/policy/types.js +18 -0
  1133. package/dist/policy/types.js.map +1 -0
  1134. package/dist/router/ModelARouter.d.ts +79 -0
  1135. package/dist/router/ModelARouter.d.ts.map +1 -0
  1136. package/dist/router/ModelARouter.js +325 -0
  1137. package/dist/router/ModelARouter.js.map +1 -0
  1138. package/dist/router/ModelARouter.test.d.ts +6 -0
  1139. package/dist/router/ModelARouter.test.d.ts.map +1 -0
  1140. package/dist/router/ModelARouter.test.js +100 -0
  1141. package/dist/router/ModelARouter.test.js.map +1 -0
  1142. package/dist/router/MultiChannelRouter.d.ts +54 -0
  1143. package/dist/router/MultiChannelRouter.d.ts.map +1 -0
  1144. package/dist/router/MultiChannelRouter.js +138 -0
  1145. package/dist/router/MultiChannelRouter.js.map +1 -0
  1146. package/dist/router/RouteRegistry.d.ts +23 -0
  1147. package/dist/router/RouteRegistry.d.ts.map +1 -0
  1148. package/dist/router/RouteRegistry.js +42 -0
  1149. package/dist/router/RouteRegistry.js.map +1 -0
  1150. package/dist/router/browser/BrowserAgent.d.ts +30 -0
  1151. package/dist/router/browser/BrowserAgent.d.ts.map +1 -0
  1152. package/dist/router/browser/BrowserAgent.js +232 -0
  1153. package/dist/router/browser/BrowserAgent.js.map +1 -0
  1154. package/dist/router/browser/BrowserManager.d.ts +36 -0
  1155. package/dist/router/browser/BrowserManager.d.ts.map +1 -0
  1156. package/dist/router/browser/BrowserManager.js +106 -0
  1157. package/dist/router/browser/BrowserManager.js.map +1 -0
  1158. package/dist/router/browser/BrowserPool.d.ts +37 -0
  1159. package/dist/router/browser/BrowserPool.d.ts.map +1 -0
  1160. package/dist/router/browser/BrowserPool.js +114 -0
  1161. package/dist/router/browser/BrowserPool.js.map +1 -0
  1162. package/dist/router/handlers/GitOpsHandler.d.ts +24 -0
  1163. package/dist/router/handlers/GitOpsHandler.d.ts.map +1 -0
  1164. package/dist/router/handlers/GitOpsHandler.js +66 -0
  1165. package/dist/router/handlers/GitOpsHandler.js.map +1 -0
  1166. package/dist/router/index.d.ts +22 -0
  1167. package/dist/router/index.d.ts.map +1 -0
  1168. package/dist/router/index.js +29 -0
  1169. package/dist/router/index.js.map +1 -0
  1170. package/dist/router/index.test.d.ts +2 -0
  1171. package/dist/router/index.test.d.ts.map +1 -0
  1172. package/dist/router/index.test.js +78 -0
  1173. package/dist/router/index.test.js.map +1 -0
  1174. package/dist/router/notifications/NotificationManager.d.ts +37 -0
  1175. package/dist/router/notifications/NotificationManager.d.ts.map +1 -0
  1176. package/dist/router/notifications/NotificationManager.js +118 -0
  1177. package/dist/router/notifications/NotificationManager.js.map +1 -0
  1178. package/dist/router/planner/TaskExecutor.d.ts +48 -0
  1179. package/dist/router/planner/TaskExecutor.d.ts.map +1 -0
  1180. package/dist/router/planner/TaskExecutor.js +160 -0
  1181. package/dist/router/planner/TaskExecutor.js.map +1 -0
  1182. package/dist/router/planner/TaskExecutor.test.d.ts +6 -0
  1183. package/dist/router/planner/TaskExecutor.test.d.ts.map +1 -0
  1184. package/dist/router/planner/TaskExecutor.test.js +121 -0
  1185. package/dist/router/planner/TaskExecutor.test.js.map +1 -0
  1186. package/dist/router/planner/TaskPlanner.d.ts +37 -0
  1187. package/dist/router/planner/TaskPlanner.d.ts.map +1 -0
  1188. package/dist/router/planner/TaskPlanner.js +176 -0
  1189. package/dist/router/planner/TaskPlanner.js.map +1 -0
  1190. package/dist/router/planner/TaskPlanner.test.d.ts +6 -0
  1191. package/dist/router/planner/TaskPlanner.test.d.ts.map +1 -0
  1192. package/dist/router/planner/TaskPlanner.test.js +119 -0
  1193. package/dist/router/planner/TaskPlanner.test.js.map +1 -0
  1194. package/dist/router/qa/TelegramQABridge.d.ts +37 -0
  1195. package/dist/router/qa/TelegramQABridge.d.ts.map +1 -0
  1196. package/dist/router/qa/TelegramQABridge.js +147 -0
  1197. package/dist/router/qa/TelegramQABridge.js.map +1 -0
  1198. package/dist/router/qa/TelegramQABridge.test.d.ts +6 -0
  1199. package/dist/router/qa/TelegramQABridge.test.d.ts.map +1 -0
  1200. package/dist/router/qa/TelegramQABridge.test.js +143 -0
  1201. package/dist/router/qa/TelegramQABridge.test.js.map +1 -0
  1202. package/dist/router/resolvers/RepoResolver.d.ts +29 -0
  1203. package/dist/router/resolvers/RepoResolver.d.ts.map +1 -0
  1204. package/dist/router/resolvers/RepoResolver.js +105 -0
  1205. package/dist/router/resolvers/RepoResolver.js.map +1 -0
  1206. package/dist/router/resolvers/RepoResolver.test.d.ts +6 -0
  1207. package/dist/router/resolvers/RepoResolver.test.d.ts.map +1 -0
  1208. package/dist/router/resolvers/RepoResolver.test.js +92 -0
  1209. package/dist/router/resolvers/RepoResolver.test.js.map +1 -0
  1210. package/dist/router/routes/BaseRoute.d.ts +22 -0
  1211. package/dist/router/routes/BaseRoute.d.ts.map +1 -0
  1212. package/dist/router/routes/BaseRoute.js +55 -0
  1213. package/dist/router/routes/BaseRoute.js.map +1 -0
  1214. package/dist/router/routes/BrowseRoute.d.ts +21 -0
  1215. package/dist/router/routes/BrowseRoute.d.ts.map +1 -0
  1216. package/dist/router/routes/BrowseRoute.js +121 -0
  1217. package/dist/router/routes/BrowseRoute.js.map +1 -0
  1218. package/dist/router/routes/CompositeRoute.d.ts +28 -0
  1219. package/dist/router/routes/CompositeRoute.d.ts.map +1 -0
  1220. package/dist/router/routes/CompositeRoute.js +125 -0
  1221. package/dist/router/routes/CompositeRoute.js.map +1 -0
  1222. package/dist/router/routes/CompositeRoute.test.d.ts +6 -0
  1223. package/dist/router/routes/CompositeRoute.test.d.ts.map +1 -0
  1224. package/dist/router/routes/CompositeRoute.test.js +82 -0
  1225. package/dist/router/routes/CompositeRoute.test.js.map +1 -0
  1226. package/dist/router/routes/DevRoute.d.ts +26 -0
  1227. package/dist/router/routes/DevRoute.d.ts.map +1 -0
  1228. package/dist/router/routes/DevRoute.js +118 -0
  1229. package/dist/router/routes/DevRoute.js.map +1 -0
  1230. package/dist/router/routes/GoogleRoute.d.ts +46 -0
  1231. package/dist/router/routes/GoogleRoute.d.ts.map +1 -0
  1232. package/dist/router/routes/GoogleRoute.js +293 -0
  1233. package/dist/router/routes/GoogleRoute.js.map +1 -0
  1234. package/dist/router/routes/GoogleRoute.test.d.ts +6 -0
  1235. package/dist/router/routes/GoogleRoute.test.d.ts.map +1 -0
  1236. package/dist/router/routes/GoogleRoute.test.js +171 -0
  1237. package/dist/router/routes/GoogleRoute.test.js.map +1 -0
  1238. package/dist/router/routes/MonitorRoute.d.ts +25 -0
  1239. package/dist/router/routes/MonitorRoute.d.ts.map +1 -0
  1240. package/dist/router/routes/MonitorRoute.js +112 -0
  1241. package/dist/router/routes/MonitorRoute.js.map +1 -0
  1242. package/dist/router/routes/MonitorRoute.test.d.ts +6 -0
  1243. package/dist/router/routes/MonitorRoute.test.d.ts.map +1 -0
  1244. package/dist/router/routes/MonitorRoute.test.js +97 -0
  1245. package/dist/router/routes/MonitorRoute.test.js.map +1 -0
  1246. package/dist/router/routes/ResearchRoute.d.ts +25 -0
  1247. package/dist/router/routes/ResearchRoute.d.ts.map +1 -0
  1248. package/dist/router/routes/ResearchRoute.js +113 -0
  1249. package/dist/router/routes/ResearchRoute.js.map +1 -0
  1250. package/dist/router/routes/ResearchRoute.test.d.ts +6 -0
  1251. package/dist/router/routes/ResearchRoute.test.d.ts.map +1 -0
  1252. package/dist/router/routes/ResearchRoute.test.js +104 -0
  1253. package/dist/router/routes/ResearchRoute.test.js.map +1 -0
  1254. package/dist/router/routes/UtilityRoute.d.ts +32 -0
  1255. package/dist/router/routes/UtilityRoute.d.ts.map +1 -0
  1256. package/dist/router/routes/UtilityRoute.js +144 -0
  1257. package/dist/router/routes/UtilityRoute.js.map +1 -0
  1258. package/dist/router/routes/UtilityRoute.test.d.ts +6 -0
  1259. package/dist/router/routes/UtilityRoute.test.d.ts.map +1 -0
  1260. package/dist/router/routes/UtilityRoute.test.js +134 -0
  1261. package/dist/router/routes/UtilityRoute.test.js.map +1 -0
  1262. package/dist/router/services/BookmarkService.d.ts +34 -0
  1263. package/dist/router/services/BookmarkService.d.ts.map +1 -0
  1264. package/dist/router/services/BookmarkService.js +86 -0
  1265. package/dist/router/services/BookmarkService.js.map +1 -0
  1266. package/dist/router/services/BookmarkService.test.d.ts +6 -0
  1267. package/dist/router/services/BookmarkService.test.d.ts.map +1 -0
  1268. package/dist/router/services/BookmarkService.test.js +82 -0
  1269. package/dist/router/services/BookmarkService.test.js.map +1 -0
  1270. package/dist/router/services/CalendarService.d.ts +30 -0
  1271. package/dist/router/services/CalendarService.d.ts.map +1 -0
  1272. package/dist/router/services/CalendarService.js +168 -0
  1273. package/dist/router/services/CalendarService.js.map +1 -0
  1274. package/dist/router/services/CalendarService.test.d.ts +6 -0
  1275. package/dist/router/services/CalendarService.test.d.ts.map +1 -0
  1276. package/dist/router/services/CalendarService.test.js +107 -0
  1277. package/dist/router/services/CalendarService.test.js.map +1 -0
  1278. package/dist/router/services/ContentSummarizer.d.ts +32 -0
  1279. package/dist/router/services/ContentSummarizer.d.ts.map +1 -0
  1280. package/dist/router/services/ContentSummarizer.js +108 -0
  1281. package/dist/router/services/ContentSummarizer.js.map +1 -0
  1282. package/dist/router/services/ContentSummarizer.test.d.ts +6 -0
  1283. package/dist/router/services/ContentSummarizer.test.d.ts.map +1 -0
  1284. package/dist/router/services/ContentSummarizer.test.js +82 -0
  1285. package/dist/router/services/ContentSummarizer.test.js.map +1 -0
  1286. package/dist/router/services/DailyReportGenerator.d.ts +34 -0
  1287. package/dist/router/services/DailyReportGenerator.d.ts.map +1 -0
  1288. package/dist/router/services/DailyReportGenerator.js +110 -0
  1289. package/dist/router/services/DailyReportGenerator.js.map +1 -0
  1290. package/dist/router/services/DocumentGenerator.d.ts +20 -0
  1291. package/dist/router/services/DocumentGenerator.d.ts.map +1 -0
  1292. package/dist/router/services/DocumentGenerator.js +34 -0
  1293. package/dist/router/services/DocumentGenerator.js.map +1 -0
  1294. package/dist/router/services/DriveService.d.ts +29 -0
  1295. package/dist/router/services/DriveService.d.ts.map +1 -0
  1296. package/dist/router/services/DriveService.js +176 -0
  1297. package/dist/router/services/DriveService.js.map +1 -0
  1298. package/dist/router/services/DriveService.test.d.ts +6 -0
  1299. package/dist/router/services/DriveService.test.d.ts.map +1 -0
  1300. package/dist/router/services/DriveService.test.js +83 -0
  1301. package/dist/router/services/DriveService.test.js.map +1 -0
  1302. package/dist/router/services/FileAnalyzer.d.ts +26 -0
  1303. package/dist/router/services/FileAnalyzer.d.ts.map +1 -0
  1304. package/dist/router/services/FileAnalyzer.js +82 -0
  1305. package/dist/router/services/FileAnalyzer.js.map +1 -0
  1306. package/dist/router/services/GitHubMonitor.d.ts +38 -0
  1307. package/dist/router/services/GitHubMonitor.d.ts.map +1 -0
  1308. package/dist/router/services/GitHubMonitor.js +82 -0
  1309. package/dist/router/services/GitHubMonitor.js.map +1 -0
  1310. package/dist/router/services/GitHubMonitor.test.d.ts +6 -0
  1311. package/dist/router/services/GitHubMonitor.test.d.ts.map +1 -0
  1312. package/dist/router/services/GitHubMonitor.test.js +103 -0
  1313. package/dist/router/services/GitHubMonitor.test.js.map +1 -0
  1314. package/dist/router/services/GmailService.d.ts +28 -0
  1315. package/dist/router/services/GmailService.d.ts.map +1 -0
  1316. package/dist/router/services/GmailService.js +169 -0
  1317. package/dist/router/services/GmailService.js.map +1 -0
  1318. package/dist/router/services/GmailService.test.d.ts +6 -0
  1319. package/dist/router/services/GmailService.test.d.ts.map +1 -0
  1320. package/dist/router/services/GmailService.test.js +113 -0
  1321. package/dist/router/services/GmailService.test.js.map +1 -0
  1322. package/dist/router/services/GoogleAuthManager.d.ts +31 -0
  1323. package/dist/router/services/GoogleAuthManager.d.ts.map +1 -0
  1324. package/dist/router/services/GoogleAuthManager.js +219 -0
  1325. package/dist/router/services/GoogleAuthManager.js.map +1 -0
  1326. package/dist/router/services/GoogleAuthManager.test.d.ts +6 -0
  1327. package/dist/router/services/GoogleAuthManager.test.d.ts.map +1 -0
  1328. package/dist/router/services/GoogleAuthManager.test.js +153 -0
  1329. package/dist/router/services/GoogleAuthManager.test.js.map +1 -0
  1330. package/dist/router/services/ImageGenerator.d.ts +20 -0
  1331. package/dist/router/services/ImageGenerator.d.ts.map +1 -0
  1332. package/dist/router/services/ImageGenerator.js +41 -0
  1333. package/dist/router/services/ImageGenerator.js.map +1 -0
  1334. package/dist/router/services/NoteService.d.ts +36 -0
  1335. package/dist/router/services/NoteService.d.ts.map +1 -0
  1336. package/dist/router/services/NoteService.js +125 -0
  1337. package/dist/router/services/NoteService.js.map +1 -0
  1338. package/dist/router/services/NoteService.test.d.ts +6 -0
  1339. package/dist/router/services/NoteService.test.d.ts.map +1 -0
  1340. package/dist/router/services/NoteService.test.js +90 -0
  1341. package/dist/router/services/NoteService.test.js.map +1 -0
  1342. package/dist/router/services/ProgressReporter.d.ts +32 -0
  1343. package/dist/router/services/ProgressReporter.d.ts.map +1 -0
  1344. package/dist/router/services/ProgressReporter.js +81 -0
  1345. package/dist/router/services/ProgressReporter.js.map +1 -0
  1346. package/dist/router/services/SchedulerEngine.d.ts +55 -0
  1347. package/dist/router/services/SchedulerEngine.d.ts.map +1 -0
  1348. package/dist/router/services/SchedulerEngine.js +215 -0
  1349. package/dist/router/services/SchedulerEngine.js.map +1 -0
  1350. package/dist/router/services/SchedulerEngine.test.d.ts +6 -0
  1351. package/dist/router/services/SchedulerEngine.test.d.ts.map +1 -0
  1352. package/dist/router/services/SchedulerEngine.test.js +102 -0
  1353. package/dist/router/services/SchedulerEngine.test.js.map +1 -0
  1354. package/dist/router/services/ScreenshotService.d.ts +22 -0
  1355. package/dist/router/services/ScreenshotService.d.ts.map +1 -0
  1356. package/dist/router/services/ScreenshotService.js +39 -0
  1357. package/dist/router/services/ScreenshotService.js.map +1 -0
  1358. package/dist/router/services/SheetsService.d.ts +27 -0
  1359. package/dist/router/services/SheetsService.d.ts.map +1 -0
  1360. package/dist/router/services/SheetsService.js +91 -0
  1361. package/dist/router/services/SheetsService.js.map +1 -0
  1362. package/dist/router/services/SheetsService.test.d.ts +6 -0
  1363. package/dist/router/services/SheetsService.test.d.ts.map +1 -0
  1364. package/dist/router/services/SheetsService.test.js +86 -0
  1365. package/dist/router/services/SheetsService.test.js.map +1 -0
  1366. package/dist/router/services/TranslationService.d.ts +21 -0
  1367. package/dist/router/services/TranslationService.d.ts.map +1 -0
  1368. package/dist/router/services/TranslationService.js +76 -0
  1369. package/dist/router/services/TranslationService.js.map +1 -0
  1370. package/dist/router/services/TranslationService.test.d.ts +6 -0
  1371. package/dist/router/services/TranslationService.test.d.ts.map +1 -0
  1372. package/dist/router/services/TranslationService.test.js +61 -0
  1373. package/dist/router/services/TranslationService.test.js.map +1 -0
  1374. package/dist/router/services/WebSearchService.d.ts +24 -0
  1375. package/dist/router/services/WebSearchService.d.ts.map +1 -0
  1376. package/dist/router/services/WebSearchService.js +78 -0
  1377. package/dist/router/services/WebSearchService.js.map +1 -0
  1378. package/dist/router/services/WebSearchService.test.d.ts +6 -0
  1379. package/dist/router/services/WebSearchService.test.d.ts.map +1 -0
  1380. package/dist/router/services/WebSearchService.test.js +75 -0
  1381. package/dist/router/services/WebSearchService.test.js.map +1 -0
  1382. package/dist/router/services/YouTubeService.d.ts +30 -0
  1383. package/dist/router/services/YouTubeService.d.ts.map +1 -0
  1384. package/dist/router/services/YouTubeService.js +145 -0
  1385. package/dist/router/services/YouTubeService.js.map +1 -0
  1386. package/dist/router/services/YouTubeService.test.d.ts +6 -0
  1387. package/dist/router/services/YouTubeService.test.d.ts.map +1 -0
  1388. package/dist/router/services/YouTubeService.test.js +128 -0
  1389. package/dist/router/services/YouTubeService.test.js.map +1 -0
  1390. package/dist/router/services/google-types.d.ts +222 -0
  1391. package/dist/router/services/google-types.d.ts.map +1 -0
  1392. package/dist/router/services/google-types.js +6 -0
  1393. package/dist/router/services/google-types.js.map +1 -0
  1394. package/dist/router/sessions/DevSessionManager.d.ts +39 -0
  1395. package/dist/router/sessions/DevSessionManager.d.ts.map +1 -0
  1396. package/dist/router/sessions/DevSessionManager.js +151 -0
  1397. package/dist/router/sessions/DevSessionManager.js.map +1 -0
  1398. package/dist/router/types.d.ts +117 -0
  1399. package/dist/router/types.d.ts.map +1 -0
  1400. package/dist/router/types.js +25 -0
  1401. package/dist/router/types.js.map +1 -0
  1402. package/dist/sync/ConflictResolver.d.ts +29 -0
  1403. package/dist/sync/ConflictResolver.d.ts.map +1 -0
  1404. package/dist/sync/ConflictResolver.js +106 -0
  1405. package/dist/sync/ConflictResolver.js.map +1 -0
  1406. package/dist/sync/DataSerializer.d.ts +33 -0
  1407. package/dist/sync/DataSerializer.d.ts.map +1 -0
  1408. package/dist/sync/DataSerializer.js +207 -0
  1409. package/dist/sync/DataSerializer.js.map +1 -0
  1410. package/dist/sync/DeviceManager.d.ts +31 -0
  1411. package/dist/sync/DeviceManager.d.ts.map +1 -0
  1412. package/dist/sync/DeviceManager.js +141 -0
  1413. package/dist/sync/DeviceManager.js.map +1 -0
  1414. package/dist/sync/SyncEngine.d.ts +56 -0
  1415. package/dist/sync/SyncEngine.d.ts.map +1 -0
  1416. package/dist/sync/SyncEngine.js +172 -0
  1417. package/dist/sync/SyncEngine.js.map +1 -0
  1418. package/dist/sync/SyncStore.d.ts +46 -0
  1419. package/dist/sync/SyncStore.d.ts.map +1 -0
  1420. package/dist/sync/SyncStore.js +219 -0
  1421. package/dist/sync/SyncStore.js.map +1 -0
  1422. package/dist/sync/index.d.ts +12 -0
  1423. package/dist/sync/index.d.ts.map +1 -0
  1424. package/dist/sync/index.js +11 -0
  1425. package/dist/sync/index.js.map +1 -0
  1426. package/dist/sync/sync.test.d.ts +5 -0
  1427. package/dist/sync/sync.test.d.ts.map +1 -0
  1428. package/dist/sync/sync.test.js +416 -0
  1429. package/dist/sync/sync.test.js.map +1 -0
  1430. package/dist/sync/types.d.ts +80 -0
  1431. package/dist/sync/types.d.ts.map +1 -0
  1432. package/dist/sync/types.js +12 -0
  1433. package/dist/sync/types.js.map +1 -0
  1434. package/dist/tools/browser/index.d.ts +47 -0
  1435. package/dist/tools/browser/index.d.ts.map +1 -0
  1436. package/dist/tools/browser/index.js +413 -0
  1437. package/dist/tools/browser/index.js.map +1 -0
  1438. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  1439. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  1440. package/dist/tools/google/index.d.ts +84 -0
  1441. package/dist/tools/google/index.d.ts.map +1 -0
  1442. package/dist/tools/google/index.js +508 -0
  1443. package/dist/tools/google/index.js.map +1 -0
  1444. package/dist/tools/integration/index.d.ts +24 -0
  1445. package/dist/tools/integration/index.d.ts.map +1 -0
  1446. package/dist/tools/integration/index.js +223 -0
  1447. package/dist/tools/integration/index.js.map +1 -0
  1448. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  1449. package/dist/tools/memory/getMemoryGraph.js +12 -12
  1450. package/dist/tools/memory/getSessionContext.js +9 -9
  1451. package/dist/tools/memory/linkMemories.js +14 -14
  1452. package/dist/tools/memory/listMemories.js +4 -4
  1453. package/dist/tools/memory/recallMemory.js +4 -4
  1454. package/dist/tools/memory/saveMemory.js +4 -4
  1455. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  1456. package/dist/tools/sandbox/index.d.ts +25 -0
  1457. package/dist/tools/sandbox/index.d.ts.map +1 -0
  1458. package/dist/tools/sandbox/index.js +255 -0
  1459. package/dist/tools/sandbox/index.js.map +1 -0
  1460. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  1461. package/dist/tools/semantic/astGrep.d.ts +2 -0
  1462. package/dist/tools/semantic/astGrep.d.ts.map +1 -1
  1463. package/dist/tools/semantic/astGrep.js +61 -35
  1464. package/dist/tools/semantic/astGrep.js.map +1 -1
  1465. package/dist/tools/semantic/astGrep.test.js +15 -7
  1466. package/dist/tools/semantic/astGrep.test.js.map +1 -1
  1467. package/dist/tools/spec/prdParser.test.js +171 -171
  1468. package/dist/tools/spec/specGenerator.js +169 -169
  1469. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  1470. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  1471. package/dist/tools/vision/index.d.ts +45 -0
  1472. package/dist/tools/vision/index.d.ts.map +1 -0
  1473. package/dist/tools/vision/index.js +328 -0
  1474. package/dist/tools/vision/index.js.map +1 -0
  1475. package/dist/tools/voice/index.d.ts +24 -0
  1476. package/dist/tools/voice/index.d.ts.map +1 -0
  1477. package/dist/tools/voice/index.js +204 -0
  1478. package/dist/tools/voice/index.js.map +1 -0
  1479. package/dist/types/tool.d.ts +64 -0
  1480. package/dist/types/tool.d.ts.map +1 -0
  1481. package/dist/types/tool.js +3 -0
  1482. package/dist/types/tool.js.map +1 -0
  1483. package/hooks/hooks.json +137 -137
  1484. package/hooks/scripts/code-check.js +70 -70
  1485. package/hooks/scripts/context-save.js +200 -200
  1486. package/hooks/scripts/hud-status.js +291 -291
  1487. package/hooks/scripts/keyword-detector.js +214 -214
  1488. package/hooks/scripts/llm-orchestrate.js +646 -511
  1489. package/hooks/scripts/post-edit.js +32 -32
  1490. package/hooks/scripts/pre-tool-guard.js +125 -125
  1491. package/hooks/scripts/prompt-dispatcher.js +185 -185
  1492. package/hooks/scripts/sentinel-guard.js +104 -104
  1493. package/hooks/scripts/session-start.js +106 -106
  1494. package/hooks/scripts/stop-notify.js +209 -209
  1495. package/hooks/scripts/utils.js +100 -100
  1496. package/languages/csharp-unity.md +515 -515
  1497. package/languages/gdscript-godot.md +470 -470
  1498. package/languages/ruby-rails.md +489 -489
  1499. package/languages/typescript-angular.md +433 -433
  1500. package/languages/typescript-astro.md +416 -416
  1501. package/languages/typescript-electron.md +406 -406
  1502. package/languages/typescript-nestjs.md +524 -524
  1503. package/languages/typescript-svelte.md +407 -407
  1504. package/languages/typescript-tauri.md +365 -365
  1505. package/package.json +121 -119
  1506. package/skills/brand-assets/SKILL.md +138 -138
  1507. package/skills/commerce-patterns/SKILL.md +361 -361
  1508. package/skills/commit-push-pr/SKILL.md +118 -118
  1509. package/skills/context7-usage/SKILL.md +105 -105
  1510. package/skills/e2e-commerce/SKILL.md +304 -304
  1511. package/skills/frontend-design/SKILL.md +92 -92
  1512. package/skills/git-worktree/SKILL.md +184 -184
  1513. package/skills/handoff/SKILL.md +101 -101
  1514. package/skills/priority-todos/SKILL.md +242 -242
  1515. package/skills/seo-checklist/SKILL.md +244 -244
  1516. package/skills/techdebt/SKILL.md +122 -122
  1517. package/skills/tool-fallback/SKILL.md +193 -193
  1518. package/skills/typescript-advanced-types/SKILL.md +720 -720
  1519. package/skills/ui-ux-pro-max/SKILL.md +386 -386
  1520. package/skills/vercel-react-best-practices/SKILL.md +304 -304
  1521. package/vibe/config.json +29 -29
  1522. package/vibe/constitution.md +227 -227
  1523. package/vibe/rules/principles/communication-guide.md +98 -98
  1524. package/vibe/rules/principles/development-philosophy.md +52 -52
  1525. package/vibe/rules/principles/quick-start.md +102 -102
  1526. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  1527. package/vibe/rules/quality/checklist.md +276 -276
  1528. package/vibe/rules/quality/performance.md +236 -236
  1529. package/vibe/rules/quality/testing-strategy.md +440 -440
  1530. package/vibe/rules/standards/anti-patterns.md +541 -541
  1531. package/vibe/rules/standards/code-structure.md +291 -291
  1532. package/vibe/rules/standards/complexity-metrics.md +313 -313
  1533. package/vibe/rules/standards/git-workflow.md +237 -237
  1534. package/vibe/rules/standards/naming-conventions.md +198 -198
  1535. package/vibe/rules/standards/security.md +305 -305
  1536. package/vibe/rules/writing/document-style.md +74 -74
  1537. package/vibe/setup.sh +31 -31
  1538. package/vibe/templates/constitution-template.md +252 -252
  1539. package/vibe/templates/contract-backend-template.md +526 -526
  1540. package/vibe/templates/contract-frontend-template.md +599 -599
  1541. package/vibe/templates/feature-template.md +96 -96
  1542. package/vibe/templates/spec-template.md +221 -221
  1543. package/vibe/ui-ux-data/charts.csv +26 -26
  1544. package/vibe/ui-ux-data/colors.csv +97 -97
  1545. package/vibe/ui-ux-data/icons.csv +101 -101
  1546. package/vibe/ui-ux-data/landing.csv +31 -31
  1547. package/vibe/ui-ux-data/products.csv +96 -96
  1548. package/vibe/ui-ux-data/react-performance.csv +45 -45
  1549. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  1550. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  1551. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  1552. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  1553. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  1554. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  1555. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  1556. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  1557. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  1558. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  1559. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  1560. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  1561. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  1562. package/vibe/ui-ux-data/styles.csv +68 -68
  1563. package/vibe/ui-ux-data/typography.csv +57 -57
  1564. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  1565. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  1566. package/vibe/ui-ux-data/version.json +31 -31
  1567. package/vibe/ui-ux-data/web-interface.csv +31 -31
@@ -1,53 +1,53 @@
1
- No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
- 1,Routing,Use App Router for new projects,App Router is the recommended approach in Next.js 14+,app/ directory with page.tsx,pages/ for new projects,app/dashboard/page.tsx,pages/dashboard.tsx,Medium,https://nextjs.org/docs/app
3
- 2,Routing,Use file-based routing,Create routes by adding files in app directory,page.tsx for routes layout.tsx for layouts,Manual route configuration,app/blog/[slug]/page.tsx,Custom router setup,Medium,https://nextjs.org/docs/app/building-your-application/routing
4
- 3,Routing,Colocate related files,Keep components styles tests with their routes,Component files alongside page.tsx,Separate components folder,app/dashboard/_components/,components/dashboard/,Low,
5
- 4,Routing,Use route groups for organization,Group routes without affecting URL,Parentheses for route groups,Nested folders affecting URL,(marketing)/about/page.tsx,marketing/about/page.tsx,Low,https://nextjs.org/docs/app/building-your-application/routing/route-groups
6
- 5,Routing,Handle loading states,Use loading.tsx for route loading UI,loading.tsx alongside page.tsx,Manual loading state management,app/dashboard/loading.tsx,useState for loading in page,Medium,https://nextjs.org/docs/app/building-your-application/routing/loading-ui-and-streaming
7
- 6,Routing,Handle errors with error.tsx,Catch errors at route level,error.tsx with reset function,try/catch in every component,app/dashboard/error.tsx,try/catch in page component,High,https://nextjs.org/docs/app/building-your-application/routing/error-handling
8
- 7,Rendering,Use Server Components by default,Server Components reduce client JS bundle,Keep components server by default,Add 'use client' unnecessarily,export default function Page(),('use client') for static content,High,https://nextjs.org/docs/app/building-your-application/rendering/server-components
9
- 8,Rendering,Mark Client Components explicitly,'use client' for interactive components,Add 'use client' only when needed,Server Component with hooks/events,('use client') for onClick useState,No directive with useState,High,https://nextjs.org/docs/app/building-your-application/rendering/client-components
10
- 9,Rendering,Push Client Components down,Keep Client Components as leaf nodes,Client wrapper for interactive parts only,Mark page as Client Component,<InteractiveButton/> in Server Page,('use client') on page.tsx,High,
11
- 10,Rendering,Use streaming for better UX,Stream content with Suspense boundaries,Suspense for slow data fetches,Wait for all data before render,<Suspense><SlowComponent/></Suspense>,await allData then render,Medium,https://nextjs.org/docs/app/building-your-application/routing/loading-ui-and-streaming
12
- 11,Rendering,Choose correct rendering strategy,SSG for static SSR for dynamic ISR for semi-static,generateStaticParams for known paths,SSR for static content,export const revalidate = 3600,fetch without cache config,Medium,
13
- 12,DataFetching,Fetch data in Server Components,Fetch directly in async Server Components,async function Page() { const data = await fetch() },useEffect for initial data,const data = await fetch(url),useEffect(() => fetch(url)),High,https://nextjs.org/docs/app/building-your-application/data-fetching
14
- 13,DataFetching,Configure caching explicitly (Next.js 15+),Next.js 15 changed defaults to uncached for fetch,Explicitly set cache: 'force-cache' for static data,Assume default is cached (it's not in Next.js 15),fetch(url { cache: 'force-cache' }),fetch(url) // Uncached in v15,High,https://nextjs.org/docs/app/building-your-application/upgrading/version-15
15
- 14,DataFetching,Deduplicate fetch requests,React and Next.js dedupe same requests,Same fetch call in multiple components,Manual request deduplication,Multiple components fetch same URL,Custom cache layer,Low,
16
- 15,DataFetching,Use Server Actions for mutations,Server Actions for form submissions,action={serverAction} in forms,API route for every mutation,<form action={createPost}>,<form onSubmit={callApiRoute}>,Medium,https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations
17
- 16,DataFetching,Revalidate data appropriately,Use revalidatePath/revalidateTag after mutations,Revalidate after Server Action,'use client' with manual refetch,revalidatePath('/posts'),router.refresh() everywhere,Medium,https://nextjs.org/docs/app/building-your-application/caching#revalidating
18
- 17,Images,Use next/image for optimization,Automatic image optimization and lazy loading,<Image> component for all images,<img> tags directly,<Image src={} alt={} width={} height={}>,<img src={}/>,High,https://nextjs.org/docs/app/building-your-application/optimizing/images
19
- 18,Images,Provide width and height,Prevent layout shift with dimensions,width and height props or fill,Missing dimensions,<Image width={400} height={300}/>,<Image src={url}/>,High,
20
- 19,Images,Use fill for responsive images,Fill container with object-fit,fill prop with relative parent,Fixed dimensions for responsive,"<Image fill className=""object-cover""/>",<Image width={window.width}/>,Medium,
21
- 20,Images,Configure remote image domains,Whitelist external image sources,remotePatterns in next.config.js,Allow all domains,remotePatterns: [{ hostname: 'cdn.example.com' }],domains: ['*'],High,https://nextjs.org/docs/app/api-reference/components/image#remotepatterns
22
- 21,Images,Use priority for LCP images,Mark above-fold images as priority,priority prop on hero images,All images with priority,<Image priority src={hero}/>,<Image priority/> on every image,Medium,
23
- 22,Fonts,Use next/font for fonts,Self-hosted fonts with zero layout shift,next/font/google or next/font/local,External font links,import { Inter } from 'next/font/google',"<link href=""fonts.googleapis.com""/>",Medium,https://nextjs.org/docs/app/building-your-application/optimizing/fonts
24
- 23,Fonts,Apply font to layout,Set font in root layout for consistency,className on body in layout.tsx,Font in individual pages,<body className={inter.className}>,Each page imports font,Low,
25
- 24,Fonts,Use variable fonts,Variable fonts reduce bundle size,Single variable font file,Multiple font weights as files,Inter({ subsets: ['latin'] }),Inter_400 Inter_500 Inter_700,Low,
26
- 25,Metadata,Use generateMetadata for dynamic,Generate metadata based on params,export async function generateMetadata(),Hardcoded metadata everywhere,generateMetadata({ params }),export const metadata = {},Medium,https://nextjs.org/docs/app/building-your-application/optimizing/metadata
27
- 26,Metadata,Include OpenGraph images,Add OG images for social sharing,opengraph-image.tsx or og property,Missing social preview images,opengraph: { images: ['/og.png'] },No OG configuration,Medium,
28
- 27,Metadata,Use metadata API,Export metadata object for static metadata,export const metadata = {},Manual head tags,export const metadata = { title: 'Page' },<head><title>Page</title></head>,Medium,
29
- 28,API,Use Route Handlers for APIs,app/api routes for API endpoints,app/api/users/route.ts,pages/api for new projects,export async function GET(request),export default function handler,Medium,https://nextjs.org/docs/app/building-your-application/routing/route-handlers
30
- 29,API,Return proper Response objects,Use NextResponse for API responses,NextResponse.json() for JSON,Plain objects or res.json(),return NextResponse.json({ data }),return { data },Medium,
31
- 30,API,Handle HTTP methods explicitly,Export named functions for methods,Export GET POST PUT DELETE,Single handler for all methods,export async function POST(),switch(req.method),Low,
32
- 31,API,Validate request body,Validate input before processing,Zod or similar for validation,Trust client input,const body = schema.parse(await req.json()),const body = await req.json(),High,
33
- 32,Middleware,Use middleware for auth,Protect routes with middleware.ts,middleware.ts at root,Auth check in every page,export function middleware(request),if (!session) redirect in page,Medium,https://nextjs.org/docs/app/building-your-application/routing/middleware
34
- 33,Middleware,Match specific paths,Configure middleware matcher,config.matcher for specific routes,Run middleware on all routes,matcher: ['/dashboard/:path*'],No matcher config,Medium,
35
- 34,Middleware,Keep middleware edge-compatible,Middleware runs on Edge runtime,Edge-compatible code only,Node.js APIs in middleware,Edge-compatible auth check,fs.readFile in middleware,High,
36
- 35,Environment,Use NEXT_PUBLIC prefix,Client-accessible env vars need prefix,NEXT_PUBLIC_ for client vars,Server vars exposed to client,NEXT_PUBLIC_API_URL,API_SECRET in client code,High,https://nextjs.org/docs/app/building-your-application/configuring/environment-variables
37
- 36,Environment,Validate env vars,Check required env vars exist,Validate on startup,Undefined env at runtime,if (!process.env.DATABASE_URL) throw,process.env.DATABASE_URL (might be undefined),High,
38
- 37,Environment,Use .env.local for secrets,Local env file for development secrets,.env.local gitignored,Secrets in .env committed,.env.local with secrets,.env with DATABASE_PASSWORD,High,
39
- 38,Performance,Analyze bundle size,Use @next/bundle-analyzer,Bundle analyzer in dev,Ship large bundles blindly,ANALYZE=true npm run build,No bundle analysis,Medium,https://nextjs.org/docs/app/building-your-application/optimizing/bundle-analyzer
40
- 39,Performance,Use dynamic imports,Code split with next/dynamic,dynamic() for heavy components,Import everything statically,const Chart = dynamic(() => import('./Chart')),import Chart from './Chart',Medium,https://nextjs.org/docs/app/building-your-application/optimizing/lazy-loading
41
- 40,Performance,Avoid layout shifts,Reserve space for dynamic content,Skeleton loaders aspect ratios,Content popping in,"<Skeleton className=""h-48""/>",No placeholder for async content,High,
42
- 41,Performance,Use Partial Prerendering,Combine static and dynamic in one route,Static shell with Suspense holes,Full dynamic or static pages,Static header + dynamic content,Entire page SSR,Low,https://nextjs.org/docs/app/building-your-application/rendering/partial-prerendering
43
- 42,Link,Use next/link for navigation,Client-side navigation with prefetching,"<Link href=""""> for internal links",<a> for internal navigation,"<Link href=""/about"">About</Link>","<a href=""/about"">About</a>",High,https://nextjs.org/docs/app/api-reference/components/link
44
- 43,Link,Prefetch strategically,Control prefetching behavior,prefetch={false} for low-priority,Prefetch all links,<Link prefetch={false}>,Default prefetch on every link,Low,
45
- 44,Link,Use scroll option appropriately,Control scroll behavior on navigation,scroll={false} for tabs pagination,Always scroll to top,<Link scroll={false}>,Manual scroll management,Low,
46
- 45,Config,Use next.config.js correctly,Configure Next.js behavior,Proper config options,Deprecated or wrong options,images: { remotePatterns: [] },images: { domains: [] },Medium,https://nextjs.org/docs/app/api-reference/next-config-js
47
- 46,Config,Enable strict mode,Catch potential issues early,reactStrictMode: true,Strict mode disabled,reactStrictMode: true,reactStrictMode: false,Medium,
48
- 47,Config,Configure redirects and rewrites,Use config for URL management,redirects() rewrites() in config,Manual redirect handling,redirects: async () => [...],res.redirect in pages,Medium,https://nextjs.org/docs/app/api-reference/next-config-js/redirects
49
- 48,Deployment,Use Vercel for easiest deploy,Vercel optimized for Next.js,Deploy to Vercel,Self-host without knowledge,vercel deploy,Complex Docker setup for simple app,Low,https://nextjs.org/docs/app/building-your-application/deploying
50
- 49,Deployment,Configure output for self-hosting,Set output option for deployment target,output: 'standalone' for Docker,Default output for containers,output: 'standalone',No output config for Docker,Medium,https://nextjs.org/docs/app/building-your-application/deploying#self-hosting
51
- 50,Security,Sanitize user input,Never trust user input,Escape sanitize validate all input,Direct interpolation of user data,DOMPurify.sanitize(userInput),dangerouslySetInnerHTML={{ __html: userInput }},High,
52
- 51,Security,Use CSP headers,Content Security Policy for XSS protection,Configure CSP in next.config.js,No security headers,headers() with CSP,No CSP configuration,High,https://nextjs.org/docs/app/building-your-application/configuring/content-security-policy
53
- 52,Security,Validate Server Action input,Server Actions are public endpoints,Validate and authorize in Server Action,Trust Server Action input,Auth check + validation in action,Direct database call without check,High,
1
+ No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
+ 1,Routing,Use App Router for new projects,App Router is the recommended approach in Next.js 14+,app/ directory with page.tsx,pages/ for new projects,app/dashboard/page.tsx,pages/dashboard.tsx,Medium,https://nextjs.org/docs/app
3
+ 2,Routing,Use file-based routing,Create routes by adding files in app directory,page.tsx for routes layout.tsx for layouts,Manual route configuration,app/blog/[slug]/page.tsx,Custom router setup,Medium,https://nextjs.org/docs/app/building-your-application/routing
4
+ 3,Routing,Colocate related files,Keep components styles tests with their routes,Component files alongside page.tsx,Separate components folder,app/dashboard/_components/,components/dashboard/,Low,
5
+ 4,Routing,Use route groups for organization,Group routes without affecting URL,Parentheses for route groups,Nested folders affecting URL,(marketing)/about/page.tsx,marketing/about/page.tsx,Low,https://nextjs.org/docs/app/building-your-application/routing/route-groups
6
+ 5,Routing,Handle loading states,Use loading.tsx for route loading UI,loading.tsx alongside page.tsx,Manual loading state management,app/dashboard/loading.tsx,useState for loading in page,Medium,https://nextjs.org/docs/app/building-your-application/routing/loading-ui-and-streaming
7
+ 6,Routing,Handle errors with error.tsx,Catch errors at route level,error.tsx with reset function,try/catch in every component,app/dashboard/error.tsx,try/catch in page component,High,https://nextjs.org/docs/app/building-your-application/routing/error-handling
8
+ 7,Rendering,Use Server Components by default,Server Components reduce client JS bundle,Keep components server by default,Add 'use client' unnecessarily,export default function Page(),('use client') for static content,High,https://nextjs.org/docs/app/building-your-application/rendering/server-components
9
+ 8,Rendering,Mark Client Components explicitly,'use client' for interactive components,Add 'use client' only when needed,Server Component with hooks/events,('use client') for onClick useState,No directive with useState,High,https://nextjs.org/docs/app/building-your-application/rendering/client-components
10
+ 9,Rendering,Push Client Components down,Keep Client Components as leaf nodes,Client wrapper for interactive parts only,Mark page as Client Component,<InteractiveButton/> in Server Page,('use client') on page.tsx,High,
11
+ 10,Rendering,Use streaming for better UX,Stream content with Suspense boundaries,Suspense for slow data fetches,Wait for all data before render,<Suspense><SlowComponent/></Suspense>,await allData then render,Medium,https://nextjs.org/docs/app/building-your-application/routing/loading-ui-and-streaming
12
+ 11,Rendering,Choose correct rendering strategy,SSG for static SSR for dynamic ISR for semi-static,generateStaticParams for known paths,SSR for static content,export const revalidate = 3600,fetch without cache config,Medium,
13
+ 12,DataFetching,Fetch data in Server Components,Fetch directly in async Server Components,async function Page() { const data = await fetch() },useEffect for initial data,const data = await fetch(url),useEffect(() => fetch(url)),High,https://nextjs.org/docs/app/building-your-application/data-fetching
14
+ 13,DataFetching,Configure caching explicitly (Next.js 15+),Next.js 15 changed defaults to uncached for fetch,Explicitly set cache: 'force-cache' for static data,Assume default is cached (it's not in Next.js 15),fetch(url { cache: 'force-cache' }),fetch(url) // Uncached in v15,High,https://nextjs.org/docs/app/building-your-application/upgrading/version-15
15
+ 14,DataFetching,Deduplicate fetch requests,React and Next.js dedupe same requests,Same fetch call in multiple components,Manual request deduplication,Multiple components fetch same URL,Custom cache layer,Low,
16
+ 15,DataFetching,Use Server Actions for mutations,Server Actions for form submissions,action={serverAction} in forms,API route for every mutation,<form action={createPost}>,<form onSubmit={callApiRoute}>,Medium,https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations
17
+ 16,DataFetching,Revalidate data appropriately,Use revalidatePath/revalidateTag after mutations,Revalidate after Server Action,'use client' with manual refetch,revalidatePath('/posts'),router.refresh() everywhere,Medium,https://nextjs.org/docs/app/building-your-application/caching#revalidating
18
+ 17,Images,Use next/image for optimization,Automatic image optimization and lazy loading,<Image> component for all images,<img> tags directly,<Image src={} alt={} width={} height={}>,<img src={}/>,High,https://nextjs.org/docs/app/building-your-application/optimizing/images
19
+ 18,Images,Provide width and height,Prevent layout shift with dimensions,width and height props or fill,Missing dimensions,<Image width={400} height={300}/>,<Image src={url}/>,High,
20
+ 19,Images,Use fill for responsive images,Fill container with object-fit,fill prop with relative parent,Fixed dimensions for responsive,"<Image fill className=""object-cover""/>",<Image width={window.width}/>,Medium,
21
+ 20,Images,Configure remote image domains,Whitelist external image sources,remotePatterns in next.config.js,Allow all domains,remotePatterns: [{ hostname: 'cdn.example.com' }],domains: ['*'],High,https://nextjs.org/docs/app/api-reference/components/image#remotepatterns
22
+ 21,Images,Use priority for LCP images,Mark above-fold images as priority,priority prop on hero images,All images with priority,<Image priority src={hero}/>,<Image priority/> on every image,Medium,
23
+ 22,Fonts,Use next/font for fonts,Self-hosted fonts with zero layout shift,next/font/google or next/font/local,External font links,import { Inter } from 'next/font/google',"<link href=""fonts.googleapis.com""/>",Medium,https://nextjs.org/docs/app/building-your-application/optimizing/fonts
24
+ 23,Fonts,Apply font to layout,Set font in root layout for consistency,className on body in layout.tsx,Font in individual pages,<body className={inter.className}>,Each page imports font,Low,
25
+ 24,Fonts,Use variable fonts,Variable fonts reduce bundle size,Single variable font file,Multiple font weights as files,Inter({ subsets: ['latin'] }),Inter_400 Inter_500 Inter_700,Low,
26
+ 25,Metadata,Use generateMetadata for dynamic,Generate metadata based on params,export async function generateMetadata(),Hardcoded metadata everywhere,generateMetadata({ params }),export const metadata = {},Medium,https://nextjs.org/docs/app/building-your-application/optimizing/metadata
27
+ 26,Metadata,Include OpenGraph images,Add OG images for social sharing,opengraph-image.tsx or og property,Missing social preview images,opengraph: { images: ['/og.png'] },No OG configuration,Medium,
28
+ 27,Metadata,Use metadata API,Export metadata object for static metadata,export const metadata = {},Manual head tags,export const metadata = { title: 'Page' },<head><title>Page</title></head>,Medium,
29
+ 28,API,Use Route Handlers for APIs,app/api routes for API endpoints,app/api/users/route.ts,pages/api for new projects,export async function GET(request),export default function handler,Medium,https://nextjs.org/docs/app/building-your-application/routing/route-handlers
30
+ 29,API,Return proper Response objects,Use NextResponse for API responses,NextResponse.json() for JSON,Plain objects or res.json(),return NextResponse.json({ data }),return { data },Medium,
31
+ 30,API,Handle HTTP methods explicitly,Export named functions for methods,Export GET POST PUT DELETE,Single handler for all methods,export async function POST(),switch(req.method),Low,
32
+ 31,API,Validate request body,Validate input before processing,Zod or similar for validation,Trust client input,const body = schema.parse(await req.json()),const body = await req.json(),High,
33
+ 32,Middleware,Use middleware for auth,Protect routes with middleware.ts,middleware.ts at root,Auth check in every page,export function middleware(request),if (!session) redirect in page,Medium,https://nextjs.org/docs/app/building-your-application/routing/middleware
34
+ 33,Middleware,Match specific paths,Configure middleware matcher,config.matcher for specific routes,Run middleware on all routes,matcher: ['/dashboard/:path*'],No matcher config,Medium,
35
+ 34,Middleware,Keep middleware edge-compatible,Middleware runs on Edge runtime,Edge-compatible code only,Node.js APIs in middleware,Edge-compatible auth check,fs.readFile in middleware,High,
36
+ 35,Environment,Use NEXT_PUBLIC prefix,Client-accessible env vars need prefix,NEXT_PUBLIC_ for client vars,Server vars exposed to client,NEXT_PUBLIC_API_URL,API_SECRET in client code,High,https://nextjs.org/docs/app/building-your-application/configuring/environment-variables
37
+ 36,Environment,Validate env vars,Check required env vars exist,Validate on startup,Undefined env at runtime,if (!process.env.DATABASE_URL) throw,process.env.DATABASE_URL (might be undefined),High,
38
+ 37,Environment,Use .env.local for secrets,Local env file for development secrets,.env.local gitignored,Secrets in .env committed,.env.local with secrets,.env with DATABASE_PASSWORD,High,
39
+ 38,Performance,Analyze bundle size,Use @next/bundle-analyzer,Bundle analyzer in dev,Ship large bundles blindly,ANALYZE=true npm run build,No bundle analysis,Medium,https://nextjs.org/docs/app/building-your-application/optimizing/bundle-analyzer
40
+ 39,Performance,Use dynamic imports,Code split with next/dynamic,dynamic() for heavy components,Import everything statically,const Chart = dynamic(() => import('./Chart')),import Chart from './Chart',Medium,https://nextjs.org/docs/app/building-your-application/optimizing/lazy-loading
41
+ 40,Performance,Avoid layout shifts,Reserve space for dynamic content,Skeleton loaders aspect ratios,Content popping in,"<Skeleton className=""h-48""/>",No placeholder for async content,High,
42
+ 41,Performance,Use Partial Prerendering,Combine static and dynamic in one route,Static shell with Suspense holes,Full dynamic or static pages,Static header + dynamic content,Entire page SSR,Low,https://nextjs.org/docs/app/building-your-application/rendering/partial-prerendering
43
+ 42,Link,Use next/link for navigation,Client-side navigation with prefetching,"<Link href=""""> for internal links",<a> for internal navigation,"<Link href=""/about"">About</Link>","<a href=""/about"">About</a>",High,https://nextjs.org/docs/app/api-reference/components/link
44
+ 43,Link,Prefetch strategically,Control prefetching behavior,prefetch={false} for low-priority,Prefetch all links,<Link prefetch={false}>,Default prefetch on every link,Low,
45
+ 44,Link,Use scroll option appropriately,Control scroll behavior on navigation,scroll={false} for tabs pagination,Always scroll to top,<Link scroll={false}>,Manual scroll management,Low,
46
+ 45,Config,Use next.config.js correctly,Configure Next.js behavior,Proper config options,Deprecated or wrong options,images: { remotePatterns: [] },images: { domains: [] },Medium,https://nextjs.org/docs/app/api-reference/next-config-js
47
+ 46,Config,Enable strict mode,Catch potential issues early,reactStrictMode: true,Strict mode disabled,reactStrictMode: true,reactStrictMode: false,Medium,
48
+ 47,Config,Configure redirects and rewrites,Use config for URL management,redirects() rewrites() in config,Manual redirect handling,redirects: async () => [...],res.redirect in pages,Medium,https://nextjs.org/docs/app/api-reference/next-config-js/redirects
49
+ 48,Deployment,Use Vercel for easiest deploy,Vercel optimized for Next.js,Deploy to Vercel,Self-host without knowledge,vercel deploy,Complex Docker setup for simple app,Low,https://nextjs.org/docs/app/building-your-application/deploying
50
+ 49,Deployment,Configure output for self-hosting,Set output option for deployment target,output: 'standalone' for Docker,Default output for containers,output: 'standalone',No output config for Docker,Medium,https://nextjs.org/docs/app/building-your-application/deploying#self-hosting
51
+ 50,Security,Sanitize user input,Never trust user input,Escape sanitize validate all input,Direct interpolation of user data,DOMPurify.sanitize(userInput),dangerouslySetInnerHTML={{ __html: userInput }},High,
52
+ 51,Security,Use CSP headers,Content Security Policy for XSS protection,Configure CSP in next.config.js,No security headers,headers() with CSP,No CSP configuration,High,https://nextjs.org/docs/app/building-your-application/configuring/content-security-policy
53
+ 52,Security,Validate Server Action input,Server Actions are public endpoints,Validate and authorize in Server Action,Trust Server Action input,Auth check + validation in action,Direct database call without check,High,
@@ -1,51 +1,51 @@
1
- No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
- 1,Installation,Add Nuxt UI module,Install and configure Nuxt UI in your Nuxt project,pnpm add @nuxt/ui and add to modules,Manual component imports,"modules: ['@nuxt/ui']","import { UButton } from '@nuxt/ui'",High,https://ui.nuxt.com/docs/getting-started/installation/nuxt
3
- 2,Installation,Import Tailwind and Nuxt UI CSS,Required CSS imports in main.css file,@import tailwindcss and @import @nuxt/ui,Skip CSS imports,"@import ""tailwindcss""; @import ""@nuxt/ui"";",No CSS imports,High,https://ui.nuxt.com/docs/getting-started/installation/nuxt
4
- 3,Installation,Wrap app with UApp component,UApp provides global configs for Toast Tooltip and overlays,<UApp> wrapper in app.vue,Skip UApp wrapper,<UApp><NuxtPage/></UApp>,<NuxtPage/> without wrapper,High,https://ui.nuxt.com/docs/components/app
5
- 4,Components,Use U prefix for components,All Nuxt UI components use U prefix by default,UButton UInput UModal,Button Input Modal,<UButton>Click</UButton>,<Button>Click</Button>,Medium,https://ui.nuxt.com/docs/getting-started/installation/nuxt
6
- 5,Components,Use semantic color props,Use semantic colors like primary secondary error,color="primary" color="error",Hardcoded colors,"<UButton color=""primary"">","<UButton class=""bg-green-500"">",Medium,https://ui.nuxt.com/docs/getting-started/theme/design-system
7
- 6,Components,Use variant prop for styling,Nuxt UI provides solid outline soft subtle ghost link variants,variant="soft" variant="outline",Custom button classes,"<UButton variant=""soft"">","<UButton class=""border bg-transparent"">",Medium,https://ui.nuxt.com/docs/components/button
8
- 7,Components,Use size prop consistently,Components support xs sm md lg xl sizes,size="sm" size="lg",Arbitrary sizing classes,"<UButton size=""lg"">","<UButton class=""text-xl px-6"">",Low,https://ui.nuxt.com/docs/components/button
9
- 8,Icons,Use icon prop with Iconify format,Nuxt UI supports Iconify icons via icon prop,icon="lucide:home" icon="heroicons:user",i-lucide-home format,"<UButton icon=""lucide:home"">","<UButton icon=""i-lucide-home"">",Medium,https://ui.nuxt.com/docs/getting-started/integrations/icons/nuxt
10
- 9,Icons,Use leadingIcon and trailingIcon,Position icons with dedicated props for clarity,leadingIcon="lucide:plus" trailingIcon="lucide:arrow-right",Manual icon positioning,"<UButton leadingIcon=""lucide:plus"">","<UButton><Icon name=""lucide:plus""/>Add</UButton>",Low,https://ui.nuxt.com/docs/components/button
11
- 10,Theming,Configure colors in app.config.ts,Runtime color configuration without restart,ui.colors.primary in app.config.ts,Hardcoded colors in components,"defineAppConfig({ ui: { colors: { primary: 'blue' } } })","<UButton class=""bg-blue-500"">",High,https://ui.nuxt.com/docs/getting-started/theme/design-system
12
- 11,Theming,Use @theme directive for custom colors,Define design tokens in CSS with Tailwind @theme,@theme { --color-brand-500: #xxx },Inline color definitions,@theme { --color-brand-500: #ef4444; },:style="{ color: '#ef4444' }",Medium,https://ui.nuxt.com/docs/getting-started/theme/design-system
13
- 12,Theming,Extend semantic colors in nuxt.config,Register new colors like tertiary in theme.colors,theme.colors array in ui config,Use undefined colors,"ui: { theme: { colors: ['primary', 'tertiary'] } }","<UButton color=""tertiary""> without config",Medium,https://ui.nuxt.com/docs/getting-started/theme/design-system
14
- 13,Forms,Use UForm with schema validation,UForm supports Zod Yup Joi Valibot schemas,:schema prop with validation schema,Manual form validation,"<UForm :schema=""schema"" :state=""state"">",Manual @blur validation,High,https://ui.nuxt.com/docs/components/form
15
- 14,Forms,Use UFormField for field wrapper,Provides label error message and validation display,UFormField with name prop,Manual error handling,"<UFormField name=""email"" label=""Email"">",<div><label>Email</label><UInput/><span>error</span></div>,Medium,https://ui.nuxt.com/docs/components/form-field
16
- 15,Forms,Handle form submit with @submit,UForm emits submit event with validated data,@submit handler on UForm,@click on submit button,"<UForm @submit=""onSubmit"">","<UButton @click=""onSubmit"">",Medium,https://ui.nuxt.com/docs/components/form
17
- 16,Forms,Use validateOn prop for validation timing,Control when validation triggers (blur change input),validateOn="['blur']" for performance,Always validate on input,"<UForm :validateOn=""['blur', 'change']"">","<UForm> (validates on every keystroke)",Low,https://ui.nuxt.com/docs/components/form
18
- 17,Overlays,Use v-model:open for overlay control,Modal Slideover Drawer use v-model:open,v-model:open for controlled state,Manual show/hide logic,"<UModal v-model:open=""isOpen"">",<UModal v-if="isOpen">,Medium,https://ui.nuxt.com/docs/components/modal
19
- 18,Overlays,Use useOverlay composable for programmatic overlays,Open overlays programmatically without template refs,useOverlay().open(MyModal),Template ref and manual control,"const overlay = useOverlay(); overlay.open(MyModal, { props })","const modal = ref(); modal.value.open()",Medium,https://ui.nuxt.com/docs/components/modal
20
- 19,Overlays,Use title and description props,Built-in header support for overlays,title="Confirm" description="Are you sure?",Manual header content,"<UModal title=""Confirm"" description=""Are you sure?"">","<UModal><template #header><h2>Confirm</h2></template>",Low,https://ui.nuxt.com/docs/components/modal
21
- 20,Dashboard,Use UDashboardSidebar for navigation,Provides collapsible resizable sidebar with mobile support,UDashboardSidebar with header default footer slots,Custom sidebar implementation,<UDashboardSidebar><template #header>...</template></UDashboardSidebar>,<aside class="w-64 border-r">,Medium,https://ui.nuxt.com/docs/components/dashboard-sidebar
22
- 21,Dashboard,Use UDashboardGroup for layout,Wraps dashboard components with sidebar state management,UDashboardGroup > UDashboardSidebar + UDashboardPanel,Manual layout flex containers,<UDashboardGroup><UDashboardSidebar/><UDashboardPanel/></UDashboardGroup>,"<div class=""flex""><aside/><main/></div>",Medium,https://ui.nuxt.com/docs/components/dashboard-group
23
- 22,Dashboard,Use UDashboardNavbar for top navigation,Responsive navbar with mobile menu support,UDashboardNavbar in dashboard layout,Custom navbar implementation,<UDashboardNavbar :links="navLinks"/>,<nav class="border-b">,Low,https://ui.nuxt.com/docs/components/dashboard-navbar
24
- 23,Tables,Use UTable with data and columns props,Powered by TanStack Table with built-in features,:data and :columns props,Manual table markup,"<UTable :data=""users"" :columns=""columns""/>","<table><tr v-for=""user in users"">",High,https://ui.nuxt.com/docs/components/table
25
- 24,Tables,Define columns with accessorKey,Column definitions use accessorKey for data binding,accessorKey: 'email' in column def,String column names only,"{ accessorKey: 'email', header: 'Email' }","['name', 'email']",Medium,https://ui.nuxt.com/docs/components/table
26
- 25,Tables,Use cell slot for custom rendering,Customize cell content with scoped slots,#cell-columnName slot,Override entire table,<template #cell-status="{ row }">,Manual column render function,Medium,https://ui.nuxt.com/docs/components/table
27
- 26,Tables,Enable sorting with sortable column option,Add sortable: true to column definition,sortable: true in column,Manual sort implementation,"{ accessorKey: 'name', sortable: true }",@click="sortBy('name')",Low,https://ui.nuxt.com/docs/components/table
28
- 27,Navigation,Use UNavigationMenu for nav links,Horizontal or vertical navigation with dropdown support,UNavigationMenu with items array,Manual nav with v-for,"<UNavigationMenu :items=""navItems""/>","<nav><a v-for=""item in items"">",Medium,https://ui.nuxt.com/docs/components/navigation-menu
29
- 28,Navigation,Use UBreadcrumb for page hierarchy,Automatic breadcrumb with NuxtLink support,:items array with label and to,Manual breadcrumb links,"<UBreadcrumb :items=""breadcrumbs""/>","<nav><span v-for=""crumb in crumbs"">",Low,https://ui.nuxt.com/docs/components/breadcrumb
30
- 29,Navigation,Use UTabs for tabbed content,Tab navigation with content panels,UTabs with items containing slot content,Manual tab state,"<UTabs :items=""tabs""/>","<div><button @click=""tab=1"">",Medium,https://ui.nuxt.com/docs/components/tabs
31
- 30,Feedback,Use useToast for notifications,Composable for toast notifications,useToast().add({ title description }),Alert components for toasts,"const toast = useToast(); toast.add({ title: 'Saved' })",<UAlert v-if="showSuccess">,High,https://ui.nuxt.com/docs/components/toast
32
- 31,Feedback,Use UAlert for inline messages,Static alert messages with icon and actions,UAlert with title description color,Toast for static messages,"<UAlert title=""Warning"" color=""warning""/>",useToast for inline alerts,Medium,https://ui.nuxt.com/docs/components/alert
33
- 32,Feedback,Use USkeleton for loading states,Placeholder content during data loading,USkeleton with appropriate size,Spinner for content loading,<USkeleton class="h-4 w-32"/>,<UIcon name="lucide:loader" class="animate-spin"/>,Low,https://ui.nuxt.com/docs/components/skeleton
34
- 33,Color Mode,Use UColorModeButton for theme toggle,Built-in light/dark mode toggle button,UColorModeButton component,Manual color mode logic,<UColorModeButton/>,"<button @click=""toggleColorMode"">",Low,https://ui.nuxt.com/docs/components/color-mode-button
35
- 34,Color Mode,Use UColorModeSelect for theme picker,Dropdown to select system light or dark mode,UColorModeSelect component,Custom select for theme,<UColorModeSelect/>,"<USelect v-model=""colorMode"" :items=""modes""/>",Low,https://ui.nuxt.com/docs/components/color-mode-select
36
- 35,Customization,Use ui prop for component styling,Override component styles via ui prop,ui prop with slot class overrides,Global CSS overrides,"<UButton :ui=""{ base: 'rounded-full' }""/>",<UButton class="!rounded-full"/>,Medium,https://ui.nuxt.com/docs/getting-started/theme/components
37
- 36,Customization,Configure default variants in nuxt.config,Set default color and size for all components,theme.defaultVariants in ui config,Repeat props on every component,"ui: { theme: { defaultVariants: { color: 'neutral' } } }","<UButton color=""neutral""> everywhere",Medium,https://ui.nuxt.com/docs/getting-started/installation/nuxt
38
- 37,Customization,Use app.config.ts for theme overrides,Runtime theme customization,defineAppConfig with ui key,nuxt.config for runtime values,"defineAppConfig({ ui: { button: { defaultVariants: { size: 'sm' } } } })","nuxt.config ui.button.size: 'sm'",Medium,https://ui.nuxt.com/docs/getting-started/theme/components
39
- 38,Performance,Enable component detection,Tree-shake unused component CSS,experimental.componentDetection: true,Include all component CSS,"ui: { experimental: { componentDetection: true } }","ui: {} (includes all CSS)",Low,https://ui.nuxt.com/docs/getting-started/installation/nuxt
40
- 39,Performance,Use UTable virtualize for large data,Enable virtualization for 1000+ rows,:virtualize prop on UTable,Render all rows,"<UTable :data=""largeData"" virtualize/>","<UTable :data=""largeData""/>",Medium,https://ui.nuxt.com/docs/components/table
41
- 40,Accessibility,Use semantic component props,Components have built-in ARIA support,Use title description label props,Skip accessibility props,"<UModal title=""Settings"">","<UModal><h2>Settings</h2>",Medium,https://ui.nuxt.com/docs/components/modal
42
- 41,Accessibility,Use UFormField for form accessibility,Automatic label-input association,UFormField wraps inputs,Manual id and for attributes,"<UFormField label=""Email""><UInput/></UFormField>","<label for=""email"">Email</label><UInput id=""email""/>",High,https://ui.nuxt.com/docs/components/form-field
43
- 42,Content,Use UContentToc for table of contents,Automatic TOC with active heading highlight,UContentToc with :links,Manual TOC implementation,"<UContentToc :links=""toc""/>","<nav><a v-for=""heading in headings"">",Low,https://ui.nuxt.com/docs/components/content-toc
44
- 43,Content,Use UContentSearch for docs search,Command palette for documentation search,UContentSearch with Nuxt Content,Custom search implementation,<UContentSearch/>,<UCommandPalette :groups="searchResults"/>,Low,https://ui.nuxt.com/docs/components/content-search
45
- 44,AI/Chat,Use UChatMessages for chat UI,Designed for Vercel AI SDK integration,UChatMessages with messages array,Custom chat message list,"<UChatMessages :messages=""messages""/>","<div v-for=""msg in messages"">",Medium,https://ui.nuxt.com/docs/components/chat-messages
46
- 45,AI/Chat,Use UChatPrompt for input,Enhanced textarea for AI prompts,UChatPrompt with v-model,Basic textarea,<UChatPrompt v-model="prompt"/>,<UTextarea v-model="prompt"/>,Medium,https://ui.nuxt.com/docs/components/chat-prompt
47
- 46,Editor,Use UEditor for rich text,TipTap-based editor with toolbar support,UEditor with v-model:content,Custom TipTap setup,"<UEditor v-model:content=""content""/>",Manual TipTap initialization,Medium,https://ui.nuxt.com/docs/components/editor
48
- 47,Links,Use to prop for navigation,UButton and ULink support NuxtLink to prop,to="/dashboard" for internal links,href for internal navigation,"<UButton to=""/dashboard"">","<UButton href=""/dashboard"">",Medium,https://ui.nuxt.com/docs/components/button
49
- 48,Links,Use external prop for outside links,Explicitly mark external links,target="_blank" with external URLs,Forget rel="noopener","<UButton to=""https://example.com"" target=""_blank"">","<UButton href=""https://..."">",Low,https://ui.nuxt.com/docs/components/link
50
- 49,Loading,Use loadingAuto on buttons,Automatic loading state from @click promise,loadingAuto prop on UButton,Manual loading state,"<UButton loadingAuto @click=""async () => await save()"">","<UButton :loading=""isLoading"" @click=""save"">",Low,https://ui.nuxt.com/docs/components/button
51
- 50,Loading,Use UForm loadingAuto,Auto-disable form during submit,loadingAuto on UForm (default true),Manual form disabled state,"<UForm @submit=""handleSubmit"">","<UForm :disabled=""isSubmitting"">",Low,https://ui.nuxt.com/docs/components/form
1
+ No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
+ 1,Installation,Add Nuxt UI module,Install and configure Nuxt UI in your Nuxt project,pnpm add @nuxt/ui and add to modules,Manual component imports,"modules: ['@nuxt/ui']","import { UButton } from '@nuxt/ui'",High,https://ui.nuxt.com/docs/getting-started/installation/nuxt
3
+ 2,Installation,Import Tailwind and Nuxt UI CSS,Required CSS imports in main.css file,@import tailwindcss and @import @nuxt/ui,Skip CSS imports,"@import ""tailwindcss""; @import ""@nuxt/ui"";",No CSS imports,High,https://ui.nuxt.com/docs/getting-started/installation/nuxt
4
+ 3,Installation,Wrap app with UApp component,UApp provides global configs for Toast Tooltip and overlays,<UApp> wrapper in app.vue,Skip UApp wrapper,<UApp><NuxtPage/></UApp>,<NuxtPage/> without wrapper,High,https://ui.nuxt.com/docs/components/app
5
+ 4,Components,Use U prefix for components,All Nuxt UI components use U prefix by default,UButton UInput UModal,Button Input Modal,<UButton>Click</UButton>,<Button>Click</Button>,Medium,https://ui.nuxt.com/docs/getting-started/installation/nuxt
6
+ 5,Components,Use semantic color props,Use semantic colors like primary secondary error,color="primary" color="error",Hardcoded colors,"<UButton color=""primary"">","<UButton class=""bg-green-500"">",Medium,https://ui.nuxt.com/docs/getting-started/theme/design-system
7
+ 6,Components,Use variant prop for styling,Nuxt UI provides solid outline soft subtle ghost link variants,variant="soft" variant="outline",Custom button classes,"<UButton variant=""soft"">","<UButton class=""border bg-transparent"">",Medium,https://ui.nuxt.com/docs/components/button
8
+ 7,Components,Use size prop consistently,Components support xs sm md lg xl sizes,size="sm" size="lg",Arbitrary sizing classes,"<UButton size=""lg"">","<UButton class=""text-xl px-6"">",Low,https://ui.nuxt.com/docs/components/button
9
+ 8,Icons,Use icon prop with Iconify format,Nuxt UI supports Iconify icons via icon prop,icon="lucide:home" icon="heroicons:user",i-lucide-home format,"<UButton icon=""lucide:home"">","<UButton icon=""i-lucide-home"">",Medium,https://ui.nuxt.com/docs/getting-started/integrations/icons/nuxt
10
+ 9,Icons,Use leadingIcon and trailingIcon,Position icons with dedicated props for clarity,leadingIcon="lucide:plus" trailingIcon="lucide:arrow-right",Manual icon positioning,"<UButton leadingIcon=""lucide:plus"">","<UButton><Icon name=""lucide:plus""/>Add</UButton>",Low,https://ui.nuxt.com/docs/components/button
11
+ 10,Theming,Configure colors in app.config.ts,Runtime color configuration without restart,ui.colors.primary in app.config.ts,Hardcoded colors in components,"defineAppConfig({ ui: { colors: { primary: 'blue' } } })","<UButton class=""bg-blue-500"">",High,https://ui.nuxt.com/docs/getting-started/theme/design-system
12
+ 11,Theming,Use @theme directive for custom colors,Define design tokens in CSS with Tailwind @theme,@theme { --color-brand-500: #xxx },Inline color definitions,@theme { --color-brand-500: #ef4444; },:style="{ color: '#ef4444' }",Medium,https://ui.nuxt.com/docs/getting-started/theme/design-system
13
+ 12,Theming,Extend semantic colors in nuxt.config,Register new colors like tertiary in theme.colors,theme.colors array in ui config,Use undefined colors,"ui: { theme: { colors: ['primary', 'tertiary'] } }","<UButton color=""tertiary""> without config",Medium,https://ui.nuxt.com/docs/getting-started/theme/design-system
14
+ 13,Forms,Use UForm with schema validation,UForm supports Zod Yup Joi Valibot schemas,:schema prop with validation schema,Manual form validation,"<UForm :schema=""schema"" :state=""state"">",Manual @blur validation,High,https://ui.nuxt.com/docs/components/form
15
+ 14,Forms,Use UFormField for field wrapper,Provides label error message and validation display,UFormField with name prop,Manual error handling,"<UFormField name=""email"" label=""Email"">",<div><label>Email</label><UInput/><span>error</span></div>,Medium,https://ui.nuxt.com/docs/components/form-field
16
+ 15,Forms,Handle form submit with @submit,UForm emits submit event with validated data,@submit handler on UForm,@click on submit button,"<UForm @submit=""onSubmit"">","<UButton @click=""onSubmit"">",Medium,https://ui.nuxt.com/docs/components/form
17
+ 16,Forms,Use validateOn prop for validation timing,Control when validation triggers (blur change input),validateOn="['blur']" for performance,Always validate on input,"<UForm :validateOn=""['blur', 'change']"">","<UForm> (validates on every keystroke)",Low,https://ui.nuxt.com/docs/components/form
18
+ 17,Overlays,Use v-model:open for overlay control,Modal Slideover Drawer use v-model:open,v-model:open for controlled state,Manual show/hide logic,"<UModal v-model:open=""isOpen"">",<UModal v-if="isOpen">,Medium,https://ui.nuxt.com/docs/components/modal
19
+ 18,Overlays,Use useOverlay composable for programmatic overlays,Open overlays programmatically without template refs,useOverlay().open(MyModal),Template ref and manual control,"const overlay = useOverlay(); overlay.open(MyModal, { props })","const modal = ref(); modal.value.open()",Medium,https://ui.nuxt.com/docs/components/modal
20
+ 19,Overlays,Use title and description props,Built-in header support for overlays,title="Confirm" description="Are you sure?",Manual header content,"<UModal title=""Confirm"" description=""Are you sure?"">","<UModal><template #header><h2>Confirm</h2></template>",Low,https://ui.nuxt.com/docs/components/modal
21
+ 20,Dashboard,Use UDashboardSidebar for navigation,Provides collapsible resizable sidebar with mobile support,UDashboardSidebar with header default footer slots,Custom sidebar implementation,<UDashboardSidebar><template #header>...</template></UDashboardSidebar>,<aside class="w-64 border-r">,Medium,https://ui.nuxt.com/docs/components/dashboard-sidebar
22
+ 21,Dashboard,Use UDashboardGroup for layout,Wraps dashboard components with sidebar state management,UDashboardGroup > UDashboardSidebar + UDashboardPanel,Manual layout flex containers,<UDashboardGroup><UDashboardSidebar/><UDashboardPanel/></UDashboardGroup>,"<div class=""flex""><aside/><main/></div>",Medium,https://ui.nuxt.com/docs/components/dashboard-group
23
+ 22,Dashboard,Use UDashboardNavbar for top navigation,Responsive navbar with mobile menu support,UDashboardNavbar in dashboard layout,Custom navbar implementation,<UDashboardNavbar :links="navLinks"/>,<nav class="border-b">,Low,https://ui.nuxt.com/docs/components/dashboard-navbar
24
+ 23,Tables,Use UTable with data and columns props,Powered by TanStack Table with built-in features,:data and :columns props,Manual table markup,"<UTable :data=""users"" :columns=""columns""/>","<table><tr v-for=""user in users"">",High,https://ui.nuxt.com/docs/components/table
25
+ 24,Tables,Define columns with accessorKey,Column definitions use accessorKey for data binding,accessorKey: 'email' in column def,String column names only,"{ accessorKey: 'email', header: 'Email' }","['name', 'email']",Medium,https://ui.nuxt.com/docs/components/table
26
+ 25,Tables,Use cell slot for custom rendering,Customize cell content with scoped slots,#cell-columnName slot,Override entire table,<template #cell-status="{ row }">,Manual column render function,Medium,https://ui.nuxt.com/docs/components/table
27
+ 26,Tables,Enable sorting with sortable column option,Add sortable: true to column definition,sortable: true in column,Manual sort implementation,"{ accessorKey: 'name', sortable: true }",@click="sortBy('name')",Low,https://ui.nuxt.com/docs/components/table
28
+ 27,Navigation,Use UNavigationMenu for nav links,Horizontal or vertical navigation with dropdown support,UNavigationMenu with items array,Manual nav with v-for,"<UNavigationMenu :items=""navItems""/>","<nav><a v-for=""item in items"">",Medium,https://ui.nuxt.com/docs/components/navigation-menu
29
+ 28,Navigation,Use UBreadcrumb for page hierarchy,Automatic breadcrumb with NuxtLink support,:items array with label and to,Manual breadcrumb links,"<UBreadcrumb :items=""breadcrumbs""/>","<nav><span v-for=""crumb in crumbs"">",Low,https://ui.nuxt.com/docs/components/breadcrumb
30
+ 29,Navigation,Use UTabs for tabbed content,Tab navigation with content panels,UTabs with items containing slot content,Manual tab state,"<UTabs :items=""tabs""/>","<div><button @click=""tab=1"">",Medium,https://ui.nuxt.com/docs/components/tabs
31
+ 30,Feedback,Use useToast for notifications,Composable for toast notifications,useToast().add({ title description }),Alert components for toasts,"const toast = useToast(); toast.add({ title: 'Saved' })",<UAlert v-if="showSuccess">,High,https://ui.nuxt.com/docs/components/toast
32
+ 31,Feedback,Use UAlert for inline messages,Static alert messages with icon and actions,UAlert with title description color,Toast for static messages,"<UAlert title=""Warning"" color=""warning""/>",useToast for inline alerts,Medium,https://ui.nuxt.com/docs/components/alert
33
+ 32,Feedback,Use USkeleton for loading states,Placeholder content during data loading,USkeleton with appropriate size,Spinner for content loading,<USkeleton class="h-4 w-32"/>,<UIcon name="lucide:loader" class="animate-spin"/>,Low,https://ui.nuxt.com/docs/components/skeleton
34
+ 33,Color Mode,Use UColorModeButton for theme toggle,Built-in light/dark mode toggle button,UColorModeButton component,Manual color mode logic,<UColorModeButton/>,"<button @click=""toggleColorMode"">",Low,https://ui.nuxt.com/docs/components/color-mode-button
35
+ 34,Color Mode,Use UColorModeSelect for theme picker,Dropdown to select system light or dark mode,UColorModeSelect component,Custom select for theme,<UColorModeSelect/>,"<USelect v-model=""colorMode"" :items=""modes""/>",Low,https://ui.nuxt.com/docs/components/color-mode-select
36
+ 35,Customization,Use ui prop for component styling,Override component styles via ui prop,ui prop with slot class overrides,Global CSS overrides,"<UButton :ui=""{ base: 'rounded-full' }""/>",<UButton class="!rounded-full"/>,Medium,https://ui.nuxt.com/docs/getting-started/theme/components
37
+ 36,Customization,Configure default variants in nuxt.config,Set default color and size for all components,theme.defaultVariants in ui config,Repeat props on every component,"ui: { theme: { defaultVariants: { color: 'neutral' } } }","<UButton color=""neutral""> everywhere",Medium,https://ui.nuxt.com/docs/getting-started/installation/nuxt
38
+ 37,Customization,Use app.config.ts for theme overrides,Runtime theme customization,defineAppConfig with ui key,nuxt.config for runtime values,"defineAppConfig({ ui: { button: { defaultVariants: { size: 'sm' } } } })","nuxt.config ui.button.size: 'sm'",Medium,https://ui.nuxt.com/docs/getting-started/theme/components
39
+ 38,Performance,Enable component detection,Tree-shake unused component CSS,experimental.componentDetection: true,Include all component CSS,"ui: { experimental: { componentDetection: true } }","ui: {} (includes all CSS)",Low,https://ui.nuxt.com/docs/getting-started/installation/nuxt
40
+ 39,Performance,Use UTable virtualize for large data,Enable virtualization for 1000+ rows,:virtualize prop on UTable,Render all rows,"<UTable :data=""largeData"" virtualize/>","<UTable :data=""largeData""/>",Medium,https://ui.nuxt.com/docs/components/table
41
+ 40,Accessibility,Use semantic component props,Components have built-in ARIA support,Use title description label props,Skip accessibility props,"<UModal title=""Settings"">","<UModal><h2>Settings</h2>",Medium,https://ui.nuxt.com/docs/components/modal
42
+ 41,Accessibility,Use UFormField for form accessibility,Automatic label-input association,UFormField wraps inputs,Manual id and for attributes,"<UFormField label=""Email""><UInput/></UFormField>","<label for=""email"">Email</label><UInput id=""email""/>",High,https://ui.nuxt.com/docs/components/form-field
43
+ 42,Content,Use UContentToc for table of contents,Automatic TOC with active heading highlight,UContentToc with :links,Manual TOC implementation,"<UContentToc :links=""toc""/>","<nav><a v-for=""heading in headings"">",Low,https://ui.nuxt.com/docs/components/content-toc
44
+ 43,Content,Use UContentSearch for docs search,Command palette for documentation search,UContentSearch with Nuxt Content,Custom search implementation,<UContentSearch/>,<UCommandPalette :groups="searchResults"/>,Low,https://ui.nuxt.com/docs/components/content-search
45
+ 44,AI/Chat,Use UChatMessages for chat UI,Designed for Vercel AI SDK integration,UChatMessages with messages array,Custom chat message list,"<UChatMessages :messages=""messages""/>","<div v-for=""msg in messages"">",Medium,https://ui.nuxt.com/docs/components/chat-messages
46
+ 45,AI/Chat,Use UChatPrompt for input,Enhanced textarea for AI prompts,UChatPrompt with v-model,Basic textarea,<UChatPrompt v-model="prompt"/>,<UTextarea v-model="prompt"/>,Medium,https://ui.nuxt.com/docs/components/chat-prompt
47
+ 46,Editor,Use UEditor for rich text,TipTap-based editor with toolbar support,UEditor with v-model:content,Custom TipTap setup,"<UEditor v-model:content=""content""/>",Manual TipTap initialization,Medium,https://ui.nuxt.com/docs/components/editor
48
+ 47,Links,Use to prop for navigation,UButton and ULink support NuxtLink to prop,to="/dashboard" for internal links,href for internal navigation,"<UButton to=""/dashboard"">","<UButton href=""/dashboard"">",Medium,https://ui.nuxt.com/docs/components/button
49
+ 48,Links,Use external prop for outside links,Explicitly mark external links,target="_blank" with external URLs,Forget rel="noopener","<UButton to=""https://example.com"" target=""_blank"">","<UButton href=""https://..."">",Low,https://ui.nuxt.com/docs/components/link
50
+ 49,Loading,Use loadingAuto on buttons,Automatic loading state from @click promise,loadingAuto prop on UButton,Manual loading state,"<UButton loadingAuto @click=""async () => await save()"">","<UButton :loading=""isLoading"" @click=""save"">",Low,https://ui.nuxt.com/docs/components/button
51
+ 50,Loading,Use UForm loadingAuto,Auto-disable form during submit,loadingAuto on UForm (default true),Manual form disabled state,"<UForm @submit=""handleSubmit"">","<UForm :disabled=""isSubmitting"">",Low,https://ui.nuxt.com/docs/components/form
@@ -1,59 +1,59 @@
1
- No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
- 1,Routing,Use file-based routing,Create routes by adding files in pages directory,pages/ directory with index.vue,Manual route configuration,pages/dashboard/index.vue,Custom router setup,Medium,https://nuxt.com/docs/getting-started/routing
3
- 2,Routing,Use dynamic route parameters,Create dynamic routes with bracket syntax,[id].vue for dynamic params,Hardcoded routes for dynamic content,pages/posts/[id].vue,pages/posts/post1.vue,Medium,https://nuxt.com/docs/getting-started/routing
4
- 3,Routing,Use catch-all routes,Handle multiple path segments with [...slug],[...slug].vue for catch-all,Multiple nested dynamic routes,pages/[...slug].vue,pages/[a]/[b]/[c].vue,Low,https://nuxt.com/docs/getting-started/routing
5
- 4,Routing,Define page metadata with definePageMeta,Set page-level configuration and middleware,definePageMeta for layout middleware title,Manual route meta configuration,"definePageMeta({ layout: 'admin', middleware: 'auth' })",router.beforeEach for page config,High,https://nuxt.com/docs/api/utils/define-page-meta
6
- 5,Routing,Use validate for route params,Validate dynamic route parameters before rendering,validate function in definePageMeta,Manual validation in setup,"definePageMeta({ validate: (route) => /^\d+$/.test(route.params.id) })",if (!valid) navigateTo('/404'),Medium,https://nuxt.com/docs/api/utils/define-page-meta
7
- 6,Rendering,Use SSR by default,Server-side rendering is enabled by default,Keep ssr: true (default),Disable SSR unnecessarily,ssr: true (default),ssr: false for all pages,High,https://nuxt.com/docs/guide/concepts/rendering
8
- 7,Rendering,Use .client suffix for client-only components,Mark components to render only on client,ComponentName.client.vue suffix,v-if with process.client check,Comments.client.vue,<div v-if="process.client"><Comments/></div>,Medium,https://nuxt.com/docs/guide/directory-structure/components
9
- 8,Rendering,Use .server suffix for server-only components,Mark components to render only on server,ComponentName.server.vue suffix,Manual server check,HeavyMarkdown.server.vue,v-if="process.server",Low,https://nuxt.com/docs/guide/directory-structure/components
10
- 9,DataFetching,Use useFetch for simple data fetching,Wrapper around useAsyncData for URL fetching,useFetch for API calls,$fetch in onMounted,"const { data } = await useFetch('/api/posts')","onMounted(async () => { data.value = await $fetch('/api/posts') })",High,https://nuxt.com/docs/api/composables/use-fetch
11
- 10,DataFetching,Use useAsyncData for complex fetching,Fine-grained control over async data,useAsyncData for CMS or custom fetching,useFetch for non-URL data sources,"const { data } = await useAsyncData('posts', () => cms.getPosts())","const { data } = await useFetch(() => cms.getPosts())",Medium,https://nuxt.com/docs/api/composables/use-async-data
12
- 11,DataFetching,Use $fetch for non-reactive requests,$fetch for event handlers and non-component code,$fetch in event handlers or server routes,useFetch in click handlers,"async function submit() { await $fetch('/api/submit', { method: 'POST' }) }","async function submit() { await useFetch('/api/submit') }",High,https://nuxt.com/docs/api/utils/dollarfetch
13
- 12,DataFetching,Use lazy option for non-blocking fetch,Defer data fetching for better initial load,lazy: true for below-fold content,Blocking fetch for non-critical data,"useFetch('/api/comments', { lazy: true })",await useFetch('/api/comments') for footer,Medium,https://nuxt.com/docs/api/composables/use-fetch
14
- 13,DataFetching,Use server option to control fetch location,Choose where data is fetched,server: false for client-only data,Server fetch for user-specific client data,"useFetch('/api/user-preferences', { server: false })",useFetch for localStorage-dependent data,Medium,https://nuxt.com/docs/api/composables/use-fetch
15
- 14,DataFetching,Use pick to reduce payload size,Select only needed fields from response,pick option for large responses,Fetching entire objects when few fields needed,"useFetch('/api/user', { pick: ['id', 'name'] })",useFetch('/api/user') then destructure,Low,https://nuxt.com/docs/api/composables/use-fetch
16
- 15,DataFetching,Use transform for data manipulation,Transform data before storing in state,transform option for data shaping,Manual transformation after fetch,"useFetch('/api/posts', { transform: (posts) => posts.map(p => p.title) })",const titles = data.value.map(p => p.title),Low,https://nuxt.com/docs/api/composables/use-fetch
17
- 16,DataFetching,Handle loading and error states,Always handle pending and error states,Check status pending error refs,Ignoring loading states,"<div v-if=""status === 'pending'"">Loading...</div>",No loading indicator,High,https://nuxt.com/docs/getting-started/data-fetching
18
- 17,Lifecycle,Avoid side effects in script setup root,Move side effects to lifecycle hooks,Side effects in onMounted,setInterval in root script setup,"onMounted(() => { interval = setInterval(...) })","<script setup>setInterval(...)</script>",High,https://nuxt.com/docs/guide/concepts/nuxt-lifecycle
19
- 18,Lifecycle,Use onMounted for DOM access,Access DOM only after component is mounted,onMounted for DOM manipulation,Direct DOM access in setup,"onMounted(() => { document.getElementById('el') })","<script setup>document.getElementById('el')</script>",High,https://nuxt.com/docs/api/composables/on-mounted
20
- 19,Lifecycle,Use nextTick for post-render access,Wait for DOM updates before accessing elements,await nextTick() after state changes,Immediate DOM access after state change,"count.value++; await nextTick(); el.value.focus()","count.value++; el.value.focus()",Medium,https://nuxt.com/docs/api/utils/next-tick
21
- 20,Lifecycle,Use onPrehydrate for pre-hydration logic,Run code before Nuxt hydrates the page,onPrehydrate for client setup,onMounted for hydration-critical code,"onPrehydrate(() => { console.log(window) })",onMounted for pre-hydration needs,Low,https://nuxt.com/docs/api/composables/on-prehydrate
22
- 21,Server,Use server/api for API routes,Create API endpoints in server/api directory,server/api/users.ts for /api/users,Manual Express setup,server/api/hello.ts -> /api/hello,app.get('/api/hello'),High,https://nuxt.com/docs/guide/directory-structure/server
23
- 22,Server,Use defineEventHandler for handlers,Define server route handlers,defineEventHandler for all handlers,export default function,"export default defineEventHandler((event) => { return { hello: 'world' } })","export default function(req, res) {}",High,https://nuxt.com/docs/guide/directory-structure/server
24
- 23,Server,Use server/routes for non-api routes,Routes without /api prefix,server/routes for custom paths,server/api for non-api routes,server/routes/sitemap.xml.ts,server/api/sitemap.xml.ts,Medium,https://nuxt.com/docs/guide/directory-structure/server
25
- 24,Server,Use getQuery and readBody for input,Access query params and request body,getQuery(event) readBody(event),Direct event access,"const { id } = getQuery(event)",event.node.req.query,Medium,https://nuxt.com/docs/guide/directory-structure/server
26
- 25,Server,Validate server input,Always validate input in server handlers,Zod or similar for validation,Trust client input,"const body = await readBody(event); schema.parse(body)",const body = await readBody(event),High,https://nuxt.com/docs/guide/directory-structure/server
27
- 26,State,Use useState for shared reactive state,SSR-friendly shared state across components,useState for cross-component state,ref for shared state,"const count = useState('count', () => 0)",const count = ref(0) in composable,High,https://nuxt.com/docs/api/composables/use-state
28
- 27,State,Use unique keys for useState,Prevent state conflicts with unique keys,Descriptive unique keys for each state,Generic or duplicate keys,"useState('user-preferences', () => ({}))",useState('data') in multiple places,Medium,https://nuxt.com/docs/api/composables/use-state
29
- 28,State,Use Pinia for complex state,Pinia for advanced state management,@pinia/nuxt for complex apps,Custom state management,useMainStore() with Pinia,Custom reactive store implementation,Medium,https://nuxt.com/docs/getting-started/state-management
30
- 29,State,Use callOnce for one-time async operations,Ensure async operations run only once,callOnce for store initialization,Direct await in component,"await callOnce(store.fetch)",await store.fetch() on every render,Medium,https://nuxt.com/docs/api/utils/call-once
31
- 30,SEO,Use useSeoMeta for SEO tags,Type-safe SEO meta tag management,useSeoMeta for meta tags,useHead for simple meta,"useSeoMeta({ title: 'Home', ogTitle: 'Home', description: '...' })","useHead({ meta: [{ name: 'description', content: '...' }] })",High,https://nuxt.com/docs/api/composables/use-seo-meta
32
- 31,SEO,Use reactive values in useSeoMeta,Dynamic SEO tags with refs or getters,Computed getters for dynamic values,Static values for dynamic content,"useSeoMeta({ title: () => post.value.title })","useSeoMeta({ title: post.value.title })",Medium,https://nuxt.com/docs/api/composables/use-seo-meta
33
- 32,SEO,Use useHead for non-meta head elements,Scripts styles links in head,useHead for scripts and links,useSeoMeta for scripts,"useHead({ script: [{ src: '/analytics.js' }] })","useSeoMeta({ script: '...' })",Medium,https://nuxt.com/docs/api/composables/use-head
34
- 33,SEO,Include OpenGraph tags,Add OG tags for social sharing,ogTitle ogDescription ogImage,Missing social preview,"useSeoMeta({ ogImage: '/og.png', twitterCard: 'summary_large_image' })",No OG configuration,Medium,https://nuxt.com/docs/api/composables/use-seo-meta
35
- 34,Middleware,Use defineNuxtRouteMiddleware,Define route middleware properly,defineNuxtRouteMiddleware wrapper,export default function,"export default defineNuxtRouteMiddleware((to, from) => {})","export default function(to, from) {}",High,https://nuxt.com/docs/guide/directory-structure/middleware
36
- 35,Middleware,Use navigateTo for redirects,Redirect in middleware with navigateTo,return navigateTo('/login'),router.push in middleware,"if (!auth) return navigateTo('/login')","if (!auth) router.push('/login')",High,https://nuxt.com/docs/api/utils/navigate-to
37
- 36,Middleware,Reference middleware in definePageMeta,Apply middleware to specific pages,middleware array in definePageMeta,Global middleware for page-specific,definePageMeta({ middleware: ['auth'] }),Global auth check for one page,Medium,https://nuxt.com/docs/guide/directory-structure/middleware
38
- 37,Middleware,Use .global suffix for global middleware,Apply middleware to all routes,auth.global.ts for app-wide auth,Manual middleware on every page,middleware/auth.global.ts,middleware: ['auth'] on every page,Medium,https://nuxt.com/docs/guide/directory-structure/middleware
39
- 38,ErrorHandling,Use createError for errors,Create errors with proper status codes,createError with statusCode,throw new Error,"throw createError({ statusCode: 404, statusMessage: 'Not Found' })",throw new Error('Not Found'),High,https://nuxt.com/docs/api/utils/create-error
40
- 39,ErrorHandling,Use NuxtErrorBoundary for local errors,Handle errors within component subtree,NuxtErrorBoundary for component errors,Global error page for local errors,"<NuxtErrorBoundary @error=""log""><template #error=""{ error }"">",error.vue for component errors,Medium,https://nuxt.com/docs/getting-started/error-handling
41
- 40,ErrorHandling,Use clearError to recover from errors,Clear error state and optionally redirect,clearError({ redirect: '/' }),Manual error state reset,clearError({ redirect: '/home' }),error.value = null,Medium,https://nuxt.com/docs/api/utils/clear-error
42
- 41,ErrorHandling,Use short statusMessage,Keep statusMessage brief for security,Short generic messages,Detailed error info in statusMessage,"createError({ statusCode: 400, statusMessage: 'Bad Request' })","createError({ statusMessage: 'Invalid user ID: 123' })",High,https://nuxt.com/docs/getting-started/error-handling
43
- 42,Link,Use NuxtLink for internal navigation,Client-side navigation with prefetching,<NuxtLink to> for internal links,<a href> for internal links,<NuxtLink to="/about">About</NuxtLink>,<a href="/about">About</a>,High,https://nuxt.com/docs/api/components/nuxt-link
44
- 43,Link,Configure prefetch behavior,Control when prefetching occurs,prefetchOn for interaction-based,Default prefetch for low-priority,"<NuxtLink prefetch-on=""interaction"">",Always default prefetch,Low,https://nuxt.com/docs/api/components/nuxt-link
45
- 44,Link,Use useRouter for programmatic navigation,Navigate programmatically,useRouter().push() for navigation,Direct window.location,"const router = useRouter(); router.push('/dashboard')",window.location.href = '/dashboard',Medium,https://nuxt.com/docs/api/composables/use-router
46
- 45,Link,Use navigateTo in composables,Navigate outside components,navigateTo() in middleware or plugins,useRouter in non-component code,return navigateTo('/login'),router.push in middleware,Medium,https://nuxt.com/docs/api/utils/navigate-to
47
- 46,AutoImports,Leverage auto-imports,Use auto-imported composables directly,Direct use of ref computed useFetch,Manual imports for Nuxt composables,"const count = ref(0)","import { ref } from 'vue'; const count = ref(0)",Medium,https://nuxt.com/docs/guide/concepts/auto-imports
48
- 47,AutoImports,Use #imports for explicit imports,Explicit imports when needed,#imports for clarity or disabled auto-imports,"import from 'vue' when auto-import enabled","import { ref } from '#imports'","import { ref } from 'vue'",Low,https://nuxt.com/docs/guide/concepts/auto-imports
49
- 48,AutoImports,Configure third-party auto-imports,Add external package auto-imports,imports.presets in nuxt.config,Manual imports everywhere,"imports: { presets: [{ from: 'vue-i18n', imports: ['useI18n'] }] }",import { useI18n } everywhere,Low,https://nuxt.com/docs/guide/concepts/auto-imports
50
- 49,Plugins,Use defineNuxtPlugin,Define plugins properly,defineNuxtPlugin wrapper,export default function,"export default defineNuxtPlugin((nuxtApp) => {})","export default function(ctx) {}",High,https://nuxt.com/docs/guide/directory-structure/plugins
51
- 50,Plugins,Use provide for injection,Provide helpers across app,return { provide: {} } for type safety,nuxtApp.provide without types,"return { provide: { hello: (name) => `Hello ${name}!` } }","nuxtApp.provide('hello', fn)",Medium,https://nuxt.com/docs/guide/directory-structure/plugins
52
- 51,Plugins,Use .client or .server suffix,Control plugin execution environment,plugin.client.ts for client-only,if (process.client) checks,analytics.client.ts,"if (process.client) { // analytics }",Medium,https://nuxt.com/docs/guide/directory-structure/plugins
53
- 52,Environment,Use runtimeConfig for env vars,Access environment variables safely,runtimeConfig in nuxt.config,process.env directly,"runtimeConfig: { apiSecret: '', public: { apiBase: '' } }",process.env.API_SECRET in components,High,https://nuxt.com/docs/guide/going-further/runtime-config
54
- 53,Environment,Use NUXT_ prefix for env override,Override config with environment variables,NUXT_API_SECRET NUXT_PUBLIC_API_BASE,Custom env var names,NUXT_PUBLIC_API_BASE=https://api.example.com,API_BASE=https://api.example.com,High,https://nuxt.com/docs/guide/going-further/runtime-config
55
- 54,Environment,Access public config with useRuntimeConfig,Get public config in components,useRuntimeConfig().public,Direct process.env access,const config = useRuntimeConfig(); config.public.apiBase,process.env.NUXT_PUBLIC_API_BASE,High,https://nuxt.com/docs/api/composables/use-runtime-config
56
- 55,Environment,Keep secrets in private config,Server-only secrets in runtimeConfig root,runtimeConfig.apiSecret (server only),Secrets in public config,runtimeConfig: { dbPassword: '' },runtimeConfig: { public: { dbPassword: '' } },High,https://nuxt.com/docs/guide/going-further/runtime-config
57
- 56,Performance,Use Lazy prefix for code splitting,Lazy load components with Lazy prefix,<LazyComponent> for below-fold,Eager load all components,<LazyMountainsList v-if="show"/>,<MountainsList/> for hidden content,Medium,https://nuxt.com/docs/guide/directory-structure/components
58
- 57,Performance,Use useLazyFetch for non-blocking data,Alias for useFetch with lazy: true,useLazyFetch for secondary data,useFetch for all requests,"const { data } = useLazyFetch('/api/comments')",await useFetch for comments section,Medium,https://nuxt.com/docs/api/composables/use-lazy-fetch
59
- 58,Performance,Use lazy hydration for interactivity,Delay component hydration until needed,LazyComponent with hydration strategy,Immediate hydration for all,<LazyModal hydrate-on-visible/>,<Modal/> in footer,Low,https://nuxt.com/docs/guide/going-further/experimental-features
1
+ No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
2
+ 1,Routing,Use file-based routing,Create routes by adding files in pages directory,pages/ directory with index.vue,Manual route configuration,pages/dashboard/index.vue,Custom router setup,Medium,https://nuxt.com/docs/getting-started/routing
3
+ 2,Routing,Use dynamic route parameters,Create dynamic routes with bracket syntax,[id].vue for dynamic params,Hardcoded routes for dynamic content,pages/posts/[id].vue,pages/posts/post1.vue,Medium,https://nuxt.com/docs/getting-started/routing
4
+ 3,Routing,Use catch-all routes,Handle multiple path segments with [...slug],[...slug].vue for catch-all,Multiple nested dynamic routes,pages/[...slug].vue,pages/[a]/[b]/[c].vue,Low,https://nuxt.com/docs/getting-started/routing
5
+ 4,Routing,Define page metadata with definePageMeta,Set page-level configuration and middleware,definePageMeta for layout middleware title,Manual route meta configuration,"definePageMeta({ layout: 'admin', middleware: 'auth' })",router.beforeEach for page config,High,https://nuxt.com/docs/api/utils/define-page-meta
6
+ 5,Routing,Use validate for route params,Validate dynamic route parameters before rendering,validate function in definePageMeta,Manual validation in setup,"definePageMeta({ validate: (route) => /^\d+$/.test(route.params.id) })",if (!valid) navigateTo('/404'),Medium,https://nuxt.com/docs/api/utils/define-page-meta
7
+ 6,Rendering,Use SSR by default,Server-side rendering is enabled by default,Keep ssr: true (default),Disable SSR unnecessarily,ssr: true (default),ssr: false for all pages,High,https://nuxt.com/docs/guide/concepts/rendering
8
+ 7,Rendering,Use .client suffix for client-only components,Mark components to render only on client,ComponentName.client.vue suffix,v-if with process.client check,Comments.client.vue,<div v-if="process.client"><Comments/></div>,Medium,https://nuxt.com/docs/guide/directory-structure/components
9
+ 8,Rendering,Use .server suffix for server-only components,Mark components to render only on server,ComponentName.server.vue suffix,Manual server check,HeavyMarkdown.server.vue,v-if="process.server",Low,https://nuxt.com/docs/guide/directory-structure/components
10
+ 9,DataFetching,Use useFetch for simple data fetching,Wrapper around useAsyncData for URL fetching,useFetch for API calls,$fetch in onMounted,"const { data } = await useFetch('/api/posts')","onMounted(async () => { data.value = await $fetch('/api/posts') })",High,https://nuxt.com/docs/api/composables/use-fetch
11
+ 10,DataFetching,Use useAsyncData for complex fetching,Fine-grained control over async data,useAsyncData for CMS or custom fetching,useFetch for non-URL data sources,"const { data } = await useAsyncData('posts', () => cms.getPosts())","const { data } = await useFetch(() => cms.getPosts())",Medium,https://nuxt.com/docs/api/composables/use-async-data
12
+ 11,DataFetching,Use $fetch for non-reactive requests,$fetch for event handlers and non-component code,$fetch in event handlers or server routes,useFetch in click handlers,"async function submit() { await $fetch('/api/submit', { method: 'POST' }) }","async function submit() { await useFetch('/api/submit') }",High,https://nuxt.com/docs/api/utils/dollarfetch
13
+ 12,DataFetching,Use lazy option for non-blocking fetch,Defer data fetching for better initial load,lazy: true for below-fold content,Blocking fetch for non-critical data,"useFetch('/api/comments', { lazy: true })",await useFetch('/api/comments') for footer,Medium,https://nuxt.com/docs/api/composables/use-fetch
14
+ 13,DataFetching,Use server option to control fetch location,Choose where data is fetched,server: false for client-only data,Server fetch for user-specific client data,"useFetch('/api/user-preferences', { server: false })",useFetch for localStorage-dependent data,Medium,https://nuxt.com/docs/api/composables/use-fetch
15
+ 14,DataFetching,Use pick to reduce payload size,Select only needed fields from response,pick option for large responses,Fetching entire objects when few fields needed,"useFetch('/api/user', { pick: ['id', 'name'] })",useFetch('/api/user') then destructure,Low,https://nuxt.com/docs/api/composables/use-fetch
16
+ 15,DataFetching,Use transform for data manipulation,Transform data before storing in state,transform option for data shaping,Manual transformation after fetch,"useFetch('/api/posts', { transform: (posts) => posts.map(p => p.title) })",const titles = data.value.map(p => p.title),Low,https://nuxt.com/docs/api/composables/use-fetch
17
+ 16,DataFetching,Handle loading and error states,Always handle pending and error states,Check status pending error refs,Ignoring loading states,"<div v-if=""status === 'pending'"">Loading...</div>",No loading indicator,High,https://nuxt.com/docs/getting-started/data-fetching
18
+ 17,Lifecycle,Avoid side effects in script setup root,Move side effects to lifecycle hooks,Side effects in onMounted,setInterval in root script setup,"onMounted(() => { interval = setInterval(...) })","<script setup>setInterval(...)</script>",High,https://nuxt.com/docs/guide/concepts/nuxt-lifecycle
19
+ 18,Lifecycle,Use onMounted for DOM access,Access DOM only after component is mounted,onMounted for DOM manipulation,Direct DOM access in setup,"onMounted(() => { document.getElementById('el') })","<script setup>document.getElementById('el')</script>",High,https://nuxt.com/docs/api/composables/on-mounted
20
+ 19,Lifecycle,Use nextTick for post-render access,Wait for DOM updates before accessing elements,await nextTick() after state changes,Immediate DOM access after state change,"count.value++; await nextTick(); el.value.focus()","count.value++; el.value.focus()",Medium,https://nuxt.com/docs/api/utils/next-tick
21
+ 20,Lifecycle,Use onPrehydrate for pre-hydration logic,Run code before Nuxt hydrates the page,onPrehydrate for client setup,onMounted for hydration-critical code,"onPrehydrate(() => { console.log(window) })",onMounted for pre-hydration needs,Low,https://nuxt.com/docs/api/composables/on-prehydrate
22
+ 21,Server,Use server/api for API routes,Create API endpoints in server/api directory,server/api/users.ts for /api/users,Manual Express setup,server/api/hello.ts -> /api/hello,app.get('/api/hello'),High,https://nuxt.com/docs/guide/directory-structure/server
23
+ 22,Server,Use defineEventHandler for handlers,Define server route handlers,defineEventHandler for all handlers,export default function,"export default defineEventHandler((event) => { return { hello: 'world' } })","export default function(req, res) {}",High,https://nuxt.com/docs/guide/directory-structure/server
24
+ 23,Server,Use server/routes for non-api routes,Routes without /api prefix,server/routes for custom paths,server/api for non-api routes,server/routes/sitemap.xml.ts,server/api/sitemap.xml.ts,Medium,https://nuxt.com/docs/guide/directory-structure/server
25
+ 24,Server,Use getQuery and readBody for input,Access query params and request body,getQuery(event) readBody(event),Direct event access,"const { id } = getQuery(event)",event.node.req.query,Medium,https://nuxt.com/docs/guide/directory-structure/server
26
+ 25,Server,Validate server input,Always validate input in server handlers,Zod or similar for validation,Trust client input,"const body = await readBody(event); schema.parse(body)",const body = await readBody(event),High,https://nuxt.com/docs/guide/directory-structure/server
27
+ 26,State,Use useState for shared reactive state,SSR-friendly shared state across components,useState for cross-component state,ref for shared state,"const count = useState('count', () => 0)",const count = ref(0) in composable,High,https://nuxt.com/docs/api/composables/use-state
28
+ 27,State,Use unique keys for useState,Prevent state conflicts with unique keys,Descriptive unique keys for each state,Generic or duplicate keys,"useState('user-preferences', () => ({}))",useState('data') in multiple places,Medium,https://nuxt.com/docs/api/composables/use-state
29
+ 28,State,Use Pinia for complex state,Pinia for advanced state management,@pinia/nuxt for complex apps,Custom state management,useMainStore() with Pinia,Custom reactive store implementation,Medium,https://nuxt.com/docs/getting-started/state-management
30
+ 29,State,Use callOnce for one-time async operations,Ensure async operations run only once,callOnce for store initialization,Direct await in component,"await callOnce(store.fetch)",await store.fetch() on every render,Medium,https://nuxt.com/docs/api/utils/call-once
31
+ 30,SEO,Use useSeoMeta for SEO tags,Type-safe SEO meta tag management,useSeoMeta for meta tags,useHead for simple meta,"useSeoMeta({ title: 'Home', ogTitle: 'Home', description: '...' })","useHead({ meta: [{ name: 'description', content: '...' }] })",High,https://nuxt.com/docs/api/composables/use-seo-meta
32
+ 31,SEO,Use reactive values in useSeoMeta,Dynamic SEO tags with refs or getters,Computed getters for dynamic values,Static values for dynamic content,"useSeoMeta({ title: () => post.value.title })","useSeoMeta({ title: post.value.title })",Medium,https://nuxt.com/docs/api/composables/use-seo-meta
33
+ 32,SEO,Use useHead for non-meta head elements,Scripts styles links in head,useHead for scripts and links,useSeoMeta for scripts,"useHead({ script: [{ src: '/analytics.js' }] })","useSeoMeta({ script: '...' })",Medium,https://nuxt.com/docs/api/composables/use-head
34
+ 33,SEO,Include OpenGraph tags,Add OG tags for social sharing,ogTitle ogDescription ogImage,Missing social preview,"useSeoMeta({ ogImage: '/og.png', twitterCard: 'summary_large_image' })",No OG configuration,Medium,https://nuxt.com/docs/api/composables/use-seo-meta
35
+ 34,Middleware,Use defineNuxtRouteMiddleware,Define route middleware properly,defineNuxtRouteMiddleware wrapper,export default function,"export default defineNuxtRouteMiddleware((to, from) => {})","export default function(to, from) {}",High,https://nuxt.com/docs/guide/directory-structure/middleware
36
+ 35,Middleware,Use navigateTo for redirects,Redirect in middleware with navigateTo,return navigateTo('/login'),router.push in middleware,"if (!auth) return navigateTo('/login')","if (!auth) router.push('/login')",High,https://nuxt.com/docs/api/utils/navigate-to
37
+ 36,Middleware,Reference middleware in definePageMeta,Apply middleware to specific pages,middleware array in definePageMeta,Global middleware for page-specific,definePageMeta({ middleware: ['auth'] }),Global auth check for one page,Medium,https://nuxt.com/docs/guide/directory-structure/middleware
38
+ 37,Middleware,Use .global suffix for global middleware,Apply middleware to all routes,auth.global.ts for app-wide auth,Manual middleware on every page,middleware/auth.global.ts,middleware: ['auth'] on every page,Medium,https://nuxt.com/docs/guide/directory-structure/middleware
39
+ 38,ErrorHandling,Use createError for errors,Create errors with proper status codes,createError with statusCode,throw new Error,"throw createError({ statusCode: 404, statusMessage: 'Not Found' })",throw new Error('Not Found'),High,https://nuxt.com/docs/api/utils/create-error
40
+ 39,ErrorHandling,Use NuxtErrorBoundary for local errors,Handle errors within component subtree,NuxtErrorBoundary for component errors,Global error page for local errors,"<NuxtErrorBoundary @error=""log""><template #error=""{ error }"">",error.vue for component errors,Medium,https://nuxt.com/docs/getting-started/error-handling
41
+ 40,ErrorHandling,Use clearError to recover from errors,Clear error state and optionally redirect,clearError({ redirect: '/' }),Manual error state reset,clearError({ redirect: '/home' }),error.value = null,Medium,https://nuxt.com/docs/api/utils/clear-error
42
+ 41,ErrorHandling,Use short statusMessage,Keep statusMessage brief for security,Short generic messages,Detailed error info in statusMessage,"createError({ statusCode: 400, statusMessage: 'Bad Request' })","createError({ statusMessage: 'Invalid user ID: 123' })",High,https://nuxt.com/docs/getting-started/error-handling
43
+ 42,Link,Use NuxtLink for internal navigation,Client-side navigation with prefetching,<NuxtLink to> for internal links,<a href> for internal links,<NuxtLink to="/about">About</NuxtLink>,<a href="/about">About</a>,High,https://nuxt.com/docs/api/components/nuxt-link
44
+ 43,Link,Configure prefetch behavior,Control when prefetching occurs,prefetchOn for interaction-based,Default prefetch for low-priority,"<NuxtLink prefetch-on=""interaction"">",Always default prefetch,Low,https://nuxt.com/docs/api/components/nuxt-link
45
+ 44,Link,Use useRouter for programmatic navigation,Navigate programmatically,useRouter().push() for navigation,Direct window.location,"const router = useRouter(); router.push('/dashboard')",window.location.href = '/dashboard',Medium,https://nuxt.com/docs/api/composables/use-router
46
+ 45,Link,Use navigateTo in composables,Navigate outside components,navigateTo() in middleware or plugins,useRouter in non-component code,return navigateTo('/login'),router.push in middleware,Medium,https://nuxt.com/docs/api/utils/navigate-to
47
+ 46,AutoImports,Leverage auto-imports,Use auto-imported composables directly,Direct use of ref computed useFetch,Manual imports for Nuxt composables,"const count = ref(0)","import { ref } from 'vue'; const count = ref(0)",Medium,https://nuxt.com/docs/guide/concepts/auto-imports
48
+ 47,AutoImports,Use #imports for explicit imports,Explicit imports when needed,#imports for clarity or disabled auto-imports,"import from 'vue' when auto-import enabled","import { ref } from '#imports'","import { ref } from 'vue'",Low,https://nuxt.com/docs/guide/concepts/auto-imports
49
+ 48,AutoImports,Configure third-party auto-imports,Add external package auto-imports,imports.presets in nuxt.config,Manual imports everywhere,"imports: { presets: [{ from: 'vue-i18n', imports: ['useI18n'] }] }",import { useI18n } everywhere,Low,https://nuxt.com/docs/guide/concepts/auto-imports
50
+ 49,Plugins,Use defineNuxtPlugin,Define plugins properly,defineNuxtPlugin wrapper,export default function,"export default defineNuxtPlugin((nuxtApp) => {})","export default function(ctx) {}",High,https://nuxt.com/docs/guide/directory-structure/plugins
51
+ 50,Plugins,Use provide for injection,Provide helpers across app,return { provide: {} } for type safety,nuxtApp.provide without types,"return { provide: { hello: (name) => `Hello ${name}!` } }","nuxtApp.provide('hello', fn)",Medium,https://nuxt.com/docs/guide/directory-structure/plugins
52
+ 51,Plugins,Use .client or .server suffix,Control plugin execution environment,plugin.client.ts for client-only,if (process.client) checks,analytics.client.ts,"if (process.client) { // analytics }",Medium,https://nuxt.com/docs/guide/directory-structure/plugins
53
+ 52,Environment,Use runtimeConfig for env vars,Access environment variables safely,runtimeConfig in nuxt.config,process.env directly,"runtimeConfig: { apiSecret: '', public: { apiBase: '' } }",process.env.API_SECRET in components,High,https://nuxt.com/docs/guide/going-further/runtime-config
54
+ 53,Environment,Use NUXT_ prefix for env override,Override config with environment variables,NUXT_API_SECRET NUXT_PUBLIC_API_BASE,Custom env var names,NUXT_PUBLIC_API_BASE=https://api.example.com,API_BASE=https://api.example.com,High,https://nuxt.com/docs/guide/going-further/runtime-config
55
+ 54,Environment,Access public config with useRuntimeConfig,Get public config in components,useRuntimeConfig().public,Direct process.env access,const config = useRuntimeConfig(); config.public.apiBase,process.env.NUXT_PUBLIC_API_BASE,High,https://nuxt.com/docs/api/composables/use-runtime-config
56
+ 55,Environment,Keep secrets in private config,Server-only secrets in runtimeConfig root,runtimeConfig.apiSecret (server only),Secrets in public config,runtimeConfig: { dbPassword: '' },runtimeConfig: { public: { dbPassword: '' } },High,https://nuxt.com/docs/guide/going-further/runtime-config
57
+ 56,Performance,Use Lazy prefix for code splitting,Lazy load components with Lazy prefix,<LazyComponent> for below-fold,Eager load all components,<LazyMountainsList v-if="show"/>,<MountainsList/> for hidden content,Medium,https://nuxt.com/docs/guide/directory-structure/components
58
+ 57,Performance,Use useLazyFetch for non-blocking data,Alias for useFetch with lazy: true,useLazyFetch for secondary data,useFetch for all requests,"const { data } = useLazyFetch('/api/comments')",await useFetch for comments section,Medium,https://nuxt.com/docs/api/composables/use-lazy-fetch
59
+ 58,Performance,Use lazy hydration for interactivity,Delay component hydration until needed,LazyComponent with hydration strategy,Immediate hydration for all,<LazyModal hydrate-on-visible/>,<Modal/> in footer,Low,https://nuxt.com/docs/guide/going-further/experimental-features