@mstar-harness/cli 3.6.0-alpha.4 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/mstar-harness.js +135 -82
- package/package.json +1 -1
package/dist/mstar-harness.js
CHANGED
|
@@ -6,22 +6,38 @@ var __getProtoOf = Object.getPrototypeOf;
|
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
7
7
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
function __accessProp(key) {
|
|
10
|
+
return this[key];
|
|
11
|
+
}
|
|
12
|
+
var __toESMCache_node;
|
|
13
|
+
var __toESMCache_esm;
|
|
9
14
|
var __toESM = (mod, isNodeMode, target) => {
|
|
15
|
+
var canCache = mod != null && typeof mod === "object";
|
|
16
|
+
if (canCache) {
|
|
17
|
+
var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
|
|
18
|
+
var cached = cache.get(mod);
|
|
19
|
+
if (cached)
|
|
20
|
+
return cached;
|
|
21
|
+
}
|
|
10
22
|
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
11
23
|
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
24
|
+
if (mod && typeof mod === "object" || typeof mod === "function") {
|
|
25
|
+
for (let key of __getOwnPropNames(mod))
|
|
26
|
+
if (!__hasOwnProp.call(to, key))
|
|
27
|
+
__defProp(to, key, {
|
|
28
|
+
get: __accessProp.bind(mod, key),
|
|
29
|
+
enumerable: true
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
if (canCache)
|
|
33
|
+
cache.set(mod, to);
|
|
18
34
|
return to;
|
|
19
35
|
};
|
|
20
36
|
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
21
37
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
22
38
|
|
|
23
|
-
// ../../node_modules/cli-width/index.js
|
|
24
|
-
var require_cli_width = __commonJS((exports, module)
|
|
39
|
+
// ../../node_modules/.bun/cli-width@4.1.0/node_modules/cli-width/index.js
|
|
40
|
+
var require_cli_width = __commonJS(function(exports, module) {
|
|
25
41
|
module.exports = cliWidth;
|
|
26
42
|
function normalizeOpts(options) {
|
|
27
43
|
const defaultOpts = {
|
|
@@ -60,8 +76,8 @@ var require_cli_width = __commonJS((exports, module) => {
|
|
|
60
76
|
}
|
|
61
77
|
});
|
|
62
78
|
|
|
63
|
-
// ../../node_modules/mute-stream/lib/index.js
|
|
64
|
-
var require_lib = __commonJS((exports, module)
|
|
79
|
+
// ../../node_modules/.bun/mute-stream@3.0.0/node_modules/mute-stream/lib/index.js
|
|
80
|
+
var require_lib = __commonJS(function(exports, module) {
|
|
65
81
|
var Stream = __require("stream");
|
|
66
82
|
|
|
67
83
|
class MuteStream extends Stream {
|
|
@@ -180,8 +196,8 @@ var require_lib = __commonJS((exports, module) => {
|
|
|
180
196
|
module.exports = MuteStream;
|
|
181
197
|
});
|
|
182
198
|
|
|
183
|
-
// ../../node_modules/picocolors/picocolors.js
|
|
184
|
-
var require_picocolors = __commonJS((exports, module)
|
|
199
|
+
// ../../node_modules/.bun/picocolors@1.1.1/node_modules/picocolors/picocolors.js
|
|
200
|
+
var require_picocolors = __commonJS(function(exports, module) {
|
|
185
201
|
var p = process || {};
|
|
186
202
|
var argv = p.argv || [];
|
|
187
203
|
var env = p.env || {};
|
|
@@ -250,8 +266,8 @@ var require_picocolors = __commonJS((exports, module) => {
|
|
|
250
266
|
module.exports.createColors = createColors;
|
|
251
267
|
});
|
|
252
268
|
|
|
253
|
-
// ../../node_modules/commander/lib/error.js
|
|
254
|
-
var require_error = __commonJS((exports)
|
|
269
|
+
// ../../node_modules/.bun/commander@14.0.3/node_modules/commander/lib/error.js
|
|
270
|
+
var require_error = __commonJS(function(exports) {
|
|
255
271
|
class CommanderError extends Error {
|
|
256
272
|
constructor(exitCode, code, message) {
|
|
257
273
|
super(message);
|
|
@@ -274,8 +290,8 @@ var require_error = __commonJS((exports) => {
|
|
|
274
290
|
exports.InvalidArgumentError = InvalidArgumentError;
|
|
275
291
|
});
|
|
276
292
|
|
|
277
|
-
// ../../node_modules/commander/lib/argument.js
|
|
278
|
-
var require_argument = __commonJS((exports)
|
|
293
|
+
// ../../node_modules/.bun/commander@14.0.3/node_modules/commander/lib/argument.js
|
|
294
|
+
var require_argument = __commonJS(function(exports) {
|
|
279
295
|
var { InvalidArgumentError } = require_error();
|
|
280
296
|
|
|
281
297
|
class Argument {
|
|
@@ -354,8 +370,8 @@ var require_argument = __commonJS((exports) => {
|
|
|
354
370
|
exports.humanReadableArgName = humanReadableArgName;
|
|
355
371
|
});
|
|
356
372
|
|
|
357
|
-
// ../../node_modules/commander/lib/help.js
|
|
358
|
-
var require_help = __commonJS((exports)
|
|
373
|
+
// ../../node_modules/.bun/commander@14.0.3/node_modules/commander/lib/help.js
|
|
374
|
+
var require_help = __commonJS(function(exports) {
|
|
359
375
|
var { humanReadableArgName } = require_argument();
|
|
360
376
|
|
|
361
377
|
class Help {
|
|
@@ -711,8 +727,8 @@ ${itemIndentStr}`);
|
|
|
711
727
|
exports.stripColor = stripColor;
|
|
712
728
|
});
|
|
713
729
|
|
|
714
|
-
// ../../node_modules/commander/lib/option.js
|
|
715
|
-
var require_option = __commonJS((exports)
|
|
730
|
+
// ../../node_modules/.bun/commander@14.0.3/node_modules/commander/lib/option.js
|
|
731
|
+
var require_option = __commonJS(function(exports) {
|
|
716
732
|
var { InvalidArgumentError } = require_error();
|
|
717
733
|
|
|
718
734
|
class Option {
|
|
@@ -895,8 +911,8 @@ var require_option = __commonJS((exports) => {
|
|
|
895
911
|
exports.DualOptions = DualOptions;
|
|
896
912
|
});
|
|
897
913
|
|
|
898
|
-
// ../../node_modules/commander/lib/suggestSimilar.js
|
|
899
|
-
var require_suggestSimilar = __commonJS((exports)
|
|
914
|
+
// ../../node_modules/.bun/commander@14.0.3/node_modules/commander/lib/suggestSimilar.js
|
|
915
|
+
var require_suggestSimilar = __commonJS(function(exports) {
|
|
900
916
|
var maxDistance = 3;
|
|
901
917
|
function editDistance(a, b) {
|
|
902
918
|
if (Math.abs(a.length - b.length) > maxDistance)
|
|
@@ -968,8 +984,8 @@ var require_suggestSimilar = __commonJS((exports) => {
|
|
|
968
984
|
exports.suggestSimilar = suggestSimilar;
|
|
969
985
|
});
|
|
970
986
|
|
|
971
|
-
// ../../node_modules/commander/lib/command.js
|
|
972
|
-
var require_command = __commonJS((exports)
|
|
987
|
+
// ../../node_modules/.bun/commander@14.0.3/node_modules/commander/lib/command.js
|
|
988
|
+
var require_command = __commonJS(function(exports) {
|
|
973
989
|
var EventEmitter = __require("node:events").EventEmitter;
|
|
974
990
|
var childProcess = __require("node:child_process");
|
|
975
991
|
var path2 = __require("node:path");
|
|
@@ -1222,7 +1238,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1222
1238
|
this._exitCallback = (err) => {
|
|
1223
1239
|
if (err.code !== "commander.executeSubCommandAsync") {
|
|
1224
1240
|
throw err;
|
|
1225
|
-
}
|
|
1241
|
+
}
|
|
1226
1242
|
};
|
|
1227
1243
|
}
|
|
1228
1244
|
return this;
|
|
@@ -2323,8 +2339,8 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
2323
2339
|
exports.useColor = useColor;
|
|
2324
2340
|
});
|
|
2325
2341
|
|
|
2326
|
-
// ../../node_modules/commander/index.js
|
|
2327
|
-
var require_commander = __commonJS((exports)
|
|
2342
|
+
// ../../node_modules/.bun/commander@14.0.3/node_modules/commander/index.js
|
|
2343
|
+
var require_commander = __commonJS(function(exports) {
|
|
2328
2344
|
var { Argument } = require_argument();
|
|
2329
2345
|
var { Command } = require_command();
|
|
2330
2346
|
var { CommanderError, InvalidArgumentError } = require_error();
|
|
@@ -2343,8 +2359,8 @@ var require_commander = __commonJS((exports) => {
|
|
|
2343
2359
|
exports.InvalidOptionArgumentError = InvalidArgumentError;
|
|
2344
2360
|
});
|
|
2345
2361
|
|
|
2346
|
-
// ../../node_modules/picocolors/picocolors.js
|
|
2347
|
-
var require_picocolors2 = __commonJS((exports, module)
|
|
2362
|
+
// ../../node_modules/.bun/picocolors@1.1.1/node_modules/picocolors/picocolors.js
|
|
2363
|
+
var require_picocolors2 = __commonJS(function(exports, module) {
|
|
2348
2364
|
var p = process || {};
|
|
2349
2365
|
var argv = p.argv || [];
|
|
2350
2366
|
var env = p.env || {};
|
|
@@ -2418,8 +2434,7 @@ import { execFileSync as execFileSync10 } from "child_process";
|
|
|
2418
2434
|
import { createHash, randomUUID as randomUUID3 } from "crypto";
|
|
2419
2435
|
import fs8 from "fs";
|
|
2420
2436
|
import path12 from "path";
|
|
2421
|
-
|
|
2422
|
-
// ../../node_modules/@inquirer/core/dist/lib/key.js
|
|
2437
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/key.js
|
|
2423
2438
|
var keybindings = ["emacs", "vim"];
|
|
2424
2439
|
var keybindingLookup = new Set(keybindings);
|
|
2425
2440
|
function isKeybinding(value) {
|
|
@@ -2436,7 +2451,7 @@ var isDownKey = (key, keybindings2 = []) => key.name === "down" || keybindings2.
|
|
|
2436
2451
|
var isBackspaceKey = (key) => key.name === "backspace";
|
|
2437
2452
|
var isNumberKey = (key) => "1234567890".includes(key.name);
|
|
2438
2453
|
var isEnterKey = (key) => key.name === "enter" || key.name === "return";
|
|
2439
|
-
// ../../node_modules/@inquirer/core/dist/lib/errors.js
|
|
2454
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/errors.js
|
|
2440
2455
|
class AbortPromptError extends Error {
|
|
2441
2456
|
name = "AbortPromptError";
|
|
2442
2457
|
message = "Prompt was aborted";
|
|
@@ -2462,10 +2477,10 @@ class HookError extends Error {
|
|
|
2462
2477
|
class ValidationError extends Error {
|
|
2463
2478
|
name = "ValidationError";
|
|
2464
2479
|
}
|
|
2465
|
-
// ../../node_modules/@inquirer/core/dist/lib/use-state.js
|
|
2480
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/use-state.js
|
|
2466
2481
|
import { AsyncResource as AsyncResource2 } from "node:async_hooks";
|
|
2467
2482
|
|
|
2468
|
-
// ../../node_modules/@inquirer/core/dist/lib/hook-engine.js
|
|
2483
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/hook-engine.js
|
|
2469
2484
|
import { AsyncLocalStorage, AsyncResource } from "node:async_hooks";
|
|
2470
2485
|
var hookStorage = new AsyncLocalStorage;
|
|
2471
2486
|
function createStore(rl) {
|
|
@@ -2570,7 +2585,7 @@ var effectScheduler = {
|
|
|
2570
2585
|
}
|
|
2571
2586
|
};
|
|
2572
2587
|
|
|
2573
|
-
// ../../node_modules/@inquirer/core/dist/lib/use-state.js
|
|
2588
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/use-state.js
|
|
2574
2589
|
function isFactory(value) {
|
|
2575
2590
|
return typeof value === "function";
|
|
2576
2591
|
}
|
|
@@ -2579,7 +2594,7 @@ function isReducer(value) {
|
|
|
2579
2594
|
}
|
|
2580
2595
|
function useState(defaultValue) {
|
|
2581
2596
|
return withPointer((pointer) => {
|
|
2582
|
-
const setState = AsyncResource2.bind(function
|
|
2597
|
+
const setState = AsyncResource2.bind(function setState2(newValue) {
|
|
2583
2598
|
const currentValue = pointer.get();
|
|
2584
2599
|
const nextValue = isReducer(newValue) ? newValue(currentValue) : newValue;
|
|
2585
2600
|
if (!Object.is(currentValue, nextValue)) {
|
|
@@ -2596,7 +2611,7 @@ function useState(defaultValue) {
|
|
|
2596
2611
|
});
|
|
2597
2612
|
}
|
|
2598
2613
|
|
|
2599
|
-
// ../../node_modules/@inquirer/core/dist/lib/use-effect.js
|
|
2614
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/use-effect.js
|
|
2600
2615
|
function useEffect(cb, depArray) {
|
|
2601
2616
|
withPointer((pointer) => {
|
|
2602
2617
|
const oldDeps = pointer.get();
|
|
@@ -2608,10 +2623,10 @@ function useEffect(cb, depArray) {
|
|
|
2608
2623
|
});
|
|
2609
2624
|
}
|
|
2610
2625
|
|
|
2611
|
-
// ../../node_modules/@inquirer/core/dist/lib/theme.js
|
|
2626
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/theme.js
|
|
2612
2627
|
import { styleText } from "node:util";
|
|
2613
2628
|
|
|
2614
|
-
// ../../node_modules/@inquirer/figures/dist/index.js
|
|
2629
|
+
// ../../node_modules/.bun/@inquirer+figures@2.0.9/node_modules/@inquirer/figures/dist/index.js
|
|
2615
2630
|
import process2 from "node:process";
|
|
2616
2631
|
function isUnicodeSupported() {
|
|
2617
2632
|
if (!process2.platform.startsWith("win")) {
|
|
@@ -2900,7 +2915,7 @@ var figures = shouldUseMain ? mainSymbols : fallbackSymbols;
|
|
|
2900
2915
|
var dist_default = figures;
|
|
2901
2916
|
var replacements = Object.entries(specialMainSymbols);
|
|
2902
2917
|
|
|
2903
|
-
// ../../node_modules/@inquirer/core/dist/lib/theme.js
|
|
2918
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/theme.js
|
|
2904
2919
|
var defaultTheme = {
|
|
2905
2920
|
prefix: {
|
|
2906
2921
|
idle: styleText("blue", "?"),
|
|
@@ -2928,7 +2943,7 @@ function getDefaultTheme() {
|
|
|
2928
2943
|
};
|
|
2929
2944
|
}
|
|
2930
2945
|
|
|
2931
|
-
// ../../node_modules/@inquirer/core/dist/lib/make-theme.js
|
|
2946
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/make-theme.js
|
|
2932
2947
|
function isPlainObject(value) {
|
|
2933
2948
|
if (typeof value !== "object" || value === null)
|
|
2934
2949
|
return false;
|
|
@@ -2956,7 +2971,7 @@ function makeTheme(...themes) {
|
|
|
2956
2971
|
return deepMerge(...themesToMerge);
|
|
2957
2972
|
}
|
|
2958
2973
|
|
|
2959
|
-
// ../../node_modules/@inquirer/core/dist/lib/use-prefix.js
|
|
2974
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/use-prefix.js
|
|
2960
2975
|
function usePrefix({ status = "idle", theme }) {
|
|
2961
2976
|
const [showLoader, setShowLoader] = useState(false);
|
|
2962
2977
|
const [tick, setTick] = useState(0);
|
|
@@ -2986,7 +3001,7 @@ function usePrefix({ status = "idle", theme }) {
|
|
|
2986
3001
|
const iconName = status === "loading" ? "idle" : status;
|
|
2987
3002
|
return typeof prefix === "string" ? prefix : prefix[iconName] ?? prefix["idle"];
|
|
2988
3003
|
}
|
|
2989
|
-
// ../../node_modules/@inquirer/core/dist/lib/use-memo.js
|
|
3004
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/use-memo.js
|
|
2990
3005
|
function useMemo(fn, dependencies) {
|
|
2991
3006
|
return withPointer((pointer) => {
|
|
2992
3007
|
const prev = pointer.get();
|
|
@@ -2998,11 +3013,11 @@ function useMemo(fn, dependencies) {
|
|
|
2998
3013
|
return prev.value;
|
|
2999
3014
|
});
|
|
3000
3015
|
}
|
|
3001
|
-
// ../../node_modules/@inquirer/core/dist/lib/use-ref.js
|
|
3016
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/use-ref.js
|
|
3002
3017
|
function useRef(val) {
|
|
3003
3018
|
return useState({ current: val })[0];
|
|
3004
3019
|
}
|
|
3005
|
-
// ../../node_modules/@inquirer/core/dist/lib/use-keypress.js
|
|
3020
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/use-keypress.js
|
|
3006
3021
|
function useKeypress(userHandler) {
|
|
3007
3022
|
const signal = useRef(userHandler);
|
|
3008
3023
|
signal.current = userHandler;
|
|
@@ -3020,10 +3035,10 @@ function useKeypress(userHandler) {
|
|
|
3020
3035
|
};
|
|
3021
3036
|
}, []);
|
|
3022
3037
|
}
|
|
3023
|
-
// ../../node_modules/@inquirer/core/dist/lib/utils.js
|
|
3038
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/utils.js
|
|
3024
3039
|
var import_cli_width = __toESM(require_cli_width(), 1);
|
|
3025
3040
|
|
|
3026
|
-
// ../../node_modules/fast-string-truncated-width/dist/utils.js
|
|
3041
|
+
// ../../node_modules/.bun/fast-string-truncated-width@3.0.3/node_modules/fast-string-truncated-width/dist/utils.js
|
|
3027
3042
|
var getCodePointsLength = (() => {
|
|
3028
3043
|
const SURROGATE_PAIR_RE = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
|
|
3029
3044
|
return (input) => {
|
|
@@ -3042,7 +3057,7 @@ var isWideNotCJKTNotEmoji = (x) => {
|
|
|
3042
3057
|
return x === 8987 || x === 9001 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12771 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 19903 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
|
|
3043
3058
|
};
|
|
3044
3059
|
|
|
3045
|
-
// ../../node_modules/fast-string-truncated-width/dist/index.js
|
|
3060
|
+
// ../../node_modules/.bun/fast-string-truncated-width@3.0.3/node_modules/fast-string-truncated-width/dist/index.js
|
|
3046
3061
|
var ANSI_RE = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y;
|
|
3047
3062
|
var CONTROL_RE = /[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y;
|
|
3048
3063
|
var CJKT_WIDE_RE = /(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu;
|
|
@@ -3141,7 +3156,7 @@ var getStringTruncatedWidth = (input, truncationOptions = {}, widthOptions = {})
|
|
|
3141
3156
|
};
|
|
3142
3157
|
var dist_default2 = getStringTruncatedWidth;
|
|
3143
3158
|
|
|
3144
|
-
// ../../node_modules/fast-string-width/dist/index.js
|
|
3159
|
+
// ../../node_modules/.bun/fast-string-width@3.0.2/node_modules/fast-string-width/dist/index.js
|
|
3145
3160
|
var NO_TRUNCATION2 = {
|
|
3146
3161
|
limit: Infinity,
|
|
3147
3162
|
ellipsis: "",
|
|
@@ -3152,7 +3167,7 @@ var fastStringWidth = (input, options = {}) => {
|
|
|
3152
3167
|
};
|
|
3153
3168
|
var dist_default3 = fastStringWidth;
|
|
3154
3169
|
|
|
3155
|
-
// ../../node_modules/fast-wrap-ansi/lib/main.js
|
|
3170
|
+
// ../../node_modules/.bun/fast-wrap-ansi@0.2.2/node_modules/fast-wrap-ansi/lib/main.js
|
|
3156
3171
|
var ESC = "\x1B";
|
|
3157
3172
|
var CSI = "\u009b";
|
|
3158
3173
|
var END_CODE = 39;
|
|
@@ -3364,7 +3379,7 @@ function wrapAnsi(string, columns, options) {
|
|
|
3364
3379
|
`);
|
|
3365
3380
|
}
|
|
3366
3381
|
|
|
3367
|
-
// ../../node_modules/@inquirer/core/dist/lib/utils.js
|
|
3382
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/utils.js
|
|
3368
3383
|
function breakLines(content, width) {
|
|
3369
3384
|
return content.split(`
|
|
3370
3385
|
`).flatMap((line) => wrapAnsi(line, width, { trim: false, wordWrap: false }).split(`
|
|
@@ -3375,7 +3390,7 @@ function readlineWidth() {
|
|
|
3375
3390
|
return import_cli_width.default({ defaultWidth: 80, output: readline().output });
|
|
3376
3391
|
}
|
|
3377
3392
|
|
|
3378
|
-
// ../../node_modules/@inquirer/core/dist/lib/pagination/use-pagination.js
|
|
3393
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/pagination/use-pagination.js
|
|
3379
3394
|
function usePointerPosition({ active, renderedItems, pageSize, loop }) {
|
|
3380
3395
|
const state = useRef({
|
|
3381
3396
|
lastPointer: active,
|
|
@@ -3441,12 +3456,12 @@ function usePagination({ items, active, renderItem, pageSize, loop = true }) {
|
|
|
3441
3456
|
return pageBuffer.filter((line) => typeof line === "string").join(`
|
|
3442
3457
|
`);
|
|
3443
3458
|
}
|
|
3444
|
-
// ../../node_modules/@inquirer/core/dist/lib/create-prompt.js
|
|
3459
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/create-prompt.js
|
|
3445
3460
|
var import_mute_stream = __toESM(require_lib(), 1);
|
|
3446
3461
|
import * as readline2 from "node:readline";
|
|
3447
3462
|
import { AsyncResource as AsyncResource3 } from "node:async_hooks";
|
|
3448
3463
|
|
|
3449
|
-
// ../../node_modules/signal-exit/dist/mjs/signals.js
|
|
3464
|
+
// ../../node_modules/.bun/signal-exit@4.1.0/node_modules/signal-exit/dist/mjs/signals.js
|
|
3450
3465
|
var signals = [];
|
|
3451
3466
|
signals.push("SIGHUP", "SIGINT", "SIGTERM");
|
|
3452
3467
|
if (process.platform !== "win32") {
|
|
@@ -3456,7 +3471,7 @@ if (process.platform === "linux") {
|
|
|
3456
3471
|
signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT");
|
|
3457
3472
|
}
|
|
3458
3473
|
|
|
3459
|
-
// ../../node_modules/signal-exit/dist/mjs/index.js
|
|
3474
|
+
// ../../node_modules/.bun/signal-exit@4.1.0/node_modules/signal-exit/dist/mjs/index.js
|
|
3460
3475
|
var processOk = (process3) => !!process3 && typeof process3 === "object" && typeof process3.removeListener === "function" && typeof process3.emit === "function" && typeof process3.reallyExit === "function" && typeof process3.listeners === "function" && typeof process3.kill === "function" && typeof process3.pid === "number" && typeof process3.on === "function";
|
|
3461
3476
|
var kExitEmitter = Symbol.for("signal-exit emitter");
|
|
3462
3477
|
var global = globalThis;
|
|
@@ -3654,10 +3669,10 @@ var {
|
|
|
3654
3669
|
unload
|
|
3655
3670
|
} = signalExitWrap(processOk(process3) ? new SignalExit(process3) : new SignalExitFallback);
|
|
3656
3671
|
|
|
3657
|
-
// ../../node_modules/@inquirer/core/dist/lib/screen-manager.js
|
|
3672
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/screen-manager.js
|
|
3658
3673
|
import { stripVTControlCharacters } from "node:util";
|
|
3659
3674
|
|
|
3660
|
-
// ../../node_modules/@inquirer/ansi/dist/index.js
|
|
3675
|
+
// ../../node_modules/.bun/@inquirer+ansi@2.0.8/node_modules/@inquirer/ansi/dist/index.js
|
|
3661
3676
|
var ESC2 = "\x1B[";
|
|
3662
3677
|
var cursorLeft = ESC2 + "G";
|
|
3663
3678
|
var cursorHide = ESC2 + "?25l";
|
|
@@ -3673,7 +3688,7 @@ var cursorTo = (x, y) => {
|
|
|
3673
3688
|
var eraseLine = ESC2 + "2K";
|
|
3674
3689
|
var eraseLines = (lines) => lines > 0 ? (eraseLine + cursorUp(1)).repeat(lines - 1) + eraseLine + cursorLeft : "";
|
|
3675
3690
|
|
|
3676
|
-
// ../../node_modules/@inquirer/core/dist/lib/screen-manager.js
|
|
3691
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/screen-manager.js
|
|
3677
3692
|
var height = (content) => content.split(`
|
|
3678
3693
|
`).length;
|
|
3679
3694
|
var lastLine = (content) => content.split(`
|
|
@@ -3739,7 +3754,7 @@ class ScreenManager {
|
|
|
3739
3754
|
}
|
|
3740
3755
|
}
|
|
3741
3756
|
|
|
3742
|
-
// ../../node_modules/@inquirer/core/dist/lib/promise-polyfill.js
|
|
3757
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/promise-polyfill.js
|
|
3743
3758
|
class PromisePolyfill extends Promise {
|
|
3744
3759
|
static withResolver() {
|
|
3745
3760
|
let resolve;
|
|
@@ -3752,7 +3767,7 @@ class PromisePolyfill extends Promise {
|
|
|
3752
3767
|
}
|
|
3753
3768
|
}
|
|
3754
3769
|
|
|
3755
|
-
// ../../node_modules/@inquirer/core/dist/lib/create-prompt.js
|
|
3770
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/create-prompt.js
|
|
3756
3771
|
import path from "node:path";
|
|
3757
3772
|
var nativeSetImmediate = globalThis.setImmediate;
|
|
3758
3773
|
function getCallSites() {
|
|
@@ -3863,7 +3878,7 @@ function createPrompt(view) {
|
|
|
3863
3878
|
};
|
|
3864
3879
|
return prompt;
|
|
3865
3880
|
}
|
|
3866
|
-
// ../../node_modules/@inquirer/core/dist/lib/Separator.js
|
|
3881
|
+
// ../../node_modules/.bun/@inquirer+core@12.0.2+1c220d1d55e2409f/node_modules/@inquirer/core/dist/lib/Separator.js
|
|
3867
3882
|
import { styleText as styleText2 } from "node:util";
|
|
3868
3883
|
class Separator {
|
|
3869
3884
|
separator = styleText2("dim", Array.from({ length: 15 }).join(dist_default.line));
|
|
@@ -3877,7 +3892,7 @@ class Separator {
|
|
|
3877
3892
|
return Boolean(choice && typeof choice === "object" && "type" in choice && choice.type === "separator");
|
|
3878
3893
|
}
|
|
3879
3894
|
}
|
|
3880
|
-
// ../../node_modules/@inquirer/select/dist/index.js
|
|
3895
|
+
// ../../node_modules/.bun/@inquirer+select@5.2.4+1c220d1d55e2409f/node_modules/@inquirer/select/dist/index.js
|
|
3881
3896
|
import { styleText as styleText3 } from "node:util";
|
|
3882
3897
|
var selectTheme = {
|
|
3883
3898
|
icon: { cursor: dist_default.pointer },
|
|
@@ -4052,7 +4067,7 @@ var dist_default4 = createPrompt((config, done) => {
|
|
|
4052
4067
|
// src/index.ts
|
|
4053
4068
|
var import_picocolors2 = __toESM(require_picocolors(), 1);
|
|
4054
4069
|
|
|
4055
|
-
// ../../node_modules/commander/esm.mjs
|
|
4070
|
+
// ../../node_modules/.bun/commander@14.0.3/node_modules/commander/esm.mjs
|
|
4056
4071
|
var import__ = __toESM(require_commander(), 1);
|
|
4057
4072
|
var {
|
|
4058
4073
|
program,
|
|
@@ -11462,8 +11477,13 @@ function addTimeoutMs() {
|
|
|
11462
11477
|
const parsed = Number(raw);
|
|
11463
11478
|
return Number.isFinite(parsed) && parsed > 0 ? parsed : DSH_ADD_TIMEOUT_MS;
|
|
11464
11479
|
}
|
|
11465
|
-
var
|
|
11480
|
+
var DSH_FALLBACKS_VERSION = "0.4.1";
|
|
11481
|
+
var DSH_PLUGIN_SPECS = ["@mstar-harness/dsh", `dsh-llm-fallbacks@${DSH_FALLBACKS_VERSION}`];
|
|
11466
11482
|
var DSH_FALLBACKS_SPEC = DSH_PLUGIN_SPECS[1];
|
|
11483
|
+
function dshLoaderName(spec) {
|
|
11484
|
+
const at = spec.lastIndexOf("@");
|
|
11485
|
+
return at > 0 ? spec.slice(0, at) : spec;
|
|
11486
|
+
}
|
|
11467
11487
|
var DSH_INSTALL_HINT = "Install the DeepSeek Harness CLI (@deepseek-ai/dsh), e.g. `pnpm add -g @deepseek-ai/dsh` or `npm install -g @deepseek-ai/dsh`, then re-run init.";
|
|
11468
11488
|
function runDsh(args, dryRun, timeoutMs) {
|
|
11469
11489
|
return runCliCommand([DSH_BIN, ...args], { dryRun, timeoutMs, env: process.env });
|
|
@@ -11540,7 +11560,7 @@ function runInit2(scope, dryRun, initFlags) {
|
|
|
11540
11560
|
notes.push(`skipped-by-flag: ${spec} (--no-fallbacks)`);
|
|
11541
11561
|
continue;
|
|
11542
11562
|
}
|
|
11543
|
-
if (!dryRun && installed.has(spec)) {
|
|
11563
|
+
if (!dryRun && (installed.has(spec) || installed.has(dshLoaderName(spec)))) {
|
|
11544
11564
|
notes.push(`skipped-existing: ${spec} (already installed in profile ${DSH_PROFILE})`);
|
|
11545
11565
|
continue;
|
|
11546
11566
|
}
|
|
@@ -11585,7 +11605,7 @@ function runDoctor2(scope) {
|
|
|
11585
11605
|
}
|
|
11586
11606
|
const byName = new Map(entries.map((entry) => [entry.name, entry]));
|
|
11587
11607
|
for (const spec of DSH_PLUGIN_SPECS) {
|
|
11588
|
-
const entry = byName.get(spec);
|
|
11608
|
+
const entry = byName.get(spec) ?? byName.get(dshLoaderName(spec));
|
|
11589
11609
|
const state = !entry ? "uninstalled" : entry.enabled ? "mounted" : "disabled";
|
|
11590
11610
|
notes.push(`${spec}: ${state}`);
|
|
11591
11611
|
if (state === "mounted")
|
|
@@ -11606,9 +11626,8 @@ var dshAdapter = {
|
|
|
11606
11626
|
import fs5 from "node:fs";
|
|
11607
11627
|
import path8 from "node:path";
|
|
11608
11628
|
import { execFileSync as execFileSync8 } from "node:child_process";
|
|
11609
|
-
var
|
|
11610
|
-
var
|
|
11611
|
-
var PACKAGE_NAMES = new Set(["morning-star", PLUGIN_NAME, "github:btspoony/mstar-harness"]);
|
|
11629
|
+
var OMP_PACKAGE_REL = path8.join("packages", "omp");
|
|
11630
|
+
var PACKAGE_NAMES = new Set(["morning-star", PLUGIN_NAME, "github:btspoony/mstar-harness", "@mstar-harness/omp"]);
|
|
11612
11631
|
var SKILL_SMOKE = ["mstar-host", "mstar-harness-core", "pm"];
|
|
11613
11632
|
var COMMAND_SMOKE = ["iteration-start", "iteration-drive", "iteration-loop", "codebase-audit"];
|
|
11614
11633
|
function ompAvailable() {
|
|
@@ -11671,11 +11690,9 @@ function findInstalledPlugin(plugins) {
|
|
|
11671
11690
|
}
|
|
11672
11691
|
function validatePluginTree(pluginRoot) {
|
|
11673
11692
|
const errors2 = [];
|
|
11674
|
-
|
|
11675
|
-
|
|
11676
|
-
|
|
11677
|
-
errors2.push(`Missing omp plugin marker: ${markerPath}`);
|
|
11678
|
-
}
|
|
11693
|
+
const markerPath = path8.join(pluginRoot, "plugin.json");
|
|
11694
|
+
if (!fs5.existsSync(markerPath)) {
|
|
11695
|
+
errors2.push(`Missing omp plugin marker: ${markerPath}`);
|
|
11679
11696
|
}
|
|
11680
11697
|
for (const skill of SKILL_SMOKE) {
|
|
11681
11698
|
const skillPath = path8.join(pluginRoot, "skills", skill, "SKILL.md");
|
|
@@ -11712,9 +11729,33 @@ function runInit3(scope, dryRun) {
|
|
|
11712
11729
|
}
|
|
11713
11730
|
}
|
|
11714
11731
|
if (!ompAvailable()) {
|
|
11715
|
-
notes.push("omp CLI not found on PATH. Install Oh My Pi (`omp`), then re-run init or manually: omp plugin install
|
|
11732
|
+
notes.push("omp CLI not found on PATH. Install Oh My Pi (`omp`), then re-run init or manually: omp plugin install @mstar-harness/omp");
|
|
11716
11733
|
} else {
|
|
11717
|
-
const
|
|
11734
|
+
const ompPackagePath = path8.join(HARNESS_REPO_PATH, OMP_PACKAGE_REL);
|
|
11735
|
+
if (!dryRun && !fs5.existsSync(path8.join(ompPackagePath, "plugin.json"))) {
|
|
11736
|
+
try {
|
|
11737
|
+
runCliCommand(["bun", "install"], { cwd: HARNESS_REPO_PATH, dryRun });
|
|
11738
|
+
runCliCommand(["bun", "run", "engine:build"], { cwd: HARNESS_REPO_PATH, dryRun });
|
|
11739
|
+
runCliCommand(["bun", "run", "omp:build"], { cwd: HARNESS_REPO_PATH, dryRun });
|
|
11740
|
+
notes.push("Built the omp package (engine dist + discovery mirrors) before linking.");
|
|
11741
|
+
} catch (buildError) {
|
|
11742
|
+
const buildMessage = buildError instanceof Error ? buildError.message : String(buildError);
|
|
11743
|
+
notes.push(`Warning: could not build packages/omp (${buildMessage}). Falling back to: omp plugin install @mstar-harness/omp`);
|
|
11744
|
+
const installArgs = ["plugin", "install", "@mstar-harness/omp"];
|
|
11745
|
+
if (scope === "project")
|
|
11746
|
+
installArgs.push("--scope", "project");
|
|
11747
|
+
try {
|
|
11748
|
+
runOmp(installArgs, dryRun);
|
|
11749
|
+
notes.push(`Installed @mstar-harness/omp via omp plugin install (${scope}).`);
|
|
11750
|
+
} catch (installError) {
|
|
11751
|
+
notes.push(`omp plugin install also failed: ${installError instanceof Error ? installError.message : String(installError)}`);
|
|
11752
|
+
}
|
|
11753
|
+
notes.push(...postInstallNotes(scope, dryRun, projectRoot));
|
|
11754
|
+
return { location: HARNESS_REPO_PATH, notes };
|
|
11755
|
+
}
|
|
11756
|
+
}
|
|
11757
|
+
notes.push(`Linked omp plugin tree resolved via the workspace engine member; dist + root mirrors are gitignored build outputs (rebuilt automatically above when absent)`);
|
|
11758
|
+
const linkArgs = ["plugin", "link", ompPackagePath];
|
|
11718
11759
|
if (scope === "project")
|
|
11719
11760
|
linkArgs.push("--scope", "project");
|
|
11720
11761
|
if (dryRun) {
|
|
@@ -11722,16 +11763,16 @@ function runInit3(scope, dryRun) {
|
|
|
11722
11763
|
} else {
|
|
11723
11764
|
try {
|
|
11724
11765
|
runOmp(linkArgs, dryRun);
|
|
11725
|
-
notes.push(`Linked local harness into omp plugins (${scope}): omp plugin link ${
|
|
11766
|
+
notes.push(`Linked local harness omp package into omp plugins (${scope}): omp plugin link ${ompPackagePath}${scope === "project" ? " --scope project" : ""}`);
|
|
11726
11767
|
} catch (error) {
|
|
11727
11768
|
const message = error instanceof Error ? error.message : String(error);
|
|
11728
|
-
notes.push(`omp plugin link failed (${message}). Falling back guidance: omp plugin install
|
|
11769
|
+
notes.push(`omp plugin link failed (${message}). Falling back guidance: omp plugin install @mstar-harness/omp`);
|
|
11729
11770
|
try {
|
|
11730
|
-
const installArgs = ["plugin", "install", "
|
|
11771
|
+
const installArgs = ["plugin", "install", "@mstar-harness/omp"];
|
|
11731
11772
|
if (scope === "project")
|
|
11732
11773
|
installArgs.push("--scope", "project");
|
|
11733
11774
|
runOmp(installArgs, dryRun);
|
|
11734
|
-
notes.push(`Installed
|
|
11775
|
+
notes.push(`Installed @mstar-harness/omp via omp plugin install (${scope}).`);
|
|
11735
11776
|
} catch (installError) {
|
|
11736
11777
|
const installMessage = installError instanceof Error ? installError.message : String(installError);
|
|
11737
11778
|
notes.push(`omp plugin install also failed: ${installMessage}`);
|
|
@@ -11746,16 +11787,28 @@ function runInit3(scope, dryRun) {
|
|
|
11746
11787
|
notes.push("Verify with: omp plugin list");
|
|
11747
11788
|
notes.push("Enter PM with /skill:pm ; commands: /iteration-start /iteration-drive /iteration-loop /codebase-audit");
|
|
11748
11789
|
notes.push(`Host adapter: mstar-host \u2192 references/omp.md (skill://mstar-host/references/omp.md)`);
|
|
11749
|
-
notes.push(`Alternate install without CLI link: omp plugin install
|
|
11790
|
+
notes.push(`Alternate install without CLI link: omp plugin install @mstar-harness/omp`);
|
|
11750
11791
|
return {
|
|
11751
11792
|
location: HARNESS_REPO_PATH,
|
|
11752
11793
|
notes
|
|
11753
11794
|
};
|
|
11754
11795
|
}
|
|
11796
|
+
function postInstallNotes(scope, dryRun, projectRoot) {
|
|
11797
|
+
const notes = [];
|
|
11798
|
+
if (scope === "project") {
|
|
11799
|
+
notes.push(...appendHarnessProjectGitignore(projectRoot, dryRun));
|
|
11800
|
+
notes.push(...appendGitignore(projectRoot, [".omp/plugins/", ".omp/plugin-overrides.json", ".omp/plugins/installed_plugins.json"], dryRun));
|
|
11801
|
+
}
|
|
11802
|
+
notes.push("Verify with: omp plugin list");
|
|
11803
|
+
notes.push("Enter PM with /skill:pm ; commands: /iteration-start /iteration-drive /iteration-loop /codebase-audit");
|
|
11804
|
+
notes.push(`Host adapter: mstar-host \u2192 references/omp.md (skill://mstar-host/references/omp.md)`);
|
|
11805
|
+
notes.push(`Alternate install without CLI link: omp plugin install @mstar-harness/omp`);
|
|
11806
|
+
return notes;
|
|
11807
|
+
}
|
|
11755
11808
|
function runDoctor3(scope) {
|
|
11756
11809
|
const errors2 = [];
|
|
11757
11810
|
errors2.push(...validateLocalHarnessRepo());
|
|
11758
|
-
errors2.push(...validatePluginTree(HARNESS_REPO_PATH));
|
|
11811
|
+
errors2.push(...validatePluginTree(path8.join(HARNESS_REPO_PATH, OMP_PACKAGE_REL)));
|
|
11759
11812
|
if (!ompAvailable()) {
|
|
11760
11813
|
errors2.push("omp CLI not found on PATH (required for omp target doctor checks).");
|
|
11761
11814
|
} else {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mstar-harness/cli",
|
|
3
|
-
"version": "3.6.0
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "Morning Star harness CLI — installer bootstrap + mstar workflow verbs (path/status/lease/sdd/iteration/dispatch/worktree/lint/design-md/audit/compound/host/skill).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|