@monoes/monomindcli 2.16.1 → 2.16.3

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 (1009) hide show
  1. package/.claude/agents/architecture/system-design/arch-system-design.md +4 -1
  2. package/.claude/agents/consensus/quorum-manager.md +3 -0
  3. package/.claude/agents/consensus/security-manager.md +4 -1
  4. package/.claude/agents/core/coder.md +4 -1
  5. package/.claude/agents/core/coordinator.md +3 -0
  6. package/.claude/agents/core/planner.md +4 -1
  7. package/.claude/agents/core/researcher.md +4 -1
  8. package/.claude/agents/core/reviewer.md +4 -1
  9. package/.claude/agents/core/tester.md +4 -1
  10. package/.claude/agents/design/design-monodesign.md +4 -1
  11. package/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +4 -1
  12. package/.claude/agents/engineering/engineering-ai-engineer.md +4 -1
  13. package/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +3 -0
  14. package/.claude/agents/engineering/engineering-backend-architect.md +4 -1
  15. package/.claude/agents/engineering/engineering-code-reviewer.md +5 -0
  16. package/.claude/agents/engineering/engineering-data-engineer.md +4 -1
  17. package/.claude/agents/engineering/engineering-database-optimizer.md +4 -1
  18. package/.claude/agents/engineering/engineering-devops-automator.md +3 -0
  19. package/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +3 -0
  20. package/.claude/agents/engineering/engineering-feishu-integration-developer.md +4 -1
  21. package/.claude/agents/engineering/engineering-frontend-developer.md +3 -0
  22. package/.claude/agents/engineering/engineering-git-workflow-master.md +4 -1
  23. package/.claude/agents/engineering/engineering-incident-response-commander.md +4 -1
  24. package/.claude/agents/engineering/engineering-mobile-app-builder.md +3 -0
  25. package/.claude/agents/engineering/engineering-rapid-prototyper.md +3 -0
  26. package/.claude/agents/engineering/engineering-security-engineer.md +4 -1
  27. package/.claude/agents/engineering/engineering-senior-developer.md +3 -0
  28. package/.claude/agents/engineering/engineering-software-architect.md +4 -1
  29. package/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +4 -1
  30. package/.claude/agents/engineering/engineering-sre.md +3 -0
  31. package/.claude/agents/engineering/engineering-technical-writer.md +4 -1
  32. package/.claude/agents/engineering/engineering-threat-detection-engineer.md +4 -1
  33. package/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +4 -1
  34. package/.claude/agents/github/github-modes.md +4 -2
  35. package/.claude/agents/github/issue-tracker.md +4 -2
  36. package/.claude/agents/github/monoswarm-code-review.md +4 -2
  37. package/.claude/agents/github/monoswarm-issue.md +5 -0
  38. package/.claude/agents/github/monoswarm-multi-repo.md +4 -1
  39. package/.claude/agents/github/monoswarm-pr.md +5 -0
  40. package/.claude/agents/github/pr-manager.md +4 -2
  41. package/.claude/agents/github/project-board-sync.md +4 -2
  42. package/.claude/agents/github/release-manager.md +4 -2
  43. package/.claude/agents/github/repo-architect.md +4 -2
  44. package/.claude/agents/github/sync-coordinator.md +4 -2
  45. package/.claude/agents/github/workflow-automation.md +4 -2
  46. package/.claude/agents/goal/goal-planner.md +16 -2
  47. package/.claude/agents/marketing/marketing-competitive-content.md +4 -1
  48. package/.claude/agents/marketing/marketing-cro-specialist.md +4 -1
  49. package/.claude/agents/marketing/marketing-email-specialist.md +4 -1
  50. package/.claude/agents/marketing/marketing-launch-strategist.md +4 -1
  51. package/.claude/agents/marketing/marketing-pricing-strategist.md +4 -1
  52. package/.claude/agents/monoswarm/collective-intelligence-coordinator.md +3 -0
  53. package/.claude/agents/monoswarm/mesh-coordinator.md +3 -0
  54. package/.claude/agents/monoswarm/monoswarm-memory-manager.md +4 -2
  55. package/.claude/agents/monoswarm/scout-explorer.md +4 -2
  56. package/.claude/agents/monoswarm/worker-specialist.md +3 -0
  57. package/.claude/agents/optimization/benchmark-suite.md +3 -0
  58. package/.claude/agents/optimization/load-balancer.md +3 -0
  59. package/.claude/agents/optimization/performance-monitor.md +3 -0
  60. package/.claude/agents/optimization/resource-allocator.md +3 -0
  61. package/.claude/agents/optimization/topology-optimizer.md +3 -0
  62. package/.claude/agents/specialists/integration-architect.md +4 -2
  63. package/.claude/agents/specialized/agentic-identity-trust.md +4 -1
  64. package/.claude/agents/specialized/agents-orchestrator.md +3 -0
  65. package/.claude/agents/specialized/automation-governance-architect.md +3 -0
  66. package/.claude/agents/specialized/blockchain-security-auditor.md +4 -1
  67. package/.claude/agents/specialized/compliance-auditor.md +4 -1
  68. package/.claude/agents/specialized/identity-graph-operator.md +4 -1
  69. package/.claude/agents/specialized/lsp-index-engineer.md +3 -0
  70. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +5 -0
  71. package/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +3 -0
  72. package/.claude/agents/specialized/specialized-developer-advocate.md +4 -1
  73. package/.claude/agents/specialized/specialized-document-generator.md +4 -1
  74. package/.claude/agents/specialized/specialized-mcp-builder.md +3 -0
  75. package/.claude/agents/specialized/specialized-model-qa.md +4 -1
  76. package/.claude/agents/specialized/specialized-workflow-architect.md +4 -1
  77. package/.claude/agents/specialized/zk-steward.md +4 -1
  78. package/.claude/agents/templates/automation-smart-agent.md +4 -1
  79. package/.claude/agents/templates/coordinator-monoswarm-init.md +4 -1
  80. package/.claude/agents/testing/production-validator.md +3 -0
  81. package/.claude/agents/testing/tdd-london-monoswarm.md +3 -0
  82. package/.claude/agents/testing/testing-accessibility-auditor.md +4 -1
  83. package/.claude/agents/testing/testing-api-tester.md +4 -1
  84. package/.claude/agents/testing/testing-evidence-collector.md +3 -0
  85. package/.claude/agents/testing/testing-performance-benchmarker.md +4 -1
  86. package/.claude/agents/testing/testing-test-results-analyzer.md +4 -1
  87. package/.claude/agents/testing/testing-tool-evaluator.md +4 -1
  88. package/.claude/agents/testing/testing-workflow-optimizer.md +4 -1
  89. package/.claude/commands/agents/agent-types.md +7 -5
  90. package/.claude/commands/mastermind/code-review.md +5 -5
  91. package/.claude/commands/mastermind/content.md +8 -2
  92. package/.claude/commands/mastermind/createtask.md +2 -2
  93. package/.claude/commands/mastermind/do.md +18 -36
  94. package/.claude/commands/mastermind/finance.md +8 -2
  95. package/.claude/commands/mastermind/ideate.md +4 -4
  96. package/.claude/commands/mastermind/improve.md +3 -3
  97. package/.claude/commands/mastermind/marketing.md +8 -2
  98. package/.claude/commands/mastermind/master.md +63 -45
  99. package/.claude/commands/mastermind/monoswarm.md +7 -5
  100. package/.claude/commands/mastermind/ops.md +8 -2
  101. package/.claude/commands/mastermind/sales.md +8 -2
  102. package/.claude/commands/mastermind.md +7 -7
  103. package/.claude/commands/monoswarm/analysis.md +1 -1
  104. package/.claude/commands/monoswarm/development.md +1 -1
  105. package/.claude/commands/monoswarm/maintenance.md +1 -1
  106. package/.claude/commands/monoswarm/optimization.md +2 -1
  107. package/.claude/commands/monoswarm/research.md +1 -1
  108. package/.claude/commands/monoswarm/testing.md +1 -1
  109. package/.claude/commands/pair/examples.md +3 -2
  110. package/.claude/commands/pair/modes.md +3 -3
  111. package/.claude/helpers/build-skill-registry.cjs +186 -26
  112. package/.claude/helpers/handlers/agent-start-handler.cjs +3 -0
  113. package/.claude/helpers/handlers/capture-handler.cjs +22 -14
  114. package/.claude/helpers/handlers/edit-handler.cjs +15 -13
  115. package/.claude/helpers/handlers/pick-core.cjs +445 -0
  116. package/.claude/helpers/handlers/route-handler.cjs +87 -180
  117. package/.claude/helpers/handlers/session-handler.cjs +44 -62
  118. package/.claude/helpers/handlers/session-restore-handler.cjs +5 -1
  119. package/.claude/helpers/handlers/task-handler.cjs +11 -6
  120. package/.claude/helpers/hook-handler.cjs +9 -2
  121. package/.claude/helpers/jev-catalog.cjs +225 -0
  122. package/.claude/helpers/jev-picker.cjs +36 -147
  123. package/.claude/helpers/monograph-freshen.cjs +31 -113
  124. package/.claude/helpers/org-skill-index.cjs +230 -0
  125. package/.claude/helpers/pick-rank.cjs +221 -0
  126. package/.claude/helpers/pick-stats.cjs +413 -0
  127. package/.claude/helpers/router.cjs +7 -379
  128. package/.claude/helpers/utils/monograph-resolve.cjs +505 -0
  129. package/.claude/helpers/utils/monograph.cjs +8 -51
  130. package/.claude/settings.json +51 -41
  131. package/.claude/skills/hooks-automation/SKILL.md +4 -4
  132. package/.claude/skills/mastermind-access/SKILL.md +4 -3
  133. package/.claude/skills/mastermind-activity/SKILL.md +3 -2
  134. package/.claude/skills/mastermind-adapter-manager/SKILL.md +2 -1
  135. package/.claude/skills/mastermind-adapters/SKILL.md +2 -1
  136. package/.claude/skills/mastermind-agent-detail/SKILL.md +5 -4
  137. package/.claude/skills/mastermind-agent-select/SKILL.md +99 -100
  138. package/.claude/skills/mastermind-agents/SKILL.md +2 -1
  139. package/.claude/skills/mastermind-approval-detail/SKILL.md +2 -1
  140. package/.claude/skills/mastermind-backup/SKILL.md +2 -1
  141. package/.claude/skills/mastermind-bootstrap/SKILL.md +2 -2
  142. package/.claude/skills/mastermind-budgets/SKILL.md +4 -3
  143. package/.claude/skills/mastermind-createorg/SKILL.md +23 -5
  144. package/.claude/skills/mastermind-delegation/SKILL.md +11 -19
  145. package/.claude/skills/mastermind-diagnose/SKILL.md +3 -3
  146. package/.claude/skills/mastermind-env/SKILL.md +2 -1
  147. package/.claude/skills/mastermind-environments/SKILL.md +2 -1
  148. package/.claude/skills/mastermind-execute/SKILL.md +1 -1
  149. package/.claude/skills/mastermind-export/SKILL.md +2 -1
  150. package/.claude/skills/mastermind-goal-detail/SKILL.md +3 -2
  151. package/.claude/skills/mastermind-goals/SKILL.md +3 -2
  152. package/.claude/skills/mastermind-idea/SKILL.md +52 -92
  153. package/.claude/skills/mastermind-import/SKILL.md +2 -1
  154. package/.claude/skills/mastermind-inbox/SKILL.md +3 -2
  155. package/.claude/skills/mastermind-instance/SKILL.md +3 -2
  156. package/.claude/skills/mastermind-invite-landing/SKILL.md +3 -2
  157. package/.claude/skills/mastermind-invites/SKILL.md +3 -2
  158. package/.claude/skills/mastermind-issue-detail/SKILL.md +4 -3
  159. package/.claude/skills/mastermind-issues/SKILL.md +4 -3
  160. package/.claude/skills/mastermind-join-queue/SKILL.md +5 -4
  161. package/.claude/skills/mastermind-liveness/SKILL.md +5 -4
  162. package/.claude/skills/mastermind-monitor/SKILL.md +15 -15
  163. package/.claude/skills/mastermind-my-issues/SKILL.md +2 -1
  164. package/.claude/skills/mastermind-new-agent/SKILL.md +120 -137
  165. package/.claude/skills/mastermind-org-settings/SKILL.md +6 -5
  166. package/.claude/skills/mastermind-orgs/SKILL.md +1 -0
  167. package/.claude/skills/mastermind-orgstatus/SKILL.md +2 -1
  168. package/.claude/skills/mastermind-plan-to-tasks/SKILL.md +1 -1
  169. package/.claude/skills/mastermind-plugin-manager/SKILL.md +4 -3
  170. package/.claude/skills/mastermind-plugin-settings/SKILL.md +5 -4
  171. package/.claude/skills/mastermind-plugins/SKILL.md +3 -2
  172. package/.claude/skills/mastermind-profile/SKILL.md +2 -1
  173. package/.claude/skills/mastermind-protocol/SKILL.md +3 -3
  174. package/.claude/skills/mastermind-release/SKILL.md +13 -8
  175. package/.claude/skills/mastermind-research/SKILL.md +10 -8
  176. package/.claude/skills/mastermind-review/SKILL.md +16 -11
  177. package/.claude/skills/mastermind-routine-detail/SKILL.md +2 -1
  178. package/.claude/skills/mastermind-routines/SKILL.md +3 -2
  179. package/.claude/skills/mastermind-search/SKILL.md +2 -1
  180. package/.claude/skills/mastermind-secrets/SKILL.md +3 -2
  181. package/.claude/skills/mastermind-skills/SKILL.md +2 -1
  182. package/.claude/skills/mastermind-stoporg/SKILL.md +1 -0
  183. package/.claude/skills/mastermind-tasks/SKILL.md +3 -2
  184. package/.claude/skills/mastermind-threads/SKILL.md +4 -3
  185. package/.claude/skills/mastermind-tree-control/SKILL.md +5 -4
  186. package/.claude/skills/mastermind-workspace-detail/SKILL.md +4 -3
  187. package/.claude/skills/mastermind-workspaces/SKILL.md +2 -1
  188. package/.claude/skills/monoswarm/SKILL.md +7 -5
  189. package/.claude/skills/specialagent/SKILL.md +32 -51
  190. package/README.md +1 -1
  191. package/dist/src/agents/registry-builder.d.ts +23 -2
  192. package/dist/src/agents/registry-builder.d.ts.map +1 -1
  193. package/dist/src/agents/registry-builder.js +64 -11
  194. package/dist/src/agents/registry-builder.js.map +1 -1
  195. package/dist/src/agents/registry-freshness.d.ts +21 -0
  196. package/dist/src/agents/registry-freshness.d.ts.map +1 -0
  197. package/dist/src/agents/registry-freshness.js +94 -0
  198. package/dist/src/agents/registry-freshness.js.map +1 -0
  199. package/dist/src/commands/agent-lifecycle.d.ts +11 -5
  200. package/dist/src/commands/agent-lifecycle.d.ts.map +1 -1
  201. package/dist/src/commands/agent-lifecycle.js +78 -42
  202. package/dist/src/commands/agent-lifecycle.js.map +1 -1
  203. package/dist/src/commands/doctor-env-checks.d.ts +18 -3
  204. package/dist/src/commands/doctor-env-checks.d.ts.map +1 -1
  205. package/dist/src/commands/doctor-env-checks.js +35 -16
  206. package/dist/src/commands/doctor-env-checks.js.map +1 -1
  207. package/dist/src/commands/doctor-fresh-install.d.ts +9 -0
  208. package/dist/src/commands/doctor-fresh-install.d.ts.map +1 -0
  209. package/dist/src/commands/doctor-fresh-install.js +43 -0
  210. package/dist/src/commands/doctor-fresh-install.js.map +1 -0
  211. package/dist/src/commands/doctor-hook-monograph-checks.d.ts +10 -0
  212. package/dist/src/commands/doctor-hook-monograph-checks.d.ts.map +1 -0
  213. package/dist/src/commands/doctor-hook-monograph-checks.js +88 -0
  214. package/dist/src/commands/doctor-hook-monograph-checks.js.map +1 -0
  215. package/dist/src/commands/doctor-hook-settings-checks.d.ts +5 -0
  216. package/dist/src/commands/doctor-hook-settings-checks.d.ts.map +1 -0
  217. package/dist/src/commands/doctor-hook-settings-checks.js +50 -0
  218. package/dist/src/commands/doctor-hook-settings-checks.js.map +1 -0
  219. package/dist/src/commands/doctor-json.d.ts +41 -0
  220. package/dist/src/commands/doctor-json.d.ts.map +1 -0
  221. package/dist/src/commands/doctor-json.js +60 -0
  222. package/dist/src/commands/doctor-json.js.map +1 -0
  223. package/dist/src/commands/doctor-mode.d.ts +28 -0
  224. package/dist/src/commands/doctor-mode.d.ts.map +1 -0
  225. package/dist/src/commands/doctor-mode.js +109 -0
  226. package/dist/src/commands/doctor-mode.js.map +1 -0
  227. package/dist/src/commands/doctor-monoes-checks.d.ts.map +1 -1
  228. package/dist/src/commands/doctor-monoes-checks.js +3 -1
  229. package/dist/src/commands/doctor-monoes-checks.js.map +1 -1
  230. package/dist/src/commands/doctor-pick-checks.d.ts +19 -0
  231. package/dist/src/commands/doctor-pick-checks.d.ts.map +1 -0
  232. package/dist/src/commands/doctor-pick-checks.js +164 -0
  233. package/dist/src/commands/doctor-pick-checks.js.map +1 -0
  234. package/dist/src/commands/doctor-project-checks.d.ts +3 -1
  235. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  236. package/dist/src/commands/doctor-project-checks.js +67 -20
  237. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  238. package/dist/src/commands/doctor.d.ts.map +1 -1
  239. package/dist/src/commands/doctor.js +325 -333
  240. package/dist/src/commands/doctor.js.map +1 -1
  241. package/dist/src/commands/hooks-coverage-routing.js +1 -1
  242. package/dist/src/commands/hooks-coverage-routing.js.map +1 -1
  243. package/dist/src/commands/hooks-coverage-utils.js +1 -1
  244. package/dist/src/commands/hooks-coverage-utils.js.map +1 -1
  245. package/dist/src/commands/hooks-routing-commands.js +1 -1
  246. package/dist/src/commands/init-upgrade.d.ts.map +1 -1
  247. package/dist/src/commands/init-upgrade.js +4 -0
  248. package/dist/src/commands/init-upgrade.js.map +1 -1
  249. package/dist/src/commands/monograph.d.ts.map +1 -1
  250. package/dist/src/commands/monograph.js +16 -1
  251. package/dist/src/commands/monograph.js.map +1 -1
  252. package/dist/src/commands/monoswarm.d.ts.map +1 -1
  253. package/dist/src/commands/monoswarm.js +16 -10
  254. package/dist/src/commands/monoswarm.js.map +1 -1
  255. package/dist/src/commands/pick.d.ts.map +1 -1
  256. package/dist/src/commands/pick.js +66 -16
  257. package/dist/src/commands/pick.js.map +1 -1
  258. package/dist/src/commands/route.d.ts +2 -1
  259. package/dist/src/commands/route.d.ts.map +1 -1
  260. package/dist/src/commands/route.js +73 -117
  261. package/dist/src/commands/route.js.map +1 -1
  262. package/dist/src/decision/catalogs.d.ts +24 -3
  263. package/dist/src/decision/catalogs.d.ts.map +1 -1
  264. package/dist/src/decision/catalogs.js +100 -22
  265. package/dist/src/decision/catalogs.js.map +1 -1
  266. package/dist/src/decision/jev.d.ts +26 -6
  267. package/dist/src/decision/jev.d.ts.map +1 -1
  268. package/dist/src/decision/jev.js +15 -4
  269. package/dist/src/decision/jev.js.map +1 -1
  270. package/dist/src/decision/pick-eval.d.ts +67 -0
  271. package/dist/src/decision/pick-eval.d.ts.map +1 -0
  272. package/dist/src/decision/pick-eval.js +113 -0
  273. package/dist/src/decision/pick-eval.js.map +1 -0
  274. package/dist/src/decision/pick-stats.d.ts +49 -0
  275. package/dist/src/decision/pick-stats.d.ts.map +1 -0
  276. package/dist/src/decision/pick-stats.js +68 -0
  277. package/dist/src/decision/pick-stats.js.map +1 -0
  278. package/dist/src/decision/picks.d.ts +37 -6
  279. package/dist/src/decision/picks.d.ts.map +1 -1
  280. package/dist/src/decision/picks.js +67 -32
  281. package/dist/src/decision/picks.js.map +1 -1
  282. package/dist/src/index.d.ts +5 -0
  283. package/dist/src/index.d.ts.map +1 -1
  284. package/dist/src/index.js +43 -22
  285. package/dist/src/index.js.map +1 -1
  286. package/dist/src/init/agent-refresh.d.ts +8 -0
  287. package/dist/src/init/agent-refresh.d.ts.map +1 -0
  288. package/dist/src/init/agent-refresh.js +89 -0
  289. package/dist/src/init/agent-refresh.js.map +1 -0
  290. package/dist/src/init/claudemd-generator.d.ts.map +1 -1
  291. package/dist/src/init/claudemd-generator.js +27 -9
  292. package/dist/src/init/claudemd-generator.js.map +1 -1
  293. package/dist/src/init/helpers-generator.d.ts +4 -1
  294. package/dist/src/init/helpers-generator.d.ts.map +1 -1
  295. package/dist/src/init/helpers-generator.js +84 -55
  296. package/dist/src/init/helpers-generator.js.map +1 -1
  297. package/dist/src/init/hook-settings.d.ts +57 -0
  298. package/dist/src/init/hook-settings.d.ts.map +1 -0
  299. package/dist/src/init/hook-settings.js +133 -0
  300. package/dist/src/init/hook-settings.js.map +1 -0
  301. package/dist/src/init/settings-generator.d.ts.map +1 -1
  302. package/dist/src/init/settings-generator.js +44 -25
  303. package/dist/src/init/settings-generator.js.map +1 -1
  304. package/dist/src/init/shared.d.ts +9 -0
  305. package/dist/src/init/shared.d.ts.map +1 -1
  306. package/dist/src/init/shared.js +22 -0
  307. package/dist/src/init/shared.js.map +1 -1
  308. package/dist/src/init/upgrade.d.ts +4 -0
  309. package/dist/src/init/upgrade.d.ts.map +1 -1
  310. package/dist/src/init/upgrade.js +123 -129
  311. package/dist/src/init/upgrade.js.map +1 -1
  312. package/dist/src/init/write-capabilities.d.ts.map +1 -1
  313. package/dist/src/init/write-capabilities.js +10 -33
  314. package/dist/src/init/write-capabilities.js.map +1 -1
  315. package/dist/src/init/write-claude.d.ts.map +1 -1
  316. package/dist/src/init/write-claude.js +5 -2
  317. package/dist/src/init/write-claude.js.map +1 -1
  318. package/dist/src/mcp-client.d.ts.map +1 -1
  319. package/dist/src/mcp-client.js +4 -0
  320. package/dist/src/mcp-client.js.map +1 -1
  321. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
  322. package/dist/src/mcp-tools/agent-tools.js +3 -0
  323. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  324. package/dist/src/mcp-tools/guidance-tools.d.ts.map +1 -1
  325. package/dist/src/mcp-tools/guidance-tools.js +19 -10
  326. package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
  327. package/dist/src/mcp-tools/hooks-embedding.d.ts +1 -32
  328. package/dist/src/mcp-tools/hooks-embedding.d.ts.map +1 -1
  329. package/dist/src/mcp-tools/hooks-embedding.js +22 -200
  330. package/dist/src/mcp-tools/hooks-embedding.js.map +1 -1
  331. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  332. package/dist/src/mcp-tools/hooks-routing.js +77 -192
  333. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  334. package/dist/src/mcp-tools/index.d.ts +1 -0
  335. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  336. package/dist/src/mcp-tools/index.js +1 -0
  337. package/dist/src/mcp-tools/index.js.map +1 -1
  338. package/dist/src/mcp-tools/org-skill-tools.d.ts +4 -0
  339. package/dist/src/mcp-tools/org-skill-tools.d.ts.map +1 -0
  340. package/dist/src/mcp-tools/org-skill-tools.js +42 -0
  341. package/dist/src/mcp-tools/org-skill-tools.js.map +1 -0
  342. package/dist/src/mcp-tools/pick-tools.d.ts +4 -0
  343. package/dist/src/mcp-tools/pick-tools.d.ts.map +1 -0
  344. package/dist/src/mcp-tools/pick-tools.js +53 -0
  345. package/dist/src/mcp-tools/pick-tools.js.map +1 -0
  346. package/dist/src/monovector/coverage-router.d.ts +2 -1
  347. package/dist/src/monovector/coverage-router.d.ts.map +1 -1
  348. package/dist/src/monovector/coverage-router.js +6 -5
  349. package/dist/src/monovector/coverage-router.js.map +1 -1
  350. package/dist/src/monovector/coverage-tools.js +1 -1
  351. package/dist/src/monovector/coverage-tools.js.map +1 -1
  352. package/dist/src/monovector/index.d.ts +1 -1
  353. package/dist/src/monovector/index.d.ts.map +1 -1
  354. package/dist/src/monovector/index.js +11 -35
  355. package/dist/src/monovector/index.js.map +1 -1
  356. package/dist/src/monovector/route-outcomes.d.ts.map +1 -1
  357. package/dist/src/monovector/route-outcomes.js +89 -34
  358. package/dist/src/monovector/route-outcomes.js.map +1 -1
  359. package/dist/src/orgrt/bash-timeout.d.ts +14 -0
  360. package/dist/src/orgrt/bash-timeout.d.ts.map +1 -0
  361. package/dist/src/orgrt/bash-timeout.js +18 -0
  362. package/dist/src/orgrt/bash-timeout.js.map +1 -0
  363. package/dist/src/orgrt/block-recheck.d.ts +30 -0
  364. package/dist/src/orgrt/block-recheck.d.ts.map +1 -0
  365. package/dist/src/orgrt/block-recheck.js +81 -0
  366. package/dist/src/orgrt/block-recheck.js.map +1 -0
  367. package/dist/src/orgrt/completion-gate.d.ts +4 -0
  368. package/dist/src/orgrt/completion-gate.d.ts.map +1 -1
  369. package/dist/src/orgrt/completion-gate.js +22 -2
  370. package/dist/src/orgrt/completion-gate.js.map +1 -1
  371. package/dist/src/orgrt/daemon.d.ts +7 -13
  372. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  373. package/dist/src/orgrt/daemon.js +18 -27
  374. package/dist/src/orgrt/daemon.js.map +1 -1
  375. package/dist/src/orgrt/decisions.d.ts +4 -9
  376. package/dist/src/orgrt/decisions.d.ts.map +1 -1
  377. package/dist/src/orgrt/decisions.js +44 -47
  378. package/dist/src/orgrt/decisions.js.map +1 -1
  379. package/dist/src/orgrt/dispatch-hold.d.ts +34 -0
  380. package/dist/src/orgrt/dispatch-hold.d.ts.map +1 -0
  381. package/dist/src/orgrt/dispatch-hold.js +75 -0
  382. package/dist/src/orgrt/dispatch-hold.js.map +1 -0
  383. package/dist/src/orgrt/mailbox.d.ts +14 -0
  384. package/dist/src/orgrt/mailbox.d.ts.map +1 -1
  385. package/dist/src/orgrt/mailbox.js +31 -1
  386. package/dist/src/orgrt/mailbox.js.map +1 -1
  387. package/dist/src/orgrt/runner-registry.d.ts +20 -0
  388. package/dist/src/orgrt/runner-registry.d.ts.map +1 -1
  389. package/dist/src/orgrt/runner-registry.js +39 -0
  390. package/dist/src/orgrt/runner-registry.js.map +1 -1
  391. package/dist/src/orgrt/sandbox-deny-write.d.ts +11 -1
  392. package/dist/src/orgrt/sandbox-deny-write.d.ts.map +1 -1
  393. package/dist/src/orgrt/sandbox-deny-write.js +23 -2
  394. package/dist/src/orgrt/sandbox-deny-write.js.map +1 -1
  395. package/dist/src/orgrt/sandbox-fault.d.ts +21 -7
  396. package/dist/src/orgrt/sandbox-fault.d.ts.map +1 -1
  397. package/dist/src/orgrt/sandbox-fault.js +92 -35
  398. package/dist/src/orgrt/sandbox-fault.js.map +1 -1
  399. package/dist/src/orgrt/session.d.ts +20 -10
  400. package/dist/src/orgrt/session.d.ts.map +1 -1
  401. package/dist/src/orgrt/session.js +60 -72
  402. package/dist/src/orgrt/session.js.map +1 -1
  403. package/dist/src/orgrt/skill-library.d.ts +4 -0
  404. package/dist/src/orgrt/skill-library.d.ts.map +1 -1
  405. package/dist/src/orgrt/skill-library.js +12 -0
  406. package/dist/src/orgrt/skill-library.js.map +1 -1
  407. package/dist/src/orgrt/skill-tools.d.ts +11 -0
  408. package/dist/src/orgrt/skill-tools.d.ts.map +1 -0
  409. package/dist/src/orgrt/skill-tools.js +40 -0
  410. package/dist/src/orgrt/skill-tools.js.map +1 -0
  411. package/dist/src/orgrt/task-cancel.d.ts +64 -0
  412. package/dist/src/orgrt/task-cancel.d.ts.map +1 -0
  413. package/dist/src/orgrt/task-cancel.js +134 -0
  414. package/dist/src/orgrt/task-cancel.js.map +1 -0
  415. package/dist/src/orgrt/task-dag.d.ts +18 -3
  416. package/dist/src/orgrt/task-dag.d.ts.map +1 -1
  417. package/dist/src/orgrt/task-dag.js +10 -4
  418. package/dist/src/orgrt/task-dag.js.map +1 -1
  419. package/dist/src/orgrt/task-match.d.ts +121 -0
  420. package/dist/src/orgrt/task-match.d.ts.map +1 -0
  421. package/dist/src/orgrt/task-match.js +241 -0
  422. package/dist/src/orgrt/task-match.js.map +1 -0
  423. package/dist/src/orgrt/task-provenance.d.ts +26 -0
  424. package/dist/src/orgrt/task-provenance.d.ts.map +1 -0
  425. package/dist/src/orgrt/task-provenance.js +93 -0
  426. package/dist/src/orgrt/task-provenance.js.map +1 -0
  427. package/dist/src/orgrt/task-tools.d.ts +24 -0
  428. package/dist/src/orgrt/task-tools.d.ts.map +1 -0
  429. package/dist/src/orgrt/task-tools.js +75 -0
  430. package/dist/src/orgrt/task-tools.js.map +1 -0
  431. package/dist/src/orgrt/types.d.ts +11 -0
  432. package/dist/src/orgrt/types.d.ts.map +1 -1
  433. package/dist/src/orgrt/types.js +18 -0
  434. package/dist/src/orgrt/types.js.map +1 -1
  435. package/dist/src/output.d.ts +6 -0
  436. package/dist/src/output.d.ts.map +1 -1
  437. package/dist/src/output.js +13 -2
  438. package/dist/src/output.js.map +1 -1
  439. package/dist/src/protocol-capabilities.d.ts +8 -1
  440. package/dist/src/protocol-capabilities.d.ts.map +1 -1
  441. package/dist/src/protocol-capabilities.js +10 -0
  442. package/dist/src/protocol-capabilities.js.map +1 -1
  443. package/dist/src/routing/agent-pick.d.ts +44 -0
  444. package/dist/src/routing/agent-pick.d.ts.map +1 -0
  445. package/dist/src/routing/agent-pick.js +114 -0
  446. package/dist/src/routing/agent-pick.js.map +1 -0
  447. package/dist/src/routing/pick-step.d.ts +26 -0
  448. package/dist/src/routing/pick-step.d.ts.map +1 -0
  449. package/dist/src/routing/pick-step.js +40 -0
  450. package/dist/src/routing/pick-step.js.map +1 -0
  451. package/dist/src/routing/route-layer-factory.d.ts.map +1 -1
  452. package/dist/src/routing/route-layer-factory.js +19 -17
  453. package/dist/src/routing/route-layer-factory.js.map +1 -1
  454. package/dist/src/utils/resource-governor.d.ts.map +1 -1
  455. package/dist/src/utils/resource-governor.js +55 -2
  456. package/dist/src/utils/resource-governor.js.map +1 -1
  457. package/dist/tsconfig.tsbuildinfo +1 -1
  458. package/org-skills/SOURCES.md +6 -6
  459. package/org-skills/TAGS.md +146 -0
  460. package/org-skills/ab-testing/SKILL.md +2 -2
  461. package/org-skills/accessibility-compliance/SKILL.md +2 -2
  462. package/org-skills/account-strategist/SKILL.md +2 -2
  463. package/org-skills/accounts-payable/SKILL.md +2 -2
  464. package/org-skills/ad-creative/SKILL.md +2 -2
  465. package/org-skills/adaptive-coordinator/SKILL.md +2 -2
  466. package/org-skills/adaptive-coordinator2/SKILL.md +2 -2
  467. package/org-skills/advanced-evaluation/SKILL.md +2 -2
  468. package/org-skills/adversarial-reviewer/SKILL.md +2 -2
  469. package/org-skills/agent-evaluation/SKILL.md +2 -2
  470. package/org-skills/agent-memory-systems/SKILL.md +2 -2
  471. package/org-skills/agent-tool-design/SKILL.md +2 -2
  472. package/org-skills/agile-product-owner/SKILL.md +2 -2
  473. package/org-skills/ai-citation/SKILL.md +2 -2
  474. package/org-skills/ai-engineer/SKILL.md +2 -2
  475. package/org-skills/ai-seo/SKILL.md +2 -2
  476. package/org-skills/analytics-reporter/SKILL.md +2 -2
  477. package/org-skills/analytics-tracking/SKILL.md +2 -2
  478. package/org-skills/android-clean-architecture/SKILL.md +2 -2
  479. package/org-skills/angular-architect/SKILL.md +2 -2
  480. package/org-skills/api-design/SKILL.md +2 -2
  481. package/org-skills/api-designer/SKILL.md +2 -2
  482. package/org-skills/api-tester/SKILL.md +2 -2
  483. package/org-skills/app-store-optimization/SKILL.md +2 -2
  484. package/org-skills/architecture-decision-records/SKILL.md +2 -2
  485. package/org-skills/architecture-designer/SKILL.md +2 -2
  486. package/org-skills/architecture-patterns/SKILL.md +2 -2
  487. package/org-skills/article-writing/SKILL.md +2 -2
  488. package/org-skills/auth-implementation-patterns/SKILL.md +2 -2
  489. package/org-skills/automation-governance/SKILL.md +2 -2
  490. package/org-skills/avoid-ai-writing/SKILL.md +2 -2
  491. package/org-skills/backend-dev/SKILL.md +2 -2
  492. package/org-skills/backend-patterns/SKILL.md +2 -2
  493. package/org-skills/bash-defensive-patterns/SKILL.md +2 -2
  494. package/org-skills/before-you-build/SKILL.md +2 -2
  495. package/org-skills/benchmark-methodology/SKILL.md +2 -2
  496. package/org-skills/benchmarker/SKILL.md +2 -2
  497. package/org-skills/blockchain-auditor/SKILL.md +2 -2
  498. package/org-skills/board-deck-builder/SKILL.md +2 -2
  499. package/org-skills/business-investment-advisor/SKILL.md +2 -2
  500. package/org-skills/byzantine-coord/SKILL.md +2 -2
  501. package/org-skills/canvas-design/SKILL.md +2 -2
  502. package/org-skills/carrier-relationship-management/SKILL.md +2 -2
  503. package/org-skills/case-analyst/SKILL.md +2 -2
  504. package/org-skills/ceo-advisor/SKILL.md +2 -2
  505. package/org-skills/cfo-advisor/SKILL.md +2 -2
  506. package/org-skills/change-management/SKILL.md +2 -2
  507. package/org-skills/changelog-automation/SKILL.md +2 -2
  508. package/org-skills/chro-advisor/SKILL.md +2 -2
  509. package/org-skills/churn-prevention/SKILL.md +2 -2
  510. package/org-skills/cicd-engineer/SKILL.md +2 -2
  511. package/org-skills/ciso-advisor/SKILL.md +2 -2
  512. package/org-skills/click-path-audit/SKILL.md +2 -2
  513. package/org-skills/cloud-architect/SKILL.md +2 -2
  514. package/org-skills/cloud-architecture/SKILL.md +2 -2
  515. package/org-skills/cmo-advisor/SKILL.md +2 -2
  516. package/org-skills/co-marketing/SKILL.md +2 -2
  517. package/org-skills/code-documenter/SKILL.md +2 -2
  518. package/org-skills/code-review-swarm/SKILL.md +2 -2
  519. package/org-skills/code-reviewer/SKILL.md +2 -2
  520. package/org-skills/coder/SKILL.md +2 -2
  521. package/org-skills/coding-standards/SKILL.md +2 -2
  522. package/org-skills/cold-email/SKILL.md +2 -2
  523. package/org-skills/collective-coord/SKILL.md +2 -2
  524. package/org-skills/community-marketing/SKILL.md +2 -2
  525. package/org-skills/competitive-landscape/SKILL.md +2 -2
  526. package/org-skills/competitive-platform-analysis/SKILL.md +2 -2
  527. package/org-skills/competitive-report-structure/SKILL.md +2 -2
  528. package/org-skills/competitive-teardown/SKILL.md +2 -2
  529. package/org-skills/competitor-comparison-pages/SKILL.md +2 -2
  530. package/org-skills/compliance-auditor/SKILL.md +2 -2
  531. package/org-skills/consensus-coordinator/SKILL.md +2 -2
  532. package/org-skills/content-creator/SKILL.md +2 -2
  533. package/org-skills/content-engine/SKILL.md +2 -2
  534. package/org-skills/content-strategy/SKILL.md +2 -2
  535. package/org-skills/context-compression/SKILL.md +2 -2
  536. package/org-skills/context-degradation/SKILL.md +2 -2
  537. package/org-skills/context-fundamentals/SKILL.md +2 -2
  538. package/org-skills/context-optimization/SKILL.md +2 -2
  539. package/org-skills/contract-and-proposal-writer/SKILL.md +1 -1
  540. package/org-skills/contract-first/SKILL.md +2 -2
  541. package/org-skills/coo-advisor/SKILL.md +2 -2
  542. package/org-skills/copy-editing/SKILL.md +2 -2
  543. package/org-skills/copywriting/SKILL.md +2 -2
  544. package/org-skills/cost-aware-llm-pipeline/SKILL.md +2 -2
  545. package/org-skills/cost-optimization/SKILL.md +2 -2
  546. package/org-skills/cpp-coding-standards/SKILL.md +2 -2
  547. package/org-skills/cpp-pro/SKILL.md +2 -2
  548. package/org-skills/cro-advisor/SKILL.md +2 -2
  549. package/org-skills/cro-specialist/SKILL.md +2 -2
  550. package/org-skills/csharp-developer/SKILL.md +2 -2
  551. package/org-skills/cto-advisor/SKILL.md +2 -2
  552. package/org-skills/culture-architect/SKILL.md +2 -2
  553. package/org-skills/customer-research/SKILL.md +2 -2
  554. package/org-skills/customs-trade-compliance/SKILL.md +2 -2
  555. package/org-skills/dart-flutter-patterns/SKILL.md +2 -2
  556. package/org-skills/dashboard-builder/SKILL.md +2 -2
  557. package/org-skills/data-consolidator/SKILL.md +2 -2
  558. package/org-skills/data-engineer/SKILL.md +2 -2
  559. package/org-skills/data-quality-frameworks/SKILL.md +2 -2
  560. package/org-skills/data-storytelling/SKILL.md +2 -2
  561. package/org-skills/database-migrations/SKILL.md +2 -2
  562. package/org-skills/database-optimizer/SKILL.md +2 -2
  563. package/org-skills/dbt-transformation-patterns/SKILL.md +2 -2
  564. package/org-skills/deal-strategist/SKILL.md +2 -2
  565. package/org-skills/debugging-wizard/SKILL.md +2 -2
  566. package/org-skills/deep-research/SKILL.md +2 -2
  567. package/org-skills/defender/SKILL.md +2 -2
  568. package/org-skills/dependency-upgrade/SKILL.md +2 -2
  569. package/org-skills/deployment-patterns/SKILL.md +2 -2
  570. package/org-skills/deployment-pipeline-design/SKILL.md +2 -2
  571. package/org-skills/design-system/SKILL.md +2 -2
  572. package/org-skills/design-system-patterns/SKILL.md +2 -2
  573. package/org-skills/devops-automator/SKILL.md +2 -2
  574. package/org-skills/devops-engineer/SKILL.md +2 -2
  575. package/org-skills/discovery-coach/SKILL.md +2 -2
  576. package/org-skills/django-expert/SKILL.md +2 -2
  577. package/org-skills/django-patterns/SKILL.md +2 -2
  578. package/org-skills/docker-patterns/SKILL.md +2 -2
  579. package/org-skills/dotnet-patterns/SKILL.md +2 -2
  580. package/org-skills/e2e-testing/SKILL.md +2 -2
  581. package/org-skills/email-marketing/SKILL.md +2 -2
  582. package/org-skills/email-sequences/SKILL.md +2 -2
  583. package/org-skills/embedded-firmware/SKILL.md +2 -2
  584. package/org-skills/embedded-systems/SKILL.md +2 -2
  585. package/org-skills/employment-contract-templates/SKILL.md +2 -2
  586. package/org-skills/energy-procurement/SKILL.md +2 -2
  587. package/org-skills/error-handling/SKILL.md +2 -2
  588. package/org-skills/event-marketing/SKILL.md +2 -2
  589. package/org-skills/evidence-collector/SKILL.md +2 -2
  590. package/org-skills/experiment-designer/SKILL.md +2 -2
  591. package/org-skills/experiment-tracker/SKILL.md +2 -2
  592. package/org-skills/experimental-design/SKILL.md +2 -2
  593. package/org-skills/fastapi-expert/SKILL.md +2 -2
  594. package/org-skills/fastapi-patterns/SKILL.md +2 -2
  595. package/org-skills/feedback-synthesizer/SKILL.md +2 -2
  596. package/org-skills/finance-tracker/SKILL.md +2 -2
  597. package/org-skills/finishing-a-development-branch/SKILL.md +2 -2
  598. package/org-skills/flutter-expert/SKILL.md +2 -2
  599. package/org-skills/focused-fix/SKILL.md +2 -2
  600. package/org-skills/free-tool-strategy/SKILL.md +2 -2
  601. package/org-skills/frontend-design/SKILL.md +2 -2
  602. package/org-skills/frontend-design-direction/SKILL.md +2 -2
  603. package/org-skills/frontend-developer/SKILL.md +2 -2
  604. package/org-skills/frontend-patterns/SKILL.md +2 -2
  605. package/org-skills/game-audio-engineer/SKILL.md +2 -2
  606. package/org-skills/game-designer/SKILL.md +2 -2
  607. package/org-skills/gdpr-data-handling/SKILL.md +2 -2
  608. package/org-skills/general-counsel-advisor/SKILL.md +2 -2
  609. package/org-skills/git-advanced-workflows/SKILL.md +2 -2
  610. package/org-skills/git-workflow/SKILL.md +2 -2
  611. package/org-skills/golang-patterns/SKILL.md +2 -2
  612. package/org-skills/golang-pro/SKILL.md +2 -2
  613. package/org-skills/harness-engineering/SKILL.md +2 -2
  614. package/org-skills/healthcare-phi-compliance/SKILL.md +2 -2
  615. package/org-skills/hexagonal-architecture/SKILL.md +2 -2
  616. package/org-skills/hierarchical-coord/SKILL.md +2 -2
  617. package/org-skills/huggingface-transformers/SKILL.md +2 -2
  618. package/org-skills/hypothesis-generation/SKILL.md +2 -2
  619. package/org-skills/incident-command-playbook/SKILL.md +2 -2
  620. package/org-skills/incident-commander/SKILL.md +2 -2
  621. package/org-skills/incident-runbook-templates/SKILL.md +2 -2
  622. package/org-skills/influencer-marketing/SKILL.md +2 -2
  623. package/org-skills/infrastructure/SKILL.md +2 -2
  624. package/org-skills/input-validator/SKILL.md +2 -2
  625. package/org-skills/intent-driven-development/SKILL.md +2 -2
  626. package/org-skills/inventory-demand-planning/SKILL.md +2 -2
  627. package/org-skills/investor-materials/SKILL.md +2 -2
  628. package/org-skills/ios-developer/SKILL.md +2 -2
  629. package/org-skills/isms-audit-expert/SKILL.md +2 -2
  630. package/org-skills/issue-tracker/SKILL.md +2 -2
  631. package/org-skills/java-architect/SKILL.md +2 -2
  632. package/org-skills/java-coding-standards/SKILL.md +2 -2
  633. package/org-skills/judge/SKILL.md +2 -2
  634. package/org-skills/kotlin-patterns/SKILL.md +2 -2
  635. package/org-skills/kotlin-specialist/SKILL.md +2 -2
  636. package/org-skills/kpi-dashboard-design/SKILL.md +2 -2
  637. package/org-skills/kubernetes-patterns/SKILL.md +2 -2
  638. package/org-skills/kubernetes-specialist/SKILL.md +2 -2
  639. package/org-skills/laravel-patterns/SKILL.md +2 -2
  640. package/org-skills/launch-strategist/SKILL.md +2 -2
  641. package/org-skills/launch-strategy/SKILL.md +2 -2
  642. package/org-skills/lead-magnets/SKILL.md +2 -2
  643. package/org-skills/legacy-modernizer/SKILL.md +2 -2
  644. package/org-skills/legal-compliance/SKILL.md +2 -2
  645. package/org-skills/level-designer/SKILL.md +2 -2
  646. package/org-skills/llm-cost-optimizer/SKILL.md +2 -2
  647. package/org-skills/llm-evaluation/SKILL.md +2 -2
  648. package/org-skills/llm-project-development/SKILL.md +2 -2
  649. package/org-skills/load-balancer/SKILL.md +2 -2
  650. package/org-skills/logistics-exception-management/SKILL.md +2 -2
  651. package/org-skills/long-horizon-prompting/SKILL.md +2 -2
  652. package/org-skills/make-interfaces-feel-better/SKILL.md +2 -2
  653. package/org-skills/markdown-mermaid-writing/SKILL.md +2 -2
  654. package/org-skills/market-research/SKILL.md +2 -2
  655. package/org-skills/market-research-reports/SKILL.md +2 -2
  656. package/org-skills/market-sizing-analysis/SKILL.md +2 -2
  657. package/org-skills/marketing-attribution/SKILL.md +2 -2
  658. package/org-skills/marketing-campaign/SKILL.md +2 -2
  659. package/org-skills/marketing-council/SKILL.md +2 -2
  660. package/org-skills/marketing-demand-acquisition/SKILL.md +2 -2
  661. package/org-skills/marketing-loops/SKILL.md +2 -2
  662. package/org-skills/marketing-plan/SKILL.md +2 -2
  663. package/org-skills/marketing-psychology/SKILL.md +2 -2
  664. package/org-skills/marketing-strategy-pmm/SKILL.md +2 -2
  665. package/org-skills/markitdown-document-conversion/SKILL.md +2 -2
  666. package/org-skills/mcp-builder/SKILL.md +2 -2
  667. package/org-skills/mcp-server-builder/SKILL.md +2 -2
  668. package/org-skills/mcp-server-patterns/SKILL.md +2 -2
  669. package/org-skills/memory-coordinator/SKILL.md +2 -2
  670. package/org-skills/mesh-coordinator/SKILL.md +2 -2
  671. package/org-skills/ml-developer/SKILL.md +2 -2
  672. package/org-skills/ml-pipeline/SKILL.md +2 -2
  673. package/org-skills/mle-workflow/SKILL.md +2 -2
  674. package/org-skills/mobile-app-builder/SKILL.md +2 -2
  675. package/org-skills/mobile-dev/SKILL.md +2 -2
  676. package/org-skills/model-qa/SKILL.md +2 -2
  677. package/org-skills/monitoring-expert/SKILL.md +2 -2
  678. package/org-skills/monodesign-ui-quality/SKILL.md +2 -2
  679. package/org-skills/monograph-code-navigation/SKILL.md +2 -2
  680. package/org-skills/monolean-minimal-change/SKILL.md +2 -2
  681. package/org-skills/multi-agent-patterns/SKILL.md +2 -2
  682. package/org-skills/mysql-patterns/SKILL.md +2 -2
  683. package/org-skills/narrative-designer/SKILL.md +2 -2
  684. package/org-skills/nextjs-developer/SKILL.md +2 -2
  685. package/org-skills/offer-design/SKILL.md +2 -2
  686. package/org-skills/onboarding-cro/SKILL.md +2 -2
  687. package/org-skills/outbound-strategist/SKILL.md +2 -2
  688. package/org-skills/page-cro/SKILL.md +2 -2
  689. package/org-skills/paid-ads/SKILL.md +2 -2
  690. package/org-skills/pandas-pro/SKILL.md +2 -2
  691. package/org-skills/path-validator/SKILL.md +2 -2
  692. package/org-skills/payment-agent/SKILL.md +2 -2
  693. package/org-skills/pci-compliance/SKILL.md +2 -2
  694. package/org-skills/perf-analyzer/SKILL.md +2 -2
  695. package/org-skills/php-pro/SKILL.md +2 -2
  696. package/org-skills/pipeline-analyst/SKILL.md +2 -2
  697. package/org-skills/planner/SKILL.md +2 -2
  698. package/org-skills/playwright-expert/SKILL.md +2 -2
  699. package/org-skills/postgres-patterns/SKILL.md +2 -2
  700. package/org-skills/postgresql-table-design/SKILL.md +2 -2
  701. package/org-skills/postmortem-writing/SKILL.md +2 -2
  702. package/org-skills/pr-manager/SKILL.md +2 -2
  703. package/org-skills/pricing-strategist/SKILL.md +2 -2
  704. package/org-skills/pricing-strategy/SKILL.md +2 -2
  705. package/org-skills/prisma-patterns/SKILL.md +2 -2
  706. package/org-skills/product-capability/SKILL.md +2 -2
  707. package/org-skills/product-discovery/SKILL.md +2 -2
  708. package/org-skills/product-lens/SKILL.md +2 -2
  709. package/org-skills/product-manager/SKILL.md +2 -2
  710. package/org-skills/product-marketing-context/SKILL.md +2 -2
  711. package/org-skills/production-audit/SKILL.md +2 -2
  712. package/org-skills/production-scheduling/SKILL.md +2 -2
  713. package/org-skills/production-validator/SKILL.md +2 -2
  714. package/org-skills/programmatic-seo/SKILL.md +2 -2
  715. package/org-skills/project-shepherd/SKILL.md +2 -2
  716. package/org-skills/prompt-engineer/SKILL.md +2 -2
  717. package/org-skills/proposal-strategist/SKILL.md +2 -2
  718. package/org-skills/prosecutor/SKILL.md +2 -2
  719. package/org-skills/public-relations/SKILL.md +2 -2
  720. package/org-skills/pymc-bayesian-modeling/SKILL.md +2 -2
  721. package/org-skills/python-patterns/SKILL.md +2 -2
  722. package/org-skills/python-pro/SKILL.md +2 -2
  723. package/org-skills/python-testing/SKILL.md +2 -2
  724. package/org-skills/quality-nonconformance/SKILL.md +2 -2
  725. package/org-skills/queen-coordinator/SKILL.md +2 -2
  726. package/org-skills/quorum-manager/SKILL.md +2 -2
  727. package/org-skills/raft-manager/SKILL.md +2 -2
  728. package/org-skills/rag-architect/SKILL.md +2 -2
  729. package/org-skills/rails-patterns/SKILL.md +2 -2
  730. package/org-skills/react-expert/SKILL.md +2 -2
  731. package/org-skills/react-native-expert/SKILL.md +2 -2
  732. package/org-skills/react-native-patterns/SKILL.md +2 -2
  733. package/org-skills/react-patterns/SKILL.md +2 -2
  734. package/org-skills/react-performance/SKILL.md +2 -2
  735. package/org-skills/react-testing/SKILL.md +2 -2
  736. package/org-skills/reality-checker/SKILL.md +2 -2
  737. package/org-skills/receiving-code-review/SKILL.md +2 -2
  738. package/org-skills/recruitment/SKILL.md +2 -2
  739. package/org-skills/redis-patterns/SKILL.md +2 -2
  740. package/org-skills/referral-programs/SKILL.md +2 -2
  741. package/org-skills/release-manager/SKILL.md +2 -2
  742. package/org-skills/repo-architect/SKILL.md +2 -2
  743. package/org-skills/researcher/SKILL.md +2 -2
  744. package/org-skills/resource-allocator/SKILL.md +2 -2
  745. package/org-skills/responsive-design/SKILL.md +2 -2
  746. package/org-skills/returns-reverse-logistics/SKILL.md +2 -2
  747. package/org-skills/reviewer/SKILL.md +2 -2
  748. package/org-skills/revops/SKILL.md +2 -2
  749. package/org-skills/roadmap-communicator/SKILL.md +2 -2
  750. package/org-skills/rust-engineer/SKILL.md +2 -2
  751. package/org-skills/rust-patterns/SKILL.md +2 -2
  752. package/org-skills/safe-executor/SKILL.md +2 -2
  753. package/org-skills/sales-coach/SKILL.md +2 -2
  754. package/org-skills/sales-enablement/SKILL.md +2 -2
  755. package/org-skills/sales-engineer/SKILL.md +2 -2
  756. package/org-skills/sales-prospecting/SKILL.md +2 -2
  757. package/org-skills/schema-markup/SKILL.md +2 -2
  758. package/org-skills/scientific-brainstorming/SKILL.md +2 -2
  759. package/org-skills/scientific-critical-thinking/SKILL.md +2 -2
  760. package/org-skills/scientific-thinking-literature-review/SKILL.md +2 -2
  761. package/org-skills/scientific-thinking-scholar-evaluation/SKILL.md +2 -2
  762. package/org-skills/scientific-visualization/SKILL.md +2 -2
  763. package/org-skills/scientific-writing/SKILL.md +2 -2
  764. package/org-skills/scout-explorer/SKILL.md +2 -2
  765. package/org-skills/secrets-vault-manager/SKILL.md +2 -2
  766. package/org-skills/secure-code-guardian/SKILL.md +2 -2
  767. package/org-skills/security-architect/SKILL.md +2 -2
  768. package/org-skills/security-auditor/SKILL.md +2 -2
  769. package/org-skills/security-review/SKILL.md +2 -2
  770. package/org-skills/security-reviewer/SKILL.md +2 -2
  771. package/org-skills/senior-data-scientist/SKILL.md +2 -2
  772. package/org-skills/senior-developer/SKILL.md +2 -2
  773. package/org-skills/senior-pm/SKILL.md +2 -2
  774. package/org-skills/senior-pm-playbook/SKILL.md +2 -2
  775. package/org-skills/seo/SKILL.md +2 -2
  776. package/org-skills/seo-audit/SKILL.md +2 -2
  777. package/org-skills/seo-specialist/SKILL.md +2 -2
  778. package/org-skills/shap-model-explainability/SKILL.md +2 -2
  779. package/org-skills/signup-flow-cro/SKILL.md +2 -2
  780. package/org-skills/site-architecture/SKILL.md +2 -2
  781. package/org-skills/sms-marketing/SKILL.md +2 -2
  782. package/org-skills/soc2-compliance/SKILL.md +2 -2
  783. package/org-skills/social-content/SKILL.md +2 -2
  784. package/org-skills/social-media/SKILL.md +2 -2
  785. package/org-skills/social-media-manager/SKILL.md +2 -2
  786. package/org-skills/solidity-engineer/SKILL.md +2 -2
  787. package/org-skills/spark-engineer/SKILL.md +2 -2
  788. package/org-skills/spec-driven-workflow/SKILL.md +2 -2
  789. package/org-skills/springboot-patterns/SKILL.md +2 -2
  790. package/org-skills/sprint-prioritizer/SKILL.md +2 -2
  791. package/org-skills/sql-pro/SKILL.md +2 -2
  792. package/org-skills/sre/SKILL.md +2 -2
  793. package/org-skills/sre-engineer/SKILL.md +2 -2
  794. package/org-skills/startup-financial-modeling/SKILL.md +2 -2
  795. package/org-skills/startup-metrics-framework/SKILL.md +2 -2
  796. package/org-skills/statistical-analysis/SKILL.md +2 -2
  797. package/org-skills/statistical-power/SKILL.md +2 -2
  798. package/org-skills/stride-analysis-patterns/SKILL.md +2 -2
  799. package/org-skills/stripe-integration/SKILL.md +2 -2
  800. package/org-skills/studio-operations/SKILL.md +2 -2
  801. package/org-skills/studio-producer/SKILL.md +2 -2
  802. package/org-skills/support-responder/SKILL.md +2 -2
  803. package/org-skills/swift-expert/SKILL.md +2 -2
  804. package/org-skills/swiftui-patterns/SKILL.md +2 -2
  805. package/org-skills/system-architect/SKILL.md +2 -2
  806. package/org-skills/systematic-debugging/SKILL.md +2 -2
  807. package/org-skills/task-orchestrator/SKILL.md +2 -2
  808. package/org-skills/team-communications/SKILL.md +2 -2
  809. package/org-skills/team-composition-analysis/SKILL.md +2 -2
  810. package/org-skills/technical-artist/SKILL.md +2 -2
  811. package/org-skills/technical-writer/SKILL.md +2 -2
  812. package/org-skills/terraform-engineer/SKILL.md +2 -2
  813. package/org-skills/test-driven-development/SKILL.md +2 -2
  814. package/org-skills/test-master/SKILL.md +2 -2
  815. package/org-skills/tester/SKILL.md +2 -2
  816. package/org-skills/the-fool/SKILL.md +2 -2
  817. package/org-skills/theme-factory/SKILL.md +2 -2
  818. package/org-skills/threat-detection/SKILL.md +2 -2
  819. package/org-skills/threat-mitigation-mapping/SKILL.md +2 -2
  820. package/org-skills/trend-researcher/SKILL.md +2 -2
  821. package/org-skills/trial-director/SKILL.md +2 -2
  822. package/org-skills/typescript-pro/SKILL.md +2 -2
  823. package/org-skills/unity-architect/SKILL.md +2 -2
  824. package/org-skills/using-git-worktrees/SKILL.md +2 -2
  825. package/org-skills/ux-researcher-designer/SKILL.md +2 -2
  826. package/org-skills/verification-before-completion/SKILL.md +2 -2
  827. package/org-skills/visionos-engineer/SKILL.md +2 -2
  828. package/org-skills/visual-design-foundations/SKILL.md +2 -2
  829. package/org-skills/vue-expert/SKILL.md +2 -2
  830. package/org-skills/vue-patterns/SKILL.md +2 -2
  831. package/org-skills/worker-specialist/SKILL.md +2 -2
  832. package/org-skills/workflow-architect/SKILL.md +2 -2
  833. package/org-skills/workflow-automation/SKILL.md +2 -2
  834. package/org-skills/writing-plans/SKILL.md +2 -2
  835. package/org-skills/zk-steward/SKILL.md +2 -2
  836. package/package.json +7 -7
  837. package/.claude/helpers/skill-registry.json +0 -5997
  838. package/.claude/skills/monodesign/SKILL.md +0 -257
  839. package/.claude/skills/monodesign/adapt.md +0 -53
  840. package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +0 -100
  841. package/.claude/skills/monodesign/agents/monodesign-manual-edit-applier.md +0 -103
  842. package/.claude/skills/monodesign/animate.md +0 -65
  843. package/.claude/skills/monodesign/audit.md +0 -89
  844. package/.claude/skills/monodesign/bolder.md +0 -50
  845. package/.claude/skills/monodesign/clarify.md +0 -64
  846. package/.claude/skills/monodesign/colorize.md +0 -68
  847. package/.claude/skills/monodesign/craft.md +0 -51
  848. package/.claude/skills/monodesign/critique.md +0 -66
  849. package/.claude/skills/monodesign/delight.md +0 -47
  850. package/.claude/skills/monodesign/distill.md +0 -56
  851. package/.claude/skills/monodesign/document.md +0 -83
  852. package/.claude/skills/monodesign/extract.md +0 -74
  853. package/.claude/skills/monodesign/harden.md +0 -65
  854. package/.claude/skills/monodesign/init.md +0 -30
  855. package/.claude/skills/monodesign/layout.md +0 -36
  856. package/.claude/skills/monodesign/live.md +0 -34
  857. package/.claude/skills/monodesign/onboard.md +0 -50
  858. package/.claude/skills/monodesign/optimize.md +0 -64
  859. package/.claude/skills/monodesign/overdrive.md +0 -56
  860. package/.claude/skills/monodesign/polish.md +0 -68
  861. package/.claude/skills/monodesign/quieter.md +0 -57
  862. package/.claude/skills/monodesign/reference/adapt.md +0 -312
  863. package/.claude/skills/monodesign/reference/adapt.native.md +0 -58
  864. package/.claude/skills/monodesign/reference/android.md +0 -40
  865. package/.claude/skills/monodesign/reference/animate.md +0 -203
  866. package/.claude/skills/monodesign/reference/antipatterns-catalog.md +0 -410
  867. package/.claude/skills/monodesign/reference/audit.md +0 -135
  868. package/.claude/skills/monodesign/reference/audit.native.md +0 -139
  869. package/.claude/skills/monodesign/reference/bolder.md +0 -120
  870. package/.claude/skills/monodesign/reference/brand-workflow.md +0 -180
  871. package/.claude/skills/monodesign/reference/brand.md +0 -108
  872. package/.claude/skills/monodesign/reference/clarify.md +0 -288
  873. package/.claude/skills/monodesign/reference/codex.md +0 -105
  874. package/.claude/skills/monodesign/reference/cognitive-load.md +0 -106
  875. package/.claude/skills/monodesign/reference/color-and-contrast.md +0 -105
  876. package/.claude/skills/monodesign/reference/colorize.md +0 -257
  877. package/.claude/skills/monodesign/reference/component-specs.md +0 -260
  878. package/.claude/skills/monodesign/reference/component-states.md +0 -274
  879. package/.claude/skills/monodesign/reference/component-system.md +0 -358
  880. package/.claude/skills/monodesign/reference/copy-formulas.md +0 -160
  881. package/.claude/skills/monodesign/reference/craft.md +0 -123
  882. package/.claude/skills/monodesign/reference/critique.md +0 -780
  883. package/.claude/skills/monodesign/reference/delight.md +0 -302
  884. package/.claude/skills/monodesign/reference/design-principles.md +0 -246
  885. package/.claude/skills/monodesign/reference/distill.md +0 -111
  886. package/.claude/skills/monodesign/reference/document.md +0 -429
  887. package/.claude/skills/monodesign/reference/extract.md +0 -69
  888. package/.claude/skills/monodesign/reference/harden.md +0 -347
  889. package/.claude/skills/monodesign/reference/heuristics-scoring.md +0 -234
  890. package/.claude/skills/monodesign/reference/hooks.md +0 -92
  891. package/.claude/skills/monodesign/reference/image-prompts.md +0 -130
  892. package/.claude/skills/monodesign/reference/init.md +0 -221
  893. package/.claude/skills/monodesign/reference/interaction-design.md +0 -189
  894. package/.claude/skills/monodesign/reference/ios.md +0 -45
  895. package/.claude/skills/monodesign/reference/layout.md +0 -185
  896. package/.claude/skills/monodesign/reference/live.md +0 -710
  897. package/.claude/skills/monodesign/reference/motion-design.md +0 -109
  898. package/.claude/skills/monodesign/reference/onboard.md +0 -234
  899. package/.claude/skills/monodesign/reference/optimize.md +0 -258
  900. package/.claude/skills/monodesign/reference/overdrive.md +0 -130
  901. package/.claude/skills/monodesign/reference/personas.md +0 -179
  902. package/.claude/skills/monodesign/reference/polish.md +0 -241
  903. package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +0 -108
  904. package/.claude/skills/monodesign/reference/product.md +0 -60
  905. package/.claude/skills/monodesign/reference/quieter.md +0 -99
  906. package/.claude/skills/monodesign/reference/responsive-design.md +0 -114
  907. package/.claude/skills/monodesign/reference/shape.md +0 -165
  908. package/.claude/skills/monodesign/reference/spatial-design.md +0 -100
  909. package/.claude/skills/monodesign/reference/teach.md +0 -10
  910. package/.claude/skills/monodesign/reference/token-architecture.md +0 -222
  911. package/.claude/skills/monodesign/reference/typeset.md +0 -301
  912. package/.claude/skills/monodesign/reference/typography.md +0 -159
  913. package/.claude/skills/monodesign/reference/ux-research.md +0 -143
  914. package/.claude/skills/monodesign/reference/ux-rules.md +0 -211
  915. package/.claude/skills/monodesign/reference/ux-writing.md +0 -107
  916. package/.claude/skills/monodesign/scripts/command-metadata.json +0 -94
  917. package/.claude/skills/monodesign/scripts/context-signals.mjs +0 -260
  918. package/.claude/skills/monodesign/scripts/context.mjs +0 -1065
  919. package/.claude/skills/monodesign/scripts/critique-storage.mjs +0 -416
  920. package/.claude/skills/monodesign/scripts/detect-csp.mjs +0 -193
  921. package/.claude/skills/monodesign/scripts/detect.mjs +0 -33
  922. package/.claude/skills/monodesign/scripts/detector/browser/injected/index.mjs +0 -1960
  923. package/.claude/skills/monodesign/scripts/detector/cli/main.mjs +0 -321
  924. package/.claude/skills/monodesign/scripts/detector/design-system.mjs +0 -814
  925. package/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +0 -5628
  926. package/.claude/skills/monodesign/scripts/detector/detect-antipatterns.mjs +0 -50
  927. package/.claude/skills/monodesign/scripts/detector/engines/browser/detect-url.mjs +0 -259
  928. package/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +0 -339
  929. package/.claude/skills/monodesign/scripts/detector/engines/regex/detect-text.mjs +0 -636
  930. package/.claude/skills/monodesign/scripts/detector/engines/static-html/css-cascade.mjs +0 -1016
  931. package/.claude/skills/monodesign/scripts/detector/engines/static-html/detect-html.mjs +0 -253
  932. package/.claude/skills/monodesign/scripts/detector/engines/visual/screenshot-contrast.mjs +0 -198
  933. package/.claude/skills/monodesign/scripts/detector/findings.mjs +0 -12
  934. package/.claude/skills/monodesign/scripts/detector/fix/css-regions.mjs +0 -181
  935. package/.claude/skills/monodesign/scripts/detector/fix/fixers.mjs +0 -373
  936. package/.claude/skills/monodesign/scripts/detector/fix/index.mjs +0 -426
  937. package/.claude/skills/monodesign/scripts/detector/node/file-system.mjs +0 -198
  938. package/.claude/skills/monodesign/scripts/detector/profile/profiler.mjs +0 -166
  939. package/.claude/skills/monodesign/scripts/detector/registry/antipatterns.mjs +0 -563
  940. package/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +0 -3024
  941. package/.claude/skills/monodesign/scripts/detector/shared/color.mjs +0 -124
  942. package/.claude/skills/monodesign/scripts/detector/shared/constants.mjs +0 -101
  943. package/.claude/skills/monodesign/scripts/detector/shared/fonts.mjs +0 -30
  944. package/.claude/skills/monodesign/scripts/detector/shared/inline-ignores.mjs +0 -148
  945. package/.claude/skills/monodesign/scripts/detector/shared/page.mjs +0 -7
  946. package/.claude/skills/monodesign/scripts/hook-admin.mjs +0 -694
  947. package/.claude/skills/monodesign/scripts/hook-before-edit.mjs +0 -516
  948. package/.claude/skills/monodesign/scripts/hook-lib.mjs +0 -1785
  949. package/.claude/skills/monodesign/scripts/hook.mjs +0 -61
  950. package/.claude/skills/monodesign/scripts/lib/design-parser.mjs +0 -809
  951. package/.claude/skills/monodesign/scripts/lib/is-generated.mjs +0 -69
  952. package/.claude/skills/monodesign/scripts/lib/monodesign-config.mjs +0 -640
  953. package/.claude/skills/monodesign/scripts/lib/monodesign-paths.mjs +0 -129
  954. package/.claude/skills/monodesign/scripts/lib/provider.mjs +0 -4
  955. package/.claude/skills/monodesign/scripts/lib/target-args.mjs +0 -42
  956. package/.claude/skills/monodesign/scripts/live/browser-script-parts.mjs +0 -50
  957. package/.claude/skills/monodesign/scripts/live/completion.mjs +0 -19
  958. package/.claude/skills/monodesign/scripts/live/event-validation.mjs +0 -137
  959. package/.claude/skills/monodesign/scripts/live/insert-ui.mjs +0 -458
  960. package/.claude/skills/monodesign/scripts/live/manual-apply.mjs +0 -939
  961. package/.claude/skills/monodesign/scripts/live/manual-edit-routes.mjs +0 -357
  962. package/.claude/skills/monodesign/scripts/live/manual-edits-buffer.mjs +0 -152
  963. package/.claude/skills/monodesign/scripts/live/session-store.mjs +0 -293
  964. package/.claude/skills/monodesign/scripts/live/svelte-component.mjs +0 -826
  965. package/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +0 -279
  966. package/.claude/skills/monodesign/scripts/live/ui-core.mjs +0 -180
  967. package/.claude/skills/monodesign/scripts/live/vocabulary.mjs +0 -36
  968. package/.claude/skills/monodesign/scripts/live-accept.mjs +0 -812
  969. package/.claude/skills/monodesign/scripts/live-browser-dom.js +0 -147
  970. package/.claude/skills/monodesign/scripts/live-browser-session.js +0 -124
  971. package/.claude/skills/monodesign/scripts/live-browser.js +0 -11213
  972. package/.claude/skills/monodesign/scripts/live-commit-manual-edits.mjs +0 -1241
  973. package/.claude/skills/monodesign/scripts/live-complete.mjs +0 -75
  974. package/.claude/skills/monodesign/scripts/live-copy-edit-agent.mjs +0 -683
  975. package/.claude/skills/monodesign/scripts/live-discard-manual-edits.mjs +0 -51
  976. package/.claude/skills/monodesign/scripts/live-inject.mjs +0 -596
  977. package/.claude/skills/monodesign/scripts/live-insert.mjs +0 -272
  978. package/.claude/skills/monodesign/scripts/live-manual-edit-evidence.mjs +0 -363
  979. package/.claude/skills/monodesign/scripts/live-poll.mjs +0 -384
  980. package/.claude/skills/monodesign/scripts/live-resume.mjs +0 -94
  981. package/.claude/skills/monodesign/scripts/live-server.mjs +0 -1210
  982. package/.claude/skills/monodesign/scripts/live-status.mjs +0 -61
  983. package/.claude/skills/monodesign/scripts/live-target.mjs +0 -30
  984. package/.claude/skills/monodesign/scripts/live-wrap.mjs +0 -884
  985. package/.claude/skills/monodesign/scripts/live.mjs +0 -297
  986. package/.claude/skills/monodesign/scripts/modern-screenshot.umd.js +0 -14
  987. package/.claude/skills/monodesign/scripts/palette.mjs +0 -635
  988. package/.claude/skills/monodesign/scripts/pin.mjs +0 -221
  989. package/.claude/skills/monodesign/shape.md +0 -71
  990. package/.claude/skills/monodesign/teach.md +0 -18
  991. package/.claude/skills/monodesign/typeset.md +0 -59
  992. package/dist/src/routing/jev-step.d.ts +0 -17
  993. package/dist/src/routing/jev-step.d.ts.map +0 -1
  994. package/dist/src/routing/jev-step.js +0 -27
  995. package/dist/src/routing/jev-step.js.map +0 -1
  996. package/org-skills/accessibility/LICENSE.txt +0 -21
  997. package/org-skills/accessibility/SKILL.md +0 -149
  998. package/org-skills/database-migration/LICENSE.txt +0 -21
  999. package/org-skills/database-migration/SKILL.md +0 -337
  1000. package/org-skills/database-migration/references/details.md +0 -76
  1001. package/org-skills/error-handling-patterns/LICENSE.txt +0 -21
  1002. package/org-skills/error-handling-patterns/SKILL.md +0 -126
  1003. package/org-skills/error-handling-patterns/references/details.md +0 -516
  1004. package/org-skills/internal-comms/LICENSE.txt +0 -202
  1005. package/org-skills/internal-comms/SKILL.md +0 -36
  1006. package/org-skills/internal-comms/examples/3p-updates.md +0 -47
  1007. package/org-skills/internal-comms/examples/company-newsletter.md +0 -65
  1008. package/org-skills/internal-comms/examples/faq-answers.md +0 -30
  1009. package/org-skills/internal-comms/examples/general-comms.md +0 -16
