@drip-apex/apex-cli 0.1.0 → 0.1.1

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 (3) hide show
  1. package/README.md +15 -5
  2. package/dist/cli.js +234 -112
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Apex CLI
2
2
 
3
- Command-line tools for Apex experiments and Operator live preview sessions.
3
+ Command-line tools for Apex experiments, approved roadmap ideas, and draft workspaces.
4
4
 
5
5
  ## Install
6
6
 
@@ -26,17 +26,27 @@ Check auth:
26
26
 
27
27
  ```bash
28
28
  apex whoami
29
+ apex experiments list
29
30
  ```
30
31
 
31
- ## Operator Preview
32
+ ## Approved Roadmap Ideas
32
33
 
33
34
  ```bash
34
- apex operator checkout <experimentId> --variation <variationId> --dir ./my-test
35
- apex operator dev ./my-test
35
+ apex roadmap approved --unbuilt
36
+ apex roadmap handoff <roadmapItemId> --instructions
37
+ ```
38
+
39
+ ## Draft Workspace Preview
40
+
41
+ ```bash
42
+ apex workspace checkout <experimentId> --variation <variationId> --dir ./my-test
43
+ apex workspace dev ./my-test
36
44
  ```
37
45
 
38
46
  Publish back to Apex after QA:
39
47
 
40
48
  ```bash
41
- apex operator publish ./my-test
49
+ apex workspace publish ./my-test
42
50
  ```
51
+
52
+ The preview URL includes a short-lived `drip_harness=apx_hs_...` token. Treat it like a secret.
package/dist/cli.js CHANGED
@@ -33,9 +33,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
33
33
  mod
34
34
  ));
35
35
 
