@su-record/vibe 3.2.64 → 4.0.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 (1417) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +100 -288
  3. package/card.md +9 -0
  4. package/dist/cli.js +584 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/core/check.js +245 -0
  7. package/dist/core/check.js.map +1 -0
  8. package/dist/core/checks/eval.js +66 -0
  9. package/dist/core/checks/eval.js.map +1 -0
  10. package/dist/core/checks/file.js +88 -0
  11. package/dist/core/checks/file.js.map +1 -0
  12. package/dist/core/checks/http.js +48 -0
  13. package/dist/core/checks/http.js.map +1 -0
  14. package/dist/core/checks/run.js +42 -0
  15. package/dist/core/checks/run.js.map +1 -0
  16. package/dist/core/client.js +35 -0
  17. package/dist/core/client.js.map +1 -0
  18. package/dist/core/config.js +30 -0
  19. package/dist/core/config.js.map +1 -0
  20. package/dist/core/errors.js +12 -0
  21. package/dist/core/errors.js.map +1 -0
  22. package/dist/core/github.js +49 -0
  23. package/dist/core/github.js.map +1 -0
  24. package/dist/core/inbox.js +73 -0
  25. package/dist/core/inbox.js.map +1 -0
  26. package/dist/core/intent.js +91 -0
  27. package/dist/core/intent.js.map +1 -0
  28. package/dist/core/knowledge.js +22 -0
  29. package/dist/core/knowledge.js.map +1 -0
  30. package/dist/core/ledger.js +124 -0
  31. package/dist/core/ledger.js.map +1 -0
  32. package/dist/core/paths.js +29 -0
  33. package/dist/core/paths.js.map +1 -0
  34. package/dist/core/profile.js +88 -0
  35. package/dist/core/profile.js.map +1 -0
  36. package/dist/core/regress.js +66 -0
  37. package/dist/core/regress.js.map +1 -0
  38. package/dist/core/research.js +205 -0
  39. package/dist/core/research.js.map +1 -0
  40. package/dist/core/scenarios.js +193 -0
  41. package/dist/core/scenarios.js.map +1 -0
  42. package/dist/core/skills.js +276 -0
  43. package/dist/core/skills.js.map +1 -0
  44. package/dist/core/state.js +70 -0
  45. package/dist/core/state.js.map +1 -0
  46. package/dist/core/store.js +59 -0
  47. package/dist/core/store.js.map +1 -0
  48. package/dist/core/table.js +106 -0
  49. package/dist/core/table.js.map +1 -0
  50. package/dist/core/tokens.js +67 -0
  51. package/dist/core/tokens.js.map +1 -0
  52. package/dist/core/tree.js +97 -0
  53. package/dist/core/tree.js.map +1 -0
  54. package/dist/core/view.js +67 -0
  55. package/dist/core/view.js.map +1 -0
  56. package/dist/install/plugin.js +145 -0
  57. package/dist/install/plugin.js.map +1 -0
  58. package/dist/install/project.js +213 -0
  59. package/dist/install/project.js.map +1 -0
  60. package/hooks/notify.js +92 -0
  61. package/package.json +27 -118
  62. package/skills/vibe/SKILL.md +20 -265
  63. package/skills/vibe.build/SKILL.md +35 -0
  64. package/skills/vibe.discover/SKILL.md +35 -0
  65. package/skills/vibe.handoff/SKILL.md +21 -6
  66. package/skills/vibe.prove/SKILL.md +19 -0
  67. package/skills/vibe.scope/SKILL.md +39 -0
  68. package/.claude-plugin/plugin.json +0 -22
  69. package/.codex-plugin/plugin.json +0 -34
  70. package/.env.example +0 -52
  71. package/CLAUDE.md +0 -239
  72. package/README.en.md +0 -347
  73. package/agents/architect.md +0 -38
  74. package/agents/build-error-resolver.md +0 -46
  75. package/agents/code-reviewer.md +0 -89
  76. package/agents/e2e-tester.md +0 -66
  77. package/agents/event/event-ops.md +0 -61
  78. package/agents/event/event-planner.md +0 -63
  79. package/agents/implementer.md +0 -39
  80. package/agents/security-reviewer.md +0 -56
  81. package/agents/tester.md +0 -53
  82. package/agents/ui/design-reviewer.md +0 -62
  83. package/agents/ui/design-system-gen.md +0 -63
  84. package/dist/cli/auth.d.ts +0 -30
  85. package/dist/cli/auth.d.ts.map +0 -1
  86. package/dist/cli/auth.js +0 -140
  87. package/dist/cli/auth.js.map +0 -1
  88. package/dist/cli/collaborator.d.ts +0 -12
  89. package/dist/cli/collaborator.d.ts.map +0 -1
  90. package/dist/cli/collaborator.js +0 -150
  91. package/dist/cli/collaborator.js.map +0 -1
  92. package/dist/cli/commands/codex-proxy.d.ts +0 -10
  93. package/dist/cli/commands/codex-proxy.d.ts.map +0 -1
  94. package/dist/cli/commands/codex-proxy.js +0 -272
  95. package/dist/cli/commands/codex-proxy.js.map +0 -1
  96. package/dist/cli/commands/config.d.ts +0 -17
  97. package/dist/cli/commands/config.d.ts.map +0 -1
  98. package/dist/cli/commands/config.js +0 -209
  99. package/dist/cli/commands/config.js.map +0 -1
  100. package/dist/cli/commands/evolution.d.ts +0 -16
  101. package/dist/cli/commands/evolution.d.ts.map +0 -1
  102. package/dist/cli/commands/evolution.js +0 -211
  103. package/dist/cli/commands/evolution.js.map +0 -1
  104. package/dist/cli/commands/figma.d.ts +0 -29
  105. package/dist/cli/commands/figma.d.ts.map +0 -1
  106. package/dist/cli/commands/figma.js +0 -147
  107. package/dist/cli/commands/figma.js.map +0 -1
  108. package/dist/cli/commands/index.d.ts +0 -19
  109. package/dist/cli/commands/index.d.ts.map +0 -1
  110. package/dist/cli/commands/index.js +0 -19
  111. package/dist/cli/commands/index.js.map +0 -1
  112. package/dist/cli/commands/info.d.ts +0 -72
  113. package/dist/cli/commands/info.d.ts.map +0 -1
  114. package/dist/cli/commands/info.js +0 -263
  115. package/dist/cli/commands/info.js.map +0 -1
  116. package/dist/cli/commands/init.d.ts +0 -36
  117. package/dist/cli/commands/init.d.ts.map +0 -1
  118. package/dist/cli/commands/init.js +0 -393
  119. package/dist/cli/commands/init.js.map +0 -1
  120. package/dist/cli/commands/llm.d.ts +0 -11
  121. package/dist/cli/commands/llm.d.ts.map +0 -1
  122. package/dist/cli/commands/llm.js +0 -63
  123. package/dist/cli/commands/llm.js.map +0 -1
  124. package/dist/cli/commands/plugin.d.ts +0 -5
  125. package/dist/cli/commands/plugin.d.ts.map +0 -1
  126. package/dist/cli/commands/plugin.js +0 -223
  127. package/dist/cli/commands/plugin.js.map +0 -1
  128. package/dist/cli/commands/remove.d.ts +0 -8
  129. package/dist/cli/commands/remove.d.ts.map +0 -1
  130. package/dist/cli/commands/remove.js +0 -157
  131. package/dist/cli/commands/remove.js.map +0 -1
  132. package/dist/cli/commands/sentinel.d.ts +0 -22
  133. package/dist/cli/commands/sentinel.d.ts.map +0 -1
  134. package/dist/cli/commands/sentinel.js +0 -324
  135. package/dist/cli/commands/sentinel.js.map +0 -1
  136. package/dist/cli/commands/setup.d.ts +0 -9
  137. package/dist/cli/commands/setup.d.ts.map +0 -1
  138. package/dist/cli/commands/setup.js +0 -223
  139. package/dist/cli/commands/setup.js.map +0 -1
  140. package/dist/cli/commands/skills.d.ts +0 -13
  141. package/dist/cli/commands/skills.d.ts.map +0 -1
  142. package/dist/cli/commands/skills.js +0 -117
  143. package/dist/cli/commands/skills.js.map +0 -1
  144. package/dist/cli/commands/slack.d.ts +0 -11
  145. package/dist/cli/commands/slack.d.ts.map +0 -1
  146. package/dist/cli/commands/slack.js +0 -83
  147. package/dist/cli/commands/slack.js.map +0 -1
  148. package/dist/cli/commands/stats.d.ts +0 -13
  149. package/dist/cli/commands/stats.d.ts.map +0 -1
  150. package/dist/cli/commands/stats.js +0 -281
  151. package/dist/cli/commands/stats.js.map +0 -1
  152. package/dist/cli/commands/telegram.d.ts +0 -13
  153. package/dist/cli/commands/telegram.d.ts.map +0 -1
  154. package/dist/cli/commands/telegram.js +0 -236
  155. package/dist/cli/commands/telegram.js.map +0 -1
  156. package/dist/cli/commands/update.d.ts +0 -10
  157. package/dist/cli/commands/update.d.ts.map +0 -1
  158. package/dist/cli/commands/update.js +0 -168
  159. package/dist/cli/commands/update.js.map +0 -1
  160. package/dist/cli/commands/upgrade.d.ts +0 -96
  161. package/dist/cli/commands/upgrade.d.ts.map +0 -1
  162. package/dist/cli/commands/upgrade.js +0 -357
  163. package/dist/cli/commands/upgrade.js.map +0 -1
  164. package/dist/cli/design/design-md-parser.d.ts +0 -25
  165. package/dist/cli/design/design-md-parser.d.ts.map +0 -1
  166. package/dist/cli/design/design-md-parser.js +0 -86
  167. package/dist/cli/design/design-md-parser.js.map +0 -1
  168. package/dist/cli/detect/matcher.d.ts +0 -15
  169. package/dist/cli/detect/matcher.d.ts.map +0 -1
  170. package/dist/cli/detect/matcher.js +0 -278
  171. package/dist/cli/detect/matcher.js.map +0 -1
  172. package/dist/cli/detect/signatures.d.ts +0 -76
  173. package/dist/cli/detect/signatures.d.ts.map +0 -1
  174. package/dist/cli/detect/signatures.js +0 -175
  175. package/dist/cli/detect/signatures.js.map +0 -1
  176. package/dist/cli/detect/workspace.d.ts +0 -7
  177. package/dist/cli/detect/workspace.d.ts.map +0 -1
  178. package/dist/cli/detect/workspace.js +0 -112
  179. package/dist/cli/detect/workspace.js.map +0 -1
  180. package/dist/cli/detect.d.ts +0 -35
  181. package/dist/cli/detect.d.ts.map +0 -1
  182. package/dist/cli/detect.js +0 -213
  183. package/dist/cli/detect.js.map +0 -1
  184. package/dist/cli/generate-release-notes.d.ts +0 -3
  185. package/dist/cli/generate-release-notes.d.ts.map +0 -1
  186. package/dist/cli/generate-release-notes.js +0 -49
  187. package/dist/cli/generate-release-notes.js.map +0 -1
  188. package/dist/cli/index.d.ts +0 -30
  189. package/dist/cli/index.d.ts.map +0 -1
  190. package/dist/cli/index.js +0 -475
  191. package/dist/cli/index.js.map +0 -1
  192. package/dist/cli/llm/antigravity-commands.d.ts +0 -25
  193. package/dist/cli/llm/antigravity-commands.d.ts.map +0 -1
  194. package/dist/cli/llm/antigravity-commands.js +0 -142
  195. package/dist/cli/llm/antigravity-commands.js.map +0 -1
  196. package/dist/cli/llm/claude-commands.d.ts +0 -12
  197. package/dist/cli/llm/claude-commands.d.ts.map +0 -1
  198. package/dist/cli/llm/claude-commands.js +0 -75
  199. package/dist/cli/llm/claude-commands.js.map +0 -1
  200. package/dist/cli/llm/config.d.ts +0 -19
  201. package/dist/cli/llm/config.d.ts.map +0 -1
  202. package/dist/cli/llm/config.js +0 -137
  203. package/dist/cli/llm/config.js.map +0 -1
  204. package/dist/cli/llm/gpt-commands.d.ts +0 -17
  205. package/dist/cli/llm/gpt-commands.d.ts.map +0 -1
  206. package/dist/cli/llm/gpt-commands.js +0 -85
  207. package/dist/cli/llm/gpt-commands.js.map +0 -1
  208. package/dist/cli/llm/help.d.ts +0 -12
  209. package/dist/cli/llm/help.d.ts.map +0 -1
  210. package/dist/cli/llm/help.js +0 -37
  211. package/dist/cli/llm/help.js.map +0 -1
  212. package/dist/cli/llm/index.d.ts +0 -10
  213. package/dist/cli/llm/index.d.ts.map +0 -1
  214. package/dist/cli/llm/index.js +0 -10
  215. package/dist/cli/llm/index.js.map +0 -1
  216. package/dist/cli/llm/model-refresh.d.ts +0 -29
  217. package/dist/cli/llm/model-refresh.d.ts.map +0 -1
  218. package/dist/cli/llm/model-refresh.js +0 -139
  219. package/dist/cli/llm/model-refresh.js.map +0 -1
  220. package/dist/cli/llm/zai-commands.d.ts +0 -15
  221. package/dist/cli/llm/zai-commands.d.ts.map +0 -1
  222. package/dist/cli/llm/zai-commands.js +0 -64
  223. package/dist/cli/llm/zai-commands.js.map +0 -1
  224. package/dist/cli/llm.d.ts +0 -13
  225. package/dist/cli/llm.d.ts.map +0 -1
  226. package/dist/cli/llm.js +0 -13
  227. package/dist/cli/llm.js.map +0 -1
  228. package/dist/cli/postinstall/claude-agents.d.ts +0 -35
  229. package/dist/cli/postinstall/claude-agents.d.ts.map +0 -1
  230. package/dist/cli/postinstall/claude-agents.js +0 -177
  231. package/dist/cli/postinstall/claude-agents.js.map +0 -1
  232. package/dist/cli/postinstall/constants.d.ts +0 -134
  233. package/dist/cli/postinstall/constants.d.ts.map +0 -1
  234. package/dist/cli/postinstall/constants.js +0 -554
  235. package/dist/cli/postinstall/constants.js.map +0 -1
  236. package/dist/cli/postinstall/fs-utils.d.ts +0 -94
  237. package/dist/cli/postinstall/fs-utils.d.ts.map +0 -1
  238. package/dist/cli/postinstall/fs-utils.js +0 -376
  239. package/dist/cli/postinstall/fs-utils.js.map +0 -1
  240. package/dist/cli/postinstall/global-config.d.ts +0 -22
  241. package/dist/cli/postinstall/global-config.d.ts.map +0 -1
  242. package/dist/cli/postinstall/global-config.js +0 -165
  243. package/dist/cli/postinstall/global-config.js.map +0 -1
  244. package/dist/cli/postinstall/inline-skills.d.ts +0 -8
  245. package/dist/cli/postinstall/inline-skills.d.ts.map +0 -1
  246. package/dist/cli/postinstall/inline-skills.js +0 -158
  247. package/dist/cli/postinstall/inline-skills.js.map +0 -1
  248. package/dist/cli/postinstall/main.d.ts +0 -20
  249. package/dist/cli/postinstall/main.d.ts.map +0 -1
  250. package/dist/cli/postinstall/main.js +0 -250
  251. package/dist/cli/postinstall/main.js.map +0 -1
  252. package/dist/cli/postinstall.d.ts +0 -9
  253. package/dist/cli/postinstall.d.ts.map +0 -1
  254. package/dist/cli/postinstall.js +0 -11
  255. package/dist/cli/postinstall.js.map +0 -1
  256. package/dist/cli/prompt.d.ts +0 -28
  257. package/dist/cli/prompt.d.ts.map +0 -1
  258. package/dist/cli/prompt.js +0 -64
  259. package/dist/cli/prompt.js.map +0 -1
  260. package/dist/cli/setup/CodexHooks.d.ts +0 -39
  261. package/dist/cli/setup/CodexHooks.d.ts.map +0 -1
  262. package/dist/cli/setup/CodexHooks.js +0 -73
  263. package/dist/cli/setup/CodexHooks.js.map +0 -1
  264. package/dist/cli/setup/GlobalInstaller.d.ts +0 -10
  265. package/dist/cli/setup/GlobalInstaller.d.ts.map +0 -1
  266. package/dist/cli/setup/GlobalInstaller.js +0 -34
  267. package/dist/cli/setup/GlobalInstaller.js.map +0 -1
  268. package/dist/cli/setup/InstallHome.d.ts +0 -27
  269. package/dist/cli/setup/InstallHome.d.ts.map +0 -1
  270. package/dist/cli/setup/InstallHome.js +0 -105
  271. package/dist/cli/setup/InstallHome.js.map +0 -1
  272. package/dist/cli/setup/LanguageDetector.d.ts +0 -15
  273. package/dist/cli/setup/LanguageDetector.d.ts.map +0 -1
  274. package/dist/cli/setup/LanguageDetector.js +0 -48
  275. package/dist/cli/setup/LanguageDetector.js.map +0 -1
  276. package/dist/cli/setup/LegacyMigration.d.ts +0 -38
  277. package/dist/cli/setup/LegacyMigration.d.ts.map +0 -1
  278. package/dist/cli/setup/LegacyMigration.js +0 -301
  279. package/dist/cli/setup/LegacyMigration.js.map +0 -1
  280. package/dist/cli/setup/NativeDeps.d.ts +0 -29
  281. package/dist/cli/setup/NativeDeps.d.ts.map +0 -1
  282. package/dist/cli/setup/NativeDeps.js +0 -79
  283. package/dist/cli/setup/NativeDeps.js.map +0 -1
  284. package/dist/cli/setup/ProjectSetup.d.ts +0 -105
  285. package/dist/cli/setup/ProjectSetup.d.ts.map +0 -1
  286. package/dist/cli/setup/ProjectSetup.js +0 -694
  287. package/dist/cli/setup/ProjectSetup.js.map +0 -1
  288. package/dist/cli/setup/Provisioner.d.ts +0 -28
  289. package/dist/cli/setup/Provisioner.d.ts.map +0 -1
  290. package/dist/cli/setup/Provisioner.js +0 -215
  291. package/dist/cli/setup/Provisioner.js.map +0 -1
  292. package/dist/cli/setup.d.ts +0 -9
  293. package/dist/cli/setup.d.ts.map +0 -1
  294. package/dist/cli/setup.js +0 -12
  295. package/dist/cli/setup.js.map +0 -1
  296. package/dist/cli/types.d.ts +0 -195
  297. package/dist/cli/types.d.ts.map +0 -1
  298. package/dist/cli/types.js +0 -5
  299. package/dist/cli/types.js.map +0 -1
  300. package/dist/cli/utils/cli-detector.d.ts +0 -35
  301. package/dist/cli/utils/cli-detector.d.ts.map +0 -1
  302. package/dist/cli/utils/cli-detector.js +0 -99
  303. package/dist/cli/utils/cli-detector.js.map +0 -1
  304. package/dist/cli/utils.d.ts +0 -49
  305. package/dist/cli/utils.d.ts.map +0 -1
  306. package/dist/cli/utils.js +0 -137
  307. package/dist/cli/utils.js.map +0 -1
  308. package/dist/infra/lib/AutomationLevel.d.ts +0 -48
  309. package/dist/infra/lib/AutomationLevel.d.ts.map +0 -1
  310. package/dist/infra/lib/AutomationLevel.js +0 -157
  311. package/dist/infra/lib/AutomationLevel.js.map +0 -1
  312. package/dist/infra/lib/ComponentRegistry.d.ts +0 -35
  313. package/dist/infra/lib/ComponentRegistry.d.ts.map +0 -1
  314. package/dist/infra/lib/ComponentRegistry.js +0 -59
  315. package/dist/infra/lib/ComponentRegistry.js.map +0 -1
  316. package/dist/infra/lib/CostAccumulator.d.ts +0 -75
  317. package/dist/infra/lib/CostAccumulator.d.ts.map +0 -1
  318. package/dist/infra/lib/CostAccumulator.js +0 -189
  319. package/dist/infra/lib/CostAccumulator.js.map +0 -1
  320. package/dist/infra/lib/DecisionTracer.d.ts +0 -85
  321. package/dist/infra/lib/DecisionTracer.d.ts.map +0 -1
  322. package/dist/infra/lib/DecisionTracer.js +0 -139
  323. package/dist/infra/lib/DecisionTracer.js.map +0 -1
  324. package/dist/infra/lib/InteractiveCheckpoint.d.ts +0 -75
  325. package/dist/infra/lib/InteractiveCheckpoint.d.ts.map +0 -1
  326. package/dist/infra/lib/InteractiveCheckpoint.js +0 -179
  327. package/dist/infra/lib/InteractiveCheckpoint.js.map +0 -1
  328. package/dist/infra/lib/IterationTracker.d.ts +0 -125
  329. package/dist/infra/lib/IterationTracker.d.ts.map +0 -1
  330. package/dist/infra/lib/IterationTracker.js +0 -444
  331. package/dist/infra/lib/IterationTracker.js.map +0 -1
  332. package/dist/infra/lib/LoopBreaker.d.ts +0 -60
  333. package/dist/infra/lib/LoopBreaker.d.ts.map +0 -1
  334. package/dist/infra/lib/LoopBreaker.js +0 -113
  335. package/dist/infra/lib/LoopBreaker.js.map +0 -1
  336. package/dist/infra/lib/MemoryManager.d.ts +0 -96
  337. package/dist/infra/lib/MemoryManager.d.ts.map +0 -1
  338. package/dist/infra/lib/MemoryManager.js +0 -312
  339. package/dist/infra/lib/MemoryManager.js.map +0 -1
  340. package/dist/infra/lib/ProjectCache.d.ts +0 -28
  341. package/dist/infra/lib/ProjectCache.d.ts.map +0 -1
  342. package/dist/infra/lib/ProjectCache.js +0 -130
  343. package/dist/infra/lib/ProjectCache.js.map +0 -1
  344. package/dist/infra/lib/PythonParser.d.ts +0 -47
  345. package/dist/infra/lib/PythonParser.d.ts.map +0 -1
  346. package/dist/infra/lib/PythonParser.js +0 -268
  347. package/dist/infra/lib/PythonParser.js.map +0 -1
  348. package/dist/infra/lib/SkillFrontmatter.d.ts +0 -70
  349. package/dist/infra/lib/SkillFrontmatter.d.ts.map +0 -1
  350. package/dist/infra/lib/SkillFrontmatter.js +0 -240
  351. package/dist/infra/lib/SkillFrontmatter.js.map +0 -1
  352. package/dist/infra/lib/TaskContext.d.ts +0 -43
  353. package/dist/infra/lib/TaskContext.d.ts.map +0 -1
  354. package/dist/infra/lib/TaskContext.js +0 -84
  355. package/dist/infra/lib/TaskContext.js.map +0 -1
  356. package/dist/infra/lib/VerificationLoop.d.ts +0 -171
  357. package/dist/infra/lib/VerificationLoop.d.ts.map +0 -1
  358. package/dist/infra/lib/VerificationLoop.js +0 -308
  359. package/dist/infra/lib/VerificationLoop.js.map +0 -1
  360. package/dist/infra/lib/antigravity/auth.d.ts +0 -18
  361. package/dist/infra/lib/antigravity/auth.d.ts.map +0 -1
  362. package/dist/infra/lib/antigravity/auth.js +0 -32
  363. package/dist/infra/lib/antigravity/auth.js.map +0 -1
  364. package/dist/infra/lib/antigravity/capabilities.d.ts +0 -28
  365. package/dist/infra/lib/antigravity/capabilities.d.ts.map +0 -1
  366. package/dist/infra/lib/antigravity/capabilities.js +0 -178
  367. package/dist/infra/lib/antigravity/capabilities.js.map +0 -1
  368. package/dist/infra/lib/antigravity/chat.d.ts +0 -34
  369. package/dist/infra/lib/antigravity/chat.d.ts.map +0 -1
  370. package/dist/infra/lib/antigravity/chat.js +0 -166
  371. package/dist/infra/lib/antigravity/chat.js.map +0 -1
  372. package/dist/infra/lib/antigravity/completion.d.ts +0 -12
  373. package/dist/infra/lib/antigravity/completion.d.ts.map +0 -1
  374. package/dist/infra/lib/antigravity/completion.js +0 -13
  375. package/dist/infra/lib/antigravity/completion.js.map +0 -1
  376. package/dist/infra/lib/antigravity/constants.d.ts +0 -8
  377. package/dist/infra/lib/antigravity/constants.d.ts.map +0 -1
  378. package/dist/infra/lib/antigravity/constants.js +0 -11
  379. package/dist/infra/lib/antigravity/constants.js.map +0 -1
  380. package/dist/infra/lib/antigravity/index.d.ts +0 -13
  381. package/dist/infra/lib/antigravity/index.d.ts.map +0 -1
  382. package/dist/infra/lib/antigravity/index.js +0 -12
  383. package/dist/infra/lib/antigravity/index.js.map +0 -1
  384. package/dist/infra/lib/antigravity/models.d.ts +0 -11
  385. package/dist/infra/lib/antigravity/models.d.ts.map +0 -1
  386. package/dist/infra/lib/antigravity/models.js +0 -38
  387. package/dist/infra/lib/antigravity/models.js.map +0 -1
  388. package/dist/infra/lib/antigravity/orchestration.d.ts +0 -33
  389. package/dist/infra/lib/antigravity/orchestration.d.ts.map +0 -1
  390. package/dist/infra/lib/antigravity/orchestration.js +0 -74
  391. package/dist/infra/lib/antigravity/orchestration.js.map +0 -1
  392. package/dist/infra/lib/antigravity/types.d.ts +0 -123
  393. package/dist/infra/lib/antigravity/types.d.ts.map +0 -1
  394. package/dist/infra/lib/antigravity/types.js +0 -5
  395. package/dist/infra/lib/antigravity/types.js.map +0 -1
  396. package/dist/infra/lib/browser/capture.d.ts +0 -26
  397. package/dist/infra/lib/browser/capture.d.ts.map +0 -1
  398. package/dist/infra/lib/browser/capture.js +0 -115
  399. package/dist/infra/lib/browser/capture.js.map +0 -1
  400. package/dist/infra/lib/browser/compare.d.ts +0 -46
  401. package/dist/infra/lib/browser/compare.d.ts.map +0 -1
  402. package/dist/infra/lib/browser/compare.js +0 -188
  403. package/dist/infra/lib/browser/compare.js.map +0 -1
  404. package/dist/infra/lib/browser/index.d.ts +0 -6
  405. package/dist/infra/lib/browser/index.d.ts.map +0 -1
  406. package/dist/infra/lib/browser/index.js +0 -4
  407. package/dist/infra/lib/browser/index.js.map +0 -1
  408. package/dist/infra/lib/browser/launch.d.ts +0 -19
  409. package/dist/infra/lib/browser/launch.d.ts.map +0 -1
  410. package/dist/infra/lib/browser/launch.js +0 -58
  411. package/dist/infra/lib/browser/launch.js.map +0 -1
  412. package/dist/infra/lib/browser/types.d.ts +0 -103
  413. package/dist/infra/lib/browser/types.d.ts.map +0 -1
  414. package/dist/infra/lib/browser/types.js +0 -8
  415. package/dist/infra/lib/browser/types.js.map +0 -1
  416. package/dist/infra/lib/codex-proxy.d.ts +0 -150
  417. package/dist/infra/lib/codex-proxy.d.ts.map +0 -1
  418. package/dist/infra/lib/codex-proxy.js +0 -961
  419. package/dist/infra/lib/codex-proxy.js.map +0 -1
  420. package/dist/infra/lib/config/GlobalConfigManager.d.ts +0 -40
  421. package/dist/infra/lib/config/GlobalConfigManager.d.ts.map +0 -1
  422. package/dist/infra/lib/config/GlobalConfigManager.js +0 -396
  423. package/dist/infra/lib/config/GlobalConfigManager.js.map +0 -1
  424. package/dist/infra/lib/constants.d.ts +0 -81
  425. package/dist/infra/lib/constants.d.ts.map +0 -1
  426. package/dist/infra/lib/constants.js +0 -97
  427. package/dist/infra/lib/constants.js.map +0 -1
  428. package/dist/infra/lib/embedding/EmbeddingProvider.d.ts +0 -20
  429. package/dist/infra/lib/embedding/EmbeddingProvider.d.ts.map +0 -1
  430. package/dist/infra/lib/embedding/EmbeddingProvider.js +0 -83
  431. package/dist/infra/lib/embedding/EmbeddingProvider.js.map +0 -1
  432. package/dist/infra/lib/embedding/VectorStore.d.ts +0 -54
  433. package/dist/infra/lib/embedding/VectorStore.d.ts.map +0 -1
  434. package/dist/infra/lib/embedding/VectorStore.js +0 -139
  435. package/dist/infra/lib/embedding/VectorStore.js.map +0 -1
  436. package/dist/infra/lib/embedding/cosine.d.ts +0 -19
  437. package/dist/infra/lib/embedding/cosine.d.ts.map +0 -1
  438. package/dist/infra/lib/embedding/cosine.js +0 -40
  439. package/dist/infra/lib/embedding/cosine.js.map +0 -1
  440. package/dist/infra/lib/embedding/index.d.ts +0 -9
  441. package/dist/infra/lib/embedding/index.d.ts.map +0 -1
  442. package/dist/infra/lib/embedding/index.js +0 -8
  443. package/dist/infra/lib/embedding/index.js.map +0 -1
  444. package/dist/infra/lib/embedding/types.d.ts +0 -30
  445. package/dist/infra/lib/embedding/types.d.ts.map +0 -1
  446. package/dist/infra/lib/embedding/types.js +0 -12
  447. package/dist/infra/lib/embedding/types.js.map +0 -1
  448. package/dist/infra/lib/evolution/AgentAnalyzer.d.ts +0 -15
  449. package/dist/infra/lib/evolution/AgentAnalyzer.d.ts.map +0 -1
  450. package/dist/infra/lib/evolution/AgentAnalyzer.js +0 -84
  451. package/dist/infra/lib/evolution/AgentAnalyzer.js.map +0 -1
  452. package/dist/infra/lib/evolution/CircuitBreaker.d.ts +0 -31
  453. package/dist/infra/lib/evolution/CircuitBreaker.d.ts.map +0 -1
  454. package/dist/infra/lib/evolution/CircuitBreaker.js +0 -86
  455. package/dist/infra/lib/evolution/CircuitBreaker.js.map +0 -1
  456. package/dist/infra/lib/evolution/DeprecationDetector.d.ts +0 -68
  457. package/dist/infra/lib/evolution/DeprecationDetector.d.ts.map +0 -1
  458. package/dist/infra/lib/evolution/DeprecationDetector.js +0 -207
  459. package/dist/infra/lib/evolution/DeprecationDetector.js.map +0 -1
  460. package/dist/infra/lib/evolution/DescriptionOptimizer.d.ts +0 -124
  461. package/dist/infra/lib/evolution/DescriptionOptimizer.d.ts.map +0 -1
  462. package/dist/infra/lib/evolution/DescriptionOptimizer.js +0 -410
  463. package/dist/infra/lib/evolution/DescriptionOptimizer.js.map +0 -1
  464. package/dist/infra/lib/evolution/EvolutionOrchestrator.d.ts +0 -35
  465. package/dist/infra/lib/evolution/EvolutionOrchestrator.d.ts.map +0 -1
  466. package/dist/infra/lib/evolution/EvolutionOrchestrator.js +0 -212
  467. package/dist/infra/lib/evolution/EvolutionOrchestrator.js.map +0 -1
  468. package/dist/infra/lib/evolution/GenerationRegistry.d.ts +0 -53
  469. package/dist/infra/lib/evolution/GenerationRegistry.d.ts.map +0 -1
  470. package/dist/infra/lib/evolution/GenerationRegistry.js +0 -121
  471. package/dist/infra/lib/evolution/GenerationRegistry.js.map +0 -1
  472. package/dist/infra/lib/evolution/GuardAnalyzer.d.ts +0 -44
  473. package/dist/infra/lib/evolution/GuardAnalyzer.d.ts.map +0 -1
  474. package/dist/infra/lib/evolution/GuardAnalyzer.js +0 -116
  475. package/dist/infra/lib/evolution/GuardAnalyzer.js.map +0 -1
  476. package/dist/infra/lib/evolution/HookTraceReader.d.ts +0 -45
  477. package/dist/infra/lib/evolution/HookTraceReader.d.ts.map +0 -1
  478. package/dist/infra/lib/evolution/HookTraceReader.js +0 -108
  479. package/dist/infra/lib/evolution/HookTraceReader.js.map +0 -1
  480. package/dist/infra/lib/evolution/InsightExtractor.d.ts +0 -24
  481. package/dist/infra/lib/evolution/InsightExtractor.d.ts.map +0 -1
  482. package/dist/infra/lib/evolution/InsightExtractor.js +0 -131
  483. package/dist/infra/lib/evolution/InsightExtractor.js.map +0 -1
  484. package/dist/infra/lib/evolution/InsightStore.d.ts +0 -55
  485. package/dist/infra/lib/evolution/InsightStore.d.ts.map +0 -1
  486. package/dist/infra/lib/evolution/InsightStore.js +0 -219
  487. package/dist/infra/lib/evolution/InsightStore.js.map +0 -1
  488. package/dist/infra/lib/evolution/LifecycleManager.d.ts +0 -43
  489. package/dist/infra/lib/evolution/LifecycleManager.d.ts.map +0 -1
  490. package/dist/infra/lib/evolution/LifecycleManager.js +0 -134
  491. package/dist/infra/lib/evolution/LifecycleManager.js.map +0 -1
  492. package/dist/infra/lib/evolution/ParityTester.d.ts +0 -74
  493. package/dist/infra/lib/evolution/ParityTester.d.ts.map +0 -1
  494. package/dist/infra/lib/evolution/ParityTester.js +0 -238
  495. package/dist/infra/lib/evolution/ParityTester.js.map +0 -1
  496. package/dist/infra/lib/evolution/RollbackManager.d.ts +0 -26
  497. package/dist/infra/lib/evolution/RollbackManager.d.ts.map +0 -1
  498. package/dist/infra/lib/evolution/RollbackManager.js +0 -133
  499. package/dist/infra/lib/evolution/RollbackManager.js.map +0 -1
  500. package/dist/infra/lib/evolution/SkillBenchmark.d.ts +0 -81
  501. package/dist/infra/lib/evolution/SkillBenchmark.d.ts.map +0 -1
  502. package/dist/infra/lib/evolution/SkillBenchmark.js +0 -233
  503. package/dist/infra/lib/evolution/SkillBenchmark.js.map +0 -1
  504. package/dist/infra/lib/evolution/SkillClassifier.d.ts +0 -35
  505. package/dist/infra/lib/evolution/SkillClassifier.d.ts.map +0 -1
  506. package/dist/infra/lib/evolution/SkillClassifier.js +0 -167
  507. package/dist/infra/lib/evolution/SkillClassifier.js.map +0 -1
  508. package/dist/infra/lib/evolution/SkillEvalRunner.d.ts +0 -102
  509. package/dist/infra/lib/evolution/SkillEvalRunner.d.ts.map +0 -1
  510. package/dist/infra/lib/evolution/SkillEvalRunner.js +0 -256
  511. package/dist/infra/lib/evolution/SkillEvalRunner.js.map +0 -1
  512. package/dist/infra/lib/evolution/SkillGapDetector.d.ts +0 -22
  513. package/dist/infra/lib/evolution/SkillGapDetector.d.ts.map +0 -1
  514. package/dist/infra/lib/evolution/SkillGapDetector.js +0 -81
  515. package/dist/infra/lib/evolution/SkillGapDetector.js.map +0 -1
  516. package/dist/infra/lib/evolution/TriggerCollisionDetector.d.ts +0 -27
  517. package/dist/infra/lib/evolution/TriggerCollisionDetector.d.ts.map +0 -1
  518. package/dist/infra/lib/evolution/TriggerCollisionDetector.js +0 -100
  519. package/dist/infra/lib/evolution/TriggerCollisionDetector.js.map +0 -1
  520. package/dist/infra/lib/evolution/UsageTracker.d.ts +0 -53
  521. package/dist/infra/lib/evolution/UsageTracker.d.ts.map +0 -1
  522. package/dist/infra/lib/evolution/UsageTracker.js +0 -157
  523. package/dist/infra/lib/evolution/UsageTracker.js.map +0 -1
  524. package/dist/infra/lib/evolution/generators/AgentGenerator.d.ts +0 -14
  525. package/dist/infra/lib/evolution/generators/AgentGenerator.d.ts.map +0 -1
  526. package/dist/infra/lib/evolution/generators/AgentGenerator.js +0 -55
  527. package/dist/infra/lib/evolution/generators/AgentGenerator.js.map +0 -1
  528. package/dist/infra/lib/evolution/generators/RuleGenerator.d.ts +0 -13
  529. package/dist/infra/lib/evolution/generators/RuleGenerator.d.ts.map +0 -1
  530. package/dist/infra/lib/evolution/generators/RuleGenerator.js +0 -52
  531. package/dist/infra/lib/evolution/generators/RuleGenerator.js.map +0 -1
  532. package/dist/infra/lib/evolution/generators/SkillGenerator.d.ts +0 -15
  533. package/dist/infra/lib/evolution/generators/SkillGenerator.d.ts.map +0 -1
  534. package/dist/infra/lib/evolution/generators/SkillGenerator.js +0 -73
  535. package/dist/infra/lib/evolution/generators/SkillGenerator.js.map +0 -1
  536. package/dist/infra/lib/evolution/index.d.ts +0 -39
  537. package/dist/infra/lib/evolution/index.d.ts.map +0 -1
  538. package/dist/infra/lib/evolution/index.js +0 -32
  539. package/dist/infra/lib/evolution/index.js.map +0 -1
  540. package/dist/infra/lib/figma/api.d.ts +0 -9
  541. package/dist/infra/lib/figma/api.d.ts.map +0 -1
  542. package/dist/infra/lib/figma/api.js +0 -73
  543. package/dist/infra/lib/figma/api.js.map +0 -1
  544. package/dist/infra/lib/figma/audit.d.ts +0 -37
  545. package/dist/infra/lib/figma/audit.d.ts.map +0 -1
  546. package/dist/infra/lib/figma/audit.js +0 -128
  547. package/dist/infra/lib/figma/audit.js.map +0 -1
  548. package/dist/infra/lib/figma/extract.d.ts +0 -37
  549. package/dist/infra/lib/figma/extract.d.ts.map +0 -1
  550. package/dist/infra/lib/figma/extract.js +0 -414
  551. package/dist/infra/lib/figma/extract.js.map +0 -1
  552. package/dist/infra/lib/figma/index.d.ts +0 -6
  553. package/dist/infra/lib/figma/index.d.ts.map +0 -1
  554. package/dist/infra/lib/figma/index.js +0 -4
  555. package/dist/infra/lib/figma/index.js.map +0 -1
  556. package/dist/infra/lib/figma/types.d.ts +0 -182
  557. package/dist/infra/lib/figma/types.d.ts.map +0 -1
  558. package/dist/infra/lib/figma/types.js +0 -13
  559. package/dist/infra/lib/figma/types.js.map +0 -1
  560. package/dist/infra/lib/gpt/auth.d.ts +0 -31
  561. package/dist/infra/lib/gpt/auth.d.ts.map +0 -1
  562. package/dist/infra/lib/gpt/auth.js +0 -178
  563. package/dist/infra/lib/gpt/auth.js.map +0 -1
  564. package/dist/infra/lib/gpt/chat.d.ts +0 -40
  565. package/dist/infra/lib/gpt/chat.d.ts.map +0 -1
  566. package/dist/infra/lib/gpt/chat.js +0 -514
  567. package/dist/infra/lib/gpt/chat.js.map +0 -1
  568. package/dist/infra/lib/gpt/constants.d.ts +0 -9
  569. package/dist/infra/lib/gpt/constants.d.ts.map +0 -1
  570. package/dist/infra/lib/gpt/constants.js +0 -13
  571. package/dist/infra/lib/gpt/constants.js.map +0 -1
  572. package/dist/infra/lib/gpt/embedding.d.ts +0 -15
  573. package/dist/infra/lib/gpt/embedding.d.ts.map +0 -1
  574. package/dist/infra/lib/gpt/embedding.js +0 -80
  575. package/dist/infra/lib/gpt/embedding.js.map +0 -1
  576. package/dist/infra/lib/gpt/index.d.ts +0 -17
  577. package/dist/infra/lib/gpt/index.d.ts.map +0 -1
  578. package/dist/infra/lib/gpt/index.js +0 -17
  579. package/dist/infra/lib/gpt/index.js.map +0 -1
  580. package/dist/infra/lib/gpt/oauth.d.ts +0 -39
  581. package/dist/infra/lib/gpt/oauth.d.ts.map +0 -1
  582. package/dist/infra/lib/gpt/oauth.js +0 -103
  583. package/dist/infra/lib/gpt/oauth.js.map +0 -1
  584. package/dist/infra/lib/gpt/orchestration.d.ts +0 -28
  585. package/dist/infra/lib/gpt/orchestration.d.ts.map +0 -1
  586. package/dist/infra/lib/gpt/orchestration.js +0 -64
  587. package/dist/infra/lib/gpt/orchestration.js.map +0 -1
  588. package/dist/infra/lib/gpt/specializations.d.ts +0 -12
  589. package/dist/infra/lib/gpt/specializations.d.ts.map +0 -1
  590. package/dist/infra/lib/gpt/specializations.js +0 -32
  591. package/dist/infra/lib/gpt/specializations.js.map +0 -1
  592. package/dist/infra/lib/gpt/types.d.ts +0 -80
  593. package/dist/infra/lib/gpt/types.d.ts.map +0 -1
  594. package/dist/infra/lib/gpt/types.js +0 -5
  595. package/dist/infra/lib/gpt/types.js.map +0 -1
  596. package/dist/infra/lib/llm/auth/ApiKeyManager.d.ts +0 -21
  597. package/dist/infra/lib/llm/auth/ApiKeyManager.d.ts.map +0 -1
  598. package/dist/infra/lib/llm/auth/ApiKeyManager.js +0 -43
  599. package/dist/infra/lib/llm/auth/ApiKeyManager.js.map +0 -1
  600. package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts +0 -59
  601. package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts.map +0 -1
  602. package/dist/infra/lib/llm/auth/AuthProfileManager.js +0 -248
  603. package/dist/infra/lib/llm/auth/AuthProfileManager.js.map +0 -1
  604. package/dist/infra/lib/llm/auth/ConfigManager.d.ts +0 -32
  605. package/dist/infra/lib/llm/auth/ConfigManager.d.ts.map +0 -1
  606. package/dist/infra/lib/llm/auth/ConfigManager.js +0 -66
  607. package/dist/infra/lib/llm/auth/ConfigManager.js.map +0 -1
  608. package/dist/infra/lib/llm/auth/ProfileFileLock.d.ts +0 -16
  609. package/dist/infra/lib/llm/auth/ProfileFileLock.d.ts.map +0 -1
  610. package/dist/infra/lib/llm/auth/ProfileFileLock.js +0 -99
  611. package/dist/infra/lib/llm/auth/ProfileFileLock.js.map +0 -1
  612. package/dist/infra/lib/llm/auth/TokenRefresher.d.ts +0 -35
  613. package/dist/infra/lib/llm/auth/TokenRefresher.d.ts.map +0 -1
  614. package/dist/infra/lib/llm/auth/TokenRefresher.js +0 -217
  615. package/dist/infra/lib/llm/auth/TokenRefresher.js.map +0 -1
  616. package/dist/infra/lib/llm/auth/index.d.ts +0 -20
  617. package/dist/infra/lib/llm/auth/index.d.ts.map +0 -1
  618. package/dist/infra/lib/llm/auth/index.js +0 -28
  619. package/dist/infra/lib/llm/auth/index.js.map +0 -1
  620. package/dist/infra/lib/llm/index.d.ts +0 -10
  621. package/dist/infra/lib/llm/index.d.ts.map +0 -1
  622. package/dist/infra/lib/llm/index.js +0 -12
  623. package/dist/infra/lib/llm/index.js.map +0 -1
  624. package/dist/infra/lib/llm/timeout.d.ts +0 -34
  625. package/dist/infra/lib/llm/timeout.d.ts.map +0 -1
  626. package/dist/infra/lib/llm/timeout.js +0 -45
  627. package/dist/infra/lib/llm/timeout.js.map +0 -1
  628. package/dist/infra/lib/llm/types.d.ts +0 -96
  629. package/dist/infra/lib/llm/types.d.ts.map +0 -1
  630. package/dist/infra/lib/llm/types.js +0 -17
  631. package/dist/infra/lib/llm/types.js.map +0 -1
  632. package/dist/infra/lib/llm/utils/index.d.ts +0 -6
  633. package/dist/infra/lib/llm/utils/index.d.ts.map +0 -1
  634. package/dist/infra/lib/llm/utils/index.js +0 -6
  635. package/dist/infra/lib/llm/utils/index.js.map +0 -1
  636. package/dist/infra/lib/llm/utils/retry.d.ts +0 -25
  637. package/dist/infra/lib/llm/utils/retry.d.ts.map +0 -1
  638. package/dist/infra/lib/llm/utils/retry.js +0 -72
  639. package/dist/infra/lib/llm/utils/retry.js.map +0 -1
  640. package/dist/infra/lib/llm/utils/stream.d.ts +0 -13
  641. package/dist/infra/lib/llm/utils/stream.d.ts.map +0 -1
  642. package/dist/infra/lib/llm/utils/stream.js +0 -110
  643. package/dist/infra/lib/llm/utils/stream.js.map +0 -1
  644. package/dist/infra/lib/llm-availability.d.ts +0 -28
  645. package/dist/infra/lib/llm-availability.d.ts.map +0 -1
  646. package/dist/infra/lib/llm-availability.js +0 -69
  647. package/dist/infra/lib/llm-availability.js.map +0 -1
  648. package/dist/infra/lib/memory/IMemoryStorage.d.ts +0 -16
  649. package/dist/infra/lib/memory/IMemoryStorage.d.ts.map +0 -1
  650. package/dist/infra/lib/memory/IMemoryStorage.js +0 -7
  651. package/dist/infra/lib/memory/IMemoryStorage.js.map +0 -1
  652. package/dist/infra/lib/memory/InMemoryStorage.d.ts +0 -13
  653. package/dist/infra/lib/memory/InMemoryStorage.d.ts.map +0 -1
  654. package/dist/infra/lib/memory/InMemoryStorage.js +0 -44
  655. package/dist/infra/lib/memory/InMemoryStorage.js.map +0 -1
  656. package/dist/infra/lib/memory/KnowledgeGraph.d.ts +0 -34
  657. package/dist/infra/lib/memory/KnowledgeGraph.d.ts.map +0 -1
  658. package/dist/infra/lib/memory/KnowledgeGraph.js +0 -222
  659. package/dist/infra/lib/memory/KnowledgeGraph.js.map +0 -1
  660. package/dist/infra/lib/memory/MemorySearch.d.ts +0 -59
  661. package/dist/infra/lib/memory/MemorySearch.d.ts.map +0 -1
  662. package/dist/infra/lib/memory/MemorySearch.js +0 -330
  663. package/dist/infra/lib/memory/MemorySearch.js.map +0 -1
  664. package/dist/infra/lib/memory/MemoryStorage.d.ts +0 -133
  665. package/dist/infra/lib/memory/MemoryStorage.d.ts.map +0 -1
  666. package/dist/infra/lib/memory/MemoryStorage.js +0 -612
  667. package/dist/infra/lib/memory/MemoryStorage.js.map +0 -1
  668. package/dist/infra/lib/memory/ObservationStore.d.ts +0 -61
  669. package/dist/infra/lib/memory/ObservationStore.d.ts.map +0 -1
  670. package/dist/infra/lib/memory/ObservationStore.js +0 -119
  671. package/dist/infra/lib/memory/ObservationStore.js.map +0 -1
  672. package/dist/infra/lib/memory/ReflectionStore.d.ts +0 -60
  673. package/dist/infra/lib/memory/ReflectionStore.d.ts.map +0 -1
  674. package/dist/infra/lib/memory/ReflectionStore.js +0 -153
  675. package/dist/infra/lib/memory/ReflectionStore.js.map +0 -1
  676. package/dist/infra/lib/memory/SessionRAGRetriever.d.ts +0 -89
  677. package/dist/infra/lib/memory/SessionRAGRetriever.d.ts.map +0 -1
  678. package/dist/infra/lib/memory/SessionRAGRetriever.js +0 -348
  679. package/dist/infra/lib/memory/SessionRAGRetriever.js.map +0 -1
  680. package/dist/infra/lib/memory/SessionRAGStore.d.ts +0 -168
  681. package/dist/infra/lib/memory/SessionRAGStore.d.ts.map +0 -1
  682. package/dist/infra/lib/memory/SessionRAGStore.js +0 -763
  683. package/dist/infra/lib/memory/SessionRAGStore.js.map +0 -1
  684. package/dist/infra/lib/memory/SessionSummarizer.d.ts +0 -50
  685. package/dist/infra/lib/memory/SessionSummarizer.d.ts.map +0 -1
  686. package/dist/infra/lib/memory/SessionSummarizer.js +0 -157
  687. package/dist/infra/lib/memory/SessionSummarizer.js.map +0 -1
  688. package/dist/infra/lib/memory/index.d.ts +0 -15
  689. package/dist/infra/lib/memory/index.d.ts.map +0 -1
  690. package/dist/infra/lib/memory/index.js +0 -16
  691. package/dist/infra/lib/memory/index.js.map +0 -1
  692. package/dist/infra/lib/telemetry/SkillTelemetry.d.ts +0 -66
  693. package/dist/infra/lib/telemetry/SkillTelemetry.d.ts.map +0 -1
  694. package/dist/infra/lib/telemetry/SkillTelemetry.js +0 -168
  695. package/dist/infra/lib/telemetry/SkillTelemetry.js.map +0 -1
  696. package/dist/infra/lib/telemetry/VibeSpan.d.ts +0 -20
  697. package/dist/infra/lib/telemetry/VibeSpan.d.ts.map +0 -1
  698. package/dist/infra/lib/telemetry/VibeSpan.js +0 -26
  699. package/dist/infra/lib/telemetry/VibeSpan.js.map +0 -1
  700. package/dist/infra/lib/ui-ux/Bm25Engine.d.ts +0 -67
  701. package/dist/infra/lib/ui-ux/Bm25Engine.d.ts.map +0 -1
  702. package/dist/infra/lib/ui-ux/Bm25Engine.js +0 -153
  703. package/dist/infra/lib/ui-ux/Bm25Engine.js.map +0 -1
  704. package/dist/infra/lib/ui-ux/CsvDataLoader.d.ts +0 -57
  705. package/dist/infra/lib/ui-ux/CsvDataLoader.d.ts.map +0 -1
  706. package/dist/infra/lib/ui-ux/CsvDataLoader.js +0 -158
  707. package/dist/infra/lib/ui-ux/CsvDataLoader.js.map +0 -1
  708. package/dist/infra/lib/ui-ux/DesignSystemGenerator.d.ts +0 -119
  709. package/dist/infra/lib/ui-ux/DesignSystemGenerator.d.ts.map +0 -1
  710. package/dist/infra/lib/ui-ux/DesignSystemGenerator.js +0 -519
  711. package/dist/infra/lib/ui-ux/DesignSystemGenerator.js.map +0 -1
  712. package/dist/infra/lib/ui-ux/SearchService.d.ts +0 -64
  713. package/dist/infra/lib/ui-ux/SearchService.d.ts.map +0 -1
  714. package/dist/infra/lib/ui-ux/SearchService.js +0 -240
  715. package/dist/infra/lib/ui-ux/SearchService.js.map +0 -1
  716. package/dist/infra/lib/ui-ux/UiUxWorkflow.d.ts +0 -58
  717. package/dist/infra/lib/ui-ux/UiUxWorkflow.d.ts.map +0 -1
  718. package/dist/infra/lib/ui-ux/UiUxWorkflow.js +0 -181
  719. package/dist/infra/lib/ui-ux/UiUxWorkflow.js.map +0 -1
  720. package/dist/infra/lib/ui-ux/constants.d.ts +0 -39
  721. package/dist/infra/lib/ui-ux/constants.d.ts.map +0 -1
  722. package/dist/infra/lib/ui-ux/constants.js +0 -203
  723. package/dist/infra/lib/ui-ux/constants.js.map +0 -1
  724. package/dist/infra/lib/ui-ux/index.d.ts +0 -11
  725. package/dist/infra/lib/ui-ux/index.d.ts.map +0 -1
  726. package/dist/infra/lib/ui-ux/index.js +0 -11
  727. package/dist/infra/lib/ui-ux/index.js.map +0 -1
  728. package/dist/infra/lib/ui-ux/types.d.ts +0 -243
  729. package/dist/infra/lib/ui-ux/types.d.ts.map +0 -1
  730. package/dist/infra/lib/ui-ux/types.js +0 -7
  731. package/dist/infra/lib/ui-ux/types.js.map +0 -1
  732. package/dist/infra/lib/utils.d.ts +0 -66
  733. package/dist/infra/lib/utils.d.ts.map +0 -1
  734. package/dist/infra/lib/utils.js +0 -152
  735. package/dist/infra/lib/utils.js.map +0 -1
  736. package/dist/infra/lib/zai/client.d.ts +0 -30
  737. package/dist/infra/lib/zai/client.d.ts.map +0 -1
  738. package/dist/infra/lib/zai/client.js +0 -124
  739. package/dist/infra/lib/zai/client.js.map +0 -1
  740. package/dist/infra/lib/zai/index.d.ts +0 -11
  741. package/dist/infra/lib/zai/index.d.ts.map +0 -1
  742. package/dist/infra/lib/zai/index.js +0 -10
  743. package/dist/infra/lib/zai/index.js.map +0 -1
  744. package/dist/infra/lib/zai/orchestration.d.ts +0 -15
  745. package/dist/infra/lib/zai/orchestration.d.ts.map +0 -1
  746. package/dist/infra/lib/zai/orchestration.js +0 -54
  747. package/dist/infra/lib/zai/orchestration.js.map +0 -1
  748. package/dist/infra/lib/zai/types.d.ts +0 -40
  749. package/dist/infra/lib/zai/types.d.ts.map +0 -1
  750. package/dist/infra/lib/zai/types.js +0 -5
  751. package/dist/infra/lib/zai/types.js.map +0 -1
  752. package/dist/infra/types/tool.d.ts +0 -71
  753. package/dist/infra/types/tool.d.ts.map +0 -1
  754. package/dist/infra/types/tool.js +0 -3
  755. package/dist/infra/types/tool.js.map +0 -1
  756. package/dist/tools/bench/benchCompare.d.ts +0 -78
  757. package/dist/tools/bench/benchCompare.d.ts.map +0 -1
  758. package/dist/tools/bench/benchCompare.js +0 -113
  759. package/dist/tools/bench/benchCompare.js.map +0 -1
  760. package/dist/tools/bench/benchDefinition.d.ts +0 -37
  761. package/dist/tools/bench/benchDefinition.d.ts.map +0 -1
  762. package/dist/tools/bench/benchDefinition.js +0 -69
  763. package/dist/tools/bench/benchDefinition.js.map +0 -1
  764. package/dist/tools/bench/benchReport.d.ts +0 -16
  765. package/dist/tools/bench/benchReport.d.ts.map +0 -1
  766. package/dist/tools/bench/benchReport.js +0 -64
  767. package/dist/tools/bench/benchReport.js.map +0 -1
  768. package/dist/tools/bench/index.d.ts +0 -10
  769. package/dist/tools/bench/index.d.ts.map +0 -1
  770. package/dist/tools/bench/index.js +0 -7
  771. package/dist/tools/bench/index.js.map +0 -1
  772. package/dist/tools/contract/agentContract.d.ts +0 -86
  773. package/dist/tools/contract/agentContract.d.ts.map +0 -1
  774. package/dist/tools/contract/agentContract.js +0 -140
  775. package/dist/tools/contract/agentContract.js.map +0 -1
  776. package/dist/tools/contract/index.d.ts +0 -8
  777. package/dist/tools/contract/index.d.ts.map +0 -1
  778. package/dist/tools/contract/index.js +0 -6
  779. package/dist/tools/contract/index.js.map +0 -1
  780. package/dist/tools/contract/reverseDrift.d.ts +0 -71
  781. package/dist/tools/contract/reverseDrift.d.ts.map +0 -1
  782. package/dist/tools/contract/reverseDrift.js +0 -136
  783. package/dist/tools/contract/reverseDrift.js.map +0 -1
  784. package/dist/tools/convention/analyzeComplexity.d.ts +0 -9
  785. package/dist/tools/convention/analyzeComplexity.d.ts.map +0 -1
  786. package/dist/tools/convention/analyzeComplexity.js +0 -330
  787. package/dist/tools/convention/analyzeComplexity.js.map +0 -1
  788. package/dist/tools/convention/applyQualityRules.d.ts +0 -7
  789. package/dist/tools/convention/applyQualityRules.d.ts.map +0 -1
  790. package/dist/tools/convention/applyQualityRules.js +0 -107
  791. package/dist/tools/convention/applyQualityRules.js.map +0 -1
  792. package/dist/tools/convention/checkCouplingCohesion.d.ts +0 -8
  793. package/dist/tools/convention/checkCouplingCohesion.d.ts.map +0 -1
  794. package/dist/tools/convention/checkCouplingCohesion.js +0 -224
  795. package/dist/tools/convention/checkCouplingCohesion.js.map +0 -1
  796. package/dist/tools/convention/index.d.ts +0 -9
  797. package/dist/tools/convention/index.d.ts.map +0 -1
  798. package/dist/tools/convention/index.js +0 -9
  799. package/dist/tools/convention/index.js.map +0 -1
  800. package/dist/tools/convention/suggestImprovements.d.ts +0 -8
  801. package/dist/tools/convention/suggestImprovements.d.ts.map +0 -1
  802. package/dist/tools/convention/suggestImprovements.js +0 -262
  803. package/dist/tools/convention/suggestImprovements.js.map +0 -1
  804. package/dist/tools/convention/validateCodeQuality.d.ts +0 -41
  805. package/dist/tools/convention/validateCodeQuality.d.ts.map +0 -1
  806. package/dist/tools/convention/validateCodeQuality.js +0 -327
  807. package/dist/tools/convention/validateCodeQuality.js.map +0 -1
  808. package/dist/tools/dispatch/costGate.d.ts +0 -59
  809. package/dist/tools/dispatch/costGate.d.ts.map +0 -1
  810. package/dist/tools/dispatch/costGate.js +0 -85
  811. package/dist/tools/dispatch/costGate.js.map +0 -1
  812. package/dist/tools/dispatch/deterministicSignals.d.ts +0 -61
  813. package/dist/tools/dispatch/deterministicSignals.d.ts.map +0 -1
  814. package/dist/tools/dispatch/deterministicSignals.js +0 -136
  815. package/dist/tools/dispatch/deterministicSignals.js.map +0 -1
  816. package/dist/tools/dispatch/index.d.ts +0 -5
  817. package/dist/tools/dispatch/index.d.ts.map +0 -1
  818. package/dist/tools/dispatch/index.js +0 -3
  819. package/dist/tools/dispatch/index.js.map +0 -1
  820. package/dist/tools/dispatch/vibePaths.d.ts +0 -7
  821. package/dist/tools/dispatch/vibePaths.d.ts.map +0 -1
  822. package/dist/tools/dispatch/vibePaths.js +0 -35
  823. package/dist/tools/dispatch/vibePaths.js.map +0 -1
  824. package/dist/tools/docs/agentsMd.d.ts +0 -45
  825. package/dist/tools/docs/agentsMd.d.ts.map +0 -1
  826. package/dist/tools/docs/agentsMd.js +0 -51
  827. package/dist/tools/docs/agentsMd.js.map +0 -1
  828. package/dist/tools/docs/cacheSurface.d.ts +0 -37
  829. package/dist/tools/docs/cacheSurface.d.ts.map +0 -1
  830. package/dist/tools/docs/cacheSurface.js +0 -98
  831. package/dist/tools/docs/cacheSurface.js.map +0 -1
  832. package/dist/tools/evolution/dashboardTools.d.ts +0 -26
  833. package/dist/tools/evolution/dashboardTools.d.ts.map +0 -1
  834. package/dist/tools/evolution/dashboardTools.js +0 -216
  835. package/dist/tools/evolution/dashboardTools.js.map +0 -1
  836. package/dist/tools/evolution/index.d.ts +0 -3
  837. package/dist/tools/evolution/index.d.ts.map +0 -1
  838. package/dist/tools/evolution/index.js +0 -6
  839. package/dist/tools/evolution/index.js.map +0 -1
  840. package/dist/tools/evolution/insightTools.d.ts +0 -21
  841. package/dist/tools/evolution/insightTools.d.ts.map +0 -1
  842. package/dist/tools/evolution/insightTools.js +0 -184
  843. package/dist/tools/evolution/insightTools.js.map +0 -1
  844. package/dist/tools/index.d.ts +0 -81
  845. package/dist/tools/index.d.ts.map +0 -1
  846. package/dist/tools/index.js +0 -94
  847. package/dist/tools/index.js.map +0 -1
  848. package/dist/tools/interaction/askUser.d.ts +0 -113
  849. package/dist/tools/interaction/askUser.d.ts.map +0 -1
  850. package/dist/tools/interaction/askUser.js +0 -502
  851. package/dist/tools/interaction/askUser.js.map +0 -1
  852. package/dist/tools/interaction/index.d.ts +0 -6
  853. package/dist/tools/interaction/index.d.ts.map +0 -1
  854. package/dist/tools/interaction/index.js +0 -15
  855. package/dist/tools/interaction/index.js.map +0 -1
  856. package/dist/tools/loop/index.d.ts +0 -6
  857. package/dist/tools/loop/index.d.ts.map +0 -1
  858. package/dist/tools/loop/index.js +0 -5
  859. package/dist/tools/loop/index.js.map +0 -1
  860. package/dist/tools/loop/validateLoopDefinition.d.ts +0 -67
  861. package/dist/tools/loop/validateLoopDefinition.d.ts.map +0 -1
  862. package/dist/tools/loop/validateLoopDefinition.js +0 -281
  863. package/dist/tools/loop/validateLoopDefinition.js.map +0 -1
  864. package/dist/tools/memory/addObservation.d.ts +0 -16
  865. package/dist/tools/memory/addObservation.d.ts.map +0 -1
  866. package/dist/tools/memory/addObservation.js +0 -71
  867. package/dist/tools/memory/addObservation.js.map +0 -1
  868. package/dist/tools/memory/autoSaveContext.d.ts +0 -11
  869. package/dist/tools/memory/autoSaveContext.d.ts.map +0 -1
  870. package/dist/tools/memory/autoSaveContext.js +0 -71
  871. package/dist/tools/memory/autoSaveContext.js.map +0 -1
  872. package/dist/tools/memory/createMemoryTimeline.d.ts +0 -13
  873. package/dist/tools/memory/createMemoryTimeline.d.ts.map +0 -1
  874. package/dist/tools/memory/createMemoryTimeline.js +0 -193
  875. package/dist/tools/memory/createMemoryTimeline.js.map +0 -1
  876. package/dist/tools/memory/deleteMemory.d.ts +0 -7
  877. package/dist/tools/memory/deleteMemory.d.ts.map +0 -1
  878. package/dist/tools/memory/deleteMemory.js +0 -45
  879. package/dist/tools/memory/deleteMemory.js.map +0 -1
  880. package/dist/tools/memory/getMemoryGraph.d.ts +0 -12
  881. package/dist/tools/memory/getMemoryGraph.d.ts.map +0 -1
  882. package/dist/tools/memory/getMemoryGraph.js +0 -204
  883. package/dist/tools/memory/getMemoryGraph.js.map +0 -1
  884. package/dist/tools/memory/getSessionContext.d.ts +0 -14
  885. package/dist/tools/memory/getSessionContext.d.ts.map +0 -1
  886. package/dist/tools/memory/getSessionContext.js +0 -252
  887. package/dist/tools/memory/getSessionContext.js.map +0 -1
  888. package/dist/tools/memory/index.d.ts +0 -25
  889. package/dist/tools/memory/index.d.ts.map +0 -1
  890. package/dist/tools/memory/index.js +0 -27
  891. package/dist/tools/memory/index.js.map +0 -1
  892. package/dist/tools/memory/linkMemories.d.ts +0 -13
  893. package/dist/tools/memory/linkMemories.d.ts.map +0 -1
  894. package/dist/tools/memory/linkMemories.js +0 -116
  895. package/dist/tools/memory/linkMemories.js.map +0 -1
  896. package/dist/tools/memory/listMemories.d.ts +0 -8
  897. package/dist/tools/memory/listMemories.d.ts.map +0 -1
  898. package/dist/tools/memory/listMemories.js +0 -48
  899. package/dist/tools/memory/listMemories.js.map +0 -1
  900. package/dist/tools/memory/manageGoals.d.ts +0 -11
  901. package/dist/tools/memory/manageGoals.d.ts.map +0 -1
  902. package/dist/tools/memory/manageGoals.js +0 -152
  903. package/dist/tools/memory/manageGoals.js.map +0 -1
  904. package/dist/tools/memory/prioritizeMemory.d.ts +0 -11
  905. package/dist/tools/memory/prioritizeMemory.d.ts.map +0 -1
  906. package/dist/tools/memory/prioritizeMemory.js +0 -115
  907. package/dist/tools/memory/prioritizeMemory.js.map +0 -1
  908. package/dist/tools/memory/recallMemory.d.ts +0 -8
  909. package/dist/tools/memory/recallMemory.d.ts.map +0 -1
  910. package/dist/tools/memory/recallMemory.js +0 -50
  911. package/dist/tools/memory/recallMemory.js.map +0 -1
  912. package/dist/tools/memory/reflectionTools.d.ts +0 -27
  913. package/dist/tools/memory/reflectionTools.d.ts.map +0 -1
  914. package/dist/tools/memory/reflectionTools.js +0 -180
  915. package/dist/tools/memory/reflectionTools.js.map +0 -1
  916. package/dist/tools/memory/restoreSessionContext.d.ts +0 -9
  917. package/dist/tools/memory/restoreSessionContext.d.ts.map +0 -1
  918. package/dist/tools/memory/restoreSessionContext.js +0 -75
  919. package/dist/tools/memory/restoreSessionContext.js.map +0 -1
  920. package/dist/tools/memory/retrieveSessionContext.d.ts +0 -9
  921. package/dist/tools/memory/retrieveSessionContext.d.ts.map +0 -1
  922. package/dist/tools/memory/retrieveSessionContext.js +0 -140
  923. package/dist/tools/memory/retrieveSessionContext.js.map +0 -1
  924. package/dist/tools/memory/saveMemory.d.ts +0 -9
  925. package/dist/tools/memory/saveMemory.d.ts.map +0 -1
  926. package/dist/tools/memory/saveMemory.js +0 -45
  927. package/dist/tools/memory/saveMemory.js.map +0 -1
  928. package/dist/tools/memory/saveSessionItem.d.ts +0 -26
  929. package/dist/tools/memory/saveSessionItem.d.ts.map +0 -1
  930. package/dist/tools/memory/saveSessionItem.js +0 -218
  931. package/dist/tools/memory/saveSessionItem.js.map +0 -1
  932. package/dist/tools/memory/searchMemories.d.ts +0 -8
  933. package/dist/tools/memory/searchMemories.d.ts.map +0 -1
  934. package/dist/tools/memory/searchMemories.js +0 -43
  935. package/dist/tools/memory/searchMemories.js.map +0 -1
  936. package/dist/tools/memory/searchMemoriesAdvanced.d.ts +0 -15
  937. package/dist/tools/memory/searchMemoriesAdvanced.d.ts.map +0 -1
  938. package/dist/tools/memory/searchMemoriesAdvanced.js +0 -168
  939. package/dist/tools/memory/searchMemoriesAdvanced.js.map +0 -1
  940. package/dist/tools/memory/searchObservations.d.ts +0 -12
  941. package/dist/tools/memory/searchObservations.d.ts.map +0 -1
  942. package/dist/tools/memory/searchObservations.js +0 -67
  943. package/dist/tools/memory/searchObservations.js.map +0 -1
  944. package/dist/tools/memory/startSession.d.ts +0 -9
  945. package/dist/tools/memory/startSession.d.ts.map +0 -1
  946. package/dist/tools/memory/startSession.js +0 -238
  947. package/dist/tools/memory/startSession.js.map +0 -1
  948. package/dist/tools/memory/updateMemory.d.ts +0 -9
  949. package/dist/tools/memory/updateMemory.d.ts.map +0 -1
  950. package/dist/tools/memory/updateMemory.js +0 -52
  951. package/dist/tools/memory/updateMemory.js.map +0 -1
  952. package/dist/tools/release/releaseNotes.d.ts +0 -43
  953. package/dist/tools/release/releaseNotes.d.ts.map +0 -1
  954. package/dist/tools/release/releaseNotes.js +0 -151
  955. package/dist/tools/release/releaseNotes.js.map +0 -1
  956. package/dist/tools/spec/executionPacket.d.ts +0 -102
  957. package/dist/tools/spec/executionPacket.d.ts.map +0 -1
  958. package/dist/tools/spec/executionPacket.js +0 -396
  959. package/dist/tools/spec/executionPacket.js.map +0 -1
  960. package/dist/tools/spec/index.d.ts +0 -18
  961. package/dist/tools/spec/index.d.ts.map +0 -1
  962. package/dist/tools/spec/index.js +0 -19
  963. package/dist/tools/spec/index.js.map +0 -1
  964. package/dist/tools/spec/prdParser.d.ts +0 -42
  965. package/dist/tools/spec/prdParser.d.ts.map +0 -1
  966. package/dist/tools/spec/prdParser.js +0 -293
  967. package/dist/tools/spec/prdParser.js.map +0 -1
  968. package/dist/tools/spec/requirementId.d.ts +0 -64
  969. package/dist/tools/spec/requirementId.d.ts.map +0 -1
  970. package/dist/tools/spec/requirementId.js +0 -160
  971. package/dist/tools/spec/requirementId.js.map +0 -1
  972. package/dist/tools/spec/specGenerator.d.ts +0 -50
  973. package/dist/tools/spec/specGenerator.d.ts.map +0 -1
  974. package/dist/tools/spec/specGenerator.js +0 -505
  975. package/dist/tools/spec/specGenerator.js.map +0 -1
  976. package/dist/tools/spec/specLifecycle.d.ts +0 -40
  977. package/dist/tools/spec/specLifecycle.d.ts.map +0 -1
  978. package/dist/tools/spec/specLifecycle.js +0 -147
  979. package/dist/tools/spec/specLifecycle.js.map +0 -1
  980. package/dist/tools/spec/traceabilityMatrix.d.ts +0 -56
  981. package/dist/tools/spec/traceabilityMatrix.d.ts.map +0 -1
  982. package/dist/tools/spec/traceabilityMatrix.js +0 -479
  983. package/dist/tools/spec/traceabilityMatrix.js.map +0 -1
  984. package/dist/tools/spec/validateSpecDocument.d.ts +0 -30
  985. package/dist/tools/spec/validateSpecDocument.d.ts.map +0 -1
  986. package/dist/tools/spec/validateSpecDocument.js +0 -280
  987. package/dist/tools/spec/validateSpecDocument.js.map +0 -1
  988. package/dist/tools/time/getCurrentTime.d.ts +0 -7
  989. package/dist/tools/time/getCurrentTime.d.ts.map +0 -1
  990. package/dist/tools/time/getCurrentTime.js +0 -58
  991. package/dist/tools/time/getCurrentTime.js.map +0 -1
  992. package/dist/tools/time/index.d.ts +0 -5
  993. package/dist/tools/time/index.d.ts.map +0 -1
  994. package/dist/tools/time/index.js +0 -5
  995. package/dist/tools/time/index.js.map +0 -1
  996. package/dist/tools/ui/generateDesignSystem.d.ts +0 -7
  997. package/dist/tools/ui/generateDesignSystem.d.ts.map +0 -1
  998. package/dist/tools/ui/generateDesignSystem.js +0 -70
  999. package/dist/tools/ui/generateDesignSystem.js.map +0 -1
  1000. package/dist/tools/ui/index.d.ts +0 -9
  1001. package/dist/tools/ui/index.d.ts.map +0 -1
  1002. package/dist/tools/ui/index.js +0 -9
  1003. package/dist/tools/ui/index.js.map +0 -1
  1004. package/dist/tools/ui/persistDesignSystem.d.ts +0 -8
  1005. package/dist/tools/ui/persistDesignSystem.d.ts.map +0 -1
  1006. package/dist/tools/ui/persistDesignSystem.js +0 -77
  1007. package/dist/tools/ui/persistDesignSystem.js.map +0 -1
  1008. package/dist/tools/ui/previewUiAscii.d.ts +0 -14
  1009. package/dist/tools/ui/previewUiAscii.d.ts.map +0 -1
  1010. package/dist/tools/ui/previewUiAscii.js +0 -237
  1011. package/dist/tools/ui/previewUiAscii.js.map +0 -1
  1012. package/dist/tools/ui/searchUiUx.d.ts +0 -8
  1013. package/dist/tools/ui/searchUiUx.d.ts.map +0 -1
  1014. package/dist/tools/ui/searchUiUx.js +0 -82
  1015. package/dist/tools/ui/searchUiUx.js.map +0 -1
  1016. package/dist/tools/ui/searchUiUxStack.d.ts +0 -8
  1017. package/dist/tools/ui/searchUiUxStack.d.ts.map +0 -1
  1018. package/dist/tools/ui/searchUiUxStack.js +0 -83
  1019. package/dist/tools/ui/searchUiUxStack.js.map +0 -1
  1020. package/hooks/antigravity-hooks.json +0 -73
  1021. package/hooks/claude-plugin-hooks.json +0 -123
  1022. package/hooks/hooks.json +0 -128
  1023. package/hooks/plugin-hooks.json +0 -123
  1024. package/hooks/scripts/auto-commit.js +0 -123
  1025. package/hooks/scripts/auto-format.js +0 -125
  1026. package/hooks/scripts/auto-test.js +0 -222
  1027. package/hooks/scripts/clone-extract.js +0 -1306
  1028. package/hooks/scripts/clone-merge-responsive.js +0 -184
  1029. package/hooks/scripts/clone-refine.js +0 -642
  1030. package/hooks/scripts/clone-spec.js +0 -262
  1031. package/hooks/scripts/clone-to-scss.js +0 -275
  1032. package/hooks/scripts/clone-validate.js +0 -286
  1033. package/hooks/scripts/code-check.js +0 -354
  1034. package/hooks/scripts/codex-detect.js +0 -46
  1035. package/hooks/scripts/codex-hook-adapter.js +0 -183
  1036. package/hooks/scripts/codex-notify.js +0 -49
  1037. package/hooks/scripts/codex-review-gate.js +0 -84
  1038. package/hooks/scripts/command-log.js +0 -42
  1039. package/hooks/scripts/context-save.js +0 -342
  1040. package/hooks/scripts/devlog-gen.js +0 -230
  1041. package/hooks/scripts/figma-extract.js +0 -885
  1042. package/hooks/scripts/figma-refine.js +0 -315
  1043. package/hooks/scripts/figma-to-scss.js +0 -401
  1044. package/hooks/scripts/figma-validate.js +0 -353
  1045. package/hooks/scripts/hook-payload.js +0 -64
  1046. package/hooks/scripts/lib/anchor.js +0 -99
  1047. package/hooks/scripts/lib/console-allow.js +0 -66
  1048. package/hooks/scripts/lib/curation-index.js +0 -101
  1049. package/hooks/scripts/lib/dispatcher.js +0 -204
  1050. package/hooks/scripts/lib/ephemeral-lane.js +0 -106
  1051. package/hooks/scripts/lib/gates.js +0 -138
  1052. package/hooks/scripts/lib/glob.js +0 -32
  1053. package/hooks/scripts/lib/hook-context.js +0 -147
  1054. package/hooks/scripts/lib/inbox.js +0 -68
  1055. package/hooks/scripts/lib/iteration-cost.js +0 -178
  1056. package/hooks/scripts/lib/loop-ledger.js +0 -250
  1057. package/hooks/scripts/lib/pr-gate-runner.js +0 -62
  1058. package/hooks/scripts/lib/run-ledger.js +0 -271
  1059. package/hooks/scripts/lib/scope-from-spec.js +0 -340
  1060. package/hooks/scripts/llm-orchestrate.js +0 -699
  1061. package/hooks/scripts/loop-ledger.js +0 -167
  1062. package/hooks/scripts/plugin-hook-entry.js +0 -57
  1063. package/hooks/scripts/post-edit-dispatcher.js +0 -101
  1064. package/hooks/scripts/post-edit.js +0 -55
  1065. package/hooks/scripts/pr-test-gate.js +0 -23
  1066. package/hooks/scripts/pre-tool-dispatcher.js +0 -46
  1067. package/hooks/scripts/pre-tool-guard.js +0 -278
  1068. package/hooks/scripts/prompt-dispatcher.js +0 -237
  1069. package/hooks/scripts/recipe-extractor.js +0 -249
  1070. package/hooks/scripts/scope-guard.js +0 -107
  1071. package/hooks/scripts/sentinel-guard.js +0 -115
  1072. package/hooks/scripts/session-start.js +0 -229
  1073. package/hooks/scripts/step-counter.js +0 -364
  1074. package/hooks/scripts/stop-dispatcher.js +0 -56
  1075. package/hooks/scripts/stop-notify.js +0 -209
  1076. package/hooks/scripts/utils.js +0 -410
  1077. package/hooks/scripts/verify-ledger.js +0 -42
  1078. package/languages/csharp-unity.md +0 -515
  1079. package/languages/dart-flutter.md +0 -510
  1080. package/languages/gdscript-godot.md +0 -470
  1081. package/languages/go.md +0 -397
  1082. package/languages/java-spring.md +0 -587
  1083. package/languages/kotlin-android.md +0 -492
  1084. package/languages/python-django.md +0 -372
  1085. package/languages/python-fastapi.md +0 -387
  1086. package/languages/ruby-rails.md +0 -489
  1087. package/languages/rust.md +0 -426
  1088. package/languages/swift-ios.md +0 -517
  1089. package/languages/typescript-angular.md +0 -433
  1090. package/languages/typescript-astro.md +0 -416
  1091. package/languages/typescript-electron.md +0 -406
  1092. package/languages/typescript-nestjs.md +0 -524
  1093. package/languages/typescript-nextjs.md +0 -442
  1094. package/languages/typescript-node.md +0 -376
  1095. package/languages/typescript-nuxt.md +0 -522
  1096. package/languages/typescript-react-native.md +0 -447
  1097. package/languages/typescript-react.md +0 -526
  1098. package/languages/typescript-svelte.md +0 -407
  1099. package/languages/typescript-tauri.md +0 -365
  1100. package/languages/typescript-vue.md +0 -354
  1101. package/skills/vibe/references/routing-examples.md +0 -85
  1102. package/skills/vibe.agents-md/SKILL.md +0 -172
  1103. package/skills/vibe.agents-md/rubrics/what-to-keep.md +0 -49
  1104. package/skills/vibe.agents-md/templates/agents-md.md +0 -36
  1105. package/skills/vibe.agents-md/templates/claude-md.md +0 -54
  1106. package/skills/vibe.analyze/SKILL.md +0 -105
  1107. package/skills/vibe.analyze/references/mode1-feature.md +0 -81
  1108. package/skills/vibe.analyze/references/mode2-document.md +0 -50
  1109. package/skills/vibe.analyze/references/mode3-website.md +0 -47
  1110. package/skills/vibe.analyze/references/mode4-quality.md +0 -35
  1111. package/skills/vibe.analyze/references/output-templates.md +0 -188
  1112. package/skills/vibe.analyze/references/quality-gate.md +0 -93
  1113. package/skills/vibe.brand-assets/SKILL.md +0 -148
  1114. package/skills/vibe.brand-assets/references/mobile-assets.md +0 -6
  1115. package/skills/vibe.brand-assets/rubrics/asset-checklist.md +0 -98
  1116. package/skills/vibe.brand-assets/templates/brand-guide.md +0 -161
  1117. package/skills/vibe.capability-loop/SKILL.md +0 -208
  1118. package/skills/vibe.capability-loop/agents/capability-designer.md +0 -61
  1119. package/skills/vibe.capability-loop/agents/failure-analyst.md +0 -55
  1120. package/skills/vibe.capability-loop/agents/implementer.md +0 -50
  1121. package/skills/vibe.capability-loop/agents/tester.md +0 -53
  1122. package/skills/vibe.capability-loop/references/escalate.md +0 -86
  1123. package/skills/vibe.capability-loop/templates/capability-spec.md +0 -118
  1124. package/skills/vibe.capability-loop/templates/failure-analysis.md +0 -118
  1125. package/skills/vibe.chub-usage/SKILL.md +0 -11
  1126. package/skills/vibe.clone/SKILL.md +0 -136
  1127. package/skills/vibe.clone/references/capture-rules.md +0 -48
  1128. package/skills/vibe.clone/references/legal-and-error-recovery.md +0 -40
  1129. package/skills/vibe.clone/references/phase-commands.md +0 -118
  1130. package/skills/vibe.clone/references/refine-rules.md +0 -61
  1131. package/skills/vibe.clone/references/scaffold-phases.md +0 -59
  1132. package/skills/vibe.clone/references/setup-and-layout.md +0 -64
  1133. package/skills/vibe.clone/references/verification-loops.md +0 -67
  1134. package/skills/vibe.commerce-patterns/SKILL.md +0 -65
  1135. package/skills/vibe.commerce-patterns/rubrics/checkout-flow.md +0 -48
  1136. package/skills/vibe.commerce-patterns/templates/product-schema.md +0 -85
  1137. package/skills/vibe.commit-push-pr/SKILL.md +0 -83
  1138. package/skills/vibe.commit-push-pr/agents/change-analyzer.md +0 -55
  1139. package/skills/vibe.commit-push-pr/agents/message-writer.md +0 -50
  1140. package/skills/vibe.commit-push-pr/agents/pr-writer.md +0 -58
  1141. package/skills/vibe.commit-push-pr/agents/reviewer.md +0 -52
  1142. package/skills/vibe.commit-push-pr/rubrics/commit-message.md +0 -73
  1143. package/skills/vibe.commit-push-pr/templates/pr-body.md +0 -63
  1144. package/skills/vibe.context7-usage/SKILL.md +0 -11
  1145. package/skills/vibe.continue/SKILL.md +0 -42
  1146. package/skills/vibe.continue/agents/context-summarizer.md +0 -51
  1147. package/skills/vibe.continue/agents/document-writer.md +0 -63
  1148. package/skills/vibe.continue/agents/state-collector.md +0 -53
  1149. package/skills/vibe.continue/agents/verifier.md +0 -48
  1150. package/skills/vibe.continue/references/handoff-completeness.md +0 -62
  1151. package/skills/vibe.continue/references/handoff.md +0 -142
  1152. package/skills/vibe.contract/SKILL.md +0 -345
  1153. package/skills/vibe.create-prd/SKILL.md +0 -98
  1154. package/skills/vibe.create-prd/agents/edge-case-finder.md +0 -48
  1155. package/skills/vibe.create-prd/agents/prioritizer.md +0 -60
  1156. package/skills/vibe.create-prd/agents/requirements-writer.md +0 -48
  1157. package/skills/vibe.create-prd/agents/researcher.md +0 -55
  1158. package/skills/vibe.create-prd/agents/reviewer.md +0 -54
  1159. package/skills/vibe.create-prd/frameworks/jobs-to-be-done.md +0 -96
  1160. package/skills/vibe.create-prd/frameworks/rice-scoring.md +0 -97
  1161. package/skills/vibe.create-prd/orchestrator.md +0 -72
  1162. package/skills/vibe.create-prd/rubrics/completeness.md +0 -58
  1163. package/skills/vibe.create-prd/templates/prd.md +0 -139
  1164. package/skills/vibe.design/SKILL.md +0 -236
  1165. package/skills/vibe.design/heuristics/code-extract.md +0 -100
  1166. package/skills/vibe.design/references/README.md +0 -39
  1167. package/skills/vibe.design/references/brand-personality.md +0 -73
  1168. package/skills/vibe.design/references/design-context.md +0 -184
  1169. package/skills/vibe.design/references/ui-preview.md +0 -20
  1170. package/skills/vibe.design/templates/DESIGN.md.template +0 -100
  1171. package/skills/vibe.design/templates/design-context.json +0 -36
  1172. package/skills/vibe.design-refine/SKILL.md +0 -147
  1173. package/skills/vibe.design-refine/rubrics/polish-checklist.md +0 -68
  1174. package/skills/vibe.design-refine/rubrics/token-naming.md +0 -117
  1175. package/skills/vibe.design-refine/templates/design-system.md +0 -132
  1176. package/skills/vibe.design-refine/templates/polish-report.md +0 -64
  1177. package/skills/vibe.design-refine/templates/token-audit.md +0 -89
  1178. package/skills/vibe.design-review/SKILL.md +0 -150
  1179. package/skills/vibe.design-review/agents/a11y-auditor.md +0 -43
  1180. package/skills/vibe.design-review/agents/performance-auditor.md +0 -46
  1181. package/skills/vibe.design-review/agents/responsive-auditor.md +0 -46
  1182. package/skills/vibe.design-review/agents/scorer.md +0 -47
  1183. package/skills/vibe.design-review/agents/slop-detector.md +0 -47
  1184. package/skills/vibe.design-review/frameworks/core-web-vitals.md +0 -107
  1185. package/skills/vibe.design-review/frameworks/wcag-checklist.md +0 -64
  1186. package/skills/vibe.design-review/orchestrator.md +0 -66
  1187. package/skills/vibe.design-review/rubrics/ai-slop-patterns.md +0 -83
  1188. package/skills/vibe.design-review/rubrics/scoring.md +0 -63
  1189. package/skills/vibe.design-review/rubrics/ux-heuristics.md +0 -143
  1190. package/skills/vibe.design-review/templates/critique-report.md +0 -86
  1191. package/skills/vibe.design-review/templates/report.md +0 -88
  1192. package/skills/vibe.design-teach/SKILL.md +0 -11
  1193. package/skills/vibe.devlog/SKILL.md +0 -147
  1194. package/skills/vibe.devlog/references/auto-push.md +0 -10
  1195. package/skills/vibe.docs/SKILL.md +0 -121
  1196. package/skills/vibe.docs/references/agent.md +0 -59
  1197. package/skills/vibe.docs/references/api-docs-changelog.md +0 -34
  1198. package/skills/vibe.docs/references/arch.md +0 -28
  1199. package/skills/vibe.docs/references/codemaps-output.md +0 -23
  1200. package/skills/vibe.docs/references/codemaps.md +0 -17
  1201. package/skills/vibe.docs/references/diagram-spec.md +0 -34
  1202. package/skills/vibe.docs/references/diagram.md +0 -24
  1203. package/skills/vibe.docs/references/guide.md +0 -23
  1204. package/skills/vibe.docs/references/readme.md +0 -45
  1205. package/skills/vibe.docs/references/release.md +0 -31
  1206. package/skills/vibe.docs/templates/architecture.md +0 -80
  1207. package/skills/vibe.docs/templates/behavioral-principles.md +0 -47
  1208. package/skills/vibe.docs/templates/readme.md +0 -84
  1209. package/skills/vibe.docs/templates/release-notes.md +0 -74
  1210. package/skills/vibe.documentation-provider/SKILL.md +0 -22
  1211. package/skills/vibe.documentation-provider/references/chub.md +0 -141
  1212. package/skills/vibe.documentation-provider/references/context7-when-to-use.md +0 -50
  1213. package/skills/vibe.documentation-provider/references/context7.md +0 -107
  1214. package/skills/vibe.e2e-commerce/SKILL.md +0 -63
  1215. package/skills/vibe.e2e-commerce/templates/test-scenarios.md +0 -170
  1216. package/skills/vibe.educational-content/SKILL.md +0 -164
  1217. package/skills/vibe.educational-content/references/learning-design.md +0 -81
  1218. package/skills/vibe.educational-content/references/output-patterns.md +0 -109
  1219. package/skills/vibe.educational-content/references/source-method.md +0 -40
  1220. package/skills/vibe.event/SKILL.md +0 -66
  1221. package/skills/vibe.event/references/comms.md +0 -173
  1222. package/skills/vibe.event/references/contingency.md +0 -85
  1223. package/skills/vibe.event/references/d-day-checklist-template.md +0 -65
  1224. package/skills/vibe.event/references/email-invite-template.md +0 -99
  1225. package/skills/vibe.event/references/event-plan-template.md +0 -91
  1226. package/skills/vibe.event/references/operations.md +0 -208
  1227. package/skills/vibe.event/references/orchestration-legacy.md +0 -97
  1228. package/skills/vibe.event/references/planning.md +0 -145
  1229. package/skills/vibe.event/references/sns-post-template.md +0 -133
  1230. package/skills/vibe.event/references/timeline.md +0 -70
  1231. package/skills/vibe.event-comms/SKILL.md +0 -11
  1232. package/skills/vibe.event-ops/SKILL.md +0 -11
  1233. package/skills/vibe.event-planning/SKILL.md +0 -11
  1234. package/skills/vibe.figma/SKILL.md +0 -173
  1235. package/skills/vibe.figma/references/branch-phases.md +0 -113
  1236. package/skills/vibe.figma/references/branch1-read-convention.md +0 -82
  1237. package/skills/vibe.figma/references/branch2-read-standalone.md +0 -69
  1238. package/skills/vibe.figma/references/branch3-write.md +0 -122
  1239. package/skills/vibe.figma/references/core-implementation.md +0 -453
  1240. package/skills/vibe.figma/references/state-schema.md +0 -42
  1241. package/skills/vibe.figma/references/step-algorithms.md +0 -204
  1242. package/skills/vibe.figma/rubrics/conversion-rules.md +0 -141
  1243. package/skills/vibe.figma/rubrics/css-mapping.md +0 -125
  1244. package/skills/vibe.figma/rubrics/extraction-checklist.md +0 -51
  1245. package/skills/vibe.figma/rubrics/image-rules.md +0 -157
  1246. package/skills/vibe.figma/templates/component-index.md +0 -126
  1247. package/skills/vibe.figma/templates/component-spec.md +0 -168
  1248. package/skills/vibe.figma/templates/component.md +0 -140
  1249. package/skills/vibe.figma/templates/figma-handoff.md +0 -100
  1250. package/skills/vibe.figma/templates/remapped-tree.md +0 -277
  1251. package/skills/vibe.git-worktree/SKILL.md +0 -70
  1252. package/skills/vibe.git-worktree/references/troubleshooting.md +0 -9
  1253. package/skills/vibe.git-worktree/rubrics/when-to-use.md +0 -55
  1254. package/skills/vibe.harness/SKILL.md +0 -144
  1255. package/skills/vibe.harness/references/report-template.md +0 -46
  1256. package/skills/vibe.image/SKILL.md +0 -77
  1257. package/skills/vibe.image/references/image-generation-examples.md +0 -39
  1258. package/skills/vibe.llm/SKILL.md +0 -57
  1259. package/skills/vibe.loop/SKILL.md +0 -193
  1260. package/skills/vibe.loop/references/install-adapters.md +0 -25
  1261. package/skills/vibe.parallel-research/SKILL.md +0 -92
  1262. package/skills/vibe.parallel-research/agents/best-practices.md +0 -43
  1263. package/skills/vibe.parallel-research/agents/codebase-patterns.md +0 -46
  1264. package/skills/vibe.parallel-research/agents/framework-docs.md +0 -45
  1265. package/skills/vibe.parallel-research/agents/security-advisory.md +0 -46
  1266. package/skills/vibe.parallel-research/agents/synthesizer.md +0 -57
  1267. package/skills/vibe.parallel-research/experts/best-practices.md +0 -50
  1268. package/skills/vibe.parallel-research/experts/codebase-patterns.md +0 -70
  1269. package/skills/vibe.parallel-research/experts/framework-docs.md +0 -65
  1270. package/skills/vibe.parallel-research/experts/security-advisory.md +0 -69
  1271. package/skills/vibe.parallel-research/orchestrator.md +0 -81
  1272. package/skills/vibe.parallel-research/templates/awesome-list.md +0 -32
  1273. package/skills/vibe.parallel-research/templates/paper.md +0 -88
  1274. package/skills/vibe.parallel-research/templates/synthesis.md +0 -101
  1275. package/skills/vibe.presentation/SKILL.md +0 -90
  1276. package/skills/vibe.presentation/references/style-presets.md +0 -25
  1277. package/skills/vibe.prioritization/SKILL.md +0 -95
  1278. package/skills/vibe.prioritization/rubrics/frameworks.md +0 -79
  1279. package/skills/vibe.prioritization/templates/scoring-matrix.md +0 -69
  1280. package/skills/vibe.priority-todos/SKILL.md +0 -11
  1281. package/skills/vibe.react-best-practices/SKILL.md +0 -61
  1282. package/skills/vibe.react-best-practices/rubrics/performance.md +0 -82
  1283. package/skills/vibe.react-best-practices/rubrics/server-components.md +0 -86
  1284. package/skills/vibe.reason/SKILL.md +0 -160
  1285. package/skills/vibe.reason/references/output-format-template.md +0 -57
  1286. package/skills/vibe.reason/references/quality-rubrics.md +0 -94
  1287. package/skills/vibe.reason/references/worked-example.md +0 -45
  1288. package/skills/vibe.regress/SKILL.md +0 -233
  1289. package/skills/vibe.regress/templates/bug.md +0 -44
  1290. package/skills/vibe.regress/templates/test-template.md +0 -30
  1291. package/skills/vibe.review/SKILL.md +0 -321
  1292. package/skills/vibe.review/references/boundary-check.md +0 -25
  1293. package/skills/vibe.review/references/output-template.md +0 -74
  1294. package/skills/vibe.review/references/priority-todos.md +0 -66
  1295. package/skills/vibe.review/references/quality-gate.md +0 -84
  1296. package/skills/vibe.review/references/race-mode.md +0 -117
  1297. package/skills/vibe.review/references/todo-board-template.md +0 -59
  1298. package/skills/vibe.review/references/todo-prioritization.md +0 -70
  1299. package/skills/vibe.review/references/ui-ux-review.md +0 -39
  1300. package/skills/vibe.review/references/worked-examples.md +0 -94
  1301. package/skills/vibe.run/SKILL.md +0 -254
  1302. package/skills/vibe.run/internal/arch-guard/agents/detector.md +0 -48
  1303. package/skills/vibe.run/internal/arch-guard/agents/reporter.md +0 -48
  1304. package/skills/vibe.run/internal/arch-guard/agents/rule-generator.md +0 -49
  1305. package/skills/vibe.run/internal/arch-guard/agents/violation-checker.md +0 -51
  1306. package/skills/vibe.run/internal/arch-guard/frameworks/clean-architecture.md +0 -108
  1307. package/skills/vibe.run/internal/arch-guard/frameworks/solid.md +0 -102
  1308. package/skills/vibe.run/internal/arch-guard/scripts/check-boundaries.js +0 -90
  1309. package/skills/vibe.run/internal/arch-guard/templates/arch-rules.json +0 -47
  1310. package/skills/vibe.run/internal/arch-guard/templates/violation-report.md +0 -53
  1311. package/skills/vibe.run/internal/exec-plan/agents/decomposer.md +0 -47
  1312. package/skills/vibe.run/internal/exec-plan/agents/dependency-mapper.md +0 -44
  1313. package/skills/vibe.run/internal/exec-plan/agents/estimator.md +0 -43
  1314. package/skills/vibe.run/internal/exec-plan/agents/validator.md +0 -55
  1315. package/skills/vibe.run/internal/exec-plan/orchestrator.md +0 -72
  1316. package/skills/vibe.run/internal/exec-plan/rubrics/complexity-scoring.md +0 -75
  1317. package/skills/vibe.run/internal/exec-plan/templates/plan.md +0 -147
  1318. package/skills/vibe.run/references/arch-guard.md +0 -178
  1319. package/skills/vibe.run/references/automation-level.md +0 -51
  1320. package/skills/vibe.run/references/brand-assets.md +0 -59
  1321. package/skills/vibe.run/references/coverage-loop.md +0 -94
  1322. package/skills/vibe.run/references/e2e-and-autofix.md +0 -43
  1323. package/skills/vibe.run/references/exec-plan.md +0 -145
  1324. package/skills/vibe.run/references/guidelines-and-tools.md +0 -84
  1325. package/skills/vibe.run/references/parallel-agents.md +0 -253
  1326. package/skills/vibe.run/references/process-steps.md +0 -179
  1327. package/skills/vibe.run/references/race-review.md +0 -272
  1328. package/skills/vibe.run/references/restraint.md +0 -66
  1329. package/skills/vibe.scaffold/SKILL.md +0 -193
  1330. package/skills/vibe.scaffold/references/clean-architecture.md +0 -17
  1331. package/skills/vibe.seo-checklist/SKILL.md +0 -59
  1332. package/skills/vibe.seo-checklist/frameworks/structured-data.md +0 -153
  1333. package/skills/vibe.seo-checklist/rubrics/content-seo.md +0 -42
  1334. package/skills/vibe.seo-checklist/rubrics/technical-seo.md +0 -48
  1335. package/skills/vibe.spec/SKILL.md +0 -328
  1336. package/skills/vibe.spec/references/legacy-artifacts.md +0 -6
  1337. package/skills/vibe.test/SKILL.md +0 -209
  1338. package/skills/vibe.test/references/report-template.md +0 -101
  1339. package/skills/vibe.tool-fallback/SKILL.md +0 -83
  1340. package/skills/vibe.tool-fallback/references/external-llm.md +0 -10
  1341. package/skills/vibe.tool-fallback/references/file-lookup.md +0 -9
  1342. package/skills/vibe.tool-fallback/references/web-search.md +0 -11
  1343. package/skills/vibe.tool-fallback/rubrics/fallback-chain.md +0 -58
  1344. package/skills/vibe.trace/SKILL.md +0 -8
  1345. package/skills/vibe.ui-ux-pro-max/SKILL.md +0 -236
  1346. package/skills/vibe.ui-ux-pro-max/reference/color-and-contrast.md +0 -517
  1347. package/skills/vibe.ui-ux-pro-max/reference/interaction-design.md +0 -544
  1348. package/skills/vibe.ui-ux-pro-max/reference/motion-design.md +0 -591
  1349. package/skills/vibe.ui-ux-pro-max/reference/responsive-design.md +0 -463
  1350. package/skills/vibe.ui-ux-pro-max/reference/spatial-design.md +0 -390
  1351. package/skills/vibe.ui-ux-pro-max/reference/typography.md +0 -455
  1352. package/skills/vibe.ui-ux-pro-max/reference/ux-writing.md +0 -469
  1353. package/skills/vibe.ui-ux-pro-max/references/charts-and-data.md +0 -7
  1354. package/skills/vibe.ui-ux-pro-max/rubrics/interaction-states.md +0 -83
  1355. package/skills/vibe.ui-ux-pro-max/rubrics/responsive-breakpoints.md +0 -99
  1356. package/skills/vibe.user-personas/SKILL.md +0 -83
  1357. package/skills/vibe.user-personas/rubrics/research-methods.md +0 -56
  1358. package/skills/vibe.user-personas/templates/persona.md +0 -89
  1359. package/skills/vibe.verify/SKILL.md +0 -175
  1360. package/skills/vibe.verify/references/trace-mode.md +0 -271
  1361. package/skills/vibe.video-production/SKILL.md +0 -72
  1362. package/skills/vibe.video-production/rubrics/quality-checklist.md +0 -58
  1363. package/skills/vibe.video-production/templates/production-plan.md +0 -104
  1364. package/vibe/config.json +0 -30
  1365. package/vibe/constitution.md +0 -254
  1366. package/vibe/rules/loop-contract.md +0 -256
  1367. package/vibe/rules/orchestrator-contract.md +0 -57
  1368. package/vibe/rules/prefix-cache-surface.md +0 -98
  1369. package/vibe/rules/principles/communication-guide.md +0 -98
  1370. package/vibe/rules/principles/development-philosophy.md +0 -52
  1371. package/vibe/rules/principles/dual-harness-doctrine.md +0 -74
  1372. package/vibe/rules/principles/quick-start.md +0 -102
  1373. package/vibe/rules/quality/bdd-contract-testing.md +0 -393
  1374. package/vibe/rules/quality/checklist.md +0 -276
  1375. package/vibe/rules/quality/performance.md +0 -236
  1376. package/vibe/rules/quality/testing-strategy.md +0 -440
  1377. package/vibe/rules/standards/anti-patterns.md +0 -541
  1378. package/vibe/rules/standards/code-structure.md +0 -291
  1379. package/vibe/rules/standards/complexity-metrics.md +0 -313
  1380. package/vibe/rules/standards/git-workflow.md +0 -237
  1381. package/vibe/rules/standards/naming-conventions.md +0 -198
  1382. package/vibe/rules/standards/security.md +0 -305
  1383. package/vibe/rules/writing/document-style.md +0 -74
  1384. package/vibe/setup.sh +0 -31
  1385. package/vibe/templates/claudemd-template.md +0 -62
  1386. package/vibe/templates/constitution-template.md +0 -267
  1387. package/vibe/templates/contract-backend-template.md +0 -526
  1388. package/vibe/templates/contract-frontend-template.md +0 -599
  1389. package/vibe/templates/feature-template.md +0 -96
  1390. package/vibe/templates/loop-template.md +0 -85
  1391. package/vibe/templates/plan-template.md +0 -194
  1392. package/vibe/templates/spec-template.md +0 -184
  1393. package/vibe/ui-ux-data/charts.csv +0 -26
  1394. package/vibe/ui-ux-data/colors.csv +0 -97
  1395. package/vibe/ui-ux-data/icons.csv +0 -101
  1396. package/vibe/ui-ux-data/landing.csv +0 -31
  1397. package/vibe/ui-ux-data/products.csv +0 -97
  1398. package/vibe/ui-ux-data/react-performance.csv +0 -45
  1399. package/vibe/ui-ux-data/stacks/astro.csv +0 -54
  1400. package/vibe/ui-ux-data/stacks/flutter.csv +0 -53
  1401. package/vibe/ui-ux-data/stacks/html-tailwind.csv +0 -56
  1402. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +0 -53
  1403. package/vibe/ui-ux-data/stacks/nextjs.csv +0 -53
  1404. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +0 -51
  1405. package/vibe/ui-ux-data/stacks/nuxtjs.csv +0 -59
  1406. package/vibe/ui-ux-data/stacks/react-native.csv +0 -52
  1407. package/vibe/ui-ux-data/stacks/react.csv +0 -54
  1408. package/vibe/ui-ux-data/stacks/shadcn.csv +0 -61
  1409. package/vibe/ui-ux-data/stacks/svelte.csv +0 -54
  1410. package/vibe/ui-ux-data/stacks/swiftui.csv +0 -51
  1411. package/vibe/ui-ux-data/stacks/vue.csv +0 -50
  1412. package/vibe/ui-ux-data/styles.csv +0 -68
  1413. package/vibe/ui-ux-data/typography.csv +0 -58
  1414. package/vibe/ui-ux-data/ui-reasoning.csv +0 -101
  1415. package/vibe/ui-ux-data/ux-guidelines.csv +0 -100
  1416. package/vibe/ui-ux-data/version.json +0 -31
  1417. package/vibe/ui-ux-data/web-interface.csv +0 -31