@@ -1,1016 +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?.includes('var(')) continue;
122
- const parsed = parseShorthand(resolveVar(val));
123
- if (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?.includes('var(')) {
130
- const parsed = parseShorthand(resolveVar(borderAll));
131
- if (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?.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
- // biome-ignore lint/complexity/useOptionalChain: exported helper with no typed callers; `source?.includes` would throw for a falsy non-string (0/false) that this guard currently returns unchanged
189
- if (!source || !source.includes('@layer')) return source;
190
- // Find `@layer <name>? {` openers. The match starts at the @, and
191
- // we then balance braces from the opening { onward.
192
- const re = /@layer\b[^{;]*\{/g;
193
- let out = '';
194
- let lastIdx = 0;
195
- let m;
196
- while ((m = re.exec(source)) !== null) {
197
- const openStart = m.index;
198
- const openEnd = m.index + m[0].length; // position right after `{`
199
- let depth = 1;
200
- let i = openEnd;
201
- while (i < source.length && depth > 0) {
202
- const c = source.charCodeAt(i);
203
- if (c === 0x7b /* { */) depth++;
204
- else if (c === 0x7d /* } */) depth--;
205
- i++;
206
- }
207
- if (depth !== 0) {
208
- // Unbalanced — bail and return source unchanged.
209
- return source;
210
- }
211
- // Emit everything before the @layer, then the inner contents
212
- // (between the opening { and the matched closing }), then advance.
213
- out += source.slice(lastIdx, openStart);
214
- out += source.slice(openEnd, i - 1); // i-1 = position of the closing }
215
- lastIdx = i;
216
- re.lastIndex = i;
217
- }
218
- out += source.slice(lastIdx);
219
- return out;
220
- }
221
-
222
- // ---------------------------------------------------------------------------
223
- // Static HTML/CSS detection (default for local HTML files)
224
- // ---------------------------------------------------------------------------
225
-
226
- const STATIC_INHERITED_PROPS = new Set([
227
- 'color', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight',
228
- 'lineHeight', 'letterSpacing', 'textTransform', 'textAlign', 'hyphens',
229
- 'webkitHyphens',
230
- ]);
231
-
232
- const STATIC_DEFAULT_STYLE = {
233
- color: 'rgb(0, 0, 0)',
234
- backgroundColor: 'rgba(0, 0, 0, 0)',
235
- backgroundImage: 'none',
236
- borderTopWidth: '0px',
237
- borderRightWidth: '0px',
238
- borderBottomWidth: '0px',
239
- borderLeftWidth: '0px',
240
- borderTopColor: 'rgb(0, 0, 0)',
241
- borderRightColor: 'rgb(0, 0, 0)',
242
- borderBottomColor: 'rgb(0, 0, 0)',
243
- borderLeftColor: 'rgb(0, 0, 0)',
244
- borderRadius: '0px',
245
- outlineWidth: '0px',
246
- outlineColor: 'rgb(0, 0, 0)',
247
- outlineStyle: 'none',
248
- boxShadow: 'none',
249
- fontFamily: '',
250
- fontSize: '16px',
251
- fontStyle: 'normal',
252
- fontWeight: '400',
253
- lineHeight: 'normal',
254
- letterSpacing: 'normal',
255
- textTransform: 'none',
256
- textAlign: 'start',
257
- hyphens: 'manual',
258
- webkitHyphens: 'manual',
259
- transitionProperty: '',
260
- transitionTimingFunction: '',
261
- animationName: '',
262
- animationTimingFunction: '',
263
- webkitBackgroundClip: '',
264
- backgroundClip: '',
265
- width: '',
266
- height: '',
267
- paddingTop: '0px',
268
- paddingRight: '0px',
269
- paddingBottom: '0px',
270
- paddingLeft: '0px',
271
- marginTop: '0px',
272
- marginRight: '0px',
273
- marginBottom: '0px',
274
- marginLeft: '0px',
275
- position: 'static',
276
- visibility: 'visible',
277
- top: 'auto',
278
- right: 'auto',
279
- bottom: 'auto',
280
- left: 'auto',
281
- inset: '',
282
- display: '',
283
- overflow: 'visible',
284
- overflowX: 'visible',
285
- overflowY: 'visible',
286
- };
287
-
288
- const STATIC_PROP_MAP = {
289
- 'background-color': 'backgroundColor',
290
- 'background-image': 'backgroundImage',
291
- 'background-clip': 'backgroundClip',
292
- '-webkit-background-clip': 'webkitBackgroundClip',
293
- 'border-radius': 'borderRadius',
294
- 'border-top-width': 'borderTopWidth',
295
- 'border-right-width': 'borderRightWidth',
296
- 'border-bottom-width': 'borderBottomWidth',
297
- 'border-left-width': 'borderLeftWidth',
298
- 'border-top-color': 'borderTopColor',
299
- 'border-right-color': 'borderRightColor',
300
- 'border-bottom-color': 'borderBottomColor',
301
- 'border-left-color': 'borderLeftColor',
302
- 'outline-width': 'outlineWidth',
303
- 'outline-color': 'outlineColor',
304
- 'outline-style': 'outlineStyle',
305
- 'box-shadow': 'boxShadow',
306
- 'font-family': 'fontFamily',
307
- 'font-size': 'fontSize',
308
- 'font-style': 'fontStyle',
309
- 'font-weight': 'fontWeight',
310
- 'line-height': 'lineHeight',
311
- 'letter-spacing': 'letterSpacing',
312
- 'text-transform': 'textTransform',
313
- 'text-align': 'textAlign',
314
- 'hyphens': 'hyphens',
315
- '-webkit-hyphens': 'webkitHyphens',
316
- 'transition-property': 'transitionProperty',
317
- 'transition-timing-function': 'transitionTimingFunction',
318
- 'animation-name': 'animationName',
319
- 'animation-timing-function': 'animationTimingFunction',
320
- 'width': 'width',
321
- 'height': 'height',
322
- 'padding-top': 'paddingTop',
323
- 'padding-right': 'paddingRight',
324
- 'padding-bottom': 'paddingBottom',
325
- 'padding-left': 'paddingLeft',
326
- 'margin-top': 'marginTop',
327
- 'margin-right': 'marginRight',
328
- 'margin-bottom': 'marginBottom',
329
- 'margin-left': 'marginLeft',
330
- 'position': 'position',
331
- 'visibility': 'visibility',
332
- 'top': 'top',
333
- 'right': 'right',
334
- 'bottom': 'bottom',
335
- 'left': 'left',
336
- 'inset': 'inset',
337
- 'display': 'display',
338
- 'overflow': 'overflow',
339
- 'overflow-x': 'overflowX',
340
- 'overflow-y': 'overflowY',
341
- };
342
-
343
- const STATIC_NAMED_COLORS = {
344
- black: { r: 0, g: 0, b: 0, a: 1 },
345
- white: { r: 255, g: 255, b: 255, a: 1 },
346
- transparent: { r: 0, g: 0, b: 0, a: 0 },
347
- gray: { r: 128, g: 128, b: 128, a: 1 },
348
- grey: { r: 128, g: 128, b: 128, a: 1 },
349
- silver: { r: 192, g: 192, b: 192, a: 1 },
350
- red: { r: 255, g: 0, b: 0, a: 1 },
351
- green: { r: 0, g: 128, b: 0, a: 1 },
352
- blue: { r: 0, g: 0, b: 255, a: 1 },
353
- };
354
-
355
- function splitCssList(value) {
356
- const parts = [];
357
- let depth = 0, quote = '', start = 0;
358
- for (let i = 0; i < value.length; i++) {
359
- const ch = value[i];
360
- if (quote) {
361
- if (ch === quote && value[i - 1] !== '\\') quote = '';
362
- continue;
363
- }
364
- if (ch === '"' || ch === "'") { quote = ch; continue; }
365
- if (ch === '(' || ch === '[') depth++;
366
- else if (ch === ')' || ch === ']') depth = Math.max(0, depth - 1);
367
- else if (ch === ',' && depth === 0) {
368
- parts.push(value.slice(start, i).trim());
369
- start = i + 1;
370
- }
371
- }
372
- const tail = value.slice(start).trim();
373
- if (tail) parts.push(tail);
374
- return parts;
375
- }
376
-
377
- function splitCssTokens(value) {
378
- const tokens = [];
379
- let depth = 0, quote = '', current = '';
380
- for (let i = 0; i < value.length; i++) {
381
- const ch = value[i];
382
- if (quote) {
383
- current += ch;
384
- if (ch === quote && value[i - 1] !== '\\') quote = '';
385
- continue;
386
- }
387
- if (ch === '"' || ch === "'") { quote = ch; current += ch; continue; }
388
- if (ch === '(') { depth++; current += ch; continue; }
389
- if (ch === ')') { depth = Math.max(0, depth - 1); current += ch; continue; }
390
- if (/\s/.test(ch) && depth === 0) {
391
- if (current) { tokens.push(current); current = ''; }
392
- continue;
393
- }
394
- current += ch;
395
- }
396
- if (current) tokens.push(current);
397
- return tokens;
398
- }
399
-
400
- function cssPropToCamel(prop) {
401
- if (!prop) return prop;
402
- const mapped = STATIC_PROP_MAP[prop];
403
- if (mapped) return mapped;
404
- return prop.replace(/-([a-z])/g, (_m, ch) => ch.toUpperCase());
405
- }
406
-
407
- function staticColorToCss(c) {
408
- if (!c) return '';
409
- if (c.a != null && c.a < 1) return `rgba(${c.r}, ${c.g}, ${c.b}, ${Number(c.a.toFixed(3))})`;
410
- return `rgb(${c.r}, ${c.g}, ${c.b})`;
411
- }
412
-
413
- function parseStaticColor(value) {
414
- const parsed = parseAnyColor(value);
415
- if (parsed) return parsed;
416
- const named = STATIC_NAMED_COLORS[String(value || '').trim().toLowerCase()];
417
- return named ? { ...named } : null;
418
- }
419
-
420
- function extractStaticColor(value) {
421
- if (!value) return '';
422
- const raw = String(value).trim();
423
- if (/^var\(/i.test(raw)) return raw;
424
- 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);
425
- if (!colorLike) return '';
426
- return colorLike[0];
427
- }
428
-
429
- function normalizeStaticCssValue(prop, value, customProps, parentStyle, currentStyle = null) {
430
- let resolved = resolveVarRefs(String(value || '').trim(), customProps);
431
- if (resolved === 'inherit') return parentStyle?.[prop] || STATIC_DEFAULT_STYLE[prop] || '';
432
- const isModernBorderColor = /^border[A-Z][a-z]+Color$/.test(prop) && /^(?:oklch|oklab|lch|lab|hsl|hwb)\(/i.test(resolved);
433
- if (!isModernBorderColor && (/color$/i.test(prop) || prop === 'color' || prop === 'backgroundColor')) {
434
- const parsed = parseStaticColor(resolved);
435
- if (parsed) resolved = staticColorToCss(parsed);
436
- }
437
- if (prop === 'fontSize') {
438
- const base = parseFloat(parentStyle?.fontSize) || 16;
439
- const px = resolveLengthPx(resolved, base);
440
- if (px != null) resolved = `${px}px`;
441
- }
442
- if (prop === 'letterSpacing') {
443
- const base = parseFloat(currentStyle?.fontSize || parentStyle?.fontSize) || 16;
444
- const px = resolveLengthPx(resolved, base);
445
- if (px != null) resolved = `${px}px`;
446
- }
447
- if (prop === 'lineHeight' && resolved !== 'normal') {
448
- const base = parseFloat(currentStyle?.fontSize || parentStyle?.fontSize) || 16;
449
- const px = resolveLengthPx(resolved, base);
450
- if (px != null) resolved = `${px}px`;
451
- }
452
- return resolved;
453
- }
454
-
455
- function expandStaticBoxValues(tokens) {
456
- if (tokens.length === 0) return ['0px', '0px', '0px', '0px'];
457
- if (tokens.length === 1) return [tokens[0], tokens[0], tokens[0], tokens[0]];
458
- if (tokens.length === 2) return [tokens[0], tokens[1], tokens[0], tokens[1]];
459
- if (tokens.length === 3) return [tokens[0], tokens[1], tokens[2], tokens[1]];
460
- return [tokens[0], tokens[1], tokens[2], tokens[3]];
461
- }
462
-
463
- function parseStaticBorder(value) {
464
- const tokens = splitCssTokens(value);
465
- let width = '', color = '';
466
- for (const token of tokens) {
467
- if (!width && /^-?[\d.]+(?:px|rem|em|%)$/.test(token)) width = token;
468
- if (!color) color = extractStaticColor(token);
469
- }
470
- return { width, color };
471
- }
472
-
473
- function parseStaticFont(value) {
474
- const out = [];
475
- const slashParts = value.match(/(?:^|\s)([\d.]+(?:px|rem|em|%))(?:\/([^\s]+))?/);
476
- if (/\bitalic\b/i.test(value)) out.push(['fontStyle', 'italic']);
477
- const weight = value.match(/\b([1-9]00|bold|normal|lighter|bolder)\b/i);
478
- if (weight) out.push(['fontWeight', weight[1]]);
479
- if (slashParts) {
480
- out.push(['fontSize', slashParts[1]]);
481
- if (slashParts[2]) out.push(['lineHeight', slashParts[2]]);
482
- const familyStart = value.indexOf(slashParts[0]) + slashParts[0].length;
483
- const family = value.slice(familyStart).trim();
484
- if (family) out.push(['fontFamily', family]);
485
- }
486
- return out;
487
- }
488
-
489
- function parseStaticTransition(value) {
490
- const props = [];
491
- const timings = [];
492
- for (const item of splitCssList(value)) {
493
- const tokens = splitCssTokens(item);
494
- const timing = tokens.find(token => /^(?:ease|linear|step-|cubic-bezier\()/i.test(token));
495
- if (timing) timings.push(timing);
496
- const prop = tokens.find(token => /^[a-z-]+$/i.test(token) && !/^(?:ease|linear|infinite|alternate|forwards|backwards|both|normal|none)$/.test(token) && !/s$/.test(token));
497
- if (prop) props.push(prop);
498
- }
499
- return {
500
- property: props.join(', '),
501
- timing: timings.join(', '),
502
- };
503
- }
504
-
505
- function parseStaticAnimation(value) {
506
- const names = [];
507
- const timings = [];
508
- for (const item of splitCssList(value)) {
509
- const tokens = splitCssTokens(item);
510
- const timing = tokens.find(token => /^(?:ease|linear|step-|cubic-bezier\()/i.test(token));
511
- if (timing) timings.push(timing);
512
- const name = tokens.find(token =>
513
- /^[a-z_-][\w-]*$/i.test(token) &&
514
- !/^(?:ease|linear|infinite|alternate|forwards|backwards|both|normal|none|running|paused)$/.test(token)
515
- );
516
- if (name) names.push(name);
517
- }
518
- return {
519
- name: names.join(', '),
520
- timing: timings.join(', '),
521
- };
522
- }
523
-
524
- function expandStaticDeclaration(prop, value) {
525
- const p = prop.toLowerCase();
526
- const v = String(value || '').trim();
527
- if (!v) return [];
528
- if (p.startsWith('--')) return [[p, v]];
529
- if (p === 'background') {
530
- const out = [];
531
- const hasImage = /gradient|url\(/i.test(v);
532
- if (hasImage) out.push(['backgroundImage', v]);
533
- const beforeImage = hasImage ? v.split(/(?:repeating-)?(?:linear|radial|conic)-gradient\(|url\(/i)[0] : v;
534
- const color = extractStaticColor(hasImage ? beforeImage : v);
535
- if (color) out.push(['backgroundColor', color]);
536
- return out;
537
- }
538
- if (p === 'border') {
539
- const parsed = parseStaticBorder(v);
540
- const out = [];
541
- for (const side of ['Top', 'Right', 'Bottom', 'Left']) {
542
- if (parsed.width) out.push([`border${side}Width`, parsed.width]);
543
- if (parsed.color) out.push([`border${side}Color`, parsed.color]);
544
- }
545
- return out;
546
- }
547
- if (p === 'outline') {
548
- // `outline` shorthand: width | style | color, in any order. Reuse the
549
- // border parser for width + color, then sniff a style keyword from the
550
- // tokens (solid|dashed|...). `outline: 0` (single-token zero) zeros
551
- // the width and effectively hides the outline.
552
- const tokens = splitCssTokens(v);
553
- const parsed = parseStaticBorder(v);
554
- const styleToken = tokens.find(t =>
555
- /^(none|hidden|solid|dashed|dotted|double|groove|ridge|inset|outset)$/i.test(t)
556
- );
557
- const out = [];
558
- if (parsed.width) out.push(['outlineWidth', parsed.width]);
559
- if (parsed.color) out.push(['outlineColor', parsed.color]);
560
- if (styleToken) out.push(['outlineStyle', styleToken.toLowerCase()]);
561
- // `outline: 0` with no other tokens: explicit zero width.
562
- if (!parsed.width && /^0(?:px|rem|em|%)?$/.test(v.trim())) {
563
- out.push(['outlineWidth', '0px']);
564
- }
565
- return out;
566
- }
567
- const sideMatch = p.match(/^border-(top|right|bottom|left)$/);
568
- if (sideMatch) {
569
- const parsed = parseStaticBorder(v);
570
- const side = sideMatch[1][0].toUpperCase() + sideMatch[1].slice(1);
571
- return [
572
- ...(parsed.width ? [[`border${side}Width`, parsed.width]] : []),
573
- ...(parsed.color ? [[`border${side}Color`, parsed.color]] : []),
574
- ];
575
- }
576
- if (p === 'border-width') {
577
- const vals = expandStaticBoxValues(splitCssTokens(v));
578
- return [
579
- ['borderTopWidth', vals[0]],
580
- ['borderRightWidth', vals[1]],
581
- ['borderBottomWidth', vals[2]],
582
- ['borderLeftWidth', vals[3]],
583
- ];
584
- }
585
- if (p === 'border-color') {
586
- const vals = expandStaticBoxValues(splitCssTokens(v));
587
- return [
588
- ['borderTopColor', vals[0]],
589
- ['borderRightColor', vals[1]],
590
- ['borderBottomColor', vals[2]],
591
- ['borderLeftColor', vals[3]],
592
- ];
593
- }
594
- if (p === 'padding') {
595
- const vals = expandStaticBoxValues(splitCssTokens(v));
596
- return [
597
- ['paddingTop', vals[0]],
598
- ['paddingRight', vals[1]],
599
- ['paddingBottom', vals[2]],
600
- ['paddingLeft', vals[3]],
601
- ];
602
- }
603
- if (p === 'margin') {
604
- const vals = expandStaticBoxValues(splitCssTokens(v));
605
- return [
606
- ['marginTop', vals[0]],
607
- ['marginRight', vals[1]],
608
- ['marginBottom', vals[2]],
609
- ['marginLeft', vals[3]],
610
- ];
611
- }
612
- if (p === 'font') return parseStaticFont(v);
613
- if (p === 'transition') {
614
- const parsed = parseStaticTransition(v);
615
- return [
616
- ...(parsed.property ? [['transitionProperty', parsed.property]] : []),
617
- ...(parsed.timing ? [['transitionTimingFunction', parsed.timing]] : []),
618
- ];
619
- }
620
- if (p === 'animation') {
621
- const parsed = parseStaticAnimation(v);
622
- return [
623
- ...(parsed.name ? [['animationName', parsed.name]] : []),
624
- ...(parsed.timing ? [['animationTimingFunction', parsed.timing]] : []),
625
- ];
626
- }
627
- const mapped = cssPropToCamel(p);
628
- if (STATIC_DEFAULT_STYLE[mapped] != null || STATIC_INHERITED_PROPS.has(mapped)) {
629
- return [[mapped, v]];
630
- }
631
- return [];
632
- }
633
-
634
- function compareStaticPriority(a, b) {
635
- if (!a) return true;
636
- if (!!b.important !== !!a.important) return !!b.important;
637
- if (!!b.inline !== !!a.inline) return !!b.inline;
638
- for (let i = 0; i < 3; i++) {
639
- if ((b.specificity[i] || 0) !== (a.specificity[i] || 0)) {
640
- return (b.specificity[i] || 0) > (a.specificity[i] || 0);
641
- }
642
- }
643
- return b.order >= a.order;
644
- }
645
-
646
- function staticSpecificity(selector) {
647
- const noWhere = selector.replace(/:where\([^)]*\)/g, '');
648
- const ids = (noWhere.match(/#[\w-]+/g) || []).length;
649
- const classes = (noWhere.match(/\.[\w-]+|\[[^\]]+\]|:(?!:)[\w-]+(?:\([^)]*\))?/g) || []).length;
650
- const stripped = noWhere
651
- .replace(/#[\w-]+/g, ' ')
652
- .replace(/\.[\w-]+|\[[^\]]+\]|:{1,2}[\w-]+(?:\([^)]*\))?/g, ' ')
653
- .replace(/[*>+~(),]/g, ' ');
654
- const types = (stripped.match(/\b[a-zA-Z][\w-]*\b/g) || []).length;
655
- return [ids, classes, types];
656
- }
657
-
658
- function applyStaticDeclaration(specified, node, prop, value, meta) {
659
- let map = specified.get(node);
660
- if (!map) { map = new Map(); specified.set(node, map); }
661
- for (const [expandedProp, expandedValue] of expandStaticDeclaration(prop, value)) {
662
- const existing = map.get(expandedProp);
663
- const next = { ...meta, prop: expandedProp, value: expandedValue };
664
- if (compareStaticPriority(existing, next)) map.set(expandedProp, next);
665
- }
666
- }
667
-
668
- function parseStaticStyleAttribute(styleText, orderBase = 0) {
669
- const decls = [];
670
- for (const part of String(styleText || '').split(';')) {
671
- const idx = part.indexOf(':');
672
- if (idx <= 0) continue;
673
- const prop = part.slice(0, idx).trim();
674
- let value = part.slice(idx + 1).trim();
675
- const important = /!important\s*$/i.test(value);
676
- value = value.replace(/\s*!important\s*$/i, '').trim();
677
- decls.push({ prop, value, important, order: orderBase + decls.length });
678
- }
679
- return decls;
680
- }
681
-
682
- function collectStaticCssRules(cssText, csstree) {
683
- const rules = [];
684
- let ast;
685
- try {
686
- ast = csstree.parse(cssText, { positions: false, parseValue: true, parseCustomProperty: false });
687
- } catch {
688
- return rules;
689
- }
690
- let order = 0;
691
- const walkList = (list, atRuleStack = []) => {
692
- list?.forEach?.(node => {
693
- if (node.type === 'Rule' && node.block) {
694
- if (atRuleStack.some(name => /keyframes$/i.test(name))) return;
695
- const selectorText = csstree.generate(node.prelude).trim();
696
- const declarations = [];
697
- node.block.children?.forEach?.(child => {
698
- if (child.type !== 'Declaration') return;
699
- declarations.push({
700
- prop: child.property,
701
- value: csstree.generate(child.value).trim(),
702
- important: !!child.important,
703
- });
704
- });
705
- for (const selector of splitCssList(selectorText)) {
706
- if (selector) rules.push({ selector, declarations, specificity: staticSpecificity(selector), order: order++ });
707
- }
708
- return;
709
- }
710
- if (node.type === 'Atrule' && node.block) {
711
- const name = String(node.name || '').toLowerCase();
712
- if (name === 'media' || name === 'supports' || name === 'layer') {
713
- walkList(node.block.children, [...atRuleStack, name]);
714
- }
715
- }
716
- });
717
- };
718
- walkList(ast.children);
719
- return rules;
720
- }
721
-
722
- class StaticElement {
723
- constructor(node, doc) {
724
- this.node = node;
725
- this._doc = doc;
726
- this.nodeType = 1;
727
- this.tagName = String(node.name || '').toUpperCase();
728
- this.nodeName = this.tagName;
729
- }
730
- get parentElement() {
731
- let cur = this.node.parent;
732
- while (cur && cur.type !== 'tag') cur = cur.parent;
733
- return cur ? this._doc.wrap(cur) : null;
734
- }
735
- get previousElementSibling() {
736
- let cur = this.node.prev;
737
- while (cur && cur.type !== 'tag') cur = cur.prev;
738
- return cur ? this._doc.wrap(cur) : null;
739
- }
740
- get children() {
741
- return (this.node.children || []).filter(child => child.type === 'tag').map(child => this._doc.wrap(child));
742
- }
743
- get childNodes() {
744
- return (this.node.children || []).map(child => {
745
- if (child.type === 'text') return { nodeType: 3, textContent: child.data || '' };
746
- if (child.type === 'tag') return this._doc.wrap(child);
747
- return { nodeType: 8, textContent: child.data || '' };
748
- });
749
- }
750
- get textContent() {
751
- return this._doc.domutils.textContent(this.node);
752
- }
753
- get className() {
754
- return this.getAttribute('class') || '';
755
- }
756
- get id() {
757
- return this.getAttribute('id') || '';
758
- }
759
- getAttribute(name) {
760
- return this.node.attribs?.[name] ?? null;
761
- }
762
- querySelector(selector) {
763
- try {
764
- const found = this._doc.selectOne(selector, this.node.children || []);
765
- return found ? this._doc.wrap(found) : null;
766
- } catch {
767
- return null;
768
- }
769
- }
770
- querySelectorAll(selector) {
771
- try {
772
- return this._doc.selectAll(selector, this.node.children || []).map(node => this._doc.wrap(node));
773
- } catch {
774
- return [];
775
- }
776
- }
777
- closest(selector) {
778
- let cur = this.node;
779
- while (cur && cur.type === 'tag') {
780
- try {
781
- if (this._doc.is(cur, selector)) return this._doc.wrap(cur);
782
- } catch {
783
- return null;
784
- }
785
- cur = cur.parent;
786
- while (cur && cur.type !== 'tag') cur = cur.parent;
787
- }
788
- return null;
789
- }
790
- contains(other) {
791
- let cur = other?.node || null;
792
- while (cur) {
793
- if (cur === this.node) return true;
794
- cur = cur.parent;
795
- }
796
- return false;
797
- }
798
- }
799
-
800
- class StaticDocument {
801
- constructor(root, modules) {
802
- this.root = root;
803
- this.selectAll = modules.selectAll;
804
- this.selectOne = modules.selectOne;
805
- this.is = modules.is;
806
- this.domutils = modules.domutils;
807
- this._wrappers = new WeakMap();
808
- this._styleMap = new WeakMap();
809
- }
810
- wrap(node) {
811
- let wrapped = this._wrappers.get(node);
812
- if (!wrapped) {
813
- wrapped = new StaticElement(node, this);
814
- this._wrappers.set(node, wrapped);
815
- }
816
- return wrapped;
817
- }
818
- querySelectorAll(selector) {
819
- try {
820
- return this.selectAll(selector, this.root.children || []).map(node => this.wrap(node));
821
- } catch {
822
- return [];
823
- }
824
- }
825
- querySelector(selector) {
826
- try {
827
- const found = this.selectOne(selector, this.root.children || []);
828
- return found ? this.wrap(found) : null;
829
- } catch {
830
- return null;
831
- }
832
- }
833
- get documentElement() {
834
- return this.querySelector('html');
835
- }
836
- get body() {
837
- return this.querySelector('body');
838
- }
839
- setStyle(node, style) {
840
- this._styleMap.set(node, style);
841
- }
842
- getStyle(el) {
843
- return this._styleMap.get(el.node) || makeStaticStyle();
844
- }
845
- }
846
-
847
- function makeStaticStyle(values = {}) {
848
- const style = { ...STATIC_DEFAULT_STYLE, ...values };
849
- style.getPropertyValue = (prop) => {
850
- const key = cssPropToCamel(prop);
851
- return style[key] || style[prop] || '';
852
- };
853
- return style;
854
- }
855
-
856
- function buildStaticWindow(staticDoc) {
857
- return {
858
- document: staticDoc,
859
- getComputedStyle: (el) => staticDoc.getStyle(el),
860
- };
861
- }
862
-
863
- function collectStaticCssText(root, fileDir, profile, filePath, modules) {
864
- const styleTexts = [];
865
- for (const styleEl of modules.selectAll('style', root.children || [])) {
866
- styleTexts.push(modules.domutils.textContent(styleEl));
867
- }
868
- const links = modules.selectAll('link', root.children || []);
869
- for (const link of links) {
870
- const rel = link.attribs?.rel || '';
871
- const href = link.attribs?.href || '';
872
- if (!/\bstylesheet\b/i.test(rel) || !href || /^(https?:)?\/\//i.test(href)) continue;
873
- const cssPath = path.resolve(fileDir, href);
874
- try {
875
- const css = profileStep(profile, {
876
- engine: 'static-html',
877
- phase: 'preprocess',
878
- ruleId: 'inline-linked-stylesheet',
879
- target: filePath,
880
- detail: href,
881
- }, () => fs.readFileSync(cssPath, 'utf-8'));
882
- styleTexts.push(css);
883
- } catch { /* skip unreadable */ }
884
- }
885
- return styleTexts.join('\n');
886
- }
887
-
888
- function buildStaticStyleMap(root, staticDoc, cssText, modules, profile, filePath) {
889
- const specified = new Map();
890
- const allNodes = modules.selectAll('*', root.children || []);
891
- const rules = profileStep(profile, {
892
- engine: 'static-html',
893
- phase: 'parse-css',
894
- ruleId: 'css-rules',
895
- target: filePath,
896
- }, () => collectStaticCssRules(cssText, modules.csstree));
897
-
898
- profileStep(profile, {
899
- engine: 'static-html',
900
- phase: 'selector-match',
901
- ruleId: 'css-selectors',
902
- target: filePath,
903
- }, () => {
904
- for (const rule of rules) {
905
- let matched;
906
- try {
907
- matched = modules.selectAll(rule.selector, root.children || []);
908
- } catch {
909
- recordProfileEvent(profile, {
910
- engine: 'static-html',
911
- phase: 'selector-match',
912
- ruleId: 'unsupported-selector',
913
- target: filePath,
914
- ms: 0,
915
- findings: 0,
916
- detail: rule.selector,
917
- });
918
- continue;
919
- }
920
- for (const node of matched) {
921
- for (const decl of rule.declarations) {
922
- applyStaticDeclaration(specified, node, decl.prop, decl.value, {
923
- important: decl.important,
924
- specificity: rule.specificity,
925
- order: rule.order,
926
- inline: false,
927
- });
928
- }
929
- }
930
- }
931
-
932
- let inlineOrder = rules.length + 1;
933
- for (const node of allNodes) {
934
- const styleText = node.attribs?.style;
935
- if (!styleText) continue;
936
- for (const decl of parseStaticStyleAttribute(styleText, inlineOrder)) {
937
- applyStaticDeclaration(specified, node, decl.prop, decl.value, {
938
- important: decl.important,
939
- specificity: [1, 0, 0],
940
- order: decl.order,
941
- inline: true,
942
- });
943
- }
944
- inlineOrder += 1000;
945
- }
946
- });
947
-
948
- const computeNode = (node, parentStyle = null, parentCustom = new Map()) => {
949
- const specifiedMap = specified.get(node) || new Map();
950
- const customProps = new Map(parentCustom);
951
- for (const [prop, decl] of specifiedMap) {
952
- if (prop.startsWith('--')) customProps.set(prop, resolveVarRefs(decl.value, customProps));
953
- }
954
- const values = {};
955
- for (const prop of Object.keys(STATIC_DEFAULT_STYLE)) {
956
- if (STATIC_INHERITED_PROPS.has(prop) && parentStyle?.[prop] != null) values[prop] = parentStyle[prop];
957
- else values[prop] = STATIC_DEFAULT_STYLE[prop];
958
- }
959
- for (const [prop, decl] of specifiedMap) {
960
- if (prop.startsWith('--')) continue;
961
- values[prop] = normalizeStaticCssValue(prop, decl.value, customProps, parentStyle, values);
962
- }
963
- const style = makeStaticStyle(values);
964
- staticDoc.setStyle(node, style);
965
- for (const child of node.children || []) {
966
- if (child.type === 'tag') computeNode(child, style, customProps);
967
- }
968
- };
969
-
970
- profileStep(profile, {
971
- engine: 'static-html',
972
- phase: 'cascade',
973
- ruleId: 'compute-styles',
974
- target: filePath,
975
- }, () => {
976
- for (const child of root.children || []) {
977
- if (child.type === 'tag') computeNode(child);
978
- }
979
- });
980
- }
981
-
982
- export {
983
- BORDER_SHORTHAND_RE,
984
- NAMED_COLORS,
985
- normalizeColorForCheck,
986
- buildBorderOverrideMap,
987
- unwrapCssAtLayer,
988
- STATIC_INHERITED_PROPS,
989
- STATIC_DEFAULT_STYLE,
990
- STATIC_PROP_MAP,
991
- STATIC_NAMED_COLORS,
992
- splitCssList,
993
- splitCssTokens,
994
- cssPropToCamel,
995
- staticColorToCss,
996
- parseStaticColor,
997
- extractStaticColor,
998
- normalizeStaticCssValue,
999
- expandStaticBoxValues,
1000
- parseStaticBorder,
1001
- parseStaticFont,
1002
- parseStaticTransition,
1003
- parseStaticAnimation,
1004
- expandStaticDeclaration,
1005
- compareStaticPriority,
1006
- staticSpecificity,
1007
- applyStaticDeclaration,
1008
- parseStaticStyleAttribute,
1009
- collectStaticCssRules,
1010
- StaticElement,
1011
- StaticDocument,
1012
- makeStaticStyle,
1013
- buildStaticWindow,
1014
- collectStaticCssText,
1015
- buildStaticStyleMap,
1016
- };