36
- // node_modules/commander/lib/error.js
36
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/lib/error.js
37
37
  var require_error = __commonJS({
38
- "node_modules/commander/lib/error.js"(exports2) {
38
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/lib/error.js"(exports2) {
39
39
  var CommanderError2 = class extends Error {
40
40
  /**
41
41
  * Constructs the CommanderError class
@@ -68,9 +68,9 @@ var require_error = __commonJS({
68
68
  }
69
69
  });
70
70
 
71
- // node_modules/commander/lib/argument.js
71
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/lib/argument.js
72
72
  var require_argument = __commonJS({
73
- "node_modules/commander/lib/argument.js"(exports2) {
73
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/lib/argument.js"(exports2) {
74
74
  var { InvalidArgumentError: InvalidArgumentError2 } = require_error();
75
75
  var Argument2 = class {
76
76
  /**
@@ -195,9 +195,9 @@ var require_argument = __commonJS({
195
195
  }
196
196
  });
197
197
 
198
- // node_modules/commander/lib/help.js
198
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/lib/help.js
199
199
  var require_help = __commonJS({
200
- "node_modules/commander/lib/help.js"(exports2) {
200
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/lib/help.js"(exports2) {
201
201
  var { humanReadableArgName } = require_argument();
202
202
  var Help2 = class {
203
203
  constructor() {
@@ -764,9 +764,9 @@ ${itemIndentStr}`);
764
764
  }
765
765
  });
766
766
 
767
- // node_modules/commander/lib/option.js
767
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/lib/option.js
768
768
  var require_option = __commonJS({
769
- "node_modules/commander/lib/option.js"(exports2) {
769
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/lib/option.js"(exports2) {
770
770
  var { InvalidArgumentError: InvalidArgumentError2 } = require_error();
771
771
  var Option2 = class {
772
772
  /**
@@ -1065,9 +1065,9 @@ var require_option = __commonJS({
1065
1065
  }
1066
1066
  });
1067
1067
 
1068
- // node_modules/commander/lib/suggestSimilar.js
1068
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/lib/suggestSimilar.js
1069
1069
  var require_suggestSimilar = __commonJS({
1070
- "node_modules/commander/lib/suggestSimilar.js"(exports2) {
1070
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/lib/suggestSimilar.js"(exports2) {
1071
1071
  var maxDistance = 3;
1072
1072
  function editDistance(a, b) {
1073
1073
  if (Math.abs(a.length - b.length) > maxDistance)
@@ -1145,13 +1145,13 @@ var require_suggestSimilar = __commonJS({
1145
1145
  }
1146
1146
  });
1147
1147
 
1148
- // node_modules/commander/lib/command.js
1148
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/lib/command.js
1149
1149
  var require_command = __commonJS({
1150
- "node_modules/commander/lib/command.js"(exports2) {
1150
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/lib/command.js"(exports2) {
1151
1151
  var EventEmitter = require("node:events").EventEmitter;
1152
1152
  var childProcess2 = require("node:child_process");
1153
- var path6 = require("node:path");
1154
- var fs10 = require("node:fs");
1153
+ var path7 = require("node:path");
1154
+ var fs11 = require("node:fs");
1155
1155
  var process16 = require("node:process");
1156
1156
  var { Argument: Argument2, humanReadableArgName } = require_argument();
1157
1157
  var { CommanderError: CommanderError2 } = require_error();
@@ -2132,7 +2132,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
2132
2132
  * @param {string} subcommandName
2133
2133
  */
2134
2134
  _checkForMissingExecutable(executableFile, executableDir, subcommandName) {
2135
- if (fs10.existsSync(executableFile)) return;
2135
+ if (fs11.existsSync(executableFile)) return;
2136
2136
  const executableDirMessage = executableDir ? `searched for local subcommand relative to directory '${executableDir}'` : "no directory for search for local subcommand, use .executableDir() to supply a custom directory";
2137
2137
  const executableMissing = `'${executableFile}' does not exist
2138
2138
  - if '${subcommandName}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
@@ -2150,11 +2150,11 @@ Expecting one of '${allowedValues.join("', '")}'`);
2150
2150
  let launchWithNode = false;
2151
2151
  const sourceExt = [".js", ".ts", ".tsx", ".mjs", ".cjs"];
2152
2152
  function findFile(baseDir, baseName) {
2153
- const localBin = path6.resolve(baseDir, baseName);
2154
- if (fs10.existsSync(localBin)) return localBin;
2155
- if (sourceExt.includes(path6.extname(baseName))) return void 0;
2153
+ const localBin = path7.resolve(baseDir, baseName);
2154
+ if (fs11.existsSync(localBin)) return localBin;
2155
+ if (sourceExt.includes(path7.extname(baseName))) return void 0;
2156
2156
  const foundExt = sourceExt.find(
2157
- (ext) => fs10.existsSync(`${localBin}${ext}`)
2157
+ (ext) => fs11.existsSync(`${localBin}${ext}`)
2158
2158
  );
2159
2159
  if (foundExt) return `${localBin}${foundExt}`;
2160
2160
  return void 0;
@@ -2166,21 +2166,21 @@ Expecting one of '${allowedValues.join("', '")}'`);
2166
2166
  if (this._scriptPath) {
2167
2167
  let resolvedScriptPath;
2168
2168
  try {
2169
- resolvedScriptPath = fs10.realpathSync(this._scriptPath);
2169
+ resolvedScriptPath = fs11.realpathSync(this._scriptPath);
2170
2170
  } catch {
2171
2171
  resolvedScriptPath = this._scriptPath;
2172
2172
  }
2173
- executableDir = path6.resolve(
2174
- path6.dirname(resolvedScriptPath),
2173
+ executableDir = path7.resolve(
2174
+ path7.dirname(resolvedScriptPath),
2175
2175
  executableDir
2176
2176
  );
2177
2177
  }
2178
2178
  if (executableDir) {
2179
2179
  let localFile = findFile(executableDir, executableFile);
2180
2180
  if (!localFile && !subcommand._executableFile && this._scriptPath) {
2181
- const legacyName = path6.basename(
2181
+ const legacyName = path7.basename(
2182
2182
  this._scriptPath,
2183
- path6.extname(this._scriptPath)
2183
+ path7.extname(this._scriptPath)
2184
2184
  );
2185
2185
  if (legacyName !== this._name) {
2186
2186
  localFile = findFile(
@@ -2191,7 +2191,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
2191
2191
  }
2192
2192
  executableFile = localFile || executableFile;
2193
2193
  }
2194
- launchWithNode = sourceExt.includes(path6.extname(executableFile));
2194
+ launchWithNode = sourceExt.includes(path7.extname(executableFile));
2195
2195
  let proc;
2196
2196
  if (process16.platform !== "win32") {
2197
2197
  if (launchWithNode) {
@@ -3038,7 +3038,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
3038
3038
  * @return {Command}
3039
3039
  */
3040
3040
  nameFromFilename(filename) {
3041
- this._name = path6.basename(filename, path6.extname(filename));
3041
+ this._name = path7.basename(filename, path7.extname(filename));
3042
3042
  return this;
3043
3043
  }
3044
3044
  /**
@@ -3052,9 +3052,9 @@ Expecting one of '${allowedValues.join("', '")}'`);
3052
3052
  * @param {string} [path]
3053
3053
  * @return {(string|null|Command)}
3054
3054
  */
3055
- executableDir(path7) {
3056
- if (path7 === void 0) return this._executableDir;
3057
- this._executableDir = path7;
3055
+ executableDir(path8) {
3056
+ if (path8 === void 0) return this._executableDir;
3057
+ this._executableDir = path8;
3058
3058
  return this;
3059
3059
  }
3060
3060
  /**
@@ -3304,9 +3304,9 @@ Expecting one of '${allowedValues.join("', '")}'`);
3304
3304
  }
3305
3305
  });
3306
3306
 
3307
- // node_modules/commander/index.js
3307
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/index.js
3308
3308
  var require_commander = __commonJS({
3309
- "node_modules/commander/index.js"(exports2) {
3309
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/index.js"(exports2) {
3310
3310
  var { Argument: Argument2 } = require_argument();
3311
3311
  var { Command: Command2 } = require_command();
3312
3312
  var { CommanderError: CommanderError2, InvalidArgumentError: InvalidArgumentError2 } = require_error();
@@ -3326,7 +3326,7 @@ var require_commander = __commonJS({
3326
3326
  }
3327
3327
  });
3328
3328
 
3329
- // node_modules/chalk/source/vendor/ansi-styles/index.js
3329
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/chalk/source/vendor/ansi-styles/index.js
3330
3330
  function assembleStyles() {
3331
3331
  const codes = /* @__PURE__ */ new Map();
3332
3332
  for (const [groupName, group] of Object.entries(styles)) {
@@ -3443,7 +3443,7 @@ function assembleStyles() {
3443
3443
  }
3444
3444
  var ANSI_BACKGROUND_OFFSET, wrapAnsi16, wrapAnsi256, wrapAnsi16m, styles, modifierNames, foregroundColorNames, backgroundColorNames, colorNames, ansiStyles, ansi_styles_default;
3445
3445
  var init_ansi_styles = __esm({
3446
- "node_modules/chalk/source/vendor/ansi-styles/index.js"() {
3446
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/chalk/source/vendor/ansi-styles/index.js"() {
3447
3447
  ANSI_BACKGROUND_OFFSET = 10;
3448
3448
  wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
3449
3449
  wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
@@ -3517,7 +3517,7 @@ var init_ansi_styles = __esm({
3517
3517
  }
3518
3518
  });
3519
3519
 
3520
- // node_modules/chalk/source/vendor/supports-color/index.js
3520
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/chalk/source/vendor/supports-color/index.js
3521
3521
  function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : import_node_process.default.argv) {
3522
3522
  const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
3523
3523
  const position = argv.indexOf(prefix + flag);
@@ -3635,7 +3635,7 @@ function createSupportsColor(stream, options = {}) {
3635
3635
  }
3636
3636
  var import_node_process, import_node_os, import_node_tty, env, flagForceColor, supportsColor, supports_color_default;
3637
3637
  var init_supports_color = __esm({
3638
- "node_modules/chalk/source/vendor/supports-color/index.js"() {
3638
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/chalk/source/vendor/supports-color/index.js"() {
3639
3639
  import_node_process = __toESM(require("node:process"), 1);
3640
3640
  import_node_os = __toESM(require("node:os"), 1);
3641
3641
  import_node_tty = __toESM(require("node:tty"), 1);
@@ -3653,7 +3653,7 @@ var init_supports_color = __esm({
3653
3653
  }
3654
3654
  });
3655
3655
 
3656
- // node_modules/chalk/source/utilities.js
3656
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/chalk/source/utilities.js
3657
3657
  function stringReplaceAll(string, substring, replacer) {
3658
3658
  let index = string.indexOf(substring);
3659
3659
  if (index === -1) {
@@ -3683,17 +3683,17 @@ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
3683
3683
  return returnValue;
3684
3684
  }
3685
3685
  var init_utilities = __esm({
3686
- "node_modules/chalk/source/utilities.js"() {
3686
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/chalk/source/utilities.js"() {
3687
3687
  }
3688
3688
  });
3689
3689
 
3690
- // node_modules/chalk/source/index.js
3690
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/chalk/source/index.js
3691
3691
  function createChalk(options) {
3692
3692
  return chalkFactory(options);
3693
3693
  }
3694
3694
  var stdoutColor, stderrColor, GENERATOR, STYLER, IS_EMPTY, levelMapping, styles2, applyOptions, chalkFactory, getModelAnsi, usedModels, proto, createStyler, createBuilder, applyStyle, chalk, chalkStderr, source_default;
3695
3695
  var init_source = __esm({
3696
- "node_modules/chalk/source/index.js"() {
3696
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/chalk/source/index.js"() {
3697
3697
  init_ansi_styles();
3698
3698
  init_supports_color();
3699
3699
  init_utilities();
@@ -3842,7 +3842,7 @@ var init_source = __esm({
3842
3842
  }
3843
3843
  });
3844
3844
 
3845
- // node_modules/mimic-function/index.js
3845
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/mimic-function/index.js
3846
3846
  function mimicFunction(to, from, { ignoreNonConfigurable = false } = {}) {
3847
3847
  const { name } = to;
3848
3848
  for (const property of Reflect.ownKeys(from)) {
@@ -3854,7 +3854,7 @@ function mimicFunction(to, from, { ignoreNonConfigurable = false } = {}) {
3854
3854
  }
3855
3855
  var copyProperty, canCopyProperty, changePrototype, wrappedToString, toStringDescriptor, toStringName, changeToString;
3856
3856
  var init_mimic_function = __esm({
3857
- "node_modules/mimic-function/index.js"() {
3857
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/mimic-function/index.js"() {
3858
3858
  copyProperty = (to, from, property, ignoreNonConfigurable) => {
3859
3859
  if (property === "length" || property === "prototype") {
3860
3860
  return;
@@ -3893,10 +3893,10 @@ ${fromBody}`;
3893
3893
  }
3894
3894
  });
3895
3895
 
3896
- // node_modules/onetime/index.js
3896
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/onetime/index.js
3897
3897
  var calledFunctions, onetime, onetime_default;
3898
3898
  var init_onetime = __esm({
3899
- "node_modules/onetime/index.js"() {
3899
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/onetime/index.js"() {
3900
3900
  init_mimic_function();
3901
3901
  calledFunctions = /* @__PURE__ */ new WeakMap();
3902
3902
  onetime = (function_, options = {}) => {
@@ -3930,10 +3930,10 @@ var init_onetime = __esm({
3930
3930
  }
3931
3931
  });
3932
3932
 
3933
- // node_modules/signal-exit/dist/mjs/signals.js
3933
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/signal-exit/dist/mjs/signals.js
3934
3934
  var signals;
3935
3935
  var init_signals = __esm({
3936
- "node_modules/signal-exit/dist/mjs/signals.js"() {
3936
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/signal-exit/dist/mjs/signals.js"() {
3937
3937
  signals = [];
3938
3938
  signals.push("SIGHUP", "SIGINT", "SIGTERM");
3939
3939
  if (process.platform !== "win32") {
@@ -3959,10 +3959,10 @@ var init_signals = __esm({
3959
3959
  }
3960
3960
  });
3961
3961
 
3962
- // node_modules/signal-exit/dist/mjs/index.js
3962
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/signal-exit/dist/mjs/index.js
3963
3963
  var processOk, kExitEmitter, global, ObjectDefineProperty, Emitter, SignalExitBase, signalExitWrap, SignalExitFallback, SignalExit, process3, onExit, load, unload;
3964
3964
  var init_mjs = __esm({
3965
- "node_modules/signal-exit/dist/mjs/index.js"() {
3965
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/signal-exit/dist/mjs/index.js"() {
3966
3966
  init_signals();
3967
3967
  processOk = (process16) => !!process16 && typeof process16 === "object" && typeof process16.removeListener === "function" && typeof process16.emit === "function" && typeof process16.reallyExit === "function" && typeof process16.listeners === "function" && typeof process16.kill === "function" && typeof process16.pid === "number" && typeof process16.on === "function";
3968
3968
  kExitEmitter = /* @__PURE__ */ Symbol.for("signal-exit emitter");
@@ -4198,10 +4198,10 @@ var init_mjs = __esm({
4198
4198
  }
4199
4199
  });
4200
4200
 
4201
- // node_modules/restore-cursor/index.js
4201
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/restore-cursor/index.js
4202
4202
  var import_node_process2, terminal, restoreCursor, restore_cursor_default;
4203
4203
  var init_restore_cursor = __esm({
4204
- "node_modules/restore-cursor/index.js"() {
4204
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/restore-cursor/index.js"() {
4205
4205
  import_node_process2 = __toESM(require("node:process"), 1);
4206
4206
  init_onetime();
4207
4207
  init_mjs();
@@ -4216,10 +4216,10 @@ var init_restore_cursor = __esm({
4216
4216
  }
4217
4217
  });
4218
4218
 
4219
- // node_modules/cli-cursor/index.js
4219
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/cli-cursor/index.js
4220
4220
  var import_node_process3, isHidden, cliCursor, cli_cursor_default;
4221
4221
  var init_cli_cursor = __esm({
4222
- "node_modules/cli-cursor/index.js"() {
4222
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/cli-cursor/index.js"() {
4223
4223
  import_node_process3 = __toESM(require("node:process"), 1);
4224
4224
  init_restore_cursor();
4225
4225
  isHidden = false;
@@ -4253,9 +4253,9 @@ var init_cli_cursor = __esm({
4253
4253
  }
4254
4254
  });
4255
4255
 
4256
- // node_modules/cli-spinners/spinners.json
4256
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/cli-spinners/spinners.json
4257
4257
  var require_spinners = __commonJS({
4258
- "node_modules/cli-spinners/spinners.json"(exports2, module2) {
4258
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/cli-spinners/spinners.json"(exports2, module2) {
4259
4259
  module2.exports = {
4260
4260
  dots: {
4261
4261
  interval: 80,
@@ -5881,9 +5881,9 @@ var require_spinners = __commonJS({
5881
5881
  }
5882
5882
  });
5883
5883
 
5884
- // node_modules/cli-spinners/index.js
5884
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/cli-spinners/index.js
5885
5885
  var require_cli_spinners = __commonJS({
5886
- "node_modules/cli-spinners/index.js"(exports2, module2) {
5886
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/cli-spinners/index.js"(exports2, module2) {
5887
5887
  "use strict";
5888
5888
  var spinners = Object.assign({}, require_spinners());
5889
5889
  var spinnersList = Object.keys(spinners);
@@ -5898,7 +5898,7 @@ var require_cli_spinners = __commonJS({
5898
5898
  }
5899
5899
  });
5900
5900
 
5901
- // node_modules/log-symbols/node_modules/is-unicode-supported/index.js
5901
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/log-symbols/node_modules/is-unicode-supported/index.js
5902
5902
  function isUnicodeSupported() {
5903
5903
  if (import_node_process4.default.platform !== "win32") {
5904
5904
  return import_node_process4.default.env.TERM !== "linux";
@@ -5907,15 +5907,15 @@ function isUnicodeSupported() {
5907
5907
  }
5908
5908
  var import_node_process4;
5909
5909
  var init_is_unicode_supported = __esm({
5910
- "node_modules/log-symbols/node_modules/is-unicode-supported/index.js"() {
5910
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/log-symbols/node_modules/is-unicode-supported/index.js"() {
5911
5911
  import_node_process4 = __toESM(require("node:process"), 1);
5912
5912
  }
5913
5913
  });
5914
5914
 
5915
- // node_modules/log-symbols/index.js
5915
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/log-symbols/index.js
5916
5916
  var main, fallback, logSymbols, log_symbols_default;
5917
5917
  var init_log_symbols = __esm({
5918
- "node_modules/log-symbols/index.js"() {
5918
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/log-symbols/index.js"() {
5919
5919
  init_source();
5920
5920
  init_is_unicode_supported();
5921
5921
  main = {
@@ -5935,7 +5935,7 @@ var init_log_symbols = __esm({
5935
5935
  }
5936
5936
  });
5937
5937
 
5938
- // node_modules/ansi-regex/index.js
5938
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/ansi-regex/index.js
5939
5939
  function ansiRegex({ onlyFirst = false } = {}) {
5940
5940
  const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
5941
5941
  const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
@@ -5944,11 +5944,11 @@ function ansiRegex({ onlyFirst = false } = {}) {
5944
5944
  return new RegExp(pattern, onlyFirst ? void 0 : "g");
5945
5945
  }
5946
5946
  var init_ansi_regex = __esm({
5947
- "node_modules/ansi-regex/index.js"() {
5947
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/ansi-regex/index.js"() {
5948
5948
  }
5949
5949
  });
5950
5950
 
5951
- // node_modules/strip-ansi/index.js
5951
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/strip-ansi/index.js
5952
5952
  function stripAnsi(string) {
5953
5953
  if (typeof string !== "string") {
5954
5954
  throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
@@ -5957,13 +5957,13 @@ function stripAnsi(string) {
5957
5957
  }
5958
5958
  var regex;
5959
5959
  var init_strip_ansi = __esm({
5960
- "node_modules/strip-ansi/index.js"() {
5960
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/strip-ansi/index.js"() {
5961
5961
  init_ansi_regex();
5962
5962
  regex = ansiRegex();
5963
5963
  }
5964
5964
  });
5965
5965
 
5966
- // node_modules/get-east-asian-width/lookup.js
5966
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/get-east-asian-width/lookup.js
5967
5967
  function isAmbiguous(x) {
5968
5968
  return x === 161 || x === 164 || x === 167 || x === 168 || x === 170 || x === 173 || x === 174 || x >= 176 && x <= 180 || x >= 182 && x <= 186 || x >= 188 && x <= 191 || x === 198 || x === 208 || x === 215 || x === 216 || x >= 222 && x <= 225 || x === 230 || x >= 232 && x <= 234 || x === 236 || x === 237 || x === 240 || x === 242 || x === 243 || x >= 247 && x <= 250 || x === 252 || x === 254 || x === 257 || x === 273 || x === 275 || x === 283 || x === 294 || x === 295 || x === 299 || x >= 305 && x <= 307 || x === 312 || x >= 319 && x <= 322 || x === 324 || x >= 328 && x <= 331 || x === 333 || x === 338 || x === 339 || x === 358 || x === 359 || x === 363 || x === 462 || x === 464 || x === 466 || x === 468 || x === 470 || x === 472 || x === 474 || x === 476 || x === 593 || x === 609 || x === 708 || x === 711 || x >= 713 && x <= 715 || x === 717 || x === 720 || x >= 728 && x <= 731 || x === 733 || x === 735 || x >= 768 && x <= 879 || x >= 913 && x <= 929 || x >= 931 && x <= 937 || x >= 945 && x <= 961 || x >= 963 && x <= 969 || x === 1025 || x >= 1040 && x <= 1103 || x === 1105 || x === 8208 || x >= 8211 && x <= 8214 || x === 8216 || x === 8217 || x === 8220 || x === 8221 || x >= 8224 && x <= 8226 || x >= 8228 && x <= 8231 || x === 8240 || x === 8242 || x === 8243 || x === 8245 || x === 8251 || x === 8254 || x === 8308 || x === 8319 || x >= 8321 && x <= 8324 || x === 8364 || x === 8451 || x === 8453 || x === 8457 || x === 8467 || x === 8470 || x === 8481 || x === 8482 || x === 8486 || x === 8491 || x === 8531 || x === 8532 || x >= 8539 && x <= 8542 || x >= 8544 && x <= 8555 || x >= 8560 && x <= 8569 || x === 8585 || x >= 8592 && x <= 8601 || x === 8632 || x === 8633 || x === 8658 || x === 8660 || x === 8679 || x === 8704 || x === 8706 || x === 8707 || x === 8711 || x === 8712 || x === 8715 || x === 8719 || x === 8721 || x === 8725 || x === 8730 || x >= 8733 && x <= 8736 || x === 8739 || x === 8741 || x >= 8743 && x <= 8748 || x === 8750 || x >= 8756 && x <= 8759 || x === 8764 || x === 8765 || x === 8776 || x === 8780 || x === 8786 || x === 8800 || x === 8801 || x >= 8804 && x <= 8807 || x === 8810 || x === 8811 || x === 8814 || x === 8815 || x === 8834 || x === 8835 || x === 8838 || x === 8839 || x === 8853 || x === 8857 || x === 8869 || x === 8895 || x === 8978 || x >= 9312 && x <= 9449 || x >= 9451 && x <= 9547 || x >= 9552 && x <= 9587 || x >= 9600 && x <= 9615 || x >= 9618 && x <= 9621 || x === 9632 || x === 9633 || x >= 9635 && x <= 9641 || x === 9650 || x === 9651 || x === 9654 || x === 9655 || x === 9660 || x === 9661 || x === 9664 || x === 9665 || x >= 9670 && x <= 9672 || x === 9675 || x >= 9678 && x <= 9681 || x >= 9698 && x <= 9701 || x === 9711 || x === 9733 || x === 9734 || x === 9737 || x === 9742 || x === 9743 || x === 9756 || x === 9758 || x === 9792 || x === 9794 || x === 9824 || x === 9825 || x >= 9827 && x <= 9829 || x >= 9831 && x <= 9834 || x === 9836 || x === 9837 || x === 9839 || x === 9886 || x === 9887 || x === 9919 || x >= 9926 && x <= 9933 || x >= 9935 && x <= 9939 || x >= 9941 && x <= 9953 || x === 9955 || x === 9960 || x === 9961 || x >= 9963 && x <= 9969 || x === 9972 || x >= 9974 && x <= 9977 || x === 9979 || x === 9980 || x === 9982 || x === 9983 || x === 10045 || x >= 10102 && x <= 10111 || x >= 11094 && x <= 11097 || x >= 12872 && x <= 12879 || x >= 57344 && x <= 63743 || x >= 65024 && x <= 65039 || x === 65533 || x >= 127232 && x <= 127242 || x >= 127248 && x <= 127277 || x >= 127280 && x <= 127337 || x >= 127344 && x <= 127373 || x === 127375 || x === 127376 || x >= 127387 && x <= 127404 || x >= 917760 && x <= 917999 || x >= 983040 && x <= 1048573 || x >= 1048576 && x <= 1114109;
5969
5969
  }
@@ -5974,11 +5974,11 @@ function isWide(x) {
5974
5974
  return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x >= 94192 && x <= 94198 || x >= 94208 && x <= 101589 || x >= 101631 && x <= 101662 || x >= 101760 && x <= 101874 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128728 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129674 || x >= 129678 && x <= 129734 || x === 129736 || x >= 129741 && x <= 129756 || x >= 129759 && x <= 129770 || x >= 129775 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
5975
5975
  }
5976
5976
  var init_lookup = __esm({
5977
- "node_modules/get-east-asian-width/lookup.js"() {
5977
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/get-east-asian-width/lookup.js"() {
5978
5978
  }
5979
5979
  });
5980
5980
 
5981
- // node_modules/get-east-asian-width/index.js
5981
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/get-east-asian-width/index.js
5982
5982
  function validate(codePoint) {
5983
5983
  if (!Number.isSafeInteger(codePoint)) {
5984
5984
  throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
@@ -5992,21 +5992,21 @@ function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
5992
5992
  return 1;
5993
5993
  }
5994
5994
  var init_get_east_asian_width = __esm({
5995
- "node_modules/get-east-asian-width/index.js"() {
5995
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/get-east-asian-width/index.js"() {
5996
5996
  init_lookup();
5997
5997
  }
5998
5998
  });
5999
5999
 
6000
- // node_modules/emoji-regex/index.js
6000
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/emoji-regex/index.js
6001
6001
  var require_emoji_regex = __commonJS({
6002
- "node_modules/emoji-regex/index.js"(exports2, module2) {
6002
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/emoji-regex/index.js"(exports2, module2) {
6003
6003
  module2.exports = () => {
6004
6004
  return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
6005
6005
  };
6006
6006
  }
6007
6007
  });
6008
6008
 
6009
- // node_modules/string-width/index.js
6009
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/string-width/index.js
6010
6010
  function stringWidth(string, options = {}) {
6011
6011
  if (typeof string !== "string" || string.length === 0) {
6012
6012
  return 0;
@@ -6053,7 +6053,7 @@ function stringWidth(string, options = {}) {
6053
6053
  }
6054
6054
  var import_emoji_regex, segmenter, defaultIgnorableCodePointRegex;
6055
6055
  var init_string_width = __esm({
6056
- "node_modules/string-width/index.js"() {
6056
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/string-width/index.js"() {
6057
6057
  init_strip_ansi();
6058
6058
  init_get_east_asian_width();
6059
6059
  import_emoji_regex = __toESM(require_emoji_regex(), 1);
@@ -6062,18 +6062,18 @@ var init_string_width = __esm({
6062
6062
  }
6063
6063
  });
6064
6064
 
6065
- // node_modules/is-interactive/index.js
6065
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/is-interactive/index.js
6066
6066
  function isInteractive({ stream = process.stdout } = {}) {
6067
6067
  return Boolean(
6068
6068
  stream && stream.isTTY && process.env.TERM !== "dumb" && !("CI" in process.env)
6069
6069
  );
6070
6070
  }
6071
6071
  var init_is_interactive = __esm({
6072
- "node_modules/is-interactive/index.js"() {
6072
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/is-interactive/index.js"() {
6073
6073
  }
6074
6074
  });
6075
6075
 
6076
- // node_modules/is-unicode-supported/index.js
6076
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/is-unicode-supported/index.js
6077
6077
  function isUnicodeSupported2() {
6078
6078
  const { env: env2 } = import_node_process5.default;
6079
6079
  const { TERM, TERM_PROGRAM } = env2;
@@ -6084,15 +6084,15 @@ function isUnicodeSupported2() {
6084
6084
  }
6085
6085
  var import_node_process5;
6086
6086
  var init_is_unicode_supported2 = __esm({
6087
- "node_modules/is-unicode-supported/index.js"() {
6087
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/is-unicode-supported/index.js"() {
6088
6088
  import_node_process5 = __toESM(require("node:process"), 1);
6089
6089
  }
6090
6090
  });
6091
6091
 
6092
- // node_modules/stdin-discarder/index.js
6092
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/stdin-discarder/index.js
6093
6093
  var import_node_process6, ASCII_ETX_CODE, StdinDiscarder, stdinDiscarder, stdin_discarder_default;
6094
6094
  var init_stdin_discarder = __esm({
6095
- "node_modules/stdin-discarder/index.js"() {
6095
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/stdin-discarder/index.js"() {
6096
6096
  import_node_process6 = __toESM(require("node:process"), 1);
6097
6097
  ASCII_ETX_CODE = 3;
6098
6098
  StdinDiscarder = class {
@@ -6139,7 +6139,7 @@ var init_stdin_discarder = __esm({
6139
6139
  }
6140
6140
  });
6141
6141
 
6142
- // node_modules/ora/index.js
6142
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/ora/index.js
6143
6143
  var ora_exports = {};
6144
6144
  __export(ora_exports, {
6145
6145
  default: () => ora,
@@ -6173,7 +6173,7 @@ async function oraPromise(action, options) {
6173
6173
  }
6174
6174
  var import_node_process7, import_cli_spinners, import_cli_spinners2, Ora;
6175
6175
  var init_ora = __esm({
6176
- "node_modules/ora/index.js"() {
6176
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/ora/index.js"() {
6177
6177
  import_node_process7 = __toESM(require("node:process"), 1);
6178
6178
  init_source();
6179
6179
  init_cli_cursor();
@@ -6474,7 +6474,7 @@ var init_ora = __esm({
6474
6474
  }
6475
6475
  });
6476
6476
 
6477
- // node_modules/is-docker/index.js
6477
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/is-docker/index.js
6478
6478
  function hasDockerEnv() {
6479
6479
  try {
6480
6480
  import_node_fs3.default.statSync("/.dockerenv");
@@ -6498,12 +6498,12 @@ function isDocker() {
6498
6498
  }
6499
6499
  var import_node_fs3, isDockerCached;
6500
6500
  var init_is_docker = __esm({
6501
- "node_modules/is-docker/index.js"() {
6501
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/is-docker/index.js"() {
6502
6502
  import_node_fs3 = __toESM(require("node:fs"), 1);
6503
6503
  }
6504
6504
  });
6505
6505
 
6506
- // node_modules/is-inside-container/index.js
6506
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/is-inside-container/index.js
6507
6507
  function isInsideContainer() {
6508
6508
  if (cachedResult === void 0) {
6509
6509
  cachedResult = hasContainerEnv() || isDocker();
@@ -6512,7 +6512,7 @@ function isInsideContainer() {
6512
6512
  }
6513
6513
  var import_node_fs4, cachedResult, hasContainerEnv;
6514
6514
  var init_is_inside_container = __esm({
6515
- "node_modules/is-inside-container/index.js"() {
6515
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/is-inside-container/index.js"() {
6516
6516
  import_node_fs4 = __toESM(require("node:fs"), 1);
6517
6517
  init_is_docker();
6518
6518
  hasContainerEnv = () => {
@@ -6526,10 +6526,10 @@ var init_is_inside_container = __esm({
6526
6526
  }
6527
6527
  });
6528
6528
 
6529
- // node_modules/is-wsl/index.js
6529
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/is-wsl/index.js
6530
6530
  var import_node_process8, import_node_os4, import_node_fs5, isWsl, is_wsl_default;
6531
6531
  var init_is_wsl = __esm({
6532
- "node_modules/is-wsl/index.js"() {
6532
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/is-wsl/index.js"() {
6533
6533
  import_node_process8 = __toESM(require("node:process"), 1);
6534
6534
  import_node_os4 = __toESM(require("node:os"), 1);
6535
6535
  import_node_fs5 = __toESM(require("node:fs"), 1);
@@ -6554,10 +6554,10 @@ var init_is_wsl = __esm({
6554
6554
  }
6555
6555
  });
6556
6556
 
6557
- // node_modules/wsl-utils/index.js
6557
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/wsl-utils/index.js
6558
6558
  var import_node_process9, import_promises, wslDrivesMountPoint, powerShellPathFromWsl, powerShellPath;
6559
6559
  var init_wsl_utils = __esm({
6560
- "node_modules/wsl-utils/index.js"() {
6560
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/wsl-utils/index.js"() {
6561
6561
  import_node_process9 = __toESM(require("node:process"), 1);
6562
6562
  import_promises = __toESM(require("node:fs/promises"), 1);
6563
6563
  init_is_wsl();
@@ -6602,7 +6602,7 @@ var init_wsl_utils = __esm({
6602
6602
  }
6603
6603
  });
6604
6604
 
6605
- // node_modules/define-lazy-prop/index.js
6605
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/define-lazy-prop/index.js
6606
6606
  function defineLazyProperty(object, propertyName, valueGetter) {
6607
6607
  const define = (value) => Object.defineProperty(object, propertyName, { value, enumerable: true, writable: true });
6608
6608
  Object.defineProperty(object, propertyName, {
@@ -6620,11 +6620,11 @@ function defineLazyProperty(object, propertyName, valueGetter) {
6620
6620
  return object;
6621
6621
  }
6622
6622
  var init_define_lazy_prop = __esm({
6623
- "node_modules/define-lazy-prop/index.js"() {
6623
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/define-lazy-prop/index.js"() {
6624
6624
  }
6625
6625
  });
6626
6626
 
6627
- // node_modules/default-browser-id/index.js
6627
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/default-browser-id/index.js
6628
6628
  async function defaultBrowserId() {
6629
6629
  if (import_node_process10.default.platform !== "darwin") {
6630
6630
  throw new Error("macOS only");
@@ -6639,7 +6639,7 @@ async function defaultBrowserId() {
6639
6639
  }
6640
6640
  var import_node_util, import_node_process10, import_node_child_process, execFileAsync;
6641
6641
  var init_default_browser_id = __esm({
6642
- "node_modules/default-browser-id/index.js"() {
6642
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/default-browser-id/index.js"() {
6643
6643
  import_node_util = require("node:util");
6644
6644
  import_node_process10 = __toESM(require("node:process"), 1);
6645
6645
  import_node_child_process = require("node:child_process");
@@ -6647,7 +6647,7 @@ var init_default_browser_id = __esm({
6647
6647
  }
6648
6648
  });
6649
6649
 
6650
- // node_modules/run-applescript/index.js
6650
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/run-applescript/index.js
6651
6651
  async function runAppleScript(script, { humanReadableOutput = true, signal } = {}) {
6652
6652
  if (import_node_process11.default.platform !== "darwin") {
6653
6653
  throw new Error("macOS only");
@@ -6662,7 +6662,7 @@ async function runAppleScript(script, { humanReadableOutput = true, signal } = {
6662
6662
  }
6663
6663
  var import_node_process11, import_node_util2, import_node_child_process2, execFileAsync2;
6664
6664
  var init_run_applescript = __esm({
6665
- "node_modules/run-applescript/index.js"() {
6665
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/run-applescript/index.js"() {
6666
6666
  import_node_process11 = __toESM(require("node:process"), 1);
6667
6667
  import_node_util2 = require("node:util");
6668
6668
  import_node_child_process2 = require("node:child_process");
@@ -6670,18 +6670,18 @@ var init_run_applescript = __esm({
6670
6670
  }
6671
6671
  });
6672
6672
 
6673
- // node_modules/bundle-name/index.js
6673
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/bundle-name/index.js
6674
6674
  async function bundleName(bundleId) {
6675
6675
  return runAppleScript(`tell application "Finder" to set app_path to application file id "${bundleId}" as string
6676
6676
  tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`);
6677
6677
  }
6678
6678
  var init_bundle_name = __esm({
6679
- "node_modules/bundle-name/index.js"() {
6679
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/bundle-name/index.js"() {
6680
6680
  init_run_applescript();
6681
6681
  }
6682
6682
  });
6683
6683
 
6684
- // node_modules/default-browser/windows.js
6684
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/default-browser/windows.js
6685
6685
  async function defaultBrowser(_execFileAsync = execFileAsync3) {
6686
6686
  const { stdout } = await _execFileAsync("reg", [
6687
6687
  "QUERY",
@@ -6702,7 +6702,7 @@ async function defaultBrowser(_execFileAsync = execFileAsync3) {
6702
6702
  }
6703
6703
  var import_node_util3, import_node_child_process3, execFileAsync3, windowsBrowserProgIds, _windowsBrowserProgIdMap, UnknownBrowserError;
6704
6704
  var init_windows = __esm({
6705
- "node_modules/default-browser/windows.js"() {
6705
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/default-browser/windows.js"() {
6706
6706
  import_node_util3 = require("node:util");
6707
6707
  import_node_child_process3 = require("node:child_process");
6708
6708
  execFileAsync3 = (0, import_node_util3.promisify)(import_node_child_process3.execFile);
@@ -6731,7 +6731,7 @@ var init_windows = __esm({
6731
6731
  }
6732
6732
  });
6733
6733
 
6734
- // node_modules/default-browser/index.js
6734
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/default-browser/index.js
6735
6735
  async function defaultBrowser2() {
6736
6736
  if (import_node_process12.default.platform === "darwin") {
6737
6737
  const id = await defaultBrowserId();
@@ -6751,7 +6751,7 @@ async function defaultBrowser2() {
6751
6751
  }
6752
6752
  var import_node_util4, import_node_process12, import_node_child_process4, execFileAsync4, titleize;
6753
6753
  var init_default_browser = __esm({
6754
- "node_modules/default-browser/index.js"() {
6754
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/default-browser/index.js"() {
6755
6755
  import_node_util4 = require("node:util");
6756
6756
  import_node_process12 = __toESM(require("node:process"), 1);
6757
6757
  import_node_child_process4 = require("node:child_process");
@@ -6763,7 +6763,7 @@ var init_default_browser = __esm({
6763
6763
  }
6764
6764
  });
6765
6765
 
6766
- // node_modules/open/index.js
6766
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/open/index.js
6767
6767
  var open_exports = {};
6768
6768
  __export(open_exports, {
6769
6769
  apps: () => apps,
@@ -6816,7 +6816,7 @@ function detectPlatformBinary({ [platform]: platformBinary }, { wsl }) {
6816
6816
  }
6817
6817
  var import_node_process13, import_node_buffer, import_node_path3, import_node_url2, import_node_util5, import_node_child_process5, import_promises2, import_meta, execFile5, __dirname, localXdgOpenPath, platform, arch, pTryEach, baseOpen, open, openApp, apps, open_default;
6818
6818
  var init_open = __esm({
6819
- "node_modules/open/index.js"() {
6819
+ "../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/open/index.js"() {
6820
6820
  import_node_process13 = __toESM(require("node:process"), 1);
6821
6821
  import_node_buffer = require("node:buffer");
6822
6822
  import_node_path3 = __toESM(require("node:path"), 1);
@@ -7059,7 +7059,7 @@ var init_open = __esm({
7059
7059
  }
7060
7060
  });
7061
7061
 
7062
- // node_modules/commander/esm.mjs
7062
+ // ../../../../../Users/fabiangmeindlairq/Desktop/Coding/drip-ab-testing-tool/packages/cli/node_modules/commander/esm.mjs
7063
7063
  var import_index = __toESM(require_commander(), 1);
7064
7064
  var {
7065
7065
  program,
@@ -7118,7 +7118,7 @@ function requireCredentials() {
7118
7118
  const creds = getCredentials();
7119
7119
  if (!creds) {
7120
7120
  console.error(
7121
- 'Not logged in. Run "drip login" first, or set DRIP_API_KEY env var.'
7121
+ 'Not logged in. Run "apex login" first, or set DRIP_API_KEY env var.'
7122
7122
  );
7123
7123
  process.exit(1);
7124
7124
  }
@@ -7152,8 +7152,8 @@ function extractErrorMessage(json, status) {
7152
7152
  if (typeof msg === "string" && msg.trim()) return msg;
7153
7153
  return `HTTP ${status}`;
7154
7154
  }
7155
- async function request(creds, method, path6, body) {
7156
- const url = `${creds.baseUrl}${path6}`;
7155
+ async function request(creds, method, path7, body) {
7156
+ const url = `${creds.baseUrl}${path7}`;
7157
7157
  const headers = {
7158
7158
  Authorization: `Bearer ${creds.apiKey}`,
7159
7159
  "Content-Type": "application/json"
@@ -7185,8 +7185,8 @@ async function request(creds, method, path6, body) {
7185
7185
  data: json
7186
7186
  };
7187
7187
  }
7188
- async function requestForm(creds, method, path6, body) {
7189
- const url = `${creds.baseUrl}${path6}`;
7188
+ async function requestForm(creds, method, path7, body) {
7189
+ const url = `${creds.baseUrl}${path7}`;
7190
7190
  const res = await fetch(url, {
7191
7191
  method,
7192
7192
  headers: { Authorization: `Bearer ${creds.apiKey}` },
@@ -7311,6 +7311,28 @@ function buildOperatorWorkspace(creds, experimentId, variationId) {
7311
7311
  `/api/v1/experiments/${experimentId}/variations/${variationId}/build`
7312
7312
  );
7313
7313
  }
7314
+ function listApprovedRoadmapItems(creds, opts) {
7315
+ const params = new URLSearchParams();
7316
+ if (opts?.limit) params.set("limit", String(opts.limit));
7317
+ if (opts?.cursor) params.set("cursor", opts.cursor);
7318
+ if (opts?.q) params.set("q", opts.q);
7319
+ if (typeof opts?.hasExperiment === "boolean") {
7320
+ params.set("has_experiment", opts.hasExperiment ? "1" : "0");
7321
+ }
7322
+ const qs = params.toString();
7323
+ return request(
7324
+ creds,
7325
+ "GET",
7326
+ `/api/v1/roadmap/approved${qs ? `?${qs}` : ""}`
7327
+ );
7328
+ }
7329
+ function getRoadmapItemHandoff(creds, id) {
7330
+ return request(
7331
+ creds,
7332
+ "GET",
7333
+ `/api/v1/roadmap/items/${encodeURIComponent(id)}/handoff`
7334
+ );
7335
+ }
7314
7336
 
7315
7337
  // src/ui.ts
7316
7338
  init_source();
@@ -8137,7 +8159,7 @@ function readSession(folder) {
8137
8159
  const session = readJsonFile(sessionPath(folder));
8138
8160
  if (!session) {
8139
8161
  throw new Error(
8140
- `Missing ${sessionPath(folder)}. Run apex operator checkout first.`
8162
+ `Missing ${sessionPath(folder)}. Run apex workspace checkout first.`
8141
8163
  );
8142
8164
  }
8143
8165
  return session;
@@ -8357,7 +8379,7 @@ async function runPublish(folderArg) {
8357
8379
  }
8358
8380
  return { build: build.data, changed, external };
8359
8381
  }
8360
- var operatorCommand = new Command("operator").description("Check out, preview, and publish Apex Operator workspace files");
8382
+ var operatorCommand = new Command("workspace").alias("operator").description("Check out, preview, and publish Apex draft workspace files");
8361
8383
  operatorCommand.command("checkout").argument("<experiment-id>", "Apex experiment ID").requiredOption("--variation <id-or-slug>", "Variation ID, slug, or name").option("--dir <folder>", "Target folder").action(async (experimentId, opts) => {
8362
8384
  try {
8363
8385
  const creds = requireCredentials();
@@ -8388,7 +8410,7 @@ operatorCommand.command("status").argument("[folder]", "Operator workspace folde
8388
8410
  const session = readSession(folder);
8389
8411
  const files = listLocalWorkspaceFiles(folder);
8390
8412
  const changed = files.filter((file) => session.files[file.path]?.sha256 !== file.sha256);
8391
- console.log(source_default.bold("Apex Operator Workspace"));
8413
+ console.log(source_default.bold("Apex Draft Workspace"));
8392
8414
  console.log(`Experiment: ${session.experimentId}`);
8393
8415
  console.log(`Variation: ${session.variationId}`);
8394
8416
  console.log(`Files: ${files.length}`);
@@ -8405,7 +8427,7 @@ operatorCommand.command("dev").argument("[folder]", "Operator workspace folder",
8405
8427
  const session = readSession(folder);
8406
8428
  const harnessSession = await createExactHarnessSession(folder, session);
8407
8429
  const version = await uploadCurrentArtifactVersion(folder, harnessSession.sessionId);
8408
- console.log(source_default.bold("\nApex Operator Preview"));
8430
+ console.log(source_default.bold("\nApex Workspace Preview"));
8409
8431
  console.log(`Experiment: ${harnessSession.experimentId}`);
8410
8432
  console.log(`Variation: ${harnessSession.variationId}`);
8411
8433
  console.log(`Version: ${version.version}`);
@@ -8479,16 +8501,116 @@ operatorCommand.command("publish").argument("[folder]", "Operator workspace fold
8479
8501
  }
8480
8502
  });
8481
8503
 
8504
+ // src/commands/roadmap.ts
8505
+ init_source();
8506
+ var import_node_fs8 = __toESM(require("node:fs"));
8507
+ var import_node_path6 = __toESM(require("node:path"));
8508
+ function truncate(value, max) {
8509
+ const text = typeof value === "string" ? value : value == null ? "" : String(value);
8510
+ if (text.length <= max) return text;
8511
+ return `${text.slice(0, Math.max(0, max - 3))}...`;
8512
+ }
8513
+ function score(value) {
8514
+ if (typeof value !== "number" || !Number.isFinite(value)) return "-";
8515
+ return Number.isInteger(value) ? String(value) : value.toFixed(1);
8516
+ }
8517
+ function experimentState(item) {
8518
+ const linked = item.linked_experiments ?? [];
8519
+ if (!linked.length) return "unbuilt";
8520
+ const first = linked[0];
8521
+ return first.test_key || first.status || "linked";
8522
+ }
8523
+ function briefLine(item) {
8524
+ const parts = [
8525
+ item.hypothesis ? `Hypothesis: ${item.hypothesis}` : null,
8526
+ item.page_url ? `URL: ${item.page_url}` : null,
8527
+ item.device ? `Device: ${item.device}` : null
8528
+ ].filter(Boolean);
8529
+ return parts.join("\n");
8530
+ }
8531
+ var approved = new Command("approved").description("List approved roadmap ideas ready to build in Apex").option("-n, --limit <n>", "Max results", "20").option("--cursor <id>", "Pagination cursor").option("-q, --query <text>", "Search title, hypothesis, brief, and notes").option("--unbuilt", "Only show approved ideas without a linked experiment").option("--built", "Only show approved ideas with a linked experiment").option("--json", "Print raw JSON").option("--brief", "Print each item with hypothesis and target URL").action(async (opts) => {
8532
+ const creds = requireCredentials();
8533
+ const limit = parseInt(opts.limit, 10);
8534
+ const hasExperiment = opts.unbuilt ? false : opts.built ? true : void 0;
8535
+ const res = await listApprovedRoadmapItems(creds, {
8536
+ limit: Number.isFinite(limit) ? limit : 20,
8537
+ cursor: opts.cursor,
8538
+ q: opts.query,
8539
+ hasExperiment
8540
+ });
8541
+ if (!res.ok) {
8542
+ printError(res.error ?? "Failed to fetch approved roadmap items");
8543
+ process.exit(1);
8544
+ }
8545
+ if (opts.json) {
8546
+ console.log(JSON.stringify(res.data, null, 2));
8547
+ return;
8548
+ }
8549
+ const items = res.data?.data ?? [];
8550
+ if (items.length === 0) {
8551
+ console.log(source_default.dim("No approved roadmap items found."));
8552
+ return;
8553
+ }
8554
+ printTable(
8555
+ ["ID", "SCORE", "TYPE", "EXPERIMENT", "TITLE"],
8556
+ items.map((item) => [
8557
+ item.id,
8558
+ score(item.computed_score),
8559
+ truncate(item.action_type, 14),
8560
+ truncate(experimentState(item), 18),
8561
+ truncate(item.title, 54)
8562
+ ]),
8563
+ [36, 6, 14, 18, 54]
8564
+ );
8565
+ if (opts.brief) {
8566
+ console.log();
8567
+ for (const item of items) {
8568
+ console.log(source_default.bold(item.title));
8569
+ const detail = briefLine(item);
8570
+ if (detail) console.log(detail);
8571
+ console.log(source_default.dim(`apex roadmap handoff ${item.id}`));
8572
+ console.log();
8573
+ }
8574
+ }
8575
+ if (res.data?.pagination.has_more) {
8576
+ console.log(source_default.dim(`
8577
+ More results: --cursor ${res.data.pagination.next_cursor}`));
8578
+ }
8579
+ });
8580
+ var handoff = new Command("handoff").description("Get the full build brief for an approved roadmap item").argument("<id>", "Roadmap/backlog item ID").option("-o, --output <path>", "Write handoff JSON to a file").option("--instructions", "Print only the build instructions").action(async (id, opts) => {
8581
+ const creds = requireCredentials();
8582
+ const res = await getRoadmapItemHandoff(creds, id);
8583
+ if (!res.ok) {
8584
+ printError(res.error ?? "Failed to fetch roadmap handoff");
8585
+ process.exit(1);
8586
+ }
8587
+ const payload = res.data ?? {};
8588
+ const output = opts.instructions ? String(payload.instructions ?? "") : `${JSON.stringify(payload, null, 2)}
8589
+ `;
8590
+ if (opts.output) {
8591
+ const target = import_node_path6.default.resolve(process.cwd(), opts.output);
8592
+ import_node_fs8.default.mkdirSync(import_node_path6.default.dirname(target), { recursive: true });
8593
+ import_node_fs8.default.writeFileSync(target, output, "utf8");
8594
+ printSuccess(`Wrote ${target}`);
8595
+ return;
8596
+ }
8597
+ console.log(output);
8598
+ });
8599
+ var roadmapCommand = new Command("roadmap").description("Work with approved roadmap ideas and build handoffs");
8600
+ roadmapCommand.addCommand(approved);
8601
+ roadmapCommand.addCommand(handoff);
8602
+
8482
8603
  // src/cli.ts
8483
8604
  var program2 = new Command().name("apex").description(
8484
8605
  source_default.bold("Apex CLI") + " \u2014 A/B testing experiments from the command line"
8485
- ).version("0.1.0");
8606
+ ).version("0.1.1");
8486
8607
  program2.addCommand(loginCommand);
8487
8608
  program2.addCommand(logoutCommand);
8488
8609
  program2.addCommand(whoamiCommand);
8489
8610
  program2.addCommand(experimentsCommand);
8490
8611
  program2.addCommand(pushCommand);
8491
8612
  program2.addCommand(previewCommand);
8613
+ program2.addCommand(roadmapCommand);
8492
8614
  program2.addCommand(harnessCommand);
8493
8615
  program2.addCommand(operatorCommand);
8494
8616
  program2.parseAsync(process.argv).catch((err) => {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@drip-apex/apex-cli",
3
- "version": "0.1.0",
4
- "description": "Apex CLI for managing experiments and Operator live preview sessions.",
3
+ "version": "0.1.1",
4
+ "description": "Apex CLI for managing experiments, approved roadmap ideas, and draft workspaces.",
5
5
  "private": false,
6
6
  "repository": {
7
7
  "type": "git",