@eve-horizon/cli 0.2.54 → 0.2.56
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/index.js +632 -243
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -8463,7 +8463,7 @@ var require_has_flag = __commonJS({
|
|
|
8463
8463
|
var require_supports_color = __commonJS({
|
|
8464
8464
|
"../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js"(exports2, module2) {
|
|
8465
8465
|
"use strict";
|
|
8466
|
-
var
|
|
8466
|
+
var os5 = require("os");
|
|
8467
8467
|
var tty = require("tty");
|
|
8468
8468
|
var hasFlag = require_has_flag();
|
|
8469
8469
|
var { env } = process;
|
|
@@ -8511,7 +8511,7 @@ var require_supports_color = __commonJS({
|
|
|
8511
8511
|
return min;
|
|
8512
8512
|
}
|
|
8513
8513
|
if (process.platform === "win32") {
|
|
8514
|
-
const osRelease =
|
|
8514
|
+
const osRelease = os5.release().split(".");
|
|
8515
8515
|
if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
|
|
8516
8516
|
return Number(osRelease[2]) >= 14931 ? 3 : 2;
|
|
8517
8517
|
}
|
|
@@ -8768,19 +8768,19 @@ var require_module_details_from_path = __commonJS({
|
|
|
8768
8768
|
basedir += segments[i] + sep2;
|
|
8769
8769
|
}
|
|
8770
8770
|
}
|
|
8771
|
-
var
|
|
8771
|
+
var path9 = "";
|
|
8772
8772
|
var lastSegmentIndex = segments.length - 1;
|
|
8773
8773
|
for (var i2 = index + offset; i2 <= lastSegmentIndex; i2++) {
|
|
8774
8774
|
if (i2 === lastSegmentIndex) {
|
|
8775
|
-
|
|
8775
|
+
path9 += segments[i2];
|
|
8776
8776
|
} else {
|
|
8777
|
-
|
|
8777
|
+
path9 += segments[i2] + sep2;
|
|
8778
8778
|
}
|
|
8779
8779
|
}
|
|
8780
8780
|
return {
|
|
8781
8781
|
name,
|
|
8782
8782
|
basedir,
|
|
8783
|
-
path:
|
|
8783
|
+
path: path9
|
|
8784
8784
|
};
|
|
8785
8785
|
};
|
|
8786
8786
|
}
|
|
@@ -8790,8 +8790,8 @@ var require_module_details_from_path = __commonJS({
|
|
|
8790
8790
|
var require_homedir = __commonJS({
|
|
8791
8791
|
"../../node_modules/.pnpm/resolve@1.22.11/node_modules/resolve/lib/homedir.js"(exports2, module2) {
|
|
8792
8792
|
"use strict";
|
|
8793
|
-
var
|
|
8794
|
-
module2.exports =
|
|
8793
|
+
var os5 = require("os");
|
|
8794
|
+
module2.exports = os5.homedir || function homedir6() {
|
|
8795
8795
|
var home = process.env.HOME;
|
|
8796
8796
|
var user = process.env.LOGNAME || process.env.USER || process.env.LNAME || process.env.USERNAME;
|
|
8797
8797
|
if (process.platform === "win32") {
|
|
@@ -8886,8 +8886,8 @@ var require_path_parse = __commonJS({
|
|
|
8886
8886
|
// ../../node_modules/.pnpm/resolve@1.22.11/node_modules/resolve/lib/node-modules-paths.js
|
|
8887
8887
|
var require_node_modules_paths = __commonJS({
|
|
8888
8888
|
"../../node_modules/.pnpm/resolve@1.22.11/node_modules/resolve/lib/node-modules-paths.js"(exports2, module2) {
|
|
8889
|
-
var
|
|
8890
|
-
var parse4 =
|
|
8889
|
+
var path9 = require("path");
|
|
8890
|
+
var parse4 = path9.parse || require_path_parse();
|
|
8891
8891
|
var driveLetterRegex = /^([A-Za-z]:)/;
|
|
8892
8892
|
var uncPathRegex = /^\\\\/;
|
|
8893
8893
|
var getNodeModulesDirs = function getNodeModulesDirs2(absoluteStart, modules) {
|
|
@@ -8905,7 +8905,7 @@ var require_node_modules_paths = __commonJS({
|
|
|
8905
8905
|
}
|
|
8906
8906
|
return paths.reduce(function(dirs, aPath) {
|
|
8907
8907
|
return dirs.concat(modules.map(function(moduleDir) {
|
|
8908
|
-
return
|
|
8908
|
+
return path9.resolve(prefix, aPath, moduleDir);
|
|
8909
8909
|
}));
|
|
8910
8910
|
}, []);
|
|
8911
8911
|
};
|
|
@@ -9268,7 +9268,7 @@ var require_async = __commonJS({
|
|
|
9268
9268
|
"../../node_modules/.pnpm/resolve@1.22.11/node_modules/resolve/lib/async.js"(exports2, module2) {
|
|
9269
9269
|
var fs6 = require("fs");
|
|
9270
9270
|
var getHomedir = require_homedir();
|
|
9271
|
-
var
|
|
9271
|
+
var path9 = require("path");
|
|
9272
9272
|
var caller = require_caller();
|
|
9273
9273
|
var nodeModulesPaths = require_node_modules_paths();
|
|
9274
9274
|
var normalizeOptions = require_normalize_options();
|
|
@@ -9280,8 +9280,8 @@ var require_async = __commonJS({
|
|
|
9280
9280
|
var homedir6 = getHomedir();
|
|
9281
9281
|
var defaultPaths = function() {
|
|
9282
9282
|
return [
|
|
9283
|
-
|
|
9284
|
-
|
|
9283
|
+
path9.join(homedir6, ".node_modules"),
|
|
9284
|
+
path9.join(homedir6, ".node_libraries")
|
|
9285
9285
|
];
|
|
9286
9286
|
};
|
|
9287
9287
|
var defaultIsFile = function isFile(file, cb) {
|
|
@@ -9331,7 +9331,7 @@ var require_async = __commonJS({
|
|
|
9331
9331
|
var getPackageCandidates = function getPackageCandidates2(x, start, opts) {
|
|
9332
9332
|
var dirs = nodeModulesPaths(start, opts, x);
|
|
9333
9333
|
for (var i = 0; i < dirs.length; i++) {
|
|
9334
|
-
dirs[i] =
|
|
9334
|
+
dirs[i] = path9.join(dirs[i], x);
|
|
9335
9335
|
}
|
|
9336
9336
|
return dirs;
|
|
9337
9337
|
};
|
|
@@ -9363,10 +9363,10 @@ var require_async = __commonJS({
|
|
|
9363
9363
|
var packageIterator = opts.packageIterator;
|
|
9364
9364
|
var extensions = opts.extensions || [".js"];
|
|
9365
9365
|
var includeCoreModules = opts.includeCoreModules !== false;
|
|
9366
|
-
var basedir = opts.basedir ||
|
|
9366
|
+
var basedir = opts.basedir || path9.dirname(caller());
|
|
9367
9367
|
var parent = opts.filename || basedir;
|
|
9368
9368
|
opts.paths = opts.paths || defaultPaths();
|
|
9369
|
-
var absoluteStart =
|
|
9369
|
+
var absoluteStart = path9.resolve(basedir);
|
|
9370
9370
|
maybeRealpath(
|
|
9371
9371
|
realpath,
|
|
9372
9372
|
absoluteStart,
|
|
@@ -9379,7 +9379,7 @@ var require_async = __commonJS({
|
|
|
9379
9379
|
var res;
|
|
9380
9380
|
function init(basedir2) {
|
|
9381
9381
|
if (relativePathRegex.test(x)) {
|
|
9382
|
-
res =
|
|
9382
|
+
res = path9.resolve(basedir2, x);
|
|
9383
9383
|
if (x === "." || x === ".." || x.slice(-1) === "/") res += "/";
|
|
9384
9384
|
if (x.slice(-1) === "/" && res === basedir2) {
|
|
9385
9385
|
loadAsDirectory(res, opts.package, onfile);
|
|
@@ -9437,17 +9437,17 @@ var require_async = __commonJS({
|
|
|
9437
9437
|
var file = x3 + exts2[0];
|
|
9438
9438
|
var pkg = loadPackage;
|
|
9439
9439
|
if (pkg) onpkg(null, pkg);
|
|
9440
|
-
else loadpkg(
|
|
9440
|
+
else loadpkg(path9.dirname(file), onpkg);
|
|
9441
9441
|
function onpkg(err2, pkg_, dir) {
|
|
9442
9442
|
pkg = pkg_;
|
|
9443
9443
|
if (err2) return cb2(err2);
|
|
9444
9444
|
if (dir && pkg && opts.pathFilter) {
|
|
9445
|
-
var rfile =
|
|
9445
|
+
var rfile = path9.relative(dir, file);
|
|
9446
9446
|
var rel = rfile.slice(0, rfile.length - exts2[0].length);
|
|
9447
9447
|
var r = opts.pathFilter(pkg, x3, rel);
|
|
9448
9448
|
if (r) return load(
|
|
9449
9449
|
[""].concat(extensions.slice()),
|
|
9450
|
-
|
|
9450
|
+
path9.resolve(dir, r),
|
|
9451
9451
|
pkg
|
|
9452
9452
|
);
|
|
9453
9453
|
}
|
|
@@ -9467,10 +9467,10 @@ var require_async = __commonJS({
|
|
|
9467
9467
|
}
|
|
9468
9468
|
if (nodeModulesRegex.test(dir)) return cb2(null);
|
|
9469
9469
|
maybeRealpath(realpath, dir, opts, function(unwrapErr, pkgdir) {
|
|
9470
|
-
if (unwrapErr) return loadpkg(
|
|
9471
|
-
var pkgfile =
|
|
9470
|
+
if (unwrapErr) return loadpkg(path9.dirname(dir), cb2);
|
|
9471
|
+
var pkgfile = path9.join(pkgdir, "package.json");
|
|
9472
9472
|
isFile(pkgfile, function(err2, ex) {
|
|
9473
|
-
if (!ex) return loadpkg(
|
|
9473
|
+
if (!ex) return loadpkg(path9.dirname(dir), cb2);
|
|
9474
9474
|
readPackage(readFile, pkgfile, function(err3, pkgParam) {
|
|
9475
9475
|
if (err3) cb2(err3);
|
|
9476
9476
|
var pkg = pkgParam;
|
|
@@ -9491,10 +9491,10 @@ var require_async = __commonJS({
|
|
|
9491
9491
|
}
|
|
9492
9492
|
maybeRealpath(realpath, x2, opts, function(unwrapErr, pkgdir) {
|
|
9493
9493
|
if (unwrapErr) return cb2(unwrapErr);
|
|
9494
|
-
var pkgfile =
|
|
9494
|
+
var pkgfile = path9.join(pkgdir, "package.json");
|
|
9495
9495
|
isFile(pkgfile, function(err2, ex) {
|
|
9496
9496
|
if (err2) return cb2(err2);
|
|
9497
|
-
if (!ex) return loadAsFile(
|
|
9497
|
+
if (!ex) return loadAsFile(path9.join(x2, "index"), fpkg, cb2);
|
|
9498
9498
|
readPackage(readFile, pkgfile, function(err3, pkgParam) {
|
|
9499
9499
|
if (err3) return cb2(err3);
|
|
9500
9500
|
var pkg = pkgParam;
|
|
@@ -9510,20 +9510,20 @@ var require_async = __commonJS({
|
|
|
9510
9510
|
if (pkg.main === "." || pkg.main === "./") {
|
|
9511
9511
|
pkg.main = "index";
|
|
9512
9512
|
}
|
|
9513
|
-
loadAsFile(
|
|
9513
|
+
loadAsFile(path9.resolve(x2, pkg.main), pkg, function(err4, m, pkg2) {
|
|
9514
9514
|
if (err4) return cb2(err4);
|
|
9515
9515
|
if (m) return cb2(null, m, pkg2);
|
|
9516
|
-
if (!pkg2) return loadAsFile(
|
|
9517
|
-
var dir =
|
|
9516
|
+
if (!pkg2) return loadAsFile(path9.join(x2, "index"), pkg2, cb2);
|
|
9517
|
+
var dir = path9.resolve(x2, pkg2.main);
|
|
9518
9518
|
loadAsDirectory(dir, pkg2, function(err5, n, pkg3) {
|
|
9519
9519
|
if (err5) return cb2(err5);
|
|
9520
9520
|
if (n) return cb2(null, n, pkg3);
|
|
9521
|
-
loadAsFile(
|
|
9521
|
+
loadAsFile(path9.join(x2, "index"), pkg3, cb2);
|
|
9522
9522
|
});
|
|
9523
9523
|
});
|
|
9524
9524
|
return;
|
|
9525
9525
|
}
|
|
9526
|
-
loadAsFile(
|
|
9526
|
+
loadAsFile(path9.join(x2, "/index"), pkg, cb2);
|
|
9527
9527
|
});
|
|
9528
9528
|
});
|
|
9529
9529
|
});
|
|
@@ -9531,7 +9531,7 @@ var require_async = __commonJS({
|
|
|
9531
9531
|
function processDirs(cb2, dirs) {
|
|
9532
9532
|
if (dirs.length === 0) return cb2(null, void 0);
|
|
9533
9533
|
var dir = dirs[0];
|
|
9534
|
-
isDirectory(
|
|
9534
|
+
isDirectory(path9.dirname(dir), isdir);
|
|
9535
9535
|
function isdir(err2, isdir2) {
|
|
9536
9536
|
if (err2) return cb2(err2);
|
|
9537
9537
|
if (!isdir2) return processDirs(cb2, dirs.slice(1));
|
|
@@ -9761,7 +9761,7 @@ var require_sync = __commonJS({
|
|
|
9761
9761
|
"../../node_modules/.pnpm/resolve@1.22.11/node_modules/resolve/lib/sync.js"(exports2, module2) {
|
|
9762
9762
|
var isCore = require_is_core_module();
|
|
9763
9763
|
var fs6 = require("fs");
|
|
9764
|
-
var
|
|
9764
|
+
var path9 = require("path");
|
|
9765
9765
|
var getHomedir = require_homedir();
|
|
9766
9766
|
var caller = require_caller();
|
|
9767
9767
|
var nodeModulesPaths = require_node_modules_paths();
|
|
@@ -9773,8 +9773,8 @@ var require_sync = __commonJS({
|
|
|
9773
9773
|
var homedir6 = getHomedir();
|
|
9774
9774
|
var defaultPaths = function() {
|
|
9775
9775
|
return [
|
|
9776
|
-
|
|
9777
|
-
|
|
9776
|
+
path9.join(homedir6, ".node_modules"),
|
|
9777
|
+
path9.join(homedir6, ".node_libraries")
|
|
9778
9778
|
];
|
|
9779
9779
|
};
|
|
9780
9780
|
var defaultIsFile = function isFile(file) {
|
|
@@ -9822,7 +9822,7 @@ var require_sync = __commonJS({
|
|
|
9822
9822
|
var getPackageCandidates = function getPackageCandidates2(x, start, opts) {
|
|
9823
9823
|
var dirs = nodeModulesPaths(start, opts, x);
|
|
9824
9824
|
for (var i = 0; i < dirs.length; i++) {
|
|
9825
|
-
dirs[i] =
|
|
9825
|
+
dirs[i] = path9.join(dirs[i], x);
|
|
9826
9826
|
}
|
|
9827
9827
|
return dirs;
|
|
9828
9828
|
};
|
|
@@ -9842,12 +9842,12 @@ var require_sync = __commonJS({
|
|
|
9842
9842
|
var packageIterator = opts.packageIterator;
|
|
9843
9843
|
var extensions = opts.extensions || [".js"];
|
|
9844
9844
|
var includeCoreModules = opts.includeCoreModules !== false;
|
|
9845
|
-
var basedir = opts.basedir ||
|
|
9845
|
+
var basedir = opts.basedir || path9.dirname(caller());
|
|
9846
9846
|
var parent = opts.filename || basedir;
|
|
9847
9847
|
opts.paths = opts.paths || defaultPaths();
|
|
9848
|
-
var absoluteStart = maybeRealpathSync(realpathSync,
|
|
9848
|
+
var absoluteStart = maybeRealpathSync(realpathSync, path9.resolve(basedir), opts);
|
|
9849
9849
|
if (relativePathRegex.test(x)) {
|
|
9850
|
-
var res =
|
|
9850
|
+
var res = path9.resolve(absoluteStart, x);
|
|
9851
9851
|
if (x === "." || x === ".." || x.slice(-1) === "/") res += "/";
|
|
9852
9852
|
var m = loadAsFileSync(res) || loadAsDirectorySync(res);
|
|
9853
9853
|
if (m) return maybeRealpathSync(realpathSync, m, opts);
|
|
@@ -9861,12 +9861,12 @@ var require_sync = __commonJS({
|
|
|
9861
9861
|
err.code = "MODULE_NOT_FOUND";
|
|
9862
9862
|
throw err;
|
|
9863
9863
|
function loadAsFileSync(x2) {
|
|
9864
|
-
var pkg = loadpkg(
|
|
9864
|
+
var pkg = loadpkg(path9.dirname(x2));
|
|
9865
9865
|
if (pkg && pkg.dir && pkg.pkg && opts.pathFilter) {
|
|
9866
|
-
var rfile =
|
|
9866
|
+
var rfile = path9.relative(pkg.dir, x2);
|
|
9867
9867
|
var r = opts.pathFilter(pkg.pkg, x2, rfile);
|
|
9868
9868
|
if (r) {
|
|
9869
|
-
x2 =
|
|
9869
|
+
x2 = path9.resolve(pkg.dir, r);
|
|
9870
9870
|
}
|
|
9871
9871
|
}
|
|
9872
9872
|
if (isFile(x2)) {
|
|
@@ -9885,9 +9885,9 @@ var require_sync = __commonJS({
|
|
|
9885
9885
|
return;
|
|
9886
9886
|
}
|
|
9887
9887
|
if (nodeModulesRegex.test(dir)) return;
|
|
9888
|
-
var pkgfile =
|
|
9888
|
+
var pkgfile = path9.join(maybeRealpathSync(realpathSync, dir, opts), "package.json");
|
|
9889
9889
|
if (!isFile(pkgfile)) {
|
|
9890
|
-
return loadpkg(
|
|
9890
|
+
return loadpkg(path9.dirname(dir));
|
|
9891
9891
|
}
|
|
9892
9892
|
var pkg = readPackageSync(readFileSync26, pkgfile);
|
|
9893
9893
|
if (pkg && opts.packageFilter) {
|
|
@@ -9900,7 +9900,7 @@ var require_sync = __commonJS({
|
|
|
9900
9900
|
return { pkg, dir };
|
|
9901
9901
|
}
|
|
9902
9902
|
function loadAsDirectorySync(x2) {
|
|
9903
|
-
var pkgfile =
|
|
9903
|
+
var pkgfile = path9.join(maybeRealpathSync(realpathSync, x2, opts), "/package.json");
|
|
9904
9904
|
if (isFile(pkgfile)) {
|
|
9905
9905
|
try {
|
|
9906
9906
|
var pkg = readPackageSync(readFileSync26, pkgfile);
|
|
@@ -9923,15 +9923,15 @@ var require_sync = __commonJS({
|
|
|
9923
9923
|
pkg.main = "index";
|
|
9924
9924
|
}
|
|
9925
9925
|
try {
|
|
9926
|
-
var m2 = loadAsFileSync(
|
|
9926
|
+
var m2 = loadAsFileSync(path9.resolve(x2, pkg.main));
|
|
9927
9927
|
if (m2) return m2;
|
|
9928
|
-
var n2 = loadAsDirectorySync(
|
|
9928
|
+
var n2 = loadAsDirectorySync(path9.resolve(x2, pkg.main));
|
|
9929
9929
|
if (n2) return n2;
|
|
9930
9930
|
} catch (e) {
|
|
9931
9931
|
}
|
|
9932
9932
|
}
|
|
9933
9933
|
}
|
|
9934
|
-
return loadAsFileSync(
|
|
9934
|
+
return loadAsFileSync(path9.join(x2, "/index"));
|
|
9935
9935
|
}
|
|
9936
9936
|
function loadNodeModulesSync(x2, start) {
|
|
9937
9937
|
var thunk = function() {
|
|
@@ -9940,7 +9940,7 @@ var require_sync = __commonJS({
|
|
|
9940
9940
|
var dirs = packageIterator ? packageIterator(x2, start, thunk, opts) : thunk();
|
|
9941
9941
|
for (var i = 0; i < dirs.length; i++) {
|
|
9942
9942
|
var dir = dirs[i];
|
|
9943
|
-
if (isDirectory(
|
|
9943
|
+
if (isDirectory(path9.dirname(dir))) {
|
|
9944
9944
|
var m2 = loadAsFileSync(dir);
|
|
9945
9945
|
if (m2) return m2;
|
|
9946
9946
|
var n2 = loadAsDirectorySync(dir);
|
|
@@ -10031,7 +10031,7 @@ var require_package = __commonJS({
|
|
|
10031
10031
|
var require_require_in_the_middle = __commonJS({
|
|
10032
10032
|
"../../node_modules/.pnpm/require-in-the-middle@7.5.2/node_modules/require-in-the-middle/index.js"(exports2, module2) {
|
|
10033
10033
|
"use strict";
|
|
10034
|
-
var
|
|
10034
|
+
var path9 = require("path");
|
|
10035
10035
|
var Module = require("module");
|
|
10036
10036
|
var debug = require_src3()("require-in-the-middle");
|
|
10037
10037
|
var moduleDetailsFromPath = require_module_details_from_path();
|
|
@@ -10205,7 +10205,7 @@ var require_require_in_the_middle = __commonJS({
|
|
|
10205
10205
|
}
|
|
10206
10206
|
moduleName = filename;
|
|
10207
10207
|
} else if (hasWhitelist === true && modules.includes(filename)) {
|
|
10208
|
-
const parsedPath =
|
|
10208
|
+
const parsedPath = path9.parse(filename);
|
|
10209
10209
|
moduleName = parsedPath.name;
|
|
10210
10210
|
basedir = parsedPath.dir;
|
|
10211
10211
|
} else {
|
|
@@ -10243,7 +10243,7 @@ var require_require_in_the_middle = __commonJS({
|
|
|
10243
10243
|
}
|
|
10244
10244
|
if (res !== filename) {
|
|
10245
10245
|
if (internals === true) {
|
|
10246
|
-
moduleName = moduleName +
|
|
10246
|
+
moduleName = moduleName + path9.sep + path9.relative(basedir, filename);
|
|
10247
10247
|
debug("preparing to process require of internal file: %s", moduleName);
|
|
10248
10248
|
} else {
|
|
10249
10249
|
debug("ignoring require of non-main module file: %s", res);
|
|
@@ -10279,8 +10279,8 @@ var require_require_in_the_middle = __commonJS({
|
|
|
10279
10279
|
}
|
|
10280
10280
|
};
|
|
10281
10281
|
function resolveModuleName(stat) {
|
|
10282
|
-
const normalizedPath =
|
|
10283
|
-
return
|
|
10282
|
+
const normalizedPath = path9.sep !== "/" ? stat.path.split(path9.sep).join("/") : stat.path;
|
|
10283
|
+
return path9.posix.join(stat.name, normalizedPath).replace(normalize2, "");
|
|
10284
10284
|
}
|
|
10285
10285
|
}
|
|
10286
10286
|
});
|
|
@@ -10369,7 +10369,7 @@ var require_RequireInTheMiddleSingleton = __commonJS({
|
|
|
10369
10369
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10370
10370
|
exports2.RequireInTheMiddleSingleton = void 0;
|
|
10371
10371
|
var require_in_the_middle_1 = require_require_in_the_middle();
|
|
10372
|
-
var
|
|
10372
|
+
var path9 = require("path");
|
|
10373
10373
|
var ModuleNameTrie_1 = require_ModuleNameTrie();
|
|
10374
10374
|
var isMocha = [
|
|
10375
10375
|
"afterEach",
|
|
@@ -10433,7 +10433,7 @@ var require_RequireInTheMiddleSingleton = __commonJS({
|
|
|
10433
10433
|
};
|
|
10434
10434
|
exports2.RequireInTheMiddleSingleton = RequireInTheMiddleSingleton;
|
|
10435
10435
|
function normalizePathSeparators(moduleNameOrPath) {
|
|
10436
|
-
return
|
|
10436
|
+
return path9.sep !== ModuleNameTrie_1.ModuleNameSeparator ? moduleNameOrPath.split(path9.sep).join(ModuleNameTrie_1.ModuleNameSeparator) : moduleNameOrPath;
|
|
10437
10437
|
}
|
|
10438
10438
|
}
|
|
10439
10439
|
});
|
|
@@ -10493,7 +10493,7 @@ var require_register = __commonJS({
|
|
|
10493
10493
|
// ../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/index.js
|
|
10494
10494
|
var require_import_in_the_middle = __commonJS({
|
|
10495
10495
|
"../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/index.js"(exports2, module2) {
|
|
10496
|
-
var
|
|
10496
|
+
var path9 = require("path");
|
|
10497
10497
|
var parse4 = require_module_details_from_path();
|
|
10498
10498
|
var { fileURLToPath } = require("url");
|
|
10499
10499
|
var { MessageChannel } = require("worker_threads");
|
|
@@ -10589,7 +10589,7 @@ var require_import_in_the_middle = __commonJS({
|
|
|
10589
10589
|
if (moduleName === name) {
|
|
10590
10590
|
if (baseDir) {
|
|
10591
10591
|
if (internals) {
|
|
10592
|
-
name = name +
|
|
10592
|
+
name = name + path9.sep + path9.relative(baseDir, fileURLToPath(filename));
|
|
10593
10593
|
} else {
|
|
10594
10594
|
if (!getExperimentalPatchInternals() && !baseDir.endsWith(specifiers.get(filename))) continue;
|
|
10595
10595
|
}
|
|
@@ -10665,7 +10665,7 @@ var require_instrumentation2 = __commonJS({
|
|
|
10665
10665
|
"use strict";
|
|
10666
10666
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10667
10667
|
exports2.InstrumentationBase = void 0;
|
|
10668
|
-
var
|
|
10668
|
+
var path9 = require("path");
|
|
10669
10669
|
var util_1 = require("util");
|
|
10670
10670
|
var semver_1 = require_semver2();
|
|
10671
10671
|
var shimmer_1 = require_shimmer();
|
|
@@ -10762,7 +10762,7 @@ var require_instrumentation2 = __commonJS({
|
|
|
10762
10762
|
}
|
|
10763
10763
|
_extractPackageVersion(baseDir) {
|
|
10764
10764
|
try {
|
|
10765
|
-
const json = (0, fs_1.readFileSync)(
|
|
10765
|
+
const json = (0, fs_1.readFileSync)(path9.join(baseDir, "package.json"), {
|
|
10766
10766
|
encoding: "utf8"
|
|
10767
10767
|
});
|
|
10768
10768
|
const version2 = JSON.parse(json).version;
|
|
@@ -10805,7 +10805,7 @@ var require_instrumentation2 = __commonJS({
|
|
|
10805
10805
|
return exports3;
|
|
10806
10806
|
}
|
|
10807
10807
|
const files = (_a = module3.files) !== null && _a !== void 0 ? _a : [];
|
|
10808
|
-
const normalizedName =
|
|
10808
|
+
const normalizedName = path9.normalize(name);
|
|
10809
10809
|
const supportedFileInstrumentations = files.filter((f) => f.name === normalizedName).filter((f) => isSupported(f.supportedVersions, version2, module3.includePrerelease));
|
|
10810
10810
|
return supportedFileInstrumentations.reduce((patchedExports, file) => {
|
|
10811
10811
|
file.moduleExports = patchedExports;
|
|
@@ -10851,8 +10851,8 @@ var require_instrumentation2 = __commonJS({
|
|
|
10851
10851
|
this._warnOnPreloadedModules();
|
|
10852
10852
|
for (const module3 of this._modules) {
|
|
10853
10853
|
const hookFn = (exports3, name, baseDir) => {
|
|
10854
|
-
if (!baseDir &&
|
|
10855
|
-
const parsedPath =
|
|
10854
|
+
if (!baseDir && path9.isAbsolute(name)) {
|
|
10855
|
+
const parsedPath = path9.parse(name);
|
|
10856
10856
|
name = parsedPath.name;
|
|
10857
10857
|
baseDir = parsedPath.dir;
|
|
10858
10858
|
}
|
|
@@ -10861,7 +10861,7 @@ var require_instrumentation2 = __commonJS({
|
|
|
10861
10861
|
const onRequire = (exports3, name, baseDir) => {
|
|
10862
10862
|
return this._onRequire(module3, exports3, name, baseDir);
|
|
10863
10863
|
};
|
|
10864
|
-
const hook =
|
|
10864
|
+
const hook = path9.isAbsolute(module3.name) ? new require_in_the_middle_1.Hook([module3.name], { internals: true }, onRequire) : this._requireInTheMiddleSingleton.register(module3.name, onRequire);
|
|
10865
10865
|
this._hooks.push(hook);
|
|
10866
10866
|
const esmHook = new import_in_the_middle_1.Hook([module3.name], { internals: false }, hookFn);
|
|
10867
10867
|
this._hooks.push(esmHook);
|
|
@@ -18108,7 +18108,7 @@ var require_instrumentation3 = __commonJS({
|
|
|
18108
18108
|
"use strict";
|
|
18109
18109
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
18110
18110
|
exports2.AwsLambdaInstrumentation = exports2.lambdaMaxInitInMilliseconds = void 0;
|
|
18111
|
-
var
|
|
18111
|
+
var path9 = require("path");
|
|
18112
18112
|
var fs6 = require("fs");
|
|
18113
18113
|
var instrumentation_1 = require_src4();
|
|
18114
18114
|
var api_1 = (init_esm(), __toCommonJS(esm_exports));
|
|
@@ -18136,10 +18136,10 @@ var require_instrumentation3 = __commonJS({
|
|
|
18136
18136
|
this._diag.debug("Skipping lambda instrumentation: no _HANDLER/lambdaHandler or LAMBDA_TASK_ROOT.", { taskRoot, handlerDef });
|
|
18137
18137
|
return [];
|
|
18138
18138
|
}
|
|
18139
|
-
const handler =
|
|
18139
|
+
const handler = path9.basename(handlerDef);
|
|
18140
18140
|
const moduleRoot = handlerDef.substr(0, handlerDef.length - handler.length);
|
|
18141
18141
|
const [module3, functionName] = handler.split(".", 2);
|
|
18142
|
-
let filename =
|
|
18142
|
+
let filename = path9.resolve(taskRoot, moduleRoot, module3);
|
|
18143
18143
|
if (!filename.endsWith(".js")) {
|
|
18144
18144
|
try {
|
|
18145
18145
|
fs6.statSync(`${filename}.js`);
|
|
@@ -21306,16 +21306,16 @@ var require_utils7 = __commonJS({
|
|
|
21306
21306
|
request[internal_types_1._LAYERS_STORE_PROPERTY].push(value);
|
|
21307
21307
|
};
|
|
21308
21308
|
exports2.storeLayerPath = storeLayerPath;
|
|
21309
|
-
var getRouterPath = (
|
|
21309
|
+
var getRouterPath = (path9, layer) => {
|
|
21310
21310
|
var _a, _b, _c, _d;
|
|
21311
21311
|
const stackLayer = (_b = (_a = layer.handle) === null || _a === void 0 ? void 0 : _a.stack) === null || _b === void 0 ? void 0 : _b[0];
|
|
21312
21312
|
if ((_c = stackLayer === null || stackLayer === void 0 ? void 0 : stackLayer.route) === null || _c === void 0 ? void 0 : _c.path) {
|
|
21313
|
-
return `${
|
|
21313
|
+
return `${path9}${stackLayer.route.path}`;
|
|
21314
21314
|
}
|
|
21315
21315
|
if ((_d = stackLayer === null || stackLayer === void 0 ? void 0 : stackLayer.handle) === null || _d === void 0 ? void 0 : _d.stack) {
|
|
21316
|
-
return (0, exports2.getRouterPath)(
|
|
21316
|
+
return (0, exports2.getRouterPath)(path9, stackLayer);
|
|
21317
21317
|
}
|
|
21318
|
-
return
|
|
21318
|
+
return path9;
|
|
21319
21319
|
};
|
|
21320
21320
|
exports2.getRouterPath = getRouterPath;
|
|
21321
21321
|
var getLayerMetadata = (route, layer, layerPath) => {
|
|
@@ -21515,7 +21515,7 @@ var require_instrumentation10 = __commonJS({
|
|
|
21515
21515
|
return original;
|
|
21516
21516
|
const patched = function(req, res) {
|
|
21517
21517
|
(0, utils_1.storeLayerPath)(req, layerPath);
|
|
21518
|
-
const route = req[internal_types_1._LAYERS_STORE_PROPERTY].filter((
|
|
21518
|
+
const route = req[internal_types_1._LAYERS_STORE_PROPERTY].filter((path9) => path9 !== "/" && path9 !== "/*").join("").replace(/\/{2,}/g, "/");
|
|
21519
21519
|
const attributes = {
|
|
21520
21520
|
[semantic_conventions_1.SEMATTRS_HTTP_ROUTE]: route.length > 0 ? route : "/"
|
|
21521
21521
|
};
|
|
@@ -22393,8 +22393,8 @@ var require_instrumentation12 = __commonJS({
|
|
|
22393
22393
|
}
|
|
22394
22394
|
};
|
|
22395
22395
|
const functionWithOriginalProperties = patchedFunctionWithOriginalProperties(patchedFunction, original);
|
|
22396
|
-
const promisified = function(
|
|
22397
|
-
return new Promise((resolve8) => functionWithOriginalProperties(
|
|
22396
|
+
const promisified = function(path9) {
|
|
22397
|
+
return new Promise((resolve8) => functionWithOriginalProperties(path9, resolve8));
|
|
22398
22398
|
};
|
|
22399
22399
|
Object.defineProperty(promisified, "name", { value: functionName });
|
|
22400
22400
|
Object.defineProperty(functionWithOriginalProperties, util_1.promisify.custom, {
|
|
@@ -22769,26 +22769,26 @@ var require_utils10 = __commonJS({
|
|
|
22769
22769
|
span.setAttribute(AttributeNames_1.AttributeNames.SOURCE, source);
|
|
22770
22770
|
}
|
|
22771
22771
|
exports2.addSpanSource = addSpanSource;
|
|
22772
|
-
function createFieldIfNotExists(tracer, getConfig, contextValue, info,
|
|
22773
|
-
let field = getField(contextValue,
|
|
22772
|
+
function createFieldIfNotExists(tracer, getConfig, contextValue, info, path9) {
|
|
22773
|
+
let field = getField(contextValue, path9);
|
|
22774
22774
|
let spanAdded = false;
|
|
22775
22775
|
if (!field) {
|
|
22776
22776
|
spanAdded = true;
|
|
22777
|
-
const parent = getParentField(contextValue,
|
|
22777
|
+
const parent = getParentField(contextValue, path9);
|
|
22778
22778
|
field = {
|
|
22779
22779
|
parent,
|
|
22780
|
-
span: createResolverSpan(tracer, getConfig, contextValue, info,
|
|
22780
|
+
span: createResolverSpan(tracer, getConfig, contextValue, info, path9, parent.span),
|
|
22781
22781
|
error: null
|
|
22782
22782
|
};
|
|
22783
|
-
addField(contextValue,
|
|
22783
|
+
addField(contextValue, path9, field);
|
|
22784
22784
|
}
|
|
22785
22785
|
return { spanAdded, field };
|
|
22786
22786
|
}
|
|
22787
|
-
function createResolverSpan(tracer, getConfig, contextValue, info,
|
|
22787
|
+
function createResolverSpan(tracer, getConfig, contextValue, info, path9, parentSpan) {
|
|
22788
22788
|
var _a, _b;
|
|
22789
22789
|
const attributes = {
|
|
22790
22790
|
[AttributeNames_1.AttributeNames.FIELD_NAME]: info.fieldName,
|
|
22791
|
-
[AttributeNames_1.AttributeNames.FIELD_PATH]:
|
|
22791
|
+
[AttributeNames_1.AttributeNames.FIELD_PATH]: path9.join("."),
|
|
22792
22792
|
[AttributeNames_1.AttributeNames.FIELD_TYPE]: info.returnType.toString()
|
|
22793
22793
|
};
|
|
22794
22794
|
const span = tracer.startSpan(`${enum_1.SpanNames.RESOLVE} ${attributes[AttributeNames_1.AttributeNames.FIELD_PATH]}`, {
|
|
@@ -22828,15 +22828,15 @@ var require_utils10 = __commonJS({
|
|
|
22828
22828
|
}
|
|
22829
22829
|
}
|
|
22830
22830
|
exports2.getOperation = getOperation;
|
|
22831
|
-
function addField(contextValue,
|
|
22832
|
-
return contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL].fields[
|
|
22831
|
+
function addField(contextValue, path9, field) {
|
|
22832
|
+
return contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL].fields[path9.join(".")] = field;
|
|
22833
22833
|
}
|
|
22834
|
-
function getField(contextValue,
|
|
22835
|
-
return contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL].fields[
|
|
22834
|
+
function getField(contextValue, path9) {
|
|
22835
|
+
return contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL].fields[path9.join(".")];
|
|
22836
22836
|
}
|
|
22837
|
-
function getParentField(contextValue,
|
|
22838
|
-
for (let i =
|
|
22839
|
-
const field = getField(contextValue,
|
|
22837
|
+
function getParentField(contextValue, path9) {
|
|
22838
|
+
for (let i = path9.length - 1; i > 0; i--) {
|
|
22839
|
+
const field = getField(contextValue, path9.slice(0, i));
|
|
22840
22840
|
if (field) {
|
|
22841
22841
|
return field;
|
|
22842
22842
|
}
|
|
@@ -22845,9 +22845,9 @@ var require_utils10 = __commonJS({
|
|
|
22845
22845
|
span: contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL].span
|
|
22846
22846
|
};
|
|
22847
22847
|
}
|
|
22848
|
-
function pathToArray(mergeItems,
|
|
22848
|
+
function pathToArray(mergeItems, path9) {
|
|
22849
22849
|
const flattened = [];
|
|
22850
|
-
let curr =
|
|
22850
|
+
let curr = path9;
|
|
22851
22851
|
while (curr) {
|
|
22852
22852
|
let key = curr.key;
|
|
22853
22853
|
if (mergeItems && typeof key === "number") {
|
|
@@ -22984,14 +22984,14 @@ var require_utils10 = __commonJS({
|
|
|
22984
22984
|
if (!contextValue[symbols_1.OTEL_GRAPHQL_DATA_SYMBOL]) {
|
|
22985
22985
|
return fieldResolver.call(this, source, args, contextValue, info);
|
|
22986
22986
|
}
|
|
22987
|
-
const
|
|
22988
|
-
const depth =
|
|
22987
|
+
const path9 = pathToArray(config.mergeItems, info && info.path);
|
|
22988
|
+
const depth = path9.filter((item) => typeof item === "string").length;
|
|
22989
22989
|
let field;
|
|
22990
22990
|
let shouldEndSpan = false;
|
|
22991
22991
|
if (config.depth >= 0 && config.depth < depth) {
|
|
22992
|
-
field = getParentField(contextValue,
|
|
22992
|
+
field = getParentField(contextValue, path9);
|
|
22993
22993
|
} else {
|
|
22994
|
-
const newField = createFieldIfNotExists(tracer, getConfig, contextValue, info,
|
|
22994
|
+
const newField = createFieldIfNotExists(tracer, getConfig, contextValue, info, path9);
|
|
22995
22995
|
field = newField.field;
|
|
22996
22996
|
shouldEndSpan = newField.spanAdded;
|
|
22997
22997
|
}
|
|
@@ -28447,12 +28447,12 @@ var require_utils14 = __commonJS({
|
|
|
28447
28447
|
const reqUrlObject = requestUrl || {};
|
|
28448
28448
|
const protocol = reqUrlObject.protocol || fallbackProtocol;
|
|
28449
28449
|
const port = (reqUrlObject.port || "").toString();
|
|
28450
|
-
const
|
|
28450
|
+
const path9 = reqUrlObject.path || "/";
|
|
28451
28451
|
let host = reqUrlObject.host || reqUrlObject.hostname || headers.host || "localhost";
|
|
28452
28452
|
if (host.indexOf(":") === -1 && port && port !== "80" && port !== "443") {
|
|
28453
28453
|
host += `:${port}`;
|
|
28454
28454
|
}
|
|
28455
|
-
return `${protocol}//${host}${
|
|
28455
|
+
return `${protocol}//${host}${path9}`;
|
|
28456
28456
|
};
|
|
28457
28457
|
exports2.getAbsoluteUrl = getAbsoluteUrl;
|
|
28458
28458
|
var parseResponseStatus = (kind, statusCode) => {
|
|
@@ -30520,11 +30520,11 @@ var require_instrumentation20 = __commonJS({
|
|
|
30520
30520
|
const router = dispatchLayer.router;
|
|
30521
30521
|
const routesStack = (_a = router === null || router === void 0 ? void 0 : router.stack) !== null && _a !== void 0 ? _a : [];
|
|
30522
30522
|
for (const pathLayer of routesStack) {
|
|
30523
|
-
const
|
|
30523
|
+
const path9 = pathLayer.path;
|
|
30524
30524
|
const pathStack = pathLayer.stack;
|
|
30525
30525
|
for (let j = 0; j < pathStack.length; j++) {
|
|
30526
30526
|
const routedMiddleware = pathStack[j];
|
|
30527
|
-
pathStack[j] = this._patchLayer(routedMiddleware, true,
|
|
30527
|
+
pathStack[j] = this._patchLayer(routedMiddleware, true, path9);
|
|
30528
30528
|
}
|
|
30529
30529
|
}
|
|
30530
30530
|
return dispatchLayer;
|
|
@@ -36914,8 +36914,8 @@ var require_instrumentation32 = __commonJS({
|
|
|
36914
36914
|
}
|
|
36915
36915
|
_methodPatcher(original, methodName) {
|
|
36916
36916
|
const instrumentation = this;
|
|
36917
|
-
return function(
|
|
36918
|
-
return original.call(this,
|
|
36917
|
+
return function(path9, ...handler) {
|
|
36918
|
+
return original.call(this, path9, ...instrumentation._handlerPatcher({ type: types_1.LayerType.REQUEST_HANDLER, path: path9, methodName }, handler));
|
|
36919
36919
|
};
|
|
36920
36920
|
}
|
|
36921
36921
|
// will return the same type as `handler`, but all functions recursively patched
|
|
@@ -38863,9 +38863,9 @@ var require_getMachineId_linux = __commonJS({
|
|
|
38863
38863
|
var api_1 = (init_esm(), __toCommonJS(esm_exports));
|
|
38864
38864
|
async function getMachineId() {
|
|
38865
38865
|
const paths = ["/etc/machine-id", "/var/lib/dbus/machine-id"];
|
|
38866
|
-
for (const
|
|
38866
|
+
for (const path9 of paths) {
|
|
38867
38867
|
try {
|
|
38868
|
-
const result = await fs_1.promises.readFile(
|
|
38868
|
+
const result = await fs_1.promises.readFile(path9, { encoding: "utf8" });
|
|
38869
38869
|
return result.trim();
|
|
38870
38870
|
} catch (e) {
|
|
38871
38871
|
api_1.diag.debug(`error reading machine id: ${e}`);
|
|
@@ -39075,7 +39075,7 @@ var require_ProcessDetectorSync = __commonJS({
|
|
|
39075
39075
|
var api_1 = (init_esm(), __toCommonJS(esm_exports));
|
|
39076
39076
|
var semantic_conventions_1 = (init_esm2(), __toCommonJS(esm_exports2));
|
|
39077
39077
|
var Resource_1 = require_Resource();
|
|
39078
|
-
var
|
|
39078
|
+
var os5 = require("os");
|
|
39079
39079
|
var ProcessDetectorSync = class {
|
|
39080
39080
|
detect(_config) {
|
|
39081
39081
|
const attributes = {
|
|
@@ -39095,7 +39095,7 @@ var require_ProcessDetectorSync = __commonJS({
|
|
|
39095
39095
|
attributes[semantic_conventions_1.SEMRESATTRS_PROCESS_COMMAND] = process.argv[1];
|
|
39096
39096
|
}
|
|
39097
39097
|
try {
|
|
39098
|
-
const userInfo =
|
|
39098
|
+
const userInfo = os5.userInfo();
|
|
39099
39099
|
attributes[semantic_conventions_1.SEMRESATTRS_PROCESS_OWNER] = userInfo.username;
|
|
39100
39100
|
} catch (e) {
|
|
39101
39101
|
api_1.diag.debug(`error obtaining process owner: ${e}`);
|
|
@@ -40011,7 +40011,7 @@ var require_AwsEcsDetectorSync = __commonJS({
|
|
|
40011
40011
|
var http = require("http");
|
|
40012
40012
|
var util2 = require("util");
|
|
40013
40013
|
var fs6 = require("fs");
|
|
40014
|
-
var
|
|
40014
|
+
var os5 = require("os");
|
|
40015
40015
|
var HTTP_TIMEOUT_IN_MS = 1e3;
|
|
40016
40016
|
var AwsEcsDetectorSync = class _AwsEcsDetectorSync {
|
|
40017
40017
|
detect() {
|
|
@@ -40051,7 +40051,7 @@ var require_AwsEcsDetectorSync = __commonJS({
|
|
|
40051
40051
|
* and then return null string
|
|
40052
40052
|
*/
|
|
40053
40053
|
static async _getContainerIdAndHostnameResource() {
|
|
40054
|
-
const hostName =
|
|
40054
|
+
const hostName = os5.hostname();
|
|
40055
40055
|
let containerId = "";
|
|
40056
40056
|
try {
|
|
40057
40057
|
const rawData = await _AwsEcsDetectorSync.readFileAsync(_AwsEcsDetectorSync.DEFAULT_CGROUP_PATH, "utf8");
|
|
@@ -41553,14 +41553,14 @@ var require_url_state_machine = __commonJS({
|
|
|
41553
41553
|
return url.replace(/\u0009|\u000A|\u000D/g, "");
|
|
41554
41554
|
}
|
|
41555
41555
|
function shortenPath(url) {
|
|
41556
|
-
const
|
|
41557
|
-
if (
|
|
41556
|
+
const path9 = url.path;
|
|
41557
|
+
if (path9.length === 0) {
|
|
41558
41558
|
return;
|
|
41559
41559
|
}
|
|
41560
|
-
if (url.scheme === "file" &&
|
|
41560
|
+
if (url.scheme === "file" && path9.length === 1 && isNormalizedWindowsDriveLetter(path9[0])) {
|
|
41561
41561
|
return;
|
|
41562
41562
|
}
|
|
41563
|
-
|
|
41563
|
+
path9.pop();
|
|
41564
41564
|
}
|
|
41565
41565
|
function includesCredentials(url) {
|
|
41566
41566
|
return url.username !== "" || url.password !== "";
|
|
@@ -48616,21 +48616,21 @@ function ensureConfigDir() {
|
|
|
48616
48616
|
(0, import_node_fs.mkdirSync)(CONFIG_DIR, { recursive: true });
|
|
48617
48617
|
}
|
|
48618
48618
|
}
|
|
48619
|
-
function readJsonFile(
|
|
48620
|
-
if (!(0, import_node_fs.existsSync)(
|
|
48621
|
-
const raw = (0, import_node_fs.readFileSync)(
|
|
48619
|
+
function readJsonFile(path9, fallback) {
|
|
48620
|
+
if (!(0, import_node_fs.existsSync)(path9)) return fallback;
|
|
48621
|
+
const raw = (0, import_node_fs.readFileSync)(path9, "utf8");
|
|
48622
48622
|
if (!raw.trim()) return fallback;
|
|
48623
48623
|
try {
|
|
48624
48624
|
return JSON.parse(raw);
|
|
48625
48625
|
} catch (error) {
|
|
48626
|
-
throw new Error(`Failed to parse ${
|
|
48626
|
+
throw new Error(`Failed to parse ${path9}: ${error.message}`);
|
|
48627
48627
|
}
|
|
48628
48628
|
}
|
|
48629
|
-
function writeJsonFile(
|
|
48629
|
+
function writeJsonFile(path9, value) {
|
|
48630
48630
|
ensureConfigDir();
|
|
48631
|
-
(0, import_node_fs.writeFileSync)(
|
|
48631
|
+
(0, import_node_fs.writeFileSync)(path9, JSON.stringify(value, null, 2));
|
|
48632
48632
|
try {
|
|
48633
|
-
(0, import_node_fs.chmodSync)(
|
|
48633
|
+
(0, import_node_fs.chmodSync)(path9, 384);
|
|
48634
48634
|
} catch {
|
|
48635
48635
|
}
|
|
48636
48636
|
}
|
|
@@ -51526,8 +51526,8 @@ function showSubcommandHelp(command, subcommand) {
|
|
|
51526
51526
|
}
|
|
51527
51527
|
|
|
51528
51528
|
// src/lib/client.ts
|
|
51529
|
-
async function requestJson(context2,
|
|
51530
|
-
const response = await requestRaw(context2,
|
|
51529
|
+
async function requestJson(context2, path9, options = {}) {
|
|
51530
|
+
const response = await requestRaw(context2, path9, options);
|
|
51531
51531
|
const method = options.method ?? "GET";
|
|
51532
51532
|
if (response.status === 401 && options.tokenOverride === void 0) {
|
|
51533
51533
|
const refreshed = await attemptRefresh(context2);
|
|
@@ -51535,20 +51535,20 @@ async function requestJson(context2, path8, options = {}) {
|
|
|
51535
51535
|
context2.token = refreshed.access_token;
|
|
51536
51536
|
context2.refreshToken = refreshed.refresh_token;
|
|
51537
51537
|
context2.expiresAt = refreshed.expires_at;
|
|
51538
|
-
const retry = await requestRaw(context2,
|
|
51538
|
+
const retry = await requestRaw(context2, path9, {
|
|
51539
51539
|
...options,
|
|
51540
51540
|
tokenOverride: refreshed.access_token
|
|
51541
51541
|
});
|
|
51542
51542
|
if (!retry.ok && !options.allowError) {
|
|
51543
51543
|
const message = formatErrorMessage(retry);
|
|
51544
|
-
throw new Error(`HTTP ${retry.status}: ${method} ${
|
|
51544
|
+
throw new Error(`HTTP ${retry.status}: ${method} ${path9}: ${message}`);
|
|
51545
51545
|
}
|
|
51546
51546
|
return retry.data;
|
|
51547
51547
|
}
|
|
51548
51548
|
}
|
|
51549
51549
|
if (!response.ok && !options.allowError) {
|
|
51550
51550
|
const message = formatErrorMessage(response);
|
|
51551
|
-
const requestTarget = `${method} ${
|
|
51551
|
+
const requestTarget = `${method} ${path9}`;
|
|
51552
51552
|
const requestFailedContext = `while calling ${requestTarget}: ${message}`;
|
|
51553
51553
|
if ((response.status === 404 || response.status === 500) && message.includes("Project not found")) {
|
|
51554
51554
|
const projectIdMatch = message.match(/Project not found: (proj_[a-z0-9]+)/);
|
|
@@ -51580,7 +51580,7 @@ function unwrapListResponse(value) {
|
|
|
51580
51580
|
}
|
|
51581
51581
|
throw new Error("Expected list response envelope with data[]");
|
|
51582
51582
|
}
|
|
51583
|
-
async function requestRaw(context2,
|
|
51583
|
+
async function requestRaw(context2, path9, options = {}) {
|
|
51584
51584
|
const headers = {
|
|
51585
51585
|
...options.headers
|
|
51586
51586
|
};
|
|
@@ -51591,7 +51591,7 @@ async function requestRaw(context2, path8, options = {}) {
|
|
|
51591
51591
|
if (token) {
|
|
51592
51592
|
headers.Authorization = `Bearer ${token}`;
|
|
51593
51593
|
}
|
|
51594
|
-
const url = `${context2.apiUrl}${
|
|
51594
|
+
const url = `${context2.apiUrl}${path9}`;
|
|
51595
51595
|
const method = options.method ?? "GET";
|
|
51596
51596
|
let response;
|
|
51597
51597
|
try {
|
|
@@ -51807,9 +51807,13 @@ async function handleOrg(subcommand, positionals, flags, context2) {
|
|
|
51807
51807
|
}
|
|
51808
51808
|
case "delete": {
|
|
51809
51809
|
const orgId = positionals[0];
|
|
51810
|
-
if (!orgId) throw new Error("Usage: eve org delete <org_id> [--force]");
|
|
51811
|
-
const
|
|
51812
|
-
|
|
51810
|
+
if (!orgId) throw new Error("Usage: eve org delete <org_id> [--hard] [--force]");
|
|
51811
|
+
const hard = toBoolean(flags.hard) ?? false;
|
|
51812
|
+
const force = toBoolean(flags.force) ?? false;
|
|
51813
|
+
const query = buildQuery({ hard: hard ? "true" : void 0, force: force ? "true" : void 0 });
|
|
51814
|
+
await requestRaw(context2, `/orgs/${orgId}${query}`, { method: "DELETE" });
|
|
51815
|
+
const mode = hard ? "hard-deleted" : "soft-deleted";
|
|
51816
|
+
outputJson({ org_id: orgId, deleted: true, mode }, json, `\u2713 Organization ${orgId} ${mode}`);
|
|
51813
51817
|
return;
|
|
51814
51818
|
}
|
|
51815
51819
|
case "members": {
|
|
@@ -52231,10 +52235,23 @@ async function handleProject(subcommand, positionals, flags, context2) {
|
|
|
52231
52235
|
}
|
|
52232
52236
|
return;
|
|
52233
52237
|
}
|
|
52238
|
+
case "delete": {
|
|
52239
|
+
const projectId = positionals[0] ?? (typeof flags.project === "string" ? flags.project : context2.projectId);
|
|
52240
|
+
if (!projectId) {
|
|
52241
|
+
throw new Error("Usage: eve project delete <project_id> [--hard] [--force]");
|
|
52242
|
+
}
|
|
52243
|
+
const hard = toBoolean(flags.hard) ?? false;
|
|
52244
|
+
const force = toBoolean(flags.force) ?? false;
|
|
52245
|
+
const query = buildQuery2({ hard: hard ? "true" : void 0, force: force ? "true" : void 0 });
|
|
52246
|
+
await requestRaw(context2, `/projects/${projectId}${query}`, { method: "DELETE" });
|
|
52247
|
+
const mode = hard ? "hard-deleted" : "soft-deleted";
|
|
52248
|
+
outputJson({ project_id: projectId, deleted: true, mode }, json, `\u2713 Project ${projectId} ${mode}`);
|
|
52249
|
+
return;
|
|
52250
|
+
}
|
|
52234
52251
|
case "status":
|
|
52235
52252
|
return handleStatus(flags, context2, json);
|
|
52236
52253
|
default:
|
|
52237
|
-
throw new Error("Usage: eve project <ensure|list|get|spend|update|sync|members|bootstrap|status>");
|
|
52254
|
+
throw new Error("Usage: eve project <ensure|list|get|spend|update|delete|sync|members|bootstrap|status>");
|
|
52238
52255
|
}
|
|
52239
52256
|
}
|
|
52240
52257
|
async function handleStatus(flags, currentContext, json) {
|
|
@@ -52989,8 +53006,8 @@ function getErrorMap() {
|
|
|
52989
53006
|
|
|
52990
53007
|
// ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js
|
|
52991
53008
|
var makeIssue = (params) => {
|
|
52992
|
-
const { data, path:
|
|
52993
|
-
const fullPath = [...
|
|
53009
|
+
const { data, path: path9, errorMaps, issueData } = params;
|
|
53010
|
+
const fullPath = [...path9, ...issueData.path || []];
|
|
52994
53011
|
const fullIssue = {
|
|
52995
53012
|
...issueData,
|
|
52996
53013
|
path: fullPath
|
|
@@ -53106,11 +53123,11 @@ var errorUtil;
|
|
|
53106
53123
|
|
|
53107
53124
|
// ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js
|
|
53108
53125
|
var ParseInputLazyPath = class {
|
|
53109
|
-
constructor(parent, value,
|
|
53126
|
+
constructor(parent, value, path9, key) {
|
|
53110
53127
|
this._cachedPath = [];
|
|
53111
53128
|
this.parent = parent;
|
|
53112
53129
|
this.data = value;
|
|
53113
|
-
this._path =
|
|
53130
|
+
this._path = path9;
|
|
53114
53131
|
this._key = key;
|
|
53115
53132
|
}
|
|
53116
53133
|
get path() {
|
|
@@ -57306,6 +57323,7 @@ var OrgMemberListResponseSchema = external_exports.object({
|
|
|
57306
57323
|
var EnvironmentTypeSchema = external_exports.enum(["persistent", "temporary"]);
|
|
57307
57324
|
var EnvironmentKindSchema = external_exports.enum(["standard", "preview"]);
|
|
57308
57325
|
var EnvironmentStatusSchema = external_exports.enum(["active", "suspended", "terminated"]);
|
|
57326
|
+
var DeployStatusSchema = external_exports.enum(["unknown", "deployed", "undeployed", "deploying", "undeploying", "failed"]);
|
|
57309
57327
|
var EnvironmentLabelsSchema = external_exports.record(external_exports.string(), external_exports.string());
|
|
57310
57328
|
var CreateEnvironmentRequestSchema = external_exports.object({
|
|
57311
57329
|
name: external_exports.string().min(1),
|
|
@@ -57340,6 +57358,7 @@ var EnvironmentResponseSchema = external_exports.object({
|
|
|
57340
57358
|
alias: external_exports.string(),
|
|
57341
57359
|
service_name: external_exports.string()
|
|
57342
57360
|
})).optional(),
|
|
57361
|
+
deploy_status: DeployStatusSchema,
|
|
57343
57362
|
status: EnvironmentStatusSchema,
|
|
57344
57363
|
suspended_at: external_exports.string().nullable(),
|
|
57345
57364
|
suspension_reason: external_exports.string().nullable(),
|
|
@@ -57353,6 +57372,9 @@ var EnvironmentListResponseSchema = external_exports.object({
|
|
|
57353
57372
|
var DeleteEnvironmentRequestSchema = external_exports.object({
|
|
57354
57373
|
force: external_exports.boolean().optional()
|
|
57355
57374
|
}).optional().default({});
|
|
57375
|
+
var UndeployEnvironmentRequestSchema = external_exports.object({
|
|
57376
|
+
force: external_exports.boolean().optional()
|
|
57377
|
+
}).optional().default({});
|
|
57356
57378
|
var EnvLogEntrySchema = external_exports.object({
|
|
57357
57379
|
timestamp: external_exports.string(),
|
|
57358
57380
|
line: external_exports.string(),
|
|
@@ -57961,7 +57983,9 @@ var AuthStatusResponseSchema = external_exports.object({
|
|
|
57961
57983
|
is_job_token: external_exports.boolean().optional(),
|
|
57962
57984
|
is_service_principal: external_exports.boolean().optional(),
|
|
57963
57985
|
permissions: external_exports.array(external_exports.string()).optional(),
|
|
57964
|
-
memberships: external_exports.array(external_exports.object({ org_id: external_exports.string(), role: external_exports.string() })).optional()
|
|
57986
|
+
memberships: external_exports.array(external_exports.object({ org_id: external_exports.string(), role: external_exports.string() })).optional(),
|
|
57987
|
+
/** Project-level role when X-Eve-Project-Id header is provided */
|
|
57988
|
+
project_role: external_exports.enum(["owner", "admin", "member"]).nullable().optional()
|
|
57965
57989
|
});
|
|
57966
57990
|
var AuthChallengeRequestSchema = external_exports.object({
|
|
57967
57991
|
provider: external_exports.enum(["github_ssh", "nostr"]).default("github_ssh"),
|
|
@@ -58980,6 +59004,7 @@ var EventSchema = external_exports.object({
|
|
|
58980
59004
|
actor_id: external_exports.string().nullable(),
|
|
58981
59005
|
payload_json: external_exports.record(external_exports.unknown()).nullable(),
|
|
58982
59006
|
dedupe_key: external_exports.string().nullable(),
|
|
59007
|
+
job_id: external_exports.string().nullable(),
|
|
58983
59008
|
status: EventStatusSchema,
|
|
58984
59009
|
processed_at: external_exports.string().nullable(),
|
|
58985
59010
|
created_at: external_exports.string(),
|
|
@@ -60703,10 +60728,10 @@ function mergeXEve(packFragments, projectXEve) {
|
|
|
60703
60728
|
var ORG_DOCS_PREFIX = "org_docs:/";
|
|
60704
60729
|
var JOB_ATTACHMENTS_PREFIX = "job_attachments:/";
|
|
60705
60730
|
var INGEST_PREFIX = "ingest:/";
|
|
60706
|
-
function normalizeOrgDocPath(
|
|
60707
|
-
if (!
|
|
60731
|
+
function normalizeOrgDocPath(path9) {
|
|
60732
|
+
if (!path9)
|
|
60708
60733
|
return "/";
|
|
60709
|
-
return
|
|
60734
|
+
return path9.startsWith("/") ? path9 : `/${path9}`;
|
|
60710
60735
|
}
|
|
60711
60736
|
function parseResourceUri(uri) {
|
|
60712
60737
|
if (!uri || typeof uri !== "string")
|
|
@@ -60717,11 +60742,11 @@ function parseResourceUri(uri) {
|
|
|
60717
60742
|
return null;
|
|
60718
60743
|
const match = raw.match(/^(.*)@v(\d+)$/);
|
|
60719
60744
|
if (match) {
|
|
60720
|
-
const
|
|
60745
|
+
const path9 = normalizeOrgDocPath(match[1]);
|
|
60721
60746
|
const version2 = Number(match[2]);
|
|
60722
60747
|
if (!Number.isFinite(version2) || version2 <= 0)
|
|
60723
60748
|
return null;
|
|
60724
|
-
return { scheme: "org_docs", path:
|
|
60749
|
+
return { scheme: "org_docs", path: path9, version: version2 };
|
|
60725
60750
|
}
|
|
60726
60751
|
return { scheme: "org_docs", path: normalizeOrgDocPath(raw) };
|
|
60727
60752
|
}
|
|
@@ -62508,6 +62533,7 @@ var ALL_PERMISSIONS = [
|
|
|
62508
62533
|
// Threads
|
|
62509
62534
|
"threads:read",
|
|
62510
62535
|
"threads:write",
|
|
62536
|
+
"threads:admin",
|
|
62511
62537
|
// Projects
|
|
62512
62538
|
"projects:read",
|
|
62513
62539
|
"projects:create",
|
|
@@ -62535,9 +62561,19 @@ var ALL_PERMISSIONS = [
|
|
|
62535
62561
|
// Builds
|
|
62536
62562
|
"builds:read",
|
|
62537
62563
|
"builds:write",
|
|
62564
|
+
"builds:admin",
|
|
62565
|
+
// Releases
|
|
62566
|
+
"releases:read",
|
|
62567
|
+
"releases:write",
|
|
62568
|
+
"releases:admin",
|
|
62538
62569
|
// Pipelines
|
|
62539
62570
|
"pipelines:read",
|
|
62540
62571
|
"pipelines:write",
|
|
62572
|
+
"pipelines:admin",
|
|
62573
|
+
// Agents
|
|
62574
|
+
"agents:read",
|
|
62575
|
+
"agents:write",
|
|
62576
|
+
"agents:admin",
|
|
62541
62577
|
// Workflows
|
|
62542
62578
|
"workflows:read",
|
|
62543
62579
|
"workflows:write",
|
|
@@ -62656,6 +62692,11 @@ var import_child_process3 = require("child_process");
|
|
|
62656
62692
|
var import_util6 = require("util");
|
|
62657
62693
|
var execFileAsync3 = (0, import_util6.promisify)(import_child_process3.execFile);
|
|
62658
62694
|
|
|
62695
|
+
// ../shared/dist/invoke/job-user-home.js
|
|
62696
|
+
var path4 = __toESM(require("path"), 1);
|
|
62697
|
+
var os2 = __toESM(require("os"), 1);
|
|
62698
|
+
var JOB_HOMES_ROOT = path4.join(os2.tmpdir(), "eve", "agent-homes");
|
|
62699
|
+
|
|
62659
62700
|
// src/commands/job.ts
|
|
62660
62701
|
async function handleJob(subcommand, positionals, flags, context2) {
|
|
62661
62702
|
const json = Boolean(flags.json);
|
|
@@ -62999,10 +63040,14 @@ function parseSinceValue3(since) {
|
|
|
62999
63040
|
async function handleList(flags, context2, json) {
|
|
63000
63041
|
const all = Boolean(flags.all);
|
|
63001
63042
|
if (all) {
|
|
63043
|
+
const root2 = Boolean(flags.root);
|
|
63002
63044
|
const query2 = buildQuery3({
|
|
63003
63045
|
org_id: getStringFlag(flags, ["org"]),
|
|
63004
63046
|
project_id: getStringFlag(flags, ["project"]),
|
|
63005
63047
|
phase: getStringFlag(flags, ["phase"]),
|
|
63048
|
+
label: getStringFlag(flags, ["label"]),
|
|
63049
|
+
type: getStringFlag(flags, ["type"]),
|
|
63050
|
+
parent: root2 ? "null" : void 0,
|
|
63006
63051
|
limit: getStringFlag(flags, ["limit"]) ?? "50",
|
|
63007
63052
|
offset: getStringFlag(flags, ["offset"])
|
|
63008
63053
|
});
|
|
@@ -63031,6 +63076,7 @@ async function handleList(flags, context2, json) {
|
|
|
63031
63076
|
const since = sinceRaw ? parseSinceValue3(sinceRaw) : void 0;
|
|
63032
63077
|
const stuck = Boolean(flags.stuck);
|
|
63033
63078
|
const stuckMinutes = getStringFlag(flags, ["stuck-minutes"]);
|
|
63079
|
+
const root = Boolean(flags.root);
|
|
63034
63080
|
const query = buildQuery3({
|
|
63035
63081
|
phase: getStringFlag(flags, ["phase"]),
|
|
63036
63082
|
assignee: getStringFlag(flags, ["assignee"]),
|
|
@@ -63038,6 +63084,9 @@ async function handleList(flags, context2, json) {
|
|
|
63038
63084
|
since,
|
|
63039
63085
|
stuck: stuck ? "true" : void 0,
|
|
63040
63086
|
stuck_minutes: stuckMinutes,
|
|
63087
|
+
label: getStringFlag(flags, ["label"]),
|
|
63088
|
+
type: getStringFlag(flags, ["type"]),
|
|
63089
|
+
parent: root ? "null" : void 0,
|
|
63041
63090
|
limit: getStringFlag(flags, ["limit"]),
|
|
63042
63091
|
offset: getStringFlag(flags, ["offset"])
|
|
63043
63092
|
});
|
|
@@ -64046,8 +64095,9 @@ async function handleAttempts(positionals, context2, json) {
|
|
|
64046
64095
|
async function handleLogs(positionals, flags, context2, json) {
|
|
64047
64096
|
const jobId = positionals[0];
|
|
64048
64097
|
if (!jobId) {
|
|
64049
|
-
throw new Error("Usage: eve jobs logs <job-id> [--attempt=N] [--after=N]");
|
|
64098
|
+
throw new Error("Usage: eve jobs logs <job-id> [--attempt=N] [--after=N] [--summary]");
|
|
64050
64099
|
}
|
|
64100
|
+
const summaryMode = Boolean(flags.summary);
|
|
64051
64101
|
const attemptStr = getStringFlag(flags, ["attempt"]);
|
|
64052
64102
|
let attemptNum;
|
|
64053
64103
|
if (attemptStr) {
|
|
@@ -64071,6 +64121,40 @@ async function handleLogs(positionals, flags, context2, json) {
|
|
|
64071
64121
|
);
|
|
64072
64122
|
if (json) {
|
|
64073
64123
|
outputJson(response, json);
|
|
64124
|
+
} else if (summaryMode) {
|
|
64125
|
+
if (response.logs.length === 0) {
|
|
64126
|
+
console.log(`No logs found for attempt #${attemptNum}.`);
|
|
64127
|
+
return;
|
|
64128
|
+
}
|
|
64129
|
+
console.log(`Logs for job ${jobId}, attempt #${attemptNum} (summary):`);
|
|
64130
|
+
console.log("");
|
|
64131
|
+
summaryLlmCallCount = 0;
|
|
64132
|
+
summaryLlmTotalMicroUsd = 0n;
|
|
64133
|
+
summaryLlmTotalInputTokens = 0;
|
|
64134
|
+
summaryLlmTotalOutputTokens = 0;
|
|
64135
|
+
summaryToolUseCount = 0;
|
|
64136
|
+
summaryLastLlmEmitCount = 0;
|
|
64137
|
+
summaryLastLlmEmitTime = Date.now();
|
|
64138
|
+
summaryStartTime = Date.now();
|
|
64139
|
+
for (const log of response.logs) {
|
|
64140
|
+
const sseEvent = {
|
|
64141
|
+
sequence: log.sequence,
|
|
64142
|
+
timestamp: log.timestamp,
|
|
64143
|
+
type: log.type || log.line.type || "log",
|
|
64144
|
+
line: log.line
|
|
64145
|
+
};
|
|
64146
|
+
const line = formatFollowSummaryLine(sseEvent);
|
|
64147
|
+
if (line) console.log(line);
|
|
64148
|
+
}
|
|
64149
|
+
const pending = flushSummaryLlmAggregate(true);
|
|
64150
|
+
if (pending) console.log(pending);
|
|
64151
|
+
console.log("");
|
|
64152
|
+
console.log("--- Summary ---");
|
|
64153
|
+
console.log(`Log entries: ${response.logs.length}`);
|
|
64154
|
+
console.log(`LLM calls: ${summaryLlmCallCount}`);
|
|
64155
|
+
console.log(`Tokens: ${formatNumber(summaryLlmTotalInputTokens)} in / ${formatNumber(summaryLlmTotalOutputTokens)} out`);
|
|
64156
|
+
console.log(`Cost: ~$${formatFixed6Usd(summaryLlmTotalMicroUsd)}`);
|
|
64157
|
+
console.log(`Tool uses: ${summaryToolUseCount}`);
|
|
64074
64158
|
} else {
|
|
64075
64159
|
if (response.logs.length === 0) {
|
|
64076
64160
|
console.log(`No logs found for attempt #${attemptNum}.`);
|
|
@@ -64861,6 +64945,14 @@ function processWatchSSEEvent(eventType, eventData) {
|
|
|
64861
64945
|
}
|
|
64862
64946
|
var followLlmCallCount = 0;
|
|
64863
64947
|
var followLlmTotalMicroUsd = 0n;
|
|
64948
|
+
var summaryLlmCallCount = 0;
|
|
64949
|
+
var summaryLlmTotalMicroUsd = 0n;
|
|
64950
|
+
var summaryLlmTotalInputTokens = 0;
|
|
64951
|
+
var summaryLlmTotalOutputTokens = 0;
|
|
64952
|
+
var summaryToolUseCount = 0;
|
|
64953
|
+
var summaryLastLlmEmitCount = 0;
|
|
64954
|
+
var summaryLastLlmEmitTime = 0;
|
|
64955
|
+
var summaryStartTime = 0;
|
|
64864
64956
|
function parseFixed6Usd(amount) {
|
|
64865
64957
|
const [wholeRaw, fracRaw = ""] = amount.split(".");
|
|
64866
64958
|
const whole = wholeRaw.trim() ? BigInt(wholeRaw) : 0n;
|
|
@@ -64875,13 +64967,22 @@ function formatFixed6Usd(micro) {
|
|
|
64875
64967
|
async function handleFollow(positionals, flags, context2) {
|
|
64876
64968
|
const jobId = positionals[0];
|
|
64877
64969
|
if (!jobId) {
|
|
64878
|
-
throw new Error("Usage: eve job follow <job-id> [--raw] [--no-result]");
|
|
64970
|
+
throw new Error("Usage: eve job follow <job-id> [--raw] [--no-result] [--summary]");
|
|
64879
64971
|
}
|
|
64880
64972
|
const raw = Boolean(flags.raw);
|
|
64973
|
+
const summary = Boolean(flags.summary);
|
|
64881
64974
|
const showResult = !flags["no-result"];
|
|
64882
|
-
console.log(`Following ${jobId}...`);
|
|
64975
|
+
console.log(`Following ${jobId}${summary ? " (summary mode)" : ""}...`);
|
|
64883
64976
|
followLlmCallCount = 0;
|
|
64884
64977
|
followLlmTotalMicroUsd = 0n;
|
|
64978
|
+
summaryLlmCallCount = 0;
|
|
64979
|
+
summaryLlmTotalMicroUsd = 0n;
|
|
64980
|
+
summaryLlmTotalInputTokens = 0;
|
|
64981
|
+
summaryLlmTotalOutputTokens = 0;
|
|
64982
|
+
summaryToolUseCount = 0;
|
|
64983
|
+
summaryLastLlmEmitCount = 0;
|
|
64984
|
+
summaryLastLlmEmitTime = Date.now();
|
|
64985
|
+
summaryStartTime = Date.now();
|
|
64885
64986
|
const url = `${context2.apiUrl}/jobs/${jobId}/stream`;
|
|
64886
64987
|
const headers = {
|
|
64887
64988
|
Accept: "text/event-stream"
|
|
@@ -64918,8 +65019,9 @@ async function handleFollow(positionals, flags, context2) {
|
|
|
64918
65019
|
} else if (line.startsWith("data:")) {
|
|
64919
65020
|
eventData = line.slice(5).trim();
|
|
64920
65021
|
} else if (line === "" && eventData) {
|
|
64921
|
-
exitCode = processSSEEvent(eventType, eventData, raw, showResult);
|
|
65022
|
+
exitCode = processSSEEvent(eventType, eventData, raw, showResult, summary);
|
|
64922
65023
|
if (exitCode !== -1) {
|
|
65024
|
+
if (summary) printSummaryFooter();
|
|
64923
65025
|
process.exit(exitCode);
|
|
64924
65026
|
}
|
|
64925
65027
|
eventType = "";
|
|
@@ -64939,22 +65041,25 @@ async function handleFollow(positionals, flags, context2) {
|
|
|
64939
65041
|
}
|
|
64940
65042
|
}
|
|
64941
65043
|
if (eventData) {
|
|
64942
|
-
exitCode = processSSEEvent(eventType, eventData, raw, showResult);
|
|
65044
|
+
exitCode = processSSEEvent(eventType, eventData, raw, showResult, summary);
|
|
64943
65045
|
if (exitCode !== -1) {
|
|
65046
|
+
if (summary) printSummaryFooter();
|
|
64944
65047
|
process.exit(exitCode);
|
|
64945
65048
|
}
|
|
64946
65049
|
}
|
|
64947
65050
|
}
|
|
65051
|
+
if (summary) printSummaryFooter();
|
|
64948
65052
|
console.log("");
|
|
64949
65053
|
console.log("Stream ended.");
|
|
64950
65054
|
process.exit(0);
|
|
64951
65055
|
} catch (error) {
|
|
65056
|
+
if (summary) printSummaryFooter();
|
|
64952
65057
|
const err = error;
|
|
64953
65058
|
console.error(`Error following job: ${err.message}`);
|
|
64954
65059
|
process.exit(1);
|
|
64955
65060
|
}
|
|
64956
65061
|
}
|
|
64957
|
-
function processSSEEvent(eventType, eventData, raw, showResult) {
|
|
65062
|
+
function processSSEEvent(eventType, eventData, raw, showResult, summary = false) {
|
|
64958
65063
|
let parsed;
|
|
64959
65064
|
try {
|
|
64960
65065
|
parsed = JSON.parse(eventData);
|
|
@@ -64969,6 +65074,9 @@ function processSSEEvent(eventType, eventData, raw, showResult) {
|
|
|
64969
65074
|
const logEvent = parsed;
|
|
64970
65075
|
if (raw) {
|
|
64971
65076
|
console.log(JSON.stringify(logEvent));
|
|
65077
|
+
} else if (summary) {
|
|
65078
|
+
const line = formatFollowSummaryLine(logEvent);
|
|
65079
|
+
if (line) console.log(line);
|
|
64972
65080
|
} else {
|
|
64973
65081
|
formatFollowLogLine(logEvent);
|
|
64974
65082
|
}
|
|
@@ -64978,6 +65086,17 @@ function processSSEEvent(eventType, eventData, raw, showResult) {
|
|
|
64978
65086
|
const completeEvent = parsed;
|
|
64979
65087
|
if (raw) {
|
|
64980
65088
|
console.log(JSON.stringify(completeEvent));
|
|
65089
|
+
} else if (summary) {
|
|
65090
|
+
const pendingLlm = flushSummaryLlmAggregate(true);
|
|
65091
|
+
if (pendingLlm) console.log(pendingLlm);
|
|
65092
|
+
const ts = (/* @__PURE__ */ new Date()).toLocaleTimeString();
|
|
65093
|
+
const exitCode = completeEvent.exit_code ?? 0;
|
|
65094
|
+
const icon = exitCode === 0 ? "+" : "!";
|
|
65095
|
+
console.log(`[${ts}] [${icon}] Completed (exit ${exitCode})`);
|
|
65096
|
+
if (showResult && completeEvent.result) {
|
|
65097
|
+
console.log("");
|
|
65098
|
+
console.log(completeEvent.result);
|
|
65099
|
+
}
|
|
64981
65100
|
} else {
|
|
64982
65101
|
console.log("[+] Completed");
|
|
64983
65102
|
if (showResult && completeEvent.result) {
|
|
@@ -64991,6 +65110,12 @@ function processSSEEvent(eventType, eventData, raw, showResult) {
|
|
|
64991
65110
|
const errorEvent = parsed;
|
|
64992
65111
|
if (raw) {
|
|
64993
65112
|
console.log(JSON.stringify(errorEvent));
|
|
65113
|
+
} else if (summary) {
|
|
65114
|
+
const pendingLlm = flushSummaryLlmAggregate(true);
|
|
65115
|
+
if (pendingLlm) console.log(pendingLlm);
|
|
65116
|
+
const ts = (/* @__PURE__ */ new Date()).toLocaleTimeString();
|
|
65117
|
+
const errMsg = errorEvent.error ? `: ${errorEvent.error}` : "";
|
|
65118
|
+
console.log(`[${ts}] [!] Error${errMsg}`);
|
|
64994
65119
|
} else {
|
|
64995
65120
|
console.log("[!] Error");
|
|
64996
65121
|
if (errorEvent.error) {
|
|
@@ -65110,6 +65235,134 @@ function formatFollowLogLine(event) {
|
|
|
65110
65235
|
}
|
|
65111
65236
|
}
|
|
65112
65237
|
}
|
|
65238
|
+
function formatFollowSummaryLine(event) {
|
|
65239
|
+
const line = event.line;
|
|
65240
|
+
const type = event.type || line.type || "log";
|
|
65241
|
+
const ts = new Date(event.timestamp).toLocaleTimeString();
|
|
65242
|
+
if (type.startsWith("lifecycle_")) {
|
|
65243
|
+
const content = line;
|
|
65244
|
+
const phase = content.phase || "unknown";
|
|
65245
|
+
const action = content.action || "unknown";
|
|
65246
|
+
const duration = content.duration_ms;
|
|
65247
|
+
const success = content.success;
|
|
65248
|
+
const error = content.error;
|
|
65249
|
+
const meta = content.meta || {};
|
|
65250
|
+
if (action === "start") {
|
|
65251
|
+
const detail = formatLifecycleMeta(phase, meta);
|
|
65252
|
+
return `[${ts}] >> ${phase}${detail}`;
|
|
65253
|
+
}
|
|
65254
|
+
if (action === "end") {
|
|
65255
|
+
const dur = duration ? ` (${duration}ms)` : "";
|
|
65256
|
+
if (success === false && error) {
|
|
65257
|
+
return `[${ts}] !! ${phase} failed${dur}: ${error}`;
|
|
65258
|
+
}
|
|
65259
|
+
return `[${ts}] ok ${phase}${dur}`;
|
|
65260
|
+
}
|
|
65261
|
+
return null;
|
|
65262
|
+
}
|
|
65263
|
+
if (type === "llm.call") {
|
|
65264
|
+
const call = line;
|
|
65265
|
+
const source = call.source === "managed" ? "managed" : "byok";
|
|
65266
|
+
const provider = call.provider || "unknown";
|
|
65267
|
+
const model = call.model || "unknown";
|
|
65268
|
+
const status = call.status || "ok";
|
|
65269
|
+
const usage = call.usage ?? {};
|
|
65270
|
+
const inputTokens = Number(usage.input_tokens) || 0;
|
|
65271
|
+
const outputTokens = Number(usage.output_tokens) || 0;
|
|
65272
|
+
const costs = calculateBilledCost({
|
|
65273
|
+
rate_card: DEFAULT_RATE_CARD_V1,
|
|
65274
|
+
llm_usage: [{
|
|
65275
|
+
provider,
|
|
65276
|
+
model,
|
|
65277
|
+
source,
|
|
65278
|
+
usage: {
|
|
65279
|
+
input_tokens: inputTokens,
|
|
65280
|
+
output_tokens: outputTokens,
|
|
65281
|
+
cache_read_tokens: Number(usage.cache_read_tokens) || 0,
|
|
65282
|
+
cache_write_tokens: Number(usage.cache_write_tokens) || 0,
|
|
65283
|
+
reasoning_tokens: Number(usage.reasoning_tokens) || 0
|
|
65284
|
+
}
|
|
65285
|
+
}],
|
|
65286
|
+
compute_usage: null,
|
|
65287
|
+
markup_pct: 0,
|
|
65288
|
+
billing_currency: "usd",
|
|
65289
|
+
fx_usd_to_billing: null
|
|
65290
|
+
});
|
|
65291
|
+
summaryLlmCallCount += 1;
|
|
65292
|
+
summaryLlmTotalInputTokens += inputTokens;
|
|
65293
|
+
summaryLlmTotalOutputTokens += outputTokens;
|
|
65294
|
+
summaryLlmTotalMicroUsd += parseFixed6Usd(costs.base_cost_usd.llm_usd.amount);
|
|
65295
|
+
if (status === "error") {
|
|
65296
|
+
return `[${ts}] !! LLM error (${provider}/${model})`;
|
|
65297
|
+
}
|
|
65298
|
+
return flushSummaryLlmAggregate(false);
|
|
65299
|
+
}
|
|
65300
|
+
const normalized = normalizeLogLine(line);
|
|
65301
|
+
const nType = normalized.type;
|
|
65302
|
+
if (nType === "tool_result") {
|
|
65303
|
+
const resultText = normalized.message || line.tool_result || "";
|
|
65304
|
+
if (resultText.includes("requires approval") || resultText.includes("permission denied")) {
|
|
65305
|
+
return `[${ts}] !! Permission rejected: ${resultText.substring(0, 120)}`;
|
|
65306
|
+
}
|
|
65307
|
+
}
|
|
65308
|
+
if (type === "event") {
|
|
65309
|
+
const rawLine = line.raw;
|
|
65310
|
+
const msg = rawLine?.message;
|
|
65311
|
+
const contentArr = msg?.content;
|
|
65312
|
+
if (Array.isArray(contentArr)) {
|
|
65313
|
+
for (const block of contentArr) {
|
|
65314
|
+
const b2 = block;
|
|
65315
|
+
if (b2.is_error && typeof b2.content === "string" && b2.content.includes("requires approval")) {
|
|
65316
|
+
return `[${ts}] !! Permission rejected: ${b2.content.substring(0, 120)}`;
|
|
65317
|
+
}
|
|
65318
|
+
}
|
|
65319
|
+
}
|
|
65320
|
+
}
|
|
65321
|
+
if (nType === "assistant" || nType === "text") {
|
|
65322
|
+
const text = normalized.message || line.message || line.text || "";
|
|
65323
|
+
const match = text.match(/```eve-message\n([\s\S]*?)```/);
|
|
65324
|
+
if (match) {
|
|
65325
|
+
return `[${ts}] -- ${match[1].trim()}`;
|
|
65326
|
+
}
|
|
65327
|
+
}
|
|
65328
|
+
if (nType === "tool_use") {
|
|
65329
|
+
const tool = normalized.tool || line.tool;
|
|
65330
|
+
if (tool) {
|
|
65331
|
+
summaryToolUseCount += 1;
|
|
65332
|
+
return `[${ts}] ${tool}`;
|
|
65333
|
+
}
|
|
65334
|
+
}
|
|
65335
|
+
if (nType === "error") {
|
|
65336
|
+
const errMsg = normalized.message || line.message || JSON.stringify(line);
|
|
65337
|
+
return `[${ts}] !! Error: ${errMsg}`;
|
|
65338
|
+
}
|
|
65339
|
+
return null;
|
|
65340
|
+
}
|
|
65341
|
+
function flushSummaryLlmAggregate(force) {
|
|
65342
|
+
const callsSinceLastEmit = summaryLlmCallCount - summaryLastLlmEmitCount;
|
|
65343
|
+
const msSinceLastEmit = Date.now() - summaryLastLlmEmitTime;
|
|
65344
|
+
if (callsSinceLastEmit === 0) return null;
|
|
65345
|
+
if (!force && callsSinceLastEmit < 10 && msSinceLastEmit < 3e4) return null;
|
|
65346
|
+
summaryLastLlmEmitCount = summaryLlmCallCount;
|
|
65347
|
+
summaryLastLlmEmitTime = Date.now();
|
|
65348
|
+
const ts = (/* @__PURE__ */ new Date()).toLocaleTimeString();
|
|
65349
|
+
return `[${ts}] LLM: ${summaryLlmCallCount} calls, ${formatNumber(summaryLlmTotalInputTokens)} in / ${formatNumber(summaryLlmTotalOutputTokens)} out (~$${formatFixed6Usd(summaryLlmTotalMicroUsd)})`;
|
|
65350
|
+
}
|
|
65351
|
+
function printSummaryFooter() {
|
|
65352
|
+
const pending = flushSummaryLlmAggregate(true);
|
|
65353
|
+
if (pending) console.log(pending);
|
|
65354
|
+
const elapsed = Math.round((Date.now() - summaryStartTime) / 1e3);
|
|
65355
|
+
const mins = Math.floor(elapsed / 60);
|
|
65356
|
+
const secs = elapsed % 60;
|
|
65357
|
+
const durStr = mins > 0 ? `${mins}m ${secs}s` : `${secs}s`;
|
|
65358
|
+
console.log("");
|
|
65359
|
+
console.log("--- Summary ---");
|
|
65360
|
+
console.log(`Duration: ${durStr}`);
|
|
65361
|
+
console.log(`LLM calls: ${summaryLlmCallCount}`);
|
|
65362
|
+
console.log(`Tokens: ${formatNumber(summaryLlmTotalInputTokens)} in / ${formatNumber(summaryLlmTotalOutputTokens)} out`);
|
|
65363
|
+
console.log(`Cost: ~$${formatFixed6Usd(summaryLlmTotalMicroUsd)}`);
|
|
65364
|
+
console.log(`Tool uses: ${summaryToolUseCount}`);
|
|
65365
|
+
}
|
|
65113
65366
|
function getStatusIcon(status) {
|
|
65114
65367
|
switch (status) {
|
|
65115
65368
|
case "pending":
|
|
@@ -67599,9 +67852,9 @@ function getOrchestratorUrl(context2) {
|
|
|
67599
67852
|
apiUrl.port = orchPort;
|
|
67600
67853
|
return apiUrl.toString().replace(/\/$/, "");
|
|
67601
67854
|
}
|
|
67602
|
-
async function requestOrchestratorJson(context2,
|
|
67855
|
+
async function requestOrchestratorJson(context2, path9, options) {
|
|
67603
67856
|
const orchUrl = getOrchestratorUrl(context2);
|
|
67604
|
-
const url = `${orchUrl}${
|
|
67857
|
+
const url = `${orchUrl}${path9}`;
|
|
67605
67858
|
const headers = {};
|
|
67606
67859
|
if (options?.body) {
|
|
67607
67860
|
headers["Content-Type"] = "application/json";
|
|
@@ -67857,6 +68110,8 @@ async function handleEnv(subcommand, positionals, flags, context2) {
|
|
|
67857
68110
|
return handleServices(positionals, flags, context2, json);
|
|
67858
68111
|
case "delete":
|
|
67859
68112
|
return handleDelete(positionals, flags, context2, json);
|
|
68113
|
+
case "undeploy":
|
|
68114
|
+
return handleUndeploy(positionals, flags, context2, json);
|
|
67860
68115
|
case "rollback":
|
|
67861
68116
|
return handleRollback(positionals, flags, context2, json);
|
|
67862
68117
|
case "reset":
|
|
@@ -67869,7 +68124,7 @@ async function handleEnv(subcommand, positionals, flags, context2) {
|
|
|
67869
68124
|
return handleResume(positionals, flags, context2, json);
|
|
67870
68125
|
default:
|
|
67871
68126
|
throw new Error(
|
|
67872
|
-
'Usage: eve env <list|show|create|deploy|logs|diagnose|services|delete|rollback|reset|recover|suspend|resume>\n list [project] - list environments for a project\n show <project> <name> - show details of an environment\n create <name> --type=<type> [options] - create an environment\n deploy <env> (--ref <sha>|--release-tag <tag>) [--direct] [--inputs <json>] [--repo-dir <path>] [--skip-preflight] - deploy to an environment\n logs <project> <env> <service> [--since <seconds>] [--tail <n>] [--grep <text>] - get service logs\n diagnose <project> <env> - diagnose deployment health and events\n services <project> <env> - show per-service pod status summary\n delete <name> [--project=<id>] [--force] [--danger-delete-production] - delete an environment\n rollback <env> --release <id|tag|previous> [--project=<id>] [--skip-preflight] - rollback to a release\n reset <env> [--release <id|tag|previous>] [--project=<id>] [--force] [--danger-reset-production] [--skip-preflight] - teardown and redeploy\n recover <project> <env> - analyze environment and suggest recovery action\n suspend <project> <env> --reason "..." - suspend an environment\n resume <project> <env> - resume a suspended environment'
|
|
68127
|
+
'Usage: eve env <list|show|create|deploy|undeploy|logs|diagnose|services|delete|rollback|reset|recover|suspend|resume>\n list [project] - list environments for a project\n show <project> <name> - show details of an environment\n create <name> --type=<type> [options] - create an environment\n deploy <env> (--ref <sha>|--release-tag <tag>) [--direct] [--inputs <json>] [--repo-dir <path>] [--skip-preflight] - deploy to an environment\n undeploy <env> [--project=<id>] [--force] - tear down K8s resources, keep environment config\n logs <project> <env> <service> [--since <seconds>] [--tail <n>] [--grep <text>] - get service logs\n diagnose <project> <env> - diagnose deployment health and events\n services <project> <env> - show per-service pod status summary\n delete <name> [--project=<id>] [--force] [--danger-delete-production] - delete an environment\n rollback <env> --release <id|tag|previous> [--project=<id>] [--skip-preflight] - rollback to a release\n reset <env> [--release <id|tag|previous>] [--project=<id>] [--force] [--danger-reset-production] [--skip-preflight] - teardown and redeploy\n recover <project> <env> - analyze environment and suggest recovery action\n suspend <project> <env> --reason "..." - suspend an environment\n resume <project> <env> - resume a suspended environment'
|
|
67873
68128
|
);
|
|
67874
68129
|
}
|
|
67875
68130
|
}
|
|
@@ -68283,6 +68538,31 @@ async function handleDelete(positionals, flags, context2, json) {
|
|
|
68283
68538
|
}
|
|
68284
68539
|
}
|
|
68285
68540
|
}
|
|
68541
|
+
async function handleUndeploy(positionals, flags, context2, json) {
|
|
68542
|
+
const projectId = getStringFlag(flags, ["project"]) ?? context2.projectId;
|
|
68543
|
+
const envName = positionals[0] ?? getStringFlag(flags, ["name", "env"]);
|
|
68544
|
+
const force = Boolean(flags.force);
|
|
68545
|
+
if (!projectId || !envName) {
|
|
68546
|
+
throw new Error("Usage: eve env undeploy <env> [--project=<id>] [--force]");
|
|
68547
|
+
}
|
|
68548
|
+
const body = {};
|
|
68549
|
+
if (force) {
|
|
68550
|
+
body.force = true;
|
|
68551
|
+
}
|
|
68552
|
+
const response = await requestJson(
|
|
68553
|
+
context2,
|
|
68554
|
+
`/projects/${projectId}/envs/${envName}/undeploy`,
|
|
68555
|
+
{
|
|
68556
|
+
method: "POST",
|
|
68557
|
+
body
|
|
68558
|
+
}
|
|
68559
|
+
);
|
|
68560
|
+
if (json) {
|
|
68561
|
+
outputJson(response, json);
|
|
68562
|
+
} else {
|
|
68563
|
+
console.log(`\u2713 Environment "${envName}" undeployed. Redeploy with: eve env deploy ${envName} --project ${projectId} ...`);
|
|
68564
|
+
}
|
|
68565
|
+
}
|
|
68286
68566
|
async function handleRollback(positionals, flags, context2, json) {
|
|
68287
68567
|
const projectId = getStringFlag(flags, ["project"]) ?? context2.projectId;
|
|
68288
68568
|
const envName = positionals[0] ?? getStringFlag(flags, ["name", "env"]);
|
|
@@ -68781,9 +69061,23 @@ async function handlePipeline(subcommand, positionals, flags, context2) {
|
|
|
68781
69061
|
return handleCancel2(positionals, flags, context2, json);
|
|
68782
69062
|
case "logs":
|
|
68783
69063
|
return handleLogs4(positionals, flags, context2, json);
|
|
69064
|
+
case "delete": {
|
|
69065
|
+
const name = positionals[0] ?? getStringFlag(flags, ["name"]);
|
|
69066
|
+
const projectId = getStringFlag(flags, ["project"]) ?? context2.projectId;
|
|
69067
|
+
if (!name || !projectId) {
|
|
69068
|
+
throw new Error("Usage: eve pipeline delete <name> [--project <id>]");
|
|
69069
|
+
}
|
|
69070
|
+
await requestRaw(
|
|
69071
|
+
context2,
|
|
69072
|
+
`/projects/${projectId}/pipelines/${encodeURIComponent(name)}`,
|
|
69073
|
+
{ method: "DELETE" }
|
|
69074
|
+
);
|
|
69075
|
+
outputJson({ name, deleted: true }, json, `Pipeline ${name} runs deleted`);
|
|
69076
|
+
return;
|
|
69077
|
+
}
|
|
68784
69078
|
default:
|
|
68785
69079
|
throw new Error(
|
|
68786
|
-
"Usage: eve pipeline <list|show|run|runs|show-run|approve|cancel|logs>\n list [project] - list pipelines for a project\n show <project> <name> - show pipeline definition\n run <name> --ref <sha> - create and run a new pipeline\n Options: --env, --inputs <json>, --only <step>\n runs [project] - list recent pipeline runs\n Options: --limit, --status, --name <pipeline>\n show-run <pipeline> <run-id> - show pipeline run status and steps\n approve <run-id> - approve a blocked pipeline run\n cancel <run-id> [--reason <text>] - cancel pipeline run\n logs <pipeline> <run-id> [--step <name>] - show logs for pipeline run\n Options: --follow (-f) stream live"
|
|
69080
|
+
"Usage: eve pipeline <list|show|run|runs|show-run|approve|cancel|logs|delete>\n list [project] - list pipelines for a project\n show <project> <name> - show pipeline definition\n run <name> --ref <sha> - create and run a new pipeline\n Options: --env, --inputs <json>, --only <step>\n runs [project] - list recent pipeline runs\n Options: --limit, --status, --name <pipeline>\n show-run <pipeline> <run-id> - show pipeline run status and steps\n approve <run-id> - approve a blocked pipeline run\n cancel <run-id> [--reason <text>] - cancel pipeline run\n logs <pipeline> <run-id> [--step <name>] - show logs for pipeline run\n Options: --follow (-f) stream live\n delete <name> [--project <id>] - delete all pipeline runs"
|
|
68787
69081
|
);
|
|
68788
69082
|
}
|
|
68789
69083
|
}
|
|
@@ -69840,13 +70134,13 @@ async function handleCall(positionals, flags, context2) {
|
|
|
69840
70134
|
const body = graphqlBody ?? jsonBody;
|
|
69841
70135
|
const method = methodInput.toUpperCase();
|
|
69842
70136
|
const resolvedBaseUrl = resolveApiBaseUrlForRuntime(api.base_url, context2.apiUrl);
|
|
69843
|
-
const
|
|
70137
|
+
const path9 = resolveApiPath(resolvedBaseUrl, pathInput);
|
|
69844
70138
|
const tokenOverride = getStringFlag(flags, ["token"]);
|
|
69845
70139
|
const authToken = tokenOverride ?? process.env.EVE_JOB_TOKEN ?? context2.token;
|
|
69846
70140
|
if (printCurl) {
|
|
69847
70141
|
const curl = buildCurlCommand({
|
|
69848
70142
|
method,
|
|
69849
|
-
url:
|
|
70143
|
+
url: path9,
|
|
69850
70144
|
authToken,
|
|
69851
70145
|
jsonBody: body,
|
|
69852
70146
|
authHint: tokenOverride ? "override" : process.env.EVE_JOB_TOKEN ? "job" : "user"
|
|
@@ -69854,7 +70148,7 @@ async function handleCall(positionals, flags, context2) {
|
|
|
69854
70148
|
console.log(curl);
|
|
69855
70149
|
return;
|
|
69856
70150
|
}
|
|
69857
|
-
const response = await fetch(
|
|
70151
|
+
const response = await fetch(path9, {
|
|
69858
70152
|
method,
|
|
69859
70153
|
headers: buildApiHeaders(authToken, body),
|
|
69860
70154
|
body: body ? JSON.stringify(body) : void 0
|
|
@@ -69950,7 +70244,7 @@ async function fetchApiSpec(context2, projectId, name, env) {
|
|
|
69950
70244
|
function buildCurlExamples(api, spec) {
|
|
69951
70245
|
const paths = spec.paths ?? {};
|
|
69952
70246
|
const examples = [];
|
|
69953
|
-
Object.entries(paths).forEach(([
|
|
70247
|
+
Object.entries(paths).forEach(([path9, methods]) => {
|
|
69954
70248
|
Object.entries(methods).forEach(([method, operation]) => {
|
|
69955
70249
|
const lower = method.toLowerCase();
|
|
69956
70250
|
if (!["get", "post", "put", "patch", "delete"].includes(lower)) {
|
|
@@ -69961,7 +70255,7 @@ function buildCurlExamples(api, spec) {
|
|
|
69961
70255
|
const needsBody = ["post", "put", "patch"].includes(lower);
|
|
69962
70256
|
const curl = buildCurlCommand({
|
|
69963
70257
|
method: lower.toUpperCase(),
|
|
69964
|
-
url: resolveApiPath(api.base_url,
|
|
70258
|
+
url: resolveApiPath(api.base_url, path9),
|
|
69965
70259
|
authToken: api.auth_mode === "eve" ? "$EVE_JOB_TOKEN" : void 0,
|
|
69966
70260
|
jsonBody: needsBody ? examplePayload ?? {} : void 0,
|
|
69967
70261
|
authHint: "job"
|
|
@@ -69983,15 +70277,15 @@ function extractExamplePayload(requestBody) {
|
|
|
69983
70277
|
if (examples.length === 0) return void 0;
|
|
69984
70278
|
return examples[0]?.value;
|
|
69985
70279
|
}
|
|
69986
|
-
function resolveApiPath(baseUrl,
|
|
69987
|
-
if (
|
|
69988
|
-
return
|
|
70280
|
+
function resolveApiPath(baseUrl, path9) {
|
|
70281
|
+
if (path9.startsWith("http://") || path9.startsWith("https://")) {
|
|
70282
|
+
return path9;
|
|
69989
70283
|
}
|
|
69990
70284
|
if (!baseUrl) {
|
|
69991
|
-
return
|
|
70285
|
+
return path9;
|
|
69992
70286
|
}
|
|
69993
70287
|
const trimmedBase = baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
|
|
69994
|
-
const trimmedPath =
|
|
70288
|
+
const trimmedPath = path9.startsWith("/") ? path9 : `/${path9}`;
|
|
69995
70289
|
return `${trimmedBase}${trimmedPath}`;
|
|
69996
70290
|
}
|
|
69997
70291
|
function resolveApiBaseUrlForRuntime(baseUrl, eveApiUrl) {
|
|
@@ -71720,13 +72014,13 @@ function Subscribe(postgres2, options) {
|
|
|
71720
72014
|
}
|
|
71721
72015
|
}
|
|
71722
72016
|
function handle(a, b2) {
|
|
71723
|
-
const
|
|
72017
|
+
const path9 = b2.relation.schema + "." + b2.relation.table;
|
|
71724
72018
|
call("*", a, b2);
|
|
71725
|
-
call("*:" +
|
|
71726
|
-
b2.relation.keys.length && call("*:" +
|
|
72019
|
+
call("*:" + path9, a, b2);
|
|
72020
|
+
b2.relation.keys.length && call("*:" + path9 + "=" + b2.relation.keys.map((x2) => a[x2.name]), a, b2);
|
|
71727
72021
|
call(b2.command, a, b2);
|
|
71728
|
-
call(b2.command + ":" +
|
|
71729
|
-
b2.relation.keys.length && call(b2.command + ":" +
|
|
72022
|
+
call(b2.command + ":" + path9, a, b2);
|
|
72023
|
+
b2.relation.keys.length && call(b2.command + ":" + path9 + "=" + b2.relation.keys.map((x2) => a[x2.name]), a, b2);
|
|
71730
72024
|
}
|
|
71731
72025
|
function pong() {
|
|
71732
72026
|
const x2 = Buffer.alloc(34);
|
|
@@ -71839,8 +72133,8 @@ function parseEvent(x) {
|
|
|
71839
72133
|
const xs = x.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i) || [];
|
|
71840
72134
|
if (!xs)
|
|
71841
72135
|
throw new Error("Malformed subscribe pattern: " + x);
|
|
71842
|
-
const [, command,
|
|
71843
|
-
return (command || "*") + (
|
|
72136
|
+
const [, command, path9, key] = xs;
|
|
72137
|
+
return (command || "*") + (path9 ? ":" + (path9.indexOf(".") === -1 ? "public." + path9 : path9) : "") + (key ? "=" + key : "");
|
|
71844
72138
|
}
|
|
71845
72139
|
|
|
71846
72140
|
// ../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/large.js
|
|
@@ -71985,10 +72279,10 @@ function Postgres(a, b2) {
|
|
|
71985
72279
|
});
|
|
71986
72280
|
return query;
|
|
71987
72281
|
}
|
|
71988
|
-
function file(
|
|
72282
|
+
function file(path9, args = [], options2 = {}) {
|
|
71989
72283
|
arguments.length === 2 && !Array.isArray(args) && (options2 = args, args = []);
|
|
71990
72284
|
const query = new Query([], args, (query2) => {
|
|
71991
|
-
import_fs2.default.readFile(
|
|
72285
|
+
import_fs2.default.readFile(path9, "utf8", (err, string) => {
|
|
71992
72286
|
if (err)
|
|
71993
72287
|
return query2.reject(err);
|
|
71994
72288
|
query2.strings = [string];
|
|
@@ -73480,11 +73774,13 @@ function formatEventsTable(events) {
|
|
|
73480
73774
|
const typeWidth = Math.max(4, ...events.map((e) => e.type.length));
|
|
73481
73775
|
const sourceWidth = Math.max(6, ...events.map((e) => e.source.length));
|
|
73482
73776
|
const statusWidth = Math.max(6, ...events.map((e) => e.status.length));
|
|
73777
|
+
const jobIdWidth = Math.max(6, ...events.map((e) => (e.job_id || "-").length));
|
|
73483
73778
|
const header = [
|
|
73484
73779
|
padRight6("ID", idWidth),
|
|
73485
73780
|
padRight6("Type", typeWidth),
|
|
73486
73781
|
padRight6("Source", sourceWidth),
|
|
73487
73782
|
padRight6("Status", statusWidth),
|
|
73783
|
+
padRight6("Job ID", jobIdWidth),
|
|
73488
73784
|
padRight6("Env", 12),
|
|
73489
73785
|
padRight6("Branch", 20),
|
|
73490
73786
|
"Created"
|
|
@@ -73497,6 +73793,7 @@ function formatEventsTable(events) {
|
|
|
73497
73793
|
padRight6(event.type, typeWidth),
|
|
73498
73794
|
padRight6(event.source, sourceWidth),
|
|
73499
73795
|
padRight6(event.status, statusWidth),
|
|
73796
|
+
padRight6(event.job_id || "-", jobIdWidth),
|
|
73500
73797
|
padRight6(event.env_name || "-", 12),
|
|
73501
73798
|
padRight6(event.ref_branch || "-", 20),
|
|
73502
73799
|
formatDate3(event.created_at)
|
|
@@ -73531,6 +73828,9 @@ function formatEventDetails(event) {
|
|
|
73531
73828
|
if (event.dedupe_key) {
|
|
73532
73829
|
console.log(` Dedupe Key: ${event.dedupe_key}`);
|
|
73533
73830
|
}
|
|
73831
|
+
if (event.job_id) {
|
|
73832
|
+
console.log(` Job ID: ${event.job_id}`);
|
|
73833
|
+
}
|
|
73534
73834
|
if (event.payload_json && Object.keys(event.payload_json).length > 0) {
|
|
73535
73835
|
console.log("");
|
|
73536
73836
|
console.log(" Payload:");
|
|
@@ -73558,10 +73858,10 @@ function padRight6(str, width) {
|
|
|
73558
73858
|
|
|
73559
73859
|
// src/commands/skills.ts
|
|
73560
73860
|
var fs4 = __toESM(require("node:fs"));
|
|
73561
|
-
var
|
|
73861
|
+
var path7 = __toESM(require("node:path"));
|
|
73562
73862
|
var import_node_child_process7 = require("node:child_process");
|
|
73563
73863
|
var yaml = __toESM(require("yaml"));
|
|
73564
|
-
var UNIVERSAL_SKILLS_DIR =
|
|
73864
|
+
var UNIVERSAL_SKILLS_DIR = path7.join(".agents", "skills");
|
|
73565
73865
|
var PRIVATE_SKILLS_DIRNAME = "private-skills";
|
|
73566
73866
|
async function handleSkills(subcommand, positionals, flags) {
|
|
73567
73867
|
switch (subcommand) {
|
|
@@ -73577,8 +73877,8 @@ async function handleInstall(positionals, flags) {
|
|
|
73577
73877
|
const skipInstalled = Boolean(flags["skip-installed"]);
|
|
73578
73878
|
const projectRoot = process.cwd();
|
|
73579
73879
|
const skillsBin = resolveSkillsBinary();
|
|
73580
|
-
const manifestPath =
|
|
73581
|
-
const skillsDir =
|
|
73880
|
+
const manifestPath = path7.join(projectRoot, "skills.txt");
|
|
73881
|
+
const skillsDir = path7.join(projectRoot, UNIVERSAL_SKILLS_DIR);
|
|
73582
73882
|
const source = positionals[0];
|
|
73583
73883
|
if (source) {
|
|
73584
73884
|
const parsed = parseSkillSource(source);
|
|
@@ -73625,7 +73925,7 @@ function installSkill(skillsBin, skill, projectRoot) {
|
|
|
73625
73925
|
const label = excludePrivate ? ` (excluding ${PRIVATE_SKILLS_DIRNAME}/)` : "";
|
|
73626
73926
|
console.log(` Installing ${skillDirs.length} skill(s)${label}...`);
|
|
73627
73927
|
for (const dir of skillDirs) {
|
|
73628
|
-
const rel =
|
|
73928
|
+
const rel = path7.relative(projectRoot, dir);
|
|
73629
73929
|
const installSource = rel.startsWith(".") ? rel : `./${rel}`;
|
|
73630
73930
|
for (const agent of agents) {
|
|
73631
73931
|
(0, import_node_child_process7.execSync)(`${skillsBin} add ${JSON.stringify(installSource)} -a ${agent} -s '*' -y --full-depth`, {
|
|
@@ -73651,7 +73951,7 @@ function installSkill(skillsBin, skill, projectRoot) {
|
|
|
73651
73951
|
}
|
|
73652
73952
|
var DEFAULT_AGENTS = ["claude-code", "codex", "gemini-cli", "pi"];
|
|
73653
73953
|
function installPackSkills(skillsBin, projectRoot) {
|
|
73654
|
-
const manifestPath =
|
|
73954
|
+
const manifestPath = path7.join(projectRoot, ".eve", "manifest.yaml");
|
|
73655
73955
|
if (!fs4.existsSync(manifestPath)) return false;
|
|
73656
73956
|
let manifest;
|
|
73657
73957
|
try {
|
|
@@ -73663,7 +73963,7 @@ function installPackSkills(skillsBin, projectRoot) {
|
|
|
73663
73963
|
const packs = xEve?.packs ?? [];
|
|
73664
73964
|
if (packs.length === 0) return false;
|
|
73665
73965
|
const installAgents = xEve?.install_agents ?? DEFAULT_AGENTS;
|
|
73666
|
-
const lockfilePath =
|
|
73966
|
+
const lockfilePath = path7.join(projectRoot, ".eve", "packs.lock.yaml");
|
|
73667
73967
|
if (!fs4.existsSync(lockfilePath)) {
|
|
73668
73968
|
console.error('Warning: packs defined in manifest but no .eve/packs.lock.yaml found. Run "eve agents sync" first.');
|
|
73669
73969
|
return false;
|
|
@@ -73691,14 +73991,14 @@ function installPackSkills(skillsBin, projectRoot) {
|
|
|
73691
73991
|
for (const pack of packs) {
|
|
73692
73992
|
const agents = pack.install_agents ?? installAgents;
|
|
73693
73993
|
console.log(` Pack: ${pack.source}`);
|
|
73694
|
-
const localDir = resolveLocalDirIfExists({ source: pack.source, type: "local", raw: pack.source, name:
|
|
73994
|
+
const localDir = resolveLocalDirIfExists({ source: pack.source, type: "local", raw: pack.source, name: path7.basename(pack.source) }, projectRoot);
|
|
73695
73995
|
const wantsExcludePrivate = localDir !== null && !sourcePathExplicitlyTargetsPrivate(pack.source);
|
|
73696
73996
|
for (const agent of agents) {
|
|
73697
73997
|
try {
|
|
73698
73998
|
if (wantsExcludePrivate && localDir) {
|
|
73699
73999
|
const skillDirs = findSkillDirs(localDir, { fullDepth: true, excludePrivate: true });
|
|
73700
74000
|
for (const dir of skillDirs) {
|
|
73701
|
-
const rel =
|
|
74001
|
+
const rel = path7.relative(projectRoot, dir);
|
|
73702
74002
|
const installSource = rel.startsWith(".") ? rel : `./${rel}`;
|
|
73703
74003
|
(0, import_node_child_process7.execSync)(`${skillsBin} add ${JSON.stringify(installSource)} -a ${agent} -s '*' -y --full-depth`, {
|
|
73704
74004
|
cwd: projectRoot,
|
|
@@ -73738,8 +74038,8 @@ ${source}
|
|
|
73738
74038
|
}
|
|
73739
74039
|
function resolveSkillsBinary() {
|
|
73740
74040
|
const candidates = [
|
|
73741
|
-
|
|
73742
|
-
|
|
74041
|
+
path7.resolve(__dirname, "..", "node_modules", ".bin", "skills"),
|
|
74042
|
+
path7.resolve(__dirname, "..", "..", ".bin", "skills")
|
|
73743
74043
|
];
|
|
73744
74044
|
for (const candidate of candidates) {
|
|
73745
74045
|
if (fs4.existsSync(candidate)) return candidate;
|
|
@@ -73766,13 +74066,13 @@ function expandGlobPattern(pattern, basePath, explicitPrivateTarget) {
|
|
|
73766
74066
|
const basePattern = pattern.replace(/\/\*+$/, "");
|
|
73767
74067
|
let searchRoot;
|
|
73768
74068
|
if (basePattern.startsWith("./") || basePattern.startsWith("../")) {
|
|
73769
|
-
searchRoot =
|
|
74069
|
+
searchRoot = path7.resolve(path7.dirname(basePath), basePattern);
|
|
73770
74070
|
} else if (basePattern.startsWith("/")) {
|
|
73771
74071
|
searchRoot = basePattern;
|
|
73772
74072
|
} else if (basePattern.startsWith("~")) {
|
|
73773
74073
|
searchRoot = basePattern.replace(/^~/, process.env.HOME || "~");
|
|
73774
74074
|
} else {
|
|
73775
|
-
searchRoot =
|
|
74075
|
+
searchRoot = path7.resolve(path7.dirname(basePath), basePattern);
|
|
73776
74076
|
}
|
|
73777
74077
|
if (!fs4.existsSync(searchRoot)) {
|
|
73778
74078
|
console.warn(`Warning: Glob pattern base directory not found: ${searchRoot}`);
|
|
@@ -73788,11 +74088,11 @@ function expandGlobPattern(pattern, basePath, explicitPrivateTarget) {
|
|
|
73788
74088
|
if (!explicitPrivateTarget && entry.name === PRIVATE_SKILLS_DIRNAME) {
|
|
73789
74089
|
continue;
|
|
73790
74090
|
}
|
|
73791
|
-
const fullPath =
|
|
73792
|
-
const skillMdPath =
|
|
74091
|
+
const fullPath = path7.join(dir, entry.name);
|
|
74092
|
+
const skillMdPath = path7.join(fullPath, "SKILL.md");
|
|
73793
74093
|
if (fs4.existsSync(skillMdPath)) {
|
|
73794
74094
|
const name = entry.name;
|
|
73795
|
-
const relativePath =
|
|
74095
|
+
const relativePath = path7.relative(path7.dirname(basePath), fullPath);
|
|
73796
74096
|
const source = relativePath.startsWith(".") ? relativePath : `./${relativePath}`;
|
|
73797
74097
|
if (!explicitPrivateTarget && pathContainsPrivateSkills(source)) {
|
|
73798
74098
|
continue;
|
|
@@ -73821,7 +74121,7 @@ function parseSkillsManifest(manifestPath) {
|
|
|
73821
74121
|
}
|
|
73822
74122
|
const content = fs4.readFileSync(manifestPath, "utf-8");
|
|
73823
74123
|
const sources = [];
|
|
73824
|
-
const manifestDir =
|
|
74124
|
+
const manifestDir = path7.dirname(manifestPath);
|
|
73825
74125
|
for (const rawLine of content.split("\n")) {
|
|
73826
74126
|
const line = rawLine.split("#")[0].trim();
|
|
73827
74127
|
if (!line) continue;
|
|
@@ -73848,19 +74148,19 @@ function tryExpandLocalDirectory(skill, manifestDir) {
|
|
|
73848
74148
|
if (source.startsWith("~")) {
|
|
73849
74149
|
source = source.replace(/^~/, process.env.HOME || "~");
|
|
73850
74150
|
}
|
|
73851
|
-
const abs =
|
|
74151
|
+
const abs = path7.isAbsolute(source) ? source : path7.resolve(manifestDir, source);
|
|
73852
74152
|
try {
|
|
73853
74153
|
if (!fs4.existsSync(abs) || !fs4.statSync(abs).isDirectory()) return null;
|
|
73854
74154
|
} catch {
|
|
73855
74155
|
return null;
|
|
73856
74156
|
}
|
|
73857
|
-
if (fs4.existsSync(
|
|
74157
|
+
if (fs4.existsSync(path7.join(abs, "SKILL.md"))) return null;
|
|
73858
74158
|
const explicitPrivate = sourcePathExplicitlyTargetsPrivate(skill.source);
|
|
73859
74159
|
const skillDirs = findSkillDirs(abs, { fullDepth: true, excludePrivate: !explicitPrivate });
|
|
73860
74160
|
if (skillDirs.length === 0) return null;
|
|
73861
74161
|
return skillDirs.map((dir) => {
|
|
73862
|
-
const name =
|
|
73863
|
-
const relativePath =
|
|
74162
|
+
const name = path7.basename(dir);
|
|
74163
|
+
const relativePath = path7.relative(manifestDir, dir);
|
|
73864
74164
|
const resolvedSource = relativePath.startsWith(".") ? relativePath : `./${relativePath}`;
|
|
73865
74165
|
return {
|
|
73866
74166
|
raw: skill.raw,
|
|
@@ -73881,22 +74181,22 @@ function parseSkillSource(line) {
|
|
|
73881
74181
|
return { raw: line, source: line, type: "github", name: name2 };
|
|
73882
74182
|
}
|
|
73883
74183
|
if (line.startsWith("/") || line.startsWith("~")) {
|
|
73884
|
-
const name2 =
|
|
74184
|
+
const name2 = path7.basename(line);
|
|
73885
74185
|
return { raw: line, source: line, type: "local", name: name2 };
|
|
73886
74186
|
}
|
|
73887
74187
|
if (line.startsWith("./") || line.startsWith("../")) {
|
|
73888
|
-
const name2 =
|
|
74188
|
+
const name2 = path7.basename(line);
|
|
73889
74189
|
return { raw: line, source: line, type: "local", name: name2 };
|
|
73890
74190
|
}
|
|
73891
74191
|
if (fs4.existsSync(line)) {
|
|
73892
|
-
const name2 =
|
|
74192
|
+
const name2 = path7.basename(line);
|
|
73893
74193
|
return { raw: line, source: `./${line}`, type: "local", name: name2 };
|
|
73894
74194
|
}
|
|
73895
74195
|
if (line.includes("/") && !line.includes(" ")) {
|
|
73896
74196
|
const name2 = extractNameFromRepo(line);
|
|
73897
74197
|
return { raw: line, source: line, type: "github", name: name2 };
|
|
73898
74198
|
}
|
|
73899
|
-
const name =
|
|
74199
|
+
const name = path7.basename(line);
|
|
73900
74200
|
return { raw: line, source: `./${line}`, type: "local", name };
|
|
73901
74201
|
}
|
|
73902
74202
|
function extractNameFromUrl(url) {
|
|
@@ -73904,7 +74204,7 @@ function extractNameFromUrl(url) {
|
|
|
73904
74204
|
if (match) {
|
|
73905
74205
|
return match[1].replace(/\.git$/, "");
|
|
73906
74206
|
}
|
|
73907
|
-
return
|
|
74207
|
+
return path7.basename(new URL(url).pathname).replace(/\.git$/, "");
|
|
73908
74208
|
}
|
|
73909
74209
|
function extractNameFromRepo(repo) {
|
|
73910
74210
|
const parts = repo.split("/");
|
|
@@ -73924,9 +74224,9 @@ function getInstalledSkills(skillsDir) {
|
|
|
73924
74224
|
return installed;
|
|
73925
74225
|
}
|
|
73926
74226
|
function ensureSkillsSymlink(projectRoot) {
|
|
73927
|
-
const agentSkills =
|
|
73928
|
-
const claudeDir =
|
|
73929
|
-
const claudeSkills =
|
|
74227
|
+
const agentSkills = path7.join(projectRoot, UNIVERSAL_SKILLS_DIR);
|
|
74228
|
+
const claudeDir = path7.join(projectRoot, ".claude");
|
|
74229
|
+
const claudeSkills = path7.join(claudeDir, "skills");
|
|
73930
74230
|
if (!fs4.existsSync(agentSkills)) {
|
|
73931
74231
|
fs4.mkdirSync(agentSkills, { recursive: true });
|
|
73932
74232
|
}
|
|
@@ -73940,9 +74240,9 @@ function ensureSkillsSymlink(projectRoot) {
|
|
|
73940
74240
|
const entries = fs4.readdirSync(agentSkills, { withFileTypes: true });
|
|
73941
74241
|
for (const entry of entries) {
|
|
73942
74242
|
if (!entry.isDirectory() || entry.name.startsWith(".")) continue;
|
|
73943
|
-
const dst =
|
|
74243
|
+
const dst = path7.join(claudeSkills, entry.name);
|
|
73944
74244
|
if (fs4.existsSync(dst)) continue;
|
|
73945
|
-
fs4.symlinkSync(
|
|
74245
|
+
fs4.symlinkSync(path7.join("..", "..", UNIVERSAL_SKILLS_DIR, entry.name), dst);
|
|
73946
74246
|
}
|
|
73947
74247
|
}
|
|
73948
74248
|
} catch {
|
|
@@ -73975,7 +74275,7 @@ function resolveLocalDirIfExists(skill, projectRoot) {
|
|
|
73975
74275
|
if (source.startsWith("~")) {
|
|
73976
74276
|
source = source.replace(/^~/, process.env.HOME || "~");
|
|
73977
74277
|
}
|
|
73978
|
-
const abs =
|
|
74278
|
+
const abs = path7.isAbsolute(source) ? source : path7.resolve(projectRoot, source);
|
|
73979
74279
|
try {
|
|
73980
74280
|
if (!fs4.existsSync(abs)) return null;
|
|
73981
74281
|
if (!fs4.statSync(abs).isDirectory()) return null;
|
|
@@ -73988,7 +74288,7 @@ function sourcePathExplicitlyTargetsPrivate(source) {
|
|
|
73988
74288
|
return pathContainsPrivateSkills(source);
|
|
73989
74289
|
}
|
|
73990
74290
|
function pathContainsPrivateSkills(source) {
|
|
73991
|
-
const normalized =
|
|
74291
|
+
const normalized = path7.normalize(source).replace(/\\/g, "/");
|
|
73992
74292
|
const segments = normalized.split("/").filter(Boolean);
|
|
73993
74293
|
return segments.includes(PRIVATE_SKILLS_DIRNAME);
|
|
73994
74294
|
}
|
|
@@ -74016,7 +74316,7 @@ function findSkillDirs(rootDir, opts) {
|
|
|
74016
74316
|
for (const entry of entries) {
|
|
74017
74317
|
if (!entry.isDirectory()) continue;
|
|
74018
74318
|
if (shouldSkipDir(dir, entry.name)) continue;
|
|
74019
|
-
walk(
|
|
74319
|
+
walk(path7.join(dir, entry.name));
|
|
74020
74320
|
}
|
|
74021
74321
|
};
|
|
74022
74322
|
walk(rootDir);
|
|
@@ -74312,8 +74612,8 @@ async function handleAdmin(subcommand, positionals, flags, context2) {
|
|
|
74312
74612
|
if (untilRaw) params.set("until", untilRaw);
|
|
74313
74613
|
if (limit) params.set("limit", limit);
|
|
74314
74614
|
const qs = params.toString();
|
|
74315
|
-
const
|
|
74316
|
-
const response = await requestJson(context2,
|
|
74615
|
+
const path9 = `/admin/orgs/${orgId}/balance/transactions${qs ? `?${qs}` : ""}`;
|
|
74616
|
+
const response = await requestJson(context2, path9);
|
|
74317
74617
|
if (json) {
|
|
74318
74618
|
outputJson(response, true);
|
|
74319
74619
|
} else {
|
|
@@ -74351,8 +74651,8 @@ ${response.length} transaction(s)`);
|
|
|
74351
74651
|
if (untilRaw) params.set("until", untilRaw);
|
|
74352
74652
|
if (limit) params.set("limit", limit);
|
|
74353
74653
|
const qs = params.toString();
|
|
74354
|
-
const
|
|
74355
|
-
const response = await requestJson(context2,
|
|
74654
|
+
const path9 = `/admin/orgs/${orgId}/usage${qs ? `?${qs}` : ""}`;
|
|
74655
|
+
const response = await requestJson(context2, path9);
|
|
74356
74656
|
if (json) {
|
|
74357
74657
|
outputJson(response, true);
|
|
74358
74658
|
} else {
|
|
@@ -74376,8 +74676,8 @@ ${response.length} record(s)`);
|
|
|
74376
74676
|
if (sinceRaw) params.set("since", parseSinceValue4(sinceRaw));
|
|
74377
74677
|
if (untilRaw) params.set("until", untilRaw);
|
|
74378
74678
|
const qs = params.toString();
|
|
74379
|
-
const
|
|
74380
|
-
const response = await requestJson(context2,
|
|
74679
|
+
const path9 = `/admin/orgs/${orgId}/usage/summary${qs ? `?${qs}` : ""}`;
|
|
74680
|
+
const response = await requestJson(context2, path9);
|
|
74381
74681
|
if (json) {
|
|
74382
74682
|
outputJson(response, true);
|
|
74383
74683
|
} else {
|
|
@@ -74413,8 +74713,8 @@ ${response.length} record(s)`);
|
|
|
74413
74713
|
if (limit) params.set("limit", limit);
|
|
74414
74714
|
if (offset) params.set("offset", offset);
|
|
74415
74715
|
const query = params.toString();
|
|
74416
|
-
const
|
|
74417
|
-
const response = await requestJson(context2,
|
|
74716
|
+
const path9 = `/admin/ingress-aliases${query ? `?${query}` : ""}`;
|
|
74717
|
+
const response = await requestJson(context2, path9);
|
|
74418
74718
|
if (json) {
|
|
74419
74719
|
outputJson(response, true);
|
|
74420
74720
|
return;
|
|
@@ -74665,11 +74965,11 @@ function resolveAgentsConfigPaths(repoRoot, manifest) {
|
|
|
74665
74965
|
function pickString(value) {
|
|
74666
74966
|
return typeof value === "string" && value.trim().length > 0 ? value : void 0;
|
|
74667
74967
|
}
|
|
74668
|
-
function ensureFileExists(
|
|
74669
|
-
if (!(0, import_node_fs11.existsSync)(
|
|
74670
|
-
throw new Error(`Missing ${label} at ${
|
|
74968
|
+
function ensureFileExists(path9, label) {
|
|
74969
|
+
if (!(0, import_node_fs11.existsSync)(path9)) {
|
|
74970
|
+
throw new Error(`Missing ${label} at ${path9}. Update manifest config_path or add the file.`);
|
|
74671
74971
|
}
|
|
74672
|
-
return
|
|
74972
|
+
return path9;
|
|
74673
74973
|
}
|
|
74674
74974
|
function isLocalApiUrl(apiUrl) {
|
|
74675
74975
|
try {
|
|
@@ -75041,8 +75341,38 @@ async function handleAgents(subcommand, positionals, flags, context2) {
|
|
|
75041
75341
|
formatAgentRuntimeStatus(response, orgId);
|
|
75042
75342
|
return;
|
|
75043
75343
|
}
|
|
75344
|
+
case "delete": {
|
|
75345
|
+
const slug = positionals[0];
|
|
75346
|
+
if (!slug) {
|
|
75347
|
+
throw new Error("Usage: eve agents delete <slug> [--project <id>]");
|
|
75348
|
+
}
|
|
75349
|
+
const projectId = getStringFlag(flags, ["project"]) ?? context2.projectId;
|
|
75350
|
+
if (!projectId) {
|
|
75351
|
+
throw new Error("Missing project id. Provide --project or set a profile default.");
|
|
75352
|
+
}
|
|
75353
|
+
await requestRaw(context2, `/projects/${projectId}/agents/${encodeURIComponent(slug)}`, {
|
|
75354
|
+
method: "DELETE"
|
|
75355
|
+
});
|
|
75356
|
+
outputJson({ slug, deleted: true }, json, `Agent ${slug} deleted`);
|
|
75357
|
+
return;
|
|
75358
|
+
}
|
|
75359
|
+
case "delete-team": {
|
|
75360
|
+
const teamId = positionals[0];
|
|
75361
|
+
if (!teamId) {
|
|
75362
|
+
throw new Error("Usage: eve agents delete-team <team_id> [--project <id>]");
|
|
75363
|
+
}
|
|
75364
|
+
const projectId = getStringFlag(flags, ["project"]) ?? context2.projectId;
|
|
75365
|
+
if (!projectId) {
|
|
75366
|
+
throw new Error("Missing project id. Provide --project or set a profile default.");
|
|
75367
|
+
}
|
|
75368
|
+
await requestRaw(context2, `/projects/${projectId}/teams/${encodeURIComponent(teamId)}`, {
|
|
75369
|
+
method: "DELETE"
|
|
75370
|
+
});
|
|
75371
|
+
outputJson({ id: teamId, deleted: true }, json, `Team ${teamId} deleted`);
|
|
75372
|
+
return;
|
|
75373
|
+
}
|
|
75044
75374
|
default:
|
|
75045
|
-
throw new Error("Usage: eve agents <config|sync|runtime-status>");
|
|
75375
|
+
throw new Error("Usage: eve agents <config|sync|runtime-status|delete|delete-team>");
|
|
75046
75376
|
}
|
|
75047
75377
|
}
|
|
75048
75378
|
function formatAgentRuntimeStatus(response, orgId) {
|
|
@@ -75099,8 +75429,8 @@ function formatAgeSeconds(isoDate) {
|
|
|
75099
75429
|
|
|
75100
75430
|
// src/commands/init.ts
|
|
75101
75431
|
var fs5 = __toESM(require("node:fs"));
|
|
75102
|
-
var
|
|
75103
|
-
var
|
|
75432
|
+
var path8 = __toESM(require("node:path"));
|
|
75433
|
+
var os4 = __toESM(require("node:os"));
|
|
75104
75434
|
var import_node_child_process9 = require("node:child_process");
|
|
75105
75435
|
var DEFAULT_TEMPLATE = "https://github.com/incept5/eve-horizon-starter";
|
|
75106
75436
|
var DEFAULT_BRANCH = "main";
|
|
@@ -75109,8 +75439,8 @@ async function handleInit(positionals, flags) {
|
|
|
75109
75439
|
const template = getStringFlag(flags, ["template", "t"]) || DEFAULT_TEMPLATE;
|
|
75110
75440
|
const branch = getStringFlag(flags, ["branch", "b"]) || DEFAULT_BRANCH;
|
|
75111
75441
|
const skipSkills = Boolean(flags["skip-skills"]);
|
|
75112
|
-
const resolvedTarget =
|
|
75113
|
-
const targetName =
|
|
75442
|
+
const resolvedTarget = path8.resolve(targetDir);
|
|
75443
|
+
const targetName = path8.basename(resolvedTarget);
|
|
75114
75444
|
const isCurrentDir = targetDir === ".";
|
|
75115
75445
|
if (isCurrentDir) {
|
|
75116
75446
|
if (fs5.existsSync(resolvedTarget)) {
|
|
@@ -75137,7 +75467,7 @@ async function handleInit(positionals, flags) {
|
|
|
75137
75467
|
console.log(`Template: ${template}`);
|
|
75138
75468
|
console.log(`Branch: ${branch}`);
|
|
75139
75469
|
console.log("");
|
|
75140
|
-
const tempDir = fs5.mkdtempSync(
|
|
75470
|
+
const tempDir = fs5.mkdtempSync(path8.join(os4.tmpdir(), "eve-init-"));
|
|
75141
75471
|
try {
|
|
75142
75472
|
console.log("Downloading template...");
|
|
75143
75473
|
const cloneResult = (0, import_node_child_process9.spawnSync)("git", ["clone", "--depth=1", `--branch=${branch}`, template, tempDir], {
|
|
@@ -75150,7 +75480,7 @@ async function handleInit(positionals, flags) {
|
|
|
75150
75480
|
${cloneResult.stderr || cloneResult.stdout}`
|
|
75151
75481
|
);
|
|
75152
75482
|
}
|
|
75153
|
-
const gitDir =
|
|
75483
|
+
const gitDir = path8.join(tempDir, ".git");
|
|
75154
75484
|
if (fs5.existsSync(gitDir)) {
|
|
75155
75485
|
fs5.rmSync(gitDir, { recursive: true, force: true });
|
|
75156
75486
|
}
|
|
@@ -75198,8 +75528,8 @@ ${cloneResult.stderr || cloneResult.stdout}`
|
|
|
75198
75528
|
function copyDirRecursive(src, dest) {
|
|
75199
75529
|
const entries = fs5.readdirSync(src, { withFileTypes: true });
|
|
75200
75530
|
for (const entry of entries) {
|
|
75201
|
-
const srcPath =
|
|
75202
|
-
const destPath =
|
|
75531
|
+
const srcPath = path8.join(src, entry.name);
|
|
75532
|
+
const destPath = path8.join(dest, entry.name);
|
|
75203
75533
|
if (entry.isDirectory()) {
|
|
75204
75534
|
if (!fs5.existsSync(destPath)) {
|
|
75205
75535
|
fs5.mkdirSync(destPath, { recursive: true });
|
|
@@ -75217,8 +75547,8 @@ function copyDirRecursive(src, dest) {
|
|
|
75217
75547
|
}
|
|
75218
75548
|
function resolveSkillsBinary2() {
|
|
75219
75549
|
const candidates = [
|
|
75220
|
-
|
|
75221
|
-
|
|
75550
|
+
path8.resolve(__dirname, "..", "node_modules", ".bin", "skills"),
|
|
75551
|
+
path8.resolve(__dirname, "..", "..", ".bin", "skills")
|
|
75222
75552
|
];
|
|
75223
75553
|
for (const candidate of candidates) {
|
|
75224
75554
|
if (fs5.existsSync(candidate)) return candidate;
|
|
@@ -75230,7 +75560,7 @@ function resolveSkillsBinary2() {
|
|
|
75230
75560
|
);
|
|
75231
75561
|
}
|
|
75232
75562
|
async function installSkills(projectRoot) {
|
|
75233
|
-
const skillsTxt =
|
|
75563
|
+
const skillsTxt = path8.join(projectRoot, "skills.txt");
|
|
75234
75564
|
if (!fs5.existsSync(skillsTxt)) {
|
|
75235
75565
|
console.log("No skills.txt found, skipping skill installation");
|
|
75236
75566
|
return;
|
|
@@ -75274,9 +75604,9 @@ async function installSkills(projectRoot) {
|
|
|
75274
75604
|
}
|
|
75275
75605
|
}
|
|
75276
75606
|
function ensureSkillsSymlink2(projectRoot) {
|
|
75277
|
-
const agentSkills =
|
|
75278
|
-
const claudeDir =
|
|
75279
|
-
const claudeSkills =
|
|
75607
|
+
const agentSkills = path8.join(projectRoot, ".agents", "skills");
|
|
75608
|
+
const claudeDir = path8.join(projectRoot, ".claude");
|
|
75609
|
+
const claudeSkills = path8.join(claudeDir, "skills");
|
|
75280
75610
|
if (!fs5.existsSync(agentSkills)) {
|
|
75281
75611
|
fs5.mkdirSync(agentSkills, { recursive: true });
|
|
75282
75612
|
}
|
|
@@ -75290,9 +75620,9 @@ function ensureSkillsSymlink2(projectRoot) {
|
|
|
75290
75620
|
const entries = fs5.readdirSync(agentSkills, { withFileTypes: true });
|
|
75291
75621
|
for (const entry of entries) {
|
|
75292
75622
|
if (!entry.isDirectory() || entry.name.startsWith(".")) continue;
|
|
75293
|
-
const dst =
|
|
75623
|
+
const dst = path8.join(claudeSkills, entry.name);
|
|
75294
75624
|
if (fs5.existsSync(dst)) continue;
|
|
75295
|
-
fs5.symlinkSync(
|
|
75625
|
+
fs5.symlinkSync(path8.join("..", "..", ".agents", "skills", entry.name), dst);
|
|
75296
75626
|
}
|
|
75297
75627
|
}
|
|
75298
75628
|
} catch {
|
|
@@ -75376,8 +75706,39 @@ Make sure the release exists and the tag is correct.`
|
|
|
75376
75706
|
}
|
|
75377
75707
|
return;
|
|
75378
75708
|
}
|
|
75709
|
+
case "delete": {
|
|
75710
|
+
const tag = positionals[0];
|
|
75711
|
+
if (!tag) {
|
|
75712
|
+
throw new Error("Usage: eve release delete <tag> [--project <id>]");
|
|
75713
|
+
}
|
|
75714
|
+
const projectId = typeof flags.project === "string" ? flags.project : context2.projectId;
|
|
75715
|
+
if (!projectId) {
|
|
75716
|
+
throw new Error("Missing project id. Provide --project or set a profile default.");
|
|
75717
|
+
}
|
|
75718
|
+
await requestRaw(
|
|
75719
|
+
context2,
|
|
75720
|
+
`/projects/${projectId}/releases/by-tag/${encodeURIComponent(tag)}`,
|
|
75721
|
+
{ method: "DELETE" }
|
|
75722
|
+
);
|
|
75723
|
+
outputJson({ tag, deleted: true }, json, `Release ${tag} deleted`);
|
|
75724
|
+
return;
|
|
75725
|
+
}
|
|
75726
|
+
case "prune": {
|
|
75727
|
+
const projectId = typeof flags.project === "string" ? flags.project : context2.projectId;
|
|
75728
|
+
if (!projectId) {
|
|
75729
|
+
throw new Error("Usage: eve release prune [--project <id>] [--keep <n>]");
|
|
75730
|
+
}
|
|
75731
|
+
const keep = getStringFlag(flags, ["keep"]) ?? "10";
|
|
75732
|
+
const result = await requestJson(
|
|
75733
|
+
context2,
|
|
75734
|
+
`/projects/${projectId}/releases/prune`,
|
|
75735
|
+
{ method: "POST", body: { keep: parseInt(keep, 10) } }
|
|
75736
|
+
);
|
|
75737
|
+
outputJson(result, json, `Pruned ${result.deleted} release(s)`);
|
|
75738
|
+
return;
|
|
75739
|
+
}
|
|
75379
75740
|
default:
|
|
75380
|
-
throw new Error("Usage: eve release <resolve>");
|
|
75741
|
+
throw new Error("Usage: eve release <resolve|delete|prune>");
|
|
75381
75742
|
}
|
|
75382
75743
|
}
|
|
75383
75744
|
|
|
@@ -75665,9 +76026,28 @@ async function handleBuild(subcommand, positionals, flags, context2) {
|
|
|
75665
76026
|
return handleDiagnose3(positionals, flags, context2, json);
|
|
75666
76027
|
case "cancel":
|
|
75667
76028
|
return handleCancel3(positionals, flags, context2, json);
|
|
76029
|
+
case "delete": {
|
|
76030
|
+
const buildId = positionals[0];
|
|
76031
|
+
if (!buildId) throw new Error("Usage: eve build delete <build_id>");
|
|
76032
|
+
await requestRaw(context2, `/builds/${buildId}`, { method: "DELETE" });
|
|
76033
|
+
outputJson({ id: buildId, deleted: true }, json, `Build ${buildId} deleted`);
|
|
76034
|
+
return;
|
|
76035
|
+
}
|
|
76036
|
+
case "prune": {
|
|
76037
|
+
const projectId = getStringFlag(flags, ["project"]) ?? context2.projectId;
|
|
76038
|
+
if (!projectId) throw new Error("Usage: eve build prune [--project <id>] [--keep <n>]");
|
|
76039
|
+
const keep = getStringFlag(flags, ["keep"]) ?? "10";
|
|
76040
|
+
const result = await requestJson(
|
|
76041
|
+
context2,
|
|
76042
|
+
`/projects/${projectId}/builds/prune`,
|
|
76043
|
+
{ method: "POST", body: { keep: parseInt(keep, 10) } }
|
|
76044
|
+
);
|
|
76045
|
+
outputJson(result, json, `Pruned ${result.deleted} build(s)`);
|
|
76046
|
+
return;
|
|
76047
|
+
}
|
|
75668
76048
|
default:
|
|
75669
76049
|
throw new Error(
|
|
75670
|
-
"Usage: eve build <create|list|show|run|runs|logs|artifacts|diagnose|cancel>\n create --project <id> --ref <sha> [--services <list>] - create a build spec\n list [--project <id>] - list build specs\n show <build_id> - show build spec details\n run <build_id> - start a build run\n runs <build_id> - list runs for a build\n logs <build_id> [--run <id>] - show build logs\n artifacts <build_id> - list build artifacts\n diagnose <build_id> - show full build state\n cancel <build_id> - cancel active build run"
|
|
76050
|
+
"Usage: eve build <create|list|show|run|runs|logs|artifacts|diagnose|cancel|delete|prune>\n create --project <id> --ref <sha> [--services <list>] - create a build spec\n list [--project <id>] - list build specs\n show <build_id> - show build spec details\n run <build_id> - start a build run\n runs <build_id> - list runs for a build\n logs <build_id> [--run <id>] - show build logs\n artifacts <build_id> - list build artifacts\n diagnose <build_id> - show full build state\n cancel <build_id> - cancel active build run\n delete <build_id> - delete a build spec\n prune [--project <id>] [--keep <n>] - prune old builds (keep last N)"
|
|
75671
76051
|
);
|
|
75672
76052
|
}
|
|
75673
76053
|
}
|
|
@@ -76535,9 +76915,18 @@ async function handleThread(subcommand, positionals, flags, context2) {
|
|
|
76535
76915
|
outputJson(result, json, `Thread distilled: ${threadId}`);
|
|
76536
76916
|
return;
|
|
76537
76917
|
}
|
|
76918
|
+
case "delete": {
|
|
76919
|
+
const threadId = positionals[0];
|
|
76920
|
+
if (!threadId) {
|
|
76921
|
+
throw new Error("Usage: eve thread delete <thread_id>");
|
|
76922
|
+
}
|
|
76923
|
+
await requestRaw(context2, `/threads/${threadId}`, { method: "DELETE" });
|
|
76924
|
+
outputJson({ id: threadId, deleted: true }, json, `Thread ${threadId} deleted`);
|
|
76925
|
+
return;
|
|
76926
|
+
}
|
|
76538
76927
|
default:
|
|
76539
76928
|
throw new Error(
|
|
76540
|
-
"Usage: eve thread <create|list|show|messages|post|follow|distill> [options]\n\n create --org <org> --key <key>\n list --org <org> [--scope org] [--key-prefix <prefix>]\n show <thread_id> --org <org>\n messages <thread_id> [--org <org>] [--since <duration>] [--limit <n>]\n post <thread_id> [--org <org>] --body <text> [--actor-type <type>] [--actor-id <id>]\n follow <thread_id> [--org <org>]\n distill <thread_id> --org <org> [--to <path>] [--agent <slug>] [--category <name>] [--key <key>]"
|
|
76929
|
+
"Usage: eve thread <create|list|show|messages|post|follow|distill|delete> [options]\n\n create --org <org> --key <key>\n list --org <org> [--scope org] [--key-prefix <prefix>]\n show <thread_id> --org <org>\n messages <thread_id> [--org <org>] [--since <duration>] [--limit <n>]\n post <thread_id> [--org <org>] --body <text> [--actor-type <type>] [--actor-id <id>]\n follow <thread_id> [--org <org>]\n distill <thread_id> --org <org> [--to <path>] [--agent <slug>] [--category <name>] [--key <key>]\n delete <thread_id>"
|
|
76541
76930
|
);
|
|
76542
76931
|
}
|
|
76543
76932
|
}
|
|
@@ -77198,8 +77587,8 @@ async function handleBindings(action, flags, context2, json) {
|
|
|
77198
77587
|
params.set("project_id", projectId);
|
|
77199
77588
|
}
|
|
77200
77589
|
const queryString = params.toString();
|
|
77201
|
-
const
|
|
77202
|
-
const bindingsResponse = await requestJson(context2,
|
|
77590
|
+
const path9 = queryString ? `/orgs/${orgId}/access/bindings?${queryString}` : `/orgs/${orgId}/access/bindings`;
|
|
77591
|
+
const bindingsResponse = await requestJson(context2, path9);
|
|
77203
77592
|
const bindings = unwrapListResponse(bindingsResponse);
|
|
77204
77593
|
if (json) {
|
|
77205
77594
|
outputJson({ data: bindings }, json);
|
|
@@ -78439,8 +78828,8 @@ Sync complete: ${parts.join(", ")}`);
|
|
|
78439
78828
|
// src/commands/docs.ts
|
|
78440
78829
|
var import_node_fs17 = require("node:fs");
|
|
78441
78830
|
var import_node_path17 = require("node:path");
|
|
78442
|
-
function encodeDocPathParam(
|
|
78443
|
-
const trimmed =
|
|
78831
|
+
function encodeDocPathParam(path9) {
|
|
78832
|
+
const trimmed = path9.startsWith("/") ? path9.slice(1) : path9;
|
|
78444
78833
|
return encodeURIComponent(trimmed);
|
|
78445
78834
|
}
|
|
78446
78835
|
function parseWhereClause(raw) {
|
|
@@ -79970,10 +80359,10 @@ async function handleFs(subcommand, positionals, flags, context2) {
|
|
|
79970
80359
|
}
|
|
79971
80360
|
case "share": {
|
|
79972
80361
|
const orgId = getOrgOrThrow(flags, context2);
|
|
79973
|
-
const
|
|
79974
|
-
if (!
|
|
80362
|
+
const path9 = positionals[0];
|
|
80363
|
+
if (!path9) throw new Error("Usage: eve fs share <path> --org <org> [--expires <duration>] [--label <text>]");
|
|
79975
80364
|
const body = {
|
|
79976
|
-
path:
|
|
80365
|
+
path: path9,
|
|
79977
80366
|
expires_in: getStringFlag(flags, ["expires", "expires-in", "ttl"]) ?? void 0,
|
|
79978
80367
|
label: getStringFlag(flags, ["label"]) ?? void 0
|
|
79979
80368
|
};
|
|
@@ -81173,11 +81562,11 @@ function ensureTool(name, installHint) {
|
|
|
81173
81562
|
}
|
|
81174
81563
|
}
|
|
81175
81564
|
function requireToolPath(name, hint) {
|
|
81176
|
-
const
|
|
81177
|
-
if (!
|
|
81565
|
+
const path9 = findExecutable(name);
|
|
81566
|
+
if (!path9) {
|
|
81178
81567
|
throw new Error(`Missing required tool '${name}'. ${hint}`);
|
|
81179
81568
|
}
|
|
81180
|
-
return
|
|
81569
|
+
return path9;
|
|
81181
81570
|
}
|
|
81182
81571
|
function assertDockerRunning() {
|
|
81183
81572
|
const docker = findExecutable("docker");
|