@su-record/vibe 2.16.4 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (607) hide show
  1. package/CLAUDE.md +8 -8
  2. package/README.en.md +46 -29
  3. package/README.md +41 -24
  4. package/agents/acceptance-tester.md +56 -0
  5. package/agents/architect.md +25 -67
  6. package/agents/build-error-resolver.md +28 -97
  7. package/agents/code-reviewer.md +89 -0
  8. package/agents/diagrammer.md +34 -169
  9. package/agents/documenter.md +43 -0
  10. package/agents/e2e-tester.md +46 -281
  11. package/agents/event/event-ops.md +54 -77
  12. package/agents/event/event-planner.md +63 -0
  13. package/agents/figma/figma-engineer.md +76 -0
  14. package/agents/implementer.md +26 -41
  15. package/agents/security-reviewer.md +56 -0
  16. package/agents/tester.md +37 -33
  17. package/agents/ui/design-reviewer.md +62 -0
  18. package/agents/ui/design-system-gen.md +63 -0
  19. package/dist/cli/commands/remove.d.ts.map +1 -1
  20. package/dist/cli/commands/remove.js +8 -10
  21. package/dist/cli/commands/remove.js.map +1 -1
  22. package/dist/cli/index.d.ts +0 -4
  23. package/dist/cli/index.d.ts.map +1 -1
  24. package/dist/cli/index.js +0 -4
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/llm/model-refresh.js +1 -1
  27. package/dist/cli/llm/model-refresh.js.map +1 -1
  28. package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
  29. package/dist/cli/postinstall/claude-agents.js +16 -77
  30. package/dist/cli/postinstall/claude-agents.js.map +1 -1
  31. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  32. package/dist/cli/postinstall/constants.js +80 -296
  33. package/dist/cli/postinstall/constants.js.map +1 -1
  34. package/dist/cli/postinstall/cursor-agents.d.ts +5 -0
  35. package/dist/cli/postinstall/cursor-agents.d.ts.map +1 -1
  36. package/dist/cli/postinstall/cursor-agents.js +26 -68
  37. package/dist/cli/postinstall/cursor-agents.js.map +1 -1
  38. package/dist/cli/postinstall/cursor-skills.d.ts.map +1 -1
  39. package/dist/cli/postinstall/cursor-skills.js +26 -30
  40. package/dist/cli/postinstall/cursor-skills.js.map +1 -1
  41. package/dist/cli/postinstall/main.d.ts.map +1 -1
  42. package/dist/cli/postinstall/main.js +0 -2
  43. package/dist/cli/postinstall/main.js.map +1 -1
  44. package/dist/cli/setup/Provisioner.d.ts.map +1 -1
  45. package/dist/cli/setup/Provisioner.js +19 -21
  46. package/dist/cli/setup/Provisioner.js.map +1 -1
  47. package/dist/cli/utils.d.ts +4 -1
  48. package/dist/cli/utils.d.ts.map +1 -1
  49. package/dist/cli/utils.js +4 -1
  50. package/dist/cli/utils.js.map +1 -1
  51. package/dist/infra/lib/FrameworkDetector.js +4 -4
  52. package/dist/infra/lib/FrameworkDetector.js.map +1 -1
  53. package/dist/infra/lib/OrchestrateWorkflow.js +2 -2
  54. package/dist/infra/lib/OrchestrateWorkflow.js.map +1 -1
  55. package/dist/infra/lib/browser/launch.js +1 -1
  56. package/dist/infra/lib/browser/launch.js.map +1 -1
  57. package/dist/infra/lib/browser/types.d.ts +1 -1
  58. package/dist/infra/lib/browser/types.js +1 -1
  59. package/dist/infra/lib/constants.d.ts +1 -1
  60. package/dist/infra/lib/constants.d.ts.map +1 -1
  61. package/dist/infra/lib/constants.js +4 -5
  62. package/dist/infra/lib/constants.js.map +1 -1
  63. package/dist/infra/lib/evolution/__tests__/integration.test.js +7 -7
  64. package/dist/infra/lib/evolution/__tests__/integration.test.js.map +1 -1
  65. package/dist/infra/lib/memory/index.d.ts +0 -2
  66. package/dist/infra/lib/memory/index.d.ts.map +1 -1
  67. package/dist/infra/lib/memory/index.js +0 -2
  68. package/dist/infra/lib/memory/index.js.map +1 -1
  69. package/dist/infra/lib/telemetry/SkillTelemetry.test.js +1 -1
  70. package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -1
  71. package/dist/tools/index.d.ts +0 -4
  72. package/dist/tools/index.d.ts.map +1 -1
  73. package/dist/tools/index.js +0 -4
  74. package/dist/tools/index.js.map +1 -1
  75. package/dist/tools/memory/autoSaveContext.d.ts +0 -1
  76. package/dist/tools/memory/autoSaveContext.d.ts.map +1 -1
  77. package/dist/tools/memory/autoSaveContext.js +13 -27
  78. package/dist/tools/memory/autoSaveContext.js.map +1 -1
  79. package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -78
  80. package/hooks/scripts/__tests__/.vibe/memories/memories.db +0 -0
  81. package/hooks/scripts/__tests__/.vibe/memories/memories.db-shm +0 -0
  82. package/hooks/scripts/__tests__/.vibe/memories/memories.db-wal +0 -0
  83. package/hooks/scripts/__tests__/clone-behaviors.test.js +64 -0
  84. package/hooks/scripts/__tests__/clone-merge-responsive.test.js +106 -0
  85. package/hooks/scripts/__tests__/code-check-detectors.test.js +2 -2
  86. package/hooks/scripts/__tests__/run-ledger.test.js +1 -1
  87. package/hooks/scripts/__tests__/scope-from-spec.test.js +12 -12
  88. package/hooks/scripts/__tests__/step-counter.test.js +1 -1
  89. package/hooks/scripts/clone-extract.js +242 -28
  90. package/hooks/scripts/clone-merge-responsive.js +184 -0
  91. package/hooks/scripts/clone-spec.js +33 -8
  92. package/hooks/scripts/clone-validate.js +15 -9
  93. package/hooks/scripts/code-check.js +16 -203
  94. package/hooks/scripts/context-save.js +0 -11
  95. package/hooks/scripts/lib/scope-from-spec.js +9 -6
  96. package/hooks/scripts/post-edit-dispatcher.js +1 -1
  97. package/hooks/scripts/prompt-dispatcher.js +7 -18
  98. package/hooks/scripts/session-start.js +25 -35
  99. package/package.json +6 -5
  100. package/skills/agents-md/SKILL.md +62 -15
  101. package/skills/arch-guard/SKILL.md +1 -1
  102. package/skills/brand-assets/SKILL.md +2 -2
  103. package/skills/capability-loop/SKILL.md +1 -1
  104. package/skills/chub-usage/SKILL.md +1 -1
  105. package/skills/clone/SKILL.md +132 -55
  106. package/skills/commerce-patterns/SKILL.md +2 -2
  107. package/skills/commit-push-pr/SKILL.md +0 -1
  108. package/skills/context7-usage/SKILL.md +1 -1
  109. package/skills/design-refine/SKILL.md +140 -0
  110. package/skills/{design-polish → design-refine}/templates/polish-report.md +1 -1
  111. package/skills/{design-normalize → design-refine}/templates/token-audit.md +3 -3
  112. package/skills/design-review/SKILL.md +143 -0
  113. package/skills/{design-audit → design-review}/agents/a11y-auditor.md +1 -1
  114. package/skills/{design-audit → design-review}/agents/performance-auditor.md +1 -1
  115. package/skills/{design-audit → design-review}/agents/responsive-auditor.md +1 -1
  116. package/skills/{design-audit → design-review}/agents/slop-detector.md +1 -1
  117. package/skills/{design-audit → design-review}/frameworks/core-web-vitals.md +1 -1
  118. package/skills/{design-audit → design-review}/frameworks/wcag-checklist.md +1 -1
  119. package/skills/{design-audit → design-review}/orchestrator.md +3 -3
  120. package/skills/{design-critique → design-review}/templates/critique-report.md +3 -3
  121. package/skills/{design-audit → design-review}/templates/report.md +3 -3
  122. package/skills/design-teach/SKILL.md +11 -11
  123. package/skills/docs/SKILL.md +14 -16
  124. package/skills/e2e-commerce/SKILL.md +1 -1
  125. package/skills/event-comms/SKILL.md +1 -1
  126. package/skills/event-ops/SKILL.md +2 -2
  127. package/skills/event-planning/SKILL.md +1 -1
  128. package/skills/exec-plan/SKILL.md +2 -2
  129. package/skills/figma/SKILL.md +240 -148
  130. package/skills/figma/rubrics/css-mapping.md +125 -0
  131. package/skills/git-worktree/SKILL.md +1 -1
  132. package/skills/handoff/SKILL.md +1 -1
  133. package/skills/parallel-research/SKILL.md +14 -28
  134. package/skills/priority-todos/SKILL.md +1 -1
  135. package/skills/regress/SKILL.md +11 -0
  136. package/skills/restraint/SKILL.md +72 -0
  137. package/skills/seo-checklist/SKILL.md +2 -2
  138. package/skills/spec/SKILL.md +65 -836
  139. package/skills/test/SKILL.md +3 -3
  140. package/skills/tool-fallback/SKILL.md +2 -2
  141. package/skills/vercel-react-best-practices/SKILL.md +1 -1
  142. package/skills/vibe/SKILL.md +20 -35
  143. package/skills/vibe.analyze/SKILL.md +7 -9
  144. package/skills/vibe.clone/SKILL.md +39 -19
  145. package/skills/vibe.docs/SKILL.md +1 -1
  146. package/skills/vibe.event/SKILL.md +27 -27
  147. package/skills/vibe.figma/SKILL.md +14 -18
  148. package/skills/vibe.harness/SKILL.md +5 -5
  149. package/skills/vibe.reason/SKILL.md +0 -2
  150. package/skills/vibe.review/SKILL.md +45 -49
  151. package/skills/vibe.run/SKILL.md +2 -5
  152. package/skills/vibe.run/references/parallel-agents.md +33 -98
  153. package/skills/vibe.spec/SKILL.md +38 -535
  154. package/skills/vibe.utils/SKILL.md +3 -3
  155. package/skills/vibe.verify/SKILL.md +70 -542
  156. package/skills/video-production/SKILL.md +1 -1
  157. package/vibe/rules/orchestrator-contract.md +5 -4
  158. package/vibe/rules/quality/performance.md +1 -1
  159. package/vibe/templates/claudemd-template.md +1 -1
  160. package/vibe/templates/spec-template.md +35 -185
  161. package/agents/architect-low.md +0 -41
  162. package/agents/architect-medium.md +0 -59
  163. package/agents/compounder.md +0 -265
  164. package/agents/docs/api-documenter.md +0 -99
  165. package/agents/docs/changelog-writer.md +0 -93
  166. package/agents/event/event-comms.md +0 -78
  167. package/agents/event/event-content.md +0 -68
  168. package/agents/event/event-image.md +0 -95
  169. package/agents/event/event-scheduler.md +0 -69
  170. package/agents/event/event-speaker.md +0 -86
  171. package/agents/explorer-low.md +0 -42
  172. package/agents/explorer-medium.md +0 -59
  173. package/agents/explorer.md +0 -48
  174. package/agents/figma/figma-analyst.md +0 -56
  175. package/agents/figma/figma-architect.md +0 -116
  176. package/agents/figma/figma-auditor.md +0 -86
  177. package/agents/figma/figma-builder.md +0 -104
  178. package/agents/implementer-low.md +0 -43
  179. package/agents/implementer-medium.md +0 -52
  180. package/agents/junior-mentor.md +0 -141
  181. package/agents/planning/requirements-analyst.md +0 -84
  182. package/agents/planning/ux-advisor.md +0 -83
  183. package/agents/qa/acceptance-tester.md +0 -86
  184. package/agents/qa/edge-case-finder.md +0 -93
  185. package/agents/qa/qa-coordinator.md +0 -131
  186. package/agents/refactor-cleaner.md +0 -143
  187. package/agents/research/best-practices.md +0 -199
  188. package/agents/research/codebase-patterns.md +0 -157
  189. package/agents/research/framework-docs.md +0 -188
  190. package/agents/research/security-advisory.md +0 -213
  191. package/agents/review/architecture-reviewer.md +0 -107
  192. package/agents/review/complexity-reviewer.md +0 -116
  193. package/agents/review/data-integrity-reviewer.md +0 -88
  194. package/agents/review/git-history-reviewer.md +0 -103
  195. package/agents/review/performance-reviewer.md +0 -86
  196. package/agents/review/python-reviewer.md +0 -150
  197. package/agents/review/rails-reviewer.md +0 -139
  198. package/agents/review/react-reviewer.md +0 -144
  199. package/agents/review/security-reviewer.md +0 -80
  200. package/agents/review/simplicity-reviewer.md +0 -140
  201. package/agents/review/test-coverage-reviewer.md +0 -116
  202. package/agents/review/typescript-reviewer.md +0 -127
  203. package/agents/searcher.md +0 -54
  204. package/agents/simplifier.md +0 -124
  205. package/agents/teams/debug-team.md +0 -74
  206. package/agents/teams/dev-team.md +0 -92
  207. package/agents/teams/docs-team.md +0 -84
  208. package/agents/teams/figma-team.md +0 -89
  209. package/agents/teams/fullstack-team.md +0 -87
  210. package/agents/teams/lite-team.md +0 -73
  211. package/agents/teams/migration-team.md +0 -82
  212. package/agents/teams/refactor-team.md +0 -98
  213. package/agents/teams/research-team.md +0 -90
  214. package/agents/teams/review-debate-team.md +0 -129
  215. package/agents/teams/security-team.md +0 -85
  216. package/agents/ui/ui-a11y-auditor.md +0 -93
  217. package/agents/ui/ui-antipattern-detector.md +0 -102
  218. package/agents/ui/ui-dataviz-advisor.md +0 -69
  219. package/agents/ui/ui-design-system-gen.md +0 -57
  220. package/agents/ui/ui-industry-analyzer.md +0 -49
  221. package/agents/ui/ui-layout-architect.md +0 -65
  222. package/agents/ui/ui-stack-implementer.md +0 -68
  223. package/agents/ui/ux-compliance-reviewer.md +0 -81
  224. package/agents/ui-previewer.md +0 -262
  225. package/dist/cli/llm/gemini-commands.d.ts +0 -25
  226. package/dist/cli/llm/gemini-commands.d.ts.map +0 -1
  227. package/dist/cli/llm/gemini-commands.js +0 -143
  228. package/dist/cli/llm/gemini-commands.js.map +0 -1
  229. package/dist/cli/postinstall/codex-agents.d.ts +0 -24
  230. package/dist/cli/postinstall/codex-agents.d.ts.map +0 -1
  231. package/dist/cli/postinstall/codex-agents.js +0 -114
  232. package/dist/cli/postinstall/codex-agents.js.map +0 -1
  233. package/dist/cli/postinstall/codex-instruction.d.ts +0 -10
  234. package/dist/cli/postinstall/codex-instruction.d.ts.map +0 -1
  235. package/dist/cli/postinstall/codex-instruction.js +0 -56
  236. package/dist/cli/postinstall/codex-instruction.js.map +0 -1
  237. package/dist/cli/postinstall/gemini-agents.d.ts +0 -12
  238. package/dist/cli/postinstall/gemini-agents.d.ts.map +0 -1
  239. package/dist/cli/postinstall/gemini-agents.js +0 -80
  240. package/dist/cli/postinstall/gemini-agents.js.map +0 -1
  241. package/dist/cli/postinstall/gemini-instruction.d.ts +0 -10
  242. package/dist/cli/postinstall/gemini-instruction.d.ts.map +0 -1
  243. package/dist/cli/postinstall/gemini-instruction.js +0 -59
  244. package/dist/cli/postinstall/gemini-instruction.js.map +0 -1
  245. package/dist/infra/lib/ContextCompressor.d.ts +0 -104
  246. package/dist/infra/lib/ContextCompressor.d.ts.map +0 -1
  247. package/dist/infra/lib/ContextCompressor.js +0 -297
  248. package/dist/infra/lib/ContextCompressor.js.map +0 -1
  249. package/dist/infra/lib/ContextCompressor.test.d.ts +0 -2
  250. package/dist/infra/lib/ContextCompressor.test.d.ts.map +0 -1
  251. package/dist/infra/lib/ContextCompressor.test.js +0 -25
  252. package/dist/infra/lib/ContextCompressor.test.js.map +0 -1
  253. package/dist/infra/lib/ProgressTracker.d.ts +0 -73
  254. package/dist/infra/lib/ProgressTracker.d.ts.map +0 -1
  255. package/dist/infra/lib/ProgressTracker.js +0 -267
  256. package/dist/infra/lib/ProgressTracker.js.map +0 -1
  257. package/dist/infra/lib/TokenBudgetTracker.d.ts +0 -68
  258. package/dist/infra/lib/TokenBudgetTracker.d.ts.map +0 -1
  259. package/dist/infra/lib/TokenBudgetTracker.js +0 -191
  260. package/dist/infra/lib/TokenBudgetTracker.js.map +0 -1
  261. package/dist/infra/lib/autonomy/AuditStore.d.ts +0 -63
  262. package/dist/infra/lib/autonomy/AuditStore.d.ts.map +0 -1
  263. package/dist/infra/lib/autonomy/AuditStore.js +0 -185
  264. package/dist/infra/lib/autonomy/AuditStore.js.map +0 -1
  265. package/dist/infra/lib/autonomy/AutonomyConfig.d.ts +0 -84
  266. package/dist/infra/lib/autonomy/AutonomyConfig.d.ts.map +0 -1
  267. package/dist/infra/lib/autonomy/AutonomyConfig.js +0 -49
  268. package/dist/infra/lib/autonomy/AutonomyConfig.js.map +0 -1
  269. package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts +0 -78
  270. package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts.map +0 -1
  271. package/dist/infra/lib/autonomy/AutonomyOrchestrator.js +0 -246
  272. package/dist/infra/lib/autonomy/AutonomyOrchestrator.js.map +0 -1
  273. package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts +0 -36
  274. package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts.map +0 -1
  275. package/dist/infra/lib/autonomy/BackgroundMonitor.js +0 -138
  276. package/dist/infra/lib/autonomy/BackgroundMonitor.js.map +0 -1
  277. package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts +0 -56
  278. package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts.map +0 -1
  279. package/dist/infra/lib/autonomy/CollaborationProtocol.js +0 -122
  280. package/dist/infra/lib/autonomy/CollaborationProtocol.js.map +0 -1
  281. package/dist/infra/lib/autonomy/ConfirmationManager.d.ts +0 -42
  282. package/dist/infra/lib/autonomy/ConfirmationManager.d.ts.map +0 -1
  283. package/dist/infra/lib/autonomy/ConfirmationManager.js +0 -200
  284. package/dist/infra/lib/autonomy/ConfirmationManager.js.map +0 -1
  285. package/dist/infra/lib/autonomy/ConfirmationStore.d.ts +0 -55
  286. package/dist/infra/lib/autonomy/ConfirmationStore.d.ts.map +0 -1
  287. package/dist/infra/lib/autonomy/ConfirmationStore.js +0 -130
  288. package/dist/infra/lib/autonomy/ConfirmationStore.js.map +0 -1
  289. package/dist/infra/lib/autonomy/EventBus.d.ts +0 -20
  290. package/dist/infra/lib/autonomy/EventBus.d.ts.map +0 -1
  291. package/dist/infra/lib/autonomy/EventBus.js +0 -119
  292. package/dist/infra/lib/autonomy/EventBus.js.map +0 -1
  293. package/dist/infra/lib/autonomy/EventOutbox.d.ts +0 -32
  294. package/dist/infra/lib/autonomy/EventOutbox.d.ts.map +0 -1
  295. package/dist/infra/lib/autonomy/EventOutbox.js +0 -152
  296. package/dist/infra/lib/autonomy/EventOutbox.js.map +0 -1
  297. package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts +0 -24
  298. package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts.map +0 -1
  299. package/dist/infra/lib/autonomy/NotificationDispatcher.js +0 -112
  300. package/dist/infra/lib/autonomy/NotificationDispatcher.js.map +0 -1
  301. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +0 -76
  302. package/dist/infra/lib/autonomy/PolicyEngine.d.ts.map +0 -1
  303. package/dist/infra/lib/autonomy/PolicyEngine.js +0 -208
  304. package/dist/infra/lib/autonomy/PolicyEngine.js.map +0 -1
  305. package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts +0 -61
  306. package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts.map +0 -1
  307. package/dist/infra/lib/autonomy/ProactiveAnalyzer.js +0 -236
  308. package/dist/infra/lib/autonomy/ProactiveAnalyzer.js.map +0 -1
  309. package/dist/infra/lib/autonomy/RiskClassifier.d.ts +0 -35
  310. package/dist/infra/lib/autonomy/RiskClassifier.d.ts.map +0 -1
  311. package/dist/infra/lib/autonomy/RiskClassifier.js +0 -147
  312. package/dist/infra/lib/autonomy/RiskClassifier.js.map +0 -1
  313. package/dist/infra/lib/autonomy/SecuritySentinel.d.ts +0 -51
  314. package/dist/infra/lib/autonomy/SecuritySentinel.d.ts.map +0 -1
  315. package/dist/infra/lib/autonomy/SecuritySentinel.js +0 -162
  316. package/dist/infra/lib/autonomy/SecuritySentinel.js.map +0 -1
  317. package/dist/infra/lib/autonomy/SuggestionStore.d.ts +0 -54
  318. package/dist/infra/lib/autonomy/SuggestionStore.d.ts.map +0 -1
  319. package/dist/infra/lib/autonomy/SuggestionStore.js +0 -144
  320. package/dist/infra/lib/autonomy/SuggestionStore.js.map +0 -1
  321. package/dist/infra/lib/autonomy/TaskDecomposer.d.ts +0 -38
  322. package/dist/infra/lib/autonomy/TaskDecomposer.d.ts.map +0 -1
  323. package/dist/infra/lib/autonomy/TaskDecomposer.js +0 -175
  324. package/dist/infra/lib/autonomy/TaskDecomposer.js.map +0 -1
  325. package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts +0 -2
  326. package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts.map +0 -1
  327. package/dist/infra/lib/autonomy/__tests__/audit-store.test.js +0 -198
  328. package/dist/infra/lib/autonomy/__tests__/audit-store.test.js.map +0 -1
  329. package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts +0 -2
  330. package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts.map +0 -1
  331. package/dist/infra/lib/autonomy/__tests__/event-bus.test.js +0 -225
  332. package/dist/infra/lib/autonomy/__tests__/event-bus.test.js.map +0 -1
  333. package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts +0 -2
  334. package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts.map +0 -1
  335. package/dist/infra/lib/autonomy/__tests__/event-core.test.js +0 -194
  336. package/dist/infra/lib/autonomy/__tests__/event-core.test.js.map +0 -1
  337. package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts +0 -2
  338. package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts.map +0 -1
  339. package/dist/infra/lib/autonomy/__tests__/governance.test.js +0 -540
  340. package/dist/infra/lib/autonomy/__tests__/governance.test.js.map +0 -1
  341. package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts +0 -2
  342. package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts.map +0 -1
  343. package/dist/infra/lib/autonomy/__tests__/integration.test.js +0 -480
  344. package/dist/infra/lib/autonomy/__tests__/integration.test.js.map +0 -1
  345. package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts +0 -2
  346. package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts.map +0 -1
  347. package/dist/infra/lib/autonomy/__tests__/proactive.test.js +0 -410
  348. package/dist/infra/lib/autonomy/__tests__/proactive.test.js.map +0 -1
  349. package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts +0 -2
  350. package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts.map +0 -1
  351. package/dist/infra/lib/autonomy/__tests__/sentinel.test.js +0 -486
  352. package/dist/infra/lib/autonomy/__tests__/sentinel.test.js.map +0 -1
  353. package/dist/infra/lib/autonomy/index.d.ts +0 -18
  354. package/dist/infra/lib/autonomy/index.d.ts.map +0 -1
  355. package/dist/infra/lib/autonomy/index.js +0 -22
  356. package/dist/infra/lib/autonomy/index.js.map +0 -1
  357. package/dist/infra/lib/autonomy/schemas.d.ts +0 -317
  358. package/dist/infra/lib/autonomy/schemas.d.ts.map +0 -1
  359. package/dist/infra/lib/autonomy/schemas.js +0 -90
  360. package/dist/infra/lib/autonomy/schemas.js.map +0 -1
  361. package/dist/infra/lib/claude/index.d.ts +0 -5
  362. package/dist/infra/lib/claude/index.d.ts.map +0 -1
  363. package/dist/infra/lib/claude/index.js +0 -5
  364. package/dist/infra/lib/claude/index.js.map +0 -1
  365. package/dist/infra/lib/claude/storage.d.ts +0 -12
  366. package/dist/infra/lib/claude/storage.d.ts.map +0 -1
  367. package/dist/infra/lib/claude/storage.js +0 -54
  368. package/dist/infra/lib/claude/storage.js.map +0 -1
  369. package/dist/infra/lib/gemini/auth.d.ts +0 -18
  370. package/dist/infra/lib/gemini/auth.d.ts.map +0 -1
  371. package/dist/infra/lib/gemini/auth.js +0 -32
  372. package/dist/infra/lib/gemini/auth.js.map +0 -1
  373. package/dist/infra/lib/gemini/capabilities.d.ts +0 -28
  374. package/dist/infra/lib/gemini/capabilities.d.ts.map +0 -1
  375. package/dist/infra/lib/gemini/capabilities.js +0 -178
  376. package/dist/infra/lib/gemini/capabilities.js.map +0 -1
  377. package/dist/infra/lib/gemini/chat.d.ts +0 -35
  378. package/dist/infra/lib/gemini/chat.d.ts.map +0 -1
  379. package/dist/infra/lib/gemini/chat.js +0 -161
  380. package/dist/infra/lib/gemini/chat.js.map +0 -1
  381. package/dist/infra/lib/gemini/completion.d.ts +0 -12
  382. package/dist/infra/lib/gemini/completion.d.ts.map +0 -1
  383. package/dist/infra/lib/gemini/completion.js +0 -13
  384. package/dist/infra/lib/gemini/completion.js.map +0 -1
  385. package/dist/infra/lib/gemini/constants.d.ts +0 -8
  386. package/dist/infra/lib/gemini/constants.d.ts.map +0 -1
  387. package/dist/infra/lib/gemini/constants.js +0 -11
  388. package/dist/infra/lib/gemini/constants.js.map +0 -1
  389. package/dist/infra/lib/gemini/index.d.ts +0 -13
  390. package/dist/infra/lib/gemini/index.d.ts.map +0 -1
  391. package/dist/infra/lib/gemini/index.js +0 -12
  392. package/dist/infra/lib/gemini/index.js.map +0 -1
  393. package/dist/infra/lib/gemini/models.d.ts +0 -11
  394. package/dist/infra/lib/gemini/models.d.ts.map +0 -1
  395. package/dist/infra/lib/gemini/models.js +0 -38
  396. package/dist/infra/lib/gemini/models.js.map +0 -1
  397. package/dist/infra/lib/gemini/orchestration.d.ts +0 -33
  398. package/dist/infra/lib/gemini/orchestration.d.ts.map +0 -1
  399. package/dist/infra/lib/gemini/orchestration.js +0 -62
  400. package/dist/infra/lib/gemini/orchestration.js.map +0 -1
  401. package/dist/infra/lib/gemini/types.d.ts +0 -115
  402. package/dist/infra/lib/gemini/types.d.ts.map +0 -1
  403. package/dist/infra/lib/gemini/types.js +0 -5
  404. package/dist/infra/lib/gemini/types.js.map +0 -1
  405. package/dist/infra/orchestrator/AgentAnnouncer.d.ts +0 -64
  406. package/dist/infra/orchestrator/AgentAnnouncer.d.ts.map +0 -1
  407. package/dist/infra/orchestrator/AgentAnnouncer.js +0 -127
  408. package/dist/infra/orchestrator/AgentAnnouncer.js.map +0 -1
  409. package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts +0 -5
  410. package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts.map +0 -1
  411. package/dist/infra/orchestrator/AgentAnnouncer.test.js +0 -119
  412. package/dist/infra/orchestrator/AgentAnnouncer.test.js.map +0 -1
  413. package/dist/infra/orchestrator/AgentExecutor.d.ts +0 -22
  414. package/dist/infra/orchestrator/AgentExecutor.d.ts.map +0 -1
  415. package/dist/infra/orchestrator/AgentExecutor.js +0 -272
  416. package/dist/infra/orchestrator/AgentExecutor.js.map +0 -1
  417. package/dist/infra/orchestrator/AgentManager.d.ts +0 -72
  418. package/dist/infra/orchestrator/AgentManager.d.ts.map +0 -1
  419. package/dist/infra/orchestrator/AgentManager.js +0 -183
  420. package/dist/infra/orchestrator/AgentManager.js.map +0 -1
  421. package/dist/infra/orchestrator/AgentManifestCache.d.ts +0 -54
  422. package/dist/infra/orchestrator/AgentManifestCache.d.ts.map +0 -1
  423. package/dist/infra/orchestrator/AgentManifestCache.js +0 -191
  424. package/dist/infra/orchestrator/AgentManifestCache.js.map +0 -1
  425. package/dist/infra/orchestrator/AgentRegistry.d.ts +0 -76
  426. package/dist/infra/orchestrator/AgentRegistry.d.ts.map +0 -1
  427. package/dist/infra/orchestrator/AgentRegistry.js +0 -217
  428. package/dist/infra/orchestrator/AgentRegistry.js.map +0 -1
  429. package/dist/infra/orchestrator/AgentRegistry.test.d.ts +0 -5
  430. package/dist/infra/orchestrator/AgentRegistry.test.d.ts.map +0 -1
  431. package/dist/infra/orchestrator/AgentRegistry.test.js +0 -122
  432. package/dist/infra/orchestrator/AgentRegistry.test.js.map +0 -1
  433. package/dist/infra/orchestrator/BackgroundManager.d.ts +0 -128
  434. package/dist/infra/orchestrator/BackgroundManager.d.ts.map +0 -1
  435. package/dist/infra/orchestrator/BackgroundManager.js +0 -620
  436. package/dist/infra/orchestrator/BackgroundManager.js.map +0 -1
  437. package/dist/infra/orchestrator/BackgroundManager.test.d.ts +0 -6
  438. package/dist/infra/orchestrator/BackgroundManager.test.d.ts.map +0 -1
  439. package/dist/infra/orchestrator/BackgroundManager.test.js +0 -162
  440. package/dist/infra/orchestrator/BackgroundManager.test.js.map +0 -1
  441. package/dist/infra/orchestrator/CheckpointManager.d.ts +0 -54
  442. package/dist/infra/orchestrator/CheckpointManager.d.ts.map +0 -1
  443. package/dist/infra/orchestrator/CheckpointManager.js +0 -121
  444. package/dist/infra/orchestrator/CheckpointManager.js.map +0 -1
  445. package/dist/infra/orchestrator/CodexAgentRuntime.d.ts +0 -12
  446. package/dist/infra/orchestrator/CodexAgentRuntime.d.ts.map +0 -1
  447. package/dist/infra/orchestrator/CodexAgentRuntime.js +0 -94
  448. package/dist/infra/orchestrator/CodexAgentRuntime.js.map +0 -1
  449. package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts +0 -2
  450. package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts.map +0 -1
  451. package/dist/infra/orchestrator/CodexAgentRuntime.test.js +0 -37
  452. package/dist/infra/orchestrator/CodexAgentRuntime.test.js.map +0 -1
  453. package/dist/infra/orchestrator/LLMCluster.d.ts +0 -82
  454. package/dist/infra/orchestrator/LLMCluster.d.ts.map +0 -1
  455. package/dist/infra/orchestrator/LLMCluster.js +0 -146
  456. package/dist/infra/orchestrator/LLMCluster.js.map +0 -1
  457. package/dist/infra/orchestrator/MultiLlmResearch.d.ts +0 -31
  458. package/dist/infra/orchestrator/MultiLlmResearch.d.ts.map +0 -1
  459. package/dist/infra/orchestrator/MultiLlmResearch.js +0 -160
  460. package/dist/infra/orchestrator/MultiLlmResearch.js.map +0 -1
  461. package/dist/infra/orchestrator/PhasePipeline.d.ts +0 -122
  462. package/dist/infra/orchestrator/PhasePipeline.d.ts.map +0 -1
  463. package/dist/infra/orchestrator/PhasePipeline.js +0 -385
  464. package/dist/infra/orchestrator/PhasePipeline.js.map +0 -1
  465. package/dist/infra/orchestrator/PhaseResultStore.d.ts +0 -39
  466. package/dist/infra/orchestrator/PhaseResultStore.d.ts.map +0 -1
  467. package/dist/infra/orchestrator/PhaseResultStore.js +0 -151
  468. package/dist/infra/orchestrator/PhaseResultStore.js.map +0 -1
  469. package/dist/infra/orchestrator/SessionStore.d.ts +0 -40
  470. package/dist/infra/orchestrator/SessionStore.d.ts.map +0 -1
  471. package/dist/infra/orchestrator/SessionStore.js +0 -116
  472. package/dist/infra/orchestrator/SessionStore.js.map +0 -1
  473. package/dist/infra/orchestrator/SmartRouter.d.ts +0 -90
  474. package/dist/infra/orchestrator/SmartRouter.d.ts.map +0 -1
  475. package/dist/infra/orchestrator/SmartRouter.js +0 -277
  476. package/dist/infra/orchestrator/SmartRouter.js.map +0 -1
  477. package/dist/infra/orchestrator/SmartRouter.test.d.ts +0 -5
  478. package/dist/infra/orchestrator/SmartRouter.test.d.ts.map +0 -1
  479. package/dist/infra/orchestrator/SmartRouter.test.js +0 -484
  480. package/dist/infra/orchestrator/SmartRouter.test.js.map +0 -1
  481. package/dist/infra/orchestrator/SwarmOrchestrator.d.ts +0 -143
  482. package/dist/infra/orchestrator/SwarmOrchestrator.d.ts.map +0 -1
  483. package/dist/infra/orchestrator/SwarmOrchestrator.js +0 -378
  484. package/dist/infra/orchestrator/SwarmOrchestrator.js.map +0 -1
  485. package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts +0 -5
  486. package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts.map +0 -1
  487. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +0 -95
  488. package/dist/infra/orchestrator/SwarmOrchestrator.test.js.map +0 -1
  489. package/dist/infra/orchestrator/agentDiscovery.d.ts +0 -26
  490. package/dist/infra/orchestrator/agentDiscovery.d.ts.map +0 -1
  491. package/dist/infra/orchestrator/agentDiscovery.js +0 -175
  492. package/dist/infra/orchestrator/agentDiscovery.js.map +0 -1
  493. package/dist/infra/orchestrator/backgroundAgent.d.ts +0 -9
  494. package/dist/infra/orchestrator/backgroundAgent.d.ts.map +0 -1
  495. package/dist/infra/orchestrator/backgroundAgent.js +0 -10
  496. package/dist/infra/orchestrator/backgroundAgent.js.map +0 -1
  497. package/dist/infra/orchestrator/index.d.ts +0 -207
  498. package/dist/infra/orchestrator/index.d.ts.map +0 -1
  499. package/dist/infra/orchestrator/index.js +0 -362
  500. package/dist/infra/orchestrator/index.js.map +0 -1
  501. package/dist/infra/orchestrator/orchestrator.d.ts +0 -60
  502. package/dist/infra/orchestrator/orchestrator.d.ts.map +0 -1
  503. package/dist/infra/orchestrator/orchestrator.js +0 -214
  504. package/dist/infra/orchestrator/orchestrator.js.map +0 -1
  505. package/dist/infra/orchestrator/parallelResearch.d.ts +0 -27
  506. package/dist/infra/orchestrator/parallelResearch.d.ts.map +0 -1
  507. package/dist/infra/orchestrator/parallelResearch.js +0 -285
  508. package/dist/infra/orchestrator/parallelResearch.js.map +0 -1
  509. package/dist/infra/orchestrator/types.d.ts +0 -205
  510. package/dist/infra/orchestrator/types.d.ts.map +0 -1
  511. package/dist/infra/orchestrator/types.js +0 -87
  512. package/dist/infra/orchestrator/types.js.map +0 -1
  513. package/dist/infra/orchestrator/types.test.d.ts +0 -2
  514. package/dist/infra/orchestrator/types.test.d.ts.map +0 -1
  515. package/dist/infra/orchestrator/types.test.js +0 -57
  516. package/dist/infra/orchestrator/types.test.js.map +0 -1
  517. package/dist/tools/semantic/analyzeDependencyGraph.d.ts +0 -12
  518. package/dist/tools/semantic/analyzeDependencyGraph.d.ts.map +0 -1
  519. package/dist/tools/semantic/analyzeDependencyGraph.js +0 -359
  520. package/dist/tools/semantic/analyzeDependencyGraph.js.map +0 -1
  521. package/dist/tools/semantic/astGrep.d.ts +0 -25
  522. package/dist/tools/semantic/astGrep.d.ts.map +0 -1
  523. package/dist/tools/semantic/astGrep.js +0 -324
  524. package/dist/tools/semantic/astGrep.js.map +0 -1
  525. package/dist/tools/semantic/astGrep.test.d.ts +0 -2
  526. package/dist/tools/semantic/astGrep.test.d.ts.map +0 -1
  527. package/dist/tools/semantic/astGrep.test.js +0 -74
  528. package/dist/tools/semantic/astGrep.test.js.map +0 -1
  529. package/dist/tools/semantic/findReferences.d.ts +0 -9
  530. package/dist/tools/semantic/findReferences.d.ts.map +0 -1
  531. package/dist/tools/semantic/findReferences.js +0 -200
  532. package/dist/tools/semantic/findReferences.js.map +0 -1
  533. package/dist/tools/semantic/findSymbol.d.ts +0 -8
  534. package/dist/tools/semantic/findSymbol.d.ts.map +0 -1
  535. package/dist/tools/semantic/findSymbol.js +0 -204
  536. package/dist/tools/semantic/findSymbol.js.map +0 -1
  537. package/dist/tools/semantic/index.d.ts +0 -9
  538. package/dist/tools/semantic/index.d.ts.map +0 -1
  539. package/dist/tools/semantic/index.js +0 -11
  540. package/dist/tools/semantic/index.js.map +0 -1
  541. package/dist/tools/semantic/lsp.d.ts +0 -68
  542. package/dist/tools/semantic/lsp.d.ts.map +0 -1
  543. package/dist/tools/semantic/lsp.js +0 -561
  544. package/dist/tools/semantic/lsp.js.map +0 -1
  545. package/dist/tools/spec/e2eTestGenerator.d.ts +0 -61
  546. package/dist/tools/spec/e2eTestGenerator.d.ts.map +0 -1
  547. package/dist/tools/spec/e2eTestGenerator.js +0 -255
  548. package/dist/tools/spec/e2eTestGenerator.js.map +0 -1
  549. package/dist/tools/spec/specVersioning.d.ts +0 -76
  550. package/dist/tools/spec/specVersioning.d.ts.map +0 -1
  551. package/dist/tools/spec/specVersioning.js +0 -236
  552. package/dist/tools/spec/specVersioning.js.map +0 -1
  553. package/hooks/scripts/__tests__/keyword-detector.test.js +0 -242
  554. package/hooks/scripts/keyword-detector.js +0 -226
  555. package/skills/characterization-test/SKILL.md +0 -209
  556. package/skills/characterization-test/agents/behavior-capturer.md +0 -50
  557. package/skills/characterization-test/agents/coverage-checker.md +0 -54
  558. package/skills/characterization-test/agents/reporter.md +0 -50
  559. package/skills/characterization-test/agents/test-writer.md +0 -49
  560. package/skills/characterization-test/rubrics/coverage-criteria.md +0 -53
  561. package/skills/characterization-test/templates/test-template.ts +0 -101
  562. package/skills/claude-md-guide/SKILL.md +0 -353
  563. package/skills/claude-md-guide/rubrics/anti-patterns.md +0 -88
  564. package/skills/design-audit/SKILL.md +0 -154
  565. package/skills/design-critique/SKILL.md +0 -140
  566. package/skills/design-distill/SKILL.md +0 -131
  567. package/skills/design-normalize/SKILL.md +0 -135
  568. package/skills/design-polish/SKILL.md +0 -132
  569. package/skills/figma-convert/SKILL.md +0 -236
  570. package/skills/figma-extract/SKILL.md +0 -242
  571. package/skills/interview/SKILL.md +0 -358
  572. package/skills/interview/checklists/api.md +0 -101
  573. package/skills/interview/checklists/feature.md +0 -88
  574. package/skills/interview/checklists/library.md +0 -95
  575. package/skills/interview/checklists/mobile.md +0 -89
  576. package/skills/interview/checklists/webapp.md +0 -97
  577. package/skills/interview/checklists/website.md +0 -99
  578. package/skills/plan/SKILL.md +0 -254
  579. package/skills/rob-pike/SKILL.md +0 -66
  580. package/skills/spec/references/askuser-examples.md +0 -57
  581. package/skills/spec/references/example-session.md +0 -87
  582. package/skills/spec/references/templates.md +0 -194
  583. package/skills/spec-review/SKILL.md +0 -725
  584. package/skills/systematic-debugging/SKILL.md +0 -142
  585. package/skills/techdebt/SKILL.md +0 -126
  586. package/skills/techdebt/agents/analyzer.md +0 -50
  587. package/skills/techdebt/agents/fixer.md +0 -41
  588. package/skills/techdebt/agents/reviewer.md +0 -47
  589. package/skills/techdebt/agents/scanner.md +0 -44
  590. package/skills/techdebt/orchestrator.md +0 -72
  591. package/skills/techdebt/rubrics/severity.md +0 -51
  592. package/skills/techdebt/scripts/scan.js +0 -90
  593. package/skills/techdebt/templates/report.md +0 -86
  594. package/skills/typescript-advanced-types/SKILL.md +0 -68
  595. package/skills/typescript-advanced-types/rubrics/type-patterns.md +0 -109
  596. package/skills/yagni-ladder/SKILL.md +0 -90
  597. /package/skills/{claude-md-guide → agents-md}/templates/claude-md.md +0 -0
  598. /package/skills/{design-polish → design-refine}/rubrics/polish-checklist.md +0 -0
  599. /package/skills/{design-normalize → design-refine}/rubrics/token-naming.md +0 -0
  600. /package/skills/{design-distill → design-refine}/templates/design-system.md +0 -0
  601. /package/skills/{design-audit → design-review}/agents/scorer.md +0 -0
  602. /package/skills/{design-audit → design-review}/rubrics/ai-slop-patterns.md +0 -0
  603. /package/skills/{design-audit → design-review}/rubrics/scoring.md +0 -0
  604. /package/skills/{design-critique → design-review}/rubrics/ux-heuristics.md +0 -0
  605. /package/skills/{figma-convert → figma}/rubrics/conversion-rules.md +0 -0
  606. /package/skills/{figma-extract → figma}/rubrics/image-rules.md +0 -0
  607. /package/skills/{figma-convert → figma}/templates/component.md +0 -0
