@cmssy/cli 0.12.1 → 0.14.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.
package/README.md CHANGED
@@ -14,64 +14,54 @@ npm install -g cmssy-cli
14
14
  # 1. Create a new project
15
15
  npx cmssy init my-blocks
16
16
 
17
- # 2. Navigate to project
17
+ # 2. Navigate to project + install deps
18
18
  cd my-blocks
19
-
20
- # 3. Install dependencies
21
19
  npm install
22
20
 
23
- # 4. Start development server
21
+ # 3. Link the project to your Cmssy workspace (interactive - pick workspace, paste token)
22
+ cmssy link
23
+
24
+ # 4. Verify the setup is healthy
25
+ cmssy doctor
26
+
27
+ # 5. Start the dev server with hot reload
24
28
  cmssy dev
25
29
 
26
- # 5. Create a new block
30
+ # 6. Create a new block
27
31
  cmssy create block my-block
28
32
 
29
- # 6. Build for production
30
- cmssy build
33
+ # 7. Test your blocks
34
+ cmssy test
31
35
 
32
- # 7. Configure Cmssy API (for publishing)
33
- cmssy configure
36
+ # 8. Build for production
37
+ cmssy build
34
38
 
35
- # 8. Publish to workspace
39
+ # 9. Publish to your workspace (ID, or rely on CMSSY_WORKSPACE_ID from .env)
40
+ cmssy publish --all --workspace <id>
41
+ # or, if CMSSY_WORKSPACE_ID is set by `cmssy link`:
36
42
  cmssy publish --all --workspace
37
43
  ```
38
44
 
39
45
  ## Environment Configuration
40
46
 
41
- Create a `.env` file in your project root with the following variables:
47
+ `cmssy link` (see below) writes these for you into `.env`. Manual setup:
42
48
 
43
49
  ```env
44
50
  # Required for publishing
45
51
  CMSSY_API_URL=https://api.cmssy.io/graphql
46
52
  CMSSY_API_TOKEN=your_api_token_here
47
53
 
48
- # Optional - default workspace ID for publishing (MongoDB ObjectId)
54
+ # Optional - default workspace ID for publishing commands that accept -w
49
55
  CMSSY_WORKSPACE_ID=507f1f77bcf86cd799439011
50
56
  ```
51
57
 
52
- **How to get API Token:**
53
-
54
- 1. Go to your Cmssy workspace settings
55
- 2. Navigate to "API Tokens"
56
- 3. Create a new token with `blocks:write` scope
57
- 4. Copy the token to your `.env` file
58
-
59
- **How to get Workspace ID:**
60
-
61
- **Option 1: From Cmssy UI (Easiest)**
62
-
63
- 1. Go to your workspace Settings → General
64
- 2. Find "Workspace Information" section at the top
65
- 3. Click the copy button next to Workspace ID
66
- 4. Add to `.env` as `CMSSY_WORKSPACE_ID`
67
-
68
- **Option 2: Using CLI**
58
+ **Recommended:** run `cmssy link` - interactive prompt that picks the workspace,
59
+ accepts the API token, and writes all three values to `.env`.
69
60
 
70
- 1. Run `cmssy workspaces` to list all your workspaces
71
- 2. Copy the ID (MongoDB ObjectId format: 24-character hex string)
72
- 3. Add to `.env` as `CMSSY_WORKSPACE_ID`
61
+ **Manual:**
73
62
 
74
- Run `cmssy configure` for interactive setup.
63
+ - **API Token**: Cmssy workspace Settings → API Tokens → new token with `blocks:write`
64
+ - **Workspace ID**: `cmssy workspaces` (lists all accessible workspaces with their IDs)
75
65
 
76
66
  ## Commands
77
67
 
@@ -177,30 +167,162 @@ cmssy dev --port 4000
177
167
 
178
168
  ---
179
169
 
180
- ### Configure API
170
+ ### Link to a Workspace
181
171
 
182
172
  ```bash
