@amsterdamdatalabs/enact-extensions 0.1.42 → 0.1.47

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 (580) hide show
  1. package/README.md +67 -108
  2. package/bundled-extensions.json +6 -0
  3. package/dist/create/enact.d.ts.map +1 -1
  4. package/dist/create/enact.js +2 -0
  5. package/dist/create/enact.js.map +1 -1
  6. package/dist/create/index.d.ts +3 -0
  7. package/dist/create/index.d.ts.map +1 -1
  8. package/dist/create/index.js +6 -0
  9. package/dist/create/index.js.map +1 -1
  10. package/dist/create/kimi.d.ts +16 -0
  11. package/dist/create/kimi.d.ts.map +1 -0
  12. package/dist/create/kimi.js +87 -0
  13. package/dist/create/kimi.js.map +1 -0
  14. package/dist/create/opencode.d.ts +129 -0
  15. package/dist/create/opencode.d.ts.map +1 -0
  16. package/dist/create/opencode.js +696 -0
  17. package/dist/create/opencode.js.map +1 -0
  18. package/dist/index.d.ts +12 -16
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +10 -10
  21. package/dist/index.js.map +1 -1
  22. package/dist/internal/agents.d.ts +11 -1
  23. package/dist/internal/agents.d.ts.map +1 -1
  24. package/dist/internal/agents.js +119 -3
  25. package/dist/internal/agents.js.map +1 -1
  26. package/dist/internal/extensions-table.d.ts +58 -0
  27. package/dist/internal/extensions-table.d.ts.map +1 -0
  28. package/dist/internal/extensions-table.js +134 -0
  29. package/dist/internal/extensions-table.js.map +1 -0
  30. package/dist/internal/file-ops.d.ts +36 -0
  31. package/dist/internal/file-ops.d.ts.map +1 -0
  32. package/dist/internal/file-ops.js +89 -0
  33. package/dist/internal/file-ops.js.map +1 -0
  34. package/dist/internal/hooks.d.ts +56 -0
  35. package/dist/internal/hooks.d.ts.map +1 -0
  36. package/dist/internal/hooks.js +128 -0
  37. package/dist/internal/hooks.js.map +1 -0
  38. package/dist/internal/json-merge.d.ts +63 -0
  39. package/dist/internal/json-merge.d.ts.map +1 -0
  40. package/dist/internal/json-merge.js +122 -0
  41. package/dist/internal/json-merge.js.map +1 -0
  42. package/dist/internal/lock-ownership.d.ts +41 -0
  43. package/dist/internal/lock-ownership.d.ts.map +1 -0
  44. package/dist/internal/lock-ownership.js +24 -0
  45. package/dist/internal/lock-ownership.js.map +1 -0
  46. package/dist/internal/platform.d.ts.map +1 -1
  47. package/dist/internal/platform.js +90 -4
  48. package/dist/internal/platform.js.map +1 -1
  49. package/dist/internal/schema.js.map +1 -1
  50. package/dist/internal/toml-block.d.ts +59 -0
  51. package/dist/internal/toml-block.d.ts.map +1 -0
  52. package/dist/internal/toml-block.js +113 -0
  53. package/dist/internal/toml-block.js.map +1 -0
  54. package/dist/internal/types.d.ts +2 -1
  55. package/dist/internal/types.d.ts.map +1 -1
  56. package/dist/projection.d.ts +47 -0
  57. package/dist/projection.d.ts.map +1 -0
  58. package/dist/projection.js +180 -0
  59. package/dist/projection.js.map +1 -0
  60. package/dist/validate/index.d.ts +9 -4
  61. package/dist/validate/index.d.ts.map +1 -1
  62. package/dist/validate/index.js +56 -7
  63. package/dist/validate/index.js.map +1 -1
  64. package/dist/validate/kimi.d.ts +3 -0
  65. package/dist/validate/kimi.d.ts.map +1 -0
  66. package/dist/validate/kimi.js +11 -0
  67. package/dist/validate/kimi.js.map +1 -0
  68. package/dist/validate/opencode.d.ts +3 -0
  69. package/dist/validate/opencode.d.ts.map +1 -0
  70. package/dist/validate/opencode.js +11 -0
  71. package/dist/validate/opencode.js.map +1 -0
  72. package/dist/validate/run.d.ts +39 -0
  73. package/dist/validate/run.d.ts.map +1 -0
  74. package/dist/validate/run.js +63 -0
  75. package/dist/validate/run.js.map +1 -0
  76. package/extensions/enact-loop/.agents/plugin.json +12 -8
  77. package/extensions/enact-loop/scripts/validate.mjs +84 -2
  78. package/extensions/enact-loop/skills/enact-loop/SKILL.md +36 -466
  79. package/extensions/enact-loop/skills/enact-loop/references/loop-contract.md +114 -0
  80. package/extensions/enact-loop/skills/loop-budget/SKILL.md +43 -26
  81. package/extensions/enact-loop/skills/loop-intake/SKILL.md +44 -32
  82. package/extensions/enact-repo/.agents/plugin.json +55 -0
  83. package/extensions/enact-repo/.mcp.json +20 -0
  84. package/extensions/enact-repo/README.md +90 -0
  85. package/extensions/enact-repo/hooks/hooks.json +98 -0
  86. package/extensions/enact-repo/lean-ctx/config.toml +35 -0
  87. package/extensions/enact-repo/lean-ctx/layout.toml +5 -0
  88. package/extensions/enact-repo/skills/aca-sandboxes/SKILL.md +53 -0
  89. package/extensions/enact-repo/skills/aca-sandboxes/references/capabilities.md +52 -0
  90. package/extensions/enact-repo/skills/aca-sandboxes/references/install.md +87 -0
  91. package/extensions/enact-repo/skills/aca-sandboxes/references/prerequisites.md +52 -0
  92. package/extensions/enact-repo/skills/aca-sandboxes/references/quickstart.md +164 -0
  93. package/extensions/enact-repo/skills/aca-sandboxes/references/reference-advanced.md +251 -0
  94. package/extensions/enact-repo/skills/aca-sandboxes/references/reference.md +287 -0
  95. package/extensions/enact-repo/skills/aca-sandboxes/references/response-cues.md +71 -0
  96. package/extensions/enact-repo/skills/aca-sandboxes/references/scenarios.md +219 -0
  97. package/extensions/enact-repo/skills/aca-sandboxes/version.json +4 -0
  98. package/extensions/enact-repo/skills/backend-remove-deadcode/SKILL.md +96 -0
  99. package/extensions/enact-repo/skills/cmux-leader/SKILL.md +61 -0
  100. package/extensions/enact-repo/skills/cmux-send/SKILL.md +61 -0
  101. package/extensions/enact-repo/skills/code-review/SKILL.md +100 -0
  102. package/extensions/enact-repo/skills/codebase-design/SKILL.md +98 -0
  103. package/extensions/enact-repo/skills/codebase-design/references/DEEPENING.md +37 -0
  104. package/extensions/enact-repo/skills/codebase-design/references/DESIGN-IT-TWICE.md +44 -0
  105. package/extensions/enact-repo/skills/codebase-design/references/TESTABILITY.md +29 -0
  106. package/extensions/enact-repo/skills/computer-use/SKILL.md +76 -0
  107. package/extensions/enact-repo/skills/debug-issue/SKILL.md +40 -0
  108. package/extensions/enact-repo/skills/diagnosing-bugs/SKILL.md +100 -0
  109. package/extensions/enact-repo/skills/diagnosing-bugs/references/FEEDBACK-LOOP-TACTICS.md +34 -0
  110. package/extensions/enact-repo/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
  111. package/extensions/enact-repo/skills/domain-modeling/SKILL.md +86 -0
  112. package/extensions/enact-repo/skills/domain-modeling/references/ADR-FORMAT.md +47 -0
  113. package/extensions/enact-repo/skills/domain-modeling/references/CONTEXT-FORMAT.md +60 -0
  114. package/extensions/enact-repo/skills/explore-codebase/SKILL.md +41 -0
  115. package/extensions/enact-repo/skills/frontend-design/LICENSE.txt +177 -0
  116. package/extensions/enact-repo/skills/frontend-design/SKILL.md +56 -0
  117. package/extensions/enact-repo/skills/grill-me/SKILL.md +20 -0
  118. package/extensions/enact-repo/skills/grill-with-docs/SKILL.md +20 -0
  119. package/extensions/enact-repo/skills/handoff/SKILL.md +28 -0
  120. package/extensions/enact-repo/skills/http-contract-migration/SKILL.md +74 -0
  121. package/extensions/enact-repo/skills/http-contract-migration/references/compatibility-and-gates.md +26 -0
  122. package/extensions/enact-repo/skills/http-contract-migration/references/hexagonal-boundary.md +16 -0
  123. package/extensions/enact-repo/skills/http-contract-migration/references/publication-and-adoption.md +31 -0
  124. package/extensions/enact-repo/skills/http-contract-migration/references/wire-fidelity-and-dto.md +31 -0
  125. package/extensions/enact-repo/skills/implement/SKILL.md +28 -0
  126. package/extensions/enact-repo/skills/improve-codebase-architecture/SKILL.md +80 -0
  127. package/extensions/enact-repo/skills/improve-codebase-architecture/references/HTML-REPORT.md +123 -0
  128. package/extensions/enact-repo/skills/interaction-design/SKILL.md +30 -0
  129. package/extensions/enact-repo/skills/interaction-design/references/Workflow.md +146 -0
  130. package/extensions/enact-repo/skills/interaction-design/references/animation-libraries-gsap.md +220 -0
  131. package/extensions/enact-repo/skills/interaction-design/references/animation-libraries-native.md +110 -0
  132. package/extensions/enact-repo/skills/interaction-design/references/animation-libraries.md +178 -0
  133. package/extensions/enact-repo/skills/interaction-design/references/interaction-patterns.md +166 -0
  134. package/extensions/enact-repo/skills/interaction-design/references/microinteraction-patterns-advanced.md +285 -0
  135. package/extensions/enact-repo/skills/interaction-design/references/microinteraction-patterns.md +254 -0
  136. package/extensions/enact-repo/skills/interaction-design/references/scroll-animations-reveals.md +213 -0
  137. package/extensions/enact-repo/skills/interaction-design/references/scroll-animations.md +209 -0
  138. package/extensions/enact-repo/skills/lean-ctx/SKILL.md +81 -0
  139. package/extensions/enact-repo/skills/orca-cli/SKILL.md +88 -0
  140. package/extensions/enact-repo/skills/orchestration/SKILL.md +80 -0
  141. package/extensions/enact-repo/skills/prototype/SKILL.md +37 -0
  142. package/extensions/enact-repo/skills/prototype/references/LOGIC.md +79 -0
  143. package/extensions/enact-repo/skills/prototype/references/UI.md +112 -0
  144. package/extensions/enact-repo/skills/refactor-safely/SKILL.md +44 -0
  145. package/extensions/enact-repo/skills/remove-deadcode/SKILL.md +54 -0
  146. package/extensions/enact-repo/skills/research/SKILL.md +27 -0
  147. package/extensions/enact-repo/skills/resolving-merge-conflicts/SKILL.md +28 -0
  148. package/extensions/enact-repo/skills/review-changes/SKILL.md +45 -0
  149. package/extensions/enact-repo/skills/tailwind-4-docs/SKILL.md +88 -0
  150. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/accent-color.mdx +149 -0
  151. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/adding-custom-styles.mdx +635 -0
  152. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/align-content.mdx +300 -0
  153. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/align-items.mdx +241 -0
  154. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/align-self.mdx +294 -0
  155. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/animation.mdx +286 -0
  156. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/appearance.mdx +180 -0
  157. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/aspect-ratio.mdx +98 -0
  158. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/backdrop-filter-blur.mdx +109 -0
  159. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/backdrop-filter-brightness.mdx +82 -0
  160. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/backdrop-filter-contrast.mdx +82 -0
  161. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/backdrop-filter-grayscale.mdx +99 -0
  162. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/backdrop-filter-hue-rotate.mdx +173 -0
  163. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/backdrop-filter-invert.mdx +99 -0
  164. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/backdrop-filter-opacity.mdx +103 -0
  165. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/backdrop-filter-saturate.mdx +98 -0
  166. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/backdrop-filter-sepia.mdx +95 -0
  167. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/backdrop-filter.mdx +113 -0
  168. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/backface-visibility.mdx +110 -0
  169. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/background-attachment.mdx +126 -0
  170. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/background-blend-mode.mdx +79 -0
  171. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/background-clip.mdx +85 -0
  172. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/background-color.mdx +176 -0
  173. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/background-image.mdx +349 -0
  174. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/background-origin.mdx +64 -0
  175. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/background-position.mdx +171 -0
  176. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/background-repeat.mdx +127 -0
  177. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/background-size.mdx +100 -0
  178. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/block-size.mdx +190 -0
  179. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/border-collapse.mdx +181 -0
  180. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/border-color.mdx +316 -0
  181. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/border-radius.mdx +347 -0
  182. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/border-spacing.mdx +117 -0
  183. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/border-style.mdx +129 -0
  184. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/border-width.mdx +344 -0
  185. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/box-decoration-break.mdx +71 -0
  186. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/box-shadow.mdx +497 -0
  187. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/box-sizing.mdx +175 -0
  188. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/break-after.mdx +38 -0
  189. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/break-before.mdx +38 -0
  190. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/break-inside.mdx +34 -0
  191. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/caption-side.mdx +190 -0
  192. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/caret-color.mdx +66 -0
  193. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/clear.mdx +224 -0
  194. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/color-scheme.mdx +81 -0
  195. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/color.mdx +125 -0
  196. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/colors.mdx +927 -0
  197. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/columns.mdx +310 -0
  198. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/compatibility.mdx +193 -0
  199. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/content.mdx +129 -0
  200. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/cursor.mdx +104 -0
  201. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/dark-mode.mdx +191 -0
  202. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/detecting-classes-in-source-files.mdx +315 -0
  203. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/display.mdx +523 -0
  204. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/editor-setup.mdx +90 -0
  205. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/field-sizing.mdx +75 -0
  206. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/fill.mdx +100 -0
  207. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/filter-blur.mdx +114 -0
  208. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/filter-brightness.mdx +102 -0
  209. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/filter-contrast.mdx +102 -0
  210. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/filter-drop-shadow.mdx +230 -0
  211. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/filter-grayscale.mdx +101 -0
  212. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/filter-hue-rotate.mdx +171 -0
  213. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/filter-invert.mdx +93 -0
  214. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/filter-saturate.mdx +109 -0
  215. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/filter-sepia.mdx +92 -0
  216. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/filter.mdx +113 -0
  217. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/flex-basis.mdx +144 -0
  218. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/flex-direction.mdx +130 -0
  219. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/flex-grow.mdx +129 -0
  220. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/flex-shrink.mdx +95 -0
  221. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/flex-wrap.mdx +118 -0
  222. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/flex.mdx +164 -0
  223. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/float.mdx +197 -0
  224. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/font-family.mdx +119 -0
  225. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/font-feature-settings.mdx +52 -0
  226. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/font-size.mdx +184 -0
  227. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/font-smoothing.mdx +67 -0
  228. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/font-stretch.mdx +138 -0
  229. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/font-style.mdx +62 -0
  230. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/font-variant-numeric.mdx +228 -0
  231. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/font-weight.mdx +105 -0
  232. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/forced-color-adjust.mdx +152 -0
  233. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/functions-and-directives.mdx +322 -0
  234. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/gap.mdx +100 -0
  235. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/grid-auto-columns.mdx +43 -0
  236. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/grid-auto-flow.mdx +58 -0
  237. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/grid-auto-rows.mdx +43 -0
  238. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/grid-column.mdx +124 -0
  239. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/grid-row.mdx +115 -0
  240. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/grid-template-columns.mdx +101 -0
  241. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/grid-template-rows.mdx +108 -0
  242. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/height.mdx +260 -0
  243. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/hover-focus-and-other-states.mdx +4935 -0
  244. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/hyphens.mdx +112 -0
  245. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/inline-size.mdx +191 -0
  246. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/isolation.mdx +30 -0
  247. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/justify-content.mdx +348 -0
  248. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/justify-items.mdx +286 -0
  249. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/justify-self.mdx +282 -0
  250. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/letter-spacing.mdx +100 -0
  251. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/line-clamp.mdx +110 -0
  252. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/line-height.mdx +147 -0
  253. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/list-style-image.mdx +80 -0
  254. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/list-style-position.mdx +67 -0
  255. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/list-style-type.mdx +86 -0
  256. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/margin.mdx +397 -0
  257. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/mask-clip.mdx +66 -0
  258. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/mask-composite.mdx +70 -0
  259. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/mask-image.mdx +933 -0
  260. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/mask-mode.mdx +114 -0
  261. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/mask-origin.mdx +66 -0
  262. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/mask-position.mdx +117 -0
  263. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/mask-repeat.mdx +169 -0
  264. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/mask-size.mdx +104 -0
  265. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/mask-type.mdx +98 -0
  266. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/max-block-size.mdx +153 -0
  267. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/max-height.mdx +164 -0
  268. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/max-inline-size.mdx +185 -0
  269. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/max-width.mdx +214 -0
  270. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/min-block-size.mdx +146 -0
  271. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/min-height.mdx +150 -0
  272. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/min-inline-size.mdx +153 -0
  273. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/min-width.mdx +153 -0
  274. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/mix-blend-mode.mdx +103 -0
  275. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/object-fit.mdx +147 -0
  276. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/object-position.mdx +182 -0
  277. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/opacity.mdx +84 -0
  278. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/order.mdx +94 -0
  279. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/outline-color.mdx +130 -0
  280. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/outline-offset.mdx +72 -0
  281. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/outline-style.mdx +134 -0
  282. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/outline-width.mdx +91 -0
  283. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/overflow-wrap.mdx +130 -0
  284. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/overflow.mdx +665 -0
  285. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/overscroll-behavior.mdx +151 -0
  286. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/padding.mdx +232 -0
  287. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/perspective-origin.mdx +127 -0
  288. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/perspective.mdx +137 -0
  289. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/place-content.mdx +257 -0
  290. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/place-items.mdx +269 -0
  291. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/place-self.mdx +257 -0
  292. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/pointer-events.mdx +101 -0
  293. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/position.mdx +399 -0
  294. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/preflight.mdx +291 -0
  295. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/resize.mdx +110 -0
  296. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/responsive-design.mdx +666 -0
  297. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/rotate.mdx +291 -0
  298. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/scale.mdx +360 -0
  299. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/scroll-behavior.mdx +39 -0
  300. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/scroll-margin.mdx +268 -0
  301. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/scroll-padding.mdx +255 -0
  302. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/scroll-snap-align.mdx +281 -0
  303. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/scroll-snap-stop.mdx +198 -0
  304. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/scroll-snap-type.mdx +284 -0
  305. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/skew.mdx +352 -0
  306. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/stroke-width.mdx +74 -0
  307. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/stroke.mdx +103 -0
  308. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/styling-with-utility-classes.mdx +1020 -0
  309. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/table-layout.mdx +212 -0
  310. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/text-align.mdx +162 -0
  311. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/text-decoration-color.mdx +155 -0
  312. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/text-decoration-line.mdx +143 -0
  313. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/text-decoration-style.mdx +75 -0
  314. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/text-decoration-thickness.mdx +75 -0
  315. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/text-indent.mdx +74 -0
  316. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/text-overflow.mdx +103 -0
  317. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/text-shadow.mdx +177 -0
  318. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/text-transform.mdx +106 -0
  319. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/text-underline-offset.mdx +74 -0
  320. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/text-wrap.mdx +144 -0
  321. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/theme.mdx +1142 -0
  322. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/top-right-bottom-left.mdx +296 -0
  323. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/touch-action.mdx +95 -0
  324. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/transform-origin.mdx +130 -0
  325. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/transform-style.mdx +110 -0
  326. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/transform.mdx +51 -0
  327. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/transition-behavior.mdx +76 -0
  328. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/transition-delay.mdx +76 -0
  329. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/transition-duration.mdx +82 -0
  330. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/transition-property.mdx +137 -0
  331. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/transition-timing-function.mdx +89 -0
  332. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/translate.mdx +487 -0
  333. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/upgrade-guide.mdx +910 -0
  334. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/user-select.mdx +114 -0
  335. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/vertical-align.mdx +194 -0
  336. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/visibility.mdx +287 -0
  337. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/white-space.mdx +211 -0
  338. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/width.mdx +264 -0
  339. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/will-change.mdx +47 -0
  340. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/word-break.mdx +94 -0
  341. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs/z-index.mdx +104 -0
  342. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs-catalog.md +251 -0
  343. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs-index.tsx +237 -0
  344. package/extensions/enact-repo/skills/tailwind-4-docs/references/docs-source.txt +6 -0
  345. package/extensions/enact-repo/skills/tailwind-4-docs/references/gotchas.md +18 -0
  346. package/extensions/enact-repo/skills/tailwind-4-docs/scripts/sync_tailwind_docs.py +183 -0
  347. package/extensions/enact-repo/skills/tdd/SKILL.md +49 -0
  348. package/extensions/enact-repo/skills/tdd/references/mocking.md +59 -0
  349. package/extensions/enact-repo/skills/tdd/references/tests.md +77 -0
  350. package/extensions/enact-repo/skills/teach/SKILL.md +88 -0
  351. package/extensions/enact-repo/skills/teach/references/GLOSSARY-FORMAT.md +35 -0
  352. package/extensions/enact-repo/skills/teach/references/LEARNING-RECORD-FORMAT.md +46 -0
  353. package/extensions/enact-repo/skills/teach/references/MISSION-FORMAT.md +31 -0
  354. package/extensions/enact-repo/skills/teach/references/PHILOSOPHY.md +65 -0
  355. package/extensions/enact-repo/skills/teach/references/RESOURCES-FORMAT.md +32 -0
  356. package/extensions/enact-repo/skills/testing/SKILL.md +54 -0
  357. package/extensions/enact-repo/skills/to-spec/SKILL.md +85 -0
  358. package/extensions/enact-repo/skills/to-tickets/SKILL.md +75 -0
  359. package/extensions/enact-repo/skills/to-tickets/references/TICKET-TEMPLATES.md +39 -0
  360. package/extensions/enact-repo/skills/triage/SKILL.md +99 -0
  361. package/extensions/enact-repo/skills/triage/references/AGENT-BRIEF.md +207 -0
  362. package/extensions/enact-repo/skills/triage/references/NEEDS-INFO-TEMPLATE.md +17 -0
  363. package/extensions/enact-repo/skills/triage/references/OUT-OF-SCOPE.md +105 -0
  364. package/extensions/enact-repo/skills/ui-ux-pro-max/SKILL.md +32 -0
  365. package/extensions/enact-repo/skills/ui-ux-pro-max/references/Workflow.md +207 -0
  366. package/extensions/enact-repo/skills/ui-ux-pro-max/references/workflow-reference.md +175 -0
  367. package/extensions/enact-repo/skills/wayfinder/SKILL.md +100 -0
  368. package/extensions/enact-repo/skills/wayfinder/references/TEMPLATES.md +35 -0
  369. package/extensions/enact-repo/skills/wayfinder/references/TICKET-TYPES.md +8 -0
  370. package/extensions/enact-repo/skills/writing-great-skills/SKILL.md +93 -0
  371. package/extensions/enact-repo/skills/writing-great-skills/references/GLOSSARY.md +201 -0
  372. package/package.json +18 -14
  373. package/scripts/enact-extensions.mjs +255 -878
  374. package/scripts/lib/allowed-plugins.mjs +52 -0
  375. package/scripts/lib/run-repo-doctor.mjs +571 -0
  376. package/scripts/lib/run-repo-install.mjs +1579 -0
  377. package/scripts/lib/run-sync.mjs +1 -1
  378. package/scripts/lib/run-validate.mjs +23 -37
  379. package/scripts/lib/skill-validator.mjs +872 -0
  380. package/spec/enact.json +21 -3
  381. package/spec/enact.md +13 -12
  382. package/spec/kimi.json +100 -0
  383. package/spec/opencode.json +64 -0
  384. package/dist/install.d.ts +0 -235
  385. package/dist/install.d.ts.map +0 -1
  386. package/dist/install.js +0 -697
  387. package/dist/install.js.map +0 -1
  388. package/dist/internal/claude.d.ts +0 -65
  389. package/dist/internal/claude.d.ts.map +0 -1
  390. package/dist/internal/claude.js +0 -200
  391. package/dist/internal/claude.js.map +0 -1
  392. package/dist/internal/codex.d.ts +0 -43
  393. package/dist/internal/codex.d.ts.map +0 -1
  394. package/dist/internal/codex.js +0 -211
  395. package/dist/internal/codex.js.map +0 -1
  396. package/dist/internal/cursor.d.ts +0 -2
  397. package/dist/internal/cursor.d.ts.map +0 -1
  398. package/dist/internal/cursor.js +0 -6
  399. package/dist/internal/cursor.js.map +0 -1
  400. package/dist/principles.d.ts +0 -28
  401. package/dist/principles.d.ts.map +0 -1
  402. package/dist/principles.js +0 -159
  403. package/dist/principles.js.map +0 -1
  404. package/dist/provision.d.ts +0 -30
  405. package/dist/provision.d.ts.map +0 -1
  406. package/dist/provision.js +0 -202
  407. package/dist/provision.js.map +0 -1
  408. package/extensions/dev-state/.agents/plugin.json +0 -36
  409. package/extensions/dev-state/skills/dev-state-plan-graduation/SKILL.md +0 -194
  410. package/extensions/dev-state/skills/dev-state-plan-graduation/agents/openai.yaml +0 -4
  411. package/extensions/dev-state/skills/dev-state-plan-graduation/references/reference.md +0 -130
  412. package/extensions/enact-context/.agents/plugin.json +0 -41
  413. package/extensions/enact-context/.mcp.json +0 -8
  414. package/extensions/enact-context/README.md +0 -25
  415. package/extensions/enact-context/assets/icon.png +0 -0
  416. package/extensions/enact-context/assets/logo.png +0 -0
  417. package/extensions/enact-context/hooks/hooks.json +0 -115
  418. package/extensions/enact-context/skills/enact-context/SKILL.md +0 -151
  419. package/extensions/enact-context/skills/enact-context/scripts/install.sh +0 -69
  420. package/extensions/enact-core/.agents/plugin.json +0 -40
  421. package/extensions/enact-core/OPERATING-PRINCIPLES.md +0 -7
  422. package/extensions/enact-core/hooks/hooks.json +0 -26
  423. package/extensions/enact-evolve/.agents/plugin.json +0 -47
  424. package/extensions/enact-evolve/agents/evolve-session-analyst.toml +0 -37
  425. package/extensions/enact-evolve/assets/icon.png +0 -0
  426. package/extensions/enact-evolve/assets/logo.png +0 -0
  427. package/extensions/enact-evolve/skills/mined-investigate-loop/SKILL.md +0 -68
  428. package/extensions/enact-evolve/skills/session-analysis/SKILL.md +0 -98
  429. package/extensions/enact-evolve/skills/session-analysis/scripts/run-evolve-analysis.sh +0 -343
  430. package/extensions/enact-factory/.agents/plugin.json +0 -49
  431. package/extensions/enact-factory/.mcp.json +0 -8
  432. package/extensions/enact-factory/agents/architect.toml +0 -34
  433. package/extensions/enact-factory/agents/code-reviewer.toml +0 -33
  434. package/extensions/enact-factory/agents/critic.toml +0 -39
  435. package/extensions/enact-factory/agents/executor.toml +0 -26
  436. package/extensions/enact-factory/agents/explore.toml +0 -25
  437. package/extensions/enact-factory/agents/planner.toml +0 -26
  438. package/extensions/enact-factory/agents/verifier.toml +0 -33
  439. package/extensions/enact-factory/assets/icon.png +0 -0
  440. package/extensions/enact-factory/assets/logo.png +0 -0
  441. package/extensions/enact-factory/skills/advisor/SKILL.md +0 -82
  442. package/extensions/enact-factory/skills/ai-slop-cleaner/SKILL.md +0 -57
  443. package/extensions/enact-factory/skills/autonomous-runner/SKILL.md +0 -353
  444. package/extensions/enact-factory/skills/azdo-ci-strategy/SKILL.md +0 -309
  445. package/extensions/enact-factory/skills/azdo-ci-strategy/references/build-failures.md +0 -60
  446. package/extensions/enact-factory/skills/azdo-ci-strategy/references/cli-reference.md +0 -87
  447. package/extensions/enact-factory/skills/azdo-ci-strategy/references/policies-and-pipelines.md +0 -132
  448. package/extensions/enact-factory/skills/azdo-ci-strategy/references/troubleshooting.md +0 -53
  449. package/extensions/enact-factory/skills/cmux-leader/SKILL.md +0 -74
  450. package/extensions/enact-factory/skills/cmux-send/SKILL.md +0 -50
  451. package/extensions/enact-factory/skills/committee/SKILL.md +0 -80
  452. package/extensions/enact-factory/skills/deep-interview/SKILL.md +0 -68
  453. package/extensions/enact-factory/skills/deslop-handover/SKILL.md +0 -97
  454. package/extensions/enact-factory/skills/deslop-handover/deslop.py +0 -181
  455. package/extensions/enact-factory/skills/drive-loop/SKILL.md +0 -394
  456. package/extensions/enact-factory/skills/drive-loop/references/contract-schema.md +0 -127
  457. package/extensions/enact-factory/skills/handoff/SKILL.md +0 -75
  458. package/extensions/enact-factory/skills/hyperplan/SKILL.md +0 -59
  459. package/extensions/enact-factory/skills/looplan/SKILL.md +0 -120
  460. package/extensions/enact-factory/skills/paseo-dispatch/SKILL.md +0 -141
  461. package/extensions/enact-factory/skills/plan/SKILL.md +0 -103
  462. package/extensions/enact-factory/skills/remove-deadcode/SKILL.md +0 -46
  463. package/extensions/enact-factory/skills/research/SKILL.md +0 -83
  464. package/extensions/enact-factory/skills/review/SKILL.md +0 -67
  465. package/extensions/enact-factory/skills/security-research/SKILL.md +0 -57
  466. package/extensions/enact-factory/skills/tdd/SKILL.md +0 -62
  467. package/extensions/enact-factory/skills/testing-strategy/SKILL.md +0 -172
  468. package/extensions/enact-factory/skills/trace/SKILL.md +0 -42
  469. package/extensions/enact-factory/skills/ultraqa/SKILL.md +0 -85
  470. package/extensions/enact-factory/skills/work-with-workitem/SKILL.md +0 -56
  471. package/extensions/enact-factory/skills/workitem-triage/SKILL.md +0 -42
  472. package/extensions/enact-wiki/.agents/plugin.json +0 -43
  473. package/extensions/enact-wiki/.mcp.json +0 -15
  474. package/extensions/enact-wiki/README.md +0 -44
  475. package/extensions/enact-wiki/assets/icon.png +0 -0
  476. package/extensions/enact-wiki/assets/logo.png +0 -0
  477. package/extensions/enact-wiki/skills/document-parser/SKILL.md +0 -17
  478. package/extensions/enact-wiki/skills/document-parser/scripts/parse.sh +0 -60
  479. package/extensions/enact-wiki/skills/document-parser/skill.json +0 -9
  480. package/extensions/enact-wiki/skills/enact-wiki/SKILL.md +0 -30
  481. package/extensions/enact-wiki/skills/enact-wiki/references/ingest.md +0 -62
  482. package/extensions/enact-wiki/skills/enact-wiki/references/manage.md +0 -34
  483. package/extensions/enact-wiki/skills/enact-wiki/references/query.md +0 -59
  484. package/extensions/enact-wiki/skills/search-lab/SKILL.md +0 -57
  485. package/extensions/enact-wiki/skills/search-lab/scripts/analyze.ts +0 -23
  486. package/extensions/enact-wiki/skills/wiki/SKILL.md +0 -42
  487. package/extensions/net-revenue-management/.agents/plugin.json +0 -40
  488. package/extensions/net-revenue-management/.mcp.json +0 -9
  489. package/extensions/net-revenue-management/skills/net-revenue-risks/SKILL.md +0 -30
  490. package/extensions/net-revenue-management/skills/net-revenue-scenario/SKILL.md +0 -31
  491. package/extensions/plugin-dev/.agents/plugin.json +0 -41
  492. package/extensions/plugin-dev/agents/agent-creator.md +0 -199
  493. package/extensions/plugin-dev/agents/plugin-validator.md +0 -91
  494. package/extensions/plugin-dev/agents/skill-reviewer.md +0 -212
  495. package/extensions/plugin-dev/skills/agent-development/SKILL.md +0 -641
  496. package/extensions/plugin-dev/skills/agent-development/examples/agent-creation-prompt.md +0 -250
  497. package/extensions/plugin-dev/skills/agent-development/examples/complete-agent-examples.md +0 -461
  498. package/extensions/plugin-dev/skills/agent-development/references/advanced-agent-fields.md +0 -246
  499. package/extensions/plugin-dev/skills/agent-development/references/agent-creation-system-prompt.md +0 -216
  500. package/extensions/plugin-dev/skills/agent-development/references/permission-modes-rules.md +0 -226
  501. package/extensions/plugin-dev/skills/agent-development/references/system-prompt-design.md +0 -464
  502. package/extensions/plugin-dev/skills/agent-development/references/triggering-examples.md +0 -474
  503. package/extensions/plugin-dev/skills/agent-development/scripts/create-agent-skeleton.sh +0 -176
  504. package/extensions/plugin-dev/skills/agent-development/scripts/test-agent-trigger.sh +0 -227
  505. package/extensions/plugin-dev/skills/agent-development/scripts/validate-agent.sh +0 -227
  506. package/extensions/plugin-dev/skills/create-plugin/SKILL.md +0 -505
  507. package/extensions/plugin-dev/skills/hook-development/SKILL.md +0 -861
  508. package/extensions/plugin-dev/skills/hook-development/examples/load-context.sh +0 -55
  509. package/extensions/plugin-dev/skills/hook-development/examples/validate-bash.sh +0 -57
  510. package/extensions/plugin-dev/skills/hook-development/examples/validate-write.sh +0 -48
  511. package/extensions/plugin-dev/skills/hook-development/references/advanced.md +0 -871
  512. package/extensions/plugin-dev/skills/hook-development/references/hook-input-schemas.md +0 -145
  513. package/extensions/plugin-dev/skills/hook-development/references/migration.md +0 -392
  514. package/extensions/plugin-dev/skills/hook-development/references/patterns.md +0 -430
  515. package/extensions/plugin-dev/skills/hook-development/scripts/README.md +0 -181
  516. package/extensions/plugin-dev/skills/hook-development/scripts/hook-linter.sh +0 -153
  517. package/extensions/plugin-dev/skills/hook-development/scripts/test-hook.sh +0 -276
  518. package/extensions/plugin-dev/skills/hook-development/scripts/validate-hook-schema.sh +0 -159
  519. package/extensions/plugin-dev/skills/mcp-integration/SKILL.md +0 -775
  520. package/extensions/plugin-dev/skills/mcp-integration/examples/http-server.json +0 -20
  521. package/extensions/plugin-dev/skills/mcp-integration/examples/sse-server.json +0 -19
  522. package/extensions/plugin-dev/skills/mcp-integration/examples/stdio-server.json +0 -38
  523. package/extensions/plugin-dev/skills/mcp-integration/examples/ws-server.json +0 -26
  524. package/extensions/plugin-dev/skills/mcp-integration/references/authentication.md +0 -601
  525. package/extensions/plugin-dev/skills/mcp-integration/references/server-discovery.md +0 -190
  526. package/extensions/plugin-dev/skills/mcp-integration/references/server-types.md +0 -572
  527. package/extensions/plugin-dev/skills/mcp-integration/references/tool-usage.md +0 -623
  528. package/extensions/plugin-dev/skills/plugin-dev-guide/SKILL.md +0 -221
  529. package/extensions/plugin-dev/skills/plugin-structure/SKILL.md +0 -705
  530. package/extensions/plugin-dev/skills/plugin-structure/examples/advanced-plugin.md +0 -774
  531. package/extensions/plugin-dev/skills/plugin-structure/examples/minimal-plugin.md +0 -83
  532. package/extensions/plugin-dev/skills/plugin-structure/examples/standard-plugin.md +0 -611
  533. package/extensions/plugin-dev/skills/plugin-structure/references/advanced-topics.md +0 -289
  534. package/extensions/plugin-dev/skills/plugin-structure/references/component-patterns.md +0 -592
  535. package/extensions/plugin-dev/skills/plugin-structure/references/github-actions.md +0 -233
  536. package/extensions/plugin-dev/skills/plugin-structure/references/headless-ci-mode.md +0 -193
  537. package/extensions/plugin-dev/skills/plugin-structure/references/manifest-reference.md +0 -625
  538. package/extensions/plugin-dev/skills/plugin-structure/references/output-styles.md +0 -116
  539. package/extensions/plugin-dev/skills/skill-development/SKILL.md +0 -562
  540. package/extensions/plugin-dev/skills/skill-development/examples/complete-skill.md +0 -465
  541. package/extensions/plugin-dev/skills/skill-development/examples/frontmatter-templates.md +0 -167
  542. package/extensions/plugin-dev/skills/skill-development/examples/minimal-skill.md +0 -111
  543. package/extensions/plugin-dev/skills/skill-development/references/advanced-frontmatter.md +0 -225
  544. package/extensions/plugin-dev/skills/skill-development/references/commands-vs-skills.md +0 -39
  545. package/extensions/plugin-dev/skills/skill-development/references/skill-creation-workflow.md +0 -379
  546. package/extensions/plugin-dev/skills/skill-development/references/skill-creator-original.md +0 -210
  547. package/extensions/plugin-dev/skills/start/SKILL.md +0 -82
  548. package/scripts/check-hooks.mjs +0 -174
  549. package/scripts/check-principles.mjs +0 -116
  550. package/scripts/hooks/session-start-drift-check.mjs +0 -49
  551. package/scripts/install.sh +0 -70
  552. package/scripts/lib/auto-update.mjs +0 -88
  553. package/scripts/lib/bundle-hash.mjs +0 -137
  554. package/scripts/lib/hooks.mjs +0 -585
  555. package/scripts/lib/ledger.mjs +0 -163
  556. package/scripts/lib/migrate-artifacts.mjs +0 -144
  557. package/scripts/lib/outdated.mjs +0 -144
  558. package/scripts/lib/postinstall-offer.mjs +0 -83
  559. package/scripts/lib/principles.mjs +0 -109
  560. package/scripts/lib/provision-mcp.mjs +0 -16
  561. package/scripts/lib/resolve-plugin-root.mjs +0 -9
  562. package/scripts/lib/run-install.mjs +0 -507
  563. package/scripts/lib/run-prune.mjs +0 -94
  564. package/scripts/lib/run-uninstall.mjs +0 -244
  565. package/scripts/lib/run-update.mjs +0 -165
  566. package/scripts/lib/serve.mjs +0 -472
  567. package/scripts/lib/ups-router.mjs +0 -392
  568. package/scripts/postinstall.mjs +0 -101
  569. package/scripts/setup-enact-context.sh +0 -28
  570. package/scripts/version-bump.sh +0 -484
  571. package/web/assets/README.md +0 -111
  572. package/web/assets/logo-full.png +0 -0
  573. package/web/assets/logo-slim.png +0 -0
  574. package/web/assets/tokens/base.css +0 -45
  575. package/web/assets/tokens/colors.css +0 -248
  576. package/web/assets/tokens/effects.css +0 -24
  577. package/web/assets/tokens/fonts.css +0 -8
  578. package/web/assets/tokens/index.css +0 -18
  579. package/web/assets/tokens/spacing.css +0 -50
  580. package/web/index.html +0 -1188