@@ -1,620 +0,0 @@
1
- /**
2
- * BackgroundManager - Fire-and-forget 패턴 기반 백그라운드 에이전트 매니저
3
- */
4
- import { CONCURRENCY } from '../lib/constants.js';
5
- import { warnLog } from '../lib/utils.js';
6
- import { launchBackgroundAgent } from './AgentExecutor.js';
7
- import { getModelOverride } from '../lib/config/GlobalConfigManager.js';
8
- import { agentAnnouncer } from './AgentAnnouncer.js';
9
- import { AgentRegistry } from './AgentRegistry.js';
10
- // ============================================
11
- // Error Types (SPEC Error Taxonomy)
12
- // ============================================
13
- /** 큐 용량 초과 에러 */
14
- export class QueueOverflowError extends Error {
15
- constructor(queueSize, maxSize) {
16
- super(`Queue overflow: ${queueSize}/${maxSize}. Retry later.`);
17
- this.name = 'QueueOverflowError';
18
- }
19
- }
20
- /** 개별 태스크 타임아웃 에러 */
21
- export class TaskTimeoutError extends Error {
22
- constructor(taskId, timeout) {
23
- super(`Task "${taskId}" exceeded timeout: ${timeout}ms`);
24
- this.name = 'TaskTimeoutError';
25
- }
26
- }
27
- /** 전체 파이프라인 타임아웃 에러 */
28
- export class PipelineTimeoutError extends Error {
29
- constructor(timeout) {
30
- super(`Pipeline exceeded timeout: ${timeout}ms`);
31
- this.name = 'PipelineTimeoutError';
32
- }
33
- }
34
- /** Agent 실행 실패 에러 */
35
- export class AgentExecutionError extends Error {
36
- constructor(agentName, reason) {
37
- super(`Agent "${agentName}" execution failed: ${reason}`);
38
- this.name = 'AgentExecutionError';
39
- }
40
- }
41
- // ============================================
42
- // ConcurrencyManager - 동시 실행 제한 관리
43
- // ============================================
44
- class ConcurrencyManager {
45
- runningByModel = new Map();
46
- runningByProvider = new Map();
47
- /** 실행 가능 여부 확인 */
48
- canRun(model, provider) {
49
- const modelLimit = this.getModelLimit(model);
50
- const providerLimit = this.getProviderLimit(provider);
51
- const currentModel = this.runningByModel.get(model) || 0;
52
- const currentProvider = this.runningByProvider.get(provider) || 0;
53
- return currentModel < modelLimit && currentProvider < providerLimit;
54
- }
55
- /** 실행 시작 (슬롯 획득) */
56
- acquire(model, provider) {
57
- const currentModel = this.runningByModel.get(model) || 0;
58
- const currentProvider = this.runningByProvider.get(provider) || 0;
59
- this.runningByModel.set(model, currentModel + 1);
60
- this.runningByProvider.set(provider, currentProvider + 1);
61
- }
62
- /** 실행 종료 (슬롯 반환) */
63
- release(model, provider) {
64
- const currentModel = this.runningByModel.get(model) || 0;
65
- const currentProvider = this.runningByProvider.get(provider) || 0;
66
- if (currentModel > 0)
67
- this.runningByModel.set(model, currentModel - 1);
68
- if (currentProvider > 0)
69
- this.runningByProvider.set(provider, currentProvider - 1);
70
- }
71
- /** 모델별 제한 조회 */
72
- getModelLimit(model) {
73
- return CONCURRENCY.MODEL_LIMITS[model] ?? CONCURRENCY.MODEL_LIMITS['default'];
74
- }
75
- /** 프로바이더별 제한 조회 */
76
- getProviderLimit(provider) {
77
- return CONCURRENCY.PROVIDER_LIMITS[provider] ?? CONCURRENCY.PROVIDER_LIMITS['default'];
78
- }
79
- /** 현재 상태 조회 */
80
- getStatus() {
81
- return {
82
- byModel: Object.fromEntries(this.runningByModel),
83
- byProvider: Object.fromEntries(this.runningByProvider)
84
- };
85
- }
86
- }
87
- // ============================================
88
- // TaskQueue - Bounded Queue with Backpressure
89
- // ============================================
90
- class TaskQueue {
91
- queue = [];
92
- maxSize;
93
- constructor(maxSize = CONCURRENCY.QUEUE_MAX_SIZE) {
94
- this.maxSize = maxSize;
95
- }
96
- /** 큐에 추가 (backpressure 적용) */
97
- enqueue(task) {
98
- if (this.queue.length >= this.maxSize) {
99
- throw new QueueOverflowError(this.queue.length, this.maxSize);
100
- }
101
- this.queue.push(task);
102
- }
103
- /** 다음 대기 중인 태스크 조회 */
104
- peek() {
105
- return this.queue.find(t => t.status === 'pending');
106
- }
107
- /** 다음 대기 중인 태스크 제거 및 반환 */
108
- dequeue() {
109
- const index = this.queue.findIndex(t => t.status === 'pending');
110
- if (index === -1)
111
- return undefined;
112
- return this.queue[index];
113
- }
114
- /** 큐 사이즈 */
115
- get size() {
116
- return this.queue.filter(t => t.status === 'pending').length;
117
- }
118
- /** 전체 태스크 수 */
119
- get totalSize() {
120
- return this.queue.length;
121
- }
122
- /** 큐가 비었는지 확인 */
123
- isEmpty() {
124
- return this.size === 0;
125
- }
126
- /** 큐가 가득 찼는지 확인 */
127
- isFull() {
128
- return this.queue.length >= this.maxSize;
129
- }
130
- /** 태스크 조회 */
131
- get(taskId) {
132
- return this.queue.find(t => t.id === taskId);
133
- }
134
- /** 완료된 태스크 정리 (24시간 후) */
135
- cleanup() {
136
- const cutoff = Date.now() - 24 * 60 * 60 * 1000;
137
- const before = this.queue.length;
138
- this.queue = this.queue.filter(t => {
139
- if (t.status === 'pending' || t.status === 'running')
140
- return true;
141
- return (t.completedAt || t.createdAt) > cutoff;
142
- });
143
- return before - this.queue.length;
144
- }
145
- /** 통계 */
146
- getStats() {
147
- const stats = {
148
- total: this.queue.length,
149
- pending: 0,
150
- running: 0,
151
- stale_canceling: 0,
152
- completed: 0,
153
- failed: 0,
154
- cancelled: 0,
155
- queueSize: this.size,
156
- maxQueueSize: this.maxSize
157
- };
158
- for (const task of this.queue) {
159
- stats[task.status]++;
160
- }
161
- return stats;
162
- }
163
- /** 모든 태스크 */
164
- getAll() {
165
- return [...this.queue];
166
- }
167
- }
168
- // ============================================
169
- // BackgroundManager - 메인 클래스
170
- // ============================================
171
- class BackgroundManagerImpl {
172
- concurrency = new ConcurrencyManager();
173
- taskQueue = new TaskQueue();
174
- tasks = new Map();
175
- processing = false;
176
- cleanupTimer = null;
177
- registry = null;
178
- staleCheckTimer = null;
179
- constructor() {
180
- this.startCleanupTimer();
181
- this.startStaleDetection();
182
- }
183
- /**
184
- * 레지스트리 초기화 (프로젝트 경로가 있을 때만)
185
- */
186
- initRegistry(projectPath) {
187
- try {
188
- this.registry = new AgentRegistry(projectPath);
189
- this.registry.markOrphaned(3600000); // 1시간 이상 running = crashed
190
- }
191
- catch (e) {
192
- warnLog('[BackgroundManager] Registry init failed', e);
193
- }
194
- }
195
- startCleanupTimer() {
196
- if (this.cleanupTimer)
197
- return;
198
- this.cleanupTimer = setInterval(() => {
199
- const cleaned = this.taskQueue.cleanup();
200
- if (cleaned > 0) {
201
- warnLog(`[BackgroundManager] Cleaned up ${cleaned} old tasks`);
202
- }
203
- }, 10 * 60 * 1000); // 10분마다
204
- if (this.cleanupTimer.unref) {
205
- this.cleanupTimer.unref();
206
- }
207
- }
208
- /**
209
- * Stale 감지 타이머 — running 태스크의 무활동 감지
210
- */
211
- startStaleDetection() {
212
- if (this.staleCheckTimer)
213
- return;
214
- this.staleCheckTimer = setInterval(() => {
215
- this.checkStaleRunningTasks();
216
- }, CONCURRENCY.STALE_CHECK_INTERVAL);
217
- if (this.staleCheckTimer.unref) {
218
- this.staleCheckTimer.unref();
219
- }
220
- }
221
- /**
222
- * Running 태스크의 stale 감지 — CAS 패턴 (running → stale_canceling)
223
- */
224
- checkStaleRunningTasks() {
225
- for (const task of this.taskQueue.getAll()) {
226
- if (task.status === 'running' && !task.stale) {
227
- const inactiveMs = Date.now() - task.lastActivity;
228
- if (inactiveMs > CONCURRENCY.ACTIVITY_TIMEOUT) {
229
- task.stale = true;
230
- task.status = 'stale_canceling';
231
- if (task.handle) {
232
- task.handle.cancel();
233
- }
234
- warnLog(`[BackgroundManager] Task ${task.id} stale — no activity for ${inactiveMs}ms`);
235
- }
236
- }
237
- }
238
- }
239
- /**
240
- * Fire-and-forget 방식으로 백그라운드 에이전트 시작
241
- * 즉시 handle 반환 (< 100ms)
242
- */
243
- launch(args) {
244
- const taskId = `task-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
245
- const model = args.model || getModelOverride('claudeBackground') || process.env.CLAUDE_BACKGROUND_MODEL;
246
- const provider = this.extractProvider(model);
247
- const task = {
248
- id: taskId,
249
- args,
250
- status: 'pending',
251
- createdAt: Date.now(),
252
- model,
253
- provider,
254
- retryCount: 0,
255
- lastActivity: Date.now(),
256
- stale: false,
257
- };
258
- try {
259
- this.taskQueue.enqueue(task);
260
- this.tasks.set(taskId, task);
261
- }
262
- catch (error) {
263
- if (error instanceof QueueOverflowError) {
264
- return {
265
- content: [{
266
- type: 'text',
267
- text: `❌ ${error.message}`
268
- }],
269
- taskId,
270
- isError: true
271
- };
272
- }
273
- throw error;
274
- }
275
- // 비동기로 큐 처리 시작 (fire-and-forget)
276
- this.processQueue().catch(err => {
277
- warnLog(`[BackgroundManager] Queue processing error: ${err.message}`);
278
- });
279
- return {
280
- content: [{
281
- type: 'text',
282
- text: `🚀 Task queued: ${taskId}\nAgent: ${args.agentName || 'unnamed'}\nModel: ${model}\nQueue position: ${this.taskQueue.size}\n\nUse poll("${taskId}") to check status.`
283
- }],
284
- taskId
285
- };
286
- }
287
- /**
288
- * 결과 폴링 (비동기)
289
- */
290
- async poll(taskId) {
291
- const task = this.tasks.get(taskId);
292
- if (!task) {
293
- return {
294
- content: [{ type: 'text', text: `Task "${taskId}" not found` }]
295
- };
296
- }
297
- switch (task.status) {
298
- case 'pending':
299
- return {
300
- content: [{
301
- type: 'text',
302
- text: `⏳ Task "${taskId}" is pending\nQueue position: ${this.getQueuePosition(taskId)}`
303
- }],
304
- task
305
- };
306
- case 'running':
307
- return {
308
- content: [{
309
- type: 'text',
310
- text: `🔄 Task "${taskId}" is running\nStarted: ${new Date(task.startedAt).toISOString()}\nLast activity: ${new Date(task.lastActivity).toISOString()}\nStale: ${task.stale}`
311
- }],
312
- task
313
- };
314
- case 'stale_canceling':
315
- return {
316
- content: [{
317
- type: 'text',
318
- text: `⚠️ Task "${taskId}" detected stale, canceling for retry\nLast activity: ${new Date(task.lastActivity).toISOString()}`
319
- }],
320
- task
321
- };
322
- case 'completed':
323
- return {
324
- content: [{
325
- type: 'text',
326
- text: `✅ Task "${taskId}" completed\nDuration: ${this.formatDuration(task)}\n\nResult:\n${task.result?.result || 'No result'}`
327
- }],
328
- task,
329
- result: task.result
330
- };
331
- case 'failed':
332
- return {
333
- content: [{
334
- type: 'text',
335
- text: `❌ Task "${taskId}" failed\nError: ${task.error || 'Unknown error'}`
336
- }],
337
- task
338
- };
339
- case 'cancelled':
340
- return {
341
- content: [{
342
- type: 'text',
343
- text: `🚫 Task "${taskId}" was cancelled`
344
- }],
345
- task
346
- };
347
- }
348
- }
349
- /**
350
- * 태스크 취소
351
- */
352
- cancel(taskId) {
353
- const task = this.tasks.get(taskId);
354
- if (!task) {
355
- return {
356
- content: [{ type: 'text', text: `Task "${taskId}" not found` }]
357
- };
358
- }
359
- if (task.status !== 'pending' && task.status !== 'running') {
360
- return {
361
- content: [{ type: 'text', text: `Task "${taskId}" is already ${task.status}` }]
362
- };
363
- }
364
- if (task.handle) {
365
- task.handle.cancel();
366
- }
367
- task.status = 'cancelled';
368
- task.completedAt = Date.now();
369
- return {
370
- content: [{ type: 'text', text: `Task "${taskId}" cancelled` }]
371
- };
372
- }
373
- /**
374
- * 통계 조회
375
- */
376
- getStats() {
377
- const stats = this.taskQueue.getStats();
378
- const concurrencyStatus = this.concurrency.getStatus();
379
- const announcerStats = agentAnnouncer.getStats();
380
- let text = `## BackgroundManager Stats\n\n`;
381
- text += `**Queue**: ${stats.queueSize}/${stats.maxQueueSize}\n`;
382
- text += `**Total tasks**: ${stats.total}\n`;
383
- text += `- Pending: ${stats.pending}\n`;
384
- text += `- Running: ${stats.running}\n`;
385
- text += `- Completed: ${stats.completed}\n`;
386
- text += `- Failed: ${stats.failed}\n`;
387
- text += `- Cancelled: ${stats.cancelled}\n\n`;
388
- text += `**Agent Stats**:\n`;
389
- text += `- Launched: ${announcerStats.totalLaunched}\n`;
390
- text += `- Completed: ${announcerStats.totalCompleted}\n`;
391
- text += `- Failed: ${announcerStats.totalFailed}\n`;
392
- text += `- Avg Duration: ${Math.round(announcerStats.avgDuration)}ms\n\n`;
393
- text += `**Concurrency**:\n`;
394
- text += `- By Model: ${JSON.stringify(concurrencyStatus.byModel)}\n`;
395
- text += `- By Provider: ${JSON.stringify(concurrencyStatus.byProvider)}\n`;
396
- return {
397
- content: [{ type: 'text', text }],
398
- stats
399
- };
400
- }
401
- /**
402
- * 큐 처리 (내부)
403
- */
404
- async processQueue() {
405
- if (this.processing)
406
- return;
407
- this.processing = true;
408
- try {
409
- // 대기 제한: PIPELINE_TIMEOUT 이내에서만 큐 처리 시도
410
- const deadline = Date.now() + CONCURRENCY.PIPELINE_TIMEOUT;
411
- while (!this.taskQueue.isEmpty()) {
412
- // Stale 감지: running 태스크 순회 (SPEC Phase 1-4)
413
- this.checkStaleRunningTasks();
414
- const task = this.taskQueue.peek();
415
- if (!task)
416
- break;
417
- if (!this.concurrency.canRun(task.model, task.provider)) {
418
- if (Date.now() > deadline) {
419
- warnLog(`[BackgroundManager] Queue processing deadline exceeded — ${this.taskQueue.size} tasks still pending`);
420
- break;
421
- }
422
- await this.sleep(100);
423
- continue;
424
- }
425
- task.status = 'running';
426
- task.startedAt = Date.now();
427
- this.concurrency.acquire(task.model, task.provider);
428
- // Fire-and-forget 실행
429
- this.executeTask(task).catch(err => {
430
- warnLog(`[BackgroundManager] Task ${task.id} error: ${err.message}`);
431
- });
432
- }
433
- }
434
- finally {
435
- this.processing = false;
436
- }
437
- }
438
- /**
439
- * 태스크 실행 (내부) — 실패 시 자동 재시도 (MAX_RETRIES)
440
- */
441
- async executeTask(task) {
442
- const timeout = CONCURRENCY.TASK_TIMEOUT;
443
- const maxRetries = CONCURRENCY.MAX_RETRIES;
444
- const agentName = task.args.agentName || 'unnamed';
445
- // Announce start
446
- agentAnnouncer.announceStart({
447
- taskId: task.id, agentName, model: task.model,
448
- prompt: task.args.prompt || '', timestamp: Date.now(),
449
- });
450
- // Registry record start
451
- try {
452
- this.registry?.recordStart({
453
- id: task.id, taskId: task.id, agentName,
454
- prompt: task.args.prompt, model: task.model,
455
- });
456
- }
457
- catch { /* registry is optional */ }
458
- // onProgress를 래핑하여 activity 갱신 (Phase 1-3)
459
- const originalOnProgress = task.args.onProgress;
460
- const activityTrackingArgs = {
461
- ...task.args,
462
- onProgress: (message) => {
463
- // 의미 있는 활동만 갱신 (system.progress 이벤트 = tool/model 활동)
464
- task.lastActivity = Date.now();
465
- if (originalOnProgress)
466
- originalOnProgress(message);
467
- },
468
- };
469
- while (task.retryCount <= maxRetries) {
470
- // 재시도 시 상태 리셋
471
- if (task.retryCount > 0) {
472
- const delay = CONCURRENCY.RETRY_BASE_DELAY * Math.pow(2, task.retryCount - 1);
473
- warnLog(`[BackgroundManager] Task ${task.id} retry ${task.retryCount}/${maxRetries} after ${delay}ms`);
474
- await this.sleep(delay);
475
- task.status = 'running';
476
- task.handle = undefined;
477
- task.error = undefined;
478
- task.startedAt = Date.now();
479
- task.lastActivity = Date.now();
480
- task.stale = false;
481
- }
482
- let timedOut = false;
483
- const timeoutId = setTimeout(() => {
484
- if (task.status === 'running') {
485
- timedOut = true;
486
- // handle 정리하여 Agent SDK 스트림 종료
487
- if (task.handle) {
488
- task.handle.cancel();
489
- }
490
- warnLog(`[BackgroundManager] Task ${task.id} timed out after ${timeout}ms (attempt ${task.retryCount + 1})`);
491
- }
492
- }, timeout);
493
- try {
494
- const result = await launchBackgroundAgent(activityTrackingArgs);
495
- const handle = result.handle;
496
- if (handle) {
497
- task.handle = handle;
498
- // getResult()에 타임아웃 — 스트림이 hang되면 재시도 가능하도록
499
- const agentResult = await Promise.race([
500
- handle.getResult(),
501
- new Promise((_, reject) => setTimeout(() => reject(new TaskTimeoutError(task.id, timeout)), timeout))
502
- ]);
503
- task.result = agentResult;
504
- task.status = agentResult.success ? 'completed' : 'failed';
505
- if (!agentResult.success) {
506
- task.error = agentResult.error;
507
- }
508
- }
509
- else {
510
- task.status = 'failed';
511
- task.error = 'No handle returned';
512
- }
513
- }
514
- catch (error) {
515
- // handle 정리
516
- if (task.handle) {
517
- task.handle.cancel();
518
- }
519
- task.status = 'failed';
520
- task.error = error instanceof Error ? error.message : String(error);
521
- }
522
- finally {
523
- clearTimeout(timeoutId);
524
- }
525
- // stale 감지 후 cancel된 경우 에러 메시지 보강 (status는 try-catch에서 이미 'failed' 처리)
526
- if (task.stale && task.status === 'failed') {
527
- task.error = task.error || `Stale: no activity for ${CONCURRENCY.ACTIVITY_TIMEOUT}ms`;
528
- }
529
- // 실패가 아닌 경우 (성공/취소) → 재시도 안 함
530
- // SPEC: 태스크가 cancel 도중 자체 완료하면 완료 우선
531
- if (task.status !== 'failed') {
532
- break;
533
- }
534
- // 실패 → 재시도 여부 판단
535
- task.retryCount++;
536
- if (task.retryCount > maxRetries) {
537
- warnLog(`[BackgroundManager] Task ${task.id} exhausted ${maxRetries} retries — giving up`);
538
- break;
539
- }
540
- }
541
- // 최종 정리
542
- task.completedAt = Date.now();
543
- const duration = (task.startedAt && task.completedAt)
544
- ? task.completedAt - task.startedAt : 0;
545
- this.concurrency.release(task.model, task.provider);
546
- // Announce + Registry record
547
- if (task.status === 'completed') {
548
- agentAnnouncer.announceComplete({
549
- taskId: task.id, agentName, success: true, duration, model: task.model,
550
- resultSummary: task.result?.result || '', timestamp: Date.now(),
551
- });
552
- try {
553
- this.registry?.recordComplete(task.id, task.result?.result || '', duration);
554
- }
555
- catch { /* optional */ }
556
- }
557
- else if (task.status === 'failed') {
558
- agentAnnouncer.announceError({
559
- taskId: task.id, agentName, error: task.error || 'Unknown',
560
- retryable: false, duration, timestamp: Date.now(),
561
- });
562
- try {
563
- this.registry?.recordFailure(task.id, task.error || 'Unknown', duration);
564
- }
565
- catch { /* optional */ }
566
- }
567
- // 큐에 대기 중인 태스크가 있으면 계속 처리
568
- if (!this.taskQueue.isEmpty()) {
569
- this.processQueue().catch(() => { });
570
- }
571
- }
572
- extractProvider(model) {
573
- if (!model)
574
- return 'default';
575
- if (model.startsWith('claude'))
576
- return 'claude';
577
- if (model.startsWith('gpt'))
578
- return 'gpt';
579
- if (model.startsWith('antigravity'))
580
- return 'antigravity';
581
- return 'default';
582
- }
583
- getQueuePosition(taskId) {
584
- const all = this.taskQueue.getAll();
585
- let position = 0;
586
- for (const task of all) {
587
- if (task.status === 'pending') {
588
- position++;
589
- if (task.id === taskId)
590
- return position;
591
- }
592
- }
593
- return -1;
594
- }
595
- formatDuration(task) {
596
- if (!task.startedAt || !task.completedAt)
597
- return 'N/A';
598
- const ms = task.completedAt - task.startedAt;
599
- return `${(ms / 1000).toFixed(1)}s`;
600
- }
601
- sleep(ms) {
602
- return new Promise(resolve => setTimeout(resolve, ms));
603
- }
604
- }
605
- // 싱글톤 인스턴스
606
- export const backgroundManager = new BackgroundManagerImpl();
607
- // 편의 함수
608
- export function launch(args) {
609
- return backgroundManager.launch(args);
610
- }
611
- export function poll(taskId) {
612
- return backgroundManager.poll(taskId);
613
- }
614
- export function cancel(taskId) {
615
- return backgroundManager.cancel(taskId);
616
- }
617
- export function getStats() {
618
- return backgroundManager.getStats();
619
- }
620
- //# sourceMappingURL=BackgroundManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BackgroundManager.js","sourceRoot":"","sources":["../../../src/infra/orchestrator/BackgroundManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,+CAA+C;AAC/C,oCAAoC;AACpC,+CAA+C;AAE/C,iBAAiB;AACjB,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,SAAiB,EAAE,OAAe;QAC5C,KAAK,CAAC,mBAAmB,SAAS,IAAI,OAAO,gBAAgB,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,qBAAqB;AACrB,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,MAAc,EAAE,OAAe;QACzC,KAAK,CAAC,SAAS,MAAM,uBAAuB,OAAO,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,uBAAuB;AACvB,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,8BAA8B,OAAO,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,qBAAqB;AACrB,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,SAAiB,EAAE,MAAc;QAC3C,KAAK,CAAC,UAAU,SAAS,uBAAuB,MAAM,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AA0CD,+CAA+C;AAC/C,mCAAmC;AACnC,+CAA+C;AAE/C,MAAM,kBAAkB;IACd,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEtD,kBAAkB;IAClB,MAAM,CAAC,KAAa,EAAE,QAAgB;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO,YAAY,GAAG,UAAU,IAAI,eAAe,GAAG,aAAa,CAAC;IACtE,CAAC;IAED,oBAAoB;IACpB,OAAO,CAAC,KAAa,EAAE,QAAgB;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,oBAAoB;IACpB,OAAO,CAAC,KAAa,EAAE,QAAgB;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,YAAY,GAAG,CAAC;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;QACvE,IAAI,eAAe,GAAG,CAAC;YAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,gBAAgB;IACR,aAAa,CAAC,KAAa;QACjC,OAAO,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAChF,CAAC;IAED,mBAAmB;IACX,gBAAgB,CAAC,QAAgB;QACvC,OAAO,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC;IAED,eAAe;IACf,SAAS;QACP,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;YAChD,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC;SACvD,CAAC;IACJ,CAAC;CACF;AAED,+CAA+C;AAC/C,8CAA8C;AAC9C,+CAA+C;AAE/C,MAAM,SAAS;IACL,KAAK,GAAe,EAAE,CAAC;IACd,OAAO,CAAS;IAEjC,YAAY,UAAkB,WAAW,CAAC,cAAc;QACtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,8BAA8B;IAC9B,OAAO,CAAC,IAAc;QACpB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,sBAAsB;IACtB,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,2BAA2B;IAC3B,OAAO;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAChE,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,YAAY;IACZ,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAC/D,CAAC;IAED,eAAe;IACf,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,iBAAiB;IACjB,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,mBAAmB;IACnB,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC;IAC3C,CAAC;IAED,aAAa;IACb,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,0BAA0B;IAC1B,OAAO;QACL,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACjC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YAClE,OAAO,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,SAAS;IACT,QAAQ;QACN,MAAM,KAAK,GAAe;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACxB,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,eAAe,EAAE,CAAC;YAClB,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,IAAI,CAAC,IAAI;YACpB,YAAY,EAAE,IAAI,CAAC,OAAO;SAC3B,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,aAAa;IACb,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACF;AAED,+CAA+C;AAC/C,6BAA6B;AAC7B,+CAA+C;AAE/C,MAAM,qBAAqB;IACR,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACvC,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAC5B,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,UAAU,GAAG,KAAK,CAAC;IACnB,YAAY,GAA0C,IAAI,CAAC;IAC3D,QAAQ,GAAyB,IAAI,CAAC;IAEtC,eAAe,GAA0C,IAAI,CAAC;IAEtE;QACE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,WAAmB;QAC9B,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B;QAClE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,0CAA0C,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAC9B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACzC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,OAAO,CAAC,kCAAkC,OAAO,YAAY,CAAC,CAAC;YACjE,CAAC;QACH,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ;QAC5B,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB;QACzB,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QACjC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,sBAAsB;QAC5B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;gBAClD,IAAI,UAAU,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC;oBAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBAClB,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC;oBAChC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACvB,CAAC;oBACD,OAAO,CAAC,4BAA4B,IAAI,CAAC,EAAE,4BAA4B,UAAU,IAAI,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,IAAyB;QAC9B,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAwB,CAAC;QACzG,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAa;YACrB,EAAE,EAAE,MAAM;YACV,IAAI;YACJ,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,KAAK;YACL,QAAQ;YACR,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;YACxB,KAAK,EAAE,KAAK;SACb,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;gBACxC,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE;yBAC3B,CAAC;oBACF,MAAM;oBACN,OAAO,EAAE,IAAI;iBACuC,CAAC;YACzD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC9B,OAAO,CAAC,+CAA+C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,mBAAmB,MAAM,YAAY,IAAI,CAAC,SAAS,IAAI,SAAS,YAAY,KAAK,qBAAqB,IAAI,CAAC,SAAS,CAAC,IAAI,iBAAiB,MAAM,qBAAqB;iBAC5K,CAAC;YACF,MAAM;SACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,MAAc;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,aAAa,EAAE,CAAC;aAChE,CAAC;QACJ,CAAC;QAED,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,SAAS;gBACZ,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,WAAW,MAAM,iCAAiC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;yBACxF,CAAC;oBACF,IAAI;iBACL,CAAC;YAEJ,KAAK,SAAS;gBACZ,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,YAAY,MAAM,0BAA0B,IAAI,IAAI,CAAC,IAAI,CAAC,SAAU,CAAC,CAAC,WAAW,EAAE,oBAAoB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,YAAY,IAAI,CAAC,KAAK,EAAE;yBAC/K,CAAC;oBACF,IAAI;iBACL,CAAC;YAEJ,KAAK,iBAAiB;gBACpB,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,YAAY,MAAM,yDAAyD,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,EAAE;yBAC7H,CAAC;oBACF,IAAI;iBACL,CAAC;YAEJ,KAAK,WAAW;gBACd,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,WAAW,MAAM,0BAA0B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,WAAW,EAAE;yBAC/H,CAAC;oBACF,IAAI;oBACJ,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC;YAEJ,KAAK,QAAQ;gBACX,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,WAAW,MAAM,oBAAoB,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE;yBAC3E,CAAC;oBACF,IAAI;iBACL,CAAC;YAEJ,KAAK,WAAW;gBACd,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,YAAY,MAAM,iBAAiB;yBAC1C,CAAC;oBACF,IAAI;iBACL,CAAC;QACN,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAc;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,aAAa,EAAE,CAAC;aAChE,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3D,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,gBAAgB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;aAChF,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE9B,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,aAAa,EAAE,CAAC;SAChE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QACvD,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;QAEjD,IAAI,IAAI,GAAG,gCAAgC,CAAC;QAC5C,IAAI,IAAI,cAAc,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC;QAChE,IAAI,IAAI,oBAAoB,KAAK,CAAC,KAAK,IAAI,CAAC;QAC5C,IAAI,IAAI,cAAc,KAAK,CAAC,OAAO,IAAI,CAAC;QACxC,IAAI,IAAI,cAAc,KAAK,CAAC,OAAO,IAAI,CAAC;QACxC,IAAI,IAAI,gBAAgB,KAAK,CAAC,SAAS,IAAI,CAAC;QAC5C,IAAI,IAAI,aAAa,KAAK,CAAC,MAAM,IAAI,CAAC;QACtC,IAAI,IAAI,gBAAgB,KAAK,CAAC,SAAS,MAAM,CAAC;QAC9C,IAAI,IAAI,oBAAoB,CAAC;QAC7B,IAAI,IAAI,eAAe,cAAc,CAAC,aAAa,IAAI,CAAC;QACxD,IAAI,IAAI,gBAAgB,cAAc,CAAC,cAAc,IAAI,CAAC;QAC1D,IAAI,IAAI,aAAa,cAAc,CAAC,WAAW,IAAI,CAAC;QACpD,IAAI,IAAI,mBAAmB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC;QAC1E,IAAI,IAAI,oBAAoB,CAAC;QAC7B,IAAI,IAAI,eAAe,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;QACrE,IAAI,IAAI,kBAAkB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC;QAE3E,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACjC,KAAK;SACN,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY;QACxB,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC;YACH,wCAAwC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,gBAAgB,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;gBACjC,4CAA4C;gBAC5C,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI;oBAAE,MAAM;gBAEjB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;wBAC1B,OAAO,CAAC,4DAA4D,IAAI,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,CAAC;wBAC/G,MAAM;oBACR,CAAC;oBACD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtB,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEpD,qBAAqB;gBACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACjC,OAAO,CAAC,4BAA4B,IAAI,CAAC,EAAE,WAAW,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,IAAc;QACtC,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC;QACzC,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC;QAEnD,iBAAiB;QACjB,cAAc,CAAC,aAAa,CAAC;YAC3B,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK;YAC7C,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtD,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;gBACzB,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS;gBACvC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK;aAC5C,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC,CAAC,0BAA0B,CAAC,CAAC;QAEtC,2CAA2C;QAC3C,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAChD,MAAM,oBAAoB,GAAwB;YAChD,GAAG,IAAI,CAAC,IAAI;YACZ,UAAU,EAAE,CAAC,OAAe,EAAE,EAAE;gBAC9B,qDAAqD;gBACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC/B,IAAI,kBAAkB;oBAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACtD,CAAC;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,UAAU,IAAI,UAAU,EAAE,CAAC;YACrC,cAAc;YACd,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;gBAC9E,OAAO,CAAC,4BAA4B,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,UAAU,IAAI,UAAU,UAAU,KAAK,IAAI,CAAC,CAAC;gBACvG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;gBACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACrB,CAAC;YAED,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC9B,QAAQ,GAAG,IAAI,CAAC;oBAChB,+BAA+B;oBAC/B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACvB,CAAC;oBACD,OAAO,CAAC,4BAA4B,IAAI,CAAC,EAAE,oBAAoB,OAAO,eAAe,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC/G,CAAC;YACH,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;gBACjE,MAAM,MAAM,GAAI,MAA0D,CAAC,MAAM,CAAC;gBAElF,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;oBACrB,4CAA4C;oBAC5C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;wBACrC,MAAM,CAAC,SAAS,EAAE;wBAClB,IAAI,OAAO,CAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CACrC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAC1E;qBACF,CAAC,CAAC;oBACH,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;oBAC1B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAC3D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;wBACzB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;oBACjC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;oBACvB,IAAI,CAAC,KAAK,GAAG,oBAAoB,CAAC;gBACpC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,YAAY;gBACZ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACvB,CAAC;gBACD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,IAAI,CAAC,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YAED,uEAAuE;YACvE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,0BAA0B,WAAW,CAAC,gBAAgB,IAAI,CAAC;YACxF,CAAC;YAED,8BAA8B;YAC9B,qCAAqC;YACrC,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM;YACR,CAAC;YAED,iBAAiB;YACjB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;gBACjC,OAAO,CAAC,4BAA4B,IAAI,CAAC,EAAE,cAAc,UAAU,sBAAsB,CAAC,CAAC;gBAC3F,MAAM;YACR,CAAC;QACH,CAAC;QAED,QAAQ;QACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC;YACnD,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEpD,6BAA6B;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,cAAc,CAAC,gBAAgB,CAAC;gBAC9B,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK;gBACtE,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aAChE,CAAC,CAAC;YACH,IAAI,CAAC;gBAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QAC/G,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpC,cAAc,CAAC,aAAa,CAAC;gBAC3B,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;gBAC1D,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aAClD,CAAC,CAAC;YACH,IAAI,CAAC;gBAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE,QAAQ,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QAC5G,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,KAAa;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;QAChD,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,OAAO,aAAa,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC9B,QAAQ,EAAE,CAAC;gBACX,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM;oBAAE,OAAO,QAAQ,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAEO,cAAc,CAAC,IAAc;QACnC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QACvD,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7C,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;CACF;AAED,WAAW;AACX,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,qBAAqB,EAAE,CAAC;AAE7D,QAAQ;AACR,MAAM,UAAU,MAAM,CAAC,IAAyB;IAC9C,OAAO,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,MAAc;IACjC,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,MAAc;IACnC,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,iBAAiB,CAAC,QAAQ,EAAE,CAAC;AACtC,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * BackgroundManager Tests
3
- * Fire-and-forget pattern, Concurrency control, TaskQueue
4
- */
5
- export {};
6
- //# sourceMappingURL=BackgroundManager.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BackgroundManager.test.d.ts","sourceRoot":"","sources":["../../../src/infra/orchestrator/BackgroundManager.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}