183
- cmssy configure [options]
173
+ cmssy link [options]
184
174
  ```
185
175
 
186
- Configure Cmssy API credentials for publishing.
176
+ Connect the current project to a Cmssy workspace. Interactive prompt by default:
177
+ picks the workspace, accepts an API token, and writes `CMSSY_API_URL` /
178
+ `CMSSY_API_TOKEN` / `CMSSY_WORKSPACE_ID` to `.env`.
187
179
 
188
180
  **Options:**
189
181
 
190
- - `--api-url <url>` - Cmssy API URL. Default: https://api.cmssy.io/graphql
182
+ - `--token <token>` - API token (non-interactive)
183
+ - `--workspace <id|slug>` - Workspace to link to (non-interactive)
184
+ - `--api-url <url>` - Override API endpoint (default: `https://api.cmssy.io/graphql`)
191
185
 
192
- **Example:**
186
+ **Examples:**
187
+
188
+ ```bash
189
+ # Interactive (recommended for first-time setup)
190
+ cmssy link
191
+
192
+ # CI / scripted setup
193
+ cmssy link --token cs_xxx --workspace my-workspace-slug
194
+
195
+ # Custom API
196
+ cmssy link --api-url https://api.cmssy.dev/graphql
197
+ ```
198
+
199
+ Tokens come from https://cmssy.io/settings/tokens. List existing workspaces with
200
+ `cmssy workspaces`.
201
+
202
+ ---
203
+
204
+ ### Health Check
205
+
206
+ ```bash
207
+ cmssy doctor
208
+ ```
209
+
210
+ All-in-one preflight check.
211
+
212
+ **Required (fails the check):**
213
+
214
+ - Node ≥ 18
215
+ - `cmssy.config.js` present in project root
216
+ - `CMSSY_API_TOKEN` set in the environment
217
+
218
+ **Warnings only (run still succeeds):**
219
+
220
+ - `npm`, `next`, `react` availability
221
+ - `.env` file present
222
+ - `CMSSY_API_URL` set (defaults to the public API if missing)
223
+ - `CMSSY_WORKSPACE_ID` set
224
+
225
+ When enough config is available, doctor also reaches out to the API to verify
226
+ the token and workspace access.
227
+
228
+ Run it before any non-trivial operation (publish, sync). Fix failures before
229
+ proceeding; review warnings - they won't stop you but may point at missing
230
+ setup steps.
231
+
232
+ ---
233
+
234
+ ### Test Blocks
235
+
236
+ ```bash
237
+ cmssy test [options]
238
+ ```
239
+
240
+ Run the vitest test suite against your blocks and templates. Test files live
241
+ at `blocks/*/src/**/*.{test,spec}.{ts,tsx}` (same for templates).
242
+
243
+ **Options:**
244
+
245
+ - `--block <names...>` - Test only the listed blocks (space-separated)
246
+ - `--watch` - Watch mode (re-run on file change)
247
+ - `--coverage` - Generate coverage report
248
+
249
+ **Examples:**
193
250
 
194
251
  ```bash
195
- cmssy configure
252
+ # All tests
253
+ cmssy test
254
+
255
+ # Subset
256
+ cmssy test --block hero faq
257
+
258
+ # Watch mode
259
+ cmssy test --watch
196
260
  ```
197
261
 
198
- You'll be prompted for:
262
+ **Writing block tests** - use the helpers from `@cmssy/cli/test`:
263
+
264
+ ```ts
265
+ import { test, expect } from "vitest";
266
+ import { renderBlock, validatePreviewData } from "@cmssy/cli/test";
267
+ import Hero from "./Hero";
268
+ import previewData from "../preview.json";
269
+ // Pull the runtime schema from the block's config.ts (defineBlock({ schema })).
270
+ // Don't import from block.d.ts - that's a type declaration, no runtime value.
271
+ import heroConfig from "../config";
199
272
 
200
- - **Cmssy API URL**: `https://api.cmssy.io/graphql` (or your local dev URL)
201
- - **API Token**: Get this from your Cmssy workspace settings → API Tokens
273
+ test("renders the heading from content", async () => {
274
+ const { getByText } = await renderBlock(Hero, {
275
+ content: { heading: "Welcome" },
276
+ });
277
+ expect(getByText("Welcome")).toBeTruthy();
278
+ });
202
279
 
