@su-record/vibe 2.8.52 → 2.9.1

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 (426) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +169 -169
  3. package/LICENSE +21 -21
  4. package/README.ko.md +43 -128
  5. package/README.md +43 -128
  6. package/agents/architect-low.md +41 -41
  7. package/agents/architect-medium.md +59 -59
  8. package/agents/architect.md +80 -80
  9. package/agents/build-error-resolver.md +115 -115
  10. package/agents/compounder.md +261 -261
  11. package/agents/diagrammer.md +178 -178
  12. package/agents/docs/api-documenter.md +99 -99
  13. package/agents/docs/changelog-writer.md +93 -93
  14. package/agents/e2e-tester.md +294 -294
  15. package/agents/event/event-comms.md +78 -78
  16. package/agents/event/event-content.md +68 -68
  17. package/agents/event/event-image.md +95 -95
  18. package/agents/event/event-ops.md +84 -84
  19. package/agents/event/event-scheduler.md +69 -69
  20. package/agents/event/event-speaker.md +86 -86
  21. package/agents/explorer-low.md +42 -42
  22. package/agents/explorer-medium.md +59 -59
  23. package/agents/explorer.md +48 -48
  24. package/agents/implementer-low.md +43 -43
  25. package/agents/implementer-medium.md +52 -52
  26. package/agents/implementer.md +54 -54
  27. package/agents/junior-mentor.md +141 -141
  28. package/agents/planning/requirements-analyst.md +84 -84
  29. package/agents/planning/ux-advisor.md +83 -83
  30. package/agents/qa/acceptance-tester.md +86 -86
  31. package/agents/qa/edge-case-finder.md +93 -93
  32. package/agents/qa/qa-coordinator.md +131 -131
  33. package/agents/refactor-cleaner.md +143 -143
  34. package/agents/research/best-practices-agent.md +199 -199
  35. package/agents/research/codebase-patterns-agent.md +157 -157
  36. package/agents/research/framework-docs-agent.md +188 -188
  37. package/agents/research/security-advisory-agent.md +213 -213
  38. package/agents/review/architecture-reviewer.md +107 -107
  39. package/agents/review/complexity-reviewer.md +116 -116
  40. package/agents/review/data-integrity-reviewer.md +88 -88
  41. package/agents/review/git-history-reviewer.md +103 -103
  42. package/agents/review/performance-reviewer.md +86 -86
  43. package/agents/review/python-reviewer.md +150 -150
  44. package/agents/review/rails-reviewer.md +139 -139
  45. package/agents/review/react-reviewer.md +144 -144
  46. package/agents/review/security-reviewer.md +80 -80
  47. package/agents/review/simplicity-reviewer.md +140 -140
  48. package/agents/review/test-coverage-reviewer.md +116 -116
  49. package/agents/review/typescript-reviewer.md +127 -127
  50. package/agents/searcher.md +54 -54
  51. package/agents/simplifier.md +120 -120
  52. package/agents/tester.md +49 -49
  53. package/agents/ui/ui-a11y-auditor.md +93 -93
  54. package/agents/ui/ui-antipattern-detector.md +102 -102
  55. package/agents/ui/ui-dataviz-advisor.md +69 -69
  56. package/agents/ui/ui-design-system-gen.md +57 -57
  57. package/agents/ui/ui-industry-analyzer.md +49 -49
  58. package/agents/ui/ui-layout-architect.md +65 -65
  59. package/agents/ui/ui-stack-implementer.md +68 -68
  60. package/agents/ui/ux-compliance-reviewer.md +81 -81
  61. package/agents/ui-previewer.md +258 -258
  62. package/commands/vibe.analyze.md +379 -379
  63. package/commands/vibe.docs.md +32 -32
  64. package/commands/vibe.event.md +163 -163
  65. package/commands/vibe.figma.md +69 -69
  66. package/commands/vibe.review.md +686 -686
  67. package/commands/vibe.run.md +2276 -2276
  68. package/commands/vibe.spec.md +1195 -1195
  69. package/commands/vibe.spec.review.md +609 -609
  70. package/commands/vibe.trace.md +259 -259
  71. package/commands/vibe.utils.md +413 -413
  72. package/commands/vibe.verify.md +510 -510
  73. package/dist/cli/collaborator.js +52 -52
  74. package/dist/cli/commands/config.js +9 -9
  75. package/dist/cli/commands/evolution.js +12 -12
  76. package/dist/cli/commands/figma.js +20 -20
  77. package/dist/cli/commands/info.js +53 -53
  78. package/dist/cli/commands/init.js +5 -5
  79. package/dist/cli/commands/remove.js +14 -14
  80. package/dist/cli/commands/sentinel.js +27 -27
  81. package/dist/cli/commands/skills.js +5 -5
  82. package/dist/cli/commands/slack.js +10 -10
  83. package/dist/cli/commands/stats.js +6 -6
  84. package/dist/cli/commands/telegram.js +12 -12
  85. package/dist/cli/detect.js +32 -32
  86. package/dist/cli/index.js +51 -51
  87. package/dist/cli/llm/claude-commands.js +16 -16
  88. package/dist/cli/llm/config.js +18 -18
  89. package/dist/cli/llm/gemini-commands.js +16 -16
  90. package/dist/cli/llm/gpt-commands.js +19 -19
  91. package/dist/cli/llm/help.js +21 -21
  92. package/dist/cli/postinstall/cursor-agents.js +32 -32
  93. package/dist/cli/postinstall/cursor-rules.js +83 -83
  94. package/dist/cli/postinstall/cursor-skills.js +743 -743
  95. package/dist/cli/postinstall/main.d.ts.map +1 -1
  96. package/dist/cli/postinstall/main.js +40 -66
  97. package/dist/cli/postinstall/main.js.map +1 -1
  98. package/dist/cli/setup/Provisioner.js +42 -42
  99. package/dist/infra/lib/CostAccumulator.d.ts +58 -0
  100. package/dist/infra/lib/CostAccumulator.d.ts.map +1 -0
  101. package/dist/infra/lib/CostAccumulator.js +131 -0
  102. package/dist/infra/lib/CostAccumulator.js.map +1 -0
  103. package/dist/infra/lib/DeepInit.js +24 -24
  104. package/dist/infra/lib/IterationTracker.js +11 -11
  105. package/dist/infra/lib/PythonParser.js +108 -108
  106. package/dist/infra/lib/ReviewRace.js +96 -96
  107. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  108. package/dist/infra/lib/SkillQualityGate.js +9 -9
  109. package/dist/infra/lib/SkillRepository.js +159 -159
  110. package/dist/infra/lib/TokenBudgetTracker.d.ts +13 -0
  111. package/dist/infra/lib/TokenBudgetTracker.d.ts.map +1 -1
  112. package/dist/infra/lib/TokenBudgetTracker.js +44 -3
  113. package/dist/infra/lib/TokenBudgetTracker.js.map +1 -1
  114. package/dist/infra/lib/UltraQA.js +99 -99
  115. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  116. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  117. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  118. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
  119. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  120. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  121. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  122. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  123. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  124. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  125. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  126. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  127. package/dist/infra/lib/evolution/ParityTester.js +57 -57
  128. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  129. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  130. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  131. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  132. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  133. package/dist/infra/lib/gemini/orchestration.js +5 -5
  134. package/dist/infra/lib/gpt/orchestration.js +4 -4
  135. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  136. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  137. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  138. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  139. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  140. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  141. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  142. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  143. package/dist/infra/orchestrator/AgentManager.js +12 -12
  144. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  145. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  146. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  147. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  148. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  149. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  150. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  151. package/dist/tools/memory/getMemoryGraph.js +12 -12
  152. package/dist/tools/memory/getSessionContext.js +9 -9
  153. package/dist/tools/memory/linkMemories.js +14 -14
  154. package/dist/tools/memory/listMemories.js +4 -4
  155. package/dist/tools/memory/recallMemory.js +4 -4
  156. package/dist/tools/memory/saveMemory.js +4 -4
  157. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  158. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  159. package/dist/tools/semantic/astGrep.test.js +6 -6
  160. package/dist/tools/spec/prdParser.test.js +171 -171
  161. package/dist/tools/spec/specGenerator.js +169 -169
  162. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  163. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  164. package/hooks/gemini-hooks.json +73 -73
  165. package/hooks/hooks.json +174 -174
  166. package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
  167. package/hooks/scripts/__tests__/pre-tool-guard.test.js +286 -286
  168. package/hooks/scripts/__tests__/sentinel-guard.test.js +210 -210
  169. package/hooks/scripts/auto-commit.js +97 -97
  170. package/hooks/scripts/auto-format.js +64 -64
  171. package/hooks/scripts/auto-test.js +81 -81
  172. package/hooks/scripts/code-check.js +268 -268
  173. package/hooks/scripts/codex-detect.js +46 -46
  174. package/hooks/scripts/codex-review-gate.js +80 -80
  175. package/hooks/scripts/command-log.js +32 -32
  176. package/hooks/scripts/context-save.js +353 -353
  177. package/hooks/scripts/evolution-engine.js +91 -91
  178. package/hooks/scripts/figma-extract.js +635 -477
  179. package/hooks/scripts/hud-status.js +321 -321
  180. package/hooks/scripts/keyword-detector.js +214 -214
  181. package/hooks/scripts/llm-orchestrate.js +572 -572
  182. package/hooks/scripts/post-edit.js +32 -32
  183. package/hooks/scripts/pr-test-gate.js +52 -52
  184. package/hooks/scripts/pre-tool-guard.js +214 -159
  185. package/hooks/scripts/prompt-dispatcher.js +185 -185
  186. package/hooks/scripts/sentinel-guard.js +131 -131
  187. package/hooks/scripts/session-start.js +177 -177
  188. package/hooks/scripts/skill-injector.js +83 -83
  189. package/hooks/scripts/stop-notify.js +209 -209
  190. package/hooks/scripts/utils.js +243 -243
  191. package/languages/csharp-unity.md +515 -515
  192. package/languages/gdscript-godot.md +470 -470
  193. package/languages/ruby-rails.md +489 -489
  194. package/languages/typescript-angular.md +433 -433
  195. package/languages/typescript-astro.md +416 -416
  196. package/languages/typescript-electron.md +406 -406
  197. package/languages/typescript-nestjs.md +524 -524
  198. package/languages/typescript-svelte.md +407 -407
  199. package/languages/typescript-tauri.md +365 -365
  200. package/package.json +101 -101
  201. package/skills/agents-md/SKILL.md +121 -121
  202. package/skills/agents-md/rubrics/what-to-keep.md +49 -49
  203. package/skills/agents-md/templates/agents-md.md +36 -36
  204. package/skills/arch-guard/SKILL.md +181 -181
  205. package/skills/arch-guard/agents/detector.md +48 -48
  206. package/skills/arch-guard/agents/reporter.md +48 -48
  207. package/skills/arch-guard/agents/rule-generator.md +49 -49
  208. package/skills/arch-guard/agents/violation-checker.md +51 -51
  209. package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
  210. package/skills/arch-guard/frameworks/solid.md +102 -102
  211. package/skills/arch-guard/scripts/check-boundaries.js +90 -90
  212. package/skills/arch-guard/templates/arch-rules.json +47 -47
  213. package/skills/arch-guard/templates/violation-report.md +53 -53
  214. package/skills/brand-assets/SKILL.md +147 -147
  215. package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
  216. package/skills/brand-assets/templates/brand-guide.md +161 -161
  217. package/skills/capability-loop/SKILL.md +168 -168
  218. package/skills/capability-loop/agents/capability-designer.md +61 -61
  219. package/skills/capability-loop/agents/failure-analyst.md +55 -55
  220. package/skills/capability-loop/agents/implementer.md +50 -50
  221. package/skills/capability-loop/agents/tester.md +53 -53
  222. package/skills/capability-loop/templates/capability-spec.md +118 -118
  223. package/skills/capability-loop/templates/failure-analysis.md +118 -118
  224. package/skills/characterization-test/SKILL.md +207 -207
  225. package/skills/characterization-test/agents/behavior-capturer.md +50 -50
  226. package/skills/characterization-test/agents/coverage-checker.md +54 -54
  227. package/skills/characterization-test/agents/reporter.md +50 -50
  228. package/skills/characterization-test/agents/test-writer.md +49 -49
  229. package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
  230. package/skills/characterization-test/templates/test-template.ts +101 -101
  231. package/skills/chub-usage/SKILL.md +139 -139
  232. package/skills/claude-md-guide/SKILL.md +351 -351
  233. package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
  234. package/skills/claude-md-guide/templates/claude-md.md +54 -54
  235. package/skills/commerce-patterns/SKILL.md +64 -64
  236. package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
  237. package/skills/commerce-patterns/templates/product-schema.md +85 -85
  238. package/skills/commit-push-pr/SKILL.md +77 -77
  239. package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
  240. package/skills/commit-push-pr/agents/message-writer.md +50 -50
  241. package/skills/commit-push-pr/agents/pr-writer.md +58 -58
  242. package/skills/commit-push-pr/agents/reviewer.md +52 -52
  243. package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
  244. package/skills/commit-push-pr/templates/pr-body.md +63 -63
  245. package/skills/context7-usage/SKILL.md +106 -106
  246. package/skills/context7-usage/rubrics/when-to-use.md +50 -50
  247. package/skills/create-prd/SKILL.md +90 -90
  248. package/skills/create-prd/agents/edge-case-finder.md +48 -48
  249. package/skills/create-prd/agents/prioritizer.md +60 -60
  250. package/skills/create-prd/agents/requirements-writer.md +48 -48
  251. package/skills/create-prd/agents/researcher.md +55 -55
  252. package/skills/create-prd/agents/reviewer.md +54 -54
  253. package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
  254. package/skills/create-prd/frameworks/rice-scoring.md +97 -97
  255. package/skills/create-prd/orchestrator.md +70 -70
  256. package/skills/create-prd/rubrics/completeness.md +58 -58
  257. package/skills/create-prd/templates/prd.md +139 -139
  258. package/skills/design-audit/SKILL.md +152 -152
  259. package/skills/design-audit/agents/a11y-auditor.md +43 -43
  260. package/skills/design-audit/agents/performance-auditor.md +46 -46
  261. package/skills/design-audit/agents/responsive-auditor.md +46 -46
  262. package/skills/design-audit/agents/scorer.md +47 -47
  263. package/skills/design-audit/agents/slop-detector.md +47 -47
  264. package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
  265. package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
  266. package/skills/design-audit/orchestrator.md +64 -64
  267. package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
  268. package/skills/design-audit/rubrics/scoring.md +63 -63
  269. package/skills/design-audit/templates/report.md +88 -88
  270. package/skills/design-critique/SKILL.md +139 -139
  271. package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
  272. package/skills/design-critique/templates/critique-report.md +86 -86
  273. package/skills/design-distill/SKILL.md +130 -130
  274. package/skills/design-distill/templates/design-system.md +132 -132
  275. package/skills/design-normalize/SKILL.md +133 -133
  276. package/skills/design-normalize/rubrics/token-naming.md +117 -117
  277. package/skills/design-normalize/templates/token-audit.md +89 -89
  278. package/skills/design-polish/SKILL.md +131 -131
  279. package/skills/design-polish/rubrics/polish-checklist.md +68 -68
  280. package/skills/design-polish/templates/polish-report.md +64 -64
  281. package/skills/design-teach/SKILL.md +182 -182
  282. package/skills/design-teach/rubrics/brand-personality.md +73 -73
  283. package/skills/design-teach/templates/design-context.json +36 -36
  284. package/skills/e2e-commerce/SKILL.md +62 -62
  285. package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
  286. package/skills/event-comms/SKILL.md +162 -162
  287. package/skills/event-comms/templates/email-invite.md +99 -99
  288. package/skills/event-comms/templates/sns-post.md +133 -133
  289. package/skills/event-ops/SKILL.md +198 -198
  290. package/skills/event-ops/rubrics/contingency.md +85 -85
  291. package/skills/event-ops/templates/d-day-checklist.md +65 -65
  292. package/skills/event-planning/SKILL.md +132 -132
  293. package/skills/event-planning/rubrics/timeline.md +70 -70
  294. package/skills/event-planning/templates/event-plan.md +91 -91
  295. package/skills/exec-plan/SKILL.md +149 -149
  296. package/skills/exec-plan/agents/decomposer.md +47 -47
  297. package/skills/exec-plan/agents/dependency-mapper.md +44 -44
  298. package/skills/exec-plan/agents/estimator.md +43 -43
  299. package/skills/exec-plan/agents/validator.md +55 -55
  300. package/skills/exec-plan/orchestrator.md +70 -70
  301. package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
  302. package/skills/exec-plan/templates/plan.md +147 -147
  303. package/skills/git-worktree/SKILL.md +73 -73
  304. package/skills/git-worktree/rubrics/when-to-use.md +55 -55
  305. package/skills/handoff/SKILL.md +110 -110
  306. package/skills/handoff/agents/context-summarizer.md +51 -51
  307. package/skills/handoff/agents/document-writer.md +63 -63
  308. package/skills/handoff/agents/state-collector.md +53 -53
  309. package/skills/handoff/agents/verifier.md +48 -48
  310. package/skills/handoff/rubrics/completeness.md +62 -62
  311. package/skills/handoff/templates/handoff.md +107 -107
  312. package/skills/parallel-research/SKILL.md +89 -89
  313. package/skills/parallel-research/agents/best-practices.md +43 -43
  314. package/skills/parallel-research/agents/codebase-patterns.md +46 -46
  315. package/skills/parallel-research/agents/framework-docs.md +45 -45
  316. package/skills/parallel-research/agents/security-advisory.md +46 -46
  317. package/skills/parallel-research/agents/synthesizer.md +52 -52
  318. package/skills/parallel-research/experts/best-practices.md +50 -50
  319. package/skills/parallel-research/experts/codebase-patterns.md +70 -70
  320. package/skills/parallel-research/experts/framework-docs.md +65 -65
  321. package/skills/parallel-research/experts/security-advisory.md +69 -69
  322. package/skills/parallel-research/orchestrator.md +65 -65
  323. package/skills/parallel-research/templates/synthesis.md +101 -101
  324. package/skills/prioritization-frameworks/SKILL.md +87 -87
  325. package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
  326. package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
  327. package/skills/priority-todos/SKILL.md +64 -64
  328. package/skills/priority-todos/rubrics/prioritization.md +70 -70
  329. package/skills/priority-todos/templates/todo-board.md +59 -59
  330. package/skills/seo-checklist/SKILL.md +58 -58
  331. package/skills/seo-checklist/frameworks/structured-data.md +153 -153
  332. package/skills/seo-checklist/rubrics/content-seo.md +42 -42
  333. package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
  334. package/skills/techdebt/SKILL.md +124 -124
  335. package/skills/techdebt/agents/analyzer.md +50 -50
  336. package/skills/techdebt/agents/fixer.md +41 -41
  337. package/skills/techdebt/agents/reviewer.md +47 -47
  338. package/skills/techdebt/agents/scanner.md +44 -44
  339. package/skills/techdebt/orchestrator.md +70 -70
  340. package/skills/techdebt/rubrics/severity.md +51 -51
  341. package/skills/techdebt/scripts/scan.js +90 -90
  342. package/skills/techdebt/templates/report.md +86 -86
  343. package/skills/tool-fallback/SKILL.md +104 -104
  344. package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
  345. package/skills/typescript-advanced-types/SKILL.md +67 -67
  346. package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
  347. package/skills/ui-ux-pro-max/SKILL.md +236 -236
  348. package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
  349. package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
  350. package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
  351. package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
  352. package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
  353. package/skills/ui-ux-pro-max/reference/typography.md +455 -455
  354. package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
  355. package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
  356. package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
  357. package/skills/user-personas/SKILL.md +75 -75
  358. package/skills/user-personas/rubrics/research-methods.md +56 -56
  359. package/skills/user-personas/templates/persona.md +89 -89
  360. package/skills/vercel-react-best-practices/SKILL.md +60 -60
  361. package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
  362. package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
  363. package/skills/vibe.docs/SKILL.md +171 -171
  364. package/skills/vibe.docs/templates/architecture.md +80 -80
  365. package/skills/vibe.docs/templates/readme.md +84 -84
  366. package/skills/vibe.docs/templates/release-notes.md +74 -74
  367. package/skills/vibe.figma/SKILL.md +215 -982
  368. package/skills/vibe.figma/rubrics/extraction-checklist.md +51 -51
  369. package/skills/vibe.figma/templates/component-index.md +126 -126
  370. package/skills/vibe.figma/templates/figma-handoff.md +100 -100
  371. package/skills/vibe.figma/templates/remapped-tree.md +277 -277
  372. package/skills/vibe.figma.convert/SKILL.md +188 -511
  373. package/skills/vibe.figma.convert/rubrics/conversion-rules.md +129 -113
  374. package/skills/vibe.figma.convert/templates/component.md +140 -140
  375. package/skills/vibe.figma.extract/SKILL.md +179 -300
  376. package/skills/vibe.figma.extract/rubrics/image-rules.md +145 -137
  377. package/skills/video-production/SKILL.md +52 -52
  378. package/skills/video-production/rubrics/quality-checklist.md +58 -58
  379. package/skills/video-production/templates/production-plan.md +104 -104
  380. package/vibe/config.json +29 -29
  381. package/vibe/constitution.md +227 -227
  382. package/vibe/rules/principles/communication-guide.md +98 -98
  383. package/vibe/rules/principles/development-philosophy.md +52 -52
  384. package/vibe/rules/principles/quick-start.md +102 -102
  385. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  386. package/vibe/rules/quality/checklist.md +276 -276
  387. package/vibe/rules/quality/performance.md +236 -236
  388. package/vibe/rules/quality/testing-strategy.md +440 -440
  389. package/vibe/rules/standards/anti-patterns.md +541 -541
  390. package/vibe/rules/standards/code-structure.md +291 -291
  391. package/vibe/rules/standards/complexity-metrics.md +313 -313
  392. package/vibe/rules/standards/git-workflow.md +237 -237
  393. package/vibe/rules/standards/naming-conventions.md +198 -198
  394. package/vibe/rules/standards/security.md +305 -305
  395. package/vibe/rules/writing/document-style.md +74 -74
  396. package/vibe/setup.sh +31 -31
  397. package/vibe/templates/constitution-template.md +252 -252
  398. package/vibe/templates/contract-backend-template.md +526 -526
  399. package/vibe/templates/contract-frontend-template.md +599 -599
  400. package/vibe/templates/feature-template.md +96 -96
  401. package/vibe/templates/spec-template.md +221 -221
  402. package/vibe/ui-ux-data/charts.csv +26 -26
  403. package/vibe/ui-ux-data/colors.csv +97 -97
  404. package/vibe/ui-ux-data/icons.csv +101 -101
  405. package/vibe/ui-ux-data/landing.csv +31 -31
  406. package/vibe/ui-ux-data/products.csv +96 -96
  407. package/vibe/ui-ux-data/react-performance.csv +45 -45
  408. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  409. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  410. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  411. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  412. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  413. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  414. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  415. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  416. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  417. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  418. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  419. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  420. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  421. package/vibe/ui-ux-data/styles.csv +68 -68
  422. package/vibe/ui-ux-data/typography.csv +57 -57
  423. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  424. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  425. package/vibe/ui-ux-data/version.json +31 -31
  426. package/vibe/ui-ux-data/web-interface.csv +31 -31
