@amsterdamdatalabs/enact-extensions 0.1.37 → 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 (577) 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 +12 -2
  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 +113 -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 +57 -0
  81. package/extensions/enact-loop/skills/loop-intake/SKILL.md +59 -0
  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 -873
  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/drive-loop/SKILL.md +0 -394
  454. package/extensions/enact-factory/skills/drive-loop/references/contract-schema.md +0 -127
  455. package/extensions/enact-factory/skills/handoff/SKILL.md +0 -75
  456. package/extensions/enact-factory/skills/hyperplan/SKILL.md +0 -59
  457. package/extensions/enact-factory/skills/looplan/SKILL.md +0 -120
  458. package/extensions/enact-factory/skills/plan/SKILL.md +0 -103
  459. package/extensions/enact-factory/skills/remove-deadcode/SKILL.md +0 -46
  460. package/extensions/enact-factory/skills/research/SKILL.md +0 -83
  461. package/extensions/enact-factory/skills/review/SKILL.md +0 -67
  462. package/extensions/enact-factory/skills/security-research/SKILL.md +0 -57
  463. package/extensions/enact-factory/skills/tdd/SKILL.md +0 -62
  464. package/extensions/enact-factory/skills/testing-strategy/SKILL.md +0 -172
  465. package/extensions/enact-factory/skills/trace/SKILL.md +0 -42
  466. package/extensions/enact-factory/skills/ultraqa/SKILL.md +0 -85
  467. package/extensions/enact-factory/skills/work-with-workitem/SKILL.md +0 -56
  468. package/extensions/enact-factory/skills/workitem-triage/SKILL.md +0 -42
  469. package/extensions/enact-wiki/.agents/plugin.json +0 -43
  470. package/extensions/enact-wiki/.mcp.json +0 -15
  471. package/extensions/enact-wiki/README.md +0 -44
  472. package/extensions/enact-wiki/assets/icon.png +0 -0
  473. package/extensions/enact-wiki/assets/logo.png +0 -0
  474. package/extensions/enact-wiki/skills/document-parser/SKILL.md +0 -17
  475. package/extensions/enact-wiki/skills/document-parser/scripts/parse.sh +0 -60
  476. package/extensions/enact-wiki/skills/document-parser/skill.json +0 -9
  477. package/extensions/enact-wiki/skills/enact-wiki/SKILL.md +0 -30
  478. package/extensions/enact-wiki/skills/enact-wiki/references/ingest.md +0 -62
  479. package/extensions/enact-wiki/skills/enact-wiki/references/manage.md +0 -34
  480. package/extensions/enact-wiki/skills/enact-wiki/references/query.md +0 -59
  481. package/extensions/enact-wiki/skills/search-lab/SKILL.md +0 -57
  482. package/extensions/enact-wiki/skills/search-lab/scripts/analyze.ts +0 -23
  483. package/extensions/enact-wiki/skills/wiki/SKILL.md +0 -42
  484. package/extensions/net-revenue-management/.agents/plugin.json +0 -40
  485. package/extensions/net-revenue-management/.mcp.json +0 -9
  486. package/extensions/net-revenue-management/skills/net-revenue-risks/SKILL.md +0 -30
  487. package/extensions/net-revenue-management/skills/net-revenue-scenario/SKILL.md +0 -31
  488. package/extensions/plugin-dev/.agents/plugin.json +0 -41
  489. package/extensions/plugin-dev/agents/agent-creator.md +0 -199
  490. package/extensions/plugin-dev/agents/plugin-validator.md +0 -91
  491. package/extensions/plugin-dev/agents/skill-reviewer.md +0 -212
  492. package/extensions/plugin-dev/skills/agent-development/SKILL.md +0 -641
  493. package/extensions/plugin-dev/skills/agent-development/examples/agent-creation-prompt.md +0 -250
  494. package/extensions/plugin-dev/skills/agent-development/examples/complete-agent-examples.md +0 -461
  495. package/extensions/plugin-dev/skills/agent-development/references/advanced-agent-fields.md +0 -246
  496. package/extensions/plugin-dev/skills/agent-development/references/agent-creation-system-prompt.md +0 -216
  497. package/extensions/plugin-dev/skills/agent-development/references/permission-modes-rules.md +0 -226
  498. package/extensions/plugin-dev/skills/agent-development/references/system-prompt-design.md +0 -464
  499. package/extensions/plugin-dev/skills/agent-development/references/triggering-examples.md +0 -474
  500. package/extensions/plugin-dev/skills/agent-development/scripts/create-agent-skeleton.sh +0 -176
  501. package/extensions/plugin-dev/skills/agent-development/scripts/test-agent-trigger.sh +0 -227
  502. package/extensions/plugin-dev/skills/agent-development/scripts/validate-agent.sh +0 -227
  503. package/extensions/plugin-dev/skills/create-plugin/SKILL.md +0 -505
  504. package/extensions/plugin-dev/skills/hook-development/SKILL.md +0 -861
  505. package/extensions/plugin-dev/skills/hook-development/examples/load-context.sh +0 -55
  506. package/extensions/plugin-dev/skills/hook-development/examples/validate-bash.sh +0 -57
  507. package/extensions/plugin-dev/skills/hook-development/examples/validate-write.sh +0 -48
  508. package/extensions/plugin-dev/skills/hook-development/references/advanced.md +0 -871
  509. package/extensions/plugin-dev/skills/hook-development/references/hook-input-schemas.md +0 -145
  510. package/extensions/plugin-dev/skills/hook-development/references/migration.md +0 -392
  511. package/extensions/plugin-dev/skills/hook-development/references/patterns.md +0 -430
  512. package/extensions/plugin-dev/skills/hook-development/scripts/README.md +0 -181
  513. package/extensions/plugin-dev/skills/hook-development/scripts/hook-linter.sh +0 -153
  514. package/extensions/plugin-dev/skills/hook-development/scripts/test-hook.sh +0 -276
  515. package/extensions/plugin-dev/skills/hook-development/scripts/validate-hook-schema.sh +0 -159
  516. package/extensions/plugin-dev/skills/mcp-integration/SKILL.md +0 -775
  517. package/extensions/plugin-dev/skills/mcp-integration/examples/http-server.json +0 -20
  518. package/extensions/plugin-dev/skills/mcp-integration/examples/sse-server.json +0 -19
  519. package/extensions/plugin-dev/skills/mcp-integration/examples/stdio-server.json +0 -38
  520. package/extensions/plugin-dev/skills/mcp-integration/examples/ws-server.json +0 -26
  521. package/extensions/plugin-dev/skills/mcp-integration/references/authentication.md +0 -601
  522. package/extensions/plugin-dev/skills/mcp-integration/references/server-discovery.md +0 -190
  523. package/extensions/plugin-dev/skills/mcp-integration/references/server-types.md +0 -572
  524. package/extensions/plugin-dev/skills/mcp-integration/references/tool-usage.md +0 -623
  525. package/extensions/plugin-dev/skills/plugin-dev-guide/SKILL.md +0 -221
  526. package/extensions/plugin-dev/skills/plugin-structure/SKILL.md +0 -705
  527. package/extensions/plugin-dev/skills/plugin-structure/examples/advanced-plugin.md +0 -774
  528. package/extensions/plugin-dev/skills/plugin-structure/examples/minimal-plugin.md +0 -83
  529. package/extensions/plugin-dev/skills/plugin-structure/examples/standard-plugin.md +0 -611
  530. package/extensions/plugin-dev/skills/plugin-structure/references/advanced-topics.md +0 -289
  531. package/extensions/plugin-dev/skills/plugin-structure/references/component-patterns.md +0 -592
  532. package/extensions/plugin-dev/skills/plugin-structure/references/github-actions.md +0 -233
  533. package/extensions/plugin-dev/skills/plugin-structure/references/headless-ci-mode.md +0 -193
  534. package/extensions/plugin-dev/skills/plugin-structure/references/manifest-reference.md +0 -625
  535. package/extensions/plugin-dev/skills/plugin-structure/references/output-styles.md +0 -116
  536. package/extensions/plugin-dev/skills/skill-development/SKILL.md +0 -562
  537. package/extensions/plugin-dev/skills/skill-development/examples/complete-skill.md +0 -465
  538. package/extensions/plugin-dev/skills/skill-development/examples/frontmatter-templates.md +0 -167
  539. package/extensions/plugin-dev/skills/skill-development/examples/minimal-skill.md +0 -111
  540. package/extensions/plugin-dev/skills/skill-development/references/advanced-frontmatter.md +0 -225
  541. package/extensions/plugin-dev/skills/skill-development/references/commands-vs-skills.md +0 -39
  542. package/extensions/plugin-dev/skills/skill-development/references/skill-creation-workflow.md +0 -379
  543. package/extensions/plugin-dev/skills/skill-development/references/skill-creator-original.md +0 -210
  544. package/extensions/plugin-dev/skills/start/SKILL.md +0 -82
  545. package/scripts/check-hooks.mjs +0 -174
  546. package/scripts/check-principles.mjs +0 -116
  547. package/scripts/hooks/session-start-drift-check.mjs +0 -48
  548. package/scripts/install.sh +0 -70
  549. package/scripts/lib/auto-update.mjs +0 -75
  550. package/scripts/lib/bundle-hash.mjs +0 -137
  551. package/scripts/lib/hooks.mjs +0 -585
  552. package/scripts/lib/ledger.mjs +0 -163
  553. package/scripts/lib/migrate-artifacts.mjs +0 -144
  554. package/scripts/lib/outdated.mjs +0 -144
  555. package/scripts/lib/postinstall-offer.mjs +0 -83
  556. package/scripts/lib/principles.mjs +0 -109
  557. package/scripts/lib/provision-mcp.mjs +0 -16
  558. package/scripts/lib/resolve-plugin-root.mjs +0 -9
  559. package/scripts/lib/run-install.mjs +0 -500
  560. package/scripts/lib/run-prune.mjs +0 -94
  561. package/scripts/lib/run-uninstall.mjs +0 -244
  562. package/scripts/lib/run-update.mjs +0 -152
  563. package/scripts/lib/serve.mjs +0 -472
  564. package/scripts/lib/ups-router.mjs +0 -392
  565. package/scripts/postinstall.mjs +0 -101
  566. package/scripts/setup-enact-context.sh +0 -28
  567. package/scripts/version-bump.sh +0 -484
  568. package/web/assets/README.md +0 -111
  569. package/web/assets/logo-full.png +0 -0
  570. package/web/assets/logo-slim.png +0 -0
  571. package/web/assets/tokens/base.css +0 -45
  572. package/web/assets/tokens/colors.css +0 -248
  573. package/web/assets/tokens/effects.css +0 -24
  574. package/web/assets/tokens/fonts.css +0 -8
  575. package/web/assets/tokens/index.css +0 -18
  576. package/web/assets/tokens/spacing.css +0 -50
  577. 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
- }