203
- Creates/updates `.env` file with your credentials.
280
+ test("preview data satisfies the block schema", () => {
281
+ const { valid, errors } = validatePreviewData(heroConfig.schema, previewData);
282
+ expect(valid, errors.join("\n")).toBe(true);
283
+ });
284
+ ```
285
+
286
+ `@testing-library/react` and `react` are loaded dynamically - install them in
287
+ your project when you need `renderBlock`:
288
+
289
+ ```bash
290
+ npm install -D @testing-library/react
291
+ ```
292
+
293
+ ---
294
+
295
+ ### Generate Types from Workspace Schema
296
+
297
+ ```bash
298
+ cmssy codegen [options]
299
+ ```
300
+
301
+ Generate TypeScript types from your workspace's public GraphQL schema (powered
302
+ by `@graphql-codegen/cli` under the hood).
303
+
304
+ **Options:**
305
+
306
+ - `-w, --workspace <slug>` - Workspace slug (**required** except for `--init`)
307
+ - `-o, --output <path>` - Output path (default: `src/graphql/types.ts`)
308
+ - `--init` - Generate a `codegen.ts` config file instead of running codegen
309
+
310
+ **First-time setup:**
311
+
312
+ ```bash
313
+ # 1. Create codegen.ts (works on a fresh project, before `cmssy link`)
314
+ cmssy codegen --init
315
+
316
+ # 2. Install codegen deps
317
+ npm install -D @graphql-codegen/cli @graphql-codegen/typescript @graphql-codegen/typescript-operations
318
+
319
+ # 3. Run against your workspace
320
+ cmssy codegen --workspace my-workspace-slug
321
+ ```
322
+
323
+ > **Note on `--workspace`**: this flag takes the workspace _slug_ (e.g.
324
+ > `my-workspace-slug`), not the ObjectId stored in `CMSSY_WORKSPACE_ID`. Use
325
+ > `cmssy workspaces` to look up the slug.
204
326
 
205
327
  ---
206
328
 
@@ -418,7 +540,47 @@ Team Project
418
540
 
419
541
  **Requirements:**
420
542
 
421
- - API token must be configured (run `cmssy configure` first)
543
+ - API token must be configured (run `cmssy link` first)
544
+
545
+ ### Install AI Assistant Skills
546
+
547
+ ```bash
548
+ cmssy skills list # Show available skills
549
+ cmssy skills install # Interactive prompt (pick a skill)
550
+ cmssy skills install block # CLI + block dev workflow skill
551
+ cmssy skills install mcp-content # Content editing via @cmssy/mcp-server
552
+ cmssy skills install --all # Install every skill
553
+ cmssy skills install block --local # Install into current project's .claude/
554
+ cmssy skills install block --force # Overwrite existing skill
555
+ ```
556
+
557
+ Drops cmssy skills into your Claude Code config so the assistant understands how
558
+ to work with cmssy out of the box. Two skills ship today:
559
+
560
+ - **`block`** - full CLI + block dev workflow (init, link, create, dev, test,
561
+ build, publish, sync, `defineBlock`/`defineTemplate` authoring)
562
+ - **`mcp-content`** - managing workspace content through the
563
+ [@cmssy/mcp-server](https://www.npmjs.com/package/@cmssy/mcp-server) MCP tools
564
+ (i18n rules, layout blocks, forms, publish flow). Requires the MCP server to
565
+ be configured in your Claude Code settings first
566
+
567
+ After installing, restart Claude Code (or start a new session) and try a prompt
568
+ like _"scaffold a pricing block and publish as patch"_ or
569
+ _"add a new testimonials block to the homepage, in English and Polish"_.
570
+
571
+ **Options:**
572
+
573
+ - `--target <editor>` - editor target (default: `claude`; more coming)
574
+ - `--all` - install every available skill
575
+ - `--local` - install into `./.claude/skills/` in the current project (default: `~/.claude/skills/`)
576
+ - `--force` - overwrite an existing skill without prompting
577
+ - `-y, --yes` - non-interactive mode (fails instead of prompting on conflict)
578
+
579
+ > **Changed in 0.14.0:** the first positional argument is now the **skill
580
+ > name** (`block`, `mcp-content`) rather than the editor target. If you were
581
+ > using `cmssy skills install claude` on 0.13.x, switch to
582
+ > `cmssy skills install block` (or `--all`). Editor target is now a flag:
583
+ > `--target claude`.
422
584
 
423
585
  ---
424
586
 
@@ -558,12 +720,11 @@ cmssy create block header
558
720
  cmssy create block footer
559
721
  cmssy create block cta
560
722
 
561
- # Configure API with workspace
562
- cmssy configure
723
+ # Link to workspace (interactive - picks workspace, writes .env)
724
+ cmssy link
563
725
 
564
- # List workspaces and get workspace ID
565
- cmssy workspaces
566
- # Copy workspace ID and add to .env: CMSSY_WORKSPACE_ID=507f1f77bcf86cd799439011
726
+ # Verify credentials + API reachability
727
+ cmssy doctor
567
728
 
568
729
  # Develop and test
569
730
  cmssy dev
@@ -595,7 +756,8 @@ cmssy upload --all --workspace 507f1f77bcf86cd799439011
595
756
 
596
757
  ### "API token not configured"
597
758
 
598
- Run `cmssy configure` or manually add `CMSSY_API_TOKEN` to `.env`
759
+ Run `cmssy link` (interactive) or manually add `CMSSY_API_TOKEN` to `.env`.
760
+ Run `cmssy doctor` to verify the full setup.
599
761
 
600
762
  ### "Workspace ID required"
601
763
 
package/dist/cli.js CHANGED
@@ -15,6 +15,7 @@ import { syncCommand } from "./commands/sync.js";
15
15
  import { migrateCommand } from "./commands/migrate.js";
16
16
  import { publishCommand } from "./commands/publish.js";
17
17
  import { packageCommand } from "./commands/package.js";
18
+ import { skillsInstallCommand, skillsListCommand } from "./commands/skills.js";
18
19
  import { uploadCommand } from "./commands/upload.js";
19
20
  import { workspacesCommand } from "./commands/workspaces.js";
20
21
  import { readFileSync } from "fs";
@@ -285,6 +286,37 @@ Use workspace IDs with:
285
286
  $ cmssy sync --workspace <id>
286
287
  `)
