cursortoys 0.4.0 → 0.6.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 (45) hide show
  1. package/README.md +54 -21
  2. package/dist/cli.js +177 -106
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/http-test.d.ts.map +1 -1
  5. package/dist/commands/http-test.js +16 -22
  6. package/dist/commands/http-test.js.map +1 -1
  7. package/dist/commands/skill-install.d.ts +12 -1
  8. package/dist/commands/skill-install.d.ts.map +1 -1
  9. package/dist/commands/skill-install.js +40 -12
  10. package/dist/commands/skill-install.js.map +1 -1
  11. package/dist/commands/skills-import.d.ts +20 -0
  12. package/dist/commands/skills-import.d.ts.map +1 -0
  13. package/dist/commands/skills-import.js +85 -0
  14. package/dist/commands/skills-import.js.map +1 -0
  15. package/dist/httpDynamicVariables.d.ts +16 -0
  16. package/dist/httpDynamicVariables.d.ts.map +1 -0
  17. package/dist/httpDynamicVariables.js +155 -0
  18. package/dist/httpDynamicVariables.js.map +1 -0
  19. package/dist/httpRequestExtensions.d.ts +24 -0
  20. package/dist/httpRequestExtensions.d.ts.map +1 -0
  21. package/dist/httpRequestExtensions.js +67 -0
  22. package/dist/httpRequestExtensions.js.map +1 -0
  23. package/dist/httpRunner.d.ts.map +1 -1
  24. package/dist/httpRunner.js +10 -6
  25. package/dist/httpRunner.js.map +1 -1
  26. package/dist/llmOutput.d.ts +21 -0
  27. package/dist/llmOutput.d.ts.map +1 -0
  28. package/dist/llmOutput.js +109 -0
  29. package/dist/llmOutput.js.map +1 -0
  30. package/dist/skillRemoteImporter.d.ts +32 -0
  31. package/dist/skillRemoteImporter.d.ts.map +1 -0
  32. package/dist/skillRemoteImporter.js +247 -0
  33. package/dist/skillRemoteImporter.js.map +1 -0
  34. package/dist/skillWriter.d.ts +11 -0
  35. package/dist/skillWriter.d.ts.map +1 -0
  36. package/dist/skillWriter.js +58 -0
  37. package/dist/skillWriter.js.map +1 -0
  38. package/llms.txt +35 -19
  39. package/package.json +2 -2
  40. package/resources/skills/cursor-toys-http/SKILL.md +7 -5
  41. package/resources/skills/cursortoys-cli/SKILL.md +93 -0
  42. package/dist/banner.d.ts +0 -7
  43. package/dist/banner.d.ts.map +0 -1
  44. package/dist/banner.js +0 -60
  45. package/dist/banner.js.map +0 -1
package/README.md CHANGED
@@ -2,9 +2,11 @@
2
2
 
3
3
  Command-line utilities for CursorToys: HTTP testing, skill management, automation, and productivity tools.
4
4
 
5
+ **Current version:** 0.6.0
6
+
5
7
  ## Features
6
8
 
7
- - **HTTP Testing**: Run `.req` / `.request` files as automated tests
9
+ - **HTTP Testing**: Run `.req`, `.request`, `.http`, and `.rest` files as automated tests
8
10
  - **Skill Management**: Create and manage AI agent skills
9
11
  - **LLM Instructions**: Built-in usage guide for LLMs
10
12
  - **Productivity Tools**: Utilities for development workflow
@@ -41,7 +43,7 @@ npm link
41
43
 
42
44
  ### HTTP Testing
43
45
 
44
- Run HTTP request files (`.req` / `.request`) from the project's `http` folder as automated tests. Uses the same format and behavior as the CursorToys VS Code extension (REST Client format, `# @var`, `# @env`, `{{VAR}}`, project-root `.env` files).
46
+ Run HTTP request files (`.req`, `.request`, `.http`, `.rest`) from the project's `http` folder as automated tests. Uses the same format and behavior as the CursorToys VS Code extension (REST Client format, `# @var`, `# @env`, `{{VAR}}`, project-root `.env` files).
45
47
 