@@ -1,163 +0,0 @@
1
- import { appendFileSync, existsSync, mkdirSync, readFileSync } from "node:fs";
2
- import { homedir } from "node:os";
3
- import { dirname, join } from "node:path";
4
-
5
- /**
6
- * Install ledger — a JSONL record of install/uninstall events.
7
- *
8
- * There is exactly ONE ledger location — the GLOBAL file:
9
- * <home>/.enact/extensions/ledger.jsonl (home defaults to os.homedir())
10
- *
11
- * The local-vs-global install distinction is tracked PURELY as the `scope`
12
- * FIELD inside each entry (scope:"local" | scope:"global"); BOTH scopes write
13
- * to this single global ledger. The `home` override exists so tests never touch
14
- * the real ~/.enact.
15
- *
16
- * Entry shape: { ts, action, name, version, platform, scope, home, path, marketplaceName }
17
- *
18
- * All file I/O is best-effort: failures throw a catchable error so callers
19
- * (the install path) can swallow + warn rather than aborting an install.
20
- */
21
-
22
- /**
23
- * Resolve the on-disk ledger path. Always the single global file.
24
- * @param {object} [opts]
25
- * @param {string} [opts.home] - home dir. Defaults to os.homedir().
26
- * @returns {string}
27
- */
28
- export function ledgerPath({ home } = {}) {
29
- return join(home ?? homedir(), ".enact", "extensions", "ledger.jsonl");
30
- }
31
-
32
- /**
33
- * Append a single entry as one JSON line. Creates the parent dir if missing.
34
- * `ts` defaults to new Date().toISOString() when absent (an injected ts is kept).
35
- * Best-effort: throws a catchable error on I/O failure.
36
- *
37
- * @param {object} entry
38
- * @param {object} [opts] - { home }
39
- */
40
- export function appendEntry(entry, { home } = {}) {
41
- const record = { ts: entry.ts ?? new Date().toISOString(), ...entry };
42
- // Ensure ts wins even if entry has an explicit undefined.
43
- if (!record.ts) record.ts = new Date().toISOString();
44
- const path = ledgerPath({ home });
45
- mkdirSync(dirname(path), { recursive: true });
46
- appendFileSync(path, `${JSON.stringify(record)}\n`, "utf8");
47
- }
48
-
49
- /**
50
- * Read and parse all entries from the single global ledger.
51
- * Missing file → []. Malformed lines are skipped with a stderr warning.
52
- *
53
- * @param {object} [opts] - { home }
54
- * @returns {object[]}
55
- */
56
- export function readLedger({ home } = {}) {
57
- const path = ledgerPath({ home });
58
- if (!existsSync(path)) return [];
59
- let raw;
60
- try {
61
- raw = readFileSync(path, "utf8");
62
- } catch (err) {
63
- process.stderr.write(
64
- `[enact-extensions log] Warning: cannot read ledger ${path}: ${err instanceof Error ? err.message : String(err)}\n`,
65
- );
66
- return [];
67
- }
68
- const entries = [];
69
- for (const line of raw.split("\n")) {
70
- const trimmed = line.trim();
71
- if (!trimmed) continue;
72
- try {
73
- entries.push(JSON.parse(trimmed));
74
- } catch {
75
- process.stderr.write(
76
- `[enact-extensions log] Warning: skipping malformed ledger line in ${path}\n`,
77
- );
78
- }
79
- }
80
- return entries;
81
- }
82
-
83
- /**
84
- * Thin alias of {@link readLedger}, retained so existing callers keep working.
85
- * With the single-global ledger there is no merge to perform: global- and
86
- * local-scope entries are co-located in the one file.
87
- *
88
- * @param {object} [opts] - { home }
89
- * @returns {object[]}
90
- */
91
- export function readMerged({ home } = {}) {
92
- return readLedger({ home });
93
- }
94
-
95
- /**
96
- * Compute the current install state for `name` by replaying install/uninstall
97
- * events in ts order across the single global ledger. Returns the set of
98
- * still-installed targets as { platform, scope, home, path }.
99
- *
100
- * A target is keyed by platform+scope+home+path so the same plugin installed to
101
- * multiple platforms/homes is tracked independently.
102
- *
103
- * @param {string} name
104
- * @param {object} [opts] - { home }
105
- * @returns {{ platform: string, scope: string, home: string, path: string }[]}
106
- */
107
- export function findInstalled(name, { home } = {}) {
108
- const merged = readLedger({ home }).filter((e) => e && e.name === name);
109
- // Stable sort by ts (string ISO compares chronologically).
110
- merged.sort((a, b) => String(a.ts ?? "").localeCompare(String(b.ts ?? "")));
111
-
112
- const state = new Map();
113
- for (const e of merged) {
114
- const key = `${e.platform} ${e.scope} ${e.home ?? ""} ${e.path ?? ""}`;
115
- if (e.action === "install") {
116
- state.set(key, { platform: e.platform, scope: e.scope, home: e.home, path: e.path });
117
- } else if (e.action === "uninstall") {
118
- state.delete(key);
119
- }
120
- }
121
- return [...state.values()];
122
- }
123
-
124
- /**
125
- * Compute the current install state for ALL plugins by replaying install/uninstall
126
- * events in ts order across the single global ledger. Returns the set of
127
- * still-installed targets across all plugin names.
128
- *
129
- * Each returned entry carries the full ledger fields for the installed surface:
130
- * { name, version, platform, scope, home, path, hash, marketplaceName }
131
- *
132
- * A target is keyed by name+platform+scope+home+path so the same plugin installed
133
- * to multiple platforms/homes/names is tracked independently.
134
- *
135
- * @param {object} [opts] - { home }
136
- * @returns {{ name: string, version: string, platform: string, scope: string, home: string, path: string, hash: string|null, marketplaceName: string|null }[]}
137
- */
138
- export function listInstalled({ home } = {}) {
139
- const all = readLedger({ home });
140
- // Stable sort by ts (string ISO compares chronologically).
141
- all.sort((a, b) => String(a.ts ?? "").localeCompare(String(b.ts ?? "")));
142
-
143
- const state = new Map();
144
- for (const e of all) {
145
- if (!e || !e.name) continue;
146
- const key = `${e.name} ${e.platform ?? ""} ${e.scope ?? ""} ${e.home ?? ""} ${e.path ?? ""}`;
147
- if (e.action === "install") {
148
- state.set(key, {
149
- name: e.name,
150
- version: e.version ?? null,
151
- platform: e.platform,
152
- scope: e.scope,
153
- home: e.home,
154
- path: e.path,
155
- hash: e.hash ?? null,
156
- marketplaceName: e.marketplaceName ?? null,
157
- });
158
- } else if (e.action === "uninstall") {
159
- state.delete(key);
160
- }
161
- }
162
- return [...state.values()];
163
- }
@@ -1,144 +0,0 @@
1
- /**
2
- * Idempotent migration for global factory/loop markdown artifacts to YYMMDDHH-<slug>.md.
3
- */
4
-
5
- import { existsSync, readdirSync, renameSync, statSync } from "node:fs";
6
- import { join } from "node:path";
7
- import { homedir } from "node:os";
8
-
9
- const TIMESTAMPED_RE = /^(\d{8})-(.+\.md)$/;
10
- const ISO_DATE_RE = /^(20\d{2})-(\d{2})-(\d{2})-(.+)$/;
11
-
12
- export function timestampPrefixFromDate(date) {
13
- const yy = String(date.getFullYear()).slice(2);
14
- const mm = String(date.getMonth() + 1).padStart(2, "0");
15
- const dd = String(date.getDate()).padStart(2, "0");
16
- const hh = String(date.getHours()).padStart(2, "0");
17
- return `${yy}${mm}${dd}${hh}`;
18
- }
19
-
20
- export function targetNameForLegacy(fileName, mtimeMs, fallbackHour = "00") {
21
- if (TIMESTAMPED_RE.test(fileName)) return null;
22
-
23
- const iso = ISO_DATE_RE.exec(fileName);
24
- if (iso) {
25
- const [, yyyy, mm, dd, rest] = iso;
26
- return `${yyyy.slice(2)}${mm}${dd}${fallbackHour}-${rest}`;
27
- }
28
-
29
- const mtime = new Date(mtimeMs);
30
- return `${timestampPrefixFromDate(mtime)}-${fileName}`;
31
- }
32
-
33
- /**
34
- * @param {string} dir
35
- * @param {{ dryRun?: boolean, fallbackHour?: string }} [opts]
36
- */
37
- export function migrateMarkdownDir(dir, opts = {}) {
38
- const dryRun = Boolean(opts.dryRun);
39
- const fallbackHour = opts.fallbackHour ?? "00";
40
- const renamed = [];
41
- const skipped = [];
42
- const fallbacks = [];
43
-
44
- if (!existsSync(dir)) return { renamed, skipped, fallbacks };
45
-
46
- for (const name of readdirSync(dir)) {
47
- if (!name.endsWith(".md")) continue;
48
- if (TIMESTAMPED_RE.test(name)) {
49
- skipped.push(name);
50
- continue;
51
- }
52
-
53
- const target = targetNameForLegacy(name, statSync(join(dir, name)).mtimeMs, fallbackHour);
54
- if (!target || target === name) {
55
- skipped.push(name);
56
- continue;
57
- }
58
-
59
- const targetPath = join(dir, target);
60
- if (existsSync(targetPath)) {
61
- skipped.push(name);
62
- continue;
63
- }
64
-
65
- if (ISO_DATE_RE.test(name)) {
66
- fallbacks.push({ from: name, to: target, reason: "iso-date-hour-fallback" });
67
- }
68
-
69
- if (!dryRun) {
70
- renameSync(join(dir, name), targetPath);
71
- }
72
- renamed.push({ from: name, to: target });
73
- }
74
-
75
- return { renamed, skipped, fallbacks };
76
- }
77
-
78
- /**
79
- * @param {{ dryRun?: boolean, factoryRoot?: string, loopRoot?: string }} [opts]
80
- */
81
- export function migrateGlobalArtifacts(opts = {}) {
82
- const dryRun = Boolean(opts.dryRun);
83
- const factoryRoot = opts.factoryRoot ?? join(homedir(), ".enact", "factory", "projects");
84
- const loopRoot = opts.loopRoot ?? join(homedir(), ".enact", "loop", "projects");
85
- const report = {
86
- dryRun,
87
- factory: [],
88
- loop: [],
89
- fallbacks: [],
90
- };
91
-
92
- if (existsSync(factoryRoot)) {
93
- for (const project of readdirSync(factoryRoot, { withFileTypes: true })) {
94
- if (!project.isDirectory()) continue;
95
- const plansDir = join(factoryRoot, project.name, "plans");
96
- const researchDir = join(factoryRoot, project.name, "research");
97
- for (const dir of [plansDir, researchDir]) {
98
- const result = migrateMarkdownDir(dir, { dryRun });
99
- if (result.renamed.length || result.skipped.length) {
100
- report.factory.push({ project: project.name, dir, ...result });
101
- }
102
- report.fallbacks.push(...result.fallbacks.map((f) => ({ ...f, project: project.name, dir })));
103
- }
104
- }
105
- }
106
-
107
- if (existsSync(loopRoot)) {
108
- for (const project of readdirSync(loopRoot, { withFileTypes: true })) {
109
- if (!project.isDirectory()) continue;
110
- const stateDir = join(loopRoot, project.name, "state");
111
- const legacy = join(stateDir, "summary.md");
112
- if (!existsSync(legacy)) continue;
113
-
114
- const hasTimestamped = readdirSync(stateDir).some((name) =>
115
- /^\d{8}-loop-summary\.md$/.test(name),
116
- );
117
- if (hasTimestamped) {
118
- report.loop.push({
119
- project: project.name,
120
- dir: stateDir,
121
- renamed: [],
122
- skipped: ["summary.md"],
123
- fallbacks: [],
124
- });
125
- continue;
126
- }
127
-
128
- const mtime = statSync(legacy).mtimeMs;
129
- const target = `${timestampPrefixFromDate(new Date(mtime))}-loop-summary.md`;
130
- if (!dryRun) {
131
- renameSync(legacy, join(stateDir, target));
132
- }
133
- report.loop.push({
134
- project: project.name,
135
- dir: stateDir,
136
- renamed: [{ from: "summary.md", to: target }],
137
- skipped: [],
138
- fallbacks: [],
139
- });
140
- }
141
- }
142
-
143
- return report;
144
- }
@@ -1,144 +0,0 @@
1
- /**
2
- * outdated.mjs — compute freshness drift between installed plugins and their
3
- * canonical source bundles.
4
- *
5
- * computeOutdated({ home?, cwd? }) → OutdatedEntry[]
6
- *
7
- * For each currently-installed (plugin, platform, scope, home) surface from the
8
- * ledger, resolves the canonical source bundle (extensions/<name>) and classifies:
9
- *
10
- * fresh — canonical source exists and its hash matches the ledger's recorded hash.
11
- * outdated — canonical source exists but hash differs (or ledger hash is null/missing),
12
- * or the recorded version differs (future: not currently used for the flag,
13
- * but hash comparison is the primary signal).
14
- * orphaned — canonical source does NOT exist on disk; cannot refresh.
15
- *
16
- * Returns a sorted array of OutdatedEntry objects:
17
- * { name, platform, scope, home, status, installedHash, currentHash, version }
18
- *
19
- * Pure-ish: reads ledger + canonical bundle; no writes.
20
- */
21
-
22
- import { homedir } from "node:os";
23
- import { cwd as processCwd } from "node:process";
24
- import { bundleHash } from "./bundle-hash.mjs";
25
- import { listInstalled } from "./ledger.mjs";
26
- import { resolveBundlePath } from "./resolve-bundle.mjs";
27
-
28
- /**
29
- * @typedef {object} OutdatedEntry
30
- * @property {string} name
31
- * @property {string} platform
32
- * @property {string} scope
33
- * @property {string} home
34
- * @property {"fresh"|"outdated"|"orphaned"} status
35
- * @property {string|null} installedHash — hash recorded at install time (may be null)
36
- * @property {string|null} currentHash — hash of canonical source now (null if orphaned)
37
- * @property {string|null} version — version recorded in the ledger
38
- */
39
-
40
- /**
41
- * Safely compute the canonical bundle hash for a given bundle root.
42
- * Returns null on any error (missing manifest, I/O error, etc.).
43
- *
44
- * @param {string} bundleRoot
45
- * @returns {string|null}
46
- */
47
- function safeHash(bundleRoot) {
48
- try {
49
- return bundleHash(bundleRoot);
50
- } catch {
51
- return null;
52
- }
53
- }
54
-
55
- /**
56
- * Resolve the canonical bundle path for a plugin name.
57
- * Returns null when the canonical source cannot be found (so caller can
58
- * classify as orphaned rather than crashing).
59
- *
60
- * @param {string} name
61
- * @param {string} cwd
62
- * @returns {string|null}
63
- */
64
- function safeResolveBundlePath(name, cwd) {
65
- try {
66
- return resolveBundlePath(name, { cwd });
67
- } catch {
68
- return null;
69
- }
70
- }
71
-
72
- /**
73
- * Compute freshness status for all currently-installed plugin surfaces.
74
- *
75
- * @param {object} [opts]
76
- * @param {string} [opts.home] — ledger home override (defaults to os.homedir())
77
- * @param {string} [opts.cwd] — working directory for bundle resolution (defaults to process.cwd())
78
- * @returns {OutdatedEntry[]} sorted by name, then platform, then scope
79
- */
80
- export function computeOutdated({ home, cwd } = {}) {
81
- const resolvedHome = home ?? homedir();
82
- const resolvedCwd = cwd ?? processCwd();
83
-
84
- // Get all currently-installed entries (install replayed over uninstall).
85
- const installed = listInstalled({ home: resolvedHome });
86
-
87
- /** @type {OutdatedEntry[]} */
88
- const results = [];
89
-
90
- for (const entry of installed) {
91
- const { name, platform, scope, home: entryHome, version, hash: installedHash } = entry;
92
-
93
- // Resolve canonical source bundle for this plugin name.
94
- const canonicalPath = safeResolveBundlePath(name, resolvedCwd);
95
-
96
- if (!canonicalPath) {
97
- // Canonical source does not exist → orphaned.
98
- results.push({
99
- name,
100
- platform,
101
- scope,
102
- home: entryHome,
103
- status: "orphaned",
104
- installedHash: installedHash ?? null,
105
- currentHash: null,
106
- version: version ?? null,
107
- });
108
- continue;
109
- }
110
-
111
- // Canonical source exists — compute its current hash.
112
- const currentHash = safeHash(canonicalPath);
113
-
114
- let status;
115
- if (installedHash == null || currentHash == null || installedHash !== currentHash) {
116
- // No recorded hash, or canonical hash is uncomputable, or hashes differ.
117
- status = "outdated";
118
- } else {
119
- status = "fresh";
120
- }
121
-
122
- results.push({
123
- name,
124
- platform,
125
- scope,
126
- home: entryHome,
127
- status,
128
- installedHash: installedHash ?? null,
129
- currentHash,
130
- version: version ?? null,
131
- });
132
- }
133
-
134
- // Deterministic sort: name → platform → scope
135
- results.sort((a, b) => {
136
- const n = String(a.name ?? "").localeCompare(String(b.name ?? ""));
137
- if (n !== 0) return n;
138
- const p = String(a.platform ?? "").localeCompare(String(b.platform ?? ""));
139
- if (p !== 0) return p;
140
- return String(a.scope ?? "").localeCompare(String(b.scope ?? ""));
141
- });
142
-
143
- return results;
144
- }
@@ -1,83 +0,0 @@
1
- /**
2
- * postinstall-offer.mjs — interactive drift-refresh offer shown at postinstall.
3
- *
4
- * Exports ONE function:
5
- * offerDriftRefresh({ isTTY, computeOutdatedFn, promptYesNo, runUpdateFn, write })
6
- *
7
- * Contract:
8
- * - non-TTY → silent; return { offered: false, updated: false }
9
- * - TTY + zero outdated → silent; return { offered: false, updated: false }
10
- * - TTY + outdated entries → write summary, then:
11
- * - autoYes set → apply WITHOUT prompting; return { offered: true, updated: true }
12
- * - else prompt:
13
- * - user yes → runUpdateFn({ all: true }); return { offered: true, updated: true }
14
- * - user no → write manual command hint; return { offered: true, updated: false }
15
- * - Any error → fail-silent; return { offered: false, updated: false }
16
- * (except: if runUpdateFn throws after a yes answer,
17
- * return { offered: true, updated: false })
18
- *
19
- * `autoYes` is the USER's opt-in (callers derive it from
20
- * process.env.ENACT_EXTENSIONS_AUTO_UPDATE); this module never reads env itself.
21
- */
22
-
23
- /**
24
- * Offer the user a drift refresh if any installed plugins are outdated.
25
- *
26
- * @param {object} opts
27
- * @param {boolean} opts.isTTY - whether the terminal is interactive
28
- * @param {boolean} [opts.autoYes] - when true, apply without prompting (user opt-in)
29
- * @param {() => Promise<import("./outdated.mjs").OutdatedEntry[]>} opts.computeOutdatedFn
30
- * @param {(question: string) => Promise<boolean>} opts.promptYesNo
31
- * @param {(opts: { all: boolean }) => void | Promise<void>} opts.runUpdateFn
32
- * @param {(msg: string) => void} opts.write
33
- * @returns {Promise<{ offered: boolean, updated: boolean }>}
34
- */
35
- export async function offerDriftRefresh({ isTTY, autoYes, computeOutdatedFn, promptYesNo, runUpdateFn, write }) {
36
- try {
37
- // Non-interactive: exit immediately without any work.
38
- if (!isTTY) {
39
- return { offered: false, updated: false };
40
- }
41
-
42
- // Compute outdated entries and filter to status === "outdated" only.
43
- const entries = await computeOutdatedFn();
44
- const outdated = entries.filter((e) => e.status === "outdated");
45
-
46
- // Nothing to do.
47
- if (outdated.length === 0) {
48
- return { offered: false, updated: false };
49
- }
50
-
51
- // Write summary line listing the outdated name/platform pairs.
52
- const pairs = outdated.map((e) => `${e.name}/${e.platform}`).join(", ");
53
- write(`\nenact-extensions: ${outdated.length} plugin(s) have drifted from their source: ${pairs}\n`);
54
-
55
- // Opt-in auto-apply: skip the prompt and refresh directly.
56
- if (autoYes) {
57
- try {
58
- await runUpdateFn({ all: true });
59
- return { offered: true, updated: true };
60
- } catch {
61
- return { offered: true, updated: false };
62
- }
63
- }
64
-
65
- // Prompt user.
66
- const yes = await promptYesNo("Update all now? [Y/n] ");
67
-
68
- if (yes) {
69
- try {
70
- await runUpdateFn({ all: true });
71
- return { offered: true, updated: true };
72
- } catch {
73
- return { offered: true, updated: false };
74
- }
75
- } else {
76
- write(`Run \`enact-extensions update --all\` to update manually.\n`);
77
- return { offered: true, updated: false };
78
- }
79
- } catch {
80
- // Fail-silent: never throw from postinstall-related code.
81
- return { offered: false, updated: false };
82
- }
83
- }
@@ -1,109 +0,0 @@
1
- /**
2
- * principles.mjs — Operating-principles block injection for host agent files.
3
- *
4
- * Surfaces: claude, codex, cursor, enact
5
- * Writes managed blocks into CLAUDE.md / AGENTS.md (not settings.json).
6
- */
7
-
8
- import {
9
- applyBlock,
10
- checkBlock,
11
- removeBlock,
12
- renderBlock,
13
- resolveHostFile,
14
- SUPPORTED_PRINCIPLES_SURFACES,
15
- } from "../../dist/index.js";
16
-
17
- export { SUPPORTED_PRINCIPLES_SURFACES };
18
-
19
- /**
20
- * @param {string} surface
21
- * @param {object} [opts]
22
- * @returns {{ surface: string, path: string, result: string, action?: string }}
23
- */
24
- export function setupPrinciples(surface, opts = {}) {
25
- const hostFile = resolveHostFile(surface, opts);
26
- const block = renderBlock(opts.doctrinePath);
27
- const { action } = applyBlock(hostFile, block);
28
- return {
29
- surface,
30
- path: hostFile,
31
- result: action === "noop" ? "already_present" : "applied",
32
- action,
33
- };
34
- }
35
-
36
- /**
37
- * @param {string} surface
38
- * @param {object} [opts]
39
- * @returns {{ surface: string, path: string, result: string }}
40
- */
41
- export function removePrinciples(surface, opts = {}) {
42
- const hostFile = resolveHostFile(surface, opts);
43
- const { removed } = removeBlock(hostFile);
44
- return {
45
- surface,
46
- path: hostFile,
47
- result: removed ? "removed" : "not_found",
48
- };
49
- }
50
-
51
- /**
52
- * @param {string} surface
53
- * @param {object} [opts]
54
- * @returns {{ surface: string, path: string, status: string }}
55
- */
56
- export function checkPrinciples(surface, opts = {}) {
57
- const hostFile = resolveHostFile(surface, opts);
58
- const block = renderBlock(opts.doctrinePath);
59
- const status = checkBlock(hostFile, block);
60
- return { surface, path: hostFile, status };
61
- }
62
-
63
- /**
64
- * @param {string} surface
65
- * @param {object} [opts]
66
- * @returns {{ surface: string, path: string, status: string, action?: string, result?: string }}
67
- */
68
- export function fixPrinciples(surface, opts = {}) {
69
- const check = checkPrinciples(surface, opts);
70
- if (check.status === "present") {
71
- return { ...check, result: "already_present", action: "noop" };
72
- }
73
- const setup = setupPrinciples(surface, opts);
74
- const after = checkPrinciples(surface, opts);
75
- return {
76
- surface,
77
- path: setup.path,
78
- status: after.status,
79
- action: setup.action,
80
- result: setup.result,
81
- };
82
- }
83
-
84
- /**
85
- * @param {string[]} surfaces
86
- * @param {object} [opts]
87
- * @param {boolean} [opts.fix]
88
- * @returns {{ rows: object[], drift: boolean, exitCode: number }}
89
- */
90
- export function runDoctor(surfaces, opts = {}) {
91
- const rows = [];
92
- let exitCode = 0;
93
-
94
- for (const surface of surfaces) {
95
- try {
96
- const row = opts.fix ? fixPrinciples(surface, opts) : checkPrinciples(surface, opts);
97
- rows.push(row);
98
- if (row.status !== "present") {
99
- exitCode = 1;
100
- }
101
- } catch (err) {
102
- const message = err instanceof Error ? err.message : String(err);
103
- rows.push({ surface, path: "", status: "error", error: message });
104
- exitCode = 1;
105
- }
106
- }
107
-
108
- return { rows, drift: exitCode !== 0, exitCode };
109
- }
@@ -1,16 +0,0 @@
1
- /**
2
- * CLI/runtime wrapper over the typed library provisioning API.
3
- *
4
- * The script-layer helpers remain for backwards compatibility with tests and
5
- * the CLI wrapper, but the source of truth now lives in src/provision.ts and is
6
- * exported from dist/index.js for in-process consumers.
7
- */
8
- import {
9
- provisionMcp as provisionMcpCore,
10
- readMcpServers as readMcpServersCore,
11
- summarizeProvision as summarizeProvisionCore,
12
- } from "../../dist/index.js";
13
-
14
- export const readMcpServers = readMcpServersCore;
15
- export const provisionMcp = provisionMcpCore;
16
- export const summarizeProvision = summarizeProvisionCore;
@@ -1,9 +0,0 @@
1
- import { resolve } from "node:path";
2
- import { cwd } from "node:process";
3
-
4
- /**
5
- * Resolve plugin root: explicit path arg or current working directory.
6
- */
7
- export function resolvePluginRoot(pathArg) {
8
- return resolve(pathArg ?? cwd());
9
- }