@contentful/experience-design-system-cli 2.27.1-dev-build-4c02585.0 → 2.27.1-dev-build-c0edf3e.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/dist/package.json
CHANGED
|
@@ -7,7 +7,6 @@ export declare function buildSelectAgentArgs(opts: {
|
|
|
7
7
|
sessionId: string;
|
|
8
8
|
agent: string;
|
|
9
9
|
model?: string;
|
|
10
|
-
bedrock?: boolean;
|
|
11
10
|
selectPromptPath?: string;
|
|
12
11
|
noCache?: boolean;
|
|
13
12
|
}): string[];
|
|
@@ -24,7 +23,6 @@ export declare function buildGenerateComponentsArgs(opts: {
|
|
|
24
23
|
tokensPath?: string;
|
|
25
24
|
agent: string;
|
|
26
25
|
model?: string;
|
|
27
|
-
bedrock?: boolean;
|
|
28
26
|
noCache?: boolean;
|
|
29
27
|
generatePromptPath?: string;
|
|
30
28
|
}): string[];
|
|
@@ -40,7 +38,6 @@ export type WizardAppProps = {
|
|
|
40
38
|
initialHost?: string;
|
|
41
39
|
initialAgent?: string;
|
|
42
40
|
initialModel?: string;
|
|
43
|
-
bedrock?: boolean;
|
|
44
41
|
initialProjectPath?: string;
|
|
45
42
|
host?: string;
|
|
46
43
|
autoAcceptScope?: boolean;
|
|
@@ -71,4 +68,4 @@ export type WizardAppProps = {
|
|
|
71
68
|
onRunPicked?: (selection: RunPickerSelection) => void;
|
|
72
69
|
allowDeletions?: boolean;
|
|
73
70
|
};
|
|
74
|
-
export declare function WizardApp({ initialSpaceId, initialEnvironmentId, initialCmaToken, initialHost, initialAgent, initialModel,
|
|
71
|
+
export declare function WizardApp({ initialSpaceId, initialEnvironmentId, initialCmaToken, initialHost, initialAgent, initialModel, initialProjectPath, host, autoAcceptScope, autoRejectCycles, compositionMode, compositionMap, compositionAgent, compositionAgentMode, compositionRefresh, generateMap, promptOverrides, noCache, autoFilter, livePreview, noPush, noSave, outDirOverride, onConflictMode, selectPromptPath, generatePromptPath, seedExtractSessionId, seedGenerateSessionId, seedTokenSessionId, seedTokensPath, initialStep, initialRawTokensPath, initialRuns, onRunPicked, allowDeletions, }?: WizardAppProps): React.ReactElement;
|
package/dist/src/index.js
CHANGED
|
@@ -231,9 +231,6 @@ function resolveBinary(agent) {
|
|
|
231
231
|
return override.trim();
|
|
232
232
|
return AGENT_BINARIES[agent];
|
|
233
233
|
}
|
|
234
|
-
function agentSupportsBedrock(agent) {
|
|
235
|
-
return agent in BEDROCK_ENV_BY_AGENT;
|
|
236
|
-
}
|
|
237
234
|
function resolveAgentModel(agent, explicit) {
|
|
238
235
|
if (explicit && explicit.trim())
|
|
239
236
|
return explicit.trim();
|
|
@@ -257,7 +254,7 @@ function buildArgs(agent, prompt2, model, promptViaStdin = false) {
|
|
|
257
254
|
}
|
|
258
255
|
}
|
|
259
256
|
async function runAgent(options) {
|
|
260
|
-
const { agent, prompt: prompt2, timeoutMs, model,
|
|
257
|
+
const { agent, prompt: prompt2, timeoutMs, model, onOutput, promptViaStdin, onDebugEvent } = options;
|
|
261
258
|
const binary = resolveBinary(agent);
|
|
262
259
|
const useStdin2 = !!promptViaStdin;
|
|
263
260
|
const args = buildArgs(agent, prompt2, model, useStdin2);
|
|
@@ -266,16 +263,13 @@ async function runAgent(options) {
|
|
|
266
263
|
agent,
|
|
267
264
|
binary,
|
|
268
265
|
model,
|
|
269
|
-
bedrock: !!bedrock,
|
|
270
266
|
timeoutMs,
|
|
271
267
|
promptLen: prompt2.length,
|
|
272
268
|
promptHead: prompt2.slice(0, 500)
|
|
273
269
|
});
|
|
274
270
|
return new Promise((resolve27) => {
|
|
275
|
-
const bedrockEnv = bedrock ? BEDROCK_ENV_BY_AGENT[agent] : void 0;
|
|
276
271
|
const child = spawn(binary, args, {
|
|
277
|
-
stdio: ["pipe", "pipe", "pipe"]
|
|
278
|
-
...bedrockEnv ? { env: { ...process.env, ...bedrockEnv } } : {}
|
|
272
|
+
stdio: ["pipe", "pipe", "pipe"]
|
|
279
273
|
});
|
|
280
274
|
if (useStdin2 && child.stdin) {
|
|
281
275
|
child.stdin.on("error", () => {
|
|
@@ -393,7 +387,7 @@ function extractSentinelOutput(stdout) {
|
|
|
393
387
|
return "multiple";
|
|
394
388
|
return stdout.slice(startIdx + START.length, endIdx).trim();
|
|
395
389
|
}
|
|
396
|
-
var VALID_SELECT_TOOL_NAMES, VALID_TOOL_NAMES, VALID_TOKEN_TOOL_NAMES, VALID_CDF_TYPES, VALID_CATEGORIES, AGENT_BINARIES,
|
|
390
|
+
var VALID_SELECT_TOOL_NAMES, VALID_TOOL_NAMES, VALID_TOKEN_TOOL_NAMES, VALID_CDF_TYPES, VALID_CATEGORIES, AGENT_BINARIES, DEFAULT_MODELS;
|
|
397
391
|
var init_agent_runner = __esm({
|
|
398
392
|
"packages/experience-design-system-generation/dist/src/agent-runner.js"() {
|
|
399
393
|
"use strict";
|
|
@@ -409,9 +403,6 @@ var init_agent_runner = __esm({
|
|
|
409
403
|
opencode: "opencode",
|
|
410
404
|
cursor: "cursor-agent"
|
|
411
405
|
};
|
|
412
|
-
BEDROCK_ENV_BY_AGENT = {
|
|
413
|
-
claude: { CLAUDE_CODE_USE_BEDROCK: "1" }
|
|
414
|
-
};
|
|
415
406
|
DEFAULT_MODELS = {
|
|
416
407
|
claude: "haiku",
|
|
417
408
|
codex: "gpt-5.4-mini",
|
|
@@ -680,7 +671,6 @@ var src_exports = {};
|
|
|
680
671
|
__export(src_exports, {
|
|
681
672
|
AGENT_NAMES: () => AGENT_NAMES,
|
|
682
673
|
DEFAULT_AGENT_NAME: () => DEFAULT_AGENT_NAME,
|
|
683
|
-
agentSupportsBedrock: () => agentSupportsBedrock,
|
|
684
674
|
buildArgs: () => buildArgs,
|
|
685
675
|
buildPrompt: () => buildPrompt,
|
|
686
676
|
checkAgentAuth: () => checkAgentAuth,
|
|
@@ -21765,8 +21755,7 @@ function PropRow({
|
|
|
21765
21755
|
] }),
|
|
21766
21756
|
/* @__PURE__ */ jsx44(Text43, { dimColor: !selected, children: "type:" }),
|
|
21767
21757
|
activeField === "type" ? /* @__PURE__ */ jsx44(Picker, { value: prop.type, active: true }) : /* @__PURE__ */ jsx44(Text43, { color: selected ? PALETTE.warning : PALETTE.inverse, children: prop.type }),
|
|
21768
|
-
/* @__PURE__ */ jsx44(
|
|
21769
|
-
activeField === "category" ? /* @__PURE__ */ jsx44(Picker, { value: prop.category, active: true }) : /* @__PURE__ */ jsx44(Text43, { color: selected ? PALETTE.info : PALETTE.inverse, children: prop.category }),
|
|
21758
|
+
activeField === "category" && /* @__PURE__ */ jsx44(Picker, { value: prop.category, active: true }),
|
|
21770
21759
|
/* @__PURE__ */ jsx44(Text43, { dimColor: !selected, children: "req:" }),
|
|
21771
21760
|
activeField === "required" ? /* @__PURE__ */ jsx44(Toggle, { value: prop.required, active: true }) : /* @__PURE__ */ jsx44(Toggle, { value: prop.required, active: false }),
|
|
21772
21761
|
prop.type === "token" && /* @__PURE__ */ jsxs43(Fragment12, { children: [
|
|
@@ -22099,13 +22088,58 @@ function FieldEditor({
|
|
|
22099
22088
|
const [showHelp, setShowHelp] = useState23(false);
|
|
22100
22089
|
const props = editorState.props;
|
|
22101
22090
|
const slots = editorState.slots;
|
|
22102
|
-
const
|
|
22103
|
-
() => props.flatMap(
|
|
22104
|
-
|
|
22105
|
-
|
|
22091
|
+
const contentPropIndexes = React23.useMemo(
|
|
22092
|
+
() => props.flatMap((prop, index) => prop.category === "content" ? [index] : []),
|
|
22093
|
+
[props]
|
|
22094
|
+
);
|
|
22095
|
+
const designPropIndexes = React23.useMemo(
|
|
22096
|
+
() => props.flatMap((prop, index) => prop.category === "design" ? [index] : []),
|
|
22097
|
+
[props]
|
|
22098
|
+
);
|
|
22099
|
+
const hiddenPropIndexes = React23.useMemo(
|
|
22100
|
+
() => showHiddenProps ? props.flatMap((prop, index) => prop.category === "state" || prop.category === "unattached" ? [index] : []) : [],
|
|
22106
22101
|
[props, showHiddenProps]
|
|
22107
22102
|
);
|
|
22103
|
+
const visiblePropIndexes = React23.useMemo(
|
|
22104
|
+
() => [...contentPropIndexes, ...designPropIndexes, ...hiddenPropIndexes],
|
|
22105
|
+
[contentPropIndexes, designPropIndexes, hiddenPropIndexes]
|
|
22106
|
+
);
|
|
22107
|
+
const propGroups = React23.useMemo(
|
|
22108
|
+
() => [
|
|
22109
|
+
{ kind: "content", label: "\u2500\u2500 CONTENT PROPERTIES", indexes: contentPropIndexes },
|
|
22110
|
+
{ kind: "design", label: "\u2500\u2500 DESIGN PROPERTIES", indexes: designPropIndexes },
|
|
22111
|
+
{ kind: "hidden", label: "\u2500\u2500 OTHER / HIDDEN", indexes: hiddenPropIndexes }
|
|
22112
|
+
],
|
|
22113
|
+
[contentPropIndexes, designPropIndexes, hiddenPropIndexes]
|
|
22114
|
+
);
|
|
22115
|
+
const selectableRows = React23.useMemo(
|
|
22116
|
+
() => [
|
|
22117
|
+
...contentPropIndexes.map((idx) => ({ kind: "prop", idx })),
|
|
22118
|
+
...designPropIndexes.map((idx) => ({ kind: "prop", idx })),
|
|
22119
|
+
...slots.map((_, idx) => ({ kind: "slot", idx })),
|
|
22120
|
+
...hiddenPropIndexes.map((idx) => ({ kind: "prop", idx }))
|
|
22121
|
+
],
|
|
22122
|
+
[contentPropIndexes, designPropIndexes, hiddenPropIndexes, slots]
|
|
22123
|
+
);
|
|
22108
22124
|
const visiblePropPosition = visiblePropIndexes.indexOf(propIdx);
|
|
22125
|
+
const selectedSelectableIndex = React23.useMemo(
|
|
22126
|
+
() => selectableRows.findIndex(
|
|
22127
|
+
(row) => inSlots ? row.kind === "slot" && row.idx === slotIdx : row.kind === "prop" && row.idx === propIdx
|
|
22128
|
+
),
|
|
22129
|
+
[inSlots, propIdx, selectableRows, slotIdx]
|
|
22130
|
+
);
|
|
22131
|
+
const focusSelectableRow = (row) => {
|
|
22132
|
+
setInComponentDesc(false);
|
|
22133
|
+
if (row.kind === "prop") {
|
|
22134
|
+
setInSlots(false);
|
|
22135
|
+
setPropIdx(row.idx);
|
|
22136
|
+
setFocusLevel("prop");
|
|
22137
|
+
} else {
|
|
22138
|
+
setInSlots(true);
|
|
22139
|
+
setSlotIdx(row.idx);
|
|
22140
|
+
setFocusLevel("slot");
|
|
22141
|
+
}
|
|
22142
|
+
};
|
|
22109
22143
|
const textEntryActive = focusLevel === "field" && activeField === "description" || focusLevel === "field" && activeField === "default" && (editorState.props[propIdx]?.type === "string" || editorState.props[propIdx]?.type === "token") || editingValue != null;
|
|
22110
22144
|
React23.useEffect(() => {
|
|
22111
22145
|
onTextEntryActiveChange?.(textEntryActive);
|
|
@@ -22326,51 +22360,13 @@ function FieldEditor({
|
|
|
22326
22360
|
}
|
|
22327
22361
|
return;
|
|
22328
22362
|
}
|
|
22329
|
-
if (focusLevel === "prop") {
|
|
22330
|
-
if (key.upArrow || input === "k") {
|
|
22331
|
-
if (visiblePropPosition > 0) {
|
|
22332
|
-
setPropIdx(visiblePropIndexes[visiblePropPosition - 1]);
|
|
22333
|
-
} else {
|
|
22334
|
-
setFocusLevel("componentDescription");
|
|
22335
|
-
setInSlots(false);
|
|
22336
|
-
setInComponentDesc(true);
|
|
22337
|
-
}
|
|
22338
|
-
return;
|
|
22339
|
-
}
|
|
22340
|
-
if (key.downArrow || input === "j") {
|
|
22341
|
-
if (visiblePropPosition >= 0 && visiblePropPosition < visiblePropIndexes.length - 1) {
|
|
22342
|
-
setPropIdx(visiblePropIndexes[visiblePropPosition + 1]);
|
|
22343
|
-
} else if (slots.length > 0) {
|
|
22344
|
-
setInSlots(true);
|
|
22345
|
-
setSlotIdx(0);
|
|
22346
|
-
setFocusLevel("slot");
|
|
22347
|
-
}
|
|
22348
|
-
return;
|
|
22349
|
-
}
|
|
22350
|
-
if (key.return && currentProp) {
|
|
22351
|
-
setFocusLevel("field");
|
|
22352
|
-
setActiveField(propFields(currentProp)[0] ?? null);
|
|
22353
|
-
setTextCursor(currentProp.description.length);
|
|
22354
|
-
return;
|
|
22355
|
-
}
|
|
22356
|
-
return;
|
|
22357
|
-
}
|
|
22358
22363
|
if (focusLevel === "componentDescription") {
|
|
22359
22364
|
if (key.upArrow || input === "k") {
|
|
22360
22365
|
return;
|
|
22361
22366
|
}
|
|
22362
22367
|
if (key.downArrow || input === "j") {
|
|
22363
|
-
|
|
22364
|
-
|
|
22365
|
-
setPropIdx(visiblePropIndexes[0]);
|
|
22366
|
-
setInSlots(false);
|
|
22367
|
-
setInComponentDesc(false);
|
|
22368
|
-
} else if (slots.length > 0) {
|
|
22369
|
-
setFocusLevel("slot");
|
|
22370
|
-
setSlotIdx(0);
|
|
22371
|
-
setInSlots(true);
|
|
22372
|
-
setInComponentDesc(false);
|
|
22373
|
-
}
|
|
22368
|
+
const firstSelectableRow = selectableRows[0];
|
|
22369
|
+
if (firstSelectableRow) focusSelectableRow(firstSelectableRow);
|
|
22374
22370
|
return;
|
|
22375
22371
|
}
|
|
22376
22372
|
if (key.return) {
|
|
@@ -22381,29 +22377,35 @@ function FieldEditor({
|
|
|
22381
22377
|
}
|
|
22382
22378
|
return;
|
|
22383
22379
|
}
|
|
22384
|
-
if (focusLevel === "slot") {
|
|
22380
|
+
if (focusLevel === "prop" || focusLevel === "slot") {
|
|
22385
22381
|
if (key.upArrow || input === "k") {
|
|
22386
|
-
if (
|
|
22387
|
-
|
|
22388
|
-
} else if (
|
|
22382
|
+
if (selectedSelectableIndex > 0) {
|
|
22383
|
+
focusSelectableRow(selectableRows[selectedSelectableIndex - 1]);
|
|
22384
|
+
} else if (selectedSelectableIndex === 0) {
|
|
22385
|
+
setFocusLevel("componentDescription");
|
|
22389
22386
|
setInSlots(false);
|
|
22390
|
-
|
|
22391
|
-
setFocusLevel("prop");
|
|
22387
|
+
setInComponentDesc(true);
|
|
22392
22388
|
}
|
|
22393
22389
|
return;
|
|
22394
22390
|
}
|
|
22395
22391
|
if (key.downArrow || input === "j") {
|
|
22396
|
-
if (
|
|
22397
|
-
|
|
22392
|
+
if (selectedSelectableIndex >= 0 && selectedSelectableIndex < selectableRows.length - 1) {
|
|
22393
|
+
focusSelectableRow(selectableRows[selectedSelectableIndex + 1]);
|
|
22398
22394
|
}
|
|
22399
22395
|
return;
|
|
22400
22396
|
}
|
|
22401
|
-
if (key.return && currentSlot) {
|
|
22397
|
+
if (focusLevel === "slot" && key.return && currentSlot) {
|
|
22402
22398
|
setFocusLevel("field");
|
|
22403
22399
|
setActiveField(SLOT_FIELDS[0] ?? null);
|
|
22404
22400
|
setTextCursor(currentSlot.description.length);
|
|
22405
22401
|
return;
|
|
22406
22402
|
}
|
|
22403
|
+
if (focusLevel === "prop" && key.return && currentProp) {
|
|
22404
|
+
setFocusLevel("field");
|
|
22405
|
+
setActiveField(propFields(currentProp)[0] ?? null);
|
|
22406
|
+
setTextCursor(currentProp.description.length);
|
|
22407
|
+
return;
|
|
22408
|
+
}
|
|
22407
22409
|
return;
|
|
22408
22410
|
}
|
|
22409
22411
|
if (focusLevel === "field") {
|
|
@@ -22732,14 +22734,24 @@ function FieldEditor({
|
|
|
22732
22734
|
})();
|
|
22733
22735
|
const rows = [];
|
|
22734
22736
|
rows.push({ kind: "component-description" });
|
|
22735
|
-
|
|
22736
|
-
|
|
22737
|
-
|
|
22737
|
+
for (const group of propGroups.filter((candidate) => candidate.kind !== "hidden")) {
|
|
22738
|
+
if (group.indexes.length === 0) continue;
|
|
22739
|
+
rows.push({ kind: "header", label: `${group.label} (${group.indexes.length}) `, section: group.kind });
|
|
22740
|
+
group.indexes.forEach((idx) => rows.push({ kind: "prop", idx }));
|
|
22738
22741
|
}
|
|
22739
22742
|
if (slots.length > 0) {
|
|
22740
22743
|
rows.push({ kind: "header", label: `\u2500\u2500 SLOTS (${slots.length}) `, section: "slots" });
|
|
22741
22744
|
slots.forEach((_, i) => rows.push({ kind: "slot", idx: i }));
|
|
22742
22745
|
}
|
|
22746
|
+
const hiddenGroup = propGroups.find((group) => group.kind === "hidden");
|
|
22747
|
+
if (hiddenGroup && hiddenGroup.indexes.length > 0) {
|
|
22748
|
+
rows.push({
|
|
22749
|
+
kind: "header",
|
|
22750
|
+
label: `${hiddenGroup.label} (${hiddenGroup.indexes.length}) `,
|
|
22751
|
+
section: "hidden"
|
|
22752
|
+
});
|
|
22753
|
+
hiddenGroup.indexes.forEach((idx) => rows.push({ kind: "prop", idx }));
|
|
22754
|
+
}
|
|
22743
22755
|
const selectedRowIdx = rows.findIndex(
|
|
22744
22756
|
(r) => r.kind === "prop" && !inSlots && !inComponentDesc && r.idx === propIdx || r.kind === "slot" && inSlots && r.idx === slotIdx || r.kind === "component-description" && inComponentDesc
|
|
22745
22757
|
);
|
|
@@ -22758,7 +22770,15 @@ function FieldEditor({
|
|
|
22758
22770
|
hasEmptyProperties && /* @__PURE__ */ jsx44(Text43, { color: PALETTE.warning, children: "\u26A0 No properties classified for this component. The LLM didn't find anything to classify. Reject this component or add fields manually." }),
|
|
22759
22771
|
/* @__PURE__ */ jsx44(Box41, { flexDirection: "column", width: innerWidth, children: visibleRowSlice.map((row, i) => {
|
|
22760
22772
|
if (row.kind === "header") {
|
|
22761
|
-
return /* @__PURE__ */ jsx44(
|
|
22773
|
+
return /* @__PURE__ */ jsx44(
|
|
22774
|
+
Text43,
|
|
22775
|
+
{
|
|
22776
|
+
bold: true,
|
|
22777
|
+
color: row.section === "slots" ? PALETTE.info : row.section === "hidden" ? PALETTE.warning : PALETTE.success,
|
|
22778
|
+
children: row.label
|
|
22779
|
+
},
|
|
22780
|
+
`header-${i}`
|
|
22781
|
+
);
|
|
22762
22782
|
}
|
|
22763
22783
|
if (row.kind === "component-description") {
|
|
22764
22784
|
const isSelected2 = inComponentDesc;
|
|
@@ -22771,7 +22791,7 @@ function FieldEditor({
|
|
|
22771
22791
|
color: isSelected2 ? PALETTE.inverse : PALETTE.info,
|
|
22772
22792
|
bold: isSelected2,
|
|
22773
22793
|
backgroundColor: isSelected2 ? "blue" : void 0,
|
|
22774
|
-
children: "
|
|
22794
|
+
children: " description: "
|
|
22775
22795
|
}
|
|
22776
22796
|
) }),
|
|
22777
22797
|
isEditing ? /* @__PURE__ */ jsx44(Box41, { paddingLeft: 2, flexDirection: "row", children: /* @__PURE__ */ jsxs43(Box41, { flexGrow: 1, borderStyle: "round", borderColor: PALETTE.info, paddingX: 1, children: [
|
|
@@ -26419,7 +26439,6 @@ import { jsx as jsx50, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
|
26419
26439
|
function buildSelectAgentArgs(opts) {
|
|
26420
26440
|
const args = ["analyze", "select-agent", "--agent", opts.agent, "--session", opts.sessionId, "--exclude-invalid"];
|
|
26421
26441
|
if (opts.model) args.push("--model", opts.model);
|
|
26422
|
-
if (opts.bedrock) args.push("--bedrock");
|
|
26423
26442
|
if (opts.selectPromptPath) args.push("--select-prompt-path", opts.selectPromptPath);
|
|
26424
26443
|
if (opts.noCache) args.push("--no-cache");
|
|
26425
26444
|
return args;
|
|
@@ -26455,7 +26474,6 @@ function buildGenerateComponentsArgs(opts) {
|
|
|
26455
26474
|
const args = ["generate", "components", "--agent", opts.agent, "--session", opts.sessionId];
|
|
26456
26475
|
if (opts.tokensPath) args.push("--tokens", opts.tokensPath);
|
|
26457
26476
|
if (opts.model) args.push("--model", opts.model);
|
|
26458
|
-
if (opts.bedrock) args.push("--bedrock");
|
|
26459
26477
|
if (opts.noCache) args.push("--no-cache");
|
|
26460
26478
|
if (opts.generatePromptPath) args.push("--generate-prompt-path", opts.generatePromptPath);
|
|
26461
26479
|
return args;
|
|
@@ -26488,7 +26506,6 @@ function WizardApp({
|
|
|
26488
26506
|
initialHost,
|
|
26489
26507
|
initialAgent,
|
|
26490
26508
|
initialModel,
|
|
26491
|
-
bedrock = false,
|
|
26492
26509
|
initialProjectPath,
|
|
26493
26510
|
host,
|
|
26494
26511
|
autoAcceptScope = false,
|
|
@@ -26549,7 +26566,6 @@ function WizardApp({
|
|
|
26549
26566
|
step: modifyEntryReady || rawTokensEntryReady || pushFromPickerReady ? initialStepResolved : initialRuns && initialRuns.length > 0 ? "run-picker" : initialStepResolved,
|
|
26550
26567
|
agent: initialAgent ?? "claude",
|
|
26551
26568
|
...initialModel ? { agentModel: initialModel } : {},
|
|
26552
|
-
...bedrock ? { bedrock: true } : {},
|
|
26553
26569
|
projectPath: initialProjectPath ?? "",
|
|
26554
26570
|
outDir: initialOutDir,
|
|
26555
26571
|
rawTokensPath: rawTokensEntryReady ? initialRawTokensPath : "",
|
|
@@ -26688,7 +26704,6 @@ If you are using AWS Bedrock, run:
|
|
|
26688
26704
|
const result = await new Promise((res) => {
|
|
26689
26705
|
const tokenArgs = [findCliPath(), "generate", "tokens", "--agent", state.agent, "--raw-tokens", rawTokensPath];
|
|
26690
26706
|
if (state.agentModel) tokenArgs.push("--model", state.agentModel);
|
|
26691
|
-
if (state.bedrock) tokenArgs.push("--bedrock");
|
|
26692
26707
|
const child = spawn4("node", tokenArgs);
|
|
26693
26708
|
let stdout2 = "";
|
|
26694
26709
|
let stderr = "";
|
|
@@ -26846,7 +26861,6 @@ Make sure this path contains TypeScript/React/Vue component files (.tsx, .ts, .v
|
|
|
26846
26861
|
sessionId: sessionId2,
|
|
26847
26862
|
agent: state.agent,
|
|
26848
26863
|
...state.agentModel ? { model: state.agentModel } : {},
|
|
26849
|
-
...state.bedrock ? { bedrock: true } : {},
|
|
26850
26864
|
selectPromptPath,
|
|
26851
26865
|
noCache
|
|
26852
26866
|
});
|
|
@@ -26945,7 +26959,6 @@ Make sure this path contains TypeScript/React/Vue component files (.tsx, .ts, .v
|
|
|
26945
26959
|
tokensPath,
|
|
26946
26960
|
agent: state.agent,
|
|
26947
26961
|
...state.agentModel ? { model: state.agentModel } : {},
|
|
26948
|
-
...state.bedrock ? { bedrock: true } : {},
|
|
26949
26962
|
noCache: effectiveNoCache
|
|
26950
26963
|
})
|
|
26951
26964
|
];
|
|
@@ -27015,7 +27028,6 @@ Make sure this path contains TypeScript/React/Vue component files (.tsx, .ts, .v
|
|
|
27015
27028
|
tokensPath,
|
|
27016
27029
|
agent: state.agent,
|
|
27017
27030
|
...state.agentModel ? { model: state.agentModel } : {},
|
|
27018
|
-
...state.bedrock ? { bedrock: true } : {},
|
|
27019
27031
|
noCache: effectiveNoCache,
|
|
27020
27032
|
generatePromptPath
|
|
27021
27033
|
})
|
|
@@ -28491,13 +28503,11 @@ import { isAbsolute as isAbsolute4, join as join15, relative as relative3, resol
|
|
|
28491
28503
|
init_src();
|
|
28492
28504
|
var AGENT_DESCRIPTION = `Agent to use: ${AGENT_NAMES.join(", ")} (defaults to value saved by experiences setup)`;
|
|
28493
28505
|
var MODEL_DESCRIPTION = "Model to use (defaults to a lightweight per-agent model; override with EDS_AGENT_MODEL_<AGENT>)";
|
|
28494
|
-
var BEDROCK_DESCRIPTION = "Route the selected agent through AWS Bedrock instead of its default model provider (requires AWS credentials in the environment: AWS_PROFILE, or AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY/AWS_SESSION_TOKEN, plus AWS_REGION). Only supported by agents with a Bedrock routing mechanism (currently: claude).";
|
|
28495
28506
|
function addAgentModelOptions(cmd, config = {}) {
|
|
28496
28507
|
const { agentDescription = AGENT_DESCRIPTION, includeModel = true, modelDescription = MODEL_DESCRIPTION } = config;
|
|
28497
28508
|
cmd.option("--agent <name>", agentDescription);
|
|
28498
28509
|
if (includeModel) {
|
|
28499
28510
|
cmd.option("--model <name>", modelDescription);
|
|
28500
|
-
cmd.option("--bedrock", BEDROCK_DESCRIPTION);
|
|
28501
28511
|
}
|
|
28502
28512
|
return cmd;
|
|
28503
28513
|
}
|
|
@@ -29050,7 +29060,7 @@ function resolveProjectRoot(sessionId2, projectRootFlag) {
|
|
|
29050
29060
|
db.close();
|
|
29051
29061
|
}
|
|
29052
29062
|
}
|
|
29053
|
-
async function selectBatch(agent, model,
|
|
29063
|
+
async function selectBatch(agent, model, batch, total, verbose, skillPathOverride) {
|
|
29054
29064
|
const prompt2 = await buildPrompt({
|
|
29055
29065
|
skill: "select",
|
|
29056
29066
|
mode: "autonomous",
|
|
@@ -29069,7 +29079,6 @@ async function selectBatch(agent, model, bedrock, batch, total, verbose, skillPa
|
|
|
29069
29079
|
const result = await invoker.invoke({
|
|
29070
29080
|
agent,
|
|
29071
29081
|
model,
|
|
29072
|
-
bedrock,
|
|
29073
29082
|
prompt: prompt2,
|
|
29074
29083
|
timeoutMs: DEFAULT_TIMEOUT_MS,
|
|
29075
29084
|
onOutput: (chunk) => formatter.push(chunk)
|
|
@@ -29156,7 +29165,7 @@ ${outputBuf}`);
|
|
|
29156
29165
|
}
|
|
29157
29166
|
return results;
|
|
29158
29167
|
}
|
|
29159
|
-
async function selectAllComponents(agent, model,
|
|
29168
|
+
async function selectAllComponents(agent, model, components, verbose, skillPathOverride, cacheConfig = { noCache: true }) {
|
|
29160
29169
|
const concurrency = Number(process.env.EDS_GENERATE_CONCURRENCY ?? DEFAULT_CONCURRENCY);
|
|
29161
29170
|
const batchSize = resolveBatchSize();
|
|
29162
29171
|
const total = components.length;
|
|
@@ -29221,7 +29230,7 @@ async function selectAllComponents(agent, model, bedrock, components, verbose, s
|
|
|
29221
29230
|
while (nextBatch < batches.length) {
|
|
29222
29231
|
const b = nextBatch++;
|
|
29223
29232
|
const batch = batches[b];
|
|
29224
|
-
const batchResults = await selectBatch(agent, model,
|
|
29233
|
+
const batchResults = await selectBatch(agent, model, batch, total, verbose, skillPathOverride);
|
|
29225
29234
|
for (let k = 0; k < batch.length; k++) {
|
|
29226
29235
|
results[batch[k].index] = batchResults[k];
|
|
29227
29236
|
}
|
|
@@ -29285,12 +29294,6 @@ function registerAnalyzeSelectAgentCommand(program) {
|
|
|
29285
29294
|
return;
|
|
29286
29295
|
}
|
|
29287
29296
|
const agent = agentName;
|
|
29288
|
-
if (opts.bedrock && !agentSupportsBedrock(agent)) {
|
|
29289
|
-
process.stderr.write(`Error: --bedrock is not supported for --agent ${agent}
|
|
29290
|
-
`);
|
|
29291
|
-
await exitWithAnalytics(1);
|
|
29292
|
-
return;
|
|
29293
|
-
}
|
|
29294
29297
|
const selectPromptPath = opts.selectPromptPath ?? savedCreds.selectPromptPath;
|
|
29295
29298
|
if (selectPromptPath) {
|
|
29296
29299
|
const resolvedPath = resolve12(selectPromptPath);
|
|
@@ -29389,7 +29392,6 @@ function registerAnalyzeSelectAgentCommand(program) {
|
|
|
29389
29392
|
const selectResults = await selectAllComponents(
|
|
29390
29393
|
agent,
|
|
29391
29394
|
model,
|
|
29392
|
-
opts.bedrock,
|
|
29393
29395
|
selectionCandidates,
|
|
29394
29396
|
opts.verbose ?? false,
|
|
29395
29397
|
selectPromptPath ? resolve12(selectPromptPath) : void 0,
|
|
@@ -31149,7 +31151,7 @@ function printFallbackInstructions(options) {
|
|
|
31149
31151
|
lines.push(` Re-run the generate command with the agent available, or use --dry-run to inspect the prompt.`);
|
|
31150
31152
|
process.stderr.write(lines.join("\n") + "\n");
|
|
31151
31153
|
}
|
|
31152
|
-
async function runOneComponent(agent, model,
|
|
31154
|
+
async function runOneComponent(agent, model, db, sessionId2, component, tokensInline, tokenMapInline, index, total, verbose, noCache, skillPathOverride, promptHash) {
|
|
31153
31155
|
const pos = c.dim(`[${index + 1}/${total}]`);
|
|
31154
31156
|
if (!noCache) {
|
|
31155
31157
|
const inputHash = computeComponentInputHash(component);
|
|
@@ -31234,7 +31236,6 @@ async function runOneComponent(agent, model, bedrock, db, sessionId2, component,
|
|
|
31234
31236
|
const result = await invoker2.invoke({
|
|
31235
31237
|
agent,
|
|
31236
31238
|
model,
|
|
31237
|
-
bedrock,
|
|
31238
31239
|
prompt: prompt2,
|
|
31239
31240
|
timeoutMs: DEFAULT_TIMEOUT_MS3,
|
|
31240
31241
|
onOutput: (chunk) => formatter.push(chunk)
|
|
@@ -31290,7 +31291,7 @@ ${outputBuf}`);
|
|
|
31290
31291
|
renamedSlotsCount: renames.length
|
|
31291
31292
|
};
|
|
31292
31293
|
}
|
|
31293
|
-
async function runAllComponents(agent, model,
|
|
31294
|
+
async function runAllComponents(agent, model, db, sessionId2, components, tokensInline, tokenMapInline, verbose, noCache, skillPathOverride, promptHash) {
|
|
31294
31295
|
const concurrency = Number(process.env.EDS_GENERATE_CONCURRENCY ?? DEFAULT_COMPONENT_CONCURRENCY);
|
|
31295
31296
|
process.stderr.write(
|
|
31296
31297
|
`Categorizing ${c.bold(String(components.length))} component${components.length === 1 ? "" : "s"}` + c.dim(` (concurrency: ${concurrency})`) + "\n"
|
|
@@ -31304,7 +31305,6 @@ async function runAllComponents(agent, model, bedrock, db, sessionId2, component
|
|
|
31304
31305
|
results[i] = await runOneComponent(
|
|
31305
31306
|
agent,
|
|
31306
31307
|
model,
|
|
31307
|
-
bedrock,
|
|
31308
31308
|
db,
|
|
31309
31309
|
sessionId2,
|
|
31310
31310
|
components[i],
|
|
@@ -31372,9 +31372,6 @@ async function runGenerateSkill(skill, opts, verbose = false) {
|
|
|
31372
31372
|
);
|
|
31373
31373
|
}
|
|
31374
31374
|
const agent = agentName;
|
|
31375
|
-
if (opts.bedrock && !agentSupportsBedrock(agent)) {
|
|
31376
|
-
die2(`Error: --bedrock is not supported for --agent ${agent}`);
|
|
31377
|
-
}
|
|
31378
31375
|
const generatePromptPath = skill === "components" ? opts.generatePromptPath ?? savedCreds.generatePromptPath : void 0;
|
|
31379
31376
|
if (generatePromptPath) {
|
|
31380
31377
|
if (!await pathExists3(resolve17(generatePromptPath))) {
|
|
@@ -31484,7 +31481,6 @@ async function runGenerateSkill(skill, opts, verbose = false) {
|
|
|
31484
31481
|
componentResults = await runAllComponents(
|
|
31485
31482
|
agent,
|
|
31486
31483
|
model,
|
|
31487
|
-
opts.bedrock,
|
|
31488
31484
|
db,
|
|
31489
31485
|
sessionId2,
|
|
31490
31486
|
allComponents,
|
|
@@ -31597,7 +31593,6 @@ session=${sessionId2 ?? ""}
|
|
|
31597
31593
|
const result = await invoker2.invoke({
|
|
31598
31594
|
agent,
|
|
31599
31595
|
model,
|
|
31600
|
-
bedrock: opts.bedrock,
|
|
31601
31596
|
prompt: prompt2,
|
|
31602
31597
|
timeoutMs: DEFAULT_TIMEOUT_MS3 * 5
|
|
31603
31598
|
});
|
|
@@ -32621,7 +32616,6 @@ function registerPrintCommand(program) {
|
|
|
32621
32616
|
}
|
|
32622
32617
|
|
|
32623
32618
|
// packages/experience-design-system-cli/src/import/command.ts
|
|
32624
|
-
init_src();
|
|
32625
32619
|
init_path_utils();
|
|
32626
32620
|
import { resolve as resolve25, join as join25 } from "node:path";
|
|
32627
32621
|
|
|
@@ -32826,7 +32820,6 @@ async function runPipeline(opts, progressWriter, cliPathOverride) {
|
|
|
32826
32820
|
if (useAgentSelect) {
|
|
32827
32821
|
editArgs = ["analyze", "select-agent", "--session", extractSessionId, "--agent", opts.agent];
|
|
32828
32822
|
if (opts.model) editArgs.push("--model", opts.model);
|
|
32829
|
-
if (opts.bedrock) editArgs.push("--bedrock");
|
|
32830
32823
|
if (opts.excludeInvalid) editArgs.push("--exclude-invalid");
|
|
32831
32824
|
if (opts.noCache) editArgs.push("--no-cache");
|
|
32832
32825
|
if (opts.selectPromptPath) editArgs.push("--select-prompt-path", opts.selectPromptPath);
|
|
@@ -32888,7 +32881,6 @@ async function runPipeline(opts, progressWriter, cliPathOverride) {
|
|
|
32888
32881
|
const generateLabel = stepLabel("Categorizing component props");
|
|
32889
32882
|
const generateArgs = ["generate", "components", "--agent", opts.agent];
|
|
32890
32883
|
if (opts.model) generateArgs.push("--model", opts.model);
|
|
32891
|
-
if (opts.bedrock) generateArgs.push("--bedrock");
|
|
32892
32884
|
if (extractSessionId) generateArgs.push("--session", extractSessionId);
|
|
32893
32885
|
if (opts.dryRun) generateArgs.push("--dry-run");
|
|
32894
32886
|
if (opts.verbose) generateArgs.push("--verbose");
|
|
@@ -33832,12 +33824,6 @@ function registerImportCommand(program) {
|
|
|
33832
33824
|
const resolvedAgent = resolveAgent(opts.agent, creds.agent);
|
|
33833
33825
|
const resolvedModel = resolveModel(opts.model, creds.agentModel);
|
|
33834
33826
|
const resolvedCompositionMode = resolveCompositionMode(opts, creds.compositionMode);
|
|
33835
|
-
if (opts.bedrock && !(isAgentName(resolvedAgent) && agentSupportsBedrock(resolvedAgent))) {
|
|
33836
|
-
process.stderr.write(`Error: --bedrock is not supported for --agent ${resolvedAgent}
|
|
33837
|
-
`);
|
|
33838
|
-
process.exit(1);
|
|
33839
|
-
return;
|
|
33840
|
-
}
|
|
33841
33827
|
const pickerDecision = await shouldShowRunPicker({
|
|
33842
33828
|
flags: {
|
|
33843
33829
|
...opts.pushFromRun !== void 0 ? { pushFromRun: opts.pushFromRun } : {},
|
|
@@ -33866,7 +33852,6 @@ function registerImportCommand(program) {
|
|
|
33866
33852
|
initialHost: toConfiguredHost(opts.host ?? creds.host) ?? DEFAULT_CONFIGURED_HOST,
|
|
33867
33853
|
initialAgent: resolvedAgent,
|
|
33868
33854
|
...resolvedModel ? { initialModel: resolvedModel } : {},
|
|
33869
|
-
...opts.bedrock ? { bedrock: true } : {},
|
|
33870
33855
|
initialProjectPath: opts.project !== "." ? normalizePath(opts.project) : void 0,
|
|
33871
33856
|
host: opts.host,
|
|
33872
33857
|
autoAcceptScope,
|
|
@@ -33929,12 +33914,6 @@ function registerImportCommand(program) {
|
|
|
33929
33914
|
const headlessAgent = resolveAgent(opts.agent, headlessCreds.agent);
|
|
33930
33915
|
const headlessModel = resolveModel(opts.model, headlessCreds.agentModel);
|
|
33931
33916
|
const headlessCompositionMode = resolveCompositionMode(opts, headlessCreds.compositionMode);
|
|
33932
|
-
if (opts.bedrock && !(isAgentName(headlessAgent) && agentSupportsBedrock(headlessAgent))) {
|
|
33933
|
-
process.stderr.write(`Error: --bedrock is not supported for --agent ${headlessAgent}
|
|
33934
|
-
`);
|
|
33935
|
-
process.exit(1);
|
|
33936
|
-
return;
|
|
33937
|
-
}
|
|
33938
33917
|
const result = await runPipeline(
|
|
33939
33918
|
{
|
|
33940
33919
|
project: projectRoot,
|
|
@@ -33944,7 +33923,6 @@ function registerImportCommand(program) {
|
|
|
33944
33923
|
cmaToken,
|
|
33945
33924
|
agent: headlessAgent,
|
|
33946
33925
|
model: headlessModel,
|
|
33947
|
-
...opts.bedrock ? { bedrock: true } : {},
|
|
33948
33926
|
tokens: opts.tokens,
|
|
33949
33927
|
selectAll: opts.selectAll,
|
|
33950
33928
|
select: opts.select.length > 0 ? opts.select : void 0,
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
2
|
export declare const AGENT_DESCRIPTION: string;
|
|
3
3
|
export declare const MODEL_DESCRIPTION = "Model to use (defaults to a lightweight per-agent model; override with EDS_AGENT_MODEL_<AGENT>)";
|
|
4
|
-
export declare const BEDROCK_DESCRIPTION = "Route the selected agent through AWS Bedrock instead of its default model provider (requires AWS credentials in the environment: AWS_PROFILE, or AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY/AWS_SESSION_TOKEN, plus AWS_REGION). Only supported by agents with a Bedrock routing mechanism (currently: claude).";
|
|
5
4
|
export interface AgentModelOptionsConfig {
|
|
6
5
|
agentDescription?: string;
|
|
7
6
|
includeModel?: boolean;
|
|
8
7
|
modelDescription?: string;
|
|
9
8
|
}
|
|
10
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Register --agent and optionally --model flags to a Commander command, with customizable descriptions.
|
|
11
|
+
* Pass `includeModel: false` for commands where the model dimension is not applicable (e.g., mapping-resolution agents that select an agent for logic, not model choice).
|
|
12
|
+
*/
|
|
11
13
|
export declare function addAgentModelOptions(cmd: Command, config?: AgentModelOptionsConfig): Command;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contentful/experience-design-system-cli",
|
|
3
|
-
"version": "2.27.1-dev-build-
|
|
3
|
+
"version": "2.27.1-dev-build-c0edf3e.0",
|
|
4
4
|
"description": "Contentful Experiences design system import CLI",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"svelte": "^5.56.4",
|
|
40
40
|
"ts-morph": "^27.0.2",
|
|
41
41
|
"typescript": "^5.9.3",
|
|
42
|
-
"@contentful/experience-design-system-types": "2.27.1-dev-build-
|
|
42
|
+
"@contentful/experience-design-system-types": "2.27.1-dev-build-c0edf3e.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@tsconfig/node24": "^24.0.4",
|
|
@@ -51,9 +51,9 @@
|
|
|
51
51
|
"ink-testing-library": "^4.0.0",
|
|
52
52
|
"typescript-eslint": "^8.67.0",
|
|
53
53
|
"vitest": "^4.0.16",
|
|
54
|
-
"@contentful/experience-design-system-client": "2.27.1-dev-build-
|
|
55
|
-
"@contentful/experience-design-system-extraction": "2.27.1-dev-build-
|
|
56
|
-
"@contentful/experience-design-system-generation": "2.27.1-dev-build-
|
|
54
|
+
"@contentful/experience-design-system-client": "2.27.1-dev-build-c0edf3e.0",
|
|
55
|
+
"@contentful/experience-design-system-extraction": "2.27.1-dev-build-c0edf3e.0",
|
|
56
|
+
"@contentful/experience-design-system-generation": "2.27.1-dev-build-c0edf3e.0"
|
|
57
57
|
},
|
|
58
58
|
"repository": {
|
|
59
59
|
"type": "git",
|