@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.
- package/LICENSE +21 -0
- package/README.md +339 -0
- package/bin/limps-headless +2 -0
- package/dist/analysis/index.d.ts +6 -0
- package/dist/analysis/index.d.ts.map +1 -0
- package/dist/analysis/index.js +6 -0
- package/dist/analysis/index.js.map +1 -0
- package/dist/analysis/ir/build-ir.d.ts +10 -0
- package/dist/analysis/ir/build-ir.d.ts.map +1 -0
- package/dist/analysis/ir/build-ir.js +102 -0
- package/dist/analysis/ir/build-ir.js.map +1 -0
- package/dist/analysis/ir/types.d.ts +44 -0
- package/dist/analysis/ir/types.d.ts.map +1 -0
- package/dist/analysis/ir/types.js +2 -0
- package/dist/analysis/ir/types.js.map +1 -0
- package/dist/analysis/module-graph.d.ts +20 -0
- package/dist/analysis/module-graph.d.ts.map +1 -0
- package/dist/analysis/module-graph.js +104 -0
- package/dist/analysis/module-graph.js.map +1 -0
- package/dist/analysis/passes/behavior-evidence.d.ts +9 -0
- package/dist/analysis/passes/behavior-evidence.d.ts.map +1 -0
- package/dist/analysis/passes/behavior-evidence.js +80 -0
- package/dist/analysis/passes/behavior-evidence.js.map +1 -0
- package/dist/analysis/passes/import-evidence.d.ts +3 -0
- package/dist/analysis/passes/import-evidence.d.ts.map +1 -0
- package/dist/analysis/passes/import-evidence.js +58 -0
- package/dist/analysis/passes/import-evidence.js.map +1 -0
- package/dist/analysis/passes/index.d.ts +15 -0
- package/dist/analysis/passes/index.d.ts.map +1 -0
- package/dist/analysis/passes/index.js +21 -0
- package/dist/analysis/passes/index.js.map +1 -0
- package/dist/analysis/passes/jsx-evidence.d.ts +8 -0
- package/dist/analysis/passes/jsx-evidence.d.ts.map +1 -0
- package/dist/analysis/passes/jsx-evidence.js +149 -0
- package/dist/analysis/passes/jsx-evidence.js.map +1 -0
- package/dist/analysis/ts-program.d.ts +12 -0
- package/dist/analysis/ts-program.d.ts.map +1 -0
- package/dist/analysis/ts-program.js +59 -0
- package/dist/analysis/ts-program.js.map +1 -0
- package/dist/analyzer/disambiguator.d.ts +20 -0
- package/dist/analyzer/disambiguator.d.ts.map +1 -0
- package/dist/analyzer/disambiguator.js +83 -0
- package/dist/analyzer/disambiguator.js.map +1 -0
- package/dist/analyzer/index.d.ts +26 -0
- package/dist/analyzer/index.d.ts.map +1 -0
- package/dist/analyzer/index.js +68 -0
- package/dist/analyzer/index.js.map +1 -0
- package/dist/analyzer/parser.d.ts +23 -0
- package/dist/analyzer/parser.d.ts.map +1 -0
- package/dist/analyzer/parser.js +58 -0
- package/dist/analyzer/parser.js.map +1 -0
- package/dist/analyzer/patterns.d.ts +42 -0
- package/dist/analyzer/patterns.d.ts.map +1 -0
- package/dist/analyzer/patterns.js +206 -0
- package/dist/analyzer/patterns.js.map +1 -0
- package/dist/analyzer/props.d.ts +16 -0
- package/dist/analyzer/props.d.ts.map +1 -0
- package/dist/analyzer/props.js +235 -0
- package/dist/analyzer/props.js.map +1 -0
- package/dist/analyzer/rules/checkbox-switch-toggle.d.ts +10 -0
- package/dist/analyzer/rules/checkbox-switch-toggle.d.ts.map +1 -0
- package/dist/analyzer/rules/checkbox-switch-toggle.js +26 -0
- package/dist/analyzer/rules/checkbox-switch-toggle.js.map +1 -0
- package/dist/analyzer/rules/dialog-popover.d.ts +10 -0
- package/dist/analyzer/rules/dialog-popover.d.ts.map +1 -0
- package/dist/analyzer/rules/dialog-popover.js +25 -0
- package/dist/analyzer/rules/dialog-popover.js.map +1 -0
- package/dist/analyzer/rules/index.d.ts +24 -0
- package/dist/analyzer/rules/index.d.ts.map +1 -0
- package/dist/analyzer/rules/index.js +51 -0
- package/dist/analyzer/rules/index.js.map +1 -0
- package/dist/analyzer/rules/tooltip-hovercard.d.ts +10 -0
- package/dist/analyzer/rules/tooltip-hovercard.d.ts.map +1 -0
- package/dist/analyzer/rules/tooltip-hovercard.js +21 -0
- package/dist/analyzer/rules/tooltip-hovercard.js.map +1 -0
- package/dist/analyzer/scorer.d.ts +12 -0
- package/dist/analyzer/scorer.d.ts.map +1 -0
- package/dist/analyzer/scorer.js +171 -0
- package/dist/analyzer/scorer.js.map +1 -0
- package/dist/analyzer/weights.d.ts +28 -0
- package/dist/analyzer/weights.d.ts.map +1 -0
- package/dist/analyzer/weights.js +40 -0
- package/dist/analyzer/weights.js.map +1 -0
- package/dist/audit/analyses/migration.d.ts +42 -0
- package/dist/audit/analyses/migration.d.ts.map +1 -0
- package/dist/audit/analyses/migration.js +91 -0
- package/dist/audit/analyses/migration.js.map +1 -0
- package/dist/audit/discover-components.d.ts +7 -0
- package/dist/audit/discover-components.d.ts.map +1 -0
- package/dist/audit/discover-components.js +486 -0
- package/dist/audit/discover-components.js.map +1 -0
- package/dist/audit/generate-report.d.ts +28 -0
- package/dist/audit/generate-report.d.ts.map +1 -0
- package/dist/audit/generate-report.js +333 -0
- package/dist/audit/generate-report.js.map +1 -0
- package/dist/audit/index.d.ts +8 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +8 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/run-audit.d.ts +33 -0
- package/dist/audit/run-audit.d.ts.map +1 -0
- package/dist/audit/run-audit.js +287 -0
- package/dist/audit/run-audit.js.map +1 -0
- package/dist/audit/types.d.ts +135 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +5 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/cache/index.d.ts +110 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +176 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/storage.d.ts +73 -0
- package/dist/cache/storage.d.ts.map +1 -0
- package/dist/cache/storage.js +176 -0
- package/dist/cache/storage.js.map +1 -0
- package/dist/cache/ttl.d.ts +62 -0
- package/dist/cache/ttl.d.ts.map +1 -0
- package/dist/cache/ttl.js +96 -0
- package/dist/cache/ttl.js.map +1 -0
- package/dist/cli/commands/analyze.d.ts +6 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +43 -0
- package/dist/cli/commands/analyze.js.map +1 -0
- package/dist/cli/commands/audit.d.ts +6 -0
- package/dist/cli/commands/audit.d.ts.map +1 -0
- package/dist/cli/commands/audit.js +73 -0
- package/dist/cli/commands/audit.js.map +1 -0
- package/dist/cli/commands/check-updates.d.ts +6 -0
- package/dist/cli/commands/check-updates.d.ts.map +1 -0
- package/dist/cli/commands/check-updates.js +34 -0
- package/dist/cli/commands/check-updates.js.map +1 -0
- package/dist/cli/commands/diff.d.ts +7 -0
- package/dist/cli/commands/diff.d.ts.map +1 -0
- package/dist/cli/commands/diff.js +48 -0
- package/dist/cli/commands/diff.js.map +1 -0
- package/dist/cli/commands/extract.d.ts +6 -0
- package/dist/cli/commands/extract.d.ts.map +1 -0
- package/dist/cli/commands/extract.js +42 -0
- package/dist/cli/commands/extract.js.map +1 -0
- package/dist/cli/commands/list.d.ts +6 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +33 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/flags.d.ts +9 -0
- package/dist/cli/flags.d.ts.map +1 -0
- package/dist/cli/flags.js +22 -0
- package/dist/cli/flags.js.map +1 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +40 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/config.d.ts +19 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +23 -0
- package/dist/config.js.map +1 -0
- package/dist/differ/hints.d.ts +21 -0
- package/dist/differ/hints.d.ts.map +1 -0
- package/dist/differ/hints.js +105 -0
- package/dist/differ/hints.js.map +1 -0
- package/dist/differ/index.d.ts +25 -0
- package/dist/differ/index.d.ts.map +1 -0
- package/dist/differ/index.js +115 -0
- package/dist/differ/index.js.map +1 -0
- package/dist/differ/props.d.ts +36 -0
- package/dist/differ/props.d.ts.map +1 -0
- package/dist/differ/props.js +210 -0
- package/dist/differ/props.js.map +1 -0
- package/dist/differ/severity.d.ts +31 -0
- package/dist/differ/severity.d.ts.map +1 -0
- package/dist/differ/severity.js +65 -0
- package/dist/differ/severity.js.map +1 -0
- package/dist/differ/types.d.ts +109 -0
- package/dist/differ/types.d.ts.map +1 -0
- package/dist/differ/types.js +5 -0
- package/dist/differ/types.js.map +1 -0
- package/dist/extractor/classifier.d.ts +30 -0
- package/dist/extractor/classifier.d.ts.map +1 -0
- package/dist/extractor/classifier.js +150 -0
- package/dist/extractor/classifier.js.map +1 -0
- package/dist/extractor/forward-ref.d.ts +28 -0
- package/dist/extractor/forward-ref.d.ts.map +1 -0
- package/dist/extractor/forward-ref.js +134 -0
- package/dist/extractor/forward-ref.js.map +1 -0
- package/dist/extractor/index.d.ts +25 -0
- package/dist/extractor/index.d.ts.map +1 -0
- package/dist/extractor/index.js +43 -0
- package/dist/extractor/index.js.map +1 -0
- package/dist/extractor/interface.d.ts +40 -0
- package/dist/extractor/interface.d.ts.map +1 -0
- package/dist/extractor/interface.js +233 -0
- package/dist/extractor/interface.js.map +1 -0
- package/dist/extractor/jsdoc.d.ts +24 -0
- package/dist/extractor/jsdoc.d.ts.map +1 -0
- package/dist/extractor/jsdoc.js +74 -0
- package/dist/extractor/jsdoc.js.map +1 -0
- package/dist/extractor/project.d.ts +17 -0
- package/dist/extractor/project.d.ts.map +1 -0
- package/dist/extractor/project.js +33 -0
- package/dist/extractor/project.js.map +1 -0
- package/dist/extractor/props.d.ts +24 -0
- package/dist/extractor/props.d.ts.map +1 -0
- package/dist/extractor/props.js +78 -0
- package/dist/extractor/props.js.map +1 -0
- package/dist/extractor/type-resolver.d.ts +32 -0
- package/dist/extractor/type-resolver.d.ts.map +1 -0
- package/dist/extractor/type-resolver.js +129 -0
- package/dist/extractor/type-resolver.js.map +1 -0
- package/dist/fetcher/index.d.ts +7 -0
- package/dist/fetcher/index.d.ts.map +1 -0
- package/dist/fetcher/index.js +7 -0
- package/dist/fetcher/index.js.map +1 -0
- package/dist/fetcher/npm-registry.d.ts +45 -0
- package/dist/fetcher/npm-registry.d.ts.map +1 -0
- package/dist/fetcher/npm-registry.js +217 -0
- package/dist/fetcher/npm-registry.js.map +1 -0
- package/dist/fetcher/unified-package.d.ts +27 -0
- package/dist/fetcher/unified-package.d.ts.map +1 -0
- package/dist/fetcher/unified-package.js +99 -0
- package/dist/fetcher/unified-package.js.map +1 -0
- package/dist/fetcher/unpkg.d.ts +20 -0
- package/dist/fetcher/unpkg.d.ts.map +1 -0
- package/dist/fetcher/unpkg.js +58 -0
- package/dist/fetcher/unpkg.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/base.d.ts +10 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +80 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/index.d.ts +10 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +10 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/interface.d.ts +56 -0
- package/dist/providers/interface.d.ts.map +1 -0
- package/dist/providers/interface.js +5 -0
- package/dist/providers/interface.js.map +1 -0
- package/dist/providers/radix-backend.d.ts +11 -0
- package/dist/providers/radix-backend.d.ts.map +1 -0
- package/dist/providers/radix-backend.js +107 -0
- package/dist/providers/radix-backend.js.map +1 -0
- package/dist/providers/radix.d.ts +6 -0
- package/dist/providers/radix.d.ts.map +1 -0
- package/dist/providers/radix.js +21 -0
- package/dist/providers/radix.js.map +1 -0
- package/dist/providers/registry.d.ts +17 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +55 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/rules/engine.d.ts +4 -0
- package/dist/rules/engine.d.ts.map +1 -0
- package/dist/rules/engine.js +37 -0
- package/dist/rules/engine.js.map +1 -0
- package/dist/rules/index.d.ts +6 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +6 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/predicates.d.ts +10 -0
- package/dist/rules/predicates.d.ts.map +1 -0
- package/dist/rules/predicates.js +93 -0
- package/dist/rules/predicates.js.map +1 -0
- package/dist/rules/rulesets/base-ui.d.ts +3 -0
- package/dist/rules/rulesets/base-ui.d.ts.map +1 -0
- package/dist/rules/rulesets/base-ui.js +65 -0
- package/dist/rules/rulesets/base-ui.js.map +1 -0
- package/dist/rules/rulesets/radix-legacy.d.ts +3 -0
- package/dist/rules/rulesets/radix-legacy.d.ts.map +1 -0
- package/dist/rules/rulesets/radix-legacy.js +38 -0
- package/dist/rules/rulesets/radix-legacy.js.map +1 -0
- package/dist/rules/types.d.ts +57 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +2 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/signatures/disambiguation.d.ts +30 -0
- package/dist/signatures/disambiguation.d.ts.map +1 -0
- package/dist/signatures/disambiguation.js +99 -0
- package/dist/signatures/disambiguation.js.map +1 -0
- package/dist/signatures/distinguishing.d.ts +29 -0
- package/dist/signatures/distinguishing.d.ts.map +1 -0
- package/dist/signatures/distinguishing.js +108 -0
- package/dist/signatures/distinguishing.js.map +1 -0
- package/dist/signatures/generator.d.ts +20 -0
- package/dist/signatures/generator.d.ts.map +1 -0
- package/dist/signatures/generator.js +147 -0
- package/dist/signatures/generator.js.map +1 -0
- package/dist/signatures/index.d.ts +10 -0
- package/dist/signatures/index.d.ts.map +1 -0
- package/dist/signatures/index.js +10 -0
- package/dist/signatures/index.js.map +1 -0
- package/dist/signatures/inference.d.ts +37 -0
- package/dist/signatures/inference.d.ts.map +1 -0
- package/dist/signatures/inference.js +132 -0
- package/dist/signatures/inference.js.map +1 -0
- package/dist/tools/analyze-component.d.ts +41 -0
- package/dist/tools/analyze-component.d.ts.map +1 -0
- package/dist/tools/analyze-component.js +274 -0
- package/dist/tools/analyze-component.js.map +1 -0
- package/dist/tools/check-updates.d.ts +33 -0
- package/dist/tools/check-updates.d.ts.map +1 -0
- package/dist/tools/check-updates.js +81 -0
- package/dist/tools/check-updates.js.map +1 -0
- package/dist/tools/diff-versions.d.ts +39 -0
- package/dist/tools/diff-versions.d.ts.map +1 -0
- package/dist/tools/diff-versions.js +78 -0
- package/dist/tools/diff-versions.js.map +1 -0
- package/dist/tools/extract-primitive.d.ts +50 -0
- package/dist/tools/extract-primitive.d.ts.map +1 -0
- package/dist/tools/extract-primitive.js +145 -0
- package/dist/tools/extract-primitive.js.map +1 -0
- package/dist/tools/generate-report.d.ts +29 -0
- package/dist/tools/generate-report.d.ts.map +1 -0
- package/dist/tools/generate-report.js +36 -0
- package/dist/tools/generate-report.js.map +1 -0
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +11 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/list-primitives.d.ts +41 -0
- package/dist/tools/list-primitives.d.ts.map +1 -0
- package/dist/tools/list-primitives.js +74 -0
- package/dist/tools/list-primitives.js.map +1 -0
- package/dist/tools/run-audit.d.ts +43 -0
- package/dist/tools/run-audit.d.ts.map +1 -0
- package/dist/tools/run-audit.js +60 -0
- package/dist/tools/run-audit.js.map +1 -0
- package/dist/types/index.d.ts +143 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/docs/architecture.md +88 -0
- package/docs/providers.md +47 -0
- package/docs/tools.md +143 -0
- 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 @@
|
|
|
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
|
+
}
|