@contentful/experience-design-system-cli 2.34.2-dev-build-a06e747.0 → 2.34.2-dev-build-3cd48dd.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 +27 -88
- package/bin/cli.js +5 -13
- package/dist/package.json +1 -1
- package/dist/src/analytics/types.d.ts +1 -1
- package/dist/src/generate/command.d.ts +1 -1
- package/dist/src/import/orchestrator.d.ts +0 -7
- package/dist/src/import/tui/WizardApp.d.ts +1 -2
- package/dist/src/index.js +1568 -2245
- package/dist/src/lib/command-options.d.ts +0 -1
- package/dist/src/lib/contentful-urls.d.ts +1 -1
- package/dist/src/session/db.d.ts +1 -1
- package/package.json +6 -6
- package/dist/src/apply/tui/SelectView.d.ts +0 -18
- package/dist/src/generate/edit/command.d.ts +0 -2
package/README.md
CHANGED
|
@@ -18,17 +18,17 @@ The rest of this README uses `experiences`.
|
|
|
18
18
|
|
|
19
19
|
There are two ways to use the CLI:
|
|
20
20
|
|
|
21
|
-
1. **`experiences import`** — the wizard. Drives the full pipeline (extract → AI select → scope-gate →
|
|
21
|
+
1. **`experiences import`** — the wizard. Drives the full pipeline (extract → AI select → scope-gate → internal generation → final-review → save/push) from a single command. Works in two modes: a full-screen interactive TUI in a real terminal and a non-interactive headless mode when you pass credentials or `--no-push`. **This is the recommended path for almost everyone.**
|
|
22
22
|
|
|
23
23
|
2. **Standalone subcommands** — for piping into other tools, CI parity with the wizard, or for debugging individual steps:
|
|
24
24
|
|
|
25
25
|
```
|
|
26
|
-
analyze extract → analyze select-agent →
|
|
26
|
+
analyze extract → analyze select-agent → apply push
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
`analyze select-agent` is the agent-driven selection step the wizard uses. You can replace it with `analyze select` for the older manual JsonEditor TUI.
|
|
30
30
|
|
|
31
|
-
**Determinism boundary.** `analyze extract` is fully deterministic: ts-morph AST parsing produces the same component list and prop shape on every run, then a deterministic pre-classifier and a structural non-authorable filter shape the output. AI enters the pipeline at `analyze select-agent` and
|
|
31
|
+
**Determinism boundary.** `analyze extract` is fully deterministic: ts-morph AST parsing produces the same component list and prop shape on every run, then a deterministic pre-classifier and a structural non-authorable filter shape the output. AI enters the pipeline at `analyze select-agent` and the import wizard's generation step. This split keeps the extracted artifact reproducible — if an extracted component looks wrong, the cause is in the rules, not in agent variability.
|
|
32
32
|
|
|
33
33
|
All intermediate data flows through a local SQLite session database (`~/.contentful/experience-design-system-cli/pipeline.db`). No JSON files are written between steps — each command reads its inputs from the session and writes its outputs back to it. Use `print` to export session data to JSON files on demand. The wizard additionally maintains a separate **runs.json** file (`~/.config/experiences/runs.json`) that records each successful wizard session so it can be replayed later with `--push-from-run` or `--modify`.
|
|
34
34
|
|
|
@@ -70,7 +70,7 @@ Because the agent path spawns a coding agent, it adds latency and cost and is be
|
|
|
70
70
|
|
|
71
71
|
### Slot cycles
|
|
72
72
|
|
|
73
|
-
If the resolved graph contains a circular slot dependency (A slots B, B slots A), it is detected before push. `apply push` and the wizard's push path **refuse to send a manifest with cycles**; the cycle path is reported so you can break it.
|
|
73
|
+
If the resolved graph contains a circular slot dependency (A slots B, B slots A), it is detected before push. `apply push` and the wizard's push path **refuse to send a manifest with cycles**; the cycle path is reported so you can break it.
|
|
74
74
|
|
|
75
75
|
---
|
|
76
76
|
|
|
@@ -78,7 +78,7 @@ If the resolved graph contains a circular slot dependency (A slots B, B slots A)
|
|
|
78
78
|
|
|
79
79
|
### Coding agent
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
The import wizard's generation steps require a coding agent CLI in your `$PATH`. Choose one:
|
|
82
82
|
|
|
83
83
|
| Agent | Install | Auth |
|
|
84
84
|
|---|---|---|
|
|
@@ -94,7 +94,7 @@ The CLI invokes the agent non-interactively in a subprocess. If the binary is no
|
|
|
94
94
|
|
|
95
95
|
### Contentful credentials
|
|
96
96
|
|
|
97
|
-
`apply
|
|
97
|
+
`apply push` and `import` (when pushing) require access to a Contentful space. Set these environment variables or pass the equivalent flags:
|
|
98
98
|
|
|
99
99
|
```bash
|
|
100
100
|
export CONTENTFUL_MANAGEMENT_TOKEN=<your-cma-token> # required
|
|
@@ -114,7 +114,7 @@ In the wizard's credentials step you can press `[s] Skip` to save-only without p
|
|
|
114
114
|
experiences import [flags]
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
-
`experiences import` is the primary entry point. In a TTY it launches a full-screen wizard. In headless mode (
|
|
117
|
+
`experiences import` is the primary entry point. In a TTY it launches a full-screen wizard. In headless mode (with credentials or `--no-push`) it runs non-interactively. Without a supported headless entry point, it fails loud rather than hanging.
|
|
118
118
|
|
|
119
119
|
### Wizard step machine
|
|
120
120
|
|
|
@@ -122,13 +122,13 @@ experiences import [flags]
|
|
|
122
122
|
welcome
|
|
123
123
|
↓
|
|
124
124
|
extracting — runs analyze extract (atomic by default; resolves composition
|
|
125
|
-
under --composite, see below); spawns
|
|
125
|
+
under --composite, see below); spawns internal generation in parallel (prefetch)
|
|
126
126
|
↓
|
|
127
|
-
[auto-filter] — analyze select-agent runs automatically
|
|
127
|
+
[auto-filter] — analyze select-agent runs automatically
|
|
128
128
|
↓
|
|
129
129
|
scope-gate — single human review gate: confirm AI selection, toggle components
|
|
130
130
|
↓
|
|
131
|
-
credentials — operator types space-id / env / token (
|
|
131
|
+
credentials — operator types space-id / env / token (internal generation is already running)
|
|
132
132
|
press [s] Skip to save-only without pushing
|
|
133
133
|
↓
|
|
134
134
|
final-review — minimum-viable port of the JsonEditor; edit names, $description,
|
|
@@ -145,11 +145,11 @@ There is now a single human review gate (`scope-gate`) before generation; the le
|
|
|
145
145
|
|
|
146
146
|
### Configurable AI auto-filter
|
|
147
147
|
|
|
148
|
-
The auto-filter (`analyze select-agent` invoked before scope-gate) is on by default. Override per-run with `--auto-filter
|
|
148
|
+
The auto-filter (`analyze select-agent` invoked before scope-gate) is on by default. Override per-run with `--auto-filter`; the value selected in setup is persisted to `credentials.json` so subsequent runs default to your saved preference.
|
|
149
149
|
|
|
150
150
|
### Save-and-push default
|
|
151
151
|
|
|
152
|
-
The push-decision-gate defaults to **save AND push**: it writes `components.json` and `tokens.json` to disk *and* pushes to Contentful in one step. Use `--no-
|
|
152
|
+
The push-decision-gate defaults to **save AND push**: it writes `components.json` and `tokens.json` to disk *and* pushes to Contentful in one step. Use `--no-push` to save without pushing. `--out-dir <path>` picks the save directory non-interactively (otherwise the wizard prompts).
|
|
153
153
|
|
|
154
154
|
### Replaying prior runs
|
|
155
155
|
|
|
@@ -157,9 +157,8 @@ After every successful wizard session, the CLI appends a record to `~/.config/ex
|
|
|
157
157
|
|
|
158
158
|
| Flag | What it does |
|
|
159
159
|
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
|
|
160
|
-
| `--push-from-run <id-or-path>` | Re-push the recorded session to Contentful without re-opening the wizard or writing to disk. Mutually exclusive with `--modify`, `--project`,
|
|
161
|
-
| `--modify <id-or-path>` | Re-open the wizard at final-review with the prior run pre-populated.
|
|
162
|
-
| `--overwrite` / `--save-as-new` | Save-mode selector for `--modify`; mutually exclusive with each other. |
|
|
160
|
+
| `--push-from-run <id-or-path>` | Re-push the recorded session to Contentful without re-opening the wizard or writing to disk. Mutually exclusive with `--modify`, `--project`, and `--no-push`. |
|
|
161
|
+
| `--modify <id-or-path>` | Re-open the wizard at final-review with the prior run pre-populated. |
|
|
163
162
|
|
|
164
163
|
Both flags accept either a run id or a filesystem path that matches a recorded `savePath`.
|
|
165
164
|
|
|
@@ -171,16 +170,14 @@ Pass `--select-prompt-path <path>` and/or `--generate-prompt-path <path>` to swa
|
|
|
171
170
|
|
|
172
171
|
| Flag | Default | Description |
|
|
173
172
|
| --------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
174
|
-
| `--space-id <id>` | `CONTENTFUL_SPACE_ID` env / saved | Contentful space ID (required unless `--
|
|
173
|
+
| `--space-id <id>` | `CONTENTFUL_SPACE_ID` env / saved | Contentful space ID (required unless `--no-push`) |
|
|
175
174
|
| `--environment-id <id>` | `CONTENTFUL_ENVIRONMENT_ID` env | Contentful environment ID |
|
|
176
175
|
| `--cma-token <token>` | `CONTENTFUL_MANAGEMENT_TOKEN` env | CMA personal access token |
|
|
177
176
|
| `--project <path>` | `.` | Project root to analyze |
|
|
178
177
|
| `--out <path>` | `<project>/.contentful` | Headless-mode output directory |
|
|
179
178
|
| `--out-dir <path>` | _(prompt)_ | Save directory for `components.json` / `tokens.json`; bypasses inline save-path prompt |
|
|
180
|
-
| `--agent <name>` | saved by setup / `claude` | Agent for `analyze select-agent` and
|
|
179
|
+
| `--agent <name>` | saved by setup / `claude` | Agent for `analyze select-agent` and internal generation |
|
|
181
180
|
| `--model <name>` | agent default | Model name |
|
|
182
|
-
| `--tokens <path>` | — | DTCG `tokens.json` to push alongside generated components |
|
|
183
|
-
| `--auto-accept-scope` | off | Accept all extracted components without prompting (required for non-TTY without other headless flags) |
|
|
184
181
|
| `--atomic` | **default** | Flat import, no embedded-component hierarchy (composition stripped on push) |
|
|
185
182
|
| `--composite` | — | Import the embedded-component hierarchy (any composition flag implies this) |
|
|
186
183
|
| `--composition-map <path>` | — | Consume a hand-authored parent→children interchange map (implies `--composite`) |
|
|
@@ -189,35 +186,17 @@ Pass `--select-prompt-path <path>` and/or `--generate-prompt-path <path>` to swa
|
|
|
189
186
|
| `--composition-refresh` | — | Bypass the composition cache and re-resolve from scratch, forcing the agent to run (implies `--composite`) |
|
|
190
187
|
| `--composition-agent-mode <mode>` | `parser` | `parser` (agent writes a sandboxed parser) or `edges` (agent lists edges directly) |
|
|
191
188
|
| `--prompt <stage=value>` | — | Override a stage prompt (repeatable); value is a file path or literal text, e.g. `--prompt composition=./p.md` |
|
|
192
|
-
| `--auto-
|
|
193
|
-
| `--
|
|
194
|
-
| `--no-live-preview` | live preview on | Skip the automatic preview re-run after each FieldEditor save |
|
|
195
|
-
| `--no-push` | push on | Run extract → scope-gate → generate → final-review and exit without pushing |
|
|
196
|
-
| `--no-save` | save on | Push without writing `components.json` / `tokens.json` to disk |
|
|
189
|
+
| `--auto-filter` | persisted in `credentials.json` | Force AI auto-filter on; overrides the saved preference |
|
|
190
|
+
| `--no-push` | push on | Run extract → scope-gate → internal generation → final-review and exit without pushing |
|
|
197
191
|
| `--push-from-run <id-or-path>` | — | Re-push a prior run; never writes to disk |
|
|
198
192
|
| `--modify <id-or-path>` | — | Re-open the wizard at final-review with a prior run loaded |
|
|
199
|
-
| `--overwrite` | — | With `--modify`: save back to recorded `savePath` |
|
|
200
|
-
| `--save-as-new` | — | With `--modify`: always save to a new path |
|
|
201
193
|
| `--select-prompt-path <path>` | saved by setup | Custom `.md` skill prompt for `analyze select-agent` |
|
|
202
|
-
| `--generate-prompt-path <path>` | saved by setup | Custom `.md` skill prompt for
|
|
203
|
-
| `--
|
|
204
|
-
| `--
|
|
205
|
-
| `--deselect <pattern>` | — | Headless: reject components matching pattern (repeatable; bypasses agentic select) |
|
|
206
|
-
| `--skip-analyze` | — | Reuse most recent `analyze extract` session |
|
|
207
|
-
| `--skip-generate` | — | Reuse most recent `generate components` session |
|
|
208
|
-
| `--print` | — | Headless: write `components.json` to `--out` after generation |
|
|
209
|
-
| `--skip-map-tokens` | — | Skip the `map tokens` step between generate and apply |
|
|
210
|
-
| `--skip-apply` | — | Stop after generate; do not push |
|
|
211
|
-
| `--no-cache` | cache on | Bypass extract/select/generate/map-tokens fine-grained caches and force re-run; forwarded to `analyze select-agent`, `generate components`, and `map tokens` |
|
|
212
|
-
| `--yes` | — | Skip interactive confirmation in `apply push` |
|
|
213
|
-
| `--verbose` | — | Show full agent output and all entity progress |
|
|
194
|
+
| `--generate-prompt-path <path>` | saved by setup | Custom `.md` skill prompt for internal component generation |
|
|
195
|
+
| `--skip-map-tokens` | — | Skip the `map tokens` step between internal generation and apply |
|
|
196
|
+
| `--no-cache` | cache on | Bypass extract/select/internal-generation/map-tokens fine-grained caches and force re-run |
|
|
214
197
|
| `--exclude-invalid` | off (fail loud) | Auto-reject components with validation errors instead of refusing to proceed |
|
|
215
|
-
| `--viewports <path>` | catch-all viewport | JSON file with viewport array (passed to `apply push`) |
|
|
216
198
|
| `--host <url>` | `https://api.contentful.com` | Override API base URL |
|
|
217
|
-
| `--on-conflict <mode>` | _(prompt via `<SaveConflictGate>`)_ | Headless conflict resolution when a file already exists at the save path: `overwrite`, `skip`, or `fail`. Bypasses the wizard's interactive save-conflict gate. Mutex with `--no-save`. |
|
|
218
|
-
| `--print-prompt` | — | Print the generate prompt to stdout and exit. Replaces the prompt-print semantics of `--dry-run`. |
|
|
219
199
|
| `--allow-deletions` | off (non-destructive) | Allow the push to delete remote ComponentTypes/DesignTokens missing from the manifest. Default skips them instead of deleting. Without this flag, preview responses suppress the removed-entity list and return a count instead; interactive confirm screens show an opt-out toggle (never opt-in) only when the flag is passed. Forwarded to headless subprocess pushes and `--push-from-run`. |
|
|
220
|
-
| `--dry-run` | _(deprecated)_ | Deprecated alias for `--print-prompt`. Emits a stderr deprecation notice; prompt-print semantics will be removed in a future release. |
|
|
221
200
|
|
|
222
201
|
### Run-picker at wizard start
|
|
223
202
|
|
|
@@ -231,7 +210,7 @@ The mount decision is deterministic — passing any of `--push-from-run`, `--mod
|
|
|
231
210
|
|
|
232
211
|
### `--modify` end-to-end behavior
|
|
233
212
|
|
|
234
|
-
`--modify <id-or-path>` is fully wired: the wizard loads the recorded session from `pipeline.db` (skipping extract and
|
|
213
|
+
`--modify <id-or-path>` is fully wired: the wizard loads the recorded session from `pipeline.db` (skipping extract and internal generation), pre-fills credentials from the run record's `pushedTo` target, and lands directly on `final-review` — or on `scope-gate` if the run record carries an `entryStep` hint.
|
|
235
214
|
|
|
236
215
|
### `--model` and `--agent` overrides
|
|
237
216
|
|
|
@@ -353,48 +332,10 @@ experiences analyze select-agent [--agent <name>] [--session <id>]
|
|
|
353
332
|
| `--show-rationale` | — | Read-only mode. Print the recorded accept / reject rationale for every component in the session and exit. Reads `raw_components.reject_reason` from the pipeline DB — no LLM call, no schema change. |
|
|
354
333
|
| `--json` | — | With `--show-rationale`: emit the rationale rows as JSON for scripting. |
|
|
355
334
|
|
|
356
|
-
Decisions are written to the same review state file used by `analyze select`, so
|
|
335
|
+
Decisions are written to the same review state file used by `analyze select`, so the import wizard's generation step picks them up automatically. Each `(component-hash, prompt-hash, cli-version)` triple is cached; changing the prompt file via `--select-prompt-path` already busts the corresponding cache entries.
|
|
357
336
|
|
|
358
337
|
`--show-rationale` is a separate read-only mode — it does not invoke the agent and is safe to run against a completed session at any time. Pair with `--session <id>` to target a specific session; otherwise it auto-resolves to the most recent completed `analyze extract`.
|
|
359
338
|
|
|
360
|
-
---
|
|
361
|
-
|
|
362
|
-
### `generate components`
|
|
363
|
-
|
|
364
|
-
Invoke a coding agent to generate CDF component definitions. Results are stored in the session database.
|
|
365
|
-
|
|
366
|
-
```bash
|
|
367
|
-
experiences generate components [--agent <name>] [--session <id>]
|
|
368
|
-
```
|
|
369
|
-
|
|
370
|
-
| Option | Default | Description |
|
|
371
|
-
|---|---|---|
|
|
372
|
-
| `--agent <name>` | saved by setup | Agent: `claude`, `codex`, `opencode`, `cursor`, or `copilot` |
|
|
373
|
-
| `--session <id>` | most recent completed `analyze extract` | Session ID from `analyze extract` |
|
|
374
|
-
| `--tokens <path>` | — | Path to `tokens.json` for token-linked prop resolution |
|
|
375
|
-
| `--token-map <path>` | — | Path to `token-name-map.json` sidecar |
|
|
376
|
-
| `--model <name>` | agent default | Model to use |
|
|
377
|
-
| `--verbose` | — | Show full agent output |
|
|
378
|
-
| `--dry-run` | — | Print the prompt without invoking the agent |
|
|
379
|
-
| `--generate-prompt-path <path>` | saved by setup | Custom `.md` skill prompt; emits a banner at invocation |
|
|
380
|
-
| `--no-cache` | cache on | Bypass all fine-grained caches and force re-run |
|
|
381
|
-
|
|
382
|
-
Raw components are loaded from the session database and embedded directly in the prompt — no intermediate file is read. The agent emits one JSON tool-call object per line; per-component results (CDF body + LLM rationale + source location) are persisted to the session DB.
|
|
383
|
-
|
|
384
|
-
---
|
|
385
|
-
|
|
386
|
-
### `generate components edit` / `generate tokens edit`
|
|
387
|
-
|
|
388
|
-
Non-interactive correction of generated output via `--accept-all`, `--reject`, or `--patch`. The interactive TUI variant is not currently shipped.
|
|
389
|
-
|
|
390
|
-
---
|
|
391
|
-
|
|
392
|
-
### `generate tokens`
|
|
393
|
-
|
|
394
|
-
Same shape as `generate components`, plus `--raw-tokens <path>`.
|
|
395
|
-
|
|
396
|
-
---
|
|
397
|
-
|
|
398
339
|
### `print components` / `print tokens` / `print validate`
|
|
399
340
|
|
|
400
341
|
Unchanged from prior releases.
|
|
@@ -409,19 +350,17 @@ experiences print validate [--components <path>] [--tokens <path>]
|
|
|
409
350
|
|
|
410
351
|
---
|
|
411
352
|
|
|
412
|
-
### `apply
|
|
353
|
+
### `apply push`
|
|
413
354
|
|
|
414
355
|
These subcommands are the non-wizard route to the same diff and push logic. Flag surfaces are unchanged.
|
|
415
356
|
|
|
416
|
-
`apply push`
|
|
357
|
+
`apply push` emits a Contentful webapp view URL for the imported components in its JSON summary (`viewUrl`) so callers can deep-link into the management UI after a successful push.
|
|
417
358
|
|
|
418
359
|
```bash
|
|
419
|
-
experiences apply preview --space-id <id> --environment-id <env> --session <id>
|
|
420
|
-
experiences apply select --space-id <id> --environment-id <env> --session <id>
|
|
421
360
|
experiences apply push --space-id <id> --environment-id <env> --session <id> [--yes]
|
|
422
361
|
```
|
|
423
362
|
|
|
424
|
-
Shared flags: `--components`, `--tokens`, `--session`, `--space-id`, `--environment-id`, `--cma-token`, `--host`, `--viewports`. `apply
|
|
363
|
+
Shared flags: `--components`, `--tokens`, `--session`, `--space-id`, `--environment-id`, `--cma-token`, `--host`, `--viewports`. `apply push` adds `--yes`, `--verbose`, `--force`, `--dry-run`, `--allow-deletions`. By default, remote ComponentTypes and DesignTokens missing from the pushed manifest are skipped, not deleted; pass `--allow-deletions` to restore the prior delete behavior.
|
|
425
364
|
|
|
426
365
|
Design tokens are written first (component types may reference token kinds). Each entity write is recorded in the session database atomically — interrupted pushes resume from where they left off.
|
|
427
366
|
|
|
@@ -449,7 +388,7 @@ Wizard run history is separate: `~/.config/experiences/runs.json`.
|
|
|
449
388
|
- `NO_COLOR=1` suppresses all ANSI color output
|
|
450
389
|
- Interactive views require both stdin and stdout to be TTYs and stdin to support raw mode. Read-only views fall back to plain or JSON output when those capabilities are unavailable; commands that require input stop with the relevant non-interactive flags in the error message.
|
|
451
390
|
- On Windows, use Windows Terminal with PowerShell. Older ConEmu and cmd.exe hosts may not provide the raw-mode support the interactive UI needs.
|
|
452
|
-
- To avoid the interactive UI, use
|
|
391
|
+
- To avoid the interactive UI, use `import` with credentials or `--no-push`, and use `apply push --yes` for a non-interactive push.
|
|
453
392
|
|
|
454
393
|
---
|
|
455
394
|
|
package/bin/cli.js
CHANGED
|
@@ -11,7 +11,6 @@ process.on("warning", (w) => {
|
|
|
11
11
|
// Skipped when src/ doesn't exist (e.g. npm-installed users).
|
|
12
12
|
import { existsSync, statSync, readdirSync } from "node:fs";
|
|
13
13
|
import { execFileSync } from "node:child_process";
|
|
14
|
-
import { createRequire } from "node:module";
|
|
15
14
|
import { fileURLToPath } from "node:url";
|
|
16
15
|
import { dirname, resolve, join } from "node:path";
|
|
17
16
|
|
|
@@ -43,19 +42,12 @@ if (
|
|
|
43
42
|
const distMtime = statSync(distEntry).mtimeMs;
|
|
44
43
|
if (newestMtime(srcDir) > distMtime) {
|
|
45
44
|
process.stderr.write("⚙ Source changed — rebuilding...\n");
|
|
46
|
-
|
|
47
|
-
// node_modules/.bin/tsc shim: on Windows the extensionless shim is a POSIX
|
|
48
|
-
// sh script (the runnable one is tsc.CMD), so exec'ing it fails there.
|
|
49
|
-
const tsc = createRequire(import.meta.url).resolve("typescript/bin/tsc");
|
|
45
|
+
const tsc = join(pkgRoot, "node_modules", ".bin", "tsc");
|
|
50
46
|
try {
|
|
51
|
-
execFileSync(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
stdio: ["ignore", "ignore", "inherit"],
|
|
56
|
-
cwd: pkgRoot,
|
|
57
|
-
},
|
|
58
|
-
);
|
|
47
|
+
execFileSync(tsc, ["-p", join(pkgRoot, "tsconfig.build.json")], {
|
|
48
|
+
stdio: ["ignore", "ignore", "inherit"],
|
|
49
|
+
cwd: pkgRoot,
|
|
50
|
+
});
|
|
59
51
|
process.stderr.write("✓ Build complete\n");
|
|
60
52
|
} catch {
|
|
61
53
|
process.stderr.write("✗ Build failed — running with existing dist\n");
|
package/dist/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Tracked CLI commands — closed set aligned with the published event schema. */
|
|
2
|
-
export type DsiCliCommand = 'analyze_extract' | 'analyze_select' | 'generate_components' | 'generate_tokens' | 'generate_edit' | 'map_tokens' | '
|
|
2
|
+
export type DsiCliCommand = 'analyze_extract' | 'analyze_select' | 'generate_components' | 'generate_tokens' | 'generate_edit' | 'map_tokens' | 'apply_push' | 'print_components' | 'print_tokens' | 'import';
|
|
3
3
|
export type EntryCommand = 'analyze_extract' | 'import';
|
|
4
4
|
export type OsName = 'macOS' | 'Linux' | 'Windows' | 'Android' | 'other';
|
|
5
5
|
export type WriteResult = {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
|
-
export declare function
|
|
2
|
+
export declare function registerInternalGenerateCommand(program: Command): void;
|
|
@@ -10,19 +10,12 @@ export interface PipelineOptions {
|
|
|
10
10
|
bedrock?: boolean;
|
|
11
11
|
skipAnalyze: boolean;
|
|
12
12
|
skipGenerate: boolean;
|
|
13
|
-
print: boolean;
|
|
14
13
|
skipApply: boolean;
|
|
15
14
|
noCache: boolean;
|
|
16
15
|
yes: boolean;
|
|
17
|
-
verbose: boolean;
|
|
18
|
-
tokens?: string;
|
|
19
|
-
viewports?: string;
|
|
20
16
|
host?: string;
|
|
21
17
|
dryRun?: boolean;
|
|
22
18
|
excludeInvalid?: boolean;
|
|
23
|
-
selectAll?: boolean;
|
|
24
|
-
select?: string[];
|
|
25
|
-
deselect?: string[];
|
|
26
19
|
/** Forwarded to the spawned `analyze select-agent` subprocess. */
|
|
27
20
|
selectPromptPath?: string;
|
|
28
21
|
/** When true, auto-reject cycle participants and retry push instead of surfacing an error. */
|
|
@@ -70,7 +70,6 @@ export type WizardAppProps = {
|
|
|
70
70
|
autoFilter?: boolean;
|
|
71
71
|
livePreview?: boolean;
|
|
72
72
|
noPush?: boolean;
|
|
73
|
-
noSave?: boolean;
|
|
74
73
|
outDirOverride?: string;
|
|
75
74
|
onConflictMode?: ConflictMode;
|
|
76
75
|
selectPromptPath?: string;
|
|
@@ -86,4 +85,4 @@ export type WizardAppProps = {
|
|
|
86
85
|
onRunPicked?: (selection: RunPickerSelection) => void;
|
|
87
86
|
allowDeletions?: boolean;
|
|
88
87
|
};
|
|
89
|
-
export declare function WizardApp({ initialSpaceId, initialEnvironmentId, initialCmaToken, initialHost, initialAgent, initialModel, bedrock, initialProjectPath, host, autoAcceptScope, autoRejectCycles, compositionMode, compositionMap, compositionAgent, compositionAgentMode, compositionRefresh, generateMap, promptOverrides, noCache, autoFilter, livePreview, noPush,
|
|
88
|
+
export declare function WizardApp({ initialSpaceId, initialEnvironmentId, initialCmaToken, initialHost, initialAgent, initialModel, bedrock, initialProjectPath, host, autoAcceptScope, autoRejectCycles, compositionMode, compositionMap, compositionAgent, compositionAgentMode, compositionRefresh, generateMap, promptOverrides, noCache, autoFilter, livePreview, noPush, outDirOverride, onConflictMode, selectPromptPath, generatePromptPath, skipMapTokens, seedExtractSessionId, seedGenerateSessionId, seedTokenSessionId, seedTokensPath, initialStep, initialRawTokensPath, initialRuns, onRunPicked, allowDeletions, }?: WizardAppProps): React.ReactElement;
|