287
288
  .action(workspacesCommand);
289
+ // cmssy skills
290
+ const skills = program
291
+ .command("skills")
292
+ .description("Manage AI coding-assistant skills for cmssy");
293
+ skills
294
+ .command("list")
295
+ .description("List available skills")
296
+ .action(skillsListCommand);
297
+ skills
298
+ .command("install")
299
+ .description("Install a skill into your AI assistant's config directory")
300
+ .argument("[skill]", "Skill name: block, mcp-content (omit for interactive)")
301
+ .option("--target <editor>", "Editor target: claude (default)", "claude")
302
+ .option("--all", "Install every available skill")
303
+ .option("--local", "Install into ./.claude/skills (default: ~/.claude/skills)")
304
+ .option("--force", "Overwrite existing skill without prompting")
305
+ .option("-y, --yes", "Non-interactive mode (fail instead of prompting)")
306
+ .addHelpText("after", `
307
+ Examples:
308
+ $ cmssy skills list Show available skills
309
+ $ cmssy skills install Interactive prompt (pick a skill)
310
+ $ cmssy skills install block CLI + block dev workflow skill
311
+ $ cmssy skills install mcp-content Content editing via @cmssy/mcp-server
312
+ $ cmssy skills install --all Install every skill
313
+ $ cmssy skills install block --local Install into current project's .claude/
314
+ $ cmssy skills install block --force Overwrite existing skill
315
+
316
+ Changed in 0.14.0: the first positional arg is now the skill name (e.g.
317
+ 'block', 'mcp-content'), not the editor target. Use --target for editor.
318
+ `)
319
+ .action((skillName, options) => skillsInstallCommand(skillName, options));
288
320
  // cmssy add-source (hidden - use `cmssy publish --with-source` instead)
