@se-studio/project-build 1.0.112 → 1.0.114

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @se-studio/project-build
2
2
 
3
+ ## 1.0.114
4
+
5
+ ### Patch Changes
6
+
7
+ - Bulk version bump: patch for all packages
8
+
9
+ ## 1.0.113
10
+
11
+ ### Patch Changes
12
+
13
+ - Bulk version bump: patch for all packages
14
+
3
15
  ## 1.0.112
4
16
 
5
17
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/project-build",
3
- "version": "1.0.112",
3
+ "version": "1.0.114",
4
4
  "description": "Build tools and management scripts for SE Studio projects",
5
5
  "repository": {
6
6
  "type": "git",
@@ -60,19 +60,19 @@
60
60
  "url": "https://github.com/Something-Else-Studio/se-core-product/issues"
61
61
  },
62
62
  "dependencies": {
63
- "@biomejs/biome": "^2.4.8",
63
+ "@biomejs/biome": "^2.4.9",
64
64
  "@biomejs/js-api": "^4.0.0",
65
- "@biomejs/wasm-nodejs": "^2.4.8",
65
+ "@biomejs/wasm-nodejs": "^2.4.9",
66
66
  "change-case": "^5.4.4",
67
67
  "chroma-js": "^3.2.0",
68
- "contentful-management": "^11.74.0",
68
+ "contentful-management": "^11.75.0",
69
69
  "dotenv": "^17.3.1"
70
70
  },
71
71
  "devDependencies": {
72
72
  "@types/chroma-js": "^3.1.2",
73
73
  "@types/node": "^22.19.15",
74
- "typescript": "^5.9.3",
75
- "vitest": "^4.1.0"
74
+ "typescript": "^6.0.2",
75
+ "vitest": "^4.1.1"
76
76
  },
