@sudosandwich/limps-headless 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +339 -0
  3. package/bin/limps-headless +2 -0
  4. package/dist/analysis/index.d.ts +6 -0
  5. package/dist/analysis/index.d.ts.map +1 -0
  6. package/dist/analysis/index.js +6 -0
  7. package/dist/analysis/index.js.map +1 -0
  8. package/dist/analysis/ir/build-ir.d.ts +10 -0
  9. package/dist/analysis/ir/build-ir.d.ts.map +1 -0
  10. package/dist/analysis/ir/build-ir.js +102 -0
  11. package/dist/analysis/ir/build-ir.js.map +1 -0
  12. package/dist/analysis/ir/types.d.ts +44 -0
  13. package/dist/analysis/ir/types.d.ts.map +1 -0
  14. package/dist/analysis/ir/types.js +2 -0
  15. package/dist/analysis/ir/types.js.map +1 -0
  16. package/dist/analysis/module-graph.d.ts +20 -0
  17. package/dist/analysis/module-graph.d.ts.map +1 -0
  18. package/dist/analysis/module-graph.js +104 -0
  19. package/dist/analysis/module-graph.js.map +1 -0
  20. package/dist/analysis/passes/behavior-evidence.d.ts +9 -0
  21. package/dist/analysis/passes/behavior-evidence.d.ts.map +1 -0
  22. package/dist/analysis/passes/behavior-evidence.js +80 -0
  23. package/dist/analysis/passes/behavior-evidence.js.map +1 -0
  24. package/dist/analysis/passes/import-evidence.d.ts +3 -0
  25. package/dist/analysis/passes/import-evidence.d.ts.map +1 -0
  26. package/dist/analysis/passes/import-evidence.js +58 -0
  27. package/dist/analysis/passes/import-evidence.js.map +1 -0
  28. package/dist/analysis/passes/index.d.ts +15 -0
  29. package/dist/analysis/passes/index.d.ts.map +1 -0
  30. package/dist/analysis/passes/index.js +21 -0
  31. package/dist/analysis/passes/index.js.map +1 -0
  32. package/dist/analysis/passes/jsx-evidence.d.ts +8 -0
  33. package/dist/analysis/passes/jsx-evidence.d.ts.map +1 -0
  34. package/dist/analysis/passes/jsx-evidence.js +149 -0
  35. package/dist/analysis/passes/jsx-evidence.js.map +1 -0
  36. package/dist/analysis/ts-program.d.ts +12 -0
  37. package/dist/analysis/ts-program.d.ts.map +1 -0
  38. package/dist/analysis/ts-program.js +59 -0
  39. package/dist/analysis/ts-program.js.map +1 -0
  40. package/dist/analyzer/disambiguator.d.ts +20 -0
  41. package/dist/analyzer/disambiguator.d.ts.map +1 -0
  42. package/dist/analyzer/disambiguator.js +83 -0
  43. package/dist/analyzer/disambiguator.js.map +1 -0
  44. package/dist/analyzer/index.d.ts +26 -0
  45. package/dist/analyzer/index.d.ts.map +1 -0
  46. package/dist/analyzer/index.js +68 -0
  47. package/dist/analyzer/index.js.map +1 -0
  48. package/dist/analyzer/parser.d.ts +23 -0
  49. package/dist/analyzer/parser.d.ts.map +1 -0
  50. package/dist/analyzer/parser.js +58 -0
  51. package/dist/analyzer/parser.js.map +1 -0
  52. package/dist/analyzer/patterns.d.ts +42 -0
  53. package/dist/analyzer/patterns.d.ts.map +1 -0
  54. package/dist/analyzer/patterns.js +206 -0
  55. package/dist/analyzer/patterns.js.map +1 -0
  56. package/dist/analyzer/props.d.ts +16 -0
  57. package/dist/analyzer/props.d.ts.map +1 -0
  58. package/dist/analyzer/props.js +235 -0
  59. package/dist/analyzer/props.js.map +1 -0
  60. package/dist/analyzer/rules/checkbox-switch-toggle.d.ts +10 -0
  61. package/dist/analyzer/rules/checkbox-switch-toggle.d.ts.map +1 -0
  62. package/dist/analyzer/rules/checkbox-switch-toggle.js +26 -0
  63. package/dist/analyzer/rules/checkbox-switch-toggle.js.map +1 -0
  64. package/dist/analyzer/rules/dialog-popover.d.ts +10 -0
  65. package/dist/analyzer/rules/dialog-popover.d.ts.map +1 -0
  66. package/dist/analyzer/rules/dialog-popover.js +25 -0
  67. package/dist/analyzer/rules/dialog-popover.js.map +1 -0
  68. package/dist/analyzer/rules/index.d.ts +24 -0
  69. package/dist/analyzer/rules/index.d.ts.map +1 -0
  70. package/dist/analyzer/rules/index.js +51 -0
  71. package/dist/analyzer/rules/index.js.map +1 -0
  72. package/dist/analyzer/rules/tooltip-hovercard.d.ts +10 -0
  73. package/dist/analyzer/rules/tooltip-hovercard.d.ts.map +1 -0
  74. package/dist/analyzer/rules/tooltip-hovercard.js +21 -0
  75. package/dist/analyzer/rules/tooltip-hovercard.js.map +1 -0
  76. package/dist/analyzer/scorer.d.ts +12 -0
  77. package/dist/analyzer/scorer.d.ts.map +1 -0
  78. package/dist/analyzer/scorer.js +171 -0
  79. package/dist/analyzer/scorer.js.map +1 -0
  80. package/dist/analyzer/weights.d.ts +28 -0
  81. package/dist/analyzer/weights.d.ts.map +1 -0
  82. package/dist/analyzer/weights.js +40 -0
  83. package/dist/analyzer/weights.js.map +1 -0
  84. package/dist/audit/analyses/migration.d.ts +42 -0
  85. package/dist/audit/analyses/migration.d.ts.map +1 -0
  86. package/dist/audit/analyses/migration.js +91 -0
  87. package/dist/audit/analyses/migration.js.map +1 -0
  88. package/dist/audit/discover-components.d.ts +7 -0
  89. package/dist/audit/discover-components.d.ts.map +1 -0
  90. package/dist/audit/discover-components.js +486 -0
  91. package/dist/audit/discover-components.js.map +1 -0
  92. package/dist/audit/generate-report.d.ts +28 -0
  93. package/dist/audit/generate-report.d.ts.map +1 -0
  94. package/dist/audit/generate-report.js +333 -0
  95. package/dist/audit/generate-report.js.map +1 -0
  96. package/dist/audit/index.d.ts +8 -0
  97. package/dist/audit/index.d.ts.map +1 -0
  98. package/dist/audit/index.js +8 -0
  99. package/dist/audit/index.js.map +1 -0
  100. package/dist/audit/run-audit.d.ts +33 -0
  101. package/dist/audit/run-audit.d.ts.map +1 -0
  102. package/dist/audit/run-audit.js +287 -0
  103. package/dist/audit/run-audit.js.map +1 -0
  104. package/dist/audit/types.d.ts +135 -0
  105. package/dist/audit/types.d.ts.map +1 -0
  106. package/dist/audit/types.js +5 -0
  107. package/dist/audit/types.js.map +1 -0
  108. package/dist/cache/index.d.ts +110 -0
  109. package/dist/cache/index.d.ts.map +1 -0
  110. package/dist/cache/index.js +176 -0
  111. package/dist/cache/index.js.map +1 -0
  112. package/dist/cache/storage.d.ts +73 -0
  113. package/dist/cache/storage.d.ts.map +1 -0
  114. package/dist/cache/storage.js +176 -0
  115. package/dist/cache/storage.js.map +1 -0
  116. package/dist/cache/ttl.d.ts +62 -0
  117. package/dist/cache/ttl.d.ts.map +1 -0
  118. package/dist/cache/ttl.js +96 -0
  119. package/dist/cache/ttl.js.map +1 -0
  120. package/dist/cli/commands/analyze.d.ts +6 -0
  121. package/dist/cli/commands/analyze.d.ts.map +1 -0
  122. package/dist/cli/commands/analyze.js +43 -0
  123. package/dist/cli/commands/analyze.js.map +1 -0
  124. package/dist/cli/commands/audit.d.ts +6 -0
  125. package/dist/cli/commands/audit.d.ts.map +1 -0
  126. package/dist/cli/commands/audit.js +73 -0
  127. package/dist/cli/commands/audit.js.map +1 -0
  128. package/dist/cli/commands/check-updates.d.ts +6 -0
  129. package/dist/cli/commands/check-updates.d.ts.map +1 -0
  130. package/dist/cli/commands/check-updates.js +34 -0
  131. package/dist/cli/commands/check-updates.js.map +1 -0
  132. package/dist/cli/commands/diff.d.ts +7 -0
  133. package/dist/cli/commands/diff.d.ts.map +1 -0
  134. package/dist/cli/commands/diff.js +48 -0
  135. package/dist/cli/commands/diff.js.map +1 -0
  136. package/dist/cli/commands/extract.d.ts +6 -0
  137. package/dist/cli/commands/extract.d.ts.map +1 -0
  138. package/dist/cli/commands/extract.js +42 -0
  139. package/dist/cli/commands/extract.js.map +1 -0
  140. package/dist/cli/commands/list.d.ts +6 -0
  141. package/dist/cli/commands/list.d.ts.map +1 -0
  142. package/dist/cli/commands/list.js +33 -0
  143. package/dist/cli/commands/list.js.map +1 -0
  144. package/dist/cli/flags.d.ts +9 -0
  145. package/dist/cli/flags.d.ts.map +1 -0
  146. package/dist/cli/flags.js +22 -0
  147. package/dist/cli/flags.js.map +1 -0
  148. package/dist/cli/index.d.ts +5 -0
  149. package/dist/cli/index.d.ts.map +1 -0
  150. package/dist/cli/index.js +40 -0
  151. package/dist/cli/index.js.map +1 -0
  152. package/dist/config.d.ts +19 -0
  153. package/dist/config.d.ts.map +1 -0
  154. package/dist/config.js +23 -0
  155. package/dist/config.js.map +1 -0
  156. package/dist/differ/hints.d.ts +21 -0
  157. package/dist/differ/hints.d.ts.map +1 -0
  158. package/dist/differ/hints.js +105 -0
  159. package/dist/differ/hints.js.map +1 -0
  160. package/dist/differ/index.d.ts +25 -0
  161. package/dist/differ/index.d.ts.map +1 -0
  162. package/dist/differ/index.js +115 -0
  163. package/dist/differ/index.js.map +1 -0
  164. package/dist/differ/props.d.ts +36 -0
  165. package/dist/differ/props.d.ts.map +1 -0
  166. package/dist/differ/props.js +210 -0
  167. package/dist/differ/props.js.map +1 -0
  168. package/dist/differ/severity.d.ts +31 -0
  169. package/dist/differ/severity.d.ts.map +1 -0
  170. package/dist/differ/severity.js +65 -0
  171. package/dist/differ/severity.js.map +1 -0
  172. package/dist/differ/types.d.ts +109 -0
  173. package/dist/differ/types.d.ts.map +1 -0
  174. package/dist/differ/types.js +5 -0
  175. package/dist/differ/types.js.map +1 -0
  176. package/dist/extractor/classifier.d.ts +30 -0
  177. package/dist/extractor/classifier.d.ts.map +1 -0
  178. package/dist/extractor/classifier.js +150 -0
  179. package/dist/extractor/classifier.js.map +1 -0
  180. package/dist/extractor/forward-ref.d.ts +28 -0
  181. package/dist/extractor/forward-ref.d.ts.map +1 -0
  182. package/dist/extractor/forward-ref.js +134 -0
  183. package/dist/extractor/forward-ref.js.map +1 -0
  184. package/dist/extractor/index.d.ts +25 -0
  185. package/dist/extractor/index.d.ts.map +1 -0
  186. package/dist/extractor/index.js +43 -0
  187. package/dist/extractor/index.js.map +1 -0
  188. package/dist/extractor/interface.d.ts +40 -0
  189. package/dist/extractor/interface.d.ts.map +1 -0
  190. package/dist/extractor/interface.js +233 -0
  191. package/dist/extractor/interface.js.map +1 -0
  192. package/dist/extractor/jsdoc.d.ts +24 -0
  193. package/dist/extractor/jsdoc.d.ts.map +1 -0
  194. package/dist/extractor/jsdoc.js +74 -0
  195. package/dist/extractor/jsdoc.js.map +1 -0
  196. package/dist/extractor/project.d.ts +17 -0
  197. package/dist/extractor/project.d.ts.map +1 -0
  198. package/dist/extractor/project.js +33 -0
  199. package/dist/extractor/project.js.map +1 -0
  200. package/dist/extractor/props.d.ts +24 -0
  201. package/dist/extractor/props.d.ts.map +1 -0
  202. package/dist/extractor/props.js +78 -0
  203. package/dist/extractor/props.js.map +1 -0
  204. package/dist/extractor/type-resolver.d.ts +32 -0
  205. package/dist/extractor/type-resolver.d.ts.map +1 -0
  206. package/dist/extractor/type-resolver.js +129 -0
  207. package/dist/extractor/type-resolver.js.map +1 -0
  208. package/dist/fetcher/index.d.ts +7 -0
  209. package/dist/fetcher/index.d.ts.map +1 -0
  210. package/dist/fetcher/index.js +7 -0
  211. package/dist/fetcher/index.js.map +1 -0
  212. package/dist/fetcher/npm-registry.d.ts +45 -0
  213. package/dist/fetcher/npm-registry.d.ts.map +1 -0
  214. package/dist/fetcher/npm-registry.js +217 -0
  215. package/dist/fetcher/npm-registry.js.map +1 -0
  216. package/dist/fetcher/unified-package.d.ts +27 -0
  217. package/dist/fetcher/unified-package.d.ts.map +1 -0
  218. package/dist/fetcher/unified-package.js +99 -0
  219. package/dist/fetcher/unified-package.js.map +1 -0
  220. package/dist/fetcher/unpkg.d.ts +20 -0
  221. package/dist/fetcher/unpkg.d.ts.map +1 -0
  222. package/dist/fetcher/unpkg.js +58 -0
  223. package/dist/fetcher/unpkg.js.map +1 -0
  224. package/dist/index.d.ts +18 -0
  225. package/dist/index.d.ts.map +1 -0
  226. package/dist/index.js +41 -0
  227. package/dist/index.js.map +1 -0
  228. package/dist/providers/base.d.ts +10 -0
  229. package/dist/providers/base.d.ts.map +1 -0
  230. package/dist/providers/base.js +80 -0
  231. package/dist/providers/base.js.map +1 -0
  232. package/dist/providers/index.d.ts +10 -0
  233. package/dist/providers/index.d.ts.map +1 -0
  234. package/dist/providers/index.js +10 -0
  235. package/dist/providers/index.js.map +1 -0
  236. package/dist/providers/interface.d.ts +56 -0
  237. package/dist/providers/interface.d.ts.map +1 -0
  238. package/dist/providers/interface.js +5 -0
  239. package/dist/providers/interface.js.map +1 -0
  240. package/dist/providers/radix-backend.d.ts +11 -0
  241. package/dist/providers/radix-backend.d.ts.map +1 -0
  242. package/dist/providers/radix-backend.js +107 -0
  243. package/dist/providers/radix-backend.js.map +1 -0
  244. package/dist/providers/radix.d.ts +6 -0
  245. package/dist/providers/radix.d.ts.map +1 -0
  246. package/dist/providers/radix.js +21 -0
  247. package/dist/providers/radix.js.map +1 -0
  248. package/dist/providers/registry.d.ts +17 -0
  249. package/dist/providers/registry.d.ts.map +1 -0
  250. package/dist/providers/registry.js +55 -0
  251. package/dist/providers/registry.js.map +1 -0
  252. package/dist/rules/engine.d.ts +4 -0
  253. package/dist/rules/engine.d.ts.map +1 -0
  254. package/dist/rules/engine.js +37 -0
  255. package/dist/rules/engine.js.map +1 -0
  256. package/dist/rules/index.d.ts +6 -0
  257. package/dist/rules/index.d.ts.map +1 -0
  258. package/dist/rules/index.js +6 -0
  259. package/dist/rules/index.js.map +1 -0
  260. package/dist/rules/predicates.d.ts +10 -0
  261. package/dist/rules/predicates.d.ts.map +1 -0
  262. package/dist/rules/predicates.js +93 -0
  263. package/dist/rules/predicates.js.map +1 -0
  264. package/dist/rules/rulesets/base-ui.d.ts +3 -0
  265. package/dist/rules/rulesets/base-ui.d.ts.map +1 -0
  266. package/dist/rules/rulesets/base-ui.js +65 -0
  267. package/dist/rules/rulesets/base-ui.js.map +1 -0
  268. package/dist/rules/rulesets/radix-legacy.d.ts +3 -0
  269. package/dist/rules/rulesets/radix-legacy.d.ts.map +1 -0
  270. package/dist/rules/rulesets/radix-legacy.js +38 -0
  271. package/dist/rules/rulesets/radix-legacy.js.map +1 -0
  272. package/dist/rules/types.d.ts +57 -0
  273. package/dist/rules/types.d.ts.map +1 -0
  274. package/dist/rules/types.js +2 -0
  275. package/dist/rules/types.js.map +1 -0
  276. package/dist/signatures/disambiguation.d.ts +30 -0
  277. package/dist/signatures/disambiguation.d.ts.map +1 -0
  278. package/dist/signatures/disambiguation.js +99 -0
  279. package/dist/signatures/disambiguation.js.map +1 -0
  280. package/dist/signatures/distinguishing.d.ts +29 -0
  281. package/dist/signatures/distinguishing.d.ts.map +1 -0
  282. package/dist/signatures/distinguishing.js +108 -0
  283. package/dist/signatures/distinguishing.js.map +1 -0
  284. package/dist/signatures/generator.d.ts +20 -0
  285. package/dist/signatures/generator.d.ts.map +1 -0
  286. package/dist/signatures/generator.js +147 -0
  287. package/dist/signatures/generator.js.map +1 -0
  288. package/dist/signatures/index.d.ts +10 -0
  289. package/dist/signatures/index.d.ts.map +1 -0
  290. package/dist/signatures/index.js +10 -0
  291. package/dist/signatures/index.js.map +1 -0
  292. package/dist/signatures/inference.d.ts +37 -0
  293. package/dist/signatures/inference.d.ts.map +1 -0
  294. package/dist/signatures/inference.js +132 -0
  295. package/dist/signatures/inference.js.map +1 -0
  296. package/dist/tools/analyze-component.d.ts +41 -0
  297. package/dist/tools/analyze-component.d.ts.map +1 -0
  298. package/dist/tools/analyze-component.js +274 -0
  299. package/dist/tools/analyze-component.js.map +1 -0
  300. package/dist/tools/check-updates.d.ts +33 -0
  301. package/dist/tools/check-updates.d.ts.map +1 -0
  302. package/dist/tools/check-updates.js +81 -0
  303. package/dist/tools/check-updates.js.map +1 -0
  304. package/dist/tools/diff-versions.d.ts +39 -0
  305. package/dist/tools/diff-versions.d.ts.map +1 -0
  306. package/dist/tools/diff-versions.js +78 -0
  307. package/dist/tools/diff-versions.js.map +1 -0
  308. package/dist/tools/extract-primitive.d.ts +50 -0
  309. package/dist/tools/extract-primitive.d.ts.map +1 -0
  310. package/dist/tools/extract-primitive.js +145 -0
  311. package/dist/tools/extract-primitive.js.map +1 -0
  312. package/dist/tools/generate-report.d.ts +29 -0
  313. package/dist/tools/generate-report.d.ts.map +1 -0
  314. package/dist/tools/generate-report.js +36 -0
  315. package/dist/tools/generate-report.js.map +1 -0
  316. package/dist/tools/index.d.ts +11 -0
  317. package/dist/tools/index.d.ts.map +1 -0
  318. package/dist/tools/index.js +11 -0
  319. package/dist/tools/index.js.map +1 -0
  320. package/dist/tools/list-primitives.d.ts +41 -0
  321. package/dist/tools/list-primitives.d.ts.map +1 -0
  322. package/dist/tools/list-primitives.js +74 -0
  323. package/dist/tools/list-primitives.js.map +1 -0
  324. package/dist/tools/run-audit.d.ts +43 -0
  325. package/dist/tools/run-audit.d.ts.map +1 -0
  326. package/dist/tools/run-audit.js +60 -0
  327. package/dist/tools/run-audit.js.map +1 -0
  328. package/dist/types/index.d.ts +143 -0
  329. package/dist/types/index.d.ts.map +1 -0
  330. package/dist/types/index.js +5 -0
  331. package/dist/types/index.js.map +1 -0
  332. package/docs/architecture.md +88 -0
  333. package/docs/providers.md +47 -0
  334. package/docs/tools.md +143 -0
  335. package/package.json +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Type definitions for limps-headless extension.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,88 @@
