@cubis/foundry 0.3.54 → 0.3.55
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 +15 -0
- package/README.md +2 -1
- package/dist/cli/commands/register.js +1 -0
- package/dist/cli/commands/register.js.map +1 -1
- package/dist/cli/core.js +89 -57
- package/dist/cli/core.js.map +1 -1
- package/dist/cli/init/execute.js +6 -1
- package/dist/cli/init/execute.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/commands/register.ts +4 -0
- package/src/cli/core.ts +107 -65
- package/src/cli/init/execute.ts +6 -1
- package/src/cli/init/types.ts +1 -0
package/dist/cli/init/execute.js
CHANGED
|
@@ -32,6 +32,9 @@ export function buildInitExecutionPlan({ selections, dryRun, target, }) {
|
|
|
32
32
|
mcpFallback: "local",
|
|
33
33
|
mcpBuildLocal: wantsPostman || stitchEnabled ? selections.mcpBuildLocal : false,
|
|
34
34
|
postmanMode: wantsPostman ? selections.postmanMode : undefined,
|
|
35
|
+
postmanWorkspaceId: wantsPostman
|
|
36
|
+
? selections.postmanWorkspaceId
|
|
37
|
+
: undefined,
|
|
35
38
|
initWizardMode: true,
|
|
36
39
|
};
|
|
37
40
|
planItems.push({
|
|
@@ -45,6 +48,7 @@ export function buildInitExecutionPlan({ selections, dryRun, target, }) {
|
|
|
45
48
|
};
|
|
46
49
|
}
|
|
47
50
|
export function formatInitSummary(selections) {
|
|
51
|
+
const postmanSelected = selections.selectedMcps.includes("postman");
|
|
48
52
|
return [
|
|
49
53
|
"Init plan summary:",
|
|
50
54
|
`- Bundle: ${selections.bundleId}`,
|
|
@@ -54,7 +58,8 @@ export function formatInitSummary(selections) {
|
|
|
54
58
|
`- MCP scope: ${selections.mcpScope}`,
|
|
55
59
|
`- MCP runtime: ${selections.mcpRuntime}${selections.mcpRuntime === "docker" ? selections.mcpBuildLocal ? " (build local image)" : " (pull image)" : ""}`,
|
|
56
60
|
`- MCP selections: ${selections.selectedMcps.length > 0 ? selections.selectedMcps.join(", ") : "(none)"}`,
|
|
57
|
-
`- Postman mode: ${selections.postmanMode}`,
|
|
61
|
+
`- Postman mode: ${postmanSelected ? selections.postmanMode : "(not selected)"}`,
|
|
62
|
+
`- Postman workspace: ${postmanSelected ? selections.postmanWorkspaceId === null ? "null" : selections.postmanWorkspaceId : "(not selected)"}`,
|
|
58
63
|
].join("\n");
|
|
59
64
|
}
|
|
60
65
|
//# sourceMappingURL=execute.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/cli/init/execute.ts"],"names":[],"mappings":"AAOA,SAAS,eAAe,CAAC,YAAyB,EAAE,KAAgB;IAClE,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EACrC,UAAU,EACV,MAAM,EACN,MAAM,GAKP;IACC,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAE/E,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,QAAQ,KAAK,aAAa,CAAC;QACnD,MAAM,aAAa,GAAG,WAAW,IAAI,eAAe,CAAC;QACrD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CACX,+BAA+B,QAAQ,0CAA0C,CAClF,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAA4B;YAC9C,QAAQ;YACR,KAAK,EAAE,UAAU,CAAC,WAAW;YAC7B,MAAM,EAAE,UAAU,CAAC,QAAQ;YAC3B,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,SAAS,EAAE,UAAU,CAAC,YAAY,KAAK,MAAM;YAC7C,MAAM;YACN,GAAG,EAAE,IAAI;YACT,MAAM;YACN,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,aAAa;YACrB,2BAA2B,EAAE,KAAK;YAClC,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,UAAU,EAAE,YAAY;YACxB,WAAW,EAAE,YAAY,IAAI,aAAa;YAC1C,UAAU,EAAE,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;YAC3E,WAAW,EAAE,OAAO;YACpB,aAAa,EACX,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK;YAClE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YAC9D,cAAc,EAAE,IAAI;SACrB,CAAC;QAEF,SAAS,CAAC,IAAI,CAAC;YACb,QAAQ;YACR,cAAc;YACd,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,KAAK,EAAE,SAAS;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAgC;IAChE,OAAO;QACL,oBAAoB;QACpB,aAAa,UAAU,CAAC,QAAQ,EAAE;QAClC,gBAAgB,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACjD,oBAAoB,UAAU,CAAC,YAAY,EAAE;QAC7C,mBAAmB,UAAU,CAAC,WAAW,EAAE;QAC3C,gBAAgB,UAAU,CAAC,QAAQ,EAAE;QACrC,kBAAkB,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE;QACzJ,qBAAqB,UAAU,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACzG,mBAAmB,UAAU,CAAC,WAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/cli/init/execute.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -67,6 +67,10 @@ export function registerCommands(deps: CliRegistrationDeps) {
|
|
|
67
67
|
"comma-separated MCP selections: cubis-foundry,postman,stitch",
|
|
68
68
|
)
|
|
69
69
|
.option("--postman-mode <mode>", "Postman mode: full|minimal")
|
|
70
|
+
.option(
|
|
71
|
+
"--postman-workspace-id <id|null>",
|
|
72
|
+
"optional: set default Postman workspace ID (use 'null' for no default)",
|
|
73
|
+
)
|
|
70
74
|
.option("--mcp-runtime <runtime>", "MCP runtime: docker|local")
|
|
71
75
|
.option(
|
|
72
76
|
"--mcp-build-local",
|
package/src/cli/core.ts
CHANGED
|
@@ -4574,6 +4574,81 @@ async function fetchPostmanWorkspaces({
|
|
|
4574
4574
|
}
|
|
4575
4575
|
}
|
|
4576
4576
|
|
|
4577
|
+
async function promptPostmanWorkspaceSelection({
|
|
4578
|
+
apiKey,
|
|
4579
|
+
defaultWorkspaceId = null,
|
|
4580
|
+
}) {
|
|
4581
|
+
let selectedWorkspaceId = normalizePostmanWorkspaceId(defaultWorkspaceId);
|
|
4582
|
+
let usedWorkspaceSelector = false;
|
|
4583
|
+
const warnings = [];
|
|
4584
|
+
const selectableApiKey = normalizePostmanApiKey(apiKey);
|
|
4585
|
+
|
|
4586
|
+
if (selectableApiKey) {
|
|
4587
|
+
try {
|
|
4588
|
+
const fetchedWorkspaces = await fetchPostmanWorkspaces({
|
|
4589
|
+
apiKey: selectableApiKey,
|
|
4590
|
+
});
|
|
4591
|
+
if (fetchedWorkspaces.length > 0) {
|
|
4592
|
+
usedWorkspaceSelector = true;
|
|
4593
|
+
const sortedWorkspaces = [...fetchedWorkspaces].sort((a, b) =>
|
|
4594
|
+
a.name.localeCompare(b.name),
|
|
4595
|
+
);
|
|
4596
|
+
const workspaceChoice = await select({
|
|
4597
|
+
message: "Choose default Postman workspace for this install:",
|
|
4598
|
+
choices: [
|
|
4599
|
+
{ name: "No default workspace (null)", value: null },
|
|
4600
|
+
...sortedWorkspaces.map((workspace) => {
|
|
4601
|
+
const details = [workspace.type, workspace.visibility]
|
|
4602
|
+
.filter(Boolean)
|
|
4603
|
+
.join(", ");
|
|
4604
|
+
const suffix = details ? ` - ${details}` : "";
|
|
4605
|
+
return {
|
|
4606
|
+
name: `${workspace.name} (${workspace.id})${suffix}`,
|
|
4607
|
+
value: workspace.id,
|
|
4608
|
+
};
|
|
4609
|
+
}),
|
|
4610
|
+
{
|
|
4611
|
+
name: "Enter workspace ID manually",
|
|
4612
|
+
value: POSTMAN_WORKSPACE_MANUAL_CHOICE,
|
|
4613
|
+
},
|
|
4614
|
+
],
|
|
4615
|
+
default: selectedWorkspaceId,
|
|
4616
|
+
});
|
|
4617
|
+
|
|
4618
|
+
if (workspaceChoice === POSTMAN_WORKSPACE_MANUAL_CHOICE) {
|
|
4619
|
+
const promptedWorkspaceId = await input({
|
|
4620
|
+
message:
|
|
4621
|
+
"Default Postman workspace ID (optional, leave blank for null):",
|
|
4622
|
+
default: selectedWorkspaceId || "",
|
|
4623
|
+
});
|
|
4624
|
+
selectedWorkspaceId =
|
|
4625
|
+
normalizePostmanWorkspaceId(promptedWorkspaceId);
|
|
4626
|
+
} else {
|
|
4627
|
+
selectedWorkspaceId = normalizePostmanWorkspaceId(workspaceChoice);
|
|
4628
|
+
}
|
|
4629
|
+
}
|
|
4630
|
+
} catch (error) {
|
|
4631
|
+
warnings.push(
|
|
4632
|
+
`Could not load Postman workspaces for selection: ${error.message}`,
|
|
4633
|
+
);
|
|
4634
|
+
}
|
|
4635
|
+
}
|
|
4636
|
+
|
|
4637
|
+
if (!usedWorkspaceSelector) {
|
|
4638
|
+
const promptedWorkspaceId = await input({
|
|
4639
|
+
message:
|
|
4640
|
+
"Default Postman workspace ID (optional, leave blank for null):",
|
|
4641
|
+
default: selectedWorkspaceId || "",
|
|
4642
|
+
});
|
|
4643
|
+
selectedWorkspaceId = normalizePostmanWorkspaceId(promptedWorkspaceId);
|
|
4644
|
+
}
|
|
4645
|
+
|
|
4646
|
+
return {
|
|
4647
|
+
workspaceId: selectedWorkspaceId,
|
|
4648
|
+
warnings,
|
|
4649
|
+
};
|
|
4650
|
+
}
|
|
4651
|
+
|
|
4577
4652
|
function parseJsonLenient(raw) {
|
|
4578
4653
|
try {
|
|
4579
4654
|
return {
|
|
@@ -5043,71 +5118,12 @@ async function resolvePostmanInstallSelection({
|
|
|
5043
5118
|
|
|
5044
5119
|
const canPrompt = !options.yes && process.stdin.isTTY;
|
|
5045
5120
|
if (postmanRequested && canPrompt && !hasWorkspaceOption) {
|
|
5046
|
-
const
|
|
5047
|
-
|
|
5048
|
-
|
|
5049
|
-
|
|
5050
|
-
|
|
5051
|
-
|
|
5052
|
-
const fetchedWorkspaces = await fetchPostmanWorkspaces({
|
|
5053
|
-
apiKey: selectableApiKey,
|
|
5054
|
-
});
|
|
5055
|
-
if (fetchedWorkspaces.length > 0) {
|
|
5056
|
-
usedWorkspaceSelector = true;
|
|
5057
|
-
const sortedWorkspaces = [...fetchedWorkspaces].sort((a, b) =>
|
|
5058
|
-
a.name.localeCompare(b.name),
|
|
5059
|
-
);
|
|
5060
|
-
const workspaceChoice = await select({
|
|
5061
|
-
message: "Choose default Postman workspace for this install:",
|
|
5062
|
-
choices: [
|
|
5063
|
-
{ name: "No default workspace (null)", value: null },
|
|
5064
|
-
...sortedWorkspaces.map((workspace) => {
|
|
5065
|
-
const details = [workspace.type, workspace.visibility]
|
|
5066
|
-
.filter(Boolean)
|
|
5067
|
-
.join(", ");
|
|
5068
|
-
const suffix = details ? ` - ${details}` : "";
|
|
5069
|
-
return {
|
|
5070
|
-
name: `${workspace.name} (${workspace.id})${suffix}`,
|
|
5071
|
-
value: workspace.id,
|
|
5072
|
-
};
|
|
5073
|
-
}),
|
|
5074
|
-
{
|
|
5075
|
-
name: "Enter workspace ID manually",
|
|
5076
|
-
value: POSTMAN_WORKSPACE_MANUAL_CHOICE,
|
|
5077
|
-
},
|
|
5078
|
-
],
|
|
5079
|
-
default: null,
|
|
5080
|
-
});
|
|
5081
|
-
|
|
5082
|
-
if (workspaceChoice === POSTMAN_WORKSPACE_MANUAL_CHOICE) {
|
|
5083
|
-
const promptedWorkspaceId = await input({
|
|
5084
|
-
message:
|
|
5085
|
-
"Default Postman workspace ID (optional, leave blank for null):",
|
|
5086
|
-
default: "",
|
|
5087
|
-
});
|
|
5088
|
-
selectedWorkspaceId =
|
|
5089
|
-
normalizePostmanWorkspaceId(promptedWorkspaceId);
|
|
5090
|
-
} else {
|
|
5091
|
-
selectedWorkspaceId = normalizePostmanWorkspaceId(workspaceChoice);
|
|
5092
|
-
}
|
|
5093
|
-
}
|
|
5094
|
-
} catch (error) {
|
|
5095
|
-
warnings.push(
|
|
5096
|
-
`Could not load Postman workspaces for selection: ${error.message}`,
|
|
5097
|
-
);
|
|
5098
|
-
}
|
|
5099
|
-
}
|
|
5100
|
-
|
|
5101
|
-
if (!usedWorkspaceSelector) {
|
|
5102
|
-
const promptedWorkspaceId = await input({
|
|
5103
|
-
message:
|
|
5104
|
-
"Default Postman workspace ID (optional, leave blank for null):",
|
|
5105
|
-
default: "",
|
|
5106
|
-
});
|
|
5107
|
-
selectedWorkspaceId = normalizePostmanWorkspaceId(promptedWorkspaceId);
|
|
5108
|
-
}
|
|
5109
|
-
|
|
5110
|
-
defaultWorkspaceId = selectedWorkspaceId;
|
|
5121
|
+
const workspaceSelection = await promptPostmanWorkspaceSelection({
|
|
5122
|
+
apiKey: envApiKey,
|
|
5123
|
+
defaultWorkspaceId,
|
|
5124
|
+
});
|
|
5125
|
+
defaultWorkspaceId = workspaceSelection.workspaceId;
|
|
5126
|
+
warnings.push(...workspaceSelection.warnings);
|
|
5111
5127
|
workspaceSelectionSource = "interactive";
|
|
5112
5128
|
}
|
|
5113
5129
|
|
|
@@ -10987,6 +11003,10 @@ async function runInitWizard(options) {
|
|
|
10987
11003
|
normalizeMcpScope(options.mcpScope, defaultSkillsScope) === "global"
|
|
10988
11004
|
? "global"
|
|
10989
11005
|
: "project";
|
|
11006
|
+
const defaultPostmanWorkspaceId =
|
|
11007
|
+
options.postmanWorkspaceId !== undefined
|
|
11008
|
+
? normalizePostmanWorkspaceId(options.postmanWorkspaceId)
|
|
11009
|
+
: null;
|
|
10990
11010
|
const defaultMcpSelections = normalizeInitMcpSelections(options.mcps);
|
|
10991
11011
|
const defaultPlatforms = normalizeInitPlatforms(options.platforms);
|
|
10992
11012
|
const defaultMcpRuntime = normalizeMcpRuntime(
|
|
@@ -11035,9 +11055,11 @@ async function runInitWizard(options) {
|
|
|
11035
11055
|
options.postmanMode && normalizePostmanMode(options.postmanMode)
|
|
11036
11056
|
? normalizePostmanMode(options.postmanMode)
|
|
11037
11057
|
: "full",
|
|
11058
|
+
postmanWorkspaceId: defaultPostmanWorkspaceId,
|
|
11038
11059
|
postmanApiKey: null,
|
|
11039
11060
|
stitchApiKey: null,
|
|
11040
11061
|
};
|
|
11062
|
+
const initWarnings = [];
|
|
11041
11063
|
|
|
11042
11064
|
if (selections.platforms.length === 0) {
|
|
11043
11065
|
throw new Error("No platforms selected.");
|
|
@@ -11066,6 +11088,20 @@ async function runInitWizard(options) {
|
|
|
11066
11088
|
selections.postmanApiKey = await promptOptionalSecret(
|
|
11067
11089
|
"Postman API key (optional, leave blank to keep existing env/profile state):",
|
|
11068
11090
|
);
|
|
11091
|
+
const postmanLookupApiKey =
|
|
11092
|
+
normalizePostmanApiKey(selections.postmanApiKey) ||
|
|
11093
|
+
normalizePostmanApiKey(
|
|
11094
|
+
process.env[
|
|
11095
|
+
profileEnvVarAlias("postman", DEFAULT_CREDENTIAL_PROFILE_NAME)
|
|
11096
|
+
],
|
|
11097
|
+
) ||
|
|
11098
|
+
normalizePostmanApiKey(process.env[POSTMAN_API_KEY_ENV_VAR]);
|
|
11099
|
+
const postmanWorkspaceSelection = await promptPostmanWorkspaceSelection({
|
|
11100
|
+
apiKey: postmanLookupApiKey,
|
|
11101
|
+
defaultWorkspaceId: selections.postmanWorkspaceId,
|
|
11102
|
+
});
|
|
11103
|
+
selections.postmanWorkspaceId = postmanWorkspaceSelection.workspaceId;
|
|
11104
|
+
initWarnings.push(...postmanWorkspaceSelection.warnings);
|
|
11069
11105
|
}
|
|
11070
11106
|
|
|
11071
11107
|
if (selections.selectedMcps.includes("stitch") && isInteractive) {
|
|
@@ -11090,6 +11126,12 @@ async function runInitWizard(options) {
|
|
|
11090
11126
|
});
|
|
11091
11127
|
|
|
11092
11128
|
const initSummary = formatInitSummary(selections);
|
|
11129
|
+
if (initWarnings.length > 0) {
|
|
11130
|
+
console.log("\nInit warnings:");
|
|
11131
|
+
for (const warning of initWarnings) {
|
|
11132
|
+
console.log(`- ${warning}`);
|
|
11133
|
+
}
|
|
11134
|
+
}
|
|
11093
11135
|
if (!options.yes && isInteractive) {
|
|
11094
11136
|
const proceed = await promptInitApplyConfirmation(initSummary);
|
|
11095
11137
|
if (!proceed) {
|
package/src/cli/init/execute.ts
CHANGED
|
@@ -53,6 +53,9 @@ export function buildInitExecutionPlan({
|
|
|
53
53
|
mcpBuildLocal:
|
|
54
54
|
wantsPostman || stitchEnabled ? selections.mcpBuildLocal : false,
|
|
55
55
|
postmanMode: wantsPostman ? selections.postmanMode : undefined,
|
|
56
|
+
postmanWorkspaceId: wantsPostman
|
|
57
|
+
? selections.postmanWorkspaceId
|
|
58
|
+
: undefined,
|
|
56
59
|
initWizardMode: true,
|
|
57
60
|
};
|
|
58
61
|
|
|
@@ -69,6 +72,7 @@ export function buildInitExecutionPlan({
|
|
|
69
72
|
}
|
|
70
73
|
|
|
71
74
|
export function formatInitSummary(selections: InitWizardSelections) {
|
|
75
|
+
const postmanSelected = selections.selectedMcps.includes("postman");
|
|
72
76
|
return [
|
|
73
77
|
"Init plan summary:",
|
|
74
78
|
`- Bundle: ${selections.bundleId}`,
|
|
@@ -78,6 +82,7 @@ export function formatInitSummary(selections: InitWizardSelections) {
|
|
|
78
82
|
`- MCP scope: ${selections.mcpScope}`,
|
|
79
83
|
`- MCP runtime: ${selections.mcpRuntime}${selections.mcpRuntime === "docker" ? selections.mcpBuildLocal ? " (build local image)" : " (pull image)" : ""}`,
|
|
80
84
|
`- MCP selections: ${selections.selectedMcps.length > 0 ? selections.selectedMcps.join(", ") : "(none)"}`,
|
|
81
|
-
`- Postman mode: ${selections.postmanMode}`,
|
|
85
|
+
`- Postman mode: ${postmanSelected ? selections.postmanMode : "(not selected)"}`,
|
|
86
|
+
`- Postman workspace: ${postmanSelected ? selections.postmanWorkspaceId === null ? "null" : selections.postmanWorkspaceId : "(not selected)"}`,
|
|
82
87
|
].join("\n");
|
|
83
88
|
}
|
package/src/cli/init/types.ts
CHANGED