@vibeframe/cli 0.91.8 → 0.91.9

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.
Files changed (2) hide show
  1. package/dist/index.js +25 -6
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -31792,7 +31792,7 @@ async function promptHidden(question, opts = {}) {
31792
31792
  }
31793
31793
  });
31794
31794
  }
31795
- async function promptSelect(_question, options, defaultIndex = 0) {
31795
+ async function promptSelect(_question, options, defaultIndex = 0, opts = {}) {
31796
31796
  const input = getTTYInputStream();
31797
31797
  if (typeof input.setRawMode === "function") {
31798
31798
  return new Promise((resolve64) => {
@@ -31827,6 +31827,12 @@ async function promptSelect(_question, options, defaultIndex = 0) {
31827
31827
  input.setRawMode(false);
31828
31828
  process.stdout.write("\n");
31829
31829
  process.exit(1);
31830
+ } else if (opts.backIndex !== void 0 && (char === "\x1B" || char === "\x1B[D")) {
31831
+ finished = true;
31832
+ input.setRawMode(false);
31833
+ input.removeListener("data", onData);
31834
+ process.stdout.write("\n");
31835
+ resolve64(opts.backIndex);
31830
31836
  } else if (char === "\x1B[A" || char === "k") {
31831
31837
  selected = (selected - 1 + options.length) % options.length;
31832
31838
  render();
@@ -31982,6 +31988,11 @@ async function promptMultiSelect(_question, options, defaultSelected = [], opts
31982
31988
  input.setRawMode(false);
31983
31989
  process.stdout.write("\n");
31984
31990
  process.exit(1);
31991
+ } else if (opts.backIndex !== void 0 && (char === "\x1B" || char === "\x1B[D")) {
31992
+ for (let i = 0; i < selected.length; i++) selected[i] = false;
31993
+ selected[opts.backIndex] = true;
31994
+ finished = true;
31995
+ finish();
31985
31996
  } else if (char === " ") {
31986
31997
  selected[cursor] = !selected[cursor];
31987
31998
  userToggled = true;
@@ -62962,7 +62973,7 @@ init_source();
62962
62973
  // package.json
62963
62974
  var package_default = {
62964
62975
  name: "@vibeframe/cli",
62965
- version: "0.91.8",
62976
+ version: "0.91.9",
62966
62977
  description: "VibeFrame CLI - natural language video editing from the terminal",
62967
62978
  private: false,
62968
62979
  license: "MIT",
@@ -70520,7 +70531,11 @@ async function runAIFeaturesSetup(config2, _scope) {
70520
70531
  )
70521
70532
  );
70522
70533
  console.log(source_default.dim(" Shortcut: enter alone picks only the highlighted feature."));
70523
- console.log(source_default.dim(` Select ${source_default.bold("Back")} to return to the setup checkpoint.`));
70534
+ console.log(
70535
+ source_default.dim(
70536
+ ` Select ${source_default.bold("Back")} or press ${source_default.bold("Esc/\u2190")} to return to the setup checkpoint.`
70537
+ )
70538
+ );
70524
70539
  console.log();
70525
70540
  const backIndex = AI_FEATURES.length;
70526
70541
  const featureLabels = [
@@ -70536,7 +70551,7 @@ async function runAIFeaturesSetup(config2, _scope) {
70536
70551
  source_default.cyan(" Pick (e.g. 1,3 or 'all'): "),
70537
70552
  featureLabels,
70538
70553
  [...configuredFeatures, false],
70539
- { pickFocusedOnEnter: true, preserveDefaultSelectionOnEnter: true }
70554
+ { pickFocusedOnEnter: true, backIndex }
70540
70555
  );
70541
70556
  if (picked.includes(backIndex)) {
70542
70557
  console.log();
@@ -70554,7 +70569,7 @@ async function runAIFeaturesSetup(config2, _scope) {
70554
70569
  console.log(source_default.bold("Choose providers for each selected feature"));
70555
70570
  console.log(
70556
70571
  source_default.dim(
70557
- ` Recommended default is highlighted. Press ${source_default.bold("enter")} to pick the highlighted provider, or ${source_default.bold("space")} to choose multiple.`
70572
+ ` Recommended default is highlighted. Press ${source_default.bold("enter")} to pick the highlighted provider, ${source_default.bold("space")} to choose multiple, or ${source_default.bold("Esc/\u2190")} to go back.`
70558
70573
  )
70559
70574
  );
70560
70575
  console.log();
@@ -70580,7 +70595,11 @@ async function runAIFeaturesSetup(config2, _scope) {
70580
70595
  source_default.cyan(" Providers (arrow + enter picks one, space adds more): "),
70581
70596
  [...providerLabels, `Back ${source_default.dim("(choose different features)")}`],
70582
70597
  [...defaultSelected, false],
70583
- { pickFocusedOnEnter: true, preserveDefaultSelectionOnEnter: true }
70598
+ {
70599
+ pickFocusedOnEnter: true,
70600
+ preserveDefaultSelectionOnEnter: true,
70601
+ backIndex: backProviderIndex
70602
+ }
70584
70603
  );
70585
70604
  if (pickedProviders.includes(backProviderIndex)) {
70586
70605
  console.log();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibeframe/cli",
3
- "version": "0.91.8",
3
+ "version": "0.91.9",
4
4
  "description": "VibeFrame CLI - natural language video editing from the terminal",
5
5
  "private": false,
6
6
  "license": "MIT",
@@ -183,8 +183,8 @@
183
183
  "tsx": "^4.21.0",
184
184
  "typescript": "^5.3.3",
185
185
  "vitest": "^1.2.2",
186
- "@vibeframe/ai-providers": "0.91.8",
187
- "@vibeframe/core": "0.91.8"
186
+ "@vibeframe/ai-providers": "0.91.9",
187
+ "@vibeframe/core": "0.91.9"
188
188
  },
189
189
  "engines": {
190
190
  "node": ">=20"