1
+ ---
2
+ title: limps-headless Architecture
3
+ ---
4
+
5
+ # Architecture Overview
6
+
7
+ limps-headless is a limps extension that extracts headless UI contracts (e.g. Radix UI), generates semantic signatures, and detects drift across versions.
8
+
9
+ ## Core Pipeline
10
+
11
+ 1. **Fetcher**
12
+ - Resolves versions and downloads type definitions
13
+ - Supports both individual `@radix-ui/react-*` packages and the unified `radix-ui` package
14
+
15
+ 2. **Extractor**
16
+ - Parses TypeScript `.d.ts` content
17
+ - Builds `ExtractedPrimitive` contracts (props, sub-components, exports)
18
+
19
+ 3. **Signatures**
20
+ - Converts raw contracts into behavioral signatures
21
+ - Classifies state, composition, and rendering patterns
22
+
23
+ 4. **Cache**
24
+ - Stores extracted contracts and signatures by primitive/version
25
+ - Speeds up repeated tool usage
26
+
27
+ 5. **Analyzer**
28
+ - Analyzes local components and matches against cached signatures
29
+ - Produces recommendations and confidence scores
30
+
31
+ 6. **Differ**
32
+ - Compares two versions of a primitive
33
+ - Emits breaking, warning, and info changes
34
+
35
+ ## What the diff does (planning and expansion)
36
+
37
+ The diff exists to answer one question: **“If I upgrade Radix from one version to another, what will break or change in the public API?”** so you can plan migration work and avoid surprises.
38
+
39
+ ### What it compares
40
+
41
+ It compares **contracts**, not source code or runtime behavior:
42
+
43
+ - **Contract** = the extracted public API of each Radix primitive: props (name, type, required), subcomponents, and their types, as derived from the published `.d.ts` files.
44
+ - For each primitive (or a subset), the differ loads the contract at the **from-version** and at the **to-version**, then diffs them.
45
+
46
+ So you get a **type-level change report**: what was added, removed, or changed in the types consumers rely on.
47
+
48
+ ### What it produces
49
+
50
+ A list of **changes**, each with:
51
+
52
+ - **Severity**: `breaking` (will break your code), `warning` (may break or need review), `info` (additive, usually safe).
53
+ - **Type**: e.g. `prop_removed`, `prop_required`, `type_narrowed`, `prop_added`, `type_widened`, `subcomponent_removed`, etc.
54
+ - **Target**: which primitive, subcomponent, or prop the change applies to.
55
+ - **Description**: a short, human-readable “what changed” (e.g. “Prop 'open' is now required on Root”).
56
+ - **Migration hint**: actionable guidance (e.g. “Add an explicit value for this prop”) so you can plan fixes.
57
+
58
+ So the diff is **planning-oriented**: it expands raw type deltas into descriptions and migration hints, not just “prop X changed”.
59
+
60
+ ### Flow (from-version → to-version)
61
+
62
+ 1. Resolve from-version and to-version (e.g. `1.0.0` and `latest`).
63
+ 2. For each primitive to diff: fetch/extract contract at from-version, fetch/extract contract at to-version (using cache when possible).
64
+ 3. Compare contracts: diff props (added/removed/required/type changes) and subcomponents; classify each change (breaking/warning/info) and generate description + migration hint.
65
+ 4. Return a single list of changes plus summary counts.
66
+
67
+ ### When to use it
68
+
69
+ - **Before upgrading**: run diff from your current version (from-version) to the new version (to-version) to see breaking changes and plan code updates.
70
+ - **With check-updates**: `headless_check_updates` can include a diff from current to latest so you see what an upgrade would entail.
71
+
72
+ ## Provider System
73
+
74
+ Providers wrap library-specific behaviors (version resolution, type fetching) and enable future support for non-Radix component libraries.
75
+
76
+ Default provider: `radix`
77
+
78
+ ## Tool Layer
79
+
80
+ MCP tools are thin wrappers around the pipeline:
81
+
82
+ - `headless_list_primitives`
83
+ - `headless_extract_primitive`
84
+ - `headless_analyze_component`
85
+ - `headless_diff_versions`
86
+ - `headless_check_updates`
87
+
88
+ Each tool accepts an optional `provider` parameter (default: `radix`).
@@ -0,0 +1,47 @@
1
+ ---
2
+ title: limps-headless Providers
3
+ ---
4
+
5
+ # Providers
6
+
7
+ Providers allow limps-headless to support different component libraries. Each provider implements a common interface and registers itself with the provider registry.
8
+
9
+ ## ComponentLibraryProvider Interface
10
+
11
+ ```typescript
12
+ export interface ComponentLibraryProvider {
13
+ name: string;
14
+ displayName: string;
15
+ listPrimitives(version: string): Promise<string[]>;
16
+ resolveVersion(versionHint: string): Promise<string>;
17
+ fetchTypes(primitive: string, version: string): Promise<string>;
18
+ extract?(typeContent: string): ExtractedPrimitive;
19
+ generateSignature?(extracted: ExtractedPrimitive): BehaviorSignature;
20
+ }
21
+ ```
22
+
23
+ ## Registering a Provider
24
+
25
+ ```typescript
26
+ import { registerProvider } from '@sudosandwich/limps-headless/providers';
27
+
28
+ registerProvider({
29
+ name: 'acme',
30
+ displayName: 'Acme UI',
31
+ async listPrimitives() {
32
+ return ['button', 'dialog'];
33
+ },
34
+ async resolveVersion(versionHint) {
35
+ return versionHint === 'latest' ? '1.0.0' : versionHint;
36
+ },
37
+ async fetchTypes(primitive, version) {
38
+ return `export interface ${primitive}Props {}`;
39
+ },
40
+ });
41
+ ```
42
+
43
+ ## Notes
44
+
45
+ - Providers can optionally override `extract` and `generateSignature`.
46
+ - The default `radix` provider is registered automatically.
47
+ - Some tools (analysis and diff) may only support the `radix` provider for now.
package/docs/tools.md ADDED
@@ -0,0 +1,143 @@
1
+ ---
2
+ title: limps-headless Tool Reference
3
+ ---
4
+
5
+ # Tool Reference
6
+
7
+ All tools accept an optional `provider` (default: `radix`). Provider support is pluggable but only `radix` is fully supported today.
8
+
9
+ ## headless_list_primitives
10
+
11
+ List available primitives.
12
+
13
+ **Input**
14
+ ```json
15
+ {
16
+ "version": "latest",
17
+ "provider": "radix"
18
+ }
19
+ ```
20
+
21
+ **Output**
22
+ ```json
23
+ {
24
+ "version": "1.1.2",
25
+ "primitives": [
26
+ { "name": "dialog", "package": "@radix-ui/react-dialog" }
27
+ ]
28
+ }
29
+ ```
30
+
31
+ ## headless_extract_primitive
32
+
33
+ Extract a full primitive contract.
34
+
35
+ **Input**
36
+ ```json
37
+ {
38
+ "primitive": "dialog",
39
+ "version": "latest",
40
+ "provider": "radix"
41
+ }
42
+ ```
43
+
44
+ **Output**
45
+ ```json
46
+ {
47
+ "primitive": "Dialog",
48
+ "package": "@radix-ui/react-dialog",
49
+ "version": "1.1.2",
50
+ "behavior": {
51
+ "statePattern": "binary",
52
+ "compositionPattern": "compound",
53
+ "renderingPattern": "portal-conditional"
54
+ },
55
+ "subComponents": [],
56
+ "similarTo": []
57
+ }
58
+ ```
59
+
60
+ ## headless_analyze_component
61
+
62
+ Analyze a local component and detect legacy Radix matches to inform Base UI migration. **filePath** is resolved relative to the current working directory (MCP server cwd or, when using the CLI, the directory you run `limps-headless` from—so run from your project root).
63
+
64
+ **Input**
65
+ ```json
66
+ {
67
+ "filePath": "src/components/MyDialog.tsx",
68
+ "radixVersion": "latest",
69
+ "threshold": 40,
70
+ "provider": "radix"
71
+ }
72
+ ```
73
+
74
+ **Output**
75
+ ```json
76
+ {
77
+ "component": "MyDialog",
78
+ "filePath": "src/components/MyDialog.tsx",
79
+ "recommendation": {
80
+ "primitive": "Dialog",
81
+ "package": "@radix-ui/react-dialog",
82
+ "confidence": 78,
83
+ "action": "LEGACY_RADIX_MATCH_STRONG",
84
+ "reason": "High confidence legacy Radix match (78) - prioritize Base UI migration"
85
+ },
86
+ "isAmbiguous": false
87
+ }
88
+ ```
89
+
90
+ ## headless_diff_versions
91
+
92
+ **Purpose:** See what will break or need attention when upgrading Radix. Compares **two Radix versions** (not your code vs Radix)—primitive API contracts (props, subcomponents) between a from-version and a to-version. Reports breaking changes, warnings, and info. Input: `fromVersion` (e.g. your current), `toVersion` (e.g. latest).
93
+
94
+ **Input**
95
+ ```json
96
+ {
97
+ "fromVersion": "1.0.0",
98
+ "toVersion": "latest",
99
+ "primitives": ["dialog"],
100
+ "breakingOnly": false,
101
+ "provider": "radix"
102
+ }
103
+ ```
104
+
105
+ **Output**
106
+ ```json
107
+ {
108
+ "fromVersion": "1.0.0",
109
+ "toVersion": "1.1.2",
110
+ "hasBreakingChanges": true,
111
+ "summary": { "totalChanges": 1, "breaking": 1, "warnings": 0, "info": 0 },
112
+ "changes": [
113
+ {
114
+ "primitive": "Dialog",
115
+ "type": "prop_removed",
116
+ "severity": "breaking",
117
+ "target": "allowPinchZoom"
118
+ }
119
+ ]
120
+ }
121
+ ```
122
+
123
+ ## headless_check_updates
124
+
125
+ Check for a newer version and include diffs when available.
126
+
127
+ **Input**
128
+ ```json
129
+ {
130
+ "refreshCache": false,
131
+ "provider": "radix"
132
+ }
133
+ ```
134
+
135
+ **Output**
136
+ ```json
137
+ {
138
+ "currentVersion": "1.0.0",
139
+ "latestVersion": "1.1.2",
140
+ "hasUpdate": true,
141
+ "diff": { "summary": { "totalChanges": 2, "breaking": 0, "warnings": 1, "info": 1 } }
142
+ }
143
+ ```
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@sudosandwich/limps-headless",
3
+ "version": "0.1.3",
4
+ "description": "limps extension for headless UI contract extraction, semantic analysis, and drift detection",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "scripts": {
9
+ "build": "tsc",
10
+ "dev": "tsc --watch",
11
+ "type-check": "tsc --noEmit",
12
+ "test": "vitest run",
13
+ "test:watch": "vitest",
14
+ "test:coverage": "vitest run --coverage",
15
+ "prepublishOnly": "npm run build && node scripts/prepare-publish.cjs",
16
+ "postpublish": "node scripts/cleanup-publish.cjs"
17
+ },
18
+ "keywords": [
19
+ "limps",
20
+ "headless-ui",
21
+ "radix-ui",
22
+ "mcp",
23
+ "extension"
24
+ ],
25
+ "author": "Paul Breuler",
26
+ "license": "MIT",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/paulbreuler/limps.git",
30
+ "directory": "packages/limps-headless"
31
+ },
32
+ "files": [
33
+ "dist",
34
+ "bin",
35
+ "docs",
36
+ "README.md",
37
+ "LICENSE"
38
+ ],
39
+ "bin": {
40
+ "limps-headless": "bin/limps-headless"
41
+ },
42
+ "peerDependencies": {
43
+ "@sudosandwich/limps": "^2.0.0"
44
+ },
45
+ "devDependencies": {
46
+ "@sudosandwich/limps": "*",
47
+ "@types/node": "^25.0.0",
48
+ "@types/semver": "^7.7.1",
49
+ "typescript": "^5.9.0",
50
+ "@vitest/coverage-v8": "^4.0.18",
51
+ "vitest": "^4.0.0"
52
+ },
53
+ "dependencies": {
54
+ "commander": "^13.1.0",
55
+ "semver": "^7.7.3",
56
+ "ts-morph": "^24.0.0",
57
+ "zod": "^4.3.6"
58
+ }
59
+ }