@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 CHANGED
@@ -2,6 +2,21 @@
2
2
 
3
3
  All notable changes to this project are documented in this file.
4
4
 
5
+ ## [0.3.55] - 2026-03-05
6
+
7
+ ### Added
8
+
9
+ - Added Postman workspace selection step to `cbx init` wizard:
10
+ - interactive workspace list from Postman API when key is available
11
+ - manual workspace ID fallback prompt when listing is unavailable.
12
+ - Added non-interactive workspace flag for wizard:
13
+ - `cbx init --postman-workspace-id <id|null>`
14
+
15
+ ### Changed
16
+
17
+ - Updated wizard execution mapping so selected Postman workspace is persisted through install flow.
18
+ - Updated init wizard docs and TTY smoke test to validate the new workspace selection step.
19
+
5
20
  ## [0.3.54] - 2026-03-05
6
21
 
7
22
  ### Added
package/README.md CHANGED
@@ -72,7 +72,7 @@ Wizard flow:
72
72
  - MCP selection (`Cubis Foundry`, `Postman`, `Stitch`)
73
73
  - Separate scope selection for Skills and MCP (`project` or `global`)
74
74
  - MCP runtime selection (`cbx mcp serve` local, Docker pull, Docker local build) when Postman/Stitch is enabled
75
- - Conditional Postman mode/key and Stitch key prompts
75
+ - Conditional Postman mode/key/workspace and Stitch key prompts
76
76
  - Final summary + confirmation
77
77
 
78
78
  Non-interactive default mode:
@@ -95,6 +95,7 @@ cbx init \
95
95
  --mcps cubis-foundry,postman,stitch \
96
96
  --mcp-scope global \
97
97
  --postman-mode minimal \
98
+ --postman-workspace-id null \
98
99
  --mcp-runtime local