77
77
  "scripts": {
78
78
  "build": "node scripts/merge-contentful-skills.mjs && tsc --project tsconfig.build.json",
@@ -510,6 +510,88 @@ cms-edit screenshot @c0 --out after.png
510
510
  agent-browser diff screenshot --baseline before.png after.png
511
511
  ```
512
512
 
513
+ ## Revert
514
+
515
+ Field-level undo — restore fields to their original values from when the session was opened.
516
+
517
+ ```bash
518
+ cms-edit revert @c0 heading # Revert a single field to its original value
519
+ cms-edit revert @c0 # Revert all fields on an entry
520
+ cms-edit revert --all # Revert all modified entries (session stays open)
521
+ ```
522
+
523
+ Note: Entries created via `add` cannot be reverted — use `remove` instead.
524
+
525
+ ## Health Check
526
+
527
+ Validate config and connectivity before running a workflow.
528
+
529
+ ```bash
530
+ cms-edit health # Check config file, space config, Contentful connectivity, agent-browser
531
+ ```
532
+
533
+ ## Schema Inspection
534
+
535
+ Inspect field definitions for a content type. Prefer this over `cms-edit types <ct>` when you need full field info.
536
+
537
+ ```bash
538
+ cms-edit schema component # Show all fields, types, enum values, link targets
539
+ cms-edit schema component --json # Full JSON output
540
+ ```
541
+
542
+ ## Sitemap
543
+
544
+ Browse all pages in the space.
545
+
546
+ ```bash
547
+ cms-edit sitemap # All pages, sorted by slug
548
+ cms-edit sitemap --prefix /blog # Filter by slug prefix
549
+ cms-edit sitemap --status draft # Draft pages only
550
+ cms-edit sitemap --sort updated # Most recently updated first
551
+ cms-edit sitemap --tree # Tree rendering
552
+ cms-edit sitemap --include page,article # Include articles too
553
+ ```
554
+
555
+ ## Peek
556
+
557
+ Inspect a page without affecting your active session.
558
+
559
+ ```bash
560
+ cms-edit peek /pricing # Show snapshot of /pricing; your active session is unchanged
561
+ cms-edit peek <id> --id # Look up by entry ID
562
+ ```
563
+
564
+ ## Batch Operations (run)
565
+
566
+ Run a sequence of operations from a JSON file or stdin.
567
+
568
+ ```bash
569
+ cms-edit run --file ops.json # Run batch ops from file
570
+ echo '[...]' | cms-edit run # Pipe from stdin
571
+ cms-edit run --file ops.json --dry-run # Validate without saving
572
+ ```
573
+
574
+ Supported ops: `open`, `set`, `rtf`, `rtf-replace`, `save`.
575
+
576
+ Example `ops.json`:
577
+ ```json
578
+ [
579
+ { "cmd": "open", "args": ["/pricing"] },
580
+ { "cmd": "set", "args": ["@c0", "heading", "New Heading"] },
581
+ { "cmd": "rtf", "args": ["@c1", "body", "## Section\n\nContent here."] },
582
+ { "cmd": "save" }
583
+ ]
584
+ ```
585
+
586
+ ## Concurrent Sessions
587
+
588
+ Use `--session <name>` or `CONTENTFUL_CMS_SESSION=<name>` to isolate parallel workflows.
589
+
590
+ ```bash
591
+ cms-edit --session agent-1 open /pricing
592
+ cms-edit --session agent-2 open /blog
593
+ ```
594
+
513
595
  ## Related skills
514
596
 
515
597
  For templates see the **templates** skill; for navigation see the **navigation** skill; for rich text and embeds see the **rich-text** skill; for screenshots see the **screenshots** skill.
@@ -18,6 +18,69 @@ Use **set** for scalar and link fields; use **rtf** only for rich text fields.
18
18
 
19
19
  Editing or moving existing embeds is **not supported in v1**.
20
20
 
21
+ ## rtf replace — additional flags
22
+
23
+ These flags provide finer control when using `rtf replace`:
24
+
25
+ | Flag | Description |
26
+ |------|-------------|
27
+ | `--find-plain <text>` | Alias for `--find`; treats the search string as literal text (use when the string contains `*`) |
28
+ | `--ignore-marks` | Match across adjacent bold/plain splits within the same block node |
29
+ | `--protect-pattern <regex>` | Skip matches that fall inside spans matching this regex (e.g. existing quidget tokens) |
30
+ | `--dry-run` | Count matches without writing any changes |
31
+ | `--in-table-row <n>` | Restrict matches to row N (1-indexed; row 1 = header) |
32
+ | `--in-row-containing <text>` | Restrict to rows where any cell contains this text |
33
+ | `--in-col-containing <text>` | Restrict to the column whose header cell contains this text |
34
+
35
+ Example — replace a value only in the column whose header contains "CSP":
36
+ ```bash
37
+ cms-edit rtf replace @c1 body \
38
+ --find 'None' \
39
+ --replace-plain '{*credit_card_id*:*5048345*,*field*:*foreign_transaction_fee*,*api*:*cc*}' \
40
+ --in-col-containing 'CSP' \
41
+ --mode all
42
+ ```
43
+
44
+ ## rtf patch — JSON batch find/replace
45
+
46
+ Apply multiple find/replace operations in a single call. All ops are validated before any write.
47
+
48
+ ```bash
49
+ # From file
50
+ cms-edit rtf patch @c0 body --file patch.json
51
+
52
+ # From stdin
53
+ echo '[{"find":"old","replaceWith":"new","mode":"exactlyOne"}]' | cms-edit rtf patch @c0 body
54
+ ```
55
+
56
+ Each op in the JSON array supports:
57
+
58
+ | Key | Required | Description |
59
+ |-----|----------|-------------|
60
+ | `find` | yes | Search string (Markdown-interpreted) |
61
+ | `replaceWith` | yes | Replacement string (Markdown-interpreted unless `replaceIsMarkdown: false`) |
62
+ | `replaceIsMarkdown` | no | Set to `false` to treat `replaceWith` as plain text (like `--replace-plain`) |
63
+ | `mode` | no | `"exactlyOne"` (default), `"all"`, `"first"` |
64
+ | `ignoreMarks` | no | Match across adjacent bold/plain splits |
65
+ | `inTableCol` | no | Restrict to column N (1-indexed) |
66
+ | `inTableRow` | no | Restrict to row N (1-indexed) |
67
+ | `inRowContaining` | no | Restrict to rows where any cell contains this text |
68
+ | `inColContaining` | no | Restrict to the column whose header cell contains this text |
69
+ | `section` | no | Restrict to a document section |
70
+ | `protectPattern` | no | Skip matches inside spans matching this regex |
71
+
72
+ Add `--dry-run` to count matches without writing.
73
+
74
+ ## rtf edit — replace field via stdin
75
+
76
+ Replace an entire rich text field by piping Markdown from stdin. Avoids shell quoting issues for long content.
77
+
78
+ ```bash
79
+ echo "## New heading\n\nNew body text." | cms-edit rtf edit @c1 body
80
+ ```
81
+
82
+ In human (interactive) mode, the command prints the current Markdown to stdout first, then reads the replacement from stdin.
83
+
21
84
  ## Related skills
22
85
 
23
86
  See the **core** skill for workflow, refs, and all commands.