noah-cursor 1.5.7 → 1.5.9
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/README.md +79 -16
- package/assets/me.jpeg +0 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +4 -0
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/browse.d.ts.map +1 -1
- package/dist/commands/browse.js +11 -1
- package/dist/commands/browse.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +5 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +6 -3
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +4 -1
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +4 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/constants/ides.d.ts +16 -0
- package/dist/constants/ides.d.ts.map +1 -0
- package/dist/constants/ides.js +69 -0
- package/dist/constants/ides.js.map +1 -0
- package/dist/constants/index.d.ts +2 -0
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +2 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/installers/asset-installer.d.ts +3 -0
- package/dist/installers/asset-installer.d.ts.map +1 -1
- package/dist/installers/asset-installer.js +6 -3
- package/dist/installers/asset-installer.js.map +1 -1
- package/dist/metadata/store.d.ts +12 -9
- package/dist/metadata/store.d.ts.map +1 -1
- package/dist/metadata/store.js +32 -23
- package/dist/metadata/store.js.map +1 -1
- package/dist/services/doctor-service.d.ts +2 -1
- package/dist/services/doctor-service.d.ts.map +1 -1
- package/dist/services/doctor-service.js +14 -13
- package/dist/services/doctor-service.js.map +1 -1
- package/dist/services/install-service.d.ts +4 -0
- package/dist/services/install-service.d.ts.map +1 -1
- package/dist/services/install-service.js +14 -7
- package/dist/services/install-service.js.map +1 -1
- package/dist/types/index.d.ts +6 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -1
- package/dist/types/index.js.map +1 -1
- package/dist/ui/ideMenu.d.ts +7 -0
- package/dist/ui/ideMenu.d.ts.map +1 -0
- package/dist/ui/ideMenu.js +36 -0
- package/dist/ui/ideMenu.js.map +1 -0
- package/dist/ui/summary.d.ts +3 -2
- package/dist/ui/summary.d.ts.map +1 -1
- package/dist/ui/summary.js +9 -4
- package/dist/ui/summary.js.map +1 -1
- package/dist/utils/fs.d.ts +4 -0
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +7 -2
- package/dist/utils/fs.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
6
|
<strong>The CLI for shipping Cursor setups that actually work.</strong><br />
|
|
7
|
-
Install battle-tested Skills, Rules, and workflows into any project —
|
|
7
|
+
Install battle-tested Skills, Rules, and workflows into any project — also works with Windsurf, Claude Code, and more.
|
|
8
8
|
</p>
|
|
9
9
|
|
|
10
10
|
<p align="center">
|
|
@@ -16,11 +16,37 @@
|
|
|
16
16
|
</p>
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
npx noah-cursor
|
|
19
|
+
npx noah-cursor browse
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
Stop copy-pasting Cursor prompts between repos. **Noah Cursor** is a developer CLI + curated registry: reusable Skills, Rules, Prompts, MCP configs, and Presets that drop straight into `.cursor/` — no clone, no sign-in, no friction.
|
|
23
23
|
|
|
24
|
+
Also supports **Windsurf**, **Claude Code**, **Continue**, **VS Code**, and **Cline** — pick your IDE at install time and assets land in the right folder.
|
|
25
|
+
|
|
26
|
+
## Works with your IDE
|
|
27
|
+
|
|
28
|
+
Built for **Cursor** first. At install time you can also target other AI IDEs — same registry, different project folder.
|
|
29
|
+
|
|
30
|
+
**Install flow:** select IDE (default: Cursor) → browse → install
|
|
31
|
+
|
|
32
|
+
| IDE | Flag | Project folder |
|
|
33
|
+
| --- | ---- | -------------- |
|
|
34
|
+
| **Cursor** | `--ide cursor` **(default)** | `.cursor/` |
|
|
35
|
+
| Windsurf | `--ide windsurf` | `.windsurf/` |
|
|
36
|
+
| Claude Code | `--ide claude-code` | `.claude/` |
|
|
37
|
+
| Continue | `--ide continue` | `.continue/` |
|
|
38
|
+
| VS Code | `--ide vscode` | `.vscode/` |
|
|
39
|
+
| Cline | `--ide cline` | `.cline/` |
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Cursor (default) — IDE picker defaults here
|
|
43
|
+
npx noah-cursor browse
|
|
44
|
+
|
|
45
|
+
# Other IDEs when you need them
|
|
46
|
+
npx noah-cursor browse --ide windsurf
|
|
47
|
+
npx noah-cursor add --skill commit-push --ide claude-code
|
|
48
|
+
```
|
|
49
|
+
|
|
24
50
|
## Built for your stack
|
|
25
51
|
|
|
26
52
|
<p align="center">
|
|
@@ -44,7 +70,7 @@ Curated Skills & Rules for the stacks you already ship — React dashboards, Lar
|
|
|
44
70
|
|
|
45
71
|
| Pain | Noah Cursor |
|
|
46
72
|
| ---- | ----------- |
|
|
47
|
-
| Rebuilding the same Cursor setup on every project | One command installs a full workflow |
|
|
73
|
+
| Rebuilding the same Cursor setup on every project | One command installs a full workflow into `.cursor/` |
|
|
48
74
|
| Vague AI prompts that drift between teammates | Versioned Skills & Rules from a real registry |
|
|
49
75
|
| Hunting docs every time you switch stacks | Stack-specific rules for React, Laravel, Next, Nuxt |
|
|
50
76
|
| Manual QA loops with lint/doctor tools | Fix Skills that run → fix → verify |
|
|
@@ -57,15 +83,17 @@ Built for people who live in the terminal and want Cursor to feel like a product
|
|
|
57
83
|
<img src="https://cdn.jsdelivr.net/npm/noah-cursor@latest/assets/noah-cursor-demo.gif" alt="Noah Cursor CLI demo" width="100%" />
|
|
58
84
|
</p>
|
|
59
85
|
|
|
86
|
+
Marketing site: [GitHub Pages](https://itsmenoahpoli.github.io/noah-cursor/) (enable Pages → GitHub Actions after first deploy).
|
|
87
|
+
|
|
60
88
|
## Quick start
|
|
61
89
|
|
|
62
90
|
Requires **Node.js 20+**.
|
|
63
91
|
|
|
64
92
|
```bash
|
|
65
|
-
#
|
|
93
|
+
# Interactive install (recommended)
|
|
66
94
|
npx noah-cursor browse
|
|
67
95
|
|
|
68
|
-
# Or install
|
|
96
|
+
# Or install globally
|
|
69
97
|
npm install -g noah-cursor
|
|
70
98
|
noah-cursor browse
|
|
71
99
|
```
|
|
@@ -75,9 +103,12 @@ The registry ships inside the package. Nothing to clone. Nothing to authenticate
|
|
|
75
103
|
### 30-second wins
|
|
76
104
|
|
|
77
105
|
```bash
|
|
78
|
-
#
|
|
106
|
+
# Cursor (default) — cleaner commits
|
|
79
107
|
npx noah-cursor add --skill commit-push
|
|
80
108
|
|
|
109
|
+
# Same skill into Windsurf
|
|
110
|
+
npx noah-cursor add --skill commit-push --ide windsurf
|
|
111
|
+
|
|
81
112
|
# Auto-generate a solid project README
|
|
82
113
|
npx noah-cursor add --skill generate-readme
|
|
83
114
|
|
|
@@ -101,7 +132,7 @@ npx noah-cursor add --rule laravel-api --rule react-spa-dashboard
|
|
|
101
132
|
| `nestjs-knip-fix` | NestJS | Knip on NestJS — unused code/deps out, features intact |
|
|
102
133
|
| `node-doctor-fix` | Node.js | Bundled node-doctor (Knip + hygiene) for generic Node |
|
|
103
134
|
|
|
104
|
-
### Rules — stack guidance
|
|
135
|
+
### Rules — stack guidance for your agent
|
|
105
136
|
|
|
106
137
|
| Rule | Stack | For |
|
|
107
138
|
| ---- | ----- | --- |
|
|
@@ -117,7 +148,7 @@ Prompts, MCP configs, and Presets are supported by the CLI — more shipping soo
|
|
|
117
148
|
|
|
118
149
|
| Command | Description |
|
|
119
150
|
| ------- | ----------- |
|
|
120
|
-
| `browse` |
|
|
151
|
+
| `browse` | Pick IDE → browse categories → install assets |
|
|
121
152
|
| `add` | Install Skills, Rules, Prompts, MCP, or Presets |
|
|
122
153
|
| `search` | Search the registry |
|
|
123
154
|
| `list` | List registry or installed assets |
|
|
@@ -127,8 +158,13 @@ Prompts, MCP configs, and Presets are supported by the CLI — more shipping soo
|
|
|
127
158
|
|
|
128
159
|
### browse
|
|
129
160
|
|
|
161
|
+
```text
|
|
162
|
+
Select IDE → Select categories → Select assets → Confirm → Install
|
|
163
|
+
```
|
|
164
|
+
|
|
130
165
|
```bash
|
|
131
166
|
noah-cursor browse
|
|
167
|
+
noah-cursor browse --ide windsurf
|
|
132
168
|
noah-cursor browse --browse-skills
|
|
133
169
|
noah-cursor browse --browse-rules
|
|
134
170
|
noah-cursor browse --browse-prompts
|
|
@@ -147,6 +183,7 @@ noah-cursor add
|
|
|
147
183
|
--prompt <name>
|
|
148
184
|
--mcp <name>
|
|
149
185
|
--preset <name>
|
|
186
|
+
--ide <name> # cursor (default) | windsurf | claude-code | continue | vscode | cline
|
|
150
187
|
--all
|
|
151
188
|
--force
|
|
152
189
|
--dry-run
|
|
@@ -158,35 +195,61 @@ Always installs from **Noah's bundled registry**.
|
|
|
158
195
|
|
|
159
196
|
```bash
|
|
160
197
|
npx noah-cursor add --skill commit-push
|
|
198
|
+
npx noah-cursor add --skill commit-push --ide claude-code
|
|
161
199
|
npx noah-cursor add --rule nextjs-marketing
|
|
162
200
|
npx noah-cursor add --all
|
|
163
201
|
```
|
|
164
202
|
|
|
165
203
|
### search / list / remove / update / doctor
|
|
166
204
|
|
|
205
|
+
Pass `--ide` when managing installs for a non-Cursor target (default: `cursor`).
|
|
206
|
+
|
|
167
207
|
```bash
|
|
168
208
|
noah-cursor search doctor
|
|
169
209
|
noah-cursor list
|
|
170
210
|
noah-cursor list --installed
|
|
211
|
+
noah-cursor list --installed --ide windsurf
|
|
171
212
|
noah-cursor remove skill test --yes
|
|
213
|
+
noah-cursor remove skill test --ide windsurf --yes
|
|
172
214
|
noah-cursor update --yes
|
|
173
215
|
noah-cursor doctor
|
|
216
|
+
noah-cursor doctor --ide claude-code
|
|
174
217
|
```
|
|
175
218
|
|
|
176
219
|
## How it works
|
|
177
220
|
|
|
178
|
-
|
|
221
|
+
By default, assets install under **`.cursor/`**. Choose another IDE and the folder follows:
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
your-project/
|
|
225
|
+
.cursor/ # Cursor (default) ← primary target
|
|
226
|
+
.windsurf/ # --ide windsurf
|
|
227
|
+
.claude/ # --ide claude-code
|
|
228
|
+
.continue/ # --ide continue
|
|
229
|
+
.vscode/ # --ide vscode
|
|
230
|
+
.cline/ # --ide cline
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Inside the IDE root (e.g. `.cursor/`):
|
|
234
|
+
|
|
235
|
+
```
|
|
236
|
+
skills/
|
|
237
|
+
rules/
|
|
238
|
+
prompts/
|
|
239
|
+
mcp/
|
|
240
|
+
noah.json # tracks installed assets + ide
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Example after a default browse install:
|
|
179
244
|
|
|
180
245
|
```
|
|
181
246
|
.cursor/
|
|
182
|
-
skills/
|
|
183
|
-
rules/
|
|
184
|
-
|
|
185
|
-
mcp/
|
|
186
|
-
noah.json # tracks what you installed
|
|
247
|
+
skills/commit-push/
|
|
248
|
+
rules/laravel-api/
|
|
249
|
+
noah.json
|
|
187
250
|
```
|
|
188
251
|
|
|
189
|
-
`noah.json` keeps versions and registry metadata so `update` and `remove` stay reliable across machines and teammates.
|
|
252
|
+
`noah.json` keeps versions, IDE, and registry metadata so `update` and `remove` stay reliable across machines and teammates.
|
|
190
253
|
|
|
191
254
|
## Build your own registry assets
|
|
192
255
|
|
|
@@ -207,7 +270,7 @@ Add an asset folder, register it in `manifest.json`, ship. Each `id` maps to a f
|
|
|
207
270
|
{
|
|
208
271
|
"name": "noah-registry",
|
|
209
272
|
"version": "1.0.0",
|
|
210
|
-
"description": "My
|
|
273
|
+
"description": "My AI IDE assets",
|
|
211
274
|
"skills": [
|
|
212
275
|
{
|
|
213
276
|
"id": "my-workflow",
|
package/assets/me.jpeg
ADDED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4DzD"}
|
package/dist/commands/add.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { createSpinner, handleCommandError, logTitle } from "../core/logger.js";
|
|
3
|
+
import { IDE_IDS, parseIdeId } from "../constants/index.js";
|
|
3
4
|
import { addFromRegistry } from "../services/install-service.js";
|
|
4
5
|
export function registerAddCommand(program) {
|
|
5
6
|
program
|
|
@@ -11,6 +12,7 @@ export function registerAddCommand(program) {
|
|
|
11
12
|
.option("--mcp <name>", "Install an MCP config by id")
|
|
12
13
|
.option("--preset <name>", "Install a preset (expands to included assets)")
|
|
13
14
|
.option("--all", "Install all assets from the registry", false)
|
|
15
|
+
.option("--ide <name>", `Target IDE (${IDE_IDS.join("|")})`, "cursor")
|
|
14
16
|
.option("--force", "Overwrite existing assets", false)
|
|
15
17
|
.option("--dry-run", "Show what would be installed without writing files", false)
|
|
16
18
|
.option("-y, --yes", "Skip confirmation prompts", false)
|
|
@@ -18,6 +20,7 @@ export function registerAddCommand(program) {
|
|
|
18
20
|
.action(async (opts) => {
|
|
19
21
|
const spinner = createSpinner("Loading registry…");
|
|
20
22
|
try {
|
|
23
|
+
const ide = parseIdeId(opts.ide);
|
|
21
24
|
spinner.start();
|
|
22
25
|
const options = {
|
|
23
26
|
skill: opts.skill,
|
|
@@ -30,6 +33,7 @@ export function registerAddCommand(program) {
|
|
|
30
33
|
dryRun: opts.dryRun,
|
|
31
34
|
yes: opts.yes,
|
|
32
35
|
verbose: opts.verbose,
|
|
36
|
+
ide,
|
|
33
37
|
};
|
|
34
38
|
spinner.text = "Validating and installing assets…";
|
|
35
39
|
const results = await addFromRegistry(undefined, options);
|
package/dist/commands/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;SACjD,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;SAC/C,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;SACnD,MAAM,CAAC,cAAc,EAAE,6BAA6B,CAAC;SACrD,MAAM,CAAC,iBAAiB,EAAE,+CAA+C,CAAC;SAC1E,MAAM,CAAC,OAAO,EAAE,sCAAsC,EAAE,KAAK,CAAC;SAC9D,MAAM,CAAC,SAAS,EAAE,2BAA2B,EAAE,KAAK,CAAC;SACrD,MAAM,CAAC,WAAW,EAAE,oDAAoD,EAAE,KAAK,CAAC;SAChF,MAAM,CAAC,WAAW,EAAE,2BAA2B,EAAE,KAAK,CAAC;SACvD,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../src/commands/browse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../src/commands/browse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmEpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgH5D"}
|
package/dist/commands/browse.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { handleCommandError, logWarn } from "../core/logger.js";
|
|
3
|
+
import { IDE_IDS } from "../constants/index.js";
|
|
3
4
|
import { installFromSelections } from "../services/install-service.js";
|
|
4
5
|
import { loadRegistry } from "../services/registry-loader.js";
|
|
5
6
|
import { getManifestAssets } from "../utils/assets.js";
|
|
6
7
|
import { resolveNoahRegistry } from "../utils/registry.js";
|
|
8
|
+
import { selectIde } from "../ui/ideMenu.js";
|
|
7
9
|
import { selectCategories } from "../ui/categoryMenu.js";
|
|
8
10
|
import { selectAssets } from "../ui/assetMenu.js";
|
|
9
11
|
import { confirmInstallation } from "../ui/summary.js";
|
|
@@ -53,6 +55,7 @@ export function registerBrowseCommand(program) {
|
|
|
53
55
|
.option("--browse-prompts", "Browse prompts only", false)
|
|
54
56
|
.option("--browse-mcp", "Browse MCP configs only", false)
|
|
55
57
|
.option("--browse-presets", "Browse presets only", false)
|
|
58
|
+
.option("--ide <name>", `Target IDE (${IDE_IDS.join("|")}); skips the IDE picker`)
|
|
56
59
|
.option("--force", "Overwrite existing assets", false)
|
|
57
60
|
.option("--dry-run", "Show what would be installed without writing files", false)
|
|
58
61
|
.option("-y, --yes", "Skip final confirmation", false)
|
|
@@ -69,6 +72,12 @@ export function registerBrowseCommand(program) {
|
|
|
69
72
|
progress.succeed(`Reading manifest${manifest.name ? chalk.dim(` (${manifest.name}@${manifest.version})`) : ""}`);
|
|
70
73
|
console.log();
|
|
71
74
|
try {
|
|
75
|
+
const ide = await selectIde(opts.ide);
|
|
76
|
+
if (!ide) {
|
|
77
|
+
logWarn("Browse cancelled.");
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
console.log();
|
|
72
81
|
const flagged = categoriesFromFlags(opts);
|
|
73
82
|
const categories = await selectCategories(flagged.length > 0 ? flagged : undefined);
|
|
74
83
|
if (!categories || categories.length === 0) {
|
|
@@ -87,7 +96,7 @@ export function registerBrowseCommand(program) {
|
|
|
87
96
|
}
|
|
88
97
|
const shouldInstall = opts.yes ||
|
|
89
98
|
opts.dryRun ||
|
|
90
|
-
(await confirmInstallation(registry.url, selections));
|
|
99
|
+
(await confirmInstallation(registry.url, selections, ide));
|
|
91
100
|
if (!shouldInstall) {
|
|
92
101
|
logWarn("Installation cancelled.");
|
|
93
102
|
return;
|
|
@@ -100,6 +109,7 @@ export function registerBrowseCommand(program) {
|
|
|
100
109
|
force: opts.force,
|
|
101
110
|
dryRun: opts.dryRun,
|
|
102
111
|
verbose: opts.verbose,
|
|
112
|
+
ide,
|
|
103
113
|
onStepStart: async (message) => {
|
|
104
114
|
progress.start(formatStep(message));
|
|
105
115
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browse.js","sourceRoot":"","sources":["../../src/commands/browse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAuB,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"browse.js","sourceRoot":"","sources":["../../src/commands/browse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuC5D"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { handleCommandError, logTitle } from "../core/logger.js";
|
|
3
|
+
import { IDE_IDS, parseIdeId } from "../constants/index.js";
|
|
3
4
|
import { runDoctor } from "../services/doctor-service.js";
|
|
4
5
|
export function registerDoctorCommand(program) {
|
|
5
6
|
program
|
|
6
7
|
.command("doctor")
|
|
7
8
|
.description("Diagnose Noah Cursor environment and installation health")
|
|
9
|
+
.option("--ide <name>", `Target IDE (${IDE_IDS.join("|")})`, "cursor")
|
|
8
10
|
.option("-v, --verbose", "Verbose output", false)
|
|
9
11
|
.action(async (opts) => {
|
|
10
12
|
try {
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
+
const ide = parseIdeId(opts.ide);
|
|
14
|
+
const checks = await runDoctor(process.cwd(), ide);
|
|
15
|
+
logTitle(`Noah Cursor Doctor · ${ide}`);
|
|
13
16
|
let failures = 0;
|
|
14
17
|
for (const check of checks) {
|
|
15
18
|
const icon = check.status === "pass"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CACL,cAAc,EACd,eAAe,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EACnC,QAAQ,CACT;SACA,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,IAAyC,EAAE,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;YACnD,QAAQ,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;YAExC,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,GACR,KAAK,CAAC,MAAM,KAAK,MAAM;oBACrB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;oBAClB,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM;wBACvB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;wBACnB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACrE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;oBAAE,QAAQ,IAAI,CAAC,CAAC;YAC7C,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,mBAAmB,CAAC,CAAC,CAAC;gBACvD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuE1D"}
|
package/dist/commands/list.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { createSpinner, handleCommandError, logInfo, logTitle } from "../core/logger.js";
|
|
3
|
+
import { IDE_IDS, parseIdeId } from "../constants/index.js";
|
|
3
4
|
import { listInstalledAssets } from "../metadata/store.js";
|
|
4
5
|
import { listRegistryAssets } from "../services/install-service.js";
|
|
5
6
|
const TYPE_ORDER = ["skill", "rule", "prompt", "mcp", "preset"];
|
|
@@ -8,16 +9,18 @@ export function registerListCommand(program) {
|
|
|
8
9
|
.command("list")
|
|
9
10
|
.description("List all Skills, Rules, Prompts, MCP configs, and Presets in Noah's registry")
|
|
10
11
|
.option("--installed", "List locally installed assets only", false)
|
|
12
|
+
.option("--ide <name>", `Target IDE for --installed (${IDE_IDS.join("|")})`, "cursor")
|
|
11
13
|
.option("-v, --verbose", "Verbose output", false)
|
|
12
14
|
.action(async (opts) => {
|
|
13
15
|
if (opts.installed) {
|
|
14
16
|
try {
|
|
15
|
-
const
|
|
17
|
+
const ide = parseIdeId(opts.ide);
|
|
18
|
+
const listed = await listInstalledAssets(process.cwd(), ide);
|
|
16
19
|
if (listed.installed.length === 0) {
|
|
17
|
-
logInfo(
|
|
20
|
+
logInfo(`No assets installed for ${ide}. Use \`noah-cursor browse\` or \`noah-cursor add\` to install some.`);
|
|
18
21
|
return;
|
|
19
22
|
}
|
|
20
|
-
logTitle(`Installed assets (${listed.installed.length})`);
|
|
23
|
+
logTitle(`Installed assets (${listed.installed.length}) · ${ide}`);
|
|
21
24
|
console.log();
|
|
22
25
|
for (const asset of listed.installed) {
|
|
23
26
|
console.log(` ${chalk.cyan(asset.type.padEnd(7))} ${chalk.bold(asset.id)}@${asset.version}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,MAAM,UAAU,GAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAE7E,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,8EAA8E,CAAC;SAC3F,MAAM,CAAC,aAAa,EAAE,oCAAoC,EAAE,KAAK,CAAC;SAClE,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,MAAM,UAAU,GAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAE7E,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,8EAA8E,CAAC;SAC3F,MAAM,CAAC,aAAa,EAAE,oCAAoC,EAAE,KAAK,CAAC;SAClE,MAAM,CACL,cAAc,EACd,+BAA+B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EACnD,QAAQ,CACT;SACA,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,IAA8D,EAAE,EAAE;QAC/E,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC7D,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAClC,OAAO,CACL,2BAA2B,GAAG,sEAAsE,CACrG,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,QAAQ,CAAC,qBAAqB,MAAM,CAAC,SAAS,CAAC,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC;gBACnE,OAAO,CAAC,GAAG,EAAE,CAAC;gBAEd,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrC,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CACjF,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACnD,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9E,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,2CAA2C,CAAC,CAAC;gBACrD,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,oBAAoB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;gBACnE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,SAAS;gBACX,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/F,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;oBAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3E,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,EAAE,CACxF,CAAC;gBACJ,CAAC;gBACD,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoD5D"}
|
package/dist/commands/remove.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createSpinner, handleCommandError } from "../core/logger.js";
|
|
2
2
|
import { removeAsset } from "../services/install-service.js";
|
|
3
|
-
import { ASSET_TYPES } from "../constants/index.js";
|
|
3
|
+
import { ASSET_TYPES, IDE_IDS, parseIdeId } from "../constants/index.js";
|
|
4
4
|
import { ValidationError } from "../core/errors.js";
|
|
5
5
|
export function registerRemoveCommand(program) {
|
|
6
6
|
program
|
|
@@ -9,6 +9,7 @@ export function registerRemoveCommand(program) {
|
|
|
9
9
|
.description("Remove an installed asset")
|
|
10
10
|
.argument("<type>", `Asset type (${ASSET_TYPES.join("|")})`)
|
|
11
11
|
.argument("<id>", "Asset id")
|
|
12
|
+
.option("--ide <name>", `Target IDE (${IDE_IDS.join("|")})`, "cursor")
|
|
12
13
|
.option("--force", "Remove even if not in metadata", false)
|
|
13
14
|
.option("--dry-run", "Show what would be removed", false)
|
|
14
15
|
.option("-y, --yes", "Skip confirmation prompts", false)
|
|
@@ -19,12 +20,14 @@ export function registerRemoveCommand(program) {
|
|
|
19
20
|
if (!ASSET_TYPES.includes(type)) {
|
|
20
21
|
throw new ValidationError(`Invalid asset type "${type}". Expected one of: ${ASSET_TYPES.join(", ")}`);
|
|
21
22
|
}
|
|
23
|
+
const ide = parseIdeId(opts.ide);
|
|
22
24
|
spinner.start();
|
|
23
25
|
await removeAsset(type, id, {
|
|
24
26
|
force: opts.force,
|
|
25
27
|
dryRun: opts.dryRun,
|
|
26
28
|
yes: opts.yes,
|
|
27
29
|
verbose: opts.verbose,
|
|
30
|
+
ide,
|
|
28
31
|
});
|
|
29
32
|
spinner.stop();
|
|
30
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,2BAA2B,CAAC;SACxC,QAAQ,CAAC,QAAQ,EAAE,eAAe,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;SAC3D,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;SAC5B,MAAM,CACL,cAAc,EACd,eAAe,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EACnC,QAAQ,CACT;SACA,MAAM,CAAC,SAAS,EAAE,gCAAgC,EAAE,KAAK,CAAC;SAC1D,MAAM,CAAC,WAAW,EAAE,4BAA4B,EAAE,KAAK,CAAC;SACxD,MAAM,CAAC,WAAW,EAAE,2BAA2B,EAAE,KAAK,CAAC;SACvD,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC;SAChD,MAAM,CACL,KAAK,EACH,IAAY,EACZ,EAAU,EACV,IAMC,EACD,EAAE;QACF,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAiB,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,eAAe,CACvB,uBAAuB,IAAI,uBAAuB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3E,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,WAAW,CAAC,IAAiB,EAAE,EAAE,EAAE;gBACvC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG;aACJ,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CACF,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyC5D"}
|
package/dist/commands/update.js
CHANGED
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { createSpinner, handleCommandError, logTitle } from "../core/logger.js";
|
|
3
|
+
import { IDE_IDS, parseIdeId } from "../constants/index.js";
|
|
3
4
|
import { updateAssets } from "../services/install-service.js";
|
|
4
5
|
export function registerUpdateCommand(program) {
|
|
5
6
|
program
|
|
6
7
|
.command("update")
|
|
7
8
|
.description("Update installed assets from their registry")
|
|
9
|
+
.option("--ide <name>", `Target IDE (${IDE_IDS.join("|")})`, "cursor")
|
|
8
10
|
.option("--dry-run", "Show what would be updated", false)
|
|
9
11
|
.option("-y, --yes", "Skip confirmation prompts", false)
|
|
10
12
|
.option("-v, --verbose", "Verbose output", false)
|
|
11
13
|
.action(async (opts) => {
|
|
12
14
|
const spinner = createSpinner("Updating installed assets…");
|
|
13
15
|
try {
|
|
16
|
+
const ide = parseIdeId(opts.ide);
|
|
14
17
|
spinner.start();
|
|
15
18
|
const results = await updateAssets({
|
|
16
19
|
dryRun: opts.dryRun,
|
|
17
20
|
yes: opts.yes,
|
|
18
21
|
verbose: opts.verbose,
|
|
19
22
|
force: true,
|
|
23
|
+
ide,
|
|
20
24
|
});
|
|
21
25
|
spinner.stop();
|
|
22
26
|
if (results.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6CAA6C,CAAC;SAC1D,MAAM,CAAC,WAAW,EAAE,4BAA4B,EAAE,KAAK,CAAC;SACxD,MAAM,CAAC,WAAW,EAAE,2BAA2B,EAAE,KAAK,CAAC;SACvD,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC;SAChD,MAAM,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6CAA6C,CAAC;SAC1D,MAAM,CACL,cAAc,EACd,eAAe,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EACnC,QAAQ,CACT;SACA,MAAM,CAAC,WAAW,EAAE,4BAA4B,EAAE,KAAK,CAAC;SACxD,MAAM,CAAC,WAAW,EAAE,2BAA2B,EAAE,KAAK,CAAC;SACvD,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC;SAChD,MAAM,CACL,KAAK,EAAE,IAA0E,EAAE,EAAE;QACnF,MAAM,OAAO,GAAG,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC;gBACjC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI;gBACX,GAAG;aACJ,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACpB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,CACzF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CACF,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const IDE_IDS: readonly ["cursor", "windsurf", "claude-code", "continue", "vscode", "cline"];
|
|
2
|
+
export type IdeId = (typeof IDE_IDS)[number];
|
|
3
|
+
export declare const DEFAULT_IDE: IdeId;
|
|
4
|
+
export interface IdeDefinition {
|
|
5
|
+
id: IdeId;
|
|
6
|
+
name: string;
|
|
7
|
+
/** Project-root directory where assets are installed */
|
|
8
|
+
rootDir: string;
|
|
9
|
+
hint: string;
|
|
10
|
+
}
|
|
11
|
+
/** Supported IDE install targets. Assets land under `{rootDir}/{skills,rules,...}`. */
|
|
12
|
+
export declare const IDE_DEFINITIONS: readonly IdeDefinition[];
|
|
13
|
+
export declare function isIdeId(value: string): value is IdeId;
|
|
14
|
+
export declare function getIdeDefinition(id: IdeId): IdeDefinition;
|
|
15
|
+
export declare function parseIdeId(value: string | undefined, fallback?: IdeId): IdeId;
|
|
16
|
+
//# sourceMappingURL=ides.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ides.d.ts","sourceRoot":"","sources":["../../src/constants/ides.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,+EAOV,CAAC;AAEX,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7C,eAAO,MAAM,WAAW,EAAE,KAAgB,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,uFAAuF;AACvF,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAqC1C,CAAC;AAEX,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,KAAK,CAErD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,KAAK,GAAG,aAAa,CAMzD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAE,KAAmB,GAAG,KAAK,CAW1F"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export const IDE_IDS = [
|
|
2
|
+
"cursor",
|
|
3
|
+
"windsurf",
|
|
4
|
+
"claude-code",
|
|
5
|
+
"continue",
|
|
6
|
+
"vscode",
|
|
7
|
+
"cline",
|
|
8
|
+
];
|
|
9
|
+
export const DEFAULT_IDE = "cursor";
|
|
10
|
+
/** Supported IDE install targets. Assets land under `{rootDir}/{skills,rules,...}`. */
|
|
11
|
+
export const IDE_DEFINITIONS = [
|
|
12
|
+
{
|
|
13
|
+
id: "cursor",
|
|
14
|
+
name: "Cursor",
|
|
15
|
+
rootDir: ".cursor",
|
|
16
|
+
hint: "Skills, Rules, and MCP under .cursor/",
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: "windsurf",
|
|
20
|
+
name: "Windsurf",
|
|
21
|
+
rootDir: ".windsurf",
|
|
22
|
+
hint: "Cascade rules and workflows under .windsurf/",
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
id: "claude-code",
|
|
26
|
+
name: "Claude Code",
|
|
27
|
+
rootDir: ".claude",
|
|
28
|
+
hint: "Claude Code skills and settings under .claude/",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: "continue",
|
|
32
|
+
name: "Continue",
|
|
33
|
+
rootDir: ".continue",
|
|
34
|
+
hint: "Continue prompts and rules under .continue/",
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: "vscode",
|
|
38
|
+
name: "VS Code",
|
|
39
|
+
rootDir: ".vscode",
|
|
40
|
+
hint: "Workspace AI assets under .vscode/",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: "cline",
|
|
44
|
+
name: "Cline",
|
|
45
|
+
rootDir: ".cline",
|
|
46
|
+
hint: "Cline rules and prompts under .cline/",
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
export function isIdeId(value) {
|
|
50
|
+
return IDE_IDS.includes(value);
|
|
51
|
+
}
|
|
52
|
+
export function getIdeDefinition(id) {
|
|
53
|
+
const found = IDE_DEFINITIONS.find((ide) => ide.id === id);
|
|
54
|
+
if (!found) {
|
|
55
|
+
throw new Error(`Unknown IDE: ${id}`);
|
|
56
|
+
}
|
|
57
|
+
return found;
|
|
58
|
+
}
|
|
59
|
+
export function parseIdeId(value, fallback = DEFAULT_IDE) {
|
|
60
|
+
if (!value) {
|
|
61
|
+
return fallback;
|
|
62
|
+
}
|
|
63
|
+
const normalized = value.trim().toLowerCase();
|
|
64
|
+
if (!isIdeId(normalized)) {
|
|
65
|
+
throw new Error(`Unknown IDE "${value}". Supported: ${IDE_IDS.join(", ")}`);
|
|
66
|
+
}
|
|
67
|
+
return normalized;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=ides.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ides.js","sourceRoot":"","sources":["../../src/constants/ides.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,QAAQ;IACR,UAAU;IACV,aAAa;IACb,UAAU;IACV,QAAQ;IACR,OAAO;CACC,CAAC;AAIX,MAAM,CAAC,MAAM,WAAW,GAAU,QAAQ,CAAC;AAU3C,uFAAuF;AACvF,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,uCAAuC;KAC9C;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,8CAA8C;KACrD;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,gDAAgD;KACvD;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,6CAA6C;KACpD;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,oCAAoC;KAC3C;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,uCAAuC;KAC9C;CACO,CAAC;AAEX,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAQ,OAA6B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAS;IACxC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAyB,EAAE,WAAkB,WAAW;IACjF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,gBAAgB,KAAK,iBAAiB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3D,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export declare const CLI_NAME = "noah-cursor";
|
|
2
2
|
export declare const CLI_VERSION: string;
|
|
3
|
+
/** @deprecated Prefer IDE root via getIdeDefinition — kept for Cursor default. */
|
|
3
4
|
export declare const CURSOR_DIR = ".cursor";
|
|
4
5
|
export declare const METADATA_FILE = "noah.json";
|
|
5
6
|
export declare const MANIFEST_FILE = "manifest.json";
|
|
7
|
+
export { DEFAULT_IDE, IDE_DEFINITIONS, IDE_IDS, getIdeDefinition, isIdeId, parseIdeId, type IdeDefinition, type IdeId, } from "./ides.js";
|
|
6
8
|
/** Official Noah asset registry (Skills, Rules, Prompts, MCP, Presets). */
|
|
7
9
|
export declare const OFFICIAL_REGISTRY_OWNER = "itsmenoahpoli";
|
|
8
10
|
export declare const OFFICIAL_REGISTRY_REPO = "noah-cursor";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ,gBAAgB,CAAC;AACtC,eAAO,MAAM,WAAW,QAAc,CAAC;AACvC,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,aAAa,cAAc,CAAC;AACzC,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AACvD,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,iBAAiB,iDAA4E,CAAC;AAE3G,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AAErD,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AAEtD,eAAO,MAAM,WAAW,uDAAwD,CAAC;AAEjF,eAAO,MAAM,iBAAiB;;;;;;CAMpB,CAAC;AAEX,eAAO,MAAM,sBAAsB,2DAA4D,CAAC;AAEhG,eAAO,MAAM,eAAe,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ,gBAAgB,CAAC;AACtC,eAAO,MAAM,WAAW,QAAc,CAAC;AACvC,kFAAkF;AAClF,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,aAAa,cAAc,CAAC;AACzC,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,OAAO,EACL,WAAW,EACX,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,KAAK,GACX,MAAM,WAAW,CAAC;AAEnB,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AACvD,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,iBAAiB,iDAA4E,CAAC;AAE3G,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AAErD,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AAEtD,eAAO,MAAM,WAAW,uDAAwD,CAAC;AAEjF,eAAO,MAAM,iBAAiB;;;;;;CAMpB,CAAC;AAEX,eAAO,MAAM,sBAAsB,2DAA4D,CAAC;AAEhG,eAAO,MAAM,eAAe,iBAAiB,CAAC"}
|