99
100
  ```
100
101
 
@@ -21,6 +21,7 @@ export function registerCommands(deps) {
21
21
  .option("--mcp-scope <scope>", "scope for MCP config: global|project")
22
22
  .option("--mcps <items>", "comma-separated MCP selections: cubis-foundry,postman,stitch")
23
23
  .option("--postman-mode <mode>", "Postman mode: full|minimal")
24
+ .option("--postman-workspace-id <id|null>", "optional: set default Postman workspace ID (use 'null' for no default)")
24
25
  .option("--mcp-runtime <runtime>", "MCP runtime: docker|local")
25
26
  .option("--mcp-build-local", "when MCP runtime is docker, build image locally instead of pulling")
26
27
  .option("--no-banner", "skip init welcome banner")
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":"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"}
package/dist/cli/core.js CHANGED
@@ -3808,6 +3808,69 @@ async function fetchPostmanWorkspaces({ apiKey, apiBaseUrl = POSTMAN_API_BASE_UR
3808
3808
  clearTimeout(timeout);
3809
3809
  }
3810
3810
  }
3811
+ async function promptPostmanWorkspaceSelection({ apiKey, defaultWorkspaceId = null, }) {
3812
+ let selectedWorkspaceId = normalizePostmanWorkspaceId(defaultWorkspaceId);
3813
+ let usedWorkspaceSelector = false;
3814
+ const warnings = [];
3815
+ const selectableApiKey = normalizePostmanApiKey(apiKey);
3816
+ if (selectableApiKey) {
3817
+ try {
3818
+ const fetchedWorkspaces = await fetchPostmanWorkspaces({
3819
+ apiKey: selectableApiKey,
3820
+ });
3821
+ if (fetchedWorkspaces.length > 0) {
3822
+ usedWorkspaceSelector = true;
3823
+ const sortedWorkspaces = [...fetchedWorkspaces].sort((a, b) => a.name.localeCompare(b.name));
3824
+ const workspaceChoice = await select({
3825
+ message: "Choose default Postman workspace for this install:",
3826
+ choices: [
3827
+ { name: "No default workspace (null)", value: null },
3828
+ ...sortedWorkspaces.map((workspace) => {
3829
+ const details = [workspace.type, workspace.visibility]
3830
+ .filter(Boolean)
3831
+ .join(", ");
3832
+ const suffix = details ? ` - ${details}` : "";
3833
+ return {
3834
+ name: `${workspace.name} (${workspace.id})${suffix}`,
3835
+ value: workspace.id,
3836
+ };
3837
+ }),
3838
+ {
3839
+ name: "Enter workspace ID manually",
3840
+ value: POSTMAN_WORKSPACE_MANUAL_CHOICE,
3841
+ },
3842
+ ],
3843
+ default: selectedWorkspaceId,
3844
+ });
3845
+ if (workspaceChoice === POSTMAN_WORKSPACE_MANUAL_CHOICE) {
3846
+ const promptedWorkspaceId = await input({
3847
+ message: "Default Postman workspace ID (optional, leave blank for null):",
3848
+ default: selectedWorkspaceId || "",
3849
+ });
3850
+ selectedWorkspaceId =
3851
+ normalizePostmanWorkspaceId(promptedWorkspaceId);
3852
+ }
3853
+ else {
3854
+ selectedWorkspaceId = normalizePostmanWorkspaceId(workspaceChoice);
3855
+ }
3856
+ }
3857
+ }
3858
+ catch (error) {
3859
+ warnings.push(`Could not load Postman workspaces for selection: ${error.message}`);
3860
+ }
3861
+ }
3862
+ if (!usedWorkspaceSelector) {
3863
+ const promptedWorkspaceId = await input({
3864
+ message: "Default Postman workspace ID (optional, leave blank for null):",
3865
+ default: selectedWorkspaceId || "",
3866
+ });
3867
+ selectedWorkspaceId = normalizePostmanWorkspaceId(promptedWorkspaceId);
3868
+ }
3869
+ return {
3870
+ workspaceId: selectedWorkspaceId,
3871
+ warnings,
3872
+ };
3873
+ }
3811
3874
  function parseJsonLenient(raw) {
3812
3875
  try {
3813
3876
  return {
@@ -4203,63 +4266,12 @@ async function resolvePostmanInstallSelection({ platform, scope, options, cwd =
4203
4266
  const foundryMcpEnabled = options.foundryMcp !== false;
4204
4267
  const canPrompt = !options.yes && process.stdin.isTTY;
4205
4268
  if (postmanRequested && canPrompt && !hasWorkspaceOption) {
4206
- const selectableApiKey = normalizePostmanApiKey(envApiKey);
4207
- let usedWorkspaceSelector = false;
4208
- let selectedWorkspaceId = defaultWorkspaceId;
4209
- if (selectableApiKey) {
4210
- try {
4211
- const fetchedWorkspaces = await fetchPostmanWorkspaces({
4212
- apiKey: selectableApiKey,
4213
- });
4214
- if (fetchedWorkspaces.length > 0) {
4215
- usedWorkspaceSelector = true;
4216
- const sortedWorkspaces = [...fetchedWorkspaces].sort((a, b) => a.name.localeCompare(b.name));
4217
- const workspaceChoice = await select({
4218
- message: "Choose default Postman workspace for this install:",
4219
- choices: [
4220
- { name: "No default workspace (null)", value: null },
4221
- ...sortedWorkspaces.map((workspace) => {
4222
- const details = [workspace.type, workspace.visibility]
4223
- .filter(Boolean)
4224
- .join(", ");
4225
- const suffix = details ? ` - ${details}` : "";
4226
- return {
4227
- name: `${workspace.name} (${workspace.id})${suffix}`,
4228
- value: workspace.id,
4229
- };
4230
- }),
4231
- {
4232
- name: "Enter workspace ID manually",
4233
- value: POSTMAN_WORKSPACE_MANUAL_CHOICE,
4234
- },
4235
- ],
4236
- default: null,
4237
- });
4238
- if (workspaceChoice === POSTMAN_WORKSPACE_MANUAL_CHOICE) {
4239
- const promptedWorkspaceId = await input({
4240
- message: "Default Postman workspace ID (optional, leave blank for null):",
4241
- default: "",
4242
- });
4243
- selectedWorkspaceId =
4244
- normalizePostmanWorkspaceId(promptedWorkspaceId);
4245
- }
4246
- else {
4247
- selectedWorkspaceId = normalizePostmanWorkspaceId(workspaceChoice);
4248
- }
4249
- }
4250
- }
4251
- catch (error) {
4252
- warnings.push(`Could not load Postman workspaces for selection: ${error.message}`);
4253
- }
4254
- }
4255
- if (!usedWorkspaceSelector) {
4256
- const promptedWorkspaceId = await input({
4257
- message: "Default Postman workspace ID (optional, leave blank for null):",
4258
- default: "",
4259
- });
4260
- selectedWorkspaceId = normalizePostmanWorkspaceId(promptedWorkspaceId);
4261
- }
4262
- defaultWorkspaceId = selectedWorkspaceId;
4269
+ const workspaceSelection = await promptPostmanWorkspaceSelection({
4270
+ apiKey: envApiKey,
4271
+ defaultWorkspaceId,
4272
+ });
4273
+ defaultWorkspaceId = workspaceSelection.workspaceId;
4274
+ warnings.push(...workspaceSelection.warnings);
4263
4275
  workspaceSelectionSource = "interactive";
4264
4276
  }
4265
4277
  if (canPrompt && !requestedMcpScope) {
@@ -8886,6 +8898,9 @@ async function runInitWizard(options) {
8886
8898
  const defaultMcpScope = normalizeMcpScope(options.mcpScope, defaultSkillsScope) === "global"
8887
8899
  ? "global"
8888
8900
  : "project";
8901
+ const defaultPostmanWorkspaceId = options.postmanWorkspaceId !== undefined
8902
+ ? normalizePostmanWorkspaceId(options.postmanWorkspaceId)
8903
+ : null;
8889
8904
  const defaultMcpSelections = normalizeInitMcpSelections(options.mcps);
8890
8905
  const defaultPlatforms = normalizeInitPlatforms(options.platforms);
8891
8906
  const defaultMcpRuntime = normalizeMcpRuntime(options.mcpRuntime, defaultMcpSelections.some((item) => item === "postman" || item === "stitch")
@@ -8928,9 +8943,11 @@ async function runInitWizard(options) {
8928
8943
  postmanMode: options.postmanMode && normalizePostmanMode(options.postmanMode)
8929
8944
  ? normalizePostmanMode(options.postmanMode)
8930
8945
  : "full",
8946
+ postmanWorkspaceId: defaultPostmanWorkspaceId,
8931
8947
  postmanApiKey: null,
8932
8948
  stitchApiKey: null,
8933
8949
  };
8950
+ const initWarnings = [];
8934
8951
  if (selections.platforms.length === 0) {
8935
8952
  throw new Error("No platforms selected.");
8936
8953
  }
@@ -8951,6 +8968,15 @@ async function runInitWizard(options) {
8951
8968
  if (selections.selectedMcps.includes("postman") && isInteractive) {
8952
8969
  selections.postmanMode = await promptInitPostmanMode(selections.postmanMode);
8953
8970
  selections.postmanApiKey = await promptOptionalSecret("Postman API key (optional, leave blank to keep existing env/profile state):");
8971
+ const postmanLookupApiKey = normalizePostmanApiKey(selections.postmanApiKey) ||
8972
+ normalizePostmanApiKey(process.env[profileEnvVarAlias("postman", DEFAULT_CREDENTIAL_PROFILE_NAME)]) ||
8973
+ normalizePostmanApiKey(process.env[POSTMAN_API_KEY_ENV_VAR]);
8974
+ const postmanWorkspaceSelection = await promptPostmanWorkspaceSelection({
8975
+ apiKey: postmanLookupApiKey,
8976
+ defaultWorkspaceId: selections.postmanWorkspaceId,
8977
+ });
8978
+ selections.postmanWorkspaceId = postmanWorkspaceSelection.workspaceId;
8979
+ initWarnings.push(...postmanWorkspaceSelection.warnings);
8954
8980
  }
8955
8981
  if (selections.selectedMcps.includes("stitch") && isInteractive) {
8956
8982
  selections.stitchApiKey = await promptOptionalSecret("Stitch API key (optional, leave blank to keep existing env/profile state):");
@@ -8969,6 +8995,12 @@ async function runInitWizard(options) {
8969
8995
  target: options.target,
8970
8996
  });
8971
8997
  const initSummary = formatInitSummary(selections);
8998
+ if (initWarnings.length > 0) {
8999
+ console.log("\nInit warnings:");
9000
+ for (const warning of initWarnings) {
9001
+ console.log(`- ${warning}`);
9002
+ }
9003
+ }
8972
9004
  if (!options.yes && isInteractive) {
8973
9005
  const proceed = await promptInitApplyConfirmation(initSummary);
8974
9006
  if (!proceed) {