289
321
  program.addCommand(new Command("add-source")
290
322
  .argument("[blocks...]")
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAC1D,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CACV,wEAAwE,CACzE;KACA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;CAmBH,CACE,CAAC;AAEJ,aAAa;AACb,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6DAA6D,CAAC;KAC1E,QAAQ,CACP,QAAQ,EACR,2DAA2D,CAC5D;KACA,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;KACpD,WAAW,CACV,OAAO,EACP;;;;;CAKH,CACE;KACA,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAEzD,eAAe;AACf,MAAM,MAAM,GAAG,OAAO;KACnB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gCAAgC,CAAC;KAC7C,WAAW,CACV,OAAO,EACP;;;;;CAKH,CACE,CAAC;AAEJ,MAAM;KACH,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,wCAAwC,CAAC;KACrD,QAAQ,CAAC,QAAQ,EAAE,qCAAqC,CAAC;KACzD,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;KACpD,MAAM,CAAC,iCAAiC,EAAE,mBAAmB,CAAC;KAC9D,MAAM,CACL,2BAA2B,EAC3B,0EAA0E,CAC3E;KACA,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;KACnD,WAAW,CACV,OAAO,EACP;;;;;;;;;;;CAWH,CACE;KACA,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAE/B,MAAM;KACH,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,4BAA4B,CAAC;KACzC,QAAQ,CAAC,QAAQ,EAAE,wCAAwC,CAAC;KAC5D,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;KACpD,MAAM,CAAC,iCAAiC,EAAE,sBAAsB,CAAC;KACjE,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAE9B,cAAc;AACd,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,oBAAoB,EAAE,sCAAsC,CAAC;KACpE,MAAM,CAAC,yBAAyB,EAAE,gCAAgC,CAAC;KACnE,WAAW,CACV,OAAO,EACP;;;;;;;;;;CAUH,CACE;KACA,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,YAAY;AACZ,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,mBAAmB,EAAE,aAAa,EAAE,MAAM,CAAC;KAClD,WAAW,CACV,OAAO,EACP;;;;;;;;;CASH,CACE;KACA,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtB,aAAa;AACb,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;KACpD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC;KAC/B,MAAM,CAAC,YAAY,EAAE,0BAA0B,CAAC;KAChD,WAAW,CACV,OAAO,EACP;;;;;;;;;CASH,CACE;KACA,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,aAAa;AACb,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CACL,iBAAiB,EACjB,mEAAmE,CACpE;KACA,MAAM,CAAC,iBAAiB,EAAE,qCAAqC,CAAC;KAChE,MAAM,CACL,sBAAsB,EACtB,gDAAgD,CACjD;KACA,WAAW,CACV,OAAO,EACP;;;;;;;CAOH,CACE;KACA,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,0DAA0D;AAC1D,OAAO,CAAC,UAAU,CAChB,IAAI,OAAO,CAAC,WAAW,CAAC;KACrB,WAAW,CACV,gEAAgE,CACjE;KACA,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC;KAC1C,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,kEAAkE,CACnE,CACF,CAAC;IACF,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC,EACJ,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;AAEF,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,uDAAuD,CAAC;KACpE,WAAW,CACV,OAAO,EACP;;;;;;;CAOH,CACE;KACA,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,gBAAgB;AAChB,OAAO;KACJ,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CACV,2CAA2C;IACzC,sEAAsE;IACtE,eAAe;IACf,yDAAyD;IACzD,4CAA4C,CAC/C;KACA,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;KACtD,MAAM,CAAC,OAAO,EAAE,kCAAkC,CAAC;KACnD,MAAM,CAAC,SAAS,EAAE,qCAAqC,CAAC;KACxD,MAAM,CAAC,SAAS,EAAE,qCAAqC,CAAC;KACxD,MAAM,CAAC,SAAS,EAAE,qCAAqC,CAAC;KACxD,MAAM,CAAC,WAAW,EAAE,8BAA8B,CAAC;KACnD,MAAM,CAAC,WAAW,EAAE,mDAAmD,CAAC;KACxE,MAAM,CAAC,SAAS,EAAE,oDAAoD,CAAC;KACvE,MAAM,CACL,qBAAqB,EACrB,iEAAiE,CAClE;KACA,MAAM,CACL,OAAO,EACP,+DAA+D,CAChE;KACA,MAAM,CACL,eAAe,EACf,uDAAuD,CACxD;KACA,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;CAaH,CACE;KACA,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1B,aAAa;AACb,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kDAAkD,CAAC;KAC/D,QAAQ,CAAC,WAAW,EAAE,yCAAyC,CAAC;KAChE,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;KAC1D,WAAW,CACV,OAAO,EACP;;;;CAIH,CACE;KACA,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,yEAAyE;AACzE,OAAO,CAAC,UAAU,CAChB,IAAI,OAAO,CAAC,SAAS,CAAC;KACnB,QAAQ,CAAC,cAAc,CAAC;KACxB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,WAAW,CACV,OAAO,EACP;;;;;;;CAOL,CACI;KACA,MAAM,CAAC,cAAc,CAAC,EACzB,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;AAEF,6DAA6D;AAC7D,OAAO,CAAC,UAAU,CAChB,IAAI,OAAO,CAAC,SAAS,CAAC;KACnB,QAAQ,CAAC,eAAe,CAAC;KACzB,WAAW,CAAC,2DAA2D,CAAC;KACxE,MAAM,CAAC,OAAO,EAAE,kCAAkC,CAAC;KACnD,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;KAC5D,WAAW,CACV,OAAO,EACP;;;;;;;CAOL,CACI;KACA,MAAM,CAAC,cAAc,CAAC,EACzB,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;AAEF,4DAA4D;AAC5D,OAAO,CAAC,UAAU,CAChB,IAAI,OAAO,CAAC,QAAQ,CAAC;KAClB,QAAQ,CAAC,YAAY,CAAC;KACtB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,sBAAsB,EAAE,qBAAqB,CAAC;KACrD,MAAM,CAAC,OAAO,EAAE,oCAAoC,CAAC;KACrD,WAAW,CACV,OAAO,EACP;;;;CAIL,CACI;KACA,MAAM,CAAC,aAAa,CAAC,EACxB,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;AAEF,mBAAmB;AACnB,OAAO;KACJ,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,oCAAoC,CAAC;KACjD,WAAW,CACV,OAAO,EACP;;;;;CAKH,CACE;KACA,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE7B,wEAAwE;AACxE,OAAO,CAAC,UAAU,CAChB,IAAI,OAAO,CAAC,YAAY,CAAC;KACtB,QAAQ,CAAC,aAAa,CAAC;KACvB,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CAAC,sBAAsB,EAAE,qBAAqB,CAAC;KACrD,MAAM,CAAC,OAAO,EAAE,iCAAiC,CAAC;KAClD,WAAW,CACV,OAAO,EACP;;;;;;CAML,CACI;KACA,MAAM,CAAC,gBAAgB,CAAC,EAC3B,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;AAEF,gEAAgE;AAChE,OAAO,CAAC,UAAU,CAChB,IAAI,OAAO,CAAC,SAAS,CAAC;KACnB,WAAW,CACV,gEAAgE,CACjE;KACA,MAAM,CAAC,wBAAwB,EAAE,gBAAgB,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,sBAAsB,CAAC;KACzE,MAAM,CACL,QAAQ,EACR,4DAA4D,CAC7D;KACA,WAAW,CACV,OAAO,EACP;;;;;CAKL,CACI;KACA,MAAM,CAAC,cAAc,CAAC,EACzB,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;AAEF,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/commands/codegen.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAgCD,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,iBA0H3D"}
1
+ {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/commands/codegen.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAgCD,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,iBAiJ3D"}
@@ -38,28 +38,45 @@ export default config;
38
38
  }
39
39
  export async function codegenCommand(options) {
40
40
  const config = loadConfig();
41
- // Resolve workspace
42
- const workspaceSlug = options.workspace || config.workspaceId;
43
- if (!workspaceSlug) {
44
- console.error(chalk.red("✖ No workspace specified. Use --workspace <slug> or set CMSSY_WORKSPACE_ID in .env"));
45
- process.exit(1);
46
- }
47
- const schemaUrl = getWorkspaceApiUrl(config.apiUrl, workspaceSlug);
48
41
  const output = options.output || DEFAULT_OUTPUT;
49
- // --init: generate codegen.ts config file
42
+ // --init: generate a codegen.ts with a placeholder schema URL.
43
+ // No --workspace required - the user can fill in the slug themselves
44
+ // before running `cmssy codegen`. Keeps `cmssy codegen --init` working
45
+ // on a fresh project before the user has run `cmssy link`.
50
46
  if (options.init) {
51
47
  const configPath = path.join(process.cwd(), CODEGEN_CONFIG_FILE);
52
48
  if (fs.existsSync(configPath)) {
53
- console.error(chalk.yellow(`⚠ ${CODEGEN_CONFIG_FILE} already exists. Skipping.`));
49
+ // The only warning path - skipping an existing config - goes to stderr.
50
+ console.warn(chalk.yellow(`⚠ ${CODEGEN_CONFIG_FILE} already exists. Skipping.`));
54
51
  }
55
52
  else {
56
- const configContent = generateCodegenConfig(schemaUrl, output);
53
+ const placeholderUrl = options.workspace
54
+ ? getWorkspaceApiUrl(config.apiUrl, options.workspace)
55
+ : getWorkspaceApiUrl(config.apiUrl, "<your-workspace-slug>");
56
+ const configContent = generateCodegenConfig(placeholderUrl, output);
57
57
  fs.writeFileSync(configPath, configContent);
58
- console.warn(chalk.green(`✔ Created ${CODEGEN_CONFIG_FILE}`));
58
+ // Success + guidance go to stdout so pipes and scripts work.
59
+ console.log(chalk.green(`✔ Created ${CODEGEN_CONFIG_FILE}`));
60
+ if (!options.workspace) {
61
+ console.log(chalk.dim(` Replace <your-workspace-slug> in ${CODEGEN_CONFIG_FILE} with your slug (see \`cmssy workspaces\`).`));
62
+ }
59
63
  }
60
- console.warn(chalk.dim(`\nInstall codegen dependencies:\n npm install -D @graphql-codegen/cli @graphql-codegen/typescript @graphql-codegen/typescript-operations\n\nThen run:\n cmssy codegen`));
64
+ console.log(chalk.dim(`\nInstall codegen dependencies:\n npm install -D @graphql-codegen/cli @graphql-codegen/typescript @graphql-codegen/typescript-operations\n\nThen run:\n cmssy codegen --workspace <slug>`));
61
65
  return;
62
66
  }
67
+ // The public schema URL is keyed by workspace *slug*, not ID. `cmssy link`
68
+ // stores the workspace ObjectId in CMSSY_WORKSPACE_ID, so we can't use it
69
+ // here without an extra API round-trip. Require --workspace explicitly
70
+ // and tell the user exactly what's needed.
71
+ const workspaceSlug = options.workspace;
72
+ if (!workspaceSlug) {
73
+ const hint = config.workspaceId
74
+ ? chalk.gray("\n Tip: CMSSY_WORKSPACE_ID is set (an ID, not a slug). Pass the slug from `cmssy workspaces` via --workspace.")
75
+ : "";
76
+ console.error(chalk.red("✖ Missing workspace slug. Use: cmssy codegen --workspace <slug>") + hint);
77
+ process.exit(1);
78
+ }
79
+ const schemaUrl = getWorkspaceApiUrl(config.apiUrl, workspaceSlug);
63
80
  // Check if codegen.ts exists
64
81
  const configPath = path.join(process.cwd(), CODEGEN_CONFIG_FILE);
65
82
  const hasConfig = fs.existsSync(configPath);
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/commands/codegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/commands/codegen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ interface SkillsInstallOptions {
2
+ local?: boolean;
3
+ force?: boolean;
4
+ yes?: boolean;
5
+ all?: boolean;
6
+ target?: string;
7
+ }
8
+ export declare function skillsInstallCommand(rawSkill: string | undefined, options: SkillsInstallOptions): Promise<void>;
9
+ export declare function skillsListCommand(): void;
10
+ export {};
11
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"AAiDA,UAAU,oBAAoB;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4HD,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA+Ef;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAoBxC"}