monomind 2.7.3 → 2.7.4

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 (597) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/bin/npx-safe-launch.js +0 -0
  4. package/package.json +11 -1
  5. package/packages/@monomind/cli/.claude/agents/architecture/system-design/arch-system-design.md +0 -0
  6. package/packages/@monomind/cli/.claude/agents/consensus/crdt-synchronizer.md +0 -0
  7. package/packages/@monomind/cli/.claude/agents/consensus/quorum-manager.md +0 -0
  8. package/packages/@monomind/cli/.claude/agents/consensus/security-manager.md +0 -0
  9. package/packages/@monomind/cli/.claude/agents/core/coder.md +0 -0
  10. package/packages/@monomind/cli/.claude/agents/core/coordinator.md +0 -0
  11. package/packages/@monomind/cli/.claude/agents/core/planner.md +0 -0
  12. package/packages/@monomind/cli/.claude/agents/core/researcher.md +0 -0
  13. package/packages/@monomind/cli/.claude/agents/core/reviewer.md +0 -0
  14. package/packages/@monomind/cli/.claude/agents/core/tester.md +0 -0
  15. package/packages/@monomind/cli/.claude/agents/design/design-monodesign.md +0 -0
  16. package/packages/@monomind/cli/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +0 -0
  17. package/packages/@monomind/cli/.claude/agents/engineering/engineering-ai-engineer.md +0 -0
  18. package/packages/@monomind/cli/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +0 -0
  19. package/packages/@monomind/cli/.claude/agents/engineering/engineering-backend-architect.md +0 -0
  20. package/packages/@monomind/cli/.claude/agents/engineering/engineering-code-reviewer.md +0 -0
  21. package/packages/@monomind/cli/.claude/agents/engineering/engineering-data-engineer.md +0 -0
  22. package/packages/@monomind/cli/.claude/agents/engineering/engineering-database-optimizer.md +0 -0
  23. package/packages/@monomind/cli/.claude/agents/engineering/engineering-devops-automator.md +0 -0
  24. package/packages/@monomind/cli/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +0 -0
  25. package/packages/@monomind/cli/.claude/agents/engineering/engineering-feishu-integration-developer.md +0 -0
  26. package/packages/@monomind/cli/.claude/agents/engineering/engineering-frontend-developer.md +0 -0
  27. package/packages/@monomind/cli/.claude/agents/engineering/engineering-git-workflow-master.md +0 -0
  28. package/packages/@monomind/cli/.claude/agents/engineering/engineering-incident-response-commander.md +0 -0
  29. package/packages/@monomind/cli/.claude/agents/engineering/engineering-mobile-app-builder.md +0 -0
  30. package/packages/@monomind/cli/.claude/agents/engineering/engineering-rapid-prototyper.md +0 -0
  31. package/packages/@monomind/cli/.claude/agents/engineering/engineering-security-engineer.md +0 -0
  32. package/packages/@monomind/cli/.claude/agents/engineering/engineering-senior-developer.md +0 -0
  33. package/packages/@monomind/cli/.claude/agents/engineering/engineering-software-architect.md +0 -0
  34. package/packages/@monomind/cli/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +0 -0
  35. package/packages/@monomind/cli/.claude/agents/engineering/engineering-sre.md +0 -0
  36. package/packages/@monomind/cli/.claude/agents/engineering/engineering-technical-writer.md +0 -0
  37. package/packages/@monomind/cli/.claude/agents/engineering/engineering-threat-detection-engineer.md +0 -0
  38. package/packages/@monomind/cli/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +0 -0
  39. package/packages/@monomind/cli/.claude/agents/github/code-review-swarm.md +0 -0
  40. package/packages/@monomind/cli/.claude/agents/github/github-modes.md +0 -0
  41. package/packages/@monomind/cli/.claude/agents/github/issue-tracker.md +0 -0
  42. package/packages/@monomind/cli/.claude/agents/github/multi-repo-swarm.md +0 -0
  43. package/packages/@monomind/cli/.claude/agents/github/pr-manager.md +0 -0
  44. package/packages/@monomind/cli/.claude/agents/github/project-board-sync.md +0 -0
  45. package/packages/@monomind/cli/.claude/agents/github/release-manager.md +0 -0
  46. package/packages/@monomind/cli/.claude/agents/github/repo-architect.md +0 -0
  47. package/packages/@monomind/cli/.claude/agents/github/swarm-issue.md +0 -0
  48. package/packages/@monomind/cli/.claude/agents/github/swarm-pr.md +0 -0
  49. package/packages/@monomind/cli/.claude/agents/github/sync-coordinator.md +0 -0
  50. package/packages/@monomind/cli/.claude/agents/github/workflow-automation.md +0 -0
  51. package/packages/@monomind/cli/.claude/agents/goal/goal-planner.md +0 -0
  52. package/packages/@monomind/cli/.claude/agents/hive-mind/collective-intelligence-coordinator.md +0 -0
  53. package/packages/@monomind/cli/.claude/agents/hive-mind/queen-coordinator.md +0 -0
  54. package/packages/@monomind/cli/.claude/agents/hive-mind/scout-explorer.md +0 -0
  55. package/packages/@monomind/cli/.claude/agents/hive-mind/swarm-memory-manager.md +0 -0
  56. package/packages/@monomind/cli/.claude/agents/hive-mind/worker-specialist.md +0 -0
  57. package/packages/@monomind/cli/.claude/agents/marketing/marketing-competitive-content.md +0 -0
  58. package/packages/@monomind/cli/.claude/agents/marketing/marketing-cro-specialist.md +0 -0
  59. package/packages/@monomind/cli/.claude/agents/marketing/marketing-email-specialist.md +0 -0
  60. package/packages/@monomind/cli/.claude/agents/marketing/marketing-launch-strategist.md +0 -0
  61. package/packages/@monomind/cli/.claude/agents/marketing/marketing-pricing-strategist.md +0 -0
  62. package/packages/@monomind/cli/.claude/agents/optimization/benchmark-suite.md +0 -0
  63. package/packages/@monomind/cli/.claude/agents/optimization/load-balancer.md +0 -0
  64. package/packages/@monomind/cli/.claude/agents/optimization/performance-monitor.md +0 -0
  65. package/packages/@monomind/cli/.claude/agents/optimization/resource-allocator.md +0 -0
  66. package/packages/@monomind/cli/.claude/agents/optimization/topology-optimizer.md +0 -0
  67. package/packages/@monomind/cli/.claude/agents/schemas/architecture-output.json +0 -0
  68. package/packages/@monomind/cli/.claude/agents/schemas/code-review-output.json +0 -0
  69. package/packages/@monomind/cli/.claude/agents/schemas/generic-task-input.json +0 -0
  70. package/packages/@monomind/cli/.claude/agents/schemas/implementation-output.json +0 -0
  71. package/packages/@monomind/cli/.claude/agents/schemas/research-output.json +0 -0
  72. package/packages/@monomind/cli/.claude/agents/schemas/security-audit-output.json +0 -0
  73. package/packages/@monomind/cli/.claude/agents/schemas/test-report-output.json +0 -0
  74. package/packages/@monomind/cli/.claude/agents/specialists/integration-architect.md +0 -0
  75. package/packages/@monomind/cli/.claude/agents/specialized/agentic-identity-trust.md +0 -0
  76. package/packages/@monomind/cli/.claude/agents/specialized/agents-orchestrator.md +0 -0
  77. package/packages/@monomind/cli/.claude/agents/specialized/automation-governance-architect.md +0 -0
  78. package/packages/@monomind/cli/.claude/agents/specialized/blockchain-security-auditor.md +0 -0
  79. package/packages/@monomind/cli/.claude/agents/specialized/compliance-auditor.md +0 -0
  80. package/packages/@monomind/cli/.claude/agents/specialized/identity-graph-operator.md +0 -0
  81. package/packages/@monomind/cli/.claude/agents/specialized/lsp-index-engineer.md +0 -0
  82. package/packages/@monomind/cli/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -0
  83. package/packages/@monomind/cli/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +0 -0
  84. package/packages/@monomind/cli/.claude/agents/specialized/specialized-developer-advocate.md +0 -0
  85. package/packages/@monomind/cli/.claude/agents/specialized/specialized-document-generator.md +0 -0
  86. package/packages/@monomind/cli/.claude/agents/specialized/specialized-mcp-builder.md +0 -0
  87. package/packages/@monomind/cli/.claude/agents/specialized/specialized-model-qa.md +0 -0
  88. package/packages/@monomind/cli/.claude/agents/specialized/specialized-workflow-architect.md +0 -0
  89. package/packages/@monomind/cli/.claude/agents/specialized/zk-steward.md +0 -0
  90. package/packages/@monomind/cli/.claude/agents/swarm/mesh-coordinator.md +0 -0
  91. package/packages/@monomind/cli/.claude/agents/templates/automation-smart-agent.md +0 -0
  92. package/packages/@monomind/cli/.claude/agents/templates/coordinator-swarm-init.md +0 -0
  93. package/packages/@monomind/cli/.claude/agents/testing/production-validator.md +0 -0
  94. package/packages/@monomind/cli/.claude/agents/testing/tdd-london-swarm.md +0 -0
  95. package/packages/@monomind/cli/.claude/agents/testing/testing-accessibility-auditor.md +0 -0
  96. package/packages/@monomind/cli/.claude/agents/testing/testing-api-tester.md +0 -0
  97. package/packages/@monomind/cli/.claude/agents/testing/testing-evidence-collector.md +0 -0
  98. package/packages/@monomind/cli/.claude/agents/testing/testing-performance-benchmarker.md +0 -0
  99. package/packages/@monomind/cli/.claude/agents/testing/testing-test-results-analyzer.md +0 -0
  100. package/packages/@monomind/cli/.claude/agents/testing/testing-tool-evaluator.md +0 -0
  101. package/packages/@monomind/cli/.claude/agents/testing/testing-workflow-optimizer.md +0 -0
  102. package/packages/@monomind/cli/.claude/commands/agents/README.md +0 -0
  103. package/packages/@monomind/cli/.claude/commands/agents/agent-capabilities.md +0 -0
  104. package/packages/@monomind/cli/.claude/commands/agents/agent-coordination.md +0 -0
  105. package/packages/@monomind/cli/.claude/commands/agents/agent-spawning.md +0 -0
  106. package/packages/@monomind/cli/.claude/commands/agents/agent-types.md +0 -0
  107. package/packages/@monomind/cli/.claude/commands/analysis/README.md +0 -0
  108. package/packages/@monomind/cli/.claude/commands/analysis/bottleneck-detect.md +0 -0
  109. package/packages/@monomind/cli/.claude/commands/analysis/performance-bottlenecks.md +0 -0
  110. package/packages/@monomind/cli/.claude/commands/analysis/performance-report.md +0 -0
  111. package/packages/@monomind/cli/.claude/commands/analysis/token-usage.md +0 -0
  112. package/packages/@monomind/cli/.claude/commands/automation/README.md +0 -0
  113. package/packages/@monomind/cli/.claude/commands/automation/auto-agent.md +0 -0
  114. package/packages/@monomind/cli/.claude/commands/automation/self-healing.md +0 -0
  115. package/packages/@monomind/cli/.claude/commands/automation/session-memory.md +0 -0
  116. package/packages/@monomind/cli/.claude/commands/automation/smart-agents.md +0 -0
  117. package/packages/@monomind/cli/.claude/commands/automation/smart-spawn.md +0 -0
  118. package/packages/@monomind/cli/.claude/commands/automation/workflow-select.md +0 -0
  119. package/packages/@monomind/cli/.claude/commands/coordination/README.md +0 -0
  120. package/packages/@monomind/cli/.claude/commands/coordination/agent-spawn.md +0 -0
  121. package/packages/@monomind/cli/.claude/commands/coordination/swarm-init.md +0 -0
  122. package/packages/@monomind/cli/.claude/commands/coordination/task-orchestrate.md +0 -0
  123. package/packages/@monomind/cli/.claude/commands/github/README.md +0 -0
  124. package/packages/@monomind/cli/.claude/commands/github/github-modes.md +0 -0
  125. package/packages/@monomind/cli/.claude/commands/github/issue-tracker.md +0 -0
  126. package/packages/@monomind/cli/.claude/commands/github/pr-manager.md +0 -0
  127. package/packages/@monomind/cli/.claude/commands/github/release-manager.md +0 -0
  128. package/packages/@monomind/cli/.claude/commands/github/repo-architect.md +0 -0
  129. package/packages/@monomind/cli/.claude/commands/github/sync-coordinator.md +0 -0
  130. package/packages/@monomind/cli/.claude/commands/hive-mind/README.md +0 -0
  131. package/packages/@monomind/cli/.claude/commands/hive-mind/hive-mind-consensus.md +0 -0
  132. package/packages/@monomind/cli/.claude/commands/hive-mind/hive-mind-init.md +0 -0
  133. package/packages/@monomind/cli/.claude/commands/hive-mind/hive-mind-memory.md +0 -0
  134. package/packages/@monomind/cli/.claude/commands/hive-mind/hive-mind-spawn.md +0 -0
  135. package/packages/@monomind/cli/.claude/commands/hive-mind/hive-mind-status.md +0 -0
  136. package/packages/@monomind/cli/.claude/commands/hive-mind/hive-mind-stop.md +0 -0
  137. package/packages/@monomind/cli/.claude/commands/hive-mind/hive-mind.md +0 -0
  138. package/packages/@monomind/cli/.claude/commands/hooks/README.md +0 -0
  139. package/packages/@monomind/cli/.claude/commands/hooks/overview.md +0 -0
  140. package/packages/@monomind/cli/.claude/commands/hooks/post-edit.md +0 -0
  141. package/packages/@monomind/cli/.claude/commands/hooks/post-task.md +0 -0
  142. package/packages/@monomind/cli/.claude/commands/hooks/pre-edit.md +0 -0
  143. package/packages/@monomind/cli/.claude/commands/hooks/pre-task.md +0 -0
  144. package/packages/@monomind/cli/.claude/commands/hooks/session-end.md +0 -0
  145. package/packages/@monomind/cli/.claude/commands/hooks/setup.md +0 -0
  146. package/packages/@monomind/cli/.claude/commands/mastermind/_repeat.md +0 -0
  147. package/packages/@monomind/cli/.claude/commands/mastermind/_taskfile.md +0 -0
  148. package/packages/@monomind/cli/.claude/commands/mastermind/adr.md +0 -0
  149. package/packages/@monomind/cli/.claude/commands/mastermind/approvev1.md +0 -0
  150. package/packages/@monomind/cli/.claude/commands/mastermind/architect.md +0 -0
  151. package/packages/@monomind/cli/.claude/commands/mastermind/autodev.md +0 -0
  152. package/packages/@monomind/cli/.claude/commands/mastermind/brain.md +0 -0
  153. package/packages/@monomind/cli/.claude/commands/mastermind/budget.md +0 -0
  154. package/packages/@monomind/cli/.claude/commands/mastermind/build.md +0 -0
  155. package/packages/@monomind/cli/.claude/commands/mastermind/code-review.md +0 -0
  156. package/packages/@monomind/cli/.claude/commands/mastermind/content.md +0 -0
  157. package/packages/@monomind/cli/.claude/commands/mastermind/createorg.md +0 -0
  158. package/packages/@monomind/cli/.claude/commands/mastermind/createtask.md +0 -0
  159. package/packages/@monomind/cli/.claude/commands/mastermind/debug.md +0 -0
  160. package/packages/@monomind/cli/.claude/commands/mastermind/design.md +0 -0
  161. package/packages/@monomind/cli/.claude/commands/mastermind/do.md +0 -0
  162. package/packages/@monomind/cli/.claude/commands/mastermind/execute.md +0 -0
  163. package/packages/@monomind/cli/.claude/commands/mastermind/finance.md +0 -0
  164. package/packages/@monomind/cli/.claude/commands/mastermind/finish.md +0 -0
  165. package/packages/@monomind/cli/.claude/commands/mastermind/graph-status.md +0 -0
  166. package/packages/@monomind/cli/.claude/commands/mastermind/help.md +0 -0
  167. package/packages/@monomind/cli/.claude/commands/mastermind/idea.md +0 -0
  168. package/packages/@monomind/cli/.claude/commands/mastermind/ideate.md +0 -0
  169. package/packages/@monomind/cli/.claude/commands/mastermind/improve.md +0 -0
  170. package/packages/@monomind/cli/.claude/commands/mastermind/loops.md +0 -0
  171. package/packages/@monomind/cli/.claude/commands/mastermind/marketing.md +0 -0
  172. package/packages/@monomind/cli/.claude/commands/mastermind/master.md +0 -0
  173. package/packages/@monomind/cli/.claude/commands/mastermind/memory.md +0 -0
  174. package/packages/@monomind/cli/.claude/commands/mastermind/okf-export.md +0 -0
  175. package/packages/@monomind/cli/.claude/commands/mastermind/okf-import.md +0 -0
  176. package/packages/@monomind/cli/.claude/commands/mastermind/ops.md +0 -0
  177. package/packages/@monomind/cli/.claude/commands/mastermind/orgs.md +0 -0
  178. package/packages/@monomind/cli/.claude/commands/mastermind/orgstatus.md +0 -0
  179. package/packages/@monomind/cli/.claude/commands/mastermind/plan.md +0 -0
  180. package/packages/@monomind/cli/.claude/commands/mastermind/receive-review.md +0 -0
  181. package/packages/@monomind/cli/.claude/commands/mastermind/references/antigravity-tools.md +0 -0
  182. package/packages/@monomind/cli/.claude/commands/mastermind/references/claude-code-tools.md +0 -0
  183. package/packages/@monomind/cli/.claude/commands/mastermind/references/codex-tools.md +0 -0
  184. package/packages/@monomind/cli/.claude/commands/mastermind/references/copilot-tools.md +0 -0
  185. package/packages/@monomind/cli/.claude/commands/mastermind/references/gemini-tools.md +0 -0
  186. package/packages/@monomind/cli/.claude/commands/mastermind/references/pi-tools.md +0 -0
  187. package/packages/@monomind/cli/.claude/commands/mastermind/release.md +0 -0
  188. package/packages/@monomind/cli/.claude/commands/mastermind/repeat.md +0 -0
  189. package/packages/@monomind/cli/.claude/commands/mastermind/research.md +0 -0
  190. package/packages/@monomind/cli/.claude/commands/mastermind/review.md +0 -0
  191. package/packages/@monomind/cli/.claude/commands/mastermind/runorg.md +0 -0
  192. package/packages/@monomind/cli/.claude/commands/mastermind/runorgv1.md +0 -0
  193. package/packages/@monomind/cli/.claude/commands/mastermind/sales.md +0 -0
  194. package/packages/@monomind/cli/.claude/commands/mastermind/skill-builder.md +0 -0
  195. package/packages/@monomind/cli/.claude/commands/mastermind/specialagents.md +0 -0
  196. package/packages/@monomind/cli/.claude/commands/mastermind/stoporg.md +0 -0
  197. package/packages/@monomind/cli/.claude/commands/mastermind/swarm.md +0 -0
  198. package/packages/@monomind/cli/.claude/commands/mastermind/taskdev.md +0 -0
  199. package/packages/@monomind/cli/.claude/commands/mastermind/tdd.md +0 -0
  200. package/packages/@monomind/cli/.claude/commands/mastermind/techport.md +0 -0
  201. package/packages/@monomind/cli/.claude/commands/mastermind/topology.md +0 -0
  202. package/packages/@monomind/cli/.claude/commands/mastermind/understand.md +0 -0
  203. package/packages/@monomind/cli/.claude/commands/mastermind/verify.md +0 -0
  204. package/packages/@monomind/cli/.claude/commands/mastermind/worktree.md +0 -0
  205. package/packages/@monomind/cli/.claude/commands/mastermind.md +0 -0
  206. package/packages/@monomind/cli/.claude/commands/memory/README.md +0 -0
  207. package/packages/@monomind/cli/.claude/commands/memory/memory-search.md +0 -0
  208. package/packages/@monomind/cli/.claude/commands/monitoring/README.md +0 -0
  209. package/packages/@monomind/cli/.claude/commands/monitoring/agent-metrics.md +0 -0
  210. package/packages/@monomind/cli/.claude/commands/monitoring/agents.md +0 -0
  211. package/packages/@monomind/cli/.claude/commands/monitoring/status.md +0 -0
  212. package/packages/@monomind/cli/.claude/commands/monobrowse.md +0 -0
  213. package/packages/@monomind/cli/.claude/commands/monoes/README.md +0 -0
  214. package/packages/@monomind/cli/.claude/commands/monoes/install.md +0 -0
  215. package/packages/@monomind/cli/.claude/commands/monoes/monoagent.md +0 -0
  216. package/packages/@monomind/cli/.claude/commands/monoes/monoclip.md +0 -0
  217. package/packages/@monomind/cli/.claude/commands/monoes/monotask.md +0 -0
  218. package/packages/@monomind/cli/.claude/commands/monograph/README.md +0 -0
  219. package/packages/@monomind/cli/.claude/commands/monograph/monograph-build.md +0 -0
  220. package/packages/@monomind/cli/.claude/commands/monograph/monograph-search.md +0 -0
  221. package/packages/@monomind/cli/.claude/commands/monograph/monograph-stats.md +0 -0
  222. package/packages/@monomind/cli/.claude/commands/monograph/monograph-watch.md +0 -0
  223. package/packages/@monomind/cli/.claude/commands/monograph/monograph-wiki.md +0 -0
  224. package/packages/@monomind/cli/.claude/commands/optimization/auto-topology.md +0 -0
  225. package/packages/@monomind/cli/.claude/commands/optimization/performance-optimize.md +0 -0
  226. package/packages/@monomind/cli/.claude/commands/pair/README.md +0 -0
  227. package/packages/@monomind/cli/.claude/commands/pair/examples.md +0 -0
  228. package/packages/@monomind/cli/.claude/commands/pair/modes.md +0 -0
  229. package/packages/@monomind/cli/.claude/commands/pair/session.md +0 -0
  230. package/packages/@monomind/cli/.claude/commands/stream-chain/pipeline.md +0 -0
  231. package/packages/@monomind/cli/.claude/commands/stream-chain/run.md +0 -0
  232. package/packages/@monomind/cli/.claude/commands/swarm/README.md +0 -0
  233. package/packages/@monomind/cli/.claude/commands/swarm/analysis.md +0 -0
  234. package/packages/@monomind/cli/.claude/commands/swarm/development.md +0 -0
  235. package/packages/@monomind/cli/.claude/commands/swarm/examples.md +0 -0
  236. package/packages/@monomind/cli/.claude/commands/swarm/maintenance.md +0 -0
  237. package/packages/@monomind/cli/.claude/commands/swarm/optimization.md +0 -0
  238. package/packages/@monomind/cli/.claude/commands/swarm/research.md +0 -0
  239. package/packages/@monomind/cli/.claude/commands/swarm/swarm.md +0 -0
  240. package/packages/@monomind/cli/.claude/commands/swarm/testing.md +0 -0
  241. package/packages/@monomind/cli/.claude/commands/tokens.md +0 -0
  242. package/packages/@monomind/cli/.claude/commands/truth/start.md +0 -0
  243. package/packages/@monomind/cli/.claude/commands/ts.md +0 -0
  244. package/packages/@monomind/cli/.claude/commands/workflows/README.md +0 -0
  245. package/packages/@monomind/cli/.claude/commands/workflows/development.md +0 -0
  246. package/packages/@monomind/cli/.claude/commands/workflows/research.md +0 -0
  247. package/packages/@monomind/cli/.claude/commands/workflows/workflow-create.md +0 -0
  248. package/packages/@monomind/cli/.claude/commands/workflows/workflow-execute.md +0 -0
  249. package/packages/@monomind/cli/.claude/commands/workflows/workflow-export.md +0 -0
  250. package/packages/@monomind/cli/.claude/helpers/control-start.cjs +0 -0
  251. package/packages/@monomind/cli/.claude/helpers/control-stop.cjs +0 -0
  252. package/packages/@monomind/cli/.claude/helpers/event-logger.cjs +0 -0
  253. package/packages/@monomind/cli/.claude/helpers/extras-registry.json +0 -0
  254. package/packages/@monomind/cli/.claude/helpers/graphify-freshen.cjs +0 -0
  255. package/packages/@monomind/cli/.claude/helpers/handlers/adr-draft-handler.cjs +0 -0
  256. package/packages/@monomind/cli/.claude/helpers/handlers/agent-start-handler.cjs +0 -0
  257. package/packages/@monomind/cli/.claude/helpers/handlers/budget-status-handler.cjs +0 -0
  258. package/packages/@monomind/cli/.claude/helpers/handlers/capture-handler.cjs +0 -0
  259. package/packages/@monomind/cli/.claude/helpers/handlers/compact-handler.cjs +0 -0
  260. package/packages/@monomind/cli/.claude/helpers/handlers/edit-handler.cjs +0 -0
  261. package/packages/@monomind/cli/.claude/helpers/handlers/gates-handler.cjs +0 -0
  262. package/packages/@monomind/cli/.claude/helpers/handlers/graph-status-handler.cjs +0 -0
  263. package/packages/@monomind/cli/.claude/helpers/handlers/loops-status-handler.cjs +0 -0
  264. package/packages/@monomind/cli/.claude/helpers/handlers/route-handler.cjs +0 -0
  265. package/packages/@monomind/cli/.claude/helpers/handlers/session-handler.cjs +0 -0
  266. package/packages/@monomind/cli/.claude/helpers/handlers/session-restore-handler.cjs +0 -0
  267. package/packages/@monomind/cli/.claude/helpers/handlers/stats-handler.cjs +0 -0
  268. package/packages/@monomind/cli/.claude/helpers/handlers/task-handler.cjs +0 -0
  269. package/packages/@monomind/cli/.claude/helpers/intelligence.cjs +0 -0
  270. package/packages/@monomind/cli/.claude/helpers/learning-service.mjs +0 -0
  271. package/packages/@monomind/cli/.claude/helpers/loop-tracker.cjs +0 -0
  272. package/packages/@monomind/cli/.claude/helpers/mastermind-activate.cjs +0 -0
  273. package/packages/@monomind/cli/.claude/helpers/memory-palace.cjs +0 -0
  274. package/packages/@monomind/cli/.claude/helpers/memory.cjs +0 -0
  275. package/packages/@monomind/cli/.claude/helpers/metrics-db.mjs +0 -0
  276. package/packages/@monomind/cli/.claude/helpers/monolean-activate.cjs +0 -0
  277. package/packages/@monomind/cli/.claude/helpers/monolean-config.cjs +0 -0
  278. package/packages/@monomind/cli/.claude/helpers/monolean-instructions.cjs +0 -0
  279. package/packages/@monomind/cli/.claude/helpers/monolean-propagate.cjs +0 -0
  280. package/packages/@monomind/cli/.claude/helpers/monolean-tracker.cjs +0 -0
  281. package/packages/@monomind/cli/.claude/helpers/router.cjs +0 -0
  282. package/packages/@monomind/cli/.claude/helpers/session.cjs +0 -0
  283. package/packages/@monomind/cli/.claude/helpers/skill-registry.json +0 -0
  284. package/packages/@monomind/cli/.claude/helpers/statusline.cjs +0 -0
  285. package/packages/@monomind/cli/.claude/helpers/toggle-statusline.cjs +0 -0
  286. package/packages/@monomind/cli/.claude/helpers/token-tracker.cjs +0 -0
  287. package/packages/@monomind/cli/.claude/helpers/utils/agent-registrations.cjs +0 -0
  288. package/packages/@monomind/cli/.claude/helpers/utils/fs-helpers.cjs +0 -0
  289. package/packages/@monomind/cli/.claude/helpers/utils/micro-agents.cjs +0 -0
  290. package/packages/@monomind/cli/.claude/helpers/utils/monograph.cjs +0 -0
  291. package/packages/@monomind/cli/.claude/helpers/utils/system-pressure.cjs +0 -0
  292. package/packages/@monomind/cli/.claude/helpers/utils/telemetry.cjs +0 -0
  293. package/packages/@monomind/cli/.claude/settings.json +0 -0
  294. package/packages/@monomind/cli/.claude/skills/agent-browser-testing/SKILL.md +0 -0
  295. package/packages/@monomind/cli/.claude/skills/agentic-jujutsu/SKILL.md +0 -0
  296. package/packages/@monomind/cli/.claude/skills/github-issue-triage/SKILL.md +0 -0
  297. package/packages/@monomind/cli/.claude/skills/github-repo-recap/SKILL.md +0 -0
  298. package/packages/@monomind/cli/.claude/skills/hive-mind-advanced/SKILL.md +0 -0
  299. package/packages/@monomind/cli/.claude/skills/hooks-automation/SKILL.md +0 -0
  300. package/packages/@monomind/cli/.claude/skills/mastermind-access/SKILL.md +0 -0
  301. package/packages/@monomind/cli/.claude/skills/mastermind-activity/SKILL.md +0 -0
  302. package/packages/@monomind/cli/.claude/skills/mastermind-adapter-manager/SKILL.md +0 -0
  303. package/packages/@monomind/cli/.claude/skills/mastermind-adapters/SKILL.md +0 -0
  304. package/packages/@monomind/cli/.claude/skills/mastermind-agent-detail/SKILL.md +0 -0
  305. package/packages/@monomind/cli/.claude/skills/mastermind-agent-select/SKILL.md +0 -0
  306. package/packages/@monomind/cli/.claude/skills/mastermind-agents/SKILL.md +0 -0
  307. package/packages/@monomind/cli/.claude/skills/mastermind-approval-detail/SKILL.md +0 -0
  308. package/packages/@monomind/cli/.claude/skills/mastermind-approvev1/SKILL.md +0 -0
  309. package/packages/@monomind/cli/.claude/skills/mastermind-architect/SKILL.md +0 -0
  310. package/packages/@monomind/cli/.claude/skills/mastermind-autodev/SKILL.md +0 -0
  311. package/packages/@monomind/cli/.claude/skills/mastermind-backup/SKILL.md +0 -0
  312. package/packages/@monomind/cli/.claude/skills/mastermind-bootstrap/SKILL.md +0 -0
  313. package/packages/@monomind/cli/.claude/skills/mastermind-budgets/SKILL.md +0 -0
  314. package/packages/@monomind/cli/.claude/skills/mastermind-build/SKILL.md +0 -0
  315. package/packages/@monomind/cli/.claude/skills/mastermind-companies/SKILL.md +0 -0
  316. package/packages/@monomind/cli/.claude/skills/mastermind-content/SKILL.md +0 -0
  317. package/packages/@monomind/cli/.claude/skills/mastermind-costs/SKILL.md +0 -0
  318. package/packages/@monomind/cli/.claude/skills/mastermind-createorg/SKILL.md +0 -0
  319. package/packages/@monomind/cli/.claude/skills/mastermind-debug/SKILL.md +0 -0
  320. package/packages/@monomind/cli/.claude/skills/mastermind-delegation/SKILL.md +0 -0
  321. package/packages/@monomind/cli/.claude/skills/mastermind-design/SKILL.md +0 -0
  322. package/packages/@monomind/cli/.claude/skills/mastermind-diagnose/SKILL.md +0 -0
  323. package/packages/@monomind/cli/.claude/skills/mastermind-env/SKILL.md +0 -0
  324. package/packages/@monomind/cli/.claude/skills/mastermind-environments/SKILL.md +0 -0
  325. package/packages/@monomind/cli/.claude/skills/mastermind-execute/SKILL.md +0 -0
  326. package/packages/@monomind/cli/.claude/skills/mastermind-export/SKILL.md +0 -0
  327. package/packages/@monomind/cli/.claude/skills/mastermind-finance/SKILL.md +0 -0
  328. package/packages/@monomind/cli/.claude/skills/mastermind-finish/SKILL.md +0 -0
  329. package/packages/@monomind/cli/.claude/skills/mastermind-goal-detail/SKILL.md +0 -0
  330. package/packages/@monomind/cli/.claude/skills/mastermind-goals/SKILL.md +0 -0
  331. package/packages/@monomind/cli/.claude/skills/mastermind-heartbeatv1/SKILL.md +0 -0
  332. package/packages/@monomind/cli/.claude/skills/mastermind-idea/SKILL.md +0 -0
  333. package/packages/@monomind/cli/.claude/skills/mastermind-import/SKILL.md +0 -0
  334. package/packages/@monomind/cli/.claude/skills/mastermind-inbox/SKILL.md +0 -0
  335. package/packages/@monomind/cli/.claude/skills/mastermind-instance/SKILL.md +0 -0
  336. package/packages/@monomind/cli/.claude/skills/mastermind-instance-settings/SKILL.md +0 -0
  337. package/packages/@monomind/cli/.claude/skills/mastermind-intake/SKILL.md +0 -0
  338. package/packages/@monomind/cli/.claude/skills/mastermind-invite-landing/SKILL.md +0 -0
  339. package/packages/@monomind/cli/.claude/skills/mastermind-invites/SKILL.md +0 -0
  340. package/packages/@monomind/cli/.claude/skills/mastermind-issue-detail/SKILL.md +0 -0
  341. package/packages/@monomind/cli/.claude/skills/mastermind-issues/SKILL.md +0 -0
  342. package/packages/@monomind/cli/.claude/skills/mastermind-join-queue/SKILL.md +0 -0
  343. package/packages/@monomind/cli/.claude/skills/mastermind-liveness/SKILL.md +0 -0
  344. package/packages/@monomind/cli/.claude/skills/mastermind-marketing/SKILL.md +0 -0
  345. package/packages/@monomind/cli/.claude/skills/mastermind-marketing/references/copywriting-frameworks.md +0 -0
  346. package/packages/@monomind/cli/.claude/skills/mastermind-marketing/references/persuasion-psychology.md +0 -0
  347. package/packages/@monomind/cli/.claude/skills/mastermind-memory/SKILL.md +0 -0
  348. package/packages/@monomind/cli/.claude/skills/mastermind-monitor/SKILL.md +0 -0
  349. package/packages/@monomind/cli/.claude/skills/mastermind-monotask/SKILL.md +0 -0
  350. package/packages/@monomind/cli/.claude/skills/mastermind-my-issues/SKILL.md +0 -0
  351. package/packages/@monomind/cli/.claude/skills/mastermind-new-agent/SKILL.md +0 -0
  352. package/packages/@monomind/cli/.claude/skills/mastermind-ops/SKILL.md +0 -0
  353. package/packages/@monomind/cli/.claude/skills/mastermind-org-chart/SKILL.md +0 -0
  354. package/packages/@monomind/cli/.claude/skills/mastermind-org-settings/SKILL.md +0 -0
  355. package/packages/@monomind/cli/.claude/skills/mastermind-orgs/SKILL.md +0 -0
  356. package/packages/@monomind/cli/.claude/skills/mastermind-orgstatus/SKILL.md +0 -0
  357. package/packages/@monomind/cli/.claude/skills/mastermind-plan/SKILL.md +0 -0
  358. package/packages/@monomind/cli/.claude/skills/mastermind-plan-to-tasks/SKILL.md +0 -0
  359. package/packages/@monomind/cli/.claude/skills/mastermind-plugin-manager/SKILL.md +0 -0
  360. package/packages/@monomind/cli/.claude/skills/mastermind-plugin-settings/SKILL.md +0 -0
  361. package/packages/@monomind/cli/.claude/skills/mastermind-plugins/SKILL.md +0 -0
  362. package/packages/@monomind/cli/.claude/skills/mastermind-profile/SKILL.md +0 -0
  363. package/packages/@monomind/cli/.claude/skills/mastermind-project-detail/SKILL.md +0 -0
  364. package/packages/@monomind/cli/.claude/skills/mastermind-project-workspace/SKILL.md +0 -0
  365. package/packages/@monomind/cli/.claude/skills/mastermind-projects/SKILL.md +0 -0
  366. package/packages/@monomind/cli/.claude/skills/mastermind-protocol/SKILL.md +0 -0
  367. package/packages/@monomind/cli/.claude/skills/mastermind-receive-review/SKILL.md +0 -0
  368. package/packages/@monomind/cli/.claude/skills/mastermind-release/SKILL.md +0 -0
  369. package/packages/@monomind/cli/.claude/skills/mastermind-repeat/SKILL.md +0 -0
  370. package/packages/@monomind/cli/.claude/skills/mastermind-research/SKILL.md +0 -0
  371. package/packages/@monomind/cli/.claude/skills/mastermind-review/SKILL.md +0 -0
  372. package/packages/@monomind/cli/.claude/skills/mastermind-routine-detail/SKILL.md +0 -0
  373. package/packages/@monomind/cli/.claude/skills/mastermind-routines/SKILL.md +0 -0
  374. package/packages/@monomind/cli/.claude/skills/mastermind-runorg/SKILL.md +0 -0
  375. package/packages/@monomind/cli/.claude/skills/mastermind-runorgv1/SKILL.md +0 -0
  376. package/packages/@monomind/cli/.claude/skills/mastermind-sales/SKILL.md +0 -0
  377. package/packages/@monomind/cli/.claude/skills/mastermind-search/SKILL.md +0 -0
  378. package/packages/@monomind/cli/.claude/skills/mastermind-secrets/SKILL.md +0 -0
  379. package/packages/@monomind/cli/.claude/skills/mastermind-skill-builder/SKILL.md +0 -0
  380. package/packages/@monomind/cli/.claude/skills/mastermind-skills/SKILL.md +0 -0
  381. package/packages/@monomind/cli/.claude/skills/mastermind-stoporg/SKILL.md +0 -0
  382. package/packages/@monomind/cli/.claude/skills/mastermind-taskdev/SKILL.md +0 -0
  383. package/packages/@monomind/cli/.claude/skills/mastermind-taskdev/code-quality-reviewer-prompt.md +0 -0
  384. package/packages/@monomind/cli/.claude/skills/mastermind-taskdev/final-reviewer-prompt.md +0 -0
  385. package/packages/@monomind/cli/.claude/skills/mastermind-taskdev/implementer-prompt.md +0 -0
  386. package/packages/@monomind/cli/.claude/skills/mastermind-taskdev/spec-reviewer-prompt.md +0 -0
  387. package/packages/@monomind/cli/.claude/skills/mastermind-tasks/SKILL.md +0 -0
  388. package/packages/@monomind/cli/.claude/skills/mastermind-tdd/SKILL.md +0 -0
  389. package/packages/@monomind/cli/.claude/skills/mastermind-techport/SKILL.md +0 -0
  390. package/packages/@monomind/cli/.claude/skills/mastermind-threads/SKILL.md +0 -0
  391. package/packages/@monomind/cli/.claude/skills/mastermind-tree-control/SKILL.md +0 -0
  392. package/packages/@monomind/cli/.claude/skills/mastermind-verify/SKILL.md +0 -0
  393. package/packages/@monomind/cli/.claude/skills/mastermind-wiki/SKILL.md +0 -0
  394. package/packages/@monomind/cli/.claude/skills/mastermind-workspace-detail/SKILL.md +0 -0
  395. package/packages/@monomind/cli/.claude/skills/mastermind-workspaces/SKILL.md +0 -0
  396. package/packages/@monomind/cli/.claude/skills/mastermind-worktree/SKILL.md +0 -0
  397. package/packages/@monomind/cli/.claude/skills/monolean/SKILL.md +0 -0
  398. package/packages/@monomind/cli/.claude/skills/monolean-audit/SKILL.md +0 -0
  399. package/packages/@monomind/cli/.claude/skills/monolean-debt/SKILL.md +0 -0
  400. package/packages/@monomind/cli/.claude/skills/monolean-help/SKILL.md +0 -0
  401. package/packages/@monomind/cli/.claude/skills/monolean-review/SKILL.md +0 -0
  402. package/packages/@monomind/cli/.claude/skills/monomind/browse-agentcore.md +0 -0
  403. package/packages/@monomind/cli/.claude/skills/monomind/browse-electron.md +0 -0
  404. package/packages/@monomind/cli/.claude/skills/monomind/browse-qa.md +0 -0
  405. package/packages/@monomind/cli/.claude/skills/monomind/browse-references/authentication.md +0 -0
  406. package/packages/@monomind/cli/.claude/skills/monomind/browse-references/trust-boundaries.md +0 -0
  407. package/packages/@monomind/cli/.claude/skills/monomind/browse-references/video-recording.md +0 -0
  408. package/packages/@monomind/cli/.claude/skills/monomind/browse-slack.md +0 -0
  409. package/packages/@monomind/cli/.claude/skills/monomind/browse-vercel.md +0 -0
  410. package/packages/@monomind/cli/.claude/skills/monomind/browse.md +0 -0
  411. package/packages/@monomind/cli/.claude/skills/monomotion/SKILL.md +0 -0
  412. package/packages/@monomind/cli/.claude/skills/monomotion/rules/api-control.md +0 -0
  413. package/packages/@monomind/cli/.claude/skills/monomotion/rules/effects.md +0 -0
  414. package/packages/@monomind/cli/.claude/skills/monomotion/rules/integration.md +0 -0
  415. package/packages/@monomind/cli/.claude/skills/monomotion/rules/scroll.md +0 -0
  416. package/packages/@monomind/cli/.claude/skills/monomotion/rules/sequencing.md +0 -0
  417. package/packages/@monomind/cli/.claude/skills/monomotion/rules/svg.md +0 -0
  418. package/packages/@monomind/cli/.claude/skills/monomotion/rules/text.md +0 -0
  419. package/packages/@monomind/cli/.claude/skills/pair-programming/SKILL.md +0 -0
  420. package/packages/@monomind/cli/.claude/skills/performance-analysis/SKILL.md +0 -0
  421. package/packages/@monomind/cli/.claude/skills/skill-builder/SKILL.md +0 -0
  422. package/packages/@monomind/cli/.claude/skills/specialagent/SKILL.md +0 -0
  423. package/packages/@monomind/cli/.claude/skills/stop-slop/SKILL.md +0 -0
  424. package/packages/@monomind/cli/.claude/skills/stop-slop/references/examples.md +0 -0
  425. package/packages/@monomind/cli/.claude/skills/stop-slop/references/phrases.md +0 -0
  426. package/packages/@monomind/cli/.claude/skills/stop-slop/references/structures.md +0 -0
  427. package/packages/@monomind/cli/.claude/skills/swarm-advanced/SKILL.md +0 -0
  428. package/packages/@monomind/cli/.claude/skills/swarm-orchestration/SKILL.md +0 -0
  429. package/packages/@monomind/cli/.claude/skills/verification-quality/SKILL.md +0 -0
  430. package/packages/@monomind/cli/README.md +0 -0
  431. package/packages/@monomind/cli/bin/preinstall.cjs +0 -0
  432. package/packages/@monomind/cli/dist/src/ui/dashboard.html +666 -177
  433. package/packages/@monomind/cli/dist/src/ui/server.mjs +275 -0
  434. package/packages/@monomind/cli/package.json +1 -1
  435. package/packages/@monomind/cli/scripts/deploy-ipfs-node.sh +0 -0
  436. package/packages/@monomind/cli/scripts/understand-analyze.mjs +0 -0
  437. package/scripts/generate-agent-avatars.mjs +0 -0
  438. package/scripts/growth-content-calendar.mjs +7 -30
  439. package/scripts/ua-enrich.mjs +0 -0
  440. package/scripts/ua-import.mjs +0 -0
  441. package/scripts/verify-appliance.sh +0 -0
  442. package/packages/@monomind/cli/.claude/skills/github-toolkit/SKILL.md +0 -60
  443. package/packages/@monomind/cli/.claude/skills/memory-toolkit/SKILL.md +0 -75
  444. package/packages/@monomind/cli/.claude/skills/monodesign/SKILL.md +0 -257
  445. package/packages/@monomind/cli/.claude/skills/monodesign/adapt.md +0 -53
  446. package/packages/@monomind/cli/.claude/skills/monodesign/agents/monodesign-asset-producer.md +0 -100
  447. package/packages/@monomind/cli/.claude/skills/monodesign/agents/monodesign-manual-edit-applier.md +0 -103
  448. package/packages/@monomind/cli/.claude/skills/monodesign/animate.md +0 -65
  449. package/packages/@monomind/cli/.claude/skills/monodesign/audit.md +0 -89
  450. package/packages/@monomind/cli/.claude/skills/monodesign/bolder.md +0 -50
  451. package/packages/@monomind/cli/.claude/skills/monodesign/clarify.md +0 -64
  452. package/packages/@monomind/cli/.claude/skills/monodesign/colorize.md +0 -68
  453. package/packages/@monomind/cli/.claude/skills/monodesign/craft.md +0 -51
  454. package/packages/@monomind/cli/.claude/skills/monodesign/critique.md +0 -66
  455. package/packages/@monomind/cli/.claude/skills/monodesign/delight.md +0 -47
  456. package/packages/@monomind/cli/.claude/skills/monodesign/distill.md +0 -56
  457. package/packages/@monomind/cli/.claude/skills/monodesign/document.md +0 -83
  458. package/packages/@monomind/cli/.claude/skills/monodesign/extract.md +0 -74
  459. package/packages/@monomind/cli/.claude/skills/monodesign/harden.md +0 -65
  460. package/packages/@monomind/cli/.claude/skills/monodesign/init.md +0 -30
  461. package/packages/@monomind/cli/.claude/skills/monodesign/layout.md +0 -36
  462. package/packages/@monomind/cli/.claude/skills/monodesign/live.md +0 -34
  463. package/packages/@monomind/cli/.claude/skills/monodesign/onboard.md +0 -50
  464. package/packages/@monomind/cli/.claude/skills/monodesign/optimize.md +0 -64
  465. package/packages/@monomind/cli/.claude/skills/monodesign/overdrive.md +0 -56
  466. package/packages/@monomind/cli/.claude/skills/monodesign/polish.md +0 -68
  467. package/packages/@monomind/cli/.claude/skills/monodesign/quieter.md +0 -57
  468. package/packages/@monomind/cli/.claude/skills/monodesign/reference/adapt.md +0 -312
  469. package/packages/@monomind/cli/.claude/skills/monodesign/reference/adapt.native.md +0 -58
  470. package/packages/@monomind/cli/.claude/skills/monodesign/reference/android.md +0 -40
  471. package/packages/@monomind/cli/.claude/skills/monodesign/reference/animate.md +0 -203
  472. package/packages/@monomind/cli/.claude/skills/monodesign/reference/antipatterns-catalog.md +0 -410
  473. package/packages/@monomind/cli/.claude/skills/monodesign/reference/audit.md +0 -135
  474. package/packages/@monomind/cli/.claude/skills/monodesign/reference/audit.native.md +0 -139
  475. package/packages/@monomind/cli/.claude/skills/monodesign/reference/bolder.md +0 -120
  476. package/packages/@monomind/cli/.claude/skills/monodesign/reference/brand-workflow.md +0 -180
  477. package/packages/@monomind/cli/.claude/skills/monodesign/reference/brand.md +0 -108
  478. package/packages/@monomind/cli/.claude/skills/monodesign/reference/clarify.md +0 -288
  479. package/packages/@monomind/cli/.claude/skills/monodesign/reference/codex.md +0 -105
  480. package/packages/@monomind/cli/.claude/skills/monodesign/reference/cognitive-load.md +0 -106
  481. package/packages/@monomind/cli/.claude/skills/monodesign/reference/color-and-contrast.md +0 -105
  482. package/packages/@monomind/cli/.claude/skills/monodesign/reference/colorize.md +0 -257
  483. package/packages/@monomind/cli/.claude/skills/monodesign/reference/component-specs.md +0 -260
  484. package/packages/@monomind/cli/.claude/skills/monodesign/reference/component-states.md +0 -274
  485. package/packages/@monomind/cli/.claude/skills/monodesign/reference/component-system.md +0 -358
  486. package/packages/@monomind/cli/.claude/skills/monodesign/reference/copy-formulas.md +0 -160
  487. package/packages/@monomind/cli/.claude/skills/monodesign/reference/craft.md +0 -123
  488. package/packages/@monomind/cli/.claude/skills/monodesign/reference/critique.md +0 -780
  489. package/packages/@monomind/cli/.claude/skills/monodesign/reference/delight.md +0 -302
  490. package/packages/@monomind/cli/.claude/skills/monodesign/reference/design-principles.md +0 -246
  491. package/packages/@monomind/cli/.claude/skills/monodesign/reference/distill.md +0 -111
  492. package/packages/@monomind/cli/.claude/skills/monodesign/reference/document.md +0 -429
  493. package/packages/@monomind/cli/.claude/skills/monodesign/reference/extract.md +0 -69
  494. package/packages/@monomind/cli/.claude/skills/monodesign/reference/harden.md +0 -347
  495. package/packages/@monomind/cli/.claude/skills/monodesign/reference/heuristics-scoring.md +0 -234
  496. package/packages/@monomind/cli/.claude/skills/monodesign/reference/hooks.md +0 -92
  497. package/packages/@monomind/cli/.claude/skills/monodesign/reference/image-prompts.md +0 -130
  498. package/packages/@monomind/cli/.claude/skills/monodesign/reference/init.md +0 -221
  499. package/packages/@monomind/cli/.claude/skills/monodesign/reference/interaction-design.md +0 -189
  500. package/packages/@monomind/cli/.claude/skills/monodesign/reference/ios.md +0 -45
  501. package/packages/@monomind/cli/.claude/skills/monodesign/reference/layout.md +0 -185
  502. package/packages/@monomind/cli/.claude/skills/monodesign/reference/live.md +0 -710
  503. package/packages/@monomind/cli/.claude/skills/monodesign/reference/motion-design.md +0 -109
  504. package/packages/@monomind/cli/.claude/skills/monodesign/reference/onboard.md +0 -234
  505. package/packages/@monomind/cli/.claude/skills/monodesign/reference/optimize.md +0 -258
  506. package/packages/@monomind/cli/.claude/skills/monodesign/reference/overdrive.md +0 -130
  507. package/packages/@monomind/cli/.claude/skills/monodesign/reference/personas.md +0 -179
  508. package/packages/@monomind/cli/.claude/skills/monodesign/reference/polish.md +0 -241
  509. package/packages/@monomind/cli/.claude/skills/monodesign/reference/pre-delivery-checklist.md +0 -108
  510. package/packages/@monomind/cli/.claude/skills/monodesign/reference/product.md +0 -60
  511. package/packages/@monomind/cli/.claude/skills/monodesign/reference/quieter.md +0 -99
  512. package/packages/@monomind/cli/.claude/skills/monodesign/reference/responsive-design.md +0 -114
  513. package/packages/@monomind/cli/.claude/skills/monodesign/reference/shape.md +0 -165
  514. package/packages/@monomind/cli/.claude/skills/monodesign/reference/spatial-design.md +0 -100
  515. package/packages/@monomind/cli/.claude/skills/monodesign/reference/teach.md +0 -10
  516. package/packages/@monomind/cli/.claude/skills/monodesign/reference/token-architecture.md +0 -222
  517. package/packages/@monomind/cli/.claude/skills/monodesign/reference/typeset.md +0 -301
  518. package/packages/@monomind/cli/.claude/skills/monodesign/reference/typography.md +0 -159
  519. package/packages/@monomind/cli/.claude/skills/monodesign/reference/ux-research.md +0 -143
  520. package/packages/@monomind/cli/.claude/skills/monodesign/reference/ux-rules.md +0 -211
  521. package/packages/@monomind/cli/.claude/skills/monodesign/reference/ux-writing.md +0 -107
  522. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/command-metadata.json +0 -94
  523. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/context-signals.mjs +0 -260
  524. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/context.mjs +0 -1061
  525. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/critique-storage.mjs +0 -416
  526. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detect-csp.mjs +0 -198
  527. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detect.mjs +0 -33
  528. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/browser/injected/index.mjs +0 -1962
  529. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/cli/main.mjs +0 -321
  530. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/design-system.mjs +0 -814
  531. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +0 -5601
  532. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/detect-antipatterns.mjs +0 -50
  533. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/browser/detect-url.mjs +0 -259
  534. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +0 -258
  535. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/regex/detect-text.mjs +0 -636
  536. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/static-html/css-cascade.mjs +0 -1015
  537. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/static-html/detect-html.mjs +0 -253
  538. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/engines/visual/screenshot-contrast.mjs +0 -198
  539. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/findings.mjs +0 -12
  540. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/css-regions.mjs +0 -181
  541. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/fixers.mjs +0 -373
  542. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/fix/index.mjs +0 -426
  543. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/node/file-system.mjs +0 -198
  544. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/profile/profiler.mjs +0 -166
  545. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/registry/antipatterns.mjs +0 -563
  546. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +0 -2995
  547. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/color.mjs +0 -124
  548. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/constants.mjs +0 -101
  549. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/fonts.mjs +0 -30
  550. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/inline-ignores.mjs +0 -148
  551. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/detector/shared/page.mjs +0 -7
  552. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-admin.mjs +0 -661
  553. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-before-edit.mjs +0 -516
  554. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook-lib.mjs +0 -1776
  555. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/hook.mjs +0 -61
  556. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/design-parser.mjs +0 -842
  557. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/is-generated.mjs +0 -69
  558. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/monodesign-config.mjs +0 -640
  559. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/monodesign-paths.mjs +0 -129
  560. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/provider.mjs +0 -4
  561. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/lib/target-args.mjs +0 -42
  562. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/browser-script-parts.mjs +0 -50
  563. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/completion.mjs +0 -19
  564. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/event-validation.mjs +0 -137
  565. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/insert-ui.mjs +0 -458
  566. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-apply.mjs +0 -939
  567. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-edit-routes.mjs +0 -357
  568. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/manual-edits-buffer.mjs +0 -152
  569. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/session-store.mjs +0 -293
  570. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/svelte-component.mjs +0 -826
  571. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +0 -274
  572. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/ui-core.mjs +0 -180
  573. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live/vocabulary.mjs +0 -36
  574. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-accept.mjs +0 -812
  575. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser-dom.js +0 -146
  576. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser-session.js +0 -123
  577. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-browser.js +0 -11240
  578. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-commit-manual-edits.mjs +0 -1241
  579. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-complete.mjs +0 -75
  580. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-copy-edit-agent.mjs +0 -683
  581. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-discard-manual-edits.mjs +0 -51
  582. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-inject.mjs +0 -583
  583. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-insert.mjs +0 -272
  584. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-manual-edit-evidence.mjs +0 -363
  585. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-poll.mjs +0 -384
  586. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-resume.mjs +0 -94
  587. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-server.mjs +0 -1137
  588. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-status.mjs +0 -61
  589. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-target.mjs +0 -30
  590. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live-wrap.mjs +0 -894
  591. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/live.mjs +0 -297
  592. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/modern-screenshot.umd.js +0 -14
  593. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/palette.mjs +0 -633
  594. package/packages/@monomind/cli/.claude/skills/monodesign/scripts/pin.mjs +0 -221
  595. package/packages/@monomind/cli/.claude/skills/monodesign/shape.md +0 -71
  596. package/packages/@monomind/cli/.claude/skills/monodesign/teach.md +0 -18
  597. package/packages/@monomind/cli/.claude/skills/monodesign/typeset.md +0 -59
