@tanstack/cli 0.60.1 → 0.62.0

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 (66) hide show
  1. package/dist/cli.js +266 -11
  2. package/dist/command-line.js +103 -8
  3. package/dist/discovery.js +144 -0
  4. package/dist/options.js +35 -2
  5. package/dist/types/command-line.d.ts +7 -0
  6. package/dist/types/{mcp/types.d.ts → discovery.d.ts} +23 -75
  7. package/dist/types/types.d.ts +1 -2
  8. package/dist/types/ui-prompts.d.ts +5 -0
  9. package/dist/ui-prompts.js +26 -0
  10. package/package.json +6 -5
  11. package/skills/CHANGELOG.md +18 -0
  12. package/skills/add-addons-existing-app/SKILL.md +113 -0
  13. package/skills/choose-ecosystem-integrations/SKILL.md +140 -0
  14. package/skills/choose-ecosystem-integrations/references/authentication-providers.md +19 -0
  15. package/skills/choose-ecosystem-integrations/references/data-layer-providers.md +20 -0
  16. package/skills/choose-ecosystem-integrations/references/deployment-targets.md +19 -0
  17. package/skills/create-app-scaffold/SKILL.md +132 -0
  18. package/skills/create-app-scaffold/references/create-flag-compatibility-matrix.md +34 -0
  19. package/skills/create-app-scaffold/references/deployment-providers.md +19 -0
  20. package/skills/create-app-scaffold/references/framework-adapters.md +17 -0
  21. package/skills/create-app-scaffold/references/toolchains.md +17 -0
  22. package/skills/maintain-custom-addons-dev-watch/SKILL.md +118 -0
  23. package/skills/query-docs-library-metadata/SKILL.md +85 -0
  24. package/skills/query-docs-library-metadata/references/discovery-command-output-schemas.md +70 -0
  25. package/CHANGELOG.md +0 -787
  26. package/dist/mcp/api.js +0 -31
  27. package/dist/mcp/tools.js +0 -250
  28. package/dist/mcp/types.js +0 -37
  29. package/dist/mcp.js +0 -181
  30. package/dist/types/mcp/api.d.ts +0 -4
  31. package/dist/types/mcp/tools.d.ts +0 -2
  32. package/dist/types/mcp.d.ts +0 -5
  33. package/playwright-report/index.html +0 -85
  34. package/playwright.config.ts +0 -21
  35. package/src/bin.ts +0 -15
  36. package/src/cli.ts +0 -767
  37. package/src/command-line.ts +0 -473
  38. package/src/dev-watch.ts +0 -564
  39. package/src/file-syncer.ts +0 -263
  40. package/src/index.ts +0 -21
  41. package/src/mcp/api.ts +0 -42
  42. package/src/mcp/tools.ts +0 -323
  43. package/src/mcp/types.ts +0 -46
  44. package/src/mcp.ts +0 -263
  45. package/src/options.ts +0 -234
  46. package/src/types.ts +0 -28
  47. package/src/ui-environment.ts +0 -74
  48. package/src/ui-prompts.ts +0 -355
  49. package/src/utils.ts +0 -30
  50. package/test-results/.last-run.json +0 -4
  51. package/tests/command-line.test.ts +0 -622
  52. package/tests/index.test.ts +0 -9
  53. package/tests/mcp.test.ts +0 -225
  54. package/tests/options.test.ts +0 -216
  55. package/tests/setupVitest.ts +0 -6
  56. package/tests/ui-environment.test.ts +0 -97
  57. package/tests/ui-prompts.test.ts +0 -205
  58. package/tests-e2e/addons-smoke.spec.ts +0 -31
  59. package/tests-e2e/create-smoke.spec.ts +0 -39
  60. package/tests-e2e/helpers.ts +0 -526
  61. package/tests-e2e/matrix-opportunistic.spec.ts +0 -142
  62. package/tests-e2e/router-only-smoke.spec.ts +0 -68
  63. package/tests-e2e/solid-smoke.spec.ts +0 -25
  64. package/tests-e2e/templates-smoke.spec.ts +0 -52
  65. package/tsconfig.json +0 -17
  66. package/vitest.config.js +0 -8
