@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,939 +0,0 @@
1
- import { randomUUID } from 'node:crypto';
2
- import fs from 'node:fs';
3
- import path from 'node:path';
4
- import { getLiveDir } from '../lib/monodesign-paths.mjs';
5
- import { readBuffer as readManualEditsBuffer } from './manual-edits-buffer.mjs';
6
-
7
- const APPLY_EVENT_HARD_TIMEOUT_MS = Number(process.env.MONODESIGN_LIVE_APPLY_EVENT_HARD_TIMEOUT_MS || 150_000);
8
- const APPLY_EVENT_SOFT_DEADLINE_MS = Number(process.env.MONODESIGN_LIVE_APPLY_EVENT_SOFT_DEADLINE_MS || 120_000);
9
- const DEFAULT_MANUAL_EDIT_APPLY_CHUNK_SIZE = 3;
10
- const MIN_MANUAL_EDIT_APPLY_CHUNK_SIZE = 1;
11
- const MAX_MANUAL_EDIT_APPLY_CHUNK_SIZE = 20;
12
- const MANUAL_APPLY_COMPACT_TEXT_LIMIT = 240;
13
- const MANUAL_APPLY_COMPACT_NEARBY_LIMIT = 4;
14
-
15
- export function createManualApplyController({
16
- pendingEvents,
17
- pendingApplyDeferreds,
18
- timedOutApplyIds,
19
- enqueueEvent,
20
- acknowledgePendingEvent,
21
- flushPendingPolls,
22
- recordManualEditActivity,
23
- cwd = () => process.cwd(),
24
- } = {}) {
25
- const projectCwd = () => typeof cwd === 'function' ? cwd() : cwd || process.cwd();
26
-
27
- function tombstoneTimedOutApplyId(eventId, details = {}) {
28
- if (!eventId) return;
29
- timedOutApplyIds.set(eventId, details);
30
- if (timedOutApplyIds.size <= 200) return;
31
- const oldest = timedOutApplyIds.keys().next().value;
32
- timedOutApplyIds.delete(oldest);
33
- }
34
-
35
- function pushApplyEventAndWait(batch, pageUrl, chunk = null, repair = null) {
36
- const cwdValue = projectCwd();
37
- const eventId = randomUUID().replace(/-/g, '').slice(0, 8);
38
- const evidencePath = writeManualApplyEvidence(eventId, batch, cwdValue);
39
- const event = {
40
- type: 'manual_edit_apply',
41
- id: eventId,
42
- pageUrl,
43
- batch: compactManualApplyBatch(batch, cwdValue),
44
- evidencePath,
45
- agentAction: buildManualApplyAgentAction(eventId),
46
- schemaVersion: 1,
47
- deadlineMs: APPLY_EVENT_SOFT_DEADLINE_MS,
48
- };
49
- if (chunk) event.chunk = chunk;
50
- if (repair) event.repair = repair;
51
- const rollbackSnapshot = snapshotApplyEventFiles(batch, cwdValue);
52
- recordManualEditActivity('manual_edit_apply_dispatched', {
53
- id: eventId,
54
- pageUrl,
55
- chunk,
56
- repair,
57
- entryCount: Array.isArray(batch.entries) ? batch.entries.length : 0,
58
- opCount: countManualApplyOps(batch),
59
- fileCount: collectManualApplyFiles(batch, [], cwdValue).length,
60
- });
61
- return new Promise((resolve, reject) => {
62
- const timer = setTimeout(() => {
63
- pendingApplyDeferreds.delete(eventId);
64
- tombstoneTimedOutApplyId(eventId, { batch, rollbackSnapshot, cwd: cwdValue });
65
- acknowledgePendingEvent(eventId);
66
- removeManualApplyEvidence(evidencePath, cwdValue);
67
- recordManualEditActivity('manual_edit_apply_timeout', {
68
- id: eventId,
69
- pageUrl,
70
- chunk,
71
- entryCount: Array.isArray(batch.entries) ? batch.entries.length : 0,
72
- opCount: countManualApplyOps(batch),
73
- });
74
- reject(new Error('chat_agent_timeout'));
75
- }, APPLY_EVENT_HARD_TIMEOUT_MS);
76
- pendingApplyDeferreds.set(eventId, { resolve, reject, timer, event, batch, pageUrl, rollbackSnapshot, cwd: cwdValue });
77
- enqueueEvent(event);
78
- });
79
- }
80
-
81
- async function pushBatchInChunksAndWait(batch, pageUrl, context = {}) {
82
- const repair = context?.repair || batch?.repair || null;
83
- if (repair) return pushApplyEventAndWait(batch, pageUrl, null, repair);
84
- const chunks = splitManualApplyBatch(batch, manualEditApplyChunkSize());
85
- if (chunks.length <= 1) return pushApplyEventAndWait(batch, pageUrl);
86
-
87
- const expectedOpsByEntry = new Map();
88
- for (const entry of batch?.entries || []) {
89
- expectedOpsByEntry.set(entry.id, Array.isArray(entry.ops) ? entry.ops.length : 0);
90
- }
91
-
92
- const appliedOpsByEntry = new Map();
93
- const failedByEntry = new Map();
94
- const files = new Set();
95
- const notes = [];
96
- let aborted = false;
97
-
98
- for (const chunk of chunks) {
99
- if (aborted) {
100
- markChunkEntriesFailed(failedByEntry, chunk, 'manual_edit_chunk_aborted');
101
- continue;
102
- }
103
-
104
- let result;
105
- try {
106
- result = normalizeApplyChunkResult(await pushApplyEventAndWait(chunk.batch, pageUrl, chunk.meta));
107
- } catch (err) {
108
- markChunkEntriesFailed(failedByEntry, chunk, err.message || 'chat_agent_error');
109
- aborted = true;
110
- continue;
111
- }
112
-
113
- for (const file of result.files) files.add(file);
114
- notes.push(...result.notes);
115
-
116
- const chunkFailedIds = new Set();
117
- for (const item of result.failed) {
118
- const entryId = item.entryId || item.id;
119
- if (!entryId) continue;
120
- chunkFailedIds.add(entryId);
121
- if (!failedByEntry.has(entryId)) {
122
- failedByEntry.set(entryId, {
123
- entryId,
124
- reason: item.reason || item.message || 'failed',
125
- candidates: Array.isArray(item.candidates) ? item.candidates : [],
126
- });
127
- }
128
- }
129
-
130
- if (result.status === 'error') {
131
- markChunkEntriesFailed(failedByEntry, chunk, result.message || firstFailureReason(result) || 'chat_agent_error');
132
- aborted = true;
133
- continue;
134
- }
135
-
136
- const reportedAppliedIds = new Set(result.appliedEntryIds);
137
- for (const entryId of reportedAppliedIds) {
138
- if (!chunk.entryIds.has(entryId) || chunkFailedIds.has(entryId)) continue;
139
- appliedOpsByEntry.set(entryId, (appliedOpsByEntry.get(entryId) || 0) + (chunk.opCountsByEntry.get(entryId) || 0));
140
- }
141
-
142
- for (const entryId of chunk.entryIds) {
143
- if (reportedAppliedIds.has(entryId) || chunkFailedIds.has(entryId)) continue;
144
- if (!failedByEntry.has(entryId)) {
145
- failedByEntry.set(entryId, { entryId, reason: 'not_reported_applied', candidates: [] });
146
- }
147
- }
148
- }
149
-
150
- const appliedEntryIds = [];
151
- for (const [entryId, expectedOps] of expectedOpsByEntry.entries()) {
152
- if (failedByEntry.has(entryId)) continue;
153
- if ((appliedOpsByEntry.get(entryId) || 0) === expectedOps && expectedOps > 0) {
154
- appliedEntryIds.push(entryId);
155
- } else if (!failedByEntry.has(entryId)) {
156
- failedByEntry.set(entryId, { entryId, reason: 'not_reported_applied', candidates: [] });
157
- }
158
- }
159
-
160
- const failed = [...failedByEntry.values()];
161
- return {
162
- status: failed.length === 0 ? 'done' : appliedEntryIds.length > 0 ? 'partial' : 'error',
163
- appliedEntryIds,
164
- failed,
165
- files: [...files],
166
- notes,
167
- };
168
- }
169
-
170
- function getDeferred(eventId) {
171
- return pendingApplyDeferreds.get(eventId) || null;
172
- }
173
-
174
- function hasTimedOutId(eventId) {
175
- return timedOutApplyIds.has(eventId);
176
- }
177
-
178
- function resolveDeferred(eventId, body) {
179
- const deferred = pendingApplyDeferreds.get(eventId);
180
- if (!deferred) return false;
181
- pendingApplyDeferreds.delete(eventId);
182
- clearTimeout(deferred.timer);
183
- removeManualApplyEvidence(deferred.event?.evidencePath, deferred.cwd || projectCwd());
184
- deferred.resolve(body);
185
- return true;
186
- }
187
-
188
- function rejectDeferred(eventId, reason) {
189
- const deferred = pendingApplyDeferreds.get(eventId);
190
- if (!deferred) return false;
191
- pendingApplyDeferreds.delete(eventId);
192
- clearTimeout(deferred.timer);
193
- removeManualApplyEvidence(deferred.event?.evidencePath, deferred.cwd || projectCwd());
194
- deferred.reject(new Error(reason || 'chat_agent_error'));
195
- return true;
196
- }
197
-
198
- function referencedManualApplyEvidencePaths(cwdValue = projectCwd()) {
199
- const referenced = new Set();
200
- const add = (event) => {
201
- const fullPath = normalizeManualApplyEvidencePath(event?.evidencePath, cwdValue);
202
- if (fullPath) referenced.add(fullPath);
203
- };
204
- for (const entry of pendingEvents) add(entry.event);
205
- for (const deferred of pendingApplyDeferreds.values()) add(deferred.event);
206
- return referenced;
207
- }
208
-
209
- function pruneStaleEvidence(cwdValue = projectCwd()) {
210
- const dir = manualApplyEvidenceDir(cwdValue);
211
- if (!fs.existsSync(dir)) return [];
212
- const referenced = referencedManualApplyEvidencePaths(cwdValue);
213
- const removed = [];
214
- for (const name of fs.readdirSync(dir)) {
215
- if (!name.endsWith('.json')) continue;
216
- const fullPath = path.join(dir, name);
217
- if (referenced.has(fullPath)) continue;
218
- try {
219
- fs.unlinkSync(fullPath);
220
- removed.push(fullPath);
221
- } catch {
222
- // Stale evidence cleanup is best-effort; Apply verification never relies
223
- // on deleting these files.
224
- }
225
- }
226
- return removed;
227
- }
228
-
229
- function rollbackTimedOutReply(msg) {
230
- const details = timedOutApplyIds.get(msg.id);
231
- if (!details) return { rolledBackFiles: [], rollbackFailures: [] };
232
- timedOutApplyIds.delete(msg.id);
233
- return rollbackApplySnapshot(
234
- details.batch,
235
- details.rollbackSnapshot,
236
- msg.data?.files || [],
237
- 'stale_manual_edit_apply_reply',
238
- details.cwd || projectCwd(),
239
- );
240
- }
241
-
242
- function cancelPendingEvents(pageUrl, reason = 'manual_edit_discarded') {
243
- const canceledById = new Map();
244
- const shouldCancel = (event) => event?.type === 'manual_edit_apply' && (!pageUrl || event.pageUrl === pageUrl);
245
-
246
- for (let i = pendingEvents.length - 1; i >= 0; i -= 1) {
247
- const event = pendingEvents[i]?.event;
248
- if (!shouldCancel(event)) continue;
249
- pendingEvents.splice(i, 1);
250
- removeManualApplyEvidence(event.evidencePath, projectCwd());
251
- canceledById.set(event.id, {
252
- id: event.id,
253
- pageUrl: event.pageUrl,
254
- entryCount: event.batch?.entries?.length || 0,
255
- });
256
- }
257
-
258
- for (const [eventId, deferred] of [...pendingApplyDeferreds.entries()]) {
259
- if (!shouldCancel(deferred.event)) continue;
260
- pendingApplyDeferreds.delete(eventId);
261
- clearTimeout(deferred.timer);
262
- const cwdValue = deferred.cwd || projectCwd();
263
- const rollback = rollbackApplySnapshot(deferred.batch, deferred.rollbackSnapshot, [], reason, cwdValue);
264
- tombstoneTimedOutApplyId(eventId, {
265
- batch: deferred.batch,
266
- rollbackSnapshot: deferred.rollbackSnapshot,
267
- reason,
268
- cwd: cwdValue,
269
- });
270
- removeManualApplyEvidence(deferred.event?.evidencePath, cwdValue);
271
- canceledById.set(eventId, {
272
- id: eventId,
273
- pageUrl: deferred.pageUrl,
274
- entryCount: deferred.batch?.entries?.length || 0,
275
- rolledBackFiles: rollback.rolledBackFiles,
276
- rollbackFailures: rollback.rollbackFailures,
277
- });
278
- deferred.reject(new Error(reason));
279
- }
280
-
281
- if (canceledById.size > 0) flushPendingPolls();
282
- return [...canceledById.values()];
283
- }
284
-
285
- return {
286
- buildAgentAction: buildManualApplyAgentAction,
287
- cancelPendingEvents,
288
- clearTransaction: (transactionId = null) => clearManualApplyTransaction(projectCwd(), transactionId),
289
- countOps: countManualApplyOps,
290
- getDeferred,
291
- hasTimedOutId,
292
- pruneStaleEvidence,
293
- pushBatchInChunksAndWait,
294
- readTransaction: () => readManualApplyTransaction(projectCwd()),
295
- rejectDeferred,
296
- resolveDeferred,
297
- rollbackTimedOutReply,
298
- rollbackTransaction: (opts = {}) => rollbackManualApplyTransaction({
299
- cwd: projectCwd(),
300
- recordManualEditActivity,
301
- ...opts,
302
- }),
303
- summarizeEvent: (event = {}, batch = event.batch) => summarizeManualApplyEvent(event, batch, projectCwd()),
304
- validateResultMessage: validateManualApplyResultMessage,
305
- writeTransaction: (opts = {}) => writeManualApplyTransaction({ cwd: projectCwd(), ...opts }),
306
- };
307
- }
308
-
309
- export function manualEditApplyChunkSize(env = process.env) {
310
- const raw = Number(env.MONODESIGN_LIVE_MANUAL_EDIT_CHUNK_SIZE);
311
- if (!Number.isFinite(raw)) return DEFAULT_MANUAL_EDIT_APPLY_CHUNK_SIZE;
312
- const size = Math.trunc(raw);
313
- return Math.max(MIN_MANUAL_EDIT_APPLY_CHUNK_SIZE, Math.min(MAX_MANUAL_EDIT_APPLY_CHUNK_SIZE, size));
314
- }
315
-
316
- export function countManualApplyOps(entriesOrBatch) {
317
- const entries = Array.isArray(entriesOrBatch)
318
- ? entriesOrBatch
319
- : Array.isArray(entriesOrBatch?.entries) ? entriesOrBatch.entries : [];
320
- let count = 0;
321
- for (const entry of entries) count += Array.isArray(entry.ops) ? entry.ops.length : 0;
322
- return count;
323
- }
324
-
325
- export function writeManualApplyEvidence(eventId, batch, cwd = process.cwd()) {
326
- const dir = manualApplyEvidenceDir(cwd);
327
- fs.mkdirSync(dir, { recursive: true });
328
- const evidencePath = path.join(dir, `${eventId}.json`);
329
- fs.writeFileSync(evidencePath, `${JSON.stringify(batch, null, 2)}\n`, 'utf-8');
330
- return evidencePath;
331
- }
332
-
333
- export function manualApplyEvidenceDir(cwd = process.cwd()) {
334
- return path.join(getLiveDir(cwd), 'manual-edit-evidence');
335
- }
336
-
337
- export function normalizeManualApplyEvidencePath(evidencePath, cwd = process.cwd()) {
338
- if (!evidencePath || typeof evidencePath !== 'string') return null;
339
- const fullPath = path.isAbsolute(evidencePath) ? evidencePath : path.resolve(cwd, evidencePath);
340
- const evidenceDir = manualApplyEvidenceDir(cwd);
341
- const relative = path.relative(evidenceDir, fullPath).split(path.sep).join('/');
342
- if (!relative || relative.startsWith('..') || path.isAbsolute(relative)) return null;
343
- if (path.extname(relative) !== '.json') return null;
344
- return fullPath;
345
- }
346
-
347
- export function removeManualApplyEvidence(evidencePath, cwd = process.cwd()) {
348
- const fullPath = normalizeManualApplyEvidencePath(evidencePath, cwd);
349
- if (!fullPath) return false;
350
- try {
351
- fs.unlinkSync(fullPath);
352
- return true;
353
- } catch {
354
- return false;
355
- }
356
- }
357
-
358
- export function compactManualApplyBatch(batch = {}, cwd = process.cwd()) {
359
- const entries = (batch.entries || []).map(compactManualApplyEntry);
360
- const candidates = compactManualApplyCandidates(batch.candidates || [], cwd);
361
- return {
362
- version: batch.version,
363
- pageUrl: batch.pageUrl || null,
364
- count: batch.count,
365
- entries,
366
- ops: entries.flatMap((entry) => entry.ops.map((op) => ({ ...op, entryId: entry.id }))),
367
- candidates: candidates.length > 0 ? candidates : undefined,
368
- context: batch.context ? {
369
- bufferPath: batch.context.bufferPath,
370
- totalEntries: batch.context.totalEntries,
371
- totalOps: batch.context.totalOps,
372
- chunkIndex: batch.context.chunkIndex,
373
- chunkTotal: batch.context.chunkTotal,
374
- totalApplyOps: batch.context.totalApplyOps,
375
- } : undefined,
376
- };
377
- }
378
-
379
- export function compactManualApplyCandidates(candidates, cwd = process.cwd()) {
380
- return (Array.isArray(candidates) ? candidates : [])
381
- .slice(0, 24)
382
- .map((candidate) => ({
383
- entryId: candidate.entryId,
384
- ref: candidate.ref,
385
- sourceHint: compactManualApplySourceMatch(candidate.sourceHint, cwd),
386
- textMatches: compactManualApplySourceMatches(candidate.textMatches, 8, cwd),
387
- objectKeyMatches: compactManualApplySourceMatches(candidate.objectKeyMatches, 8, cwd),
388
- contextTextMatches: compactManualApplySourceMatches(candidate.contextTextMatches, 8, cwd),
389
- locatorMatches: compactManualApplySourceMatches(candidate.locatorMatches, 6, cwd),
390
- }));
391
- }
392
-
393
- function compactManualApplySourceMatches(matches, limit, cwd) {
394
- return (Array.isArray(matches) ? matches : [])
395
- .slice(0, limit)
396
- .map((match) => compactManualApplySourceMatch(match, cwd))
397
- .filter(Boolean);
398
- }
399
-
400
- function compactManualApplySourceMatch(match, cwd) {
401
- if (!match || typeof match !== 'object') return null;
402
- const file = match.relativeFile || match.file;
403
- if (!file && !match.line) return null;
404
- return {
405
- file: summarizeManualLogFile(file, cwd),
406
- line: match.line || null,
407
- column: match.column || null,
408
- reason: match.reason || match.kind || undefined,
409
- status: match.status || undefined,
410
- };
411
- }
412
-
413
- function compactManualApplyEntry(entry = {}) {
414
- return {
415
- id: entry.id,
416
- pageUrl: entry.pageUrl,
417
- stagedAt: entry.stagedAt || null,
418
- element: compactManualApplyContext(entry.element),
419
- ops: (entry.ops || []).map(compactManualApplyOp),
420
- };
421
- }
422
-
423
- function compactManualApplyOp(op = {}) {
424
- return {
425
- entryId: op.entryId,
426
- ref: op.ref,
427
- contextRef: op.contextRef,
428
- tag: op.tag,
429
- elementId: op.elementId,
430
- classes: Array.isArray(op.classes) ? op.classes : [],
431
- originalText: op.originalText,
432
- newText: op.newText,
433
- deleted: op.deleted === true || undefined,
434
- sourceHint: op.sourceHint || null,
435
- leaf: compactManualApplyContext(op.leaf),
436
- nearbyEditableTexts: compactNearbyManualEditTexts(op.nearbyEditableTexts),
437
- container: compactManualApplyContext(op.container),
438
- contextHints: Array.isArray(op.contextHints) ? op.contextHints.slice(0, 8) : undefined,
439
- };
440
- }
441
-
442
- function compactManualApplyContext(value) {
443
- if (!value || typeof value !== 'object') return null;
444
- return {
445
- ref: value.ref,
446
- tagName: value.tagName || value.tag || null,
447
- id: value.id || null,
448
- classes: Array.isArray(value.classes) ? value.classes : [],
449
- textContent: truncateManualApplyText(value.textContent, MANUAL_APPLY_COMPACT_TEXT_LIMIT),
450
- };
451
- }
452
-
453
- function compactNearbyManualEditTexts(items) {
454
- return (Array.isArray(items) ? items : [])
455
- .slice(0, MANUAL_APPLY_COMPACT_NEARBY_LIMIT)
456
- .map((item) => typeof item === 'string' ? { text: truncateManualApplyText(item, MANUAL_APPLY_COMPACT_TEXT_LIMIT) } : {
457
- ref: item?.ref,
458
- tag: item?.tag,
459
- classes: Array.isArray(item?.classes) ? item.classes : [],
460
- text: truncateManualApplyText(item?.text, MANUAL_APPLY_COMPACT_TEXT_LIMIT),
461
- });
462
- }
463
-
464
- function truncateManualApplyText(value, max) {
465
- if (typeof value !== 'string') return value || null;
466
- return value.length > max ? value.slice(0, max) : value;
467
- }
468
-
469
- function normalizeApplyChunkResult(result) {
470
- const status = result?.status === 'partial' ? 'partial' : result?.status === 'error' ? 'error' : 'done';
471
- return {
472
- status,
473
- message: typeof result?.message === 'string' ? result.message : null,
474
- appliedEntryIds: Array.isArray(result?.appliedEntryIds) ? result.appliedEntryIds.filter((id) => typeof id === 'string') : [],
475
- failed: Array.isArray(result?.failed) ? result.failed.filter(Boolean) : [],
476
- files: Array.isArray(result?.files) ? result.files.filter((file) => typeof file === 'string') : [],
477
- notes: Array.isArray(result?.notes) ? result.notes.filter((note) => typeof note === 'string') : [],
478
- };
479
- }
480
-
481
- function manualApplyResultShapeHint(eventId = 'EVENT_ID') {
482
- return `Use live-poll.mjs --reply ${eventId} done --data '{"status":"done","appliedEntryIds":["ENTRY_ID"],"failed":[],"files":["src/page.html"],"notes":[]}'`;
483
- }
484
-
485
- function invalidManualApplyResult(reason, eventId, extra = {}) {
486
- return {
487
- ok: false,
488
- body: {
489
- error: 'invalid_manual_apply_result',
490
- reason,
491
- hint: manualApplyResultShapeHint(eventId),
492
- ...extra,
493
- },
494
- };
495
- }
496
-
497
- export function validateManualApplyResultMessage(msg, deferred) {
498
- const data = msg?.data;
499
- const eventId = msg?.id || deferred?.event?.id || 'EVENT_ID';
500
- if (!data || typeof data !== 'object' || Array.isArray(data)) {
501
- return invalidManualApplyResult('missing_result_data', eventId);
502
- }
503
- if ('entries' in data || 'ops' in data) {
504
- return invalidManualApplyResult('summary_result_not_allowed', eventId);
505
- }
506
- if (!['done', 'partial', 'error'].includes(data.status)) {
507
- return invalidManualApplyResult('invalid_status', eventId, { status: data.status ?? null });
508
- }
509
-
510
- for (const key of ['appliedEntryIds', 'failed', 'files', 'notes']) {
511
- if (!Array.isArray(data[key])) {
512
- return invalidManualApplyResult(`${key}_must_be_array`, eventId);
513
- }
514
- }
515
-
516
- for (const [index, value] of data.appliedEntryIds.entries()) {
517
- if (typeof value !== 'string' || !value) {
518
- return invalidManualApplyResult('appliedEntryIds_must_contain_strings', eventId, { index });
519
- }
520
- }
521
- for (const [index, value] of data.files.entries()) {
522
- if (typeof value !== 'string' || !value) {
523
- return invalidManualApplyResult('files_must_contain_strings', eventId, { index });
524
- }
525
- }
526
- for (const [index, value] of data.notes.entries()) {
527
- if (typeof value !== 'string') {
528
- return invalidManualApplyResult('notes_must_contain_strings', eventId, { index });
529
- }
530
- }
531
- for (const [index, item] of data.failed.entries()) {
532
- if (!item || typeof item !== 'object' || Array.isArray(item)) {
533
- return invalidManualApplyResult('failed_must_contain_objects', eventId, { index });
534
- }
535
- if (typeof item.entryId !== 'string' || !item.entryId) {
536
- return invalidManualApplyResult('failed_entryId_required', eventId, { index });
537
- }
538
- if (typeof item.reason !== 'string' || !item.reason) {
539
- return invalidManualApplyResult('failed_reason_required', eventId, { index });
540
- }
541
- }
542
-
543
- const eventEntryIds = new Set((deferred?.batch?.entries || []).map((entry) => entry.id).filter(Boolean));
544
- for (const entryId of data.appliedEntryIds) {
545
- if (eventEntryIds.size > 0 && !eventEntryIds.has(entryId)) {
546
- return invalidManualApplyResult('applied_entry_id_not_in_event', eventId, { entryId });
547
- }
548
- }
549
- for (const item of data.failed) {
550
- if (eventEntryIds.size > 0 && !eventEntryIds.has(item.entryId)) {
551
- return invalidManualApplyResult('failed_entry_id_not_in_event', eventId, { entryId: item.entryId });
552
- }
553
- }
554
-
555
- if (data.status === 'done') {
556
- if (data.failed.length > 0) {
557
- return invalidManualApplyResult('done_result_has_failed_entries', eventId);
558
- }
559
- if (countManualApplyOps(deferred?.batch) > 0 && data.appliedEntryIds.length === 0) {
560
- return invalidManualApplyResult('done_result_missing_applied_entry_ids', eventId);
561
- }
562
- }
563
- if (data.status === 'partial' && data.appliedEntryIds.length === 0 && data.failed.length === 0) {
564
- return invalidManualApplyResult('partial_result_has_no_entries', eventId);
565
- }
566
- if (data.status === 'error' && data.appliedEntryIds.length > 0) {
567
- return invalidManualApplyResult('error_result_has_applied_entries', eventId);
568
- }
569
-
570
- return {
571
- ok: true,
572
- result: {
573
- status: data.status,
574
- message: typeof data.message === 'string' ? data.message : undefined,
575
- appliedEntryIds: data.appliedEntryIds,
576
- failed: data.failed,
577
- files: data.files,
578
- notes: data.notes,
579
- },
580
- };
581
- }
582
-
583
- function firstFailureReason(result) {
584
- const first = Array.isArray(result?.failed) ? result.failed.find(Boolean) : null;
585
- return first?.reason || first?.message || null;
586
- }
587
-
588
- function markChunkEntriesFailed(failedByEntry, chunk, reason) {
589
- for (const entryId of chunk.entryIds) {
590
- if (failedByEntry.has(entryId)) continue;
591
- failedByEntry.set(entryId, { entryId, reason, candidates: [] });
592
- }
593
- }
594
-
595
- export function splitManualApplyBatch(batch, maxOps) {
596
- const totalOpCount = countManualApplyOps(batch);
597
- if (totalOpCount <= maxOps) {
598
- return [{
599
- batch,
600
- meta: null,
601
- entryIds: new Set((batch?.entries || []).map((entry) => entry.id).filter(Boolean)),
602
- opCountsByEntry: new Map((batch?.entries || []).map((entry) => [entry.id, Array.isArray(entry.ops) ? entry.ops.length : 0])),
603
- }];
604
- }
605
-
606
- const rawChunks = [];
607
- let current = createManualApplyChunkBuilder();
608
- for (const entry of batch?.entries || []) {
609
- const ops = entry.ops || [];
610
- if (ops.length <= maxOps) {
611
- if (current.opCount > 0 && current.opCount + ops.length > maxOps) {
612
- rawChunks.push(current);
613
- current = createManualApplyChunkBuilder();
614
- }
615
- for (const op of ops) addOpToManualApplyChunk(current, entry, op);
616
- continue;
617
- }
618
- if (current.opCount > 0) {
619
- rawChunks.push(current);
620
- current = createManualApplyChunkBuilder();
621
- }
622
- for (const op of ops) {
623
- if (current.opCount >= maxOps) {
624
- rawChunks.push(current);
625
- current = createManualApplyChunkBuilder();
626
- }
627
- addOpToManualApplyChunk(current, entry, op);
628
- }
629
- }
630
- if (current.opCount > 0) rawChunks.push(current);
631
-
632
- return rawChunks.map((chunk, index) => ({
633
- batch: {
634
- ...batch,
635
- count: chunk.opCount,
636
- entries: chunk.entries,
637
- ops: chunk.ops,
638
- candidates: filterManualApplyChunkCandidates(batch, chunk.refsByEntry),
639
- context: {
640
- ...(batch?.context || {}),
641
- totalEntries: chunk.entries.length,
642
- totalOps: chunk.opCount,
643
- chunkIndex: index + 1,
644
- chunkTotal: rawChunks.length,
645
- totalApplyOps: totalOpCount,
646
- },
647
- },
648
- meta: {
649
- index: index + 1,
650
- total: rawChunks.length,
651
- opCount: chunk.opCount,
652
- totalOpCount,
653
- },
654
- entryIds: new Set(chunk.entries.map((entry) => entry.id).filter(Boolean)),
655
- opCountsByEntry: chunk.opCountsByEntry,
656
- }));
657
- }
658
-
659
- function createManualApplyChunkBuilder() {
660
- return {
661
- entries: [],
662
- entryById: new Map(),
663
- entryIds: new Set(),
664
- ops: [],
665
- refsByEntry: new Map(),
666
- opCountsByEntry: new Map(),
667
- opCount: 0,
668
- };
669
- }
670
-
671
- function addOpToManualApplyChunk(chunk, entry, op) {
672
- let chunkEntry = chunk.entryById.get(entry.id);
673
- if (!chunkEntry) {
674
- chunkEntry = { ...entry, ops: [] };
675
- chunk.entryById.set(entry.id, chunkEntry);
676
- chunk.entryIds.add(entry.id);
677
- chunk.entries.push(chunkEntry);
678
- }
679
- chunkEntry.ops.push(op);
680
- chunk.ops.push({ ...op, entryId: op.entryId || entry.id });
681
- if (!chunk.refsByEntry.has(entry.id)) chunk.refsByEntry.set(entry.id, new Set());
682
- if (op.ref) chunk.refsByEntry.get(entry.id).add(op.ref);
683
- chunk.opCountsByEntry.set(entry.id, (chunk.opCountsByEntry.get(entry.id) || 0) + 1);
684
- chunk.opCount += 1;
685
- }
686
-
687
- function filterManualApplyChunkCandidates(batch, refsByEntry) {
688
- return (batch?.candidates || []).filter((candidate) => {
689
- const refs = refsByEntry.get(candidate.entryId);
690
- if (!refs) return false;
691
- if (!candidate.ref) return true;
692
- return refs.has(candidate.ref);
693
- });
694
- }
695
-
696
- export function snapshotApplyEventFiles(batch, cwd = process.cwd()) {
697
- const snapshot = new Map();
698
- for (const relativeFile of collectManualApplyFiles(batch, [], cwd)) {
699
- const absolute = path.resolve(cwd, relativeFile);
700
- try {
701
- snapshot.set(relativeFile, {
702
- exists: fs.existsSync(absolute),
703
- content: fs.existsSync(absolute) ? fs.readFileSync(absolute, 'utf-8') : '',
704
- });
705
- } catch {
706
- // If a file cannot be read before dispatch, do not attempt late rollback.
707
- }
708
- }
709
- return snapshot;
710
- }
711
-
712
- export function manualApplyTransactionPath(cwd = process.cwd()) {
713
- return path.join(getLiveDir(cwd), 'manual-edit-apply-transaction.json');
714
- }
715
-
716
- export function readManualApplyTransaction(cwd = process.cwd()) {
717
- const file = manualApplyTransactionPath(cwd);
718
- if (!fs.existsSync(file)) return null;
719
- try {
720
- return JSON.parse(fs.readFileSync(file, 'utf-8'));
721
- } catch {
722
- return null;
723
- }
724
- }
725
-
726
- export function writeManualApplyTransaction({ cwd = process.cwd(), pageUrl = null, batch }) {
727
- const file = manualApplyTransactionPath(cwd);
728
- const files = collectManualApplyFiles(batch, [], cwd);
729
- const transaction = {
730
- version: 1,
731
- id: randomUUID().replace(/-/g, '').slice(0, 8),
732
- createdAt: new Date().toISOString(),
733
- pageUrl,
734
- entryIds: (batch?.entries || []).map((entry) => entry.id).filter(Boolean),
735
- files: files.map((relativeFile) => {
736
- const absolute = path.resolve(cwd, relativeFile);
737
- const exists = fs.existsSync(absolute);
738
- return {
739
- file: relativeFile,
740
- exists,
741
- content: exists ? fs.readFileSync(absolute, 'utf-8') : '',
742
- };
743
- }),
744
- };
745
- fs.mkdirSync(path.dirname(file), { recursive: true });
746
- fs.writeFileSync(`${file}.tmp`, `${JSON.stringify(transaction, null, 2)}\n`, 'utf-8');
747
- fs.renameSync(`${file}.tmp`, file);
748
- return transaction;
749
- }
750
-
751
- export function clearManualApplyTransaction(cwd = process.cwd(), transactionId = null) {
752
- const file = manualApplyTransactionPath(cwd);
753
- if (!fs.existsSync(file)) return false;
754
- if (transactionId) {
755
- const existing = readManualApplyTransaction(cwd);
756
- if (existing?.id && existing.id !== transactionId) return false;
757
- }
758
- try {
759
- fs.unlinkSync(file);
760
- return true;
761
- } catch {
762
- return false;
763
- }
764
- }
765
-
766
- export function rollbackManualApplyTransaction({
767
- cwd = process.cwd(),
768
- pageUrl = null,
769
- reason = 'manual_edit_transaction_rollback',
770
- recordManualEditActivity = null,
771
- } = {}) {
772
- const transaction = readManualApplyTransaction(cwd);
773
- if (!transaction) return null;
774
- if (pageUrl && transaction.pageUrl && transaction.pageUrl !== pageUrl) return null;
775
-
776
- let pendingIds = new Set();
777
- try {
778
- const buffer = readManualEditsBuffer(cwd);
779
- pendingIds = new Set((buffer.entries || []).map((entry) => entry.id).filter(Boolean));
780
- } catch {
781
- pendingIds = new Set(transaction.entryIds || []);
782
- }
783
- const shouldRollback = (transaction.entryIds || []).some((id) => pendingIds.has(id));
784
- if (!shouldRollback) {
785
- clearManualApplyTransaction(cwd, transaction.id);
786
- return { id: transaction.id, reason, rolledBackFiles: [], rollbackFailures: [], skipped: 'entries_not_pending' };
787
- }
788
-
789
- const rolledBackFiles = [];
790
- const rollbackFailures = [];
791
- for (const item of transaction.files || []) {
792
- const relativeFile = normalizeProjectFile(item.file, cwd);
793
- if (!relativeFile) continue;
794
- const absolute = path.resolve(cwd, relativeFile);
795
- try {
796
- if (item.exists) {
797
- fs.mkdirSync(path.dirname(absolute), { recursive: true });
798
- fs.writeFileSync(absolute, item.content || '', 'utf-8');
799
- } else if (fs.existsSync(absolute)) {
800
- fs.rmSync(absolute);
801
- }
802
- rolledBackFiles.push(relativeFile);
803
- } catch (err) {
804
- rollbackFailures.push({ file: relativeFile, reason: 'restore_failed', message: err.message || String(err) });
805
- }
806
- }
807
- clearManualApplyTransaction(cwd, transaction.id);
808
- recordManualEditActivity?.('manual_edit_transaction_rolled_back', {
809
- id: transaction.id,
810
- pageUrl: transaction.pageUrl || null,
811
- reason,
812
- entryIds: transaction.entryIds || [],
813
- rolledBackFiles: rolledBackFiles.map((file) => summarizeManualLogFile(file, cwd)).filter(Boolean),
814
- rollbackFailures: summarizeManualDiagnostics(rollbackFailures, cwd),
815
- });
816
- return { id: transaction.id, reason, rolledBackFiles, rollbackFailures };
817
- }
818
-
819
- export function collectManualApplyFiles(batch, extraFiles = [], cwd = process.cwd()) {
820
- const files = [];
821
- for (const entry of batch?.entries || []) {
822
- for (const op of entry.ops || []) files.push(op.sourceHint?.file);
823
- }
824
- for (const candidate of batch?.candidates || []) {
825
- files.push(candidate.sourceHint?.relativeFile, candidate.sourceHint?.file);
826
- for (const item of candidate.textMatches || []) files.push(item.file);
827
- for (const item of candidate.objectKeyMatches || []) files.push(item.file);
828
- for (const item of candidate.locatorMatches || []) files.push(item.file);
829
- for (const item of candidate.contextTextMatches || []) files.push(item.file);
830
- }
831
- files.push(...(extraFiles || []));
832
- return [...new Set(files)]
833
- .map((file) => normalizeProjectFile(file, cwd))
834
- .filter(Boolean);
835
- }
836
-
837
- function normalizeProjectFile(file, cwd = process.cwd()) {
838
- if (!file || typeof file !== 'string') return null;
839
- const absolute = path.isAbsolute(file) ? file : path.resolve(cwd, file);
840
- const relative = path.relative(cwd, absolute).split(path.sep).join('/');
841
- if (!relative || relative.startsWith('..') || path.isAbsolute(relative)) return null;
842
- return relative;
843
- }
844
-
845
- export function rollbackApplySnapshot(
846
- batch,
847
- rollbackSnapshot,
848
- extraFiles = [],
849
- _reason = 'manual_edit_apply_snapshot_rollback',
850
- cwd = process.cwd(),
851
- ) {
852
- const scope = collectManualApplyFiles(batch, extraFiles, cwd);
853
- const rolledBackFiles = [];
854
- const rollbackFailures = [];
855
- for (const relativeFile of scope) {
856
- const before = rollbackSnapshot?.get(relativeFile);
857
- if (!before) continue;
858
- const absolute = path.resolve(cwd, relativeFile);
859
- try {
860
- if (before.exists) {
861
- fs.mkdirSync(path.dirname(absolute), { recursive: true });
862
- fs.writeFileSync(absolute, before.content, 'utf-8');
863
- } else if (fs.existsSync(absolute)) {
864
- fs.rmSync(absolute);
865
- }
866
- rolledBackFiles.push(relativeFile);
867
- } catch (err) {
868
- rollbackFailures.push({ file: relativeFile, reason: 'restore_failed', message: err.message || String(err) });
869
- }
870
- }
871
- return { rolledBackFiles, rollbackFailures };
872
- }
873
-
874
- function manualApplyReplyCommand(eventOrId = 'EVENT_ID') {
875
- const id = typeof eventOrId === 'string' ? eventOrId : eventOrId?.id || 'EVENT_ID';
876
- return `live-poll.mjs --reply ${id} done --data '<json>'`;
877
- }
878
-
879
- export function buildManualApplyAgentAction(eventOrId = 'EVENT_ID') {
880
- return {
881
- kind: 'manual_edit_apply',
882
- required: 'apply_source_edits_then_reply',
883
- replyCommand: manualApplyReplyCommand(eventOrId),
884
- warning: 'Polling only leases this work item; it does not commit source edits.',
885
- };
886
- }
887
-
888
- export function summarizeManualApplyEvent(event = {}, batch = event.batch, cwd = process.cwd()) {
889
- const entries = Array.isArray(batch?.entries) ? batch.entries : [];
890
- const opCount = entries.reduce((sum, entry) => sum + (Array.isArray(entry.ops) ? entry.ops.length : 0), 0);
891
- return {
892
- pageUrl: event.pageUrl || null,
893
- chunk: event.chunk || null,
894
- entryCount: entries.length,
895
- opCount,
896
- files: collectManualApplyFiles(batch, [], cwd),
897
- };
898
- }
899
-
900
- export function summarizeManualApplyFailures(failed, cwd = process.cwd()) {
901
- if (!Array.isArray(failed)) return [];
902
- return failed.slice(0, 20).map((item) => ({
903
- id: item.id || item.entryId || null,
904
- reason: item.reason || item.message || 'failed',
905
- message: compactManualLogText(item.message, 300),
906
- files: Array.isArray(item.files) ? item.files.slice(0, 12).map((file) => summarizeManualLogFile(file, cwd)).filter(Boolean) : undefined,
907
- checks: summarizeManualDiagnostics(item.checks, cwd),
908
- failures: summarizeManualDiagnostics(item.failures, cwd),
909
- candidates: summarizeManualDiagnostics(item.candidates, cwd),
910
- }));
911
- }
912
-
913
- export function summarizeManualDiagnostics(items, cwd = process.cwd()) {
914
- if (!Array.isArray(items) || items.length === 0) return undefined;
915
- return items.slice(0, 12).map((item) => ({
916
- reason: item.reason || item.kind || undefined,
917
- detail: compactManualLogText(item.detail, 220),
918
- message: compactManualLogText(item.message, 300),
919
- file: summarizeManualLogFile(item.file || item.relativeFile, cwd),
920
- line: item.line || undefined,
921
- ref: compactManualLogText(item.ref, 180),
922
- marker: compactManualLogText(item.marker, 120),
923
- files: Array.isArray(item.files) ? item.files.slice(0, 8).map((file) => summarizeManualLogFile(file, cwd)).filter(Boolean) : undefined,
924
- }));
925
- }
926
-
927
- export function summarizeManualLogFile(file, cwd = process.cwd()) {
928
- if (!file || typeof file !== 'string') return undefined;
929
- if (!path.isAbsolute(file)) return file;
930
- const relative = path.relative(cwd, file).split(path.sep).join('/');
931
- return relative && !relative.startsWith('..') && !path.isAbsolute(relative) ? relative : file;
932
- }
933
-
934
- export function compactManualLogText(value, max = 200) {
935
- if (typeof value !== 'string') return undefined;
936
- const normalized = value.replace(/\s+/g, ' ').trim();
937
- if (normalized.length <= max) return normalized;
938
- return `${normalized.slice(0, max)}... [truncated ${normalized.length - max} chars]`;
939
- }