46
48
  #### Run all HTTP tests
47
49
 
@@ -51,7 +53,7 @@ From the project root (where `.cursor/http/` or your configured base folder live
51
53
  cursortoys http test
52
54
  ```
53
55
 
54
- Discovers all `.req` and `.request` files under the `http` folder (recursively), runs every request block in each file, and reports pass/fail. A request **passes** when status is 2xx, or when all `@assert` blocks pass (assertions override status).
56
+ Discovers all HTTP request files under the `http` folder (recursively), runs every request block in each file, and reports pass/fail. A request **passes** when status is 2xx, or when all `@assert` blocks pass (assertions override status).
55
57
 
56
58
  #### Run a single file or folder
57
59
 
@@ -89,14 +91,15 @@ Same as in the CursorToys extension:
89
91
  - **REST Client**: `METHOD URL` then optional headers and body; multiple requests separated by `###` or `##` sections
90
92
  - **Variables**: `# @var VAR_NAME=value`; `# @env name` to select environment (`default` uses `.env`)
91
93
  - **Substitution**: `{{VAR_NAME}}` resolved from `# @var`, then from `.env.{name}` at project root
94
+ - **System dynamic variables**: `{{$guid}}`, `{{$randomInt min max}}`, `{{$timestamp}}`, `{{$datetime}}`, `{{$localDatetime}}`, `{{$processEnv VAR}}`, `{{$dotenv VAR}}`
95
+ - **Helper functions**: `{{@uuid()}}`, `{{@randomIn(1,10)}}`, etc.
92
96
  - **Delay**: `# @delay(milliseconds)` before executing a block
93
97
  - **Assertions**: block comments with `@assert(...)` — when present, all must pass
94
98
  - **Chained response** (`@SETTER` / `@GETTER`): capture a value from one response and use it in the next block (or file in the same run)
95
99
 
96
100
  Reserved hook files (directory-level setup/teardown):
97
101
 
98
- - `__before__.req` / `__before__.request`: runs **before** other request files in that directory
99
- - `__after__.req` / `__after__.request`: runs **after** other request files in that directory
102
+ - `__before__.*` / `__after__.*`: runs **before** / **after** other request files in that directory (extensions: `.req`, `.request`, `.http`, `.rest`)
100
103
  - Hook files are **not** treated as normal tests (they don't get discovered twice).
101
104
 
102
105
  Example:
@@ -174,36 +177,64 @@ cursortoys http test -f .cursor/http/api.req --verbose --var API_KEY=xxx
174
177
  cursortoys http test --folder integrations
175
178
  ```
176
179
 
177
- ### Skill Management
180
+ ### Skill Management (`skills`)
178
181
 
179
- Create and manage AI agent skills for Cursor AI.
182
+ Create, install official skills, and import from GitHub parity with the CursorToys extension.
180
183
 
181
184
  ```bash
182
- cursortoys skill add my-skill
183
- cursortoys skill add http-testing -d "Skill for testing HTTP APIs"
184
- cursortoys skill add api-docs -t project -p /path/to/project
185
+ cursortoys skills add my-skill
186
+ cursortoys skills add http-testing -d "Skill for testing HTTP APIs"
187
+ cursortoys skills add api-docs -t project -p /path/to/project
188
+
189
+ # Official bundled skills (see `skills list`)
190
+ cursortoys skills install # default: http (HTTP .req docs)
191
+ cursortoys skills install cli # CLI commands and flags
192
+ cursortoys skills install http -t project -p .
193
+ cursortoys skills install http --force
194
+
195
+ # Import full skill folder from GitHub (/tree/{branch}/{folder})
196
+ cursortoys skills import https://github.com/org/repo/tree/main/path/to/skill-folder -t project -p .
197
+
198
+ cursortoys skills list
185
199
  ```
186
200
 
201
+ | Subcommand | Description |
202
+ |------------|-------------|
203
+ | `add <name>` | Create `SKILL.md` from template |
204
+ | `install [name]` | Install bundled skill (`http`, `cli`) |
205
+ | `import <url>` | Import skill folder from GitHub (requires `SKILL.md` at folder root) |
206
+ | `list` | List official bundled skills |
207
+
208
+ Shared options for `add`, `install`, and `import`:
209
+
187
210
  | Option | Description |
188
211
  |-------|-------------|
189
- | `-d, --description <text>` | Skill description |
190
212
  | `-t, --target <type>` | `personal` or `project` (default: `personal`) |
191
213
  | `-p, --project <dir>` | Project directory (required if target is `project`) |
192
214
  | `--base-folder <name>` | Base folder name (default: `cursor`) |
215
+ | `-f, --force` | Overwrite existing skill (`install` / `import`) |
216
+ | `-d, --description <text>` | Skill description (`add` only) |
193
217
 
194
- **Install bundled HTTP skill** (same as CursorToys extension hooks, `@SETTER`/`@GETTER`, CLI docs):
218
+ **GitHub import URL format:** `https://github.com/{owner}/{repo}/tree/{branch}/{folder}` (HTTPS only). Unauthenticated API rate limit applies (~60 requests/hour).
195
219
 
196
- ```bash
197
- cursortoys skill install # default: http
198
- cursortoys skill install http -t project -p .
199
- cursortoys skill install http --force # reinstall
200
- cursortoys skill list
201
- ```
220
+ **Deprecated:** `cursortoys skill …` still works but prints a deprecation notice — use `skills`.
221
+
222
+ Bundled skills: **`http`** (`cursor-toys-http`) HTTP `.req` files, hooks, `@SETTER`/`@GETTER`; **`cli`** (`cursortoys-cli`) — CLI commands, flags, and CI usage.
202
223
 
203
224
  ### LLM Instructions
204
225
 
205
226
  ```bash
227
+ # Full instructions (llms.txt)
206
228
  cursortoys --llm
229
+
230
+ # Filter by topic (case-insensitive)
231
+ cursortoys --llm --grep http
232
+
233
+ # Line numbers only
234
+ cursortoys --llm --grep http --indices
235
+
236
+ # Section index (## / ### headings)
237
+ cursortoys --llm --indices
207
238
  ```
208
239
 
209
240
  ## HTTP Test Output
@@ -227,12 +258,14 @@ Exit code is `0` if all tests passed, `1` if any failed or no files were run.
227
258
 
228
259
  ## Integration with CursorToys Extension
229
260
 
230
- The CLI matches the CursorToys VS Code extension:
261
+ The CLI matches the CursorToys VS Code extension (v2026.6.11+ for HTTP extensions):
231
262
 
232
- - Same `.req` / `.request` file format
263
+ - Same `.req`, `.request`, `.http`, and `.rest` file format
264
+ - REST Client system dynamic variables (`{{$guid}}`, `{{$timestamp}}`, `{{$dotenv}}`, etc.)
233
265
  - Project-root `.env*` files (not under `http/`)
234
266
  - Same base folder configuration
235
- - Compatible with Cursor AI Agent Skills
267
+ - Directory hooks (`__before__` / `__after__`), `@SETTER` / `@GETTER` chaining, and `@assert` blocks
268
+ - Compatible with Cursor AI Agent Skills (`skills add`, `install`, `import`)
236
269
 
237
270
  ## License
238
271
 
package/dist/cli.js CHANGED
@@ -42,21 +42,23 @@ const chalk_1 = __importDefault(require("chalk"));
42
42
  const http_test_1 = require("./commands/http-test");
43
43
  const skill_add_1 = require("./commands/skill-add");
44
44
  const skill_install_1 = require("./commands/skill-install");
45
+ const skills_import_1 = require("./commands/skills-import");
45
46
  const path = __importStar(require("path"));
46
- const fs = __importStar(require("fs"));
47
+ const package_json_1 = require("../package.json");
48
+ const llmOutput_1 = require("./llmOutput");
47
49
  const program = new commander_1.Command();
48
50
  program
49
51
  .name('cursortoys')
50
52
  .description('Command-line utilities for CursorToys - HTTP testing, automation, and productivity tools')
51
- .version('0.3.0');
53
+ .version(package_json_1.version);
52
54
  program
53
55
  .command('http test')
54
- .description('Run .req/.request files in the project http folder as tests')
56
+ .description('Run HTTP request files (.req, .request, .http, .rest) in the project http folder as tests')
55
57
  .option('-p, --project <dir>', 'Project directory (default: cwd)')
56
58
  .option('--base-folder <name>', 'Base folder name (default: cursor, or CURSORTOYS_BASE_FOLDER)')
57
59
  .option('-e, --env <name>', 'Environment to use (overrides # @env in file; loads .env.{name} at project root)')
58
60
  .option('-t, --timeout <seconds>', 'Request timeout in seconds (default: 10)', '10')
59
- .option('-f, --file <path>', 'Run a single .req/.request file or a directory of request files')
61
+ .option('-f, --file <path>', 'Run a single request file or a directory of request files')
60
62
  .option('--folder <path>', 'Run all request files under this subfolder of the http directory')
61
63
  .option('-V, --verbose', 'Show request and response for each test')
62
64
  .option('--var <key=value>', 'Override variable (KEY=value); can be repeated', (v, acc) => {
@@ -191,7 +193,7 @@ program
191
193
  console.log(chalk_1.default.dim(`Time: ${duration}s`));
192
194
  }
193
195
  else {
194
- console.log(chalk_1.default.yellow(' No .req or .request files found in the http folder.'));
196
+ console.log(chalk_1.default.yellow(' No HTTP request files (.req, .request, .http, .rest) found in the http folder.'));
195
197
  console.log(chalk_1.default.dim(`Time: ${duration}s`));
196
198
  }
197
199
  process.exit(1);
@@ -209,125 +211,194 @@ program
209
211
  console.log(chalk_1.default.dim(`Time: ${duration}s`));
210
212
  process.exit(failed.length > 0 ? 1 : 0);
211
213
  });
212
- // Skill commands
213
- const skillCommand = program
214
- .command('skill')
215
- .description('Manage AI agent skills');
216
- skillCommand
217
- .command('add <name>')
218
- .description('Create a new skill file with a template')
219
- .option('-d, --description <text>', 'Skill description')
220
- .option('-t, --target <type>', 'Target directory (personal or project)', 'personal')
221
- .option('-p, --project <dir>', 'Project directory (required if target is project)')
222
- .option('--base-folder <name>', 'Base folder name (default: cursor, or CURSORTOYS_BASE_FOLDER)')
223
- .action(async (name, opts) => {
224
- const baseFolder = opts.baseFolder || process.env.CURSORTOYS_BASE_FOLDER || 'cursor';
214
+ function resolveSkillTarget(opts, subcommand) {
225
215
  const target = opts.target === 'project' ? 'project' : 'personal';
226
- // Validate target
227
216
  if (target === 'project' && !opts.project) {
228
217
  console.log(chalk_1.default.red('Error: --project is required when target is "project"'));
229
- console.log(chalk_1.default.dim('Usage: cursortoys skill add <name> -t project -p /path/to/project'));
218
+ console.log(chalk_1.default.dim(`Usage: cursortoys skills ${subcommand} ... -t project -p /path/to/project`));
230
219
  process.exit(1);
231
220
  }
232
- console.log(chalk_1.default.dim(`Creating skill: ${name}`));
233
- console.log(chalk_1.default.dim(`Target: ${target}`));
234
- if (opts.description) {
235
- console.log(chalk_1.default.dim(`Description: ${opts.description}`));
236
- }
237
- const result = await (0, skill_add_1.addSkill)({
238
- name,
239
- description: opts.description,
240
- target: target,
241
- project: opts.project,
242
- baseFolder
221
+ return target;
222
+ }
223
+ function registerSkillsSubcommands(skillsCommand) {
224
+ skillsCommand
225
+ .command('add <name>')
226
+ .description('Create a new skill file with a template')
227
+ .option('-d, --description <text>', 'Skill description')
228
+ .option('-t, --target <type>', 'Target directory (personal or project)', 'personal')
229
+ .option('-p, --project <dir>', 'Project directory (required if target is project)')
230
+ .option('--base-folder <name>', 'Base folder name (default: cursor, or CURSORTOYS_BASE_FOLDER)')
231
+ .action(async (name, opts) => {
232
+ const baseFolder = opts.baseFolder || process.env.CURSORTOYS_BASE_FOLDER || 'cursor';
233
+ const target = resolveSkillTarget(opts, 'add');
234
+ if (!target)
235
+ return;
236
+ console.log(chalk_1.default.dim(`Creating skill: ${name}`));
237
+ console.log(chalk_1.default.dim(`Target: ${target}`));
238
+ if (opts.description) {
239
+ console.log(chalk_1.default.dim(`Description: ${opts.description}`));
240
+ }
241
+ const result = await (0, skill_add_1.addSkill)({
242
+ name,
243
+ description: opts.description,
244
+ target,
245
+ project: opts.project,
246
+ baseFolder,
247
+ });
248
+ if (result.success && result.filePath) {
249
+ console.log('');
250
+ console.log(chalk_1.default.green('✓ Skill created successfully!'));
251
+ console.log('');
252
+ console.log(chalk_1.default.dim('File: ') + result.filePath);
253
+ console.log('');
254
+ console.log(chalk_1.default.dim('Edit the SKILL.md file to customize the skill.'));
255
+ }
256
+ else {
257
+ console.log('');
258
+ console.log(chalk_1.default.red('✗ Failed to create skill'));
259
+ console.log(chalk_1.default.red(result.error || 'Unknown error'));
260
+ process.exit(1);
261
+ }
243
262
  });
244
- if (result.success && result.filePath) {
245
- console.log('');
246
- console.log(chalk_1.default.green(' Skill created successfully!'));
247
- console.log('');
248
- console.log(chalk_1.default.dim('File: ') + result.filePath);
249
- console.log('');
250
- console.log(chalk_1.default.dim('Edit the SKILL.md file to customize the skill.'));
251
- }
252
- else {
253
- console.log('');
254
- console.log(chalk_1.default.red('✗ Failed to create skill'));
255
- console.log(chalk_1.default.red(result.error || 'Unknown error'));
256
- process.exit(1);
257
- }
258
- });
259
- skillCommand
260
- .command('install [name]')
261
- .description('Install a bundled skill (default: http → cursor-toys-http)')
262
- .option('-t, --target <type>', 'Target directory (personal or project)', 'personal')
263
- .option('-p, --project <dir>', 'Project directory (required if target is project)')
264
- .option('--base-folder <name>', 'Base folder name (default: cursor, or CURSORTOYS_BASE_FOLDER)')
265
- .option('-f, --force', 'Overwrite existing SKILL.md')
266
- .action(async (name, opts) => {
267
- const skillName = name ?? 'http';
268
- const baseFolder = opts.baseFolder || process.env.CURSORTOYS_BASE_FOLDER || 'cursor';
269
- const target = opts.target === 'project' ? 'project' : 'personal';
270
- if (target === 'project' && !opts.project) {
271
- console.log(chalk_1.default.red('Error: --project is required when target is "project"'));
272
- console.log(chalk_1.default.dim('Usage: cursortoys skill install http -t project -p .'));
273
- process.exit(1);
274
- }
275
- console.log(chalk_1.default.dim(`Installing skill: ${skillName}`));
276
- console.log(chalk_1.default.dim(`Target: ${target}`));
277
- console.log(chalk_1.default.dim(`Bundled aliases: ${(0, skill_install_1.listBundledSkillAliases)().join(', ')}`));
278
- const result = await (0, skill_install_1.installSkill)({
279
- name: skillName,
280
- target,
281
- project: opts.project,
282
- baseFolder,
283
- force: opts.force,
263
+ skillsCommand
264
+ .command('install [name]')
265
+ .description('Install a bundled official skill (default: http)')
266
+ .option('-t, --target <type>', 'Target directory (personal or project)', 'personal')
267
+ .option('-p, --project <dir>', 'Project directory (required if target is project)')
268
+ .option('--base-folder <name>', 'Base folder name (default: cursor, or CURSORTOYS_BASE_FOLDER)')
269
+ .option('-f, --force', 'Overwrite existing skill')
270
+ .action(async (name, opts) => {
271
+ const skillName = name ?? 'http';
272
+ const baseFolder = opts.baseFolder || process.env.CURSORTOYS_BASE_FOLDER || 'cursor';
273
+ const target = resolveSkillTarget(opts, 'install');
274
+ if (!target)
275
+ return;
276
+ console.log(chalk_1.default.dim(`Installing skill: ${skillName}`));
277
+ console.log(chalk_1.default.dim(`Target: ${target}`));
278
+ console.log(chalk_1.default.dim(`Install names: ${(0, skill_install_1.listBundledSkillInstallNames)().join(', ')}`));
279
+ const result = await (0, skill_install_1.installSkill)({
280
+ name: skillName,
281
+ target,
282
+ project: opts.project,
283
+ baseFolder,
284
+ force: opts.force,
285
+ });
286
+ if (result.success && result.filePath) {
287
+ console.log('');
288
+ if (result.reinstalled) {
289
+ console.log(chalk_1.default.green('✓ Skill reinstalled successfully!'));
290
+ }
291
+ else {
292
+ console.log(chalk_1.default.green('✓ Skill installed successfully!'));
293
+ }
294
+ console.log('');
295
+ console.log(chalk_1.default.dim('Skill id: ') + (result.skillId ?? skillName));
296
+ console.log(chalk_1.default.dim('File: ') + result.filePath);
297
+ console.log('');
298
+ const entry = result.skillId ? (0, skill_install_1.getBundledSkillEntry)(result.skillId) : undefined;
299
+ if (entry) {
300
+ console.log(chalk_1.default.dim(entry.summary));
301
+ }
302
+ }
303
+ else {
304
+ console.log('');
305
+ console.log(chalk_1.default.red('✗ Failed to install skill'));
306
+ console.log(chalk_1.default.red(result.error || 'Unknown error'));
307
+ process.exit(1);
308
+ }
284
309
  });
285
- if (result.success && result.filePath) {
286
- console.log('');
287
- if (result.reinstalled) {
288
- console.log(chalk_1.default.green(' Skill reinstalled successfully!'));
310
+ skillsCommand
311
+ .command('import <url>')
312
+ .description('Import a skill folder from a GitHub URL (/tree/{branch}/{folder})')
313
+ .option('-t, --target <type>', 'Target directory (personal or project)', 'personal')
314
+ .option('-p, --project <dir>', 'Project directory (required if target is project)')
315
+ .option('--base-folder <name>', 'Base folder name (default: cursor, or CURSORTOYS_BASE_FOLDER)')
316
+ .option('-f, --force', 'Overwrite existing skill folder')
317
+ .action(async (url, opts) => {
318
+ const baseFolder = opts.baseFolder || process.env.CURSORTOYS_BASE_FOLDER || 'cursor';
319
+ const target = resolveSkillTarget(opts, 'import');
320
+ if (!target)
321
+ return;
322
+ console.log(chalk_1.default.dim(`Importing from: ${url}`));
323
+ console.log(chalk_1.default.dim(`Target: ${target}`));
324
+ const result = await (0, skills_import_1.importSkill)({
325
+ url,
326
+ target,
327
+ project: opts.project,
328
+ baseFolder,
329
+ force: opts.force,
330
+ });
331
+ if (result.success && result.filePath) {
332
+ console.log('');
333
+ console.log(chalk_1.default.green('✓ Skill imported successfully!'));
334
+ console.log('');
335
+ console.log(chalk_1.default.dim('Skill: ') + (result.skillName ?? ''));
336
+ console.log(chalk_1.default.dim('Files: ') + String(result.fileCount ?? 0));
337
+ console.log(chalk_1.default.dim('SKILL.md: ') + result.filePath);
289
338
  }
290
339
  else {
291
- console.log(chalk_1.default.green('✓ Skill installed successfully!'));
340
+ console.log('');
341
+ console.log(chalk_1.default.red('✗ Failed to import skill'));
342
+ console.log(chalk_1.default.red(result.error || 'Unknown error'));
343
+ process.exit(1);
344
+ }
345
+ });
346
+ skillsCommand
347
+ .command('list')
348
+ .description('List official bundled skills available for install')
349
+ .action(() => {
350
+ const skills = (0, skill_install_1.listBundledSkills)();
351
+ console.log(chalk_1.default.bold('Official bundled skills'));
352
+ for (const skill of skills) {
353
+ const installName = skill.aliases[0] ?? skill.id;
354
+ const aliasNote = skill.aliases.length > 0 ? chalk_1.default.dim(` (${skill.id})`) : '';
355
+ console.log(` ${chalk_1.default.cyan(installName)}${aliasNote}`);
356
+ console.log(chalk_1.default.dim(` ${skill.summary}`));
292
357
  }
293
358
  console.log('');
294
- console.log(chalk_1.default.dim('Skill id: ') + (result.skillId ?? skillName));
295
- console.log(chalk_1.default.dim('File: ') + result.filePath);
296
- console.log('');
297
- console.log(chalk_1.default.dim('The agent will use this skill for HTTP .req files, hooks, and @SETTER/@GETTER.'));
298
- }
299
- else {
300
- console.log('');
301
- console.log(chalk_1.default.red('✗ Failed to install skill'));
302
- console.log(chalk_1.default.red(result.error || 'Unknown error'));
303
- process.exit(1);
304
- }
305
- });
306
- skillCommand
307
- .command('list')
308
- .description('List bundled skills available for install')
309
- .action(() => {
310
- const aliases = (0, skill_install_1.listBundledSkillAliases)();
311
- console.log(chalk_1.default.bold('Bundled skills'));
312
- for (const alias of aliases) {
313
- console.log(` ${chalk_1.default.cyan(alias)}`);
314
- }
315
- console.log('');
316
- console.log(chalk_1.default.dim('Install: cursortoys skill install <alias> [-t personal|project] [-p projectDir]'));
359
+ console.log(chalk_1.default.dim('Install: cursortoys skills install <name> [-t personal|project] [-p projectDir]'));
360
+ console.log(chalk_1.default.dim('Import: cursortoys skills import <github-folder-url> [-t personal|project] [-p projectDir]'));
361
+ });
362
+ }
363
+ const skillsCommand = program.command('skills').description('Manage AI agent skills');
364
+ registerSkillsSubcommands(skillsCommand);
365
+ const legacySkillCommand = program
366
+ .command('skill')
367
+ .description('(deprecated) Use "skills" instead')
368
+ .hook('preAction', () => {
369
+ console.error(chalk_1.default.yellow('Deprecation: use "cursortoys skills" instead of "cursortoys skill".'));
317
370
  });
371
+ registerSkillsSubcommands(legacySkillCommand);
318
372
  // LLM instructions command
319
373
  program
320
374
  .option('--llm', 'Show LLM instructions for using this CLI')
375
+ .option('--grep <pattern>', 'Filter llms.txt lines (case-insensitive substring)')
376
+ .option('--indices', 'Line references only (with --grep) or section index (without --grep)')
321
377
  .action((opts) => {
322
378
  if (opts.llm) {
323
- const llmsPath = path.join(__dirname, '..', 'llms.txt');
324
- if (fs.existsSync(llmsPath)) {
325
- const content = fs.readFileSync(llmsPath, 'utf-8');
326
- console.log(content);
379
+ const packageRoot = path.join(__dirname, '..');
380
+ const llmsPath = path.join(packageRoot, 'llms.txt');
381
+ if (opts.grep !== undefined) {
382
+ const grepCheck = (0, llmOutput_1.validateGrepPattern)(opts.grep);
383
+ if (!grepCheck.ok) {
384
+ console.error(chalk_1.default.red(`Error: ${grepCheck.error}`));
385
+ process.exit(1);
386
+ }
327
387
  }
328
- else {
329
- console.log(chalk_1.default.red('Error: llms.txt file not found'));
330
- console.log(chalk_1.default.dim('Expected location: ') + llmsPath);
388
+ try {
389
+ const content = (0, llmOutput_1.loadLlmsContent)(packageRoot);
390
+ const output = (0, llmOutput_1.formatLlmsOutput)({
391
+ content,
392
+ grep: opts.grep,
393
+ indices: opts.indices,
394
+ });
395
+ if (output.length > 0) {
396
+ process.stdout.write(output.endsWith('\n') ? output : output + '\n');
397
+ }
398
+ }
399
+ catch (err) {
400
+ console.error(chalk_1.default.red('Error: llms.txt file not found'));
401
+ console.error(chalk_1.default.dim('Expected location: ') + llmsPath);
331
402
  process.exit(1);
332
403
  }
333
404
  process.exit(0);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-test.d.ts","sourceRoot":"","sources":["../../src/commands/http-test.ts"],"names":[],"mappings":"AAEA,OAAO,EAUL,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAUpD,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8LD;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAgUlF"}
1
+ {"version":3,"file":"http-test.d.ts","sourceRoot":"","sources":["../../src/commands/http-test.ts"],"names":[],"mappings":"AAEA,OAAO,EAUL,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAepD,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwLD;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAgUlF"}
@@ -42,6 +42,7 @@ const assertionValidator_1 = require("../assertionValidator");
42
42
  const projectEnv_1 = require("../projectEnv");
43
43
  const responseChainParser_1 = require("../responseChainParser");
44
44
  const responseChain_1 = require("../responseChain");
45
+ const httpRequestExtensions_1 = require("../httpRequestExtensions");
45
46
  function getWorkspacePath(opts) {
46
47
  return opts.project ? path.resolve(opts.project) : process.cwd();
47
48
  }
@@ -54,31 +55,24 @@ function getHttpPath(workspacePath, baseFolder) {
54
55
  return path.join(workspacePath, `.${baseFolder}`, 'http');
55
56
  }
56
57
  function isRequestFile(filePath) {
57
- const ext = path.extname(filePath).toLowerCase();
58
- return ext === '.req' || filePath.endsWith('.request');
58
+ return (0, httpRequestExtensions_1.isHttpRequestFilePath)(filePath);
59
59
  }
60
60
  function isReservedHookBasename(filePath) {
61
- const ext = path.extname(filePath).toLowerCase();
62
- if (!(ext === '.req' || ext === '.request'))
63
- return false;
64
- const base = path.basename(filePath, ext);
65
- return base === '__before__' || base === '__after__';
61
+ return (0, httpRequestExtensions_1.isHttpHookFilePath)(filePath);
66
62
  }
67
63
  function findReservedHookFiles(dir) {
68
- const beforeReq = path.join(dir, '__before__.req');
69
- const beforeRequest = path.join(dir, '__before__.request');
70
- const afterReq = path.join(dir, '__after__.req');
71
- const afterRequest = path.join(dir, '__after__.request');
72
- const before = fs.existsSync(beforeReq)
73
- ? beforeReq
74
- : fs.existsSync(beforeRequest)
75
- ? beforeRequest
76
- : undefined;
77
- const after = fs.existsSync(afterReq)
78
- ? afterReq
79
- : fs.existsSync(afterRequest)
80
- ? afterRequest
81
- : undefined;
64
+ let before;
65
+ let after;
66
+ for (const ext of httpRequestExtensions_1.HTTP_REQUEST_EXTENSIONS) {
67
+ const beforePath = path.join(dir, `__before__.${ext}`);
68
+ const afterPath = path.join(dir, `__after__.${ext}`);
69
+ if (!before && fs.existsSync(beforePath)) {
70
+ before = beforePath;
71
+ }
72
+ if (!after && fs.existsSync(afterPath)) {
73
+ after = afterPath;
74
+ }
75
+ }
82
76
  return { before, after };
83
77
  }
84
78
  function listRequestFilesInDirectory(dir) {
@@ -101,7 +95,7 @@ function listSubdirectories(dir) {
101
95
  return dirs.sort();
102
96
  }
103
97
  /**
104
- * Collects all .req / .request files under a directory (recursive).
98
+ * Collects all HTTP request files under a directory (recursive).
105
99
  */
106
100
  function discoverInDirectory(dir) {
107
101
  const files = [];