@@ -1,1015 +0,0 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
-
4
- import { profileStep, recordProfileEvent } from '../../profile/profiler.mjs';
5
- import { parseAnyColor, resolveLengthPx, resolveVarRefs } from '../../rules/checks.mjs';
6
-
7
- // ---------------------------------------------------------------------------
8
- // jsdom CSS-variable border override map
9
- // ---------------------------------------------------------------------------
10
- //
11
- // jsdom's CSSOM silently drops any border shorthand that contains a var()
12
- // reference — the computed style for the element then shows empty width,
13
- // empty style, and a default black color. That's enough to hide the most
14
- // common real-world side-tab pattern in AI-generated pages:
15
- //
16
- // :root { --brand: #87a8ff; }
17
- // .card { border-left: 5px solid var(--brand); border-radius: 4px; }
18
- //
19
- // Real browsers (and therefore the browser detector path) resolve var()
20
- // natively, so this only affects the Node jsdom path.
21
- //
22
- // This pre-pass walks the stylesheets, finds any rule whose per-side or
23
- // all-sides border property contains var(), resolves the var() against
24
- // :root-level custom properties (read from the documentElement's computed
25
- // style, which jsdom DOES handle correctly), and attaches the resolved
26
- // width+color to every element that matches the rule's selector. The
27
- // Node-side `checkElementBorders` adapter consumes that map as a fallback
28
- // whenever jsdom's computed style came back empty.
29
- //
30
- // Limitations (intentional, to keep the pass simple):
31
- // * Only :root-level custom properties are resolved. Scoped overrides on
32
- // descendants are not tracked — uncommon in practice and would require
33
- // a per-element cascade walk.
34
- // * @media / @supports wrapped rules are ignored (jsdom often mishandles
35
- // these anyway).
36
- // * The fallback only fills sides that jsdom left empty, so any rule
37
- // whose border parses normally still wins via the computed style.
38
-
39
- const BORDER_SHORTHAND_RE = /^(\d+(?:\.\d+)?)px\s+(solid|dashed|dotted|double|groove|ridge|inset|outset)\s+(.+)$/i;
40
-
41
- // isNeutralColor only understands rgba()/oklch()/lch()/lab()/hsl()/hwb().
42
- // CSS variables typically hold hex or named colors, so normalize those to
43
- // rgb() before handing the value off to the shared check. Anything we don't
44
- // recognise is passed through unchanged — isNeutralColor then treats it as
45
- // non-neutral, which is the safer default (matches the oklch-era bugfix).
46
- const NAMED_COLORS = {
47
- white: [255, 255, 255], black: [0, 0, 0], gray: [128, 128, 128],
48
- grey: [128, 128, 128], silver: [192, 192, 192], red: [255, 0, 0],
49
- green: [0, 128, 0], blue: [0, 0, 255], yellow: [255, 255, 0],
50
- };
51
-
52
- function normalizeColorForCheck(value) {
53
- if (!value) return value;
54
- const v = value.trim();
55
- const hex6 = v.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i);
56
- if (hex6) {
57
- const [r, g, b] = [parseInt(hex6[1], 16), parseInt(hex6[2], 16), parseInt(hex6[3], 16)];
58
- return `rgb(${r}, ${g}, ${b})`;
59
- }
60
- const hex3 = v.match(/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i);
61
- if (hex3) {
62
- const [r, g, b] = [
63
- parseInt(hex3[1] + hex3[1], 16),
64
- parseInt(hex3[2] + hex3[2], 16),
65
- parseInt(hex3[3] + hex3[3], 16),
66
- ];
67
- return `rgb(${r}, ${g}, ${b})`;
68
- }
69
- const named = NAMED_COLORS[v.toLowerCase()];
70
- if (named) return `rgb(${named[0]}, ${named[1]}, ${named[2]})`;
71
- return v;
72
- }
73
-
74
- function buildBorderOverrideMap(document, window) {
75
- const map = new Map();
76
- const rootStyle = window.getComputedStyle(document.documentElement);
77
-
78
- function resolveVar(value, depth = 0) {
79
- if (!value || depth > 10 || !value.includes('var(')) return value;
80
- return value.replace(
81
- /var\(\s*(--[\w-]+)\s*(?:,\s*([^)]+))?\s*\)/g,
82
- (_, name, fallback) => {
83
- const v = rootStyle.getPropertyValue(name).trim();
84
- if (v) return resolveVar(v, depth + 1);
85
- if (fallback) return resolveVar(fallback.trim(), depth + 1);
86
- return '';
87
- }
88
- );
89
- }
90
-
91
- function parseShorthand(text) {
92
- const m = text.trim().match(BORDER_SHORTHAND_RE);
93
- if (!m) return null;
94
- return { width: parseFloat(m[1]), color: normalizeColorForCheck(m[3]) };
95
- }
96
-
97
- // Read from the per-property accessors on rule.style. jsdom preserves
98
- // each border-* shorthand it parsed, even when the overall cssText has
99
- // been truncated (e.g. a `border: 1px solid var(...)` followed by a
100
- // `border-left: ...` loses the first declaration but keeps the second).
101
- const SIDE_PROPS = [
102
- ['borderLeft', 'Left'],
103
- ['borderRight', 'Right'],
104
- ['borderTop', 'Top'],
105
- ['borderBottom', 'Bottom'],
106
- ['borderInlineStart', 'Left'],
107
- ['borderInlineEnd', 'Right'],
108
- ];
109
-
110
- for (const sheet of document.styleSheets) {
111
- let rules;
112
- try { rules = sheet.cssRules || []; } catch { continue; }
113
- for (const rule of rules) {
114
- // CSSStyleRule only; skip @media / @keyframes / @supports wrappers.
115
- if (rule.type !== 1 || !rule.style || !rule.selectorText) continue;
116
-
117
- const perSide = {};
118
-
119
- for (const [prop, side] of SIDE_PROPS) {
120
- const val = rule.style[prop];
121
- if (!val || !val.includes('var(')) continue;
122
- const parsed = parseShorthand(resolveVar(val));
123
- if (parsed && parsed.color) perSide[side] = parsed;
124
- }
125
-
126
- // Uniform `border: <w> <style> var(...)` applies to every side the
127
- // per-side map didn't already claim.
128
- const borderAll = rule.style.border;
129
- if (borderAll && borderAll.includes('var(')) {
130
- const parsed = parseShorthand(resolveVar(borderAll));
131
- if (parsed && parsed.color) {
132
- for (const s of ['Top', 'Right', 'Bottom', 'Left']) {
133
- if (!perSide[s]) perSide[s] = parsed;
134
- }
135
- }
136
- }
137
-
138
- // Longhand `border-*-color: var(...)` with width/style in separate
139
- // declarations. Rare in AI-generated pages, but cheap to cover.
140
- for (const [prop, side] of [
141
- ['borderLeftColor', 'Left'],
142
- ['borderRightColor', 'Right'],
143
- ['borderTopColor', 'Top'],
144
- ['borderBottomColor', 'Bottom'],
145
- ]) {
146
- const val = rule.style[prop];
147
- if (!val || !val.includes('var(')) continue;
148
- const resolved = resolveVar(val).trim();
149
- if (!resolved) continue;
150
- // Width may or may not come from this rule — that's fine; the
151
- // adapter only substitutes the color when jsdom left it as a
152
- // literal var() string.
153
- if (!perSide[side]) perSide[side] = { width: 0, color: normalizeColorForCheck(resolved) };
154
- }
155
-
156
- if (Object.keys(perSide).length === 0) continue;
157
-
158
- let matched;
159
- try { matched = document.querySelectorAll(rule.selectorText); }
160
- catch { continue; }
161
-
162
- for (const el of matched) {
163
- const existing = map.get(el);
164
- if (existing) {
165
- // Later rules overwrite earlier ones — approximates source-order
166
- // cascade for equal-specificity rules and is good enough for the
167
- // uncontested var()-dropped sides we're trying to recover.
168
- Object.assign(existing, perSide);
169
- } else {
170
- map.set(el, { ...perSide });
171
- }
172
- }
173
- }
174
- }
175
-
176
- return map;
177
- }
178
-
179
- // Strip `@layer NAME { … }` wrappers from a CSS / HTML source, leaving
180
- // the inner rules as flat CSS. jsdom doesn't implement CSS @layer, so
181
- // any rule inside a layer block becomes invisible to getComputedStyle.
182
- // Tailwind v4 makes this ubiquitous: every utility class lives in
183
- // `@layer utilities`, and Preflight lives in `@layer base`. Without
184
- // unwrapping, every Tailwind-styled element returns empty computed
185
- // styles. We walk the source character-by-character, balancing braces
186
- // so we correctly handle nested style rules inside the layer block.
187
- function unwrapCssAtLayer(source) {
188
- if (!source || !source.includes('@layer')) return source;
189
- // Find `@layer <name>? {` openers. The match starts at the @, and
190
- // we then balance braces from the opening { onward.
191
- const re = /@layer\b[^{;]*\{/g;
192
- let out = '';
193
- let lastIdx = 0;
194
- let m;
195
- while ((m = re.exec(source)) !== null) {
196
- const openStart = m.index;
197
- const openEnd = m.index + m[0].length; // position right after `{`
198
- let depth = 1;
199
- let i = openEnd;
200
- while (i < source.length && depth > 0) {
201
- const c = source.charCodeAt(i);
202
- if (c === 0x7b /* { */) depth++;
203
- else if (c === 0x7d /* } */) depth--;
204
- i++;
205
- }
206
- if (depth !== 0) {
207
- // Unbalanced — bail and return source unchanged.
208
- return source;
209
- }
210
- // Emit everything before the @layer, then the inner contents
211
- // (between the opening { and the matched closing }), then advance.
212
- out += source.slice(lastIdx, openStart);
213
- out += source.slice(openEnd, i - 1); // i-1 = position of the closing }
214
- lastIdx = i;
215
- re.lastIndex = i;
216
- }
217
- out += source.slice(lastIdx);
218
- return out;
219
- }
220
-
221
- // ---------------------------------------------------------------------------
222
- // Static HTML/CSS detection (default for local HTML files)
223
- // ---------------------------------------------------------------------------
224
-
225
- const STATIC_INHERITED_PROPS = new Set([
226
- 'color', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight',
227
- 'lineHeight', 'letterSpacing', 'textTransform', 'textAlign', 'hyphens',
228
- 'webkitHyphens',
229
- ]);
230
-
231
- const STATIC_DEFAULT_STYLE = {
232
- color: 'rgb(0, 0, 0)',
233
- backgroundColor: 'rgba(0, 0, 0, 0)',
234
- backgroundImage: 'none',
235
- borderTopWidth: '0px',
236
- borderRightWidth: '0px',
237
- borderBottomWidth: '0px',
238
- borderLeftWidth: '0px',
239
- borderTopColor: 'rgb(0, 0, 0)',
240
- borderRightColor: 'rgb(0, 0, 0)',
241
- borderBottomColor: 'rgb(0, 0, 0)',
242
- borderLeftColor: 'rgb(0, 0, 0)',
243
- borderRadius: '0px',
244
- outlineWidth: '0px',
245
- outlineColor: 'rgb(0, 0, 0)',
246
- outlineStyle: 'none',
247
- boxShadow: 'none',
248
- fontFamily: '',
249
- fontSize: '16px',
250
- fontStyle: 'normal',
251
- fontWeight: '400',
252
- lineHeight: 'normal',
253
- letterSpacing: 'normal',
254
- textTransform: 'none',
255
- textAlign: 'start',
256
- hyphens: 'manual',
257
- webkitHyphens: 'manual',
258
- transitionProperty: '',
259
- transitionTimingFunction: '',
260
- animationName: '',
261
- animationTimingFunction: '',
262
- webkitBackgroundClip: '',
263
- backgroundClip: '',
264
- width: '',
265
- height: '',
266
- paddingTop: '0px',
267
- paddingRight: '0px',
268
- paddingBottom: '0px',
269
- paddingLeft: '0px',
270
- marginTop: '0px',
271
- marginRight: '0px',
272
- marginBottom: '0px',
273
- marginLeft: '0px',
274
- position: 'static',
275
- visibility: 'visible',
276
- top: 'auto',
277
- right: 'auto',
278
- bottom: 'auto',
279
- left: 'auto',
280
- inset: '',
281
- display: '',
282
- overflow: 'visible',
283
- overflowX: 'visible',
284
- overflowY: 'visible',
285
- };
286
-
287
- const STATIC_PROP_MAP = {
288
- 'background-color': 'backgroundColor',
289
- 'background-image': 'backgroundImage',
290
- 'background-clip': 'backgroundClip',
291
- '-webkit-background-clip': 'webkitBackgroundClip',
292
- 'border-radius': 'borderRadius',
293
- 'border-top-width': 'borderTopWidth',
294
- 'border-right-width': 'borderRightWidth',
295
- 'border-bottom-width': 'borderBottomWidth',
296
- 'border-left-width': 'borderLeftWidth',
297
- 'border-top-color': 'borderTopColor',
298
- 'border-right-color': 'borderRightColor',
299
- 'border-bottom-color': 'borderBottomColor',
300
- 'border-left-color': 'borderLeftColor',
301
- 'outline-width': 'outlineWidth',
302
- 'outline-color': 'outlineColor',
303
- 'outline-style': 'outlineStyle',
304
- 'box-shadow': 'boxShadow',
305
- 'font-family': 'fontFamily',
306
- 'font-size': 'fontSize',
307
- 'font-style': 'fontStyle',
308
- 'font-weight': 'fontWeight',
309
- 'line-height': 'lineHeight',
310
- 'letter-spacing': 'letterSpacing',
311
- 'text-transform': 'textTransform',
312
- 'text-align': 'textAlign',
313
- 'hyphens': 'hyphens',
314
- '-webkit-hyphens': 'webkitHyphens',
315
- 'transition-property': 'transitionProperty',
316
- 'transition-timing-function': 'transitionTimingFunction',
317
- 'animation-name': 'animationName',
318
- 'animation-timing-function': 'animationTimingFunction',
319
- 'width': 'width',
320
- 'height': 'height',
321
- 'padding-top': 'paddingTop',
322
- 'padding-right': 'paddingRight',
323
- 'padding-bottom': 'paddingBottom',
324
- 'padding-left': 'paddingLeft',
325
- 'margin-top': 'marginTop',
326
- 'margin-right': 'marginRight',
327
- 'margin-bottom': 'marginBottom',
328
- 'margin-left': 'marginLeft',
329
- 'position': 'position',
330
- 'visibility': 'visibility',
331
- 'top': 'top',
332
- 'right': 'right',
333
- 'bottom': 'bottom',
334
- 'left': 'left',
335
- 'inset': 'inset',
336
- 'display': 'display',
337
- 'overflow': 'overflow',
338
- 'overflow-x': 'overflowX',
339
- 'overflow-y': 'overflowY',
340
- };
341
-
342
- const STATIC_NAMED_COLORS = {
343
- black: { r: 0, g: 0, b: 0, a: 1 },
344
- white: { r: 255, g: 255, b: 255, a: 1 },
345
- transparent: { r: 0, g: 0, b: 0, a: 0 },
346
- gray: { r: 128, g: 128, b: 128, a: 1 },
347
- grey: { r: 128, g: 128, b: 128, a: 1 },
348
- silver: { r: 192, g: 192, b: 192, a: 1 },
349
- red: { r: 255, g: 0, b: 0, a: 1 },
350
- green: { r: 0, g: 128, b: 0, a: 1 },
351
- blue: { r: 0, g: 0, b: 255, a: 1 },
352
- };
353
-
354
- function splitCssList(value) {
355
- const parts = [];
356
- let depth = 0, quote = '', start = 0;
357
- for (let i = 0; i < value.length; i++) {
358
- const ch = value[i];
359
- if (quote) {
360
- if (ch === quote && value[i - 1] !== '\\') quote = '';
361
- continue;
362
- }
363
- if (ch === '"' || ch === "'") { quote = ch; continue; }
364
- if (ch === '(' || ch === '[') depth++;
365
- else if (ch === ')' || ch === ']') depth = Math.max(0, depth - 1);
366
- else if (ch === ',' && depth === 0) {
367
- parts.push(value.slice(start, i).trim());
368
- start = i + 1;
369
- }
370
- }
371
- const tail = value.slice(start).trim();
372
- if (tail) parts.push(tail);
373
- return parts;
374
- }
375
-
376
- function splitCssTokens(value) {
377
- const tokens = [];
378
- let depth = 0, quote = '', current = '';
379
- for (let i = 0; i < value.length; i++) {
380
- const ch = value[i];
381
- if (quote) {
382
- current += ch;
383
- if (ch === quote && value[i - 1] !== '\\') quote = '';
384
- continue;
385
- }
386
- if (ch === '"' || ch === "'") { quote = ch; current += ch; continue; }
387
- if (ch === '(') { depth++; current += ch; continue; }
388
- if (ch === ')') { depth = Math.max(0, depth - 1); current += ch; continue; }
389
- if (/\s/.test(ch) && depth === 0) {
390
- if (current) { tokens.push(current); current = ''; }
391
- continue;
392
- }
393
- current += ch;
394
- }
395
- if (current) tokens.push(current);
396
- return tokens;
397
- }
398
-
399
- function cssPropToCamel(prop) {
400
- if (!prop) return prop;
401
- const mapped = STATIC_PROP_MAP[prop];
402
- if (mapped) return mapped;
403
- return prop.replace(/-([a-z])/g, (_m, ch) => ch.toUpperCase());
404
- }
405
-
406
- function staticColorToCss(c) {
407
- if (!c) return '';
408
- if (c.a != null && c.a < 1) return `rgba(${c.r}, ${c.g}, ${c.b}, ${Number(c.a.toFixed(3))})`;
409
- return `rgb(${c.r}, ${c.g}, ${c.b})`;
410
- }
411
-
412
- function parseStaticColor(value) {
413
- const parsed = parseAnyColor(value);
414
- if (parsed) return parsed;
415
- const named = STATIC_NAMED_COLORS[String(value || '').trim().toLowerCase()];
416
- return named ? { ...named } : null;
417
- }
418
-
419
- function extractStaticColor(value) {
420
- if (!value) return '';
421
- const raw = String(value).trim();
422
- if (/^var\(/i.test(raw)) return raw;
423
- const colorLike = raw.match(/(?:rgba?\([^)]+\)|oklch\([^)]+\)|oklab\([^)]+\)|lch\([^)]+\)|lab\([^)]+\)|hsla?\([^)]+\)|hwb\([^)]+\)|#[0-9a-f]{3,8}\b|\b(?:black|white|gray|grey|silver|red|green|blue|transparent)\b)/i);
424
- if (!colorLike) return '';
425
- return colorLike[0];
426
- }
427
-
428
- function normalizeStaticCssValue(prop, value, customProps, parentStyle, currentStyle = null) {
429
- let resolved = resolveVarRefs(String(value || '').trim(), customProps);
430
- if (resolved === 'inherit') return parentStyle?.[prop] || STATIC_DEFAULT_STYLE[prop] || '';
431
- const isModernBorderColor = /^border[A-Z][a-z]+Color$/.test(prop) && /^(?:oklch|oklab|lch|lab|hsl|hwb)\(/i.test(resolved);
432
- if (!isModernBorderColor && (/color$/i.test(prop) || prop === 'color' || prop === 'backgroundColor')) {
433
- const parsed = parseStaticColor(resolved);
434
- if (parsed) resolved = staticColorToCss(parsed);
435
- }
436
- if (prop === 'fontSize') {
437
- const base = parseFloat(parentStyle?.fontSize) || 16;
438
- const px = resolveLengthPx(resolved, base);
439
- if (px != null) resolved = `${px}px`;
440
- }
441
- if (prop === 'letterSpacing') {
442
- const base = parseFloat(currentStyle?.fontSize || parentStyle?.fontSize) || 16;
443
- const px = resolveLengthPx(resolved, base);
444
- if (px != null) resolved = `${px}px`;
445
- }
446
- if (prop === 'lineHeight' && resolved !== 'normal') {
447
- const base = parseFloat(currentStyle?.fontSize || parentStyle?.fontSize) || 16;
448
- const px = resolveLengthPx(resolved, base);
449
- if (px != null) resolved = `${px}px`;
450
- }
451
- return resolved;
452
- }
453
-
454
- function expandStaticBoxValues(tokens) {
455
- if (tokens.length === 0) return ['0px', '0px', '0px', '0px'];
456
- if (tokens.length === 1) return [tokens[0], tokens[0], tokens[0], tokens[0]];
457
- if (tokens.length === 2) return [tokens[0], tokens[1], tokens[0], tokens[1]];
458
- if (tokens.length === 3) return [tokens[0], tokens[1], tokens[2], tokens[1]];
459
- return [tokens[0], tokens[1], tokens[2], tokens[3]];
460
- }
461
-
462
- function parseStaticBorder(value) {
463
- const tokens = splitCssTokens(value);
464
- let width = '', color = '';
465
- for (const token of tokens) {
466
- if (!width && /^-?[\d.]+(?:px|rem|em|%)$/.test(token)) width = token;
467
- if (!color) color = extractStaticColor(token);
468
- }
469
- return { width, color };
470
- }
471
-
472
- function parseStaticFont(value) {
473
- const out = [];
474
- const slashParts = value.match(/(?:^|\s)([\d.]+(?:px|rem|em|%))(?:\/([^\s]+))?/);
475
- if (/\bitalic\b/i.test(value)) out.push(['fontStyle', 'italic']);
476
- const weight = value.match(/\b([1-9]00|bold|normal|lighter|bolder)\b/i);
477
- if (weight) out.push(['fontWeight', weight[1]]);
478
- if (slashParts) {
479
- out.push(['fontSize', slashParts[1]]);
480
- if (slashParts[2]) out.push(['lineHeight', slashParts[2]]);
481
- const familyStart = value.indexOf(slashParts[0]) + slashParts[0].length;
482
- const family = value.slice(familyStart).trim();
483
- if (family) out.push(['fontFamily', family]);
484
- }
485
- return out;
486
- }
487
-
488
- function parseStaticTransition(value) {
489
- const props = [];
490
- const timings = [];
491
- for (const item of splitCssList(value)) {
492
- const tokens = splitCssTokens(item);
493
- const timing = tokens.find(token => /^(?:ease|linear|step-|cubic-bezier\()/i.test(token));
494
- if (timing) timings.push(timing);
495
- const prop = tokens.find(token => /^[a-z-]+$/i.test(token) && !/^(?:ease|linear|infinite|alternate|forwards|backwards|both|normal|none)$/.test(token) && !/s$/.test(token));
496
- if (prop) props.push(prop);
497
- }
498
- return {
499
- property: props.join(', '),
500
- timing: timings.join(', '),
501
- };
502
- }
503
-
504
- function parseStaticAnimation(value) {
505
- const names = [];
506
- const timings = [];
507
- for (const item of splitCssList(value)) {
508
- const tokens = splitCssTokens(item);
509
- const timing = tokens.find(token => /^(?:ease|linear|step-|cubic-bezier\()/i.test(token));
510
- if (timing) timings.push(timing);
511
- const name = tokens.find(token =>
512
- /^[a-z_-][\w-]*$/i.test(token) &&
513
- !/^(?:ease|linear|infinite|alternate|forwards|backwards|both|normal|none|running|paused)$/.test(token)
514
- );
515
- if (name) names.push(name);
516
- }
517
- return {
518
- name: names.join(', '),
519
- timing: timings.join(', '),
520
- };
521
- }
522
-
523
- function expandStaticDeclaration(prop, value) {
524
- const p = prop.toLowerCase();
525
- const v = String(value || '').trim();
526
- if (!v) return [];
527
- if (p.startsWith('--')) return [[p, v]];
528
- if (p === 'background') {
529
- const out = [];
530
- const hasImage = /gradient|url\(/i.test(v);
531
- if (hasImage) out.push(['backgroundImage', v]);
532
- const beforeImage = hasImage ? v.split(/(?:repeating-)?(?:linear|radial|conic)-gradient\(|url\(/i)[0] : v;
533
- const color = extractStaticColor(hasImage ? beforeImage : v);
534
- if (color) out.push(['backgroundColor', color]);
535
- return out;
536
- }
537
- if (p === 'border') {
538
- const parsed = parseStaticBorder(v);
539
- const out = [];
540
- for (const side of ['Top', 'Right', 'Bottom', 'Left']) {
541
- if (parsed.width) out.push([`border${side}Width`, parsed.width]);
542
- if (parsed.color) out.push([`border${side}Color`, parsed.color]);
543
- }
544
- return out;
545
- }
546
- if (p === 'outline') {
547
- // `outline` shorthand: width | style | color, in any order. Reuse the
548
- // border parser for width + color, then sniff a style keyword from the
549
- // tokens (solid|dashed|...). `outline: 0` (single-token zero) zeros
550
- // the width and effectively hides the outline.
551
- const tokens = splitCssTokens(v);
552
- const parsed = parseStaticBorder(v);
553
- const styleToken = tokens.find(t =>
554
- /^(none|hidden|solid|dashed|dotted|double|groove|ridge|inset|outset)$/i.test(t)
555
- );
556
- const out = [];
557
- if (parsed.width) out.push(['outlineWidth', parsed.width]);
558
- if (parsed.color) out.push(['outlineColor', parsed.color]);
559
- if (styleToken) out.push(['outlineStyle', styleToken.toLowerCase()]);
560
- // `outline: 0` with no other tokens: explicit zero width.
561
- if (!parsed.width && /^0(?:px|rem|em|%)?$/.test(v.trim())) {
562
- out.push(['outlineWidth', '0px']);
563
- }
564
- return out;
565
- }
566
- const sideMatch = p.match(/^border-(top|right|bottom|left)$/);
567
- if (sideMatch) {
568
- const parsed = parseStaticBorder(v);
569
- const side = sideMatch[1][0].toUpperCase() + sideMatch[1].slice(1);
570
- return [
571
- ...(parsed.width ? [[`border${side}Width`, parsed.width]] : []),
572
- ...(parsed.color ? [[`border${side}Color`, parsed.color]] : []),
573
- ];
574
- }
575
- if (p === 'border-width') {
576
- const vals = expandStaticBoxValues(splitCssTokens(v));
577
- return [
578
- ['borderTopWidth', vals[0]],
579
- ['borderRightWidth', vals[1]],
580
- ['borderBottomWidth', vals[2]],
581
- ['borderLeftWidth', vals[3]],
582
- ];
583
- }
584
- if (p === 'border-color') {
585
- const vals = expandStaticBoxValues(splitCssTokens(v));
586
- return [
587
- ['borderTopColor', vals[0]],
588
- ['borderRightColor', vals[1]],
589
- ['borderBottomColor', vals[2]],
590
- ['borderLeftColor', vals[3]],
591
- ];
592
- }
593
- if (p === 'padding') {
594
- const vals = expandStaticBoxValues(splitCssTokens(v));
595
- return [
596
- ['paddingTop', vals[0]],
597
- ['paddingRight', vals[1]],
598
- ['paddingBottom', vals[2]],
599
- ['paddingLeft', vals[3]],
600
- ];
601
- }
602
- if (p === 'margin') {
603
- const vals = expandStaticBoxValues(splitCssTokens(v));
604
- return [
605
- ['marginTop', vals[0]],
606
- ['marginRight', vals[1]],
607
- ['marginBottom', vals[2]],
608
- ['marginLeft', vals[3]],
609
- ];
610
- }
611
- if (p === 'font') return parseStaticFont(v);
612
- if (p === 'transition') {
613
- const parsed = parseStaticTransition(v);
614
- return [
615
- ...(parsed.property ? [['transitionProperty', parsed.property]] : []),
616
- ...(parsed.timing ? [['transitionTimingFunction', parsed.timing]] : []),
617
- ];
618
- }
619
- if (p === 'animation') {
620
- const parsed = parseStaticAnimation(v);
621
- return [
622
- ...(parsed.name ? [['animationName', parsed.name]] : []),
623
- ...(parsed.timing ? [['animationTimingFunction', parsed.timing]] : []),
624
- ];
625
- }
626
- const mapped = cssPropToCamel(p);
627
- if (STATIC_DEFAULT_STYLE[mapped] != null || STATIC_INHERITED_PROPS.has(mapped)) {
628
- return [[mapped, v]];
629
- }
630
- return [];
631
- }
632
-
633
- function compareStaticPriority(a, b) {
634
- if (!a) return true;
635
- if (!!b.important !== !!a.important) return !!b.important;
636
- if (!!b.inline !== !!a.inline) return !!b.inline;
637
- for (let i = 0; i < 3; i++) {
638
- if ((b.specificity[i] || 0) !== (a.specificity[i] || 0)) {
639
- return (b.specificity[i] || 0) > (a.specificity[i] || 0);
640
- }
641
- }
642
- return b.order >= a.order;
643
- }
644
-
645
- function staticSpecificity(selector) {
646
- const noWhere = selector.replace(/:where\([^)]*\)/g, '');
647
- const ids = (noWhere.match(/#[\w-]+/g) || []).length;
648
- const classes = (noWhere.match(/\.[\w-]+|\[[^\]]+\]|:(?!:)[\w-]+(?:\([^)]*\))?/g) || []).length;
649
- const stripped = noWhere
650
- .replace(/#[\w-]+/g, ' ')
651
- .replace(/\.[\w-]+|\[[^\]]+\]|:{1,2}[\w-]+(?:\([^)]*\))?/g, ' ')
652
- .replace(/[*>+~(),]/g, ' ');
653
- const types = (stripped.match(/\b[a-zA-Z][\w-]*\b/g) || []).length;
654
- return [ids, classes, types];
655
- }
656
-
657
- function applyStaticDeclaration(specified, node, prop, value, meta) {
658
- let map = specified.get(node);
659
- if (!map) { map = new Map(); specified.set(node, map); }
660
- for (const [expandedProp, expandedValue] of expandStaticDeclaration(prop, value)) {
661
- const existing = map.get(expandedProp);
662
- const next = { ...meta, prop: expandedProp, value: expandedValue };
663
- if (compareStaticPriority(existing, next)) map.set(expandedProp, next);
664
- }
665
- }
666
-
667
- function parseStaticStyleAttribute(styleText, orderBase = 0) {
668
- const decls = [];
669
- for (const part of String(styleText || '').split(';')) {
670
- const idx = part.indexOf(':');
671
- if (idx <= 0) continue;
672
- const prop = part.slice(0, idx).trim();
673
- let value = part.slice(idx + 1).trim();
674
- const important = /!important\s*$/i.test(value);
675
- value = value.replace(/\s*!important\s*$/i, '').trim();
676
- decls.push({ prop, value, important, order: orderBase + decls.length });
677
- }
678
- return decls;
679
- }
680
-
681
- function collectStaticCssRules(cssText, csstree) {
682
- const rules = [];
683
- let ast;
684
- try {
685
- ast = csstree.parse(cssText, { positions: false, parseValue: true, parseCustomProperty: false });
686
- } catch {
687
- return rules;
688
- }
689
- let order = 0;
690
- const walkList = (list, atRuleStack = []) => {
691
- list?.forEach?.(node => {
692
- if (node.type === 'Rule' && node.block) {
693
- if (atRuleStack.some(name => /keyframes$/i.test(name))) return;
694
- const selectorText = csstree.generate(node.prelude).trim();
695
- const declarations = [];
696
- node.block.children?.forEach?.(child => {
697
- if (child.type !== 'Declaration') return;
698
- declarations.push({
699
- prop: child.property,
700
- value: csstree.generate(child.value).trim(),
701
- important: !!child.important,
702
- });
703
- });
704
- for (const selector of splitCssList(selectorText)) {
705
- if (selector) rules.push({ selector, declarations, specificity: staticSpecificity(selector), order: order++ });
706
- }
707
- return;
708
- }
709
- if (node.type === 'Atrule' && node.block) {
710
- const name = String(node.name || '').toLowerCase();
711
- if (name === 'media' || name === 'supports' || name === 'layer') {
712
- walkList(node.block.children, [...atRuleStack, name]);
713
- }
714
- }
715
- });
716
- };
717
- walkList(ast.children);
718
- return rules;
719
- }
720
-
721
- class StaticElement {
722
- constructor(node, doc) {
723
- this.node = node;
724
- this._doc = doc;
725
- this.nodeType = 1;
726
- this.tagName = String(node.name || '').toUpperCase();
727
- this.nodeName = this.tagName;
728
- }
729
- get parentElement() {
730
- let cur = this.node.parent;
731
- while (cur && cur.type !== 'tag') cur = cur.parent;
732
- return cur ? this._doc.wrap(cur) : null;
733
- }
734
- get previousElementSibling() {
735
- let cur = this.node.prev;
736
- while (cur && cur.type !== 'tag') cur = cur.prev;
737
- return cur ? this._doc.wrap(cur) : null;
738
- }
739
- get children() {
740
- return (this.node.children || []).filter(child => child.type === 'tag').map(child => this._doc.wrap(child));
741
- }
742
- get childNodes() {
743
- return (this.node.children || []).map(child => {
744
- if (child.type === 'text') return { nodeType: 3, textContent: child.data || '' };
745
- if (child.type === 'tag') return this._doc.wrap(child);
746
- return { nodeType: 8, textContent: child.data || '' };
747
- });
748
- }
749
- get textContent() {
750
- return this._doc.domutils.textContent(this.node);
751
- }
752
- get className() {
753
- return this.getAttribute('class') || '';
754
- }
755
- get id() {
756
- return this.getAttribute('id') || '';
757
- }
758
- getAttribute(name) {
759
- return this.node.attribs?.[name] ?? null;
760
- }
761
- querySelector(selector) {
762
- try {
763
- const found = this._doc.selectOne(selector, this.node.children || []);
764
- return found ? this._doc.wrap(found) : null;
765
- } catch {
766
- return null;
767
- }
768
- }
769
- querySelectorAll(selector) {
770
- try {
771
- return this._doc.selectAll(selector, this.node.children || []).map(node => this._doc.wrap(node));
772
- } catch {
773
- return [];
774
- }
775
- }
776
- closest(selector) {
777
- let cur = this.node;
778
- while (cur && cur.type === 'tag') {
779
- try {
780
- if (this._doc.is(cur, selector)) return this._doc.wrap(cur);
781
- } catch {
782
- return null;
783
- }
784
- cur = cur.parent;
785
- while (cur && cur.type !== 'tag') cur = cur.parent;
786
- }
787
- return null;
788
- }
789
- contains(other) {
790
- let cur = other?.node || null;
791
- while (cur) {
792
- if (cur === this.node) return true;
793
- cur = cur.parent;
794
- }
795
- return false;
796
- }
797
- }
798
-
799
- class StaticDocument {
800
- constructor(root, modules) {
801
- this.root = root;
802
- this.selectAll = modules.selectAll;
803
- this.selectOne = modules.selectOne;
804
- this.is = modules.is;
805
- this.domutils = modules.domutils;
806
- this._wrappers = new WeakMap();
807
- this._styleMap = new WeakMap();
808
- }
809
- wrap(node) {
810
- let wrapped = this._wrappers.get(node);
811
- if (!wrapped) {
812
- wrapped = new StaticElement(node, this);
813
- this._wrappers.set(node, wrapped);
814
- }
815
- return wrapped;
816
- }
817
- querySelectorAll(selector) {
818
- try {
819
- return this.selectAll(selector, this.root.children || []).map(node => this.wrap(node));
820
- } catch {
821
- return [];
822
- }
823
- }
824
- querySelector(selector) {
825
- try {
826
- const found = this.selectOne(selector, this.root.children || []);
827
- return found ? this.wrap(found) : null;
828
- } catch {
829
- return null;
830
- }
831
- }
832
- get documentElement() {
833
- return this.querySelector('html');
834
- }
835
- get body() {
836
- return this.querySelector('body');
837
- }
838
- setStyle(node, style) {
839
- this._styleMap.set(node, style);
840
- }
841
- getStyle(el) {
842
- return this._styleMap.get(el.node) || makeStaticStyle();
843
- }
844
- }
845
-
846
- function makeStaticStyle(values = {}) {
847
- const style = { ...STATIC_DEFAULT_STYLE, ...values };
848
- style.getPropertyValue = (prop) => {
849
- const key = cssPropToCamel(prop);
850
- return style[key] || style[prop] || '';
851
- };
852
- return style;
853
- }
854
-
855
- function buildStaticWindow(staticDoc) {
856
- return {
857
- document: staticDoc,
858
- getComputedStyle: (el) => staticDoc.getStyle(el),
859
- };
860
- }
861
-
862
- function collectStaticCssText(root, fileDir, profile, filePath, modules) {
863
- const styleTexts = [];
864
- for (const styleEl of modules.selectAll('style', root.children || [])) {
865
- styleTexts.push(modules.domutils.textContent(styleEl));
866
- }
867
- const links = modules.selectAll('link', root.children || []);
868
- for (const link of links) {
869
- const rel = link.attribs?.rel || '';
870
- const href = link.attribs?.href || '';
871
- if (!/\bstylesheet\b/i.test(rel) || !href || /^(https?:)?\/\//i.test(href)) continue;
872
- const cssPath = path.resolve(fileDir, href);
873
- try {
874
- const css = profileStep(profile, {
875
- engine: 'static-html',
876
- phase: 'preprocess',
877
- ruleId: 'inline-linked-stylesheet',
878
- target: filePath,
879
- detail: href,
880
- }, () => fs.readFileSync(cssPath, 'utf-8'));
881
- styleTexts.push(css);
882
- } catch { /* skip unreadable */ }
883
- }
884
- return styleTexts.join('\n');
885
- }
886
-
887
- function buildStaticStyleMap(root, staticDoc, cssText, modules, profile, filePath) {
888
- const specified = new Map();
889
- const allNodes = modules.selectAll('*', root.children || []);
890
- const rules = profileStep(profile, {
891
- engine: 'static-html',
892
- phase: 'parse-css',
893
- ruleId: 'css-rules',
894
- target: filePath,
895
- }, () => collectStaticCssRules(cssText, modules.csstree));
896
-
897
- profileStep(profile, {
898
- engine: 'static-html',
899
- phase: 'selector-match',
900
- ruleId: 'css-selectors',
901
- target: filePath,
902
- }, () => {
903
- for (const rule of rules) {
904
- let matched;
905
- try {
906
- matched = modules.selectAll(rule.selector, root.children || []);
907
- } catch {
908
- recordProfileEvent(profile, {
909
- engine: 'static-html',
910
- phase: 'selector-match',
911
- ruleId: 'unsupported-selector',
912
- target: filePath,
913
- ms: 0,
914
- findings: 0,
915
- detail: rule.selector,
916
- });
917
- continue;
918
- }
919
- for (const node of matched) {
920
- for (const decl of rule.declarations) {
921
- applyStaticDeclaration(specified, node, decl.prop, decl.value, {
922
- important: decl.important,
923
- specificity: rule.specificity,
924
- order: rule.order,
925
- inline: false,
926
- });
927
- }
928
- }
929
- }
930
-
931
- let inlineOrder = rules.length + 1;
932
- for (const node of allNodes) {
933
- const styleText = node.attribs?.style;
934
- if (!styleText) continue;
935
- for (const decl of parseStaticStyleAttribute(styleText, inlineOrder)) {
936
- applyStaticDeclaration(specified, node, decl.prop, decl.value, {
937
- important: decl.important,
938
- specificity: [1, 0, 0],
939
- order: decl.order,
940
- inline: true,
941
- });
942
- }
943
- inlineOrder += 1000;
944
- }
945
- });
946
-
947
- const computeNode = (node, parentStyle = null, parentCustom = new Map()) => {
948
- const specifiedMap = specified.get(node) || new Map();
949
- const customProps = new Map(parentCustom);
950
- for (const [prop, decl] of specifiedMap) {
951
- if (prop.startsWith('--')) customProps.set(prop, resolveVarRefs(decl.value, customProps));
952
- }
953
- const values = {};
954
- for (const prop of Object.keys(STATIC_DEFAULT_STYLE)) {
955
- if (STATIC_INHERITED_PROPS.has(prop) && parentStyle?.[prop] != null) values[prop] = parentStyle[prop];
956
- else values[prop] = STATIC_DEFAULT_STYLE[prop];
957
- }
958
- for (const [prop, decl] of specifiedMap) {
959
- if (prop.startsWith('--')) continue;
960
- values[prop] = normalizeStaticCssValue(prop, decl.value, customProps, parentStyle, values);
961
- }
962
- const style = makeStaticStyle(values);
963
- staticDoc.setStyle(node, style);
964
- for (const child of node.children || []) {
965
- if (child.type === 'tag') computeNode(child, style, customProps);
966
- }
967
- };
968
-
969
- profileStep(profile, {
970
- engine: 'static-html',
971
- phase: 'cascade',
972
- ruleId: 'compute-styles',
973
- target: filePath,
974
- }, () => {
975
- for (const child of root.children || []) {
976
- if (child.type === 'tag') computeNode(child);
977
- }
978
- });
979
- }
980
-
981
- export {
982
- BORDER_SHORTHAND_RE,
983
- NAMED_COLORS,
984
- normalizeColorForCheck,
985
- buildBorderOverrideMap,
986
- unwrapCssAtLayer,
987
- STATIC_INHERITED_PROPS,
988
- STATIC_DEFAULT_STYLE,
989
- STATIC_PROP_MAP,
990
- STATIC_NAMED_COLORS,
991
- splitCssList,
992
- splitCssTokens,
993
- cssPropToCamel,
994
- staticColorToCss,
995
- parseStaticColor,
996
- extractStaticColor,
997
- normalizeStaticCssValue,
998
- expandStaticBoxValues,
999
- parseStaticBorder,
1000
- parseStaticFont,
1001
- parseStaticTransition,
1002
- parseStaticAnimation,
1003
- expandStaticDeclaration,
1004
- compareStaticPriority,
1005
- staticSpecificity,
1006
- applyStaticDeclaration,
1007
- parseStaticStyleAttribute,
1008
- collectStaticCssRules,
1009
- StaticElement,
1010
- StaticDocument,
1011
- makeStaticStyle,
1012
- buildStaticWindow,
1013
- collectStaticCssText,
1014
- buildStaticStyleMap,
1015
- };