@@ -1,885 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * figma-extract.js — Figma REST API 디자인 추출 도구
5
- *
6
- * Usage:
7
- * node figma-extract.js tree <fileKey> <nodeId> [--depth=10]
8
- * node figma-extract.js images <fileKey> <nodeId> --out=<dir> [--depth=10]
9
- * node figma-extract.js screenshot <fileKey> <nodeId> --out=<path>
10
- *
11
- * Token: ~/.vibe/config.json → credentials.figma.accessToken
12
- * 또는 FIGMA_ACCESS_TOKEN env
13
- */
14
-
15
- import fs from 'fs';
16
- import path from 'path';
17
- import os from 'os';
18
- import { execFileSync } from 'child_process';
19
-
20
- // ─── Config ─────────────────────────────────────────────────────────
21
-
22
- const FIGMA_API = 'https://api.figma.com/v1';
23
- const MAX_RETRIES = 3;
24
- const INITIAL_DELAY_MS = 2000;
25
- const SCREENSHOT_INTERVAL_MS = 500; // rate limit 보호: screenshot 간 최소 간격
26
- const DOWNLOAD_CONCURRENCY = 8; // 이미지 다운로드 최대 동시 수
27
-
28
- // ─── WebP 변환 ──────────────────────────────────────────────────────
29
-
30
- let _cwebpAvailable;
31
- function hasCwebp() {
32
- if (_cwebpAvailable === undefined) {
33
- try { execFileSync('cwebp', ['-version'], { stdio: 'ignore' }); _cwebpAvailable = true; }
34
- catch { _cwebpAvailable = false; }
35
- }
36
- return _cwebpAvailable;
37
- }
38
-
39
- /** PNG 버퍼를 webp 파일로 저장. cwebp 없으면 png 폴백. */
40
- function writeAsWebp(pngBuf, outPath) {
41
- if (!hasCwebp()) {
42
- // cwebp 없으면 png 폴백
43
- const fallback = outPath.replace(/\.webp$/, '.png');
44
- fs.writeFileSync(fallback, pngBuf);
45
- return fallback;
46
- }
47
- const tmpPng = outPath + '.tmp.png';
48
- fs.writeFileSync(tmpPng, pngBuf);
49
- try {
50
- execFileSync('cwebp', ['-q', '85', tmpPng, '-o', outPath], { stdio: 'ignore' });
51
- fs.unlinkSync(tmpPng);
52
- return outPath;
53
- } catch {
54
- // 변환 실패 시 png 폴백
55
- const fallback = outPath.replace(/\.webp$/, '.png');
56
- fs.renameSync(tmpPng, fallback);
57
- return fallback;
58
- }
59
- }
60
-
61
- function loadToken() {
62
- if (process.env.FIGMA_ACCESS_TOKEN) return process.env.FIGMA_ACCESS_TOKEN;
63
- const configPath = path.join(os.homedir(), '.vibe', 'config.json');
64
- try {
65
- const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
66
- const token = config?.credentials?.figma?.accessToken;
67
- if (token) return token;
68
- } catch { /* ignore */ }
69
- return null;
70
- }
71
-
72
- function fail(msg) { console.error(JSON.stringify({ error: msg })); process.exit(1); }
73
- function sleep(ms) { return new Promise(r => setTimeout(r, ms)); }
74
-
75
- // ─── Concurrency Helpers ────────────────────────────────────────────
76
-
77
- /** 병렬 다운로드 풀: 최대 N개 동시 실행 (이미지 다운로드용) */
78
- async function parallelPool(tasks, concurrency = DOWNLOAD_CONCURRENCY) {
79
- const results = [];
80
- let idx = 0;
81
- const workers = Array.from({ length: Math.min(concurrency, tasks.length) }, async () => {
82
- while (idx < tasks.length) {
83
- const i = idx++;
84
- try { results[i] = await tasks[i](); } catch (e) { results[i] = e; }
85
- }
86
- });
87
- await Promise.all(workers);
88
- return results;
89
- }
90
-
91
- /** 순차 큐: screenshot API용 (rate limit 보호, 간격 보장) */
92
- async function sequentialQueue(tasks, intervalMs = SCREENSHOT_INTERVAL_MS) {
93
- const results = [];
94
- for (let i = 0; i < tasks.length; i++) {
95
- if (i > 0) await sleep(intervalMs);
96
- try { results.push(await tasks[i]()); } catch (e) { results.push({ error: e.message }); }
97
- }
98
- return results;
99
- }
100
-
101
- // ─── HTTP (에러 보류 & 복구) ────────────────────────────────────────
102
-
103
- async function apiFetch(endpoint, token, { silent = false } = {}) {
104
- let lastErr = '';
105
- for (let i = 0; i < MAX_RETRIES; i++) {
106
- try {
107
- const res = await fetch(`${FIGMA_API}${endpoint}`, { headers: { 'X-Figma-Token': token } });
108
- if (res.status === 429) { await sleep(INITIAL_DELAY_MS * 2 ** i); continue; }
109
- if (res.status === 403) { if (silent) return null; fail('403 Forbidden — check token permissions'); }
110
- if (res.status === 404) { if (silent) return null; fail('404 — check fileKey/nodeId'); }
111
- if (!res.ok) {
112
- lastErr = `HTTP ${res.status}`;
113
- if (res.status >= 500) { await sleep(INITIAL_DELAY_MS * 2 ** i); continue; }
114
- if (silent) return null;
115
- fail(lastErr);
116
- }
117
- return await res.json();
118
- } catch (e) {
119
- lastErr = e.message;
120
- if (i < MAX_RETRIES - 1) await sleep(INITIAL_DELAY_MS * 2 ** i);
121
- }
122
- }
123
- if (silent) return null;
124
- fail(`Failed after ${MAX_RETRIES} retries: ${lastErr}`);
125
- }
126
-
127
- // ─── Color ──────────────────────────────────────────────────────────
128
-
129
- function toCSS(c) {
130
- if (!c) return null;
131
- const r = Math.round(c.r * 255), g = Math.round(c.g * 255), b = Math.round(c.b * 255), a = c.a ?? 1;
132
- if (a === 1) return `#${r.toString(16).padStart(2,'0')}${g.toString(16).padStart(2,'0')}${b.toString(16).padStart(2,'0')}`;
133
- return `rgba(${r}, ${g}, ${b}, ${+a.toFixed(2)})`;
134
- }
135
-
136
- // ─── Gradient Helpers ───────────────────────────────────────────────
137
-
138
- function toLinearGradient(f) {
139
- if (!f.gradientHandlePositions || !f.gradientStops) return null;
140
- const [p0, p1] = f.gradientHandlePositions;
141
- const angle = Math.round(Math.atan2(p1.y - p0.y, p1.x - p0.x) * 180 / Math.PI + 90);
142
- const opacity = f.opacity ?? 1;
143
- const stops = f.gradientStops.map(s => {
144
- const c = opacity < 1 ? { ...s.color, a: (s.color.a ?? 1) * opacity } : s.color;
145
- return `${toCSS(c)} ${Math.round(s.position * 100)}%`;
146
- }).join(', ');
147
- return `linear-gradient(${angle}deg, ${stops})`;
148
- }
149
-
150
- function toRadialGradient(f) {
151
- if (!f.gradientStops) return null;
152
- const opacity = f.opacity ?? 1;
153
- const stops = f.gradientStops.map(s => {
154
- const c = opacity < 1 ? { ...s.color, a: (s.color.a ?? 1) * opacity } : s.color;
155
- return `${toCSS(c)} ${Math.round(s.position * 100)}%`;
156
- }).join(', ');
157
- return `radial-gradient(circle, ${stops})`;
158
- }
159
-
160
- // ─── Blend Mode Map ─────────────────────────────────────────────────
161
-
162
- const BLEND_MODES = { MULTIPLY:'multiply', SCREEN:'screen', OVERLAY:'overlay', DARKEN:'darken', LIGHTEN:'lighten', COLOR_DODGE:'color-dodge', COLOR_BURN:'color-burn', HARD_LIGHT:'hard-light', SOFT_LIGHT:'soft-light', DIFFERENCE:'difference', EXCLUSION:'exclusion', HUE:'hue', SATURATION:'saturation', COLOR:'color', LUMINOSITY:'luminosity' };
163
-
164
- // Figma-only blend modes with no CSS equivalent (silent-drop hazards)
165
- const UNSUPPORTED_BLEND_MODES = new Set(['LINEAR_BURN', 'LINEAR_DODGE', 'PLUS_DARKER', 'PLUS_LIGHTER']);
166
-
167
- // ─── Raw extraction & Audit (Figma→CSS translation-loss detection) ──
168
-
169
- /** Pull raw numeric Figma properties for later raw-vs-computed reconciliation. */
170
- function extractRaw(n) {
171
- const raw = {};
172
- if (n.itemSpacing != null) raw.itemSpacing = n.itemSpacing;
173
- if (n.paddingTop != null) raw.paddingTop = n.paddingTop;
174
- if (n.paddingRight != null) raw.paddingRight = n.paddingRight;
175
- if (n.paddingBottom != null) raw.paddingBottom = n.paddingBottom;
176
- if (n.paddingLeft != null) raw.paddingLeft = n.paddingLeft;
177
- if (n.cornerRadius != null) raw.cornerRadius = n.cornerRadius;
178
- if (n.rectangleCornerRadii) raw.rectangleCornerRadii = n.rectangleCornerRadii;
179
- if (n.strokeWeight != null) raw.strokeWeight = n.strokeWeight;
180
- if (n.strokeAlign) raw.strokeAlign = n.strokeAlign;
181
- if (n.blendMode) raw.blendMode = n.blendMode;
182
- if (n.opacity != null) raw.opacity = n.opacity;
183
- if (n.type === 'TEXT' && n.style) {
184
- const s = n.style;
185
- if (s.fontSize != null) raw.fontSize = s.fontSize;
186
- if (s.lineHeightPx != null) raw.lineHeightPx = s.lineHeightPx;
187
- if (s.letterSpacing != null) raw.letterSpacing = s.letterSpacing;
188
- if (s.fontWeight != null) raw.fontWeight = s.fontWeight;
189
- if (s.leadingTrim) raw.leadingTrim = s.leadingTrim;
190
- if (s.textBoxTrim) raw.textBoxTrim = s.textBoxTrim;
191
- }
192
- return raw;
193
- }
194
-
195
- /** Detect Figma properties that do not cross the CSS boundary cleanly. */
196
- function auditNode(n) {
197
- const warnings = [];
198
- // Stroke alignment — only CENTER maps to CSS border
199
- if (n.strokeAlign && n.strokeAlign !== 'CENTER' && (n.strokes || []).some(s => s.visible !== false)) {
200
- warnings.push({
201
- property: 'strokeAlign',
202
- value: n.strokeAlign,
203
- severity: 'P1',
204
- reason: `CSS border renders stroke centered; Figma ${n.strokeAlign} cannot be matched without box-sizing trade-offs.`,
205
- });
206
- }
207
- // Node-level blend mode
208
- if (n.blendMode && UNSUPPORTED_BLEND_MODES.has(n.blendMode)) {
209
- warnings.push({
210
- property: 'blendMode',
211
- value: n.blendMode,
212
- severity: 'P1',
213
- reason: `mix-blend-mode has no equivalent for ${n.blendMode}.`,
214
- });
215
- }
216
- // Per-fill blend mode
217
- for (const f of n.fills || []) {
218
- if (f.visible !== false && f.blendMode && UNSUPPORTED_BLEND_MODES.has(f.blendMode)) {
219
- warnings.push({
220
- property: 'fill.blendMode',
221
- value: f.blendMode,
222
- severity: 'P1',
223
- reason: `background-blend-mode has no equivalent for ${f.blendMode}.`,
224
- });
225
- }
226
- }
227
- // leadingTrim / textBoxTrim (text-box-trim is Firefox-unsupported)
228
- if (n.type === 'TEXT' && n.style) {
229
- if (n.style.leadingTrim && n.style.leadingTrim !== 'NONE') {
230
- warnings.push({
231
- property: 'leadingTrim',
232
- value: n.style.leadingTrim,
233
- severity: 'P2',
234
- reason: 'text-box-trim is not supported in Firefox; visual vertical alignment will drift.',
235
- });
236
- }
237
- if (n.style.textBoxTrim && n.style.textBoxTrim !== 'NONE') {
238
- warnings.push({
239
- property: 'textBoxTrim',
240
- value: n.style.textBoxTrim,
241
- severity: 'P2',
242
- reason: 'text-box-trim browser support is limited.',
243
- });
244
- }
245
- }
246
- // Constraints SCALE/CENTER — no CSS layout equivalent
247
- if (n.constraints) {
248
- const { horizontal, vertical } = n.constraints;
249
- for (const [axis, val] of [['horizontal', horizontal], ['vertical', vertical]]) {
250
- if (val === 'SCALE' || val === 'CENTER') {
251
- warnings.push({
252
- property: `constraints.${axis}`,
253
- value: val,
254
- severity: 'P2',
255
- reason: `Figma ${val} constraint has no direct CSS mapping; responsive behavior will diverge.`,
256
- });
257
- }
258
- }
259
- }
260
- // Individual stroke weights combined with non-center align
261
- if (n.individualStrokeWeights && n.strokeAlign && n.strokeAlign !== 'CENTER') {
262
- warnings.push({
263
- property: 'individualStrokeWeights',
264
- value: n.strokeAlign,
265
- severity: 'P2',
266
- reason: 'Per-side border widths only align cleanly when strokeAlign=CENTER.',
267
- });
268
- }
269
- return warnings;
270
- }
271
-
272
- // ─── CSS Extraction ─────────────────────────────────────────────────
273
-
274
- function extractCSS(n) {
275
- const css = {};
276
- // Layout
277
- if (n.layoutMode === 'VERTICAL') { css.display = 'flex'; css.flexDirection = 'column'; }
278
- else if (n.layoutMode === 'HORIZONTAL') { css.display = 'flex'; css.flexDirection = 'row'; }
279
- const axM = { MIN:'flex-start', CENTER:'center', MAX:'flex-end', SPACE_BETWEEN:'space-between' };
280
- const crM = { MIN:'flex-start', CENTER:'center', MAX:'flex-end', BASELINE:'baseline' };
281
- if (n.primaryAxisAlignItems && axM[n.primaryAxisAlignItems]) css.justifyContent = axM[n.primaryAxisAlignItems];
282
- if (n.counterAxisAlignItems && crM[n.counterAxisAlignItems]) css.alignItems = crM[n.counterAxisAlignItems];
283
- if (n.itemSpacing > 0) css.gap = `${n.itemSpacing}px`;
284
- // layoutGrow
285
- if (n.layoutGrow === 1) css.flexGrow = '1';
286
- // Padding
287
- const pt=n.paddingTop||0, pr=n.paddingRight||0, pb=n.paddingBottom||0, pl=n.paddingLeft||0;
288
- if (pt||pr||pb||pl) css.padding = `${pt}px ${pr}px ${pb}px ${pl}px`;
289
- // Size
290
- if (n.absoluteBoundingBox) { css.width = `${Math.round(n.absoluteBoundingBox.width)}px`; css.height = `${Math.round(n.absoluteBoundingBox.height)}px`; }
291
- // layoutSizing — HUG removes fixed dimensions, FILL handled by converter with parent context
292
- if (n.layoutSizingHorizontal === 'HUG') delete css.width;
293
- if (n.layoutSizingVertical === 'HUG') delete css.height;
294
- // Position / overflow / opacity
295
- if (n.layoutPositioning === 'ABSOLUTE') css.position = 'absolute';
296
- if (n.clipsContent) css.overflow = 'hidden';
297
- if (n.opacity != null && n.opacity < 1) css.opacity = n.opacity.toFixed(2);
298
- // Rotation
299
- if (n.rotation != null && Math.abs(n.rotation) > 0.05) {
300
- const deg = +((-n.rotation) % 360).toFixed(2);
301
- css.transform = `rotate(${deg}deg)`;
302
- }
303
- // Node-level blend mode
304
- if (n.blendMode && BLEND_MODES[n.blendMode]) css.mixBlendMode = BLEND_MODES[n.blendMode];
305
- // Radius
306
- if (n.cornerRadius > 0) css.borderRadius = `${n.cornerRadius}px`;
307
- else if (n.rectangleCornerRadii) { const [a,b,c,d] = n.rectangleCornerRadii; css.borderRadius = `${a}px ${b}px ${c}px ${d}px`; }
308
- // Fills — multi-fill aware
309
- let imgRef, imgScaleMode;
310
- const visibleFills = (n.fills||[]).filter(f=>f.visible!==false);
311
- // Backward compat: single-fill css properties
312
- const firstSolid = visibleFills.find(f=>f.type==='SOLID');
313
- if (firstSolid) css.backgroundColor = toCSS({ ...firstSolid.color, a: firstSolid.opacity ?? firstSolid.color?.a ?? 1 });
314
- const firstImage = visibleFills.find(f=>f.type==='IMAGE');
315
- if (firstImage) { imgRef = firstImage.imageRef; imgScaleMode = firstImage.scaleMode; }
316
- // Gradient → backgroundImage
317
- const gradients = [];
318
- for (const f of visibleFills) {
319
- if (f.type === 'GRADIENT_LINEAR') { const g = toLinearGradient(f); if (g) gradients.push(g); }
320
- else if (f.type === 'GRADIENT_RADIAL' || f.type === 'GRADIENT_ANGULAR' || f.type === 'GRADIENT_DIAMOND') {
321
- const g = toRadialGradient(f); if (g) gradients.push(g);
322
- }
323
- }
324
- if (gradients.length) css.backgroundImage = gradients.join(', ');
325
- // Per-fill blendMode → backgroundBlendMode
326
- for (const f of visibleFills) {
327
- if (f.blendMode && f.blendMode !== 'NORMAL' && BLEND_MODES[f.blendMode]) {
328
- css.backgroundBlendMode = BLEND_MODES[f.blendMode]; break;
329
- }
330
- }
331
- // Fill filters (saturation → grayscale/saturate)
332
- for (const f of visibleFills) {
333
- if (f.filters?.saturation != null && f.filters.saturation !== 0) {
334
- const sat = f.filters.saturation;
335
- const filterVal = sat < 0 ? `grayscale(${Math.round(Math.abs(sat) * 100)}%)` : `saturate(${Math.round((1 + sat) * 100)}%)`;
336
- css.filter = (css.filter ? css.filter + ' ' : '') + filterVal;
337
- }
338
- }
339
- // Multi-fill structured array (when 2+ visible fills — for converter)
340
- let _fills;
341
- if (visibleFills.length > 1) {
342
- _fills = visibleFills.map(f => {
343
- const entry = { type: f.type };
344
- if (f.type === 'SOLID') entry.color = toCSS({ ...f.color, a: f.opacity ?? f.color?.a ?? 1 });
345
- if (f.type === 'IMAGE') { entry.imageRef = f.imageRef; if (f.scaleMode) entry.scaleMode = f.scaleMode; }
346
- if (f.type?.startsWith('GRADIENT_')) {
347
- entry.gradient = f.type === 'GRADIENT_LINEAR' ? toLinearGradient(f) : toRadialGradient(f);
348
- }
349
- if (f.blendMode && f.blendMode !== 'NORMAL' && BLEND_MODES[f.blendMode]) entry.blendMode = BLEND_MODES[f.blendMode];
350
- if (f.filters?.saturation != null && f.filters.saturation !== 0) entry.filters = f.filters;
351
- return entry;
352
- });
353
- }
354
- // Strokes — strokeAlign aware + individual strokes + dashes
355
- const stroke = (n.strokes||[]).find(s=>s.visible!==false&&s.type==='SOLID');
356
- const isw = n.individualStrokeWeights;
357
- const hasStroke = stroke && (n.strokeWeight || isw);
358
- if (hasStroke) {
359
- const strokeColor = toCSS({ ...stroke.color, a: stroke.opacity ?? stroke.color?.a ?? 1 });
360
- // Individual stroke weights (different per side)
361
- if (isw && (isw.top !== isw.bottom || isw.left !== isw.right || isw.top !== isw.left)) {
362
- if (isw.top) css.borderTop = `${isw.top}px solid ${strokeColor}`;
363
- if (isw.right) css.borderRight = `${isw.right}px solid ${strokeColor}`;
364
- if (isw.bottom) css.borderBottom = `${isw.bottom}px solid ${strokeColor}`;
365
- if (isw.left) css.borderLeft = `${isw.left}px solid ${strokeColor}`;
366
- } else if (n.strokeAlign === 'OUTSIDE') {
367
- css.outline = `${n.strokeWeight}px solid ${strokeColor}`;
368
- } else {
369
- css.border = `${n.strokeWeight}px solid ${strokeColor}`;
370
- if (n.strokeAlign === 'INSIDE') css.boxSizing = 'border-box';
371
- }
372
- // Dashed strokes
373
- if (n.strokeDashes?.length) {
374
- css.borderStyle = 'dashed';
375
- }
376
- }
377
- // Effects
378
- const shadows = [];
379
- for (const e of (n.effects||[]).filter(e=>e.visible!==false)) {
380
- if (e.type==='DROP_SHADOW'||e.type==='INNER_SHADOW') {
381
- const ins = e.type==='INNER_SHADOW'?'inset ':'';
382
- shadows.push(`${ins}${e.offset?.x||0}px ${e.offset?.y||0}px ${e.radius||0}px ${e.spread||0}px ${toCSS(e.color)}`);
383
- } else if (e.type==='LAYER_BLUR') {
384
- css.filter = (css.filter ? css.filter + ' ' : '') + `blur(${e.radius}px)`;
385
- } else if (e.type==='BACKGROUND_BLUR') css.backdropFilter = `blur(${e.radius}px)`;
386
- }
387
- if (shadows.length) css.boxShadow = shadows.join(', ');
388
- // Text
389
- if (n.type === 'TEXT' && n.style) {
390
- const s = n.style;
391
- if (s.fontFamily) css.fontFamily = `'${s.fontFamily}', sans-serif`;
392
- if (s.fontSize) css.fontSize = `${s.fontSize}px`;
393
- if (s.fontWeight) css.fontWeight = String(s.fontWeight);
394
- if (s.lineHeightPx) css.lineHeight = `${s.lineHeightPx}px`;
395
- if (s.letterSpacing) css.letterSpacing = `${s.letterSpacing}px`;
396
- const ta = { LEFT:'left', CENTER:'center', RIGHT:'right', JUSTIFIED:'justify' };
397
- if (s.textAlignHorizontal && ta[s.textAlignHorizontal]) css.textAlign = ta[s.textAlignHorizontal];
398
- // textCase → text-transform
399
- const tc = { UPPER:'uppercase', LOWER:'lowercase', TITLE:'capitalize' };
400
- if (s.textCase && tc[s.textCase]) css.textTransform = tc[s.textCase];
401
- // textTruncation → ellipsis
402
- if (s.textTruncation === 'ENDING') {
403
- css.overflow = 'hidden'; css.textOverflow = 'ellipsis'; css.whiteSpace = 'nowrap';
404
- }
405
- // paragraphSpacing
406
- if (s.paragraphSpacing > 0) css.marginBottom = `${s.paragraphSpacing}px`;
407
- const tf = visibleFills.find(f=>f.type==='SOLID');
408
- if (tf) css.color = toCSS(tf.color);
409
- }
410
- const result = { ...css };
411
- if (imgRef) result._imageRef = imgRef;
412
- if (imgScaleMode) result._imageScaleMode = imgScaleMode;
413
- if (_fills) result._fills = _fills;
414
- return result;
415
- }
416
-
417
- // ─── Determination (image-vs-HTML) Helpers ──────────────────────────
418
-
419
- const BG_NAME_RE = /^(BG|bg|배경|background)$/i;
420
- const VECTOR_TYPE_RE = /^(VECTOR|LINE|BOOLEAN_OPERATION|STAR|REGULAR_POLYGON)$/;
421
- const FOREGROUND_IMG_NAME_RE = /(^|[-_\s])(image|photo|thumb|thumbnail|avatar|icon|logo|img|picture|banner|poster)([-_\s]|\d|$)/i;
422
-
423
- /** D1-D3: TEXT whose visual fidelity cannot be preserved by HTML text.
424
- * D4/D5 (vector siblings, non-web font) need project context and are left to the converter. */
425
- function isDesignTextNode(n) {
426
- if (n.type !== 'TEXT') return false;
427
- const fills = (n.fills || []).filter(f => f.visible !== false);
428
- if (fills.length >= 2) return true; // D1
429
- if (fills.some(f => typeof f.type === 'string' && f.type.startsWith('GRADIENT_'))) return true; // D3
430
- if ((n.effects || []).some(e => e.visible !== false && (e.type === 'DROP_SHADOW' || e.type === 'INNER_SHADOW'))) return true; // D2
431
- if ((n.strokes || []).some(s => s.visible !== false)) return true; // D2 (text stroke)
432
- return false;
433
- }
434
-
435
- /** Q1: any descendant carries meaningful text content. */
436
- function hasTextDescendantRaw(n) {
437
- if (n.type === 'TEXT' && typeof n.characters === 'string' && n.characters.trim().length) return true;
438
- return (n.children || []).some(hasTextDescendantRaw);
439
- }
440
-
441
- /** Q2: 2+ direct children sharing the same componentId (or normalized name stem). */
442
- function hasRepeatingInstancesRaw(n) {
443
- const kids = n.children || [];
444
- if (kids.length < 2) return false;
445
- const keyCount = {};
446
- for (const c of kids) {
447
- if (c.type !== 'INSTANCE' && c.type !== 'COMPONENT') continue;
448
- const key = c.componentId || (c.name || '').replace(/\s*\d+\s*$/, '').trim();
449
- if (!key) continue;
450
- keyCount[key] = (keyCount[key] || 0) + 1;
451
- if (keyCount[key] >= 2) return true;
452
- }
453
- return false;
454
- }
455
-
456
- /** D4 helper: direct VECTOR-family children count. */
457
- function vectorChildCountRaw(n) {
458
- return (n.children || []).filter(c => VECTOR_TYPE_RE.test(c.type || '')).length;
459
- }
460
-
461
- // ─── Tree ───────────────────────────────────────────────────────────
462
-
463
- function walk(node, parentAbsBBox) {
464
- const css = extractCSS(node);
465
- const r = { nodeId: node.id, name: node.name||'', type: node.type, size: null, css: {...css}, children: [] };
466
- if (node.type==='TEXT' && node.characters) r.text = node.characters;
467
- if (node.absoluteBoundingBox) r.size = { width: Math.round(node.absoluteBoundingBox.width), height: Math.round(node.absoluteBoundingBox.height) };
468
- // Unpack internal fields → top-level metadata
469
- if (css._imageRef) { r.imageRef = css._imageRef; delete r.css._imageRef; }
470
- if (css._imageScaleMode) { r.imageScaleMode = css._imageScaleMode; delete r.css._imageScaleMode; }
471
- if (css._fills) { r.fills = css._fills; delete r.css._fills; }
472
- // Mask flag (converter skips or applies clip-path)
473
- if (node.isMask) r.isMask = true;
474
- // layoutSizing metadata (converter uses with parent context)
475
- if (node.layoutSizingHorizontal) r.layoutSizingH = node.layoutSizingHorizontal;
476
- if (node.layoutSizingVertical) r.layoutSizingV = node.layoutSizingVertical;
477
- // Absolute positioning: parent-relative top/left
478
- if (node.layoutPositioning === 'ABSOLUTE' && node.absoluteBoundingBox && parentAbsBBox) {
479
- r.css.top = `${Math.round(node.absoluteBoundingBox.y - parentAbsBBox.y)}px`;
480
- r.css.left = `${Math.round(node.absoluteBoundingBox.x - parentAbsBBox.x)}px`;
481
- }
482
- // Raw Figma values (for raw-vs-computed reconciliation in verification phase)
483
- const raw = extractRaw(node);
484
- if (Object.keys(raw).length) r.raw = raw;
485
- // Translation-loss warnings (Figma → CSS incompatibilities)
486
- const warnings = auditNode(node);
487
- if (warnings.length) r.warnings = warnings;
488
- // Determination metadata (Q1, Q2, D1-D3) — used downstream to decide <img> vs CSS bg vs composite
489
- if (hasTextDescendantRaw(node)) r.hasTextChildren = true;
490
- if (hasRepeatingInstancesRaw(node)) r.hasInstanceRepeat = true;
491
- if (node.type === 'TEXT' && isDesignTextNode(node)) r.isDesignText = true;
492
- const vcnt = vectorChildCountRaw(node);
493
- if (vcnt > 0) r.vectorChildCount = vcnt;
494
- if (node.children?.length) r.children = node.children.map(c => walk(c, node.absoluteBoundingBox));
495
- return r;
496
- }
497
-
498
- /** Aggregate all warnings in a tree into a rollup keyed by severity. */
499
- function rollupWarnings(tree) {
500
- const all = [];
501
- function visit(n) {
502
- if (n.warnings?.length) {
503
- for (const w of n.warnings) all.push({ nodeId: n.nodeId, name: n.name, ...w });
504
- }
505
- (n.children || []).forEach(visit);
506
- }
507
- visit(tree);
508
- const p1 = all.filter(w => w.severity === 'P1').length;
509
- const p2 = all.filter(w => w.severity === 'P2').length;
510
- return { total: all.length, p1, p2, items: all };
511
- }
512
-
513
- function collectRefs(node, set = new Set()) {
514
- if (node.imageRef) set.add(node.imageRef);
515
- if (node.fills) { for (const f of node.fills) { if (f.imageRef) set.add(f.imageRef); } }
516
- (node.children||[]).forEach(c => collectRefs(c, set));
517
- return set;
518
- }
519
-
520
- // ─── Commands ───────────────────────────────────────────────────────
521
-
522
- async function cmdTree(token, fk, nid, depth) {
523
- const dp = depth ? `&depth=${depth}` : '';
524
- const data = await apiFetch(`/files/${fk}/nodes?ids=${nid}${dp}`, token);
525
- const nd = data.nodes?.[nid];
526
- if (!nd?.document) fail(`Node ${nid} not found`);
527
- const tree = walk(nd.document);
528
- tree.auditSummary = rollupWarnings(tree);
529
- console.log(JSON.stringify(tree, null, 2));
530
- }
531
-
532
- async function cmdImages(token, fk, nid, outDir, depth) {
533
- if (!outDir) fail('--out required');
534
- if (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true });
535
- // tree → refs
536
- const dp = depth ? `&depth=${depth}` : '';
537
- const data = await apiFetch(`/files/${fk}/nodes?ids=${nid}${dp}`, token);
538
- const nd = data.nodes?.[nid];
539
- if (!nd?.document) fail(`Node ${nid} not found`);
540
- const tree = walk(nd.document);
541
- const refs = collectRefs(tree);
542
- if (!refs.size) { console.log(JSON.stringify({ total: 0, images: {} })); return; }
543
- // download — 병렬 풀 (최대 DOWNLOAD_CONCURRENCY 동시)
544
- const allImg = await apiFetch(`/files/${fk}/images`, token);
545
- const urls = allImg.meta?.images || {};
546
- const imageMap = {};
547
- const dlTasks = [];
548
- for (const ref of refs) {
549
- const url = urls[ref];
550
- if (!url) continue;
551
- const outWebp = path.join(outDir, ref.slice(0,16) + '.webp');
552
- dlTasks.push(() => fetch(url).then(r=>r.arrayBuffer()).then(b=>{
553
- const actual = writeAsWebp(Buffer.from(b), outWebp);
554
- if (fs.statSync(actual).size > 0) imageMap[ref] = actual;
555
- }));
556
- }
557
- await parallelPool(dlTasks);
558
- console.log(JSON.stringify({ total: Object.keys(imageMap).length, images: imageMap }, null, 2));
559
- }
560
-
561
- async function cmdScreenshot(token, fk, nid, outPath) {
562
- if (!outPath) fail('--out required');
563
- const dir = path.dirname(outPath);
564
- if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
565
- const result = await screenshotWithRecovery(token, fk, nid, outPath);
566
- if (!result) fail('Screenshot failed at all scales');
567
- console.log(JSON.stringify(result));
568
- }
569
-
570
- /** 에러 보류 & scale 다운 복구: scale=2 → scale=1 → null */
571
- async function screenshotWithRecovery(token, fk, nid, outPath) {
572
- for (const scale of [2, 1]) {
573
- const data = await apiFetch(`/images/${fk}?ids=${nid}&format=png&scale=${scale}`, token, { silent: true });
574
- if (!data) continue;
575
- const url = data.images?.[nid];
576
- if (!url) continue;
577
- try {
578
- const buf = Buffer.from(await (await fetch(url)).arrayBuffer());
579
- let finalPath = outPath;
580
- if (outPath.endsWith('.webp')) {
581
- finalPath = writeAsWebp(buf, outPath);
582
- } else {
583
- fs.writeFileSync(outPath, buf);
584
- }
585
- const sz = fs.statSync(finalPath).size;
586
- if (sz > 0) return { path: finalPath, size: sz, scale };
587
- } catch { /* 보류 — 다음 scale로 */ }
588
- }
589
- return null;
590
- }
591
-
592
- // ─── Render: HTML + SCSS + Images + Screenshot ─────────────────────
593
-
594
- function kebab(str) {
595
- return str
596
- .replace(/([a-z])([A-Z])/g, '$1-$2')
597
- .replace(/[\s_/\\:]+/g, '-')
598
- .replace(/[^a-zA-Z0-9-]/g, '') // 한글 제거 — 클래스명은 영문만
599
- .replace(/-+/g, '-')
600
- .replace(/^-|-$/g, '')
601
- .toLowerCase()
602
- .slice(0, 30); // 최대 30자
603
- }
604
-
605
- function nodeName(node, parentPrefix) {
606
- let raw = node.name || '';
607
- // TEXT 노드: 텍스트 대신 부모 컨텍스트 + 'text' 사용
608
- if (node.type === 'TEXT') raw = raw.slice(0, 20) || 'text';
609
- // 의미 없는 이름 정리
610
- raw = raw.replace(/^(Frame|Group|Rectangle|Vector|Ellipse)\s*/i, '');
611
- if (!raw || /^\d+$/.test(raw)) raw = node.type?.toLowerCase() || 'node';
612
- const k = kebab(raw);
613
- return parentPrefix ? `${parentPrefix}-${k}` : k;
614
- }
615
-
616
- /** 노드 트리 → HTML 문자열 생성 */
617
- function toHTML(node, prefix, imgMap, indent = 0) {
618
- const pad = ' '.repeat(indent);
619
- const cls = nodeName(node, prefix);
620
- const lines = [];
621
-
622
- // 이미지 노드
623
- if (node.imageRef && imgMap[node.imageRef]) {
624
- const isDecorative = node.name?.match(/^(BG|bg|배경|Shadow|Glow|Light|snow|눈|얼음|빙판|트리|Particle)/i);
625
- const alt = isDecorative ? '' : (node.name || '');
626
- const ariaHidden = isDecorative ? ' aria-hidden="true"' : '';
627
- lines.push(`${pad}<img class="${cls}" src="${imgMap[node.imageRef]}" alt="${alt}"${ariaHidden} />`);
628
- return lines.join('\n');
629
- }
630
-
631
- // 텍스트 노드
632
- if (node.type === 'TEXT' && node.text) {
633
- const tag = node.text.length > 100 ? 'p' : 'span';
634
- lines.push(`${pad}<${tag} class="${cls}">${node.text}</${tag}>`);
635
- return lines.join('\n');
636
- }
637
-
638
- // 컨테이너 노드
639
- const tag = node.type === 'TEXT' ? 'p' : 'div';
640
- if (!node.children?.length) {
641
- lines.push(`${pad}<${tag} class="${cls}" />`);
642
- return lines.join('\n');
643
- }
644
-
645
- lines.push(`${pad}<${tag} class="${cls}">`);
646
- for (const child of node.children) {
647
- lines.push(toHTML(child, cls, imgMap, indent + 1));
648
- }
649
- lines.push(`${pad}</${tag}>`);
650
- return lines.join('\n');
651
- }
652
-
653
- /** 노드 트리 → SCSS 문자열 생성 */
654
- function toSCSS(node, prefix, indent = 0) {
655
- const cls = nodeName(node, prefix);
656
- const lines = [];
657
- const css = node.css || {};
658
- const props = Object.entries(css);
659
-
660
- if (props.length) {
661
- lines.push(`.${cls} {`);
662
- for (const [k, v] of props) {
663
- // camelCase → kebab-case
664
- const prop = k.replace(/([A-Z])/g, '-$1').toLowerCase();
665
- lines.push(` ${prop}: ${v};`);
666
- }
667
- lines.push('}');
668
- lines.push('');
669
- }
670
-
671
- if (node.children?.length) {
672
- for (const child of node.children) {
673
- lines.push(toSCSS(child, cls));
674
- }
675
- }
676
- return lines.join('\n');
677
- }
678
-
679
- /** imageRef → 이름 기반 매핑 (해시 아닌 노드 name 사용) */
680
- function buildImageNames(node, prefix, result = {}) {
681
- if (node.imageRef) {
682
- const name = nodeName(node, prefix);
683
- result[node.imageRef] = name + '.webp';
684
- }
685
- if (node.children) {
686
- for (const child of node.children) {
687
- buildImageNames(child, nodeName(node, prefix) || prefix, result);
688
- }
689
- }
690
- return result;
691
- }
692
-
693
- /** Decide how an IMAGE-fill node should render: CSS background vs <img> tag.
694
- * Rules (first match wins):
695
- * 1. Has TEXT descendants → CSS bg (text would be baked into <img>)
696
- * 2. Has repeating instance children → CSS bg (repeats need HTML structure)
697
- * 3. Named BG/background → CSS bg
698
- * 4. Has non-decorative children (type not in VECTOR-family) → CSS bg
699
- * 5. Leaf named image/photo/thumb/etc → <img>
700
- * 6. Leaf otherwise → <img> (standalone asset)
701
- */
702
- function shouldRenderImageAsBg(node) {
703
- if (node.hasTextChildren) return true;
704
- if (node.hasInstanceRepeat) return true;
705
- if (BG_NAME_RE.test(node.name || '')) return true;
706
- const kids = node.children || [];
707
- const contentKids = kids.filter(c => !VECTOR_TYPE_RE.test(c.type || '') && c.type !== 'RECTANGLE');
708
- if (contentKids.length > 0) return true;
709
- if (kids.length > 0) return true; // any non-leaf with fills is a container → bg
710
- if (FOREGROUND_IMG_NAME_RE.test(node.name || '')) return false;
711
- return false; // leaf fallback: <img>
712
- }
713
-
714
- /** Walk tree and convert IMAGE-fill nodes that are actually backgrounds into CSS background-image.
715
- * Mutates node.css and removes node.imageRef so downstream toHTML emits a container <div>. */
716
- function resolveImageFills(node, imgMap) {
717
- if (node.imageRef && imgMap[node.imageRef] && shouldRenderImageAsBg(node)) {
718
- const url = imgMap[node.imageRef];
719
- const scaleMode = node.imageScaleMode;
720
- const bgSize = scaleMode === 'FIT' ? 'contain' : scaleMode === 'TILE' ? 'auto' : 'cover';
721
- const bgRepeat = scaleMode === 'TILE' ? 'repeat' : 'no-repeat';
722
- node.css.backgroundImage = `url('${url}')`;
723
- node.css.backgroundSize = bgSize;
724
- node.css.backgroundRepeat = bgRepeat;
725
- node.css.backgroundPosition = 'center';
726
- node.renderAsBg = true;
727
- delete node.imageRef;
728
- }
729
- for (const c of node.children || []) resolveImageFills(c, imgMap);
730
- }
731
-
732
- /**
733
- * @param {{ outDir?: string, depth?: number, scale?: number }} opts
734
- */
735
- async function cmdRender(token, fk, nid, opts) {
736
- const { outDir, depth, scale } = opts;
737
- if (!outDir) fail('--out=<dir> required');
738
- if (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true });
739
-
740
- const imgDir = path.join(outDir, 'images');
741
- if (!fs.existsSync(imgDir)) fs.mkdirSync(imgDir, { recursive: true });
742
-
743
- // 1. 트리 + 이미지 URL을 동시에 가져오기 (스트리밍 겹침)
744
- const dp = depth ? `&depth=${depth}` : '';
745
- const [treeData, allImg] = await Promise.all([
746
- apiFetch(`/files/${fk}/nodes?ids=${nid}${dp}`, token),
747
- apiFetch(`/files/${fk}/images`, token, { silent: true }),
748
- ]);
749
- const nd = treeData.nodes?.[nid];
750
- if (!nd?.document) fail(`Node ${nid} not found`);
751
- const tree = walk(nd.document);
752
- tree.auditSummary = rollupWarnings(tree);
753
-
754
- // 2. 이미지 이름 매핑 (노드 name 기반)
755
- const sectionPrefix = kebab(tree.name);
756
- const imageNames = buildImageNames(tree, sectionPrefix);
757
- const refs = collectRefs(tree);
758
-
759
- // 3. fill 이미지 다운로드 — 병렬 풀 (safe: 파일 다운로드)
760
- let imageMap = {};
761
- const urls = allImg?.meta?.images || {};
762
- if (refs.size) {
763
- const dlTasks = [];
764
- for (const ref of refs) {
765
- const url = urls[ref];
766
- if (!url) continue;
767
- const fileName = imageNames[ref] || ref.slice(0, 16) + '.webp';
768
- const filePath = path.join(imgDir, fileName);
769
- dlTasks.push(() => fetch(url).then(r => r.arrayBuffer()).then(b => {
770
- const actual = writeAsWebp(Buffer.from(b), filePath);
771
- const actualName = path.basename(actual);
772
- if (fs.statSync(actual).size > 0) imageMap[ref] = `images/${actualName}`;
773
- }));
774
- }
775
- // 다운로드 시작 (병렬) — BG screenshot 수집과 동시 진행
776
- var downloadPromise = parallelPool(dlTasks);
777
- }
778
-
779
- // 4. 복합 BG 노드 → 순차 큐 (unsafe: Figma render API rate limit)
780
- // 텍스트/반복 인스턴스가 섞인 BG는 composite 캡처 금지 — 이미지에 TEXT가 굽혀
781
- // HTML 레이어와 중복되거나, 리스트/카드를 한 장으로 뭉개버리는 회귀가 있음
782
- // (exchange-section1, daily-step2-list, prize-section1 케이스)
783
- const bgTasks = [];
784
- for (const child of tree.children || []) {
785
- if (!BG_NAME_RE.test(child.name) || !(child.children?.length > 3)) continue;
786
- if (child.hasTextChildren) continue; // TEXT 포함 → HTML로 분리 처리
787
- if (child.hasInstanceRepeat) continue; // 반복 인스턴스 → v-for로 처리
788
- const bgName = `${sectionPrefix}-bg-composite.webp`;
789
- const bgPath = path.join(imgDir, bgName);
790
- bgTasks.push(async () => {
791
- const result = await screenshotWithRecovery(token, fk, child.nodeId, bgPath);
792
- if (result) {
793
- const actualName = path.basename(result.path);
794
- imageMap[`__bg_${child.nodeId}`] = `images/${actualName}`;
795
- child.imageRef = `__bg_${child.nodeId}`;
796
- child.children = [];
797
- }
798
- return result;
799
- });
800
- }
801
-
802
- // 5. 섹션 스크린샷도 순차 큐에 추가
803
- const screenshotPath = path.join(outDir, `${sectionPrefix}-screenshot.webp`);
804
- let actualScreenshot = screenshotPath;
805
- bgTasks.push(async () => {
806
- const result = await screenshotWithRecovery(token, fk, nid, screenshotPath);
807
- if (result) actualScreenshot = result.path;
808
- return result;
809
- });
810
-
811
- // 6. 병렬 다운로드 + 순차 스크린샷을 동시 실행 (스트리밍 겹침)
812
- await Promise.all([
813
- downloadPromise || Promise.resolve(),
814
- sequentialQueue(bgTasks),
815
- ]);
816
-
817
- // 6b. IMAGE-fill 노드를 CSS background 로 변환 (배경성이면 <img> 금지)
818
- resolveImageFills(tree, imageMap);
819
-
820
- // 7. HTML 생성
821
- const html = toHTML(tree, '', imageMap);
822
- fs.writeFileSync(path.join(outDir, `${sectionPrefix}.html`), html);
823
-
824
- // 8. SCSS 생성
825
- const scss = toSCSS(tree, '');
826
- fs.writeFileSync(path.join(outDir, `${sectionPrefix}.scss`), scss);
827
-
828
- // 9. 트리 JSON 저장
829
- fs.writeFileSync(path.join(outDir, `${sectionPrefix}.json`), JSON.stringify(tree, null, 2));
830
-
831
- // 출력 요약
832
- console.log(JSON.stringify({
833
- section: sectionPrefix,
834
- files: {
835
- html: `${sectionPrefix}.html`,
836
- scss: `${sectionPrefix}.scss`,
837
- json: `${sectionPrefix}.json`,
838
- screenshot: path.basename(actualScreenshot),
839
- },
840
- images: imageMap,
841
- imageCount: Object.keys(imageMap).length,
842
- auditSummary: tree.auditSummary,
843
- }, null, 2));
844
- }
845
-
846
- // ─── Exports (for tests) ────────────────────────────────────────────
847
-
848
- export {
849
- walk,
850
- extractCSS,
851
- isDesignTextNode,
852
- hasTextDescendantRaw,
853
- hasRepeatingInstancesRaw,
854
- vectorChildCountRaw,
855
- shouldRenderImageAsBg,
856
- resolveImageFills,
857
- toHTML,
858
- };
859
-
860
- // ─── CLI ────────────────────────────────────────────────────────────
861
-
862
- const invokedDirectly = import.meta.url === `file://${process.argv[1]}`;
863
- if (invokedDirectly) {
864
- const args = process.argv.slice(2);
865
- const flags = {};
866
- const pos = [];
867
- for (const a of args) {
868
- if (a.startsWith('--')) { const [k,v] = a.slice(2).split('='); flags[k] = v ?? ''; }
869
- else pos.push(a);
870
- }
871
-
872
- const token = loadToken();
873
- if (!token) fail('Figma token not found. Run: vibe figma setup <token>');
874
-
875
- const [cmd, fk, nidRaw] = pos;
876
- const nid = nidRaw?.replace(/-/g, ':');
877
-
878
- switch (cmd) {
879
- case 'tree': await cmdTree(token, fk, nid, flags.depth ? +flags.depth : undefined); break;
880
- case 'images': await cmdImages(token, fk, nid, flags.out, flags.depth ? +flags.depth : 10); break;
881
- case 'screenshot': await cmdScreenshot(token, fk, nid, flags.out); break;
882
- case 'render': await cmdRender(token, fk, nid, { outDir: flags.out, depth: flags.depth ? +flags.depth : 10, scale: flags.scale ? +flags.scale : 0.667 }); break;
883
- default: console.log('Usage: node figma-extract.js <tree|images|screenshot|render> <fileKey> <nodeId> [flags]');
884
- }
885
- }