@@ -0,0 +1,132 @@
1
+ ---
2
+ name: create-app-scaffold
3
+ description: >
4
+ Scaffold a TanStack app with tanstack create using --framework, --template,
5
+ --toolchain, --deployment, --add-ons, and --router-only. Covers flag
6
+ compatibility, non-interactive defaults, and intent-preserving command
7
+ construction.
8
+ type: core
9
+ library: tanstack-cli
10
+ library_version: "0.61.0"
11
+ ---
12
+
13
+ # Create App Scaffold
14
+
15
+ Use this skill to build a deterministic `tanstack create` command before running generation. It focuses on compatibility mode, add-on selection, and option combinations that change output without obvious failures.
16
+
17
+ ## Setup
18
+
19
+ ```bash
20
+ npx @tanstack/cli create acme-web \
21
+ --framework react \
22
+ --toolchain biome \
23
+ --deployment netlify \
24
+ --add-ons tanstack-query,clerk \
25
+ -y
26
+ ```
27
+
28
+ ## Core Patterns
29
+
30
+ ### Build a deterministic non-interactive scaffold
31
+
32
+ ```bash
33
+ npx @tanstack/cli create acme-solid \
34
+ --framework solid \
35
+ --add-ons drizzle,tanstack-query \
36
+ --toolchain eslint \
37
+ -y
38
+ ```
39
+
40
+ ### Use router-only mode for compatibility scaffolds only
41
+
42
+ ```bash
43
+ npx @tanstack/cli create legacy-router \
44
+ --router-only \
45
+ --framework react \
46
+ --toolchain biome \
47
+ -y
48
+ ```
49
+
50
+ ### Use template input only outside router-only mode
51
+
52
+ ```bash
53
+ npx @tanstack/cli create custom-app \
54
+ --framework react \
55
+ --template https://github.com/acme/tanstack-template \
56
+ --add-ons tanstack-query \
57
+ -y
58
+ ```
59
+
60
+ ## Common Mistakes
61
+
62
+ ### HIGH Pass --add-ons without explicit ids
63
+
64
+ Wrong:
65
+ ```bash
66
+ npx @tanstack/cli create my-app --add-ons -y
67
+ ```
68
+
69
+ Correct:
70
+ ```bash
71
+ npx @tanstack/cli create my-app --add-ons clerk,drizzle -y
72
+ ```
73
+
74
+ In non-interactive runs, empty add-on selection can complete with defaults and silently miss intended integrations. Fixed in newer versions, but agents trained on older examples may still generate this pattern.
75
+
76
+ Source: https://github.com/TanStack/cli/issues/234
77
+
78
+ ### HIGH Assume --no-tailwind is still supported
79
+
80
+ Wrong:
81
+ ```bash
82
+ npx @tanstack/cli create my-app --no-tailwind -y
83
+ ```
84
+
85
+ Correct:
86
+ ```bash
87
+ npx @tanstack/cli create my-app -y
88
+ ```
89
+
90
+ `--no-tailwind` is deprecated and ignored, so output still includes Tailwind and diverges from expected stack constraints.
91
+
92
+ Source: packages/cli/src/command-line.ts:369
93
+
94
+ ### CRITICAL Combine router-only with template/deployment/add-ons
95
+
96
+ Wrong:
97
+ ```bash
98
+ npx @tanstack/cli create my-app \
99
+ --router-only \
100
+ --template some-template \
101
+ --deployment cloudflare \
102
+ --add-ons clerk \
103
+ -y
104
+ ```
105
+
106
+ Correct:
107
+ ```bash
108
+ npx @tanstack/cli create my-app --router-only --framework react -y
109
+ ```
110
+
111
+ Router-only compatibility mode ignores template, deployment, and add-on intent, so the command succeeds but produces a materially different scaffold.
112
+
113
+ Source: packages/cli/src/command-line.ts:343
114
+
115
+ ### HIGH Tension: Compatibility mode vs explicit intent
116
+
117
+ This domain's patterns conflict with choose-ecosystem-integrations. Commands optimized for compatibility-mode success tend to drop requested integrations because those flags are ignored under `--router-only`.
118
+
119
+ See also: choose-ecosystem-integrations/SKILL.md § Common Mistakes
120
+
121
+ ### HIGH Tension: Single-command convenience vs integration precision
122
+
123
+ This domain's patterns conflict with query-docs-library-metadata. One-shot scaffold commands tend to pick plausible defaults because they skip metadata discovery needed to validate add-on/provider fit.
124
+
125
+ See also: query-docs-library-metadata/SKILL.md § Common Mistakes
126
+
127
+ ## References
128
+
129
+ - [Create flag compatibility matrix](references/create-flag-compatibility-matrix.md)
130
+ - [Framework adapter options](references/framework-adapters.md)
131
+ - [Deployment provider options](references/deployment-providers.md)
132
+ - [Toolchain options](references/toolchains.md)
@@ -0,0 +1,34 @@
1
+ # Create Flag Compatibility Matrix
2
+
3
+ Targets `@tanstack/cli` v0.61.0.
4
+
5
+ ## Compatibility
6
+
7
+ | Flag | Works with normal create | Works with `--router-only` | Notes |
8
+ |---|---|---|---|
9
+ | `--framework` | yes | yes | Framework is still honored in both modes. |
10
+ | `--toolchain` | yes | yes | Toolchain selection remains available. |
11
+ | `--add-ons` | yes | no | Ignored in router-only mode. |
12
+ | `--deployment` | yes | no | Ignored in router-only mode. |
13
+ | `--template` / `--starter` | yes | no | Ignored in router-only mode. |
14
+ | `--template-id` | yes | no | Ignored in router-only mode. |
15
+ | `--tailwind` / `--no-tailwind` | deprecated/ignored | deprecated/ignored | Tailwind is always enabled. |
16
+
17
+ Source: `packages/cli/src/command-line.ts:337`
18
+
19
+ ## Recommended command construction order
20
+
21
+ 1. Choose mode (`--router-only` or full scaffold).
22
+ 2. If full scaffold, resolve add-ons and deployment first.
23
+ 3. Add framework and toolchain.
24
+ 4. Pass explicit add-on ids and use `-y` only after flags are final.
25
+
26
+ ## Safe presets
27
+
28
+ ```bash
29
+ # Full scaffold preset
30
+ npx @tanstack/cli create app --framework react --add-ons tanstack-query --deployment netlify -y
31
+
32
+ # Router-only preset
33
+ npx @tanstack/cli create app --router-only --framework react --toolchain biome -y
34
+ ```
@@ -0,0 +1,19 @@
1
+ # Deployment Provider Options
2
+
3
+ Targets `@tanstack/cli` v0.61.0.
4
+
5
+ ## Common providers
6
+
7
+ - `cloudflare`
8
+ - `netlify`
9
+ - `railway`
10
+ - `nitro`
11
+
12
+ ## Usage
13
+
14
+ ```bash
15
+ npx @tanstack/cli create app --deployment cloudflare -y
16
+ npx @tanstack/cli create app --deployment netlify -y
17
+ ```
18
+
19
+ Deployment providers are exclusive; choose one per scaffold.
@@ -0,0 +1,17 @@
1
+ # Framework Adapter Options
2
+
3
+ Targets `@tanstack/cli` v0.61.0.
4
+
5
+ ## Supported values
6
+
7
+ - `react`
8
+ - `solid`
9
+
10
+ ## Usage
11
+
12
+ ```bash
13
+ npx @tanstack/cli create app --framework react -y
14
+ npx @tanstack/cli create app --framework solid -y
15
+ ```
16
+
17
+ Framework selection controls scaffold variant and add-on compatibility surfaces.
@@ -0,0 +1,17 @@
1
+ # Toolchain Options
2
+
3
+ Targets `@tanstack/cli` v0.61.0.
4
+
5
+ ## Supported values
6
+
7
+ - `eslint`
8
+ - `biome`
9
+
10
+ ## Usage
11
+
12
+ ```bash
13
+ npx @tanstack/cli create app --toolchain eslint -y
14
+ npx @tanstack/cli create app --toolchain biome -y
15
+ ```
16
+
17
+ Toolchain choices are exclusive and affect generated lint configuration.
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: maintain-custom-addons-dev-watch
3
+ description: >
4
+ Build and iterate custom add-ons/templates with tanstack add-on init,
5
+ add-on compile, add-on dev, and tanstack dev --dev-watch, including sync
6
+ loop preconditions, watch-path validation, and project metadata constraints.
7
+ type: lifecycle
8
+ library: tanstack-cli
9
+ library_version: "0.61.0"
10
+ requires:
11
+ - add-addons-existing-app
12
+ ---
13
+
14
+ # Maintain Custom Add-ons In Dev Watch
15
+
16
+ Use this skill for local add-on authoring workflows where you continuously compile and sync package output into a target app.
17
+
18
+ ## Setup
19
+
20
+ ```bash
21
+ npx @tanstack/cli add-on init
22
+ npx @tanstack/cli add-on compile
23
+ ```
24
+
25
+ ## Core Patterns
26
+
27
+ ### Run add-on dev loop while editing source
28
+
29
+ ```bash
30
+ npx @tanstack/cli add-on dev
31
+ ```
32
+
33
+ ### Sync watched package output into target app
34
+
35
+ ```bash
36
+ npx @tanstack/cli dev --dev-watch ../my-addon-package
37
+ ```
38
+
39
+ ### Re-run compile before apply when changing metadata
40
+
41
+ ```bash
42
+ npx @tanstack/cli add-on compile
43
+ npx @tanstack/cli add my-custom-addon
44
+ ```
45
+
46
+ ## Common Mistakes
47
+
48
+ ### HIGH Use --dev-watch with --no-install
49
+
50
+ Wrong:
51
+ ```bash
52
+ npx @tanstack/cli dev --dev-watch ../my-addon-package --no-install
53
+ ```
54
+
55
+ Correct:
56
+ ```bash
57
+ npx @tanstack/cli dev --dev-watch ../my-addon-package
58
+ ```
59
+
60
+ Dev-watch rejects `--no-install`, so automated loops fail before any sync work starts.
61
+
62
+ Source: packages/cli/src/dev-watch.ts:112
63
+
64
+ ### HIGH Start dev-watch without valid package entry
65
+
66
+ Wrong:
67
+ ```bash
68
+ npx @tanstack/cli dev --dev-watch ../missing-or-invalid-package
69
+ ```
70
+
71
+ Correct:
72
+ ```bash
73
+ npx @tanstack/cli dev --dev-watch ../valid-addon-package
74
+ ```
75
+
76
+ Watch setup validates path and package metadata first, so invalid targets fail before file syncing begins.
77
+
78
+ Source: packages/cli/src/dev-watch.ts:100
79
+
80
+ ### CRITICAL Author add-on from code-router project
81
+
82
+ Wrong:
83
+ ```bash
84
+ npx @tanstack/cli add-on init
85
+ ```
86
+
87
+ Correct:
88
+ ```bash
89
+ # Run add-on init from a file-router project
90
+ npx @tanstack/cli add-on init
91
+ ```
92
+
93
+ Custom add-on authoring expects file-router mode and exits when run from incompatible project modes.
94
+
95
+ Source: packages/create/src/custom-add-ons/add-on.ts
96
+
97
+ ### HIGH Run add-on workflows without scaffold metadata
98
+
99
+ Wrong:
100
+ ```bash
101
+ npx @tanstack/cli add-on dev
102
+ ```
103
+
104
+ Correct:
105
+ ```bash
106
+ # Run in a project scaffolded by TanStack CLI (contains .cta.json), then:
107
+ npx @tanstack/cli add-on dev
108
+ ```
109
+
110
+ Custom add-on flows rely on persisted scaffold options, so missing metadata blocks initialization and update paths.
111
+
112
+ Source: packages/create/src/custom-add-ons/shared.ts:158
113
+
114
+ ### HIGH Tension: Backwards support vs deterministic automation
115
+
116
+ This domain's patterns conflict with add-addons-existing-app. Tooling assumes reusable automation, but hidden metadata preconditions from legacy support make add-on loops non-portable across repositories.
117
+
118
+ See also: add-addons-existing-app/SKILL.md § Common Mistakes
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: query-docs-library-metadata
3
+ description: >
4
+ Retrieve machine-readable context with tanstack libraries, tanstack doc,
5
+ tanstack search-docs, tanstack create --list-add-ons --json, and
6
+ --addon-details for agent-safe discovery and preflight validation.
7
+ type: core
8
+ library: tanstack-cli
9
+ library_version: "0.61.0"
10
+ ---
11
+
12
+ # Query Docs And Library Metadata
13
+
14
+ Use this skill to collect authoritative context before code generation or integration selection.
15
+
16
+ ## Setup
17
+
18
+ ```bash
19
+ npx @tanstack/cli libraries --json
20
+ ```
21
+
22
+ ## Core Patterns
23
+
24
+ ### Resolve valid library ids before doc fetch
25
+
26
+ ```bash
27
+ npx @tanstack/cli libraries --json
28
+ ```
29
+
30
+ ### Fetch a specific docs page with explicit version
31
+
32
+ ```bash
33
+ npx @tanstack/cli doc --library router --version latest --path /docs/framework/react/guide/routing
34
+ ```
35
+
36
+ ### Search docs for implementation targets
37
+
38
+ ```bash
39
+ npx @tanstack/cli search-docs "server functions" --library start --json
40
+ ```
41
+
42
+ ## Common Mistakes
43
+
44
+ ### HIGH Use invalid library id/version/path for doc fetch
45
+
46
+ Wrong:
47
+ ```bash
48
+ npx @tanstack/cli doc --library made-up-lib --version latest --path /docs
49
+ ```
50
+
51
+ Correct:
52
+ ```bash
53
+ npx @tanstack/cli libraries --json
54
+ npx @tanstack/cli doc --library router --version latest --path /docs/framework/react/guide/routing
55
+ ```
56
+
57
+ `doc` validates identifiers against registry metadata and fails when any segment is not real.
58
+
59
+ Source: packages/cli/src/cli.ts:746
60
+
61
+ ### MEDIUM Rely on deprecated create alias for discovery
62
+
63
+ Wrong:
64
+ ```bash
65
+ npx create-tsrouter-app --list-add-ons
66
+ ```
67
+
68
+ Correct:
69
+ ```bash
70
+ npx @tanstack/cli create --list-add-ons --json
71
+ ```
72
+
73
+ Legacy alias workflows can produce confusing outputs that do not match current CLI discovery behavior. Fixed in newer versions, but agents trained on older examples may still generate this pattern.
74
+
75
+ Source: https://github.com/TanStack/cli/issues/93
76
+
77
+ ### HIGH Tension: Single-command convenience vs integration precision
78
+
79
+ This domain's patterns conflict with create-app-scaffold and choose-ecosystem-integrations. Skipping discovery to run one-shot scaffold commands tends to lock in plausible defaults that miss architecture constraints.
80
+
81
+ See also: create-app-scaffold/SKILL.md § Common Mistakes
82
+
83
+ ## References
84
+
85
+ - [Discovery command output schemas](references/discovery-command-output-schemas.md)
@@ -0,0 +1,70 @@
1
+ # Discovery Command Output Schemas
2
+
3
+ Targets `@tanstack/cli` v0.61.0.
4
+
5
+ ## `tanstack libraries --json`
6
+
7
+ ```json
8
+ {
9
+ "count": 3,
10
+ "libraries": [
11
+ {
12
+ "id": "router",
13
+ "label": "TanStack Router",
14
+ "description": "Type-safe routing",
15
+ "latestVersion": "latest"
16
+ }
17
+ ]
18
+ }
19
+ ```
20
+
21
+ ## `tanstack search-docs <query> --json`
22
+
23
+ ```json
24
+ {
25
+ "query": "server functions",
26
+ "results": [
27
+ {
28
+ "library": "start",
29
+ "version": "latest",
30
+ "title": "Server Functions",
31
+ "path": "/docs/framework/react/guide/server-functions"
32
+ }
33
+ ]
34
+ }
35
+ ```
36
+
37
+ ## `tanstack create --list-add-ons --json`
38
+
39
+ ```json
40
+ {
41
+ "count": 4,
42
+ "addOns": [
43
+ {
44
+ "id": "drizzle",
45
+ "name": "Drizzle",
46
+ "category": "database",
47
+ "dependsOn": []
48
+ }
49
+ ]
50
+ }
51
+ ```
52
+
53
+ ## `tanstack create --addon-details <id> --json`
54
+
55
+ ```json
56
+ {
57
+ "id": "prisma",
58
+ "name": "Prisma",
59
+ "options": [
60
+ {
61
+ "name": "provider",
62
+ "default": "postgres",
63
+ "choices": ["postgres", "sqlite", "mysql"]
64
+ }
65
+ ],
66
+ "dependsOn": []
67
+ }
68
+ ```
69
+
70
+ Use this reference to parse shapes defensively and normalize fields before feeding downstream planning or generation steps.