@@ -285,177 +285,177 @@ export function getDefaultSkills(corePathUrl) {
285
285
  return [
286
286
  {
287
287
  id: 'multi-llm-orchestration',
288
- content: `---
289
- name: multi-llm-orchestration
290
- description: "Multi-LLM research using GPT and Gemini for comprehensive analysis"
291
- triggers: [gpt, gemini, multi-llm, research, parallel research]
292
- priority: 80
293
- ---
294
- # Multi-LLM Orchestration
295
-
296
- Use multiple LLMs for comprehensive research and validation.
297
-
298
- ## Usage
299
-
300
- \`\`\`bash
301
- # Via Bash hook (automatic in /vibe.spec)
302
- node hooks/scripts/llm-orchestrate.js gpt "your prompt"
303
- node hooks/scripts/llm-orchestrate.js gemini "your prompt"
304
- \`\`\`
305
-
306
- ## Setup
307
-
308
- \`\`\`bash
309
- vibe gpt key <key> # Configure GPT API key
310
- vibe gemini key <key> # Configure Gemini API key
311
- vibe status # Check current configuration
312
- \`\`\`
313
-
314
- ## Best Practices
315
-
316
- 1. Use GPT for best practices and code review
317
- 2. Use Gemini for documentation and security analysis
318
- 3. Combine results for comprehensive coverage
288
+ content: `---
289
+ name: multi-llm-orchestration
290
+ description: "Multi-LLM research using GPT and Gemini for comprehensive analysis"
291
+ triggers: [gpt, gemini, multi-llm, research, parallel research]
292
+ priority: 80
293
+ ---
294
+ # Multi-LLM Orchestration
295
+
296
+ Use multiple LLMs for comprehensive research and validation.
297
+
298
+ ## Usage
299
+
300
+ \`\`\`bash
301
+ # Via Bash hook (automatic in /vibe.spec)
302
+ node hooks/scripts/llm-orchestrate.js gpt "your prompt"
303
+ node hooks/scripts/llm-orchestrate.js gemini "your prompt"
304
+ \`\`\`
305
+
306
+ ## Setup
307
+
308
+ \`\`\`bash
309
+ vibe gpt key <key> # Configure GPT API key
310
+ vibe gemini key <key> # Configure Gemini API key
311
+ vibe status # Check current configuration
312
+ \`\`\`
313
+
314
+ ## Best Practices
315
+
316
+ 1. Use GPT for best practices and code review
317
+ 2. Use Gemini for documentation and security analysis
318
+ 3. Combine results for comprehensive coverage
319
319
  `,
320
320
  },
321
321
  {
322
322
  id: 'error-recovery',
323
- content: `---
324
- name: error-recovery
325
- description: "Error recovery patterns and retry strategies"
326
- triggers: [error, fail, retry, recover, fix]
327
- priority: 70
328
- ---
329
- # Error Recovery Patterns
330
-
331
- ## Common Error Types
332
-
333
- ### Build Errors
334
- - Check TypeScript compilation errors
335
- - Verify dependency versions
336
- - Run \`npm ci\` to clean install
337
-
338
- ### Test Failures
339
- - Run failed tests in isolation
340
- - Check test fixtures/mocks
341
- - Verify async timing issues
342
-
343
- ### Runtime Errors
344
- - Check stack trace carefully
345
- - Verify environment variables
346
- - Check external service connectivity
347
-
348
- ## Retry Strategy
349
-
350
- 1. First retry: Same action
351
- 2. Second retry: Clean state (cache clear)
352
- 3. Third retry: Alternative approach
353
- 4. Max retries exceeded: Escalate to user
354
-
355
- ## Auto-Recovery Commands
356
-
357
- \`\`\`bash
358
- # Clean build
359
- rm -rf node_modules dist && npm ci && npm run build
360
-
361
- # Reset git state (careful!)
362
- git stash && git checkout .
363
-
364
- # Clear caches
365
- npm cache clean --force
366
- \`\`\`
323
+ content: `---
324
+ name: error-recovery
325
+ description: "Error recovery patterns and retry strategies"
326
+ triggers: [error, fail, retry, recover, fix]
327
+ priority: 70
328
+ ---
329
+ # Error Recovery Patterns
330
+
331
+ ## Common Error Types
332
+
333
+ ### Build Errors
334
+ - Check TypeScript compilation errors
335
+ - Verify dependency versions
336
+ - Run \`npm ci\` to clean install
337
+
338
+ ### Test Failures
339
+ - Run failed tests in isolation
340
+ - Check test fixtures/mocks
341
+ - Verify async timing issues
342
+
343
+ ### Runtime Errors
344
+ - Check stack trace carefully
345
+ - Verify environment variables
346
+ - Check external service connectivity
347
+
348
+ ## Retry Strategy
349
+
350
+ 1. First retry: Same action
351
+ 2. Second retry: Clean state (cache clear)
352
+ 3. Third retry: Alternative approach
353
+ 4. Max retries exceeded: Escalate to user
354
+
355
+ ## Auto-Recovery Commands
356
+
357
+ \`\`\`bash
358
+ # Clean build
359
+ rm -rf node_modules dist && npm ci && npm run build
360
+
361
+ # Reset git state (careful!)
362
+ git stash && git checkout .
363
+
364
+ # Clear caches
365
+ npm cache clean --force
366
+ \`\`\`
367
367
  `,
368
368
  },
369
369
  {
370
370
  id: 'code-quality-check',
371
- content: `---
372
- name: code-quality-check
373
- description: "Code quality validation using core tools"
374
- triggers: [quality, lint, complexity, review]
375
- priority: 60
376
- ---
377
- # Code Quality Check
378
-
379
- ## Using Core Tools
380
-
381
- \`\`\`bash
382
- # Analyze complexity
383
- node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
384
- t.analyzeComplexity({targetPath: 'src/', projectPath: process.cwd()})
385
- .then(r => console.log(r.content[0].text))
386
- )"
387
-
388
- # Validate quality
389
- node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
390
- t.validateCodeQuality({targetPath: 'src/', projectPath: process.cwd()})
391
- .then(r => console.log(r.content[0].text))
392
- )"
393
- \`\`\`
394
-
395
- ## Quality Metrics
396
-
397
- | Metric | Good | Warning | Critical |
398
- |--------|------|---------|----------|
399
- | Cyclomatic Complexity | ≤10 | 11-15 | >15 |
400
- | Function Length | ≤30 | 31-50 | >50 |
401
- | Nesting Depth | ≤3 | 4 | >4 |
402
-
403
- ## Common Issues
404
-
405
- 1. **High Complexity**: Extract helper functions
406
- 2. **Long Functions**: Split by responsibility
407
- 3. **Deep Nesting**: Use early returns
408
- 4. **Tight Coupling**: Apply dependency injection
371
+ content: `---
372
+ name: code-quality-check
373
+ description: "Code quality validation using core tools"
374
+ triggers: [quality, lint, complexity, review]
375
+ priority: 60
376
+ ---
377
+ # Code Quality Check
378
+
379
+ ## Using Core Tools
380
+
381
+ \`\`\`bash
382
+ # Analyze complexity
383
+ node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
384
+ t.analyzeComplexity({targetPath: 'src/', projectPath: process.cwd()})
385
+ .then(r => console.log(r.content[0].text))
386
+ )"
387
+
388
+ # Validate quality
389
+ node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
390
+ t.validateCodeQuality({targetPath: 'src/', projectPath: process.cwd()})
391
+ .then(r => console.log(r.content[0].text))
392
+ )"
393
+ \`\`\`
394
+
395
+ ## Quality Metrics
396
+
397
+ | Metric | Good | Warning | Critical |
398
+ |--------|------|---------|----------|
399
+ | Cyclomatic Complexity | ≤10 | 11-15 | >15 |
400
+ | Function Length | ≤30 | 31-50 | >50 |
401
+ | Nesting Depth | ≤3 | 4 | >4 |
402
+
403
+ ## Common Issues
404
+
405
+ 1. **High Complexity**: Extract helper functions
406
+ 2. **Long Functions**: Split by responsibility
407
+ 3. **Deep Nesting**: Use early returns
408
+ 4. **Tight Coupling**: Apply dependency injection
409
409
  `,
410
410
  },
411
411
  {
412
412
  id: 'session-management',
413
- content: `---
414
- name: session-management
415
- description: "Context and session management across conversations"
416
- triggers: [session, context, memory, save, restore, continue]
417
- priority: 75
418
- ---
419
- # Session Management
420
-
421
- ## Starting a Session
422
-
423
- \`\`\`bash
424
- # Auto-restore previous context
425
- node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
426
- t.startSession({projectPath: process.cwd()})
427
- .then(r => console.log(r.content[0].text))
428
- )"
429
- \`\`\`
430
-
431
- ## Saving Context
432
-
433
- \`\`\`bash
434
- # Save important decisions
435
- node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
436
- t.saveMemory({
437
- key: 'decision-auth-method',
438
- value: 'Using JWT with refresh tokens for auth',
439
- category: 'architecture',
440
- projectPath: process.cwd()
441
- }).then(r => console.log(r.content[0].text))
442
- )"
443
- \`\`\`
444
-
445
- ## Context Management
446
-
447
- At 70%+ context usage:
448
- 1. Use \`saveMemory\` for important decisions
449
- 2. Start new session with \`/new\`
450
- 3. Previous context auto-restores
451
-
452
- ## Slash Command
453
-
454
- \`\`\`
455
- /vibe.utils --continue
456
- \`\`\`
457
-
458
- Restores previous session context automatically.
413
+ content: `---
414
+ name: session-management
415
+ description: "Context and session management across conversations"
416
+ triggers: [session, context, memory, save, restore, continue]
417
+ priority: 75
418
+ ---
419
+ # Session Management
420
+
421
+ ## Starting a Session
422
+
423
+ \`\`\`bash
424
+ # Auto-restore previous context
425
+ node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
426
+ t.startSession({projectPath: process.cwd()})
427
+ .then(r => console.log(r.content[0].text))
428
+ )"
429
+ \`\`\`
430
+
431
+ ## Saving Context
432
+
433
+ \`\`\`bash
434
+ # Save important decisions
435
+ node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
436
+ t.saveMemory({
437
+ key: 'decision-auth-method',
438
+ value: 'Using JWT with refresh tokens for auth',
439
+ category: 'architecture',
440
+ projectPath: process.cwd()
441
+ }).then(r => console.log(r.content[0].text))
442
+ )"
443
+ \`\`\`
444
+
445
+ ## Context Management
446
+
447
+ At 70%+ context usage:
448
+ 1. Use \`saveMemory\` for important decisions
449
+ 2. Start new session with \`/new\`
450
+ 3. Previous context auto-restores
451
+
452
+ ## Slash Command
453
+
454
+ \`\`\`
455
+ /vibe.utils --continue
456
+ \`\`\`
457
+
458
+ Restores previous session context automatically.
459
459
  `,
460
460
  },
461
461
  ];
@@ -26,6 +26,7 @@ interface ThresholdCrossing {
26
26
  crossedAt: number;
27
27
  timestamp: string;
28
28
  }
29
+ export type ThresholdCallback = (level: ThresholdLevel, snapshot: BudgetSnapshot) => void | Promise<void>;
29
30
  export declare class TokenBudgetTracker {
30
31
  private static instances;
31
32
  private static defaultInstance;
@@ -34,9 +35,21 @@ export declare class TokenBudgetTracker {
34
35
  private bySource;
35
36
  private crossings;
36
37
  private lastLevel;
38
+ private thresholdCallbacks;
39
+ private circuitBreakerFailures;
40
+ private static readonly MAX_CIRCUIT_FAILURES;
37
41
  private constructor();
38
42
  static getInstance(projectPath?: string, totalBudget?: number): TokenBudgetTracker;
39
43
  trackConsumption(source: TokenSource, tokens: number): ThresholdLevel;
44
+ /**
45
+ * 특정 threshold 도달 시 자동 실행할 콜백 등록.
46
+ * 예: medium(75%) → 자동 압축, hard(85%) → 경고, critical(95%) → 중단
47
+ */
48
+ onThreshold(level: ThresholdLevel, callback: ThresholdCallback): void;
49
+ /** 회로 차단기: 연속 실패 시 콜백 실행 중단 */
50
+ isCircuitOpen(): boolean;
51
+ resetCircuitBreaker(): void;
52
+ private fireCallbacks;
40
53
  syncToPercent(percent: number): void;
41
54
  getRemainingBudget(): number;
42
55
  getUsagePercent(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"TokenBudgetTracker.d.ts","sourceRoot":"","sources":["../../../src/infra/lib/TokenBudgetTracker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,QAAQ,GACR,OAAO,GACP,aAAa,GACb,WAAW,GACX,aAAa,GACb,QAAQ,CAAC;AAEb,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAE9E,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACtC,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAsBD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,SAAS,CAA8C;IACtE,OAAO,CAAC,MAAM,CAAC,eAAe,CAAmC;IAEjE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAiB;IAElC,OAAO;IAQP,MAAM,CAAC,WAAW,CAChB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,GAAE,MAA8B,GAC1C,kBAAkB;IAcrB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAerE,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKpC,kBAAkB,IAAI,MAAM;IAI5B,eAAe,IAAI,MAAM;IAKzB,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,cAAc;IAmBjB,cAAc,IAAI,OAAO;IAIzB,eAAe,IAAI,cAAc;IAIjC,WAAW,IAAI,cAAc;IAY7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3C,KAAK,IAAI,IAAI;IAOb,MAAM,CAAC,aAAa,IAAI,IAAI;IAS5B,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"TokenBudgetTracker.d.ts","sourceRoot":"","sources":["../../../src/infra/lib/TokenBudgetTracker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,QAAQ,GACR,OAAO,GACP,aAAa,GACb,WAAW,GACX,aAAa,GACb,QAAQ,CAAC;AAEb,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAE9E,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACtC,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAsBD,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1G,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,SAAS,CAA8C;IACtE,OAAO,CAAC,MAAM,CAAC,eAAe,CAAmC;IAEjE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,kBAAkB,CAA2C;IACrE,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAK;IAEjD,OAAO;IAUP,MAAM,CAAC,WAAW,CAChB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,GAAE,MAA8B,GAC1C,kBAAkB;IAcrB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAiBrE;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAMrE,+BAA+B;IAC/B,aAAa,IAAI,OAAO;IAIxB,mBAAmB,IAAI,IAAI;IAI3B,OAAO,CAAC,aAAa;IAkBrB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKpC,kBAAkB,IAAI,MAAM;IAI5B,eAAe,IAAI,MAAM;IAKzB,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,cAAc;IAmBjB,cAAc,IAAI,OAAO;IAIzB,eAAe,IAAI,cAAc;IAIjC,WAAW,IAAI,cAAc;IAY7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3C,KAAK,IAAI,IAAI;IAQb,MAAM,CAAC,aAAa,IAAI,IAAI;IAS5B,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,UAAU;CAGnB"}
@@ -17,9 +17,6 @@ const THRESHOLD_PERCENTS = {
17
17
  const ORDERED_LEVELS = [
18
18
  'none', 'soft', 'medium', 'hard', 'critical',
19
19
  ];
20
- // ============================================================================
21
- // TokenBudgetTracker
22
- // ============================================================================
23
20
  export class TokenBudgetTracker {
24
21
  static instances = new Map();
25
22
  static defaultInstance = null;
@@ -28,12 +25,17 @@ export class TokenBudgetTracker {
28
25
  bySource;
29
26
  crossings;
30
27
  lastLevel;
28
+ thresholdCallbacks;
29
+ circuitBreakerFailures;
30
+ static MAX_CIRCUIT_FAILURES = 3;
31
31
  constructor(totalBudget) {
32
32
  this.totalBudget = totalBudget;
33
33
  this.consumed = 0;
34
34
  this.bySource = this.createEmptySourceMap();
35
35
  this.crossings = [];
36
36
  this.lastLevel = 'none';
37
+ this.thresholdCallbacks = new Map();
38
+ this.circuitBreakerFailures = 0;
37
39
  }
38
40
  static getInstance(projectPath, totalBudget = TOKENS.DEFAULT_BUDGET) {
39
41
  if (projectPath) {
@@ -59,10 +61,48 @@ export class TokenBudgetTracker {
59
61
  crossedAt: this.consumed,
60
62
  timestamp: new Date().toISOString(),
61
63
  });
64
+ // 자동 콜백 실행 (회로 차단기 적용)
65
+ this.fireCallbacks(newLevel);
62
66
  }
63
67
  this.lastLevel = newLevel;
64
68
  return newLevel;
65
69
  }
70
+ /**
71
+ * 특정 threshold 도달 시 자동 실행할 콜백 등록.
72
+ * 예: medium(75%) → 자동 압축, hard(85%) → 경고, critical(95%) → 중단
73
+ */
74
+ onThreshold(level, callback) {
75
+ const cbs = this.thresholdCallbacks.get(level) || [];
76
+ cbs.push(callback);
77
+ this.thresholdCallbacks.set(level, cbs);
78
+ }
79
+ /** 회로 차단기: 연속 실패 시 콜백 실행 중단 */
80
+ isCircuitOpen() {
81
+ return this.circuitBreakerFailures >= TokenBudgetTracker.MAX_CIRCUIT_FAILURES;
82
+ }
83
+ resetCircuitBreaker() {
84
+ this.circuitBreakerFailures = 0;
85
+ }
86
+ fireCallbacks(level) {
87
+ if (this.isCircuitOpen())
88
+ return;
89
+ const callbacks = this.thresholdCallbacks.get(level);
90
+ if (!callbacks?.length)
91
+ return;
92
+ const snapshot = this.getSnapshot();
93
+ for (const cb of callbacks) {
94
+ try {
95
+ const result = cb(level, snapshot);
96
+ if (result instanceof Promise) {
97
+ result.catch(() => { this.circuitBreakerFailures++; });
98
+ }
99
+ this.circuitBreakerFailures = 0; // 성공 시 리셋
100
+ }
101
+ catch {
102
+ this.circuitBreakerFailures++;
103
+ }
104
+ }
105
+ }
66
106
  syncToPercent(percent) {
67
107
  this.consumed = Math.round(this.totalBudget * (percent / 100));
68
108
  this.lastLevel = this.getCurrentLevel();
@@ -113,6 +153,7 @@ export class TokenBudgetTracker {
113
153
  this.bySource = this.createEmptySourceMap();
114
154
  this.crossings = [];
115
155
  this.lastLevel = 'none';
156
+ this.circuitBreakerFailures = 0;
116
157
  }
117
158
  static resetInstance() {
118
159
  TokenBudgetTracker.instances.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"TokenBudgetTracker.js","sourceRoot":"","sources":["../../../src/infra/lib/TokenBudgetTracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenBudgetTracker.js","sourceRoot":"","sources":["../../../src/infra/lib/TokenBudgetTracker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAyCxC,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,MAAM,kBAAkB,GAAmC;IACzD,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,EAAE;IACR,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,cAAc,GAAqB;IACvC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU;CAC7C,CAAC;AAQF,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAC,SAAS,GAAoC,IAAI,GAAG,EAAE,CAAC;IAC9D,MAAM,CAAC,eAAe,GAA8B,IAAI,CAAC;IAEzD,WAAW,CAAS;IACpB,QAAQ,CAAS;IACjB,QAAQ,CAA8B;IACtC,SAAS,CAAsB;IAC/B,SAAS,CAAiB;IAC1B,kBAAkB,CAA2C;IAC7D,sBAAsB,CAAS;IAC/B,MAAM,CAAU,oBAAoB,GAAG,CAAC,CAAC;IAEjD,YAAoB,WAAmB;QACrC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,WAAW,CAChB,WAAoB,EACpB,cAAsB,MAAM,CAAC,cAAc;QAE3C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC/D,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;YACjD,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC;YACxC,kBAAkB,CAAC,eAAe,GAAG,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,kBAAkB,CAAC,eAAe,CAAC;IAC5C,CAAC;IAED,gBAAgB,CAAC,MAAmB,EAAE,MAAc;QAClD,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAClB,KAAK,EAAE,QAAQ;gBACf,SAAS,EAAE,IAAI,CAAC,QAAQ;gBACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;YACH,uBAAuB;YACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,KAAqB,EAAE,QAA2B;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,+BAA+B;IAC/B,aAAa;QACX,OAAO,IAAI,CAAC,sBAAsB,IAAI,kBAAkB,CAAC,oBAAoB,CAAC;IAChF,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;IAClC,CAAC;IAEO,aAAa,CAAC,KAAqB;QACzC,IAAI,IAAI,CAAC,aAAa,EAAE;YAAE,OAAO;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,EAAE,MAAM;YAAE,OAAO;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACnC,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;oBAC9B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzD,CAAC;gBACD,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC,UAAU;YAC7C,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,aAAa,CAAC,OAAe;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAC1C,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,mBAAmB,CACjB,MAAc,EACd,eAAuB;QAEvB,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;QAC1D,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAC/B,GAAG,EACH,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAC7C,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QAC9D,MAAM,UAAU,GACd,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpE,OAAO;YACL,MAAM;YACN,eAAe;YACf,mBAAmB,EAAE,UAAU;YAC/B,cAAc,EAAE,cAAc;YAC9B,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,GAAG;SAC3D,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,kBAAkB,CAAC,MAAM,CAAC;IAC7D,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,WAAW;QACT,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE;YACpC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG;YAC5D,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE;YAC7B,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC9B,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;SAC/B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,IAAY;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,kBAAkB,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACrC,kBAAkB,CAAC,eAAe,GAAG,IAAI,CAAC;IAC5C,CAAC;IAED,2EAA2E;IAC3E,kBAAkB;IAClB,2EAA2E;IAEnE,oBAAoB;QAC1B,OAAO;YACL,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;YACR,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,CAAC;SACV,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,OAAe;QACrC,IAAI,OAAO,IAAI,kBAAkB,CAAC,QAAQ;YAAE,OAAO,UAAU,CAAC;QAC9D,IAAI,OAAO,IAAI,kBAAkB,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC;QACtD,IAAI,OAAO,IAAI,kBAAkB,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC;QAC1D,IAAI,OAAO,IAAI,kBAAkB,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,UAAU,CAAC,KAAqB;QACtC,OAAO,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC"}