@ghostystudio/cli 0.62.0 → 0.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/dist/index.js +303 -185
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -32,9 +32,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
32
32
|
mod
|
|
33
33
|
));
|
|
34
34
|
|
|
35
|
-
//
|
|
35
|
+
// ../../../../../node_modules/yaml/dist/nodes/identity.js
|
|
36
36
|
var require_identity = __commonJS({
|
|
37
|
-
"
|
|
37
|
+
"../../../../../node_modules/yaml/dist/nodes/identity.js"(exports) {
|
|
38
38
|
"use strict";
|
|
39
39
|
var ALIAS = /* @__PURE__ */ Symbol.for("yaml.alias");
|
|
40
40
|
var DOC = /* @__PURE__ */ Symbol.for("yaml.document");
|
|
@@ -89,9 +89,9 @@ var require_identity = __commonJS({
|
|
|
89
89
|
}
|
|
90
90
|
});
|
|
91
91
|
|
|
92
|
-
//
|
|
92
|
+
// ../../../../../node_modules/yaml/dist/visit.js
|
|
93
93
|
var require_visit = __commonJS({
|
|
94
|
-
"
|
|
94
|
+
"../../../../../node_modules/yaml/dist/visit.js"(exports) {
|
|
95
95
|
"use strict";
|
|
96
96
|
var identity = require_identity();
|
|
97
97
|
var BREAK = /* @__PURE__ */ Symbol("break visit");
|
|
@@ -247,9 +247,9 @@ var require_visit = __commonJS({
|
|
|
247
247
|
}
|
|
248
248
|
});
|
|
249
249
|
|
|
250
|
-
//
|
|
250
|
+
// ../../../../../node_modules/yaml/dist/doc/directives.js
|
|
251
251
|
var require_directives = __commonJS({
|
|
252
|
-
"
|
|
252
|
+
"../../../../../node_modules/yaml/dist/doc/directives.js"(exports) {
|
|
253
253
|
"use strict";
|
|
254
254
|
var identity = require_identity();
|
|
255
255
|
var visit = require_visit();
|
|
@@ -418,9 +418,9 @@ var require_directives = __commonJS({
|
|
|
418
418
|
}
|
|
419
419
|
});
|
|
420
420
|
|
|
421
|
-
//
|
|
421
|
+
// ../../../../../node_modules/yaml/dist/doc/anchors.js
|
|
422
422
|
var require_anchors = __commonJS({
|
|
423
|
-
"
|
|
423
|
+
"../../../../../node_modules/yaml/dist/doc/anchors.js"(exports) {
|
|
424
424
|
"use strict";
|
|
425
425
|
var identity = require_identity();
|
|
426
426
|
var visit = require_visit();
|
|
@@ -488,9 +488,9 @@ var require_anchors = __commonJS({
|
|
|
488
488
|
}
|
|
489
489
|
});
|
|
490
490
|
|
|
491
|
-
//
|
|
491
|
+
// ../../../../../node_modules/yaml/dist/doc/applyReviver.js
|
|
492
492
|
var require_applyReviver = __commonJS({
|
|
493
|
-
"
|
|
493
|
+
"../../../../../node_modules/yaml/dist/doc/applyReviver.js"(exports) {
|
|
494
494
|
"use strict";
|
|
495
495
|
function applyReviver(reviver, obj, key, val) {
|
|
496
496
|
if (val && typeof val === "object") {
|
|
@@ -538,9 +538,9 @@ var require_applyReviver = __commonJS({
|
|
|
538
538
|
}
|
|
539
539
|
});
|
|
540
540
|
|
|
541
|
-
//
|
|
541
|
+
// ../../../../../node_modules/yaml/dist/nodes/toJS.js
|
|
542
542
|
var require_toJS = __commonJS({
|
|
543
|
-
"
|
|
543
|
+
"../../../../../node_modules/yaml/dist/nodes/toJS.js"(exports) {
|
|
544
544
|
"use strict";
|
|
545
545
|
var identity = require_identity();
|
|
546
546
|
function toJS(value, arg, ctx) {
|
|
@@ -568,9 +568,9 @@ var require_toJS = __commonJS({
|
|
|
568
568
|
}
|
|
569
569
|
});
|
|
570
570
|
|
|
571
|
-
//
|
|
571
|
+
// ../../../../../node_modules/yaml/dist/nodes/Node.js
|
|
572
572
|
var require_Node = __commonJS({
|
|
573
|
-
"
|
|
573
|
+
"../../../../../node_modules/yaml/dist/nodes/Node.js"(exports) {
|
|
574
574
|
"use strict";
|
|
575
575
|
var applyReviver = require_applyReviver();
|
|
576
576
|
var identity = require_identity();
|
|
@@ -609,9 +609,9 @@ var require_Node = __commonJS({
|
|
|
609
609
|
}
|
|
610
610
|
});
|
|
611
611
|
|
|
612
|
-
//
|
|
612
|
+
// ../../../../../node_modules/yaml/dist/nodes/Alias.js
|
|
613
613
|
var require_Alias = __commonJS({
|
|
614
|
-
"
|
|
614
|
+
"../../../../../node_modules/yaml/dist/nodes/Alias.js"(exports) {
|
|
615
615
|
"use strict";
|
|
616
616
|
var anchors = require_anchors();
|
|
617
617
|
var visit = require_visit();
|
|
@@ -727,9 +727,9 @@ var require_Alias = __commonJS({
|
|
|
727
727
|
}
|
|
728
728
|
});
|
|
729
729
|
|
|
730
|
-
//
|
|
730
|
+
// ../../../../../node_modules/yaml/dist/nodes/Scalar.js
|
|
731
731
|
var require_Scalar = __commonJS({
|
|
732
|
-
"
|
|
732
|
+
"../../../../../node_modules/yaml/dist/nodes/Scalar.js"(exports) {
|
|
733
733
|
"use strict";
|
|
734
734
|
var identity = require_identity();
|
|
735
735
|
var Node = require_Node();
|
|
@@ -757,9 +757,9 @@ var require_Scalar = __commonJS({
|
|
|
757
757
|
}
|
|
758
758
|
});
|
|
759
759
|
|
|
760
|
-
//
|
|
760
|
+
// ../../../../../node_modules/yaml/dist/doc/createNode.js
|
|
761
761
|
var require_createNode = __commonJS({
|
|
762
|
-
"
|
|
762
|
+
"../../../../../node_modules/yaml/dist/doc/createNode.js"(exports) {
|
|
763
763
|
"use strict";
|
|
764
764
|
var Alias = require_Alias();
|
|
765
765
|
var identity = require_identity();
|
|
@@ -832,9 +832,9 @@ var require_createNode = __commonJS({
|
|
|
832
832
|
}
|
|
833
833
|
});
|
|
834
834
|
|
|
835
|
-
//
|
|
835
|
+
// ../../../../../node_modules/yaml/dist/nodes/Collection.js
|
|
836
836
|
var require_Collection = __commonJS({
|
|
837
|
-
"
|
|
837
|
+
"../../../../../node_modules/yaml/dist/nodes/Collection.js"(exports) {
|
|
838
838
|
"use strict";
|
|
839
839
|
var createNode = require_createNode();
|
|
840
840
|
var identity = require_identity();
|
|
@@ -975,9 +975,9 @@ var require_Collection = __commonJS({
|
|
|
975
975
|
}
|
|
976
976
|
});
|
|
977
977
|
|
|
978
|
-
//
|
|
978
|
+
// ../../../../../node_modules/yaml/dist/stringify/stringifyComment.js
|
|
979
979
|
var require_stringifyComment = __commonJS({
|
|
980
|
-
"
|
|
980
|
+
"../../../../../node_modules/yaml/dist/stringify/stringifyComment.js"(exports) {
|
|
981
981
|
"use strict";
|
|
982
982
|
var stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, "#");
|
|
983
983
|
function indentComment(comment, indent) {
|
|
@@ -992,9 +992,9 @@ var require_stringifyComment = __commonJS({
|
|
|
992
992
|
}
|
|
993
993
|
});
|
|
994
994
|
|
|
995
|
-
//
|
|
995
|
+
// ../../../../../node_modules/yaml/dist/stringify/foldFlowLines.js
|
|
996
996
|
var require_foldFlowLines = __commonJS({
|
|
997
|
-
"
|
|
997
|
+
"../../../../../node_modules/yaml/dist/stringify/foldFlowLines.js"(exports) {
|
|
998
998
|
"use strict";
|
|
999
999
|
var FOLD_FLOW = "flow";
|
|
1000
1000
|
var FOLD_BLOCK = "block";
|
|
@@ -1128,9 +1128,9 @@ ${indent}${text.slice(fold + 1, end2)}`;
|
|
|
1128
1128
|
}
|
|
1129
1129
|
});
|
|
1130
1130
|
|
|
1131
|
-
//
|
|
1131
|
+
// ../../../../../node_modules/yaml/dist/stringify/stringifyString.js
|
|
1132
1132
|
var require_stringifyString = __commonJS({
|
|
1133
|
-
"
|
|
1133
|
+
"../../../../../node_modules/yaml/dist/stringify/stringifyString.js"(exports) {
|
|
1134
1134
|
"use strict";
|
|
1135
1135
|
var Scalar = require_Scalar();
|
|
1136
1136
|
var foldFlowLines = require_foldFlowLines();
|
|
@@ -1411,9 +1411,9 @@ ${indent}`);
|
|
|
1411
1411
|
}
|
|
1412
1412
|
});
|
|
1413
1413
|
|
|
1414
|
-
//
|
|
1414
|
+
// ../../../../../node_modules/yaml/dist/stringify/stringify.js
|
|
1415
1415
|
var require_stringify = __commonJS({
|
|
1416
|
-
"
|
|
1416
|
+
"../../../../../node_modules/yaml/dist/stringify/stringify.js"(exports) {
|
|
1417
1417
|
"use strict";
|
|
1418
1418
|
var anchors = require_anchors();
|
|
1419
1419
|
var identity = require_identity();
|
|
@@ -1535,9 +1535,9 @@ ${ctx.indent}${str}`;
|
|
|
1535
1535
|
}
|
|
1536
1536
|
});
|
|
1537
1537
|
|
|
1538
|
-
//
|
|
1538
|
+
// ../../../../../node_modules/yaml/dist/stringify/stringifyPair.js
|
|
1539
1539
|
var require_stringifyPair = __commonJS({
|
|
1540
|
-
"
|
|
1540
|
+
"../../../../../node_modules/yaml/dist/stringify/stringifyPair.js"(exports) {
|
|
1541
1541
|
"use strict";
|
|
1542
1542
|
var identity = require_identity();
|
|
1543
1543
|
var Scalar = require_Scalar();
|
|
@@ -1668,9 +1668,9 @@ ${ctx.indent}`;
|
|
|
1668
1668
|
}
|
|
1669
1669
|
});
|
|
1670
1670
|
|
|
1671
|
-
//
|
|
1671
|
+
// ../../../../../node_modules/yaml/dist/log.js
|
|
1672
1672
|
var require_log = __commonJS({
|
|
1673
|
-
"
|
|
1673
|
+
"../../../../../node_modules/yaml/dist/log.js"(exports) {
|
|
1674
1674
|
"use strict";
|
|
1675
1675
|
var node_process = __require("process");
|
|
1676
1676
|
function debug(logLevel, ...messages) {
|
|
@@ -1690,9 +1690,9 @@ var require_log = __commonJS({
|
|
|
1690
1690
|
}
|
|
1691
1691
|
});
|
|
1692
1692
|
|
|
1693
|
-
//
|
|
1693
|
+
// ../../../../../node_modules/yaml/dist/schema/yaml-1.1/merge.js
|
|
1694
1694
|
var require_merge = __commonJS({
|
|
1695
|
-
"
|
|
1695
|
+
"../../../../../node_modules/yaml/dist/schema/yaml-1.1/merge.js"(exports) {
|
|
1696
1696
|
"use strict";
|
|
1697
1697
|
var identity = require_identity();
|
|
1698
1698
|
var Scalar = require_Scalar();
|
|
@@ -1750,9 +1750,9 @@ var require_merge = __commonJS({
|
|
|
1750
1750
|
}
|
|
1751
1751
|
});
|
|
1752
1752
|
|
|
1753
|
-
//
|
|
1753
|
+
// ../../../../../node_modules/yaml/dist/nodes/addPairToJSMap.js
|
|
1754
1754
|
var require_addPairToJSMap = __commonJS({
|
|
1755
|
-
"
|
|
1755
|
+
"../../../../../node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports) {
|
|
1756
1756
|
"use strict";
|
|
1757
1757
|
var log = require_log();
|
|
1758
1758
|
var merge = require_merge();
|
|
@@ -1814,9 +1814,9 @@ var require_addPairToJSMap = __commonJS({
|
|
|
1814
1814
|
}
|
|
1815
1815
|
});
|
|
1816
1816
|
|
|
1817
|
-
//
|
|
1817
|
+
// ../../../../../node_modules/yaml/dist/nodes/Pair.js
|
|
1818
1818
|
var require_Pair = __commonJS({
|
|
1819
|
-
"
|
|
1819
|
+
"../../../../../node_modules/yaml/dist/nodes/Pair.js"(exports) {
|
|
1820
1820
|
"use strict";
|
|
1821
1821
|
var createNode = require_createNode();
|
|
1822
1822
|
var stringifyPair = require_stringifyPair();
|
|
@@ -1854,9 +1854,9 @@ var require_Pair = __commonJS({
|
|
|
1854
1854
|
}
|
|
1855
1855
|
});
|
|
1856
1856
|
|
|
1857
|
-
//
|
|
1857
|
+
// ../../../../../node_modules/yaml/dist/stringify/stringifyCollection.js
|
|
1858
1858
|
var require_stringifyCollection = __commonJS({
|
|
1859
|
-
"
|
|
1859
|
+
"../../../../../node_modules/yaml/dist/stringify/stringifyCollection.js"(exports) {
|
|
1860
1860
|
"use strict";
|
|
1861
1861
|
var identity = require_identity();
|
|
1862
1862
|
var stringify = require_stringify();
|
|
@@ -2005,9 +2005,9 @@ ${indent}${end}`;
|
|
|
2005
2005
|
}
|
|
2006
2006
|
});
|
|
2007
2007
|
|
|
2008
|
-
//
|
|
2008
|
+
// ../../../../../node_modules/yaml/dist/nodes/YAMLMap.js
|
|
2009
2009
|
var require_YAMLMap = __commonJS({
|
|
2010
|
-
"
|
|
2010
|
+
"../../../../../node_modules/yaml/dist/nodes/YAMLMap.js"(exports) {
|
|
2011
2011
|
"use strict";
|
|
2012
2012
|
var stringifyCollection = require_stringifyCollection();
|
|
2013
2013
|
var addPairToJSMap = require_addPairToJSMap();
|
|
@@ -2149,9 +2149,9 @@ var require_YAMLMap = __commonJS({
|
|
|
2149
2149
|
}
|
|
2150
2150
|
});
|
|
2151
2151
|
|
|
2152
|
-
//
|
|
2152
|
+
// ../../../../../node_modules/yaml/dist/schema/common/map.js
|
|
2153
2153
|
var require_map = __commonJS({
|
|
2154
|
-
"
|
|
2154
|
+
"../../../../../node_modules/yaml/dist/schema/common/map.js"(exports) {
|
|
2155
2155
|
"use strict";
|
|
2156
2156
|
var identity = require_identity();
|
|
2157
2157
|
var YAMLMap = require_YAMLMap();
|
|
@@ -2171,9 +2171,9 @@ var require_map = __commonJS({
|
|
|
2171
2171
|
}
|
|
2172
2172
|
});
|
|
2173
2173
|
|
|
2174
|
-
//
|
|
2174
|
+
// ../../../../../node_modules/yaml/dist/nodes/YAMLSeq.js
|
|
2175
2175
|
var require_YAMLSeq = __commonJS({
|
|
2176
|
-
"
|
|
2176
|
+
"../../../../../node_modules/yaml/dist/nodes/YAMLSeq.js"(exports) {
|
|
2177
2177
|
"use strict";
|
|
2178
2178
|
var createNode = require_createNode();
|
|
2179
2179
|
var stringifyCollection = require_stringifyCollection();
|
|
@@ -2287,9 +2287,9 @@ var require_YAMLSeq = __commonJS({
|
|
|
2287
2287
|
}
|
|
2288
2288
|
});
|
|
2289
2289
|
|
|
2290
|
-
//
|
|
2290
|
+
// ../../../../../node_modules/yaml/dist/schema/common/seq.js
|
|
2291
2291
|
var require_seq = __commonJS({
|
|
2292
|
-
"
|
|
2292
|
+
"../../../../../node_modules/yaml/dist/schema/common/seq.js"(exports) {
|
|
2293
2293
|
"use strict";
|
|
2294
2294
|
var identity = require_identity();
|
|
2295
2295
|
var YAMLSeq = require_YAMLSeq();
|
|
@@ -2309,9 +2309,9 @@ var require_seq = __commonJS({
|
|
|
2309
2309
|
}
|
|
2310
2310
|
});
|
|
2311
2311
|
|
|
2312
|
-
//
|
|
2312
|
+
// ../../../../../node_modules/yaml/dist/schema/common/string.js
|
|
2313
2313
|
var require_string = __commonJS({
|
|
2314
|
-
"
|
|
2314
|
+
"../../../../../node_modules/yaml/dist/schema/common/string.js"(exports) {
|
|
2315
2315
|
"use strict";
|
|
2316
2316
|
var stringifyString = require_stringifyString();
|
|
2317
2317
|
var string = {
|
|
@@ -2328,9 +2328,9 @@ var require_string = __commonJS({
|
|
|
2328
2328
|
}
|
|
2329
2329
|
});
|
|
2330
2330
|
|
|
2331
|
-
//
|
|
2331
|
+
// ../../../../../node_modules/yaml/dist/schema/common/null.js
|
|
2332
2332
|
var require_null = __commonJS({
|
|
2333
|
-
"
|
|
2333
|
+
"../../../../../node_modules/yaml/dist/schema/common/null.js"(exports) {
|
|
2334
2334
|
"use strict";
|
|
2335
2335
|
var Scalar = require_Scalar();
|
|
2336
2336
|
var nullTag = {
|
|
@@ -2346,9 +2346,9 @@ var require_null = __commonJS({
|
|
|
2346
2346
|
}
|
|
2347
2347
|
});
|
|
2348
2348
|
|
|
2349
|
-
//
|
|
2349
|
+
// ../../../../../node_modules/yaml/dist/schema/core/bool.js
|
|
2350
2350
|
var require_bool = __commonJS({
|
|
2351
|
-
"
|
|
2351
|
+
"../../../../../node_modules/yaml/dist/schema/core/bool.js"(exports) {
|
|
2352
2352
|
"use strict";
|
|
2353
2353
|
var Scalar = require_Scalar();
|
|
2354
2354
|
var boolTag = {
|
|
@@ -2370,9 +2370,9 @@ var require_bool = __commonJS({
|
|
|
2370
2370
|
}
|
|
2371
2371
|
});
|
|
2372
2372
|
|
|
2373
|
-
//
|
|
2373
|
+
// ../../../../../node_modules/yaml/dist/stringify/stringifyNumber.js
|
|
2374
2374
|
var require_stringifyNumber = __commonJS({
|
|
2375
|
-
"
|
|
2375
|
+
"../../../../../node_modules/yaml/dist/stringify/stringifyNumber.js"(exports) {
|
|
2376
2376
|
"use strict";
|
|
2377
2377
|
function stringifyNumber({ format, minFractionDigits, tag, value }) {
|
|
2378
2378
|
if (typeof value === "bigint")
|
|
@@ -2397,9 +2397,9 @@ var require_stringifyNumber = __commonJS({
|
|
|
2397
2397
|
}
|
|
2398
2398
|
});
|
|
2399
2399
|
|
|
2400
|
-
//
|
|
2400
|
+
// ../../../../../node_modules/yaml/dist/schema/core/float.js
|
|
2401
2401
|
var require_float = __commonJS({
|
|
2402
|
-
"
|
|
2402
|
+
"../../../../../node_modules/yaml/dist/schema/core/float.js"(exports) {
|
|
2403
2403
|
"use strict";
|
|
2404
2404
|
var Scalar = require_Scalar();
|
|
2405
2405
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -2443,9 +2443,9 @@ var require_float = __commonJS({
|
|
|
2443
2443
|
}
|
|
2444
2444
|
});
|
|
2445
2445
|
|
|
2446
|
-
//
|
|
2446
|
+
// ../../../../../node_modules/yaml/dist/schema/core/int.js
|
|
2447
2447
|
var require_int = __commonJS({
|
|
2448
|
-
"
|
|
2448
|
+
"../../../../../node_modules/yaml/dist/schema/core/int.js"(exports) {
|
|
2449
2449
|
"use strict";
|
|
2450
2450
|
var stringifyNumber = require_stringifyNumber();
|
|
2451
2451
|
var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -2488,9 +2488,9 @@ var require_int = __commonJS({
|
|
|
2488
2488
|
}
|
|
2489
2489
|
});
|
|
2490
2490
|
|
|
2491
|
-
//
|
|
2491
|
+
// ../../../../../node_modules/yaml/dist/schema/core/schema.js
|
|
2492
2492
|
var require_schema = __commonJS({
|
|
2493
|
-
"
|
|
2493
|
+
"../../../../../node_modules/yaml/dist/schema/core/schema.js"(exports) {
|
|
2494
2494
|
"use strict";
|
|
2495
2495
|
var map = require_map();
|
|
2496
2496
|
var _null = require_null();
|
|
@@ -2516,9 +2516,9 @@ var require_schema = __commonJS({
|
|
|
2516
2516
|
}
|
|
2517
2517
|
});
|
|
2518
2518
|
|
|
2519
|
-
//
|
|
2519
|
+
// ../../../../../node_modules/yaml/dist/schema/json/schema.js
|
|
2520
2520
|
var require_schema2 = __commonJS({
|
|
2521
|
-
"
|
|
2521
|
+
"../../../../../node_modules/yaml/dist/schema/json/schema.js"(exports) {
|
|
2522
2522
|
"use strict";
|
|
2523
2523
|
var Scalar = require_Scalar();
|
|
2524
2524
|
var map = require_map();
|
|
@@ -2583,9 +2583,9 @@ var require_schema2 = __commonJS({
|
|
|
2583
2583
|
}
|
|
2584
2584
|
});
|
|
2585
2585
|
|
|
2586
|
-
//
|
|
2586
|
+
// ../../../../../node_modules/yaml/dist/schema/yaml-1.1/binary.js
|
|
2587
2587
|
var require_binary = __commonJS({
|
|
2588
|
-
"
|
|
2588
|
+
"../../../../../node_modules/yaml/dist/schema/yaml-1.1/binary.js"(exports) {
|
|
2589
2589
|
"use strict";
|
|
2590
2590
|
var node_buffer = __require("buffer");
|
|
2591
2591
|
var Scalar = require_Scalar();
|
|
@@ -2649,9 +2649,9 @@ var require_binary = __commonJS({
|
|
|
2649
2649
|
}
|
|
2650
2650
|
});
|
|
2651
2651
|
|
|
2652
|
-
//
|
|
2652
|
+
// ../../../../../node_modules/yaml/dist/schema/yaml-1.1/pairs.js
|
|
2653
2653
|
var require_pairs = __commonJS({
|
|
2654
|
-
"
|
|
2654
|
+
"../../../../../node_modules/yaml/dist/schema/yaml-1.1/pairs.js"(exports) {
|
|
2655
2655
|
"use strict";
|
|
2656
2656
|
var identity = require_identity();
|
|
2657
2657
|
var Pair = require_Pair();
|
|
@@ -2727,9 +2727,9 @@ ${cn.comment}` : item.comment;
|
|
|
2727
2727
|
}
|
|
2728
2728
|
});
|
|
2729
2729
|
|
|
2730
|
-
//
|
|
2730
|
+
// ../../../../../node_modules/yaml/dist/schema/yaml-1.1/omap.js
|
|
2731
2731
|
var require_omap = __commonJS({
|
|
2732
|
-
"
|
|
2732
|
+
"../../../../../node_modules/yaml/dist/schema/yaml-1.1/omap.js"(exports) {
|
|
2733
2733
|
"use strict";
|
|
2734
2734
|
var identity = require_identity();
|
|
2735
2735
|
var toJS = require_toJS();
|
|
@@ -2805,9 +2805,9 @@ var require_omap = __commonJS({
|
|
|
2805
2805
|
}
|
|
2806
2806
|
});
|
|
2807
2807
|
|
|
2808
|
-
//
|
|
2808
|
+
// ../../../../../node_modules/yaml/dist/schema/yaml-1.1/bool.js
|
|
2809
2809
|
var require_bool2 = __commonJS({
|
|
2810
|
-
"
|
|
2810
|
+
"../../../../../node_modules/yaml/dist/schema/yaml-1.1/bool.js"(exports) {
|
|
2811
2811
|
"use strict";
|
|
2812
2812
|
var Scalar = require_Scalar();
|
|
2813
2813
|
function boolStringify({ value, source }, ctx) {
|
|
@@ -2837,9 +2837,9 @@ var require_bool2 = __commonJS({
|
|
|
2837
2837
|
}
|
|
2838
2838
|
});
|
|
2839
2839
|
|
|
2840
|
-
//
|
|
2840
|
+
// ../../../../../node_modules/yaml/dist/schema/yaml-1.1/float.js
|
|
2841
2841
|
var require_float2 = __commonJS({
|
|
2842
|
-
"
|
|
2842
|
+
"../../../../../node_modules/yaml/dist/schema/yaml-1.1/float.js"(exports) {
|
|
2843
2843
|
"use strict";
|
|
2844
2844
|
var Scalar = require_Scalar();
|
|
2845
2845
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -2886,9 +2886,9 @@ var require_float2 = __commonJS({
|
|
|
2886
2886
|
}
|
|
2887
2887
|
});
|
|
2888
2888
|
|
|
2889
|
-
//
|
|
2889
|
+
// ../../../../../node_modules/yaml/dist/schema/yaml-1.1/int.js
|
|
2890
2890
|
var require_int2 = __commonJS({
|
|
2891
|
-
"
|
|
2891
|
+
"../../../../../node_modules/yaml/dist/schema/yaml-1.1/int.js"(exports) {
|
|
2892
2892
|
"use strict";
|
|
2893
2893
|
var stringifyNumber = require_stringifyNumber();
|
|
2894
2894
|
var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -2965,9 +2965,9 @@ var require_int2 = __commonJS({
|
|
|
2965
2965
|
}
|
|
2966
2966
|
});
|
|
2967
2967
|
|
|
2968
|
-
//
|
|
2968
|
+
// ../../../../../node_modules/yaml/dist/schema/yaml-1.1/set.js
|
|
2969
2969
|
var require_set = __commonJS({
|
|
2970
|
-
"
|
|
2970
|
+
"../../../../../node_modules/yaml/dist/schema/yaml-1.1/set.js"(exports) {
|
|
2971
2971
|
"use strict";
|
|
2972
2972
|
var identity = require_identity();
|
|
2973
2973
|
var Pair = require_Pair();
|
|
@@ -3054,9 +3054,9 @@ var require_set = __commonJS({
|
|
|
3054
3054
|
}
|
|
3055
3055
|
});
|
|
3056
3056
|
|
|
3057
|
-
//
|
|
3057
|
+
// ../../../../../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
|
|
3058
3058
|
var require_timestamp = __commonJS({
|
|
3059
|
-
"
|
|
3059
|
+
"../../../../../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js"(exports) {
|
|
3060
3060
|
"use strict";
|
|
3061
3061
|
var stringifyNumber = require_stringifyNumber();
|
|
3062
3062
|
function parseSexagesimal(str, asBigInt) {
|
|
@@ -3142,9 +3142,9 @@ var require_timestamp = __commonJS({
|
|
|
3142
3142
|
}
|
|
3143
3143
|
});
|
|
3144
3144
|
|
|
3145
|
-
//
|
|
3145
|
+
// ../../../../../node_modules/yaml/dist/schema/yaml-1.1/schema.js
|
|
3146
3146
|
var require_schema3 = __commonJS({
|
|
3147
|
-
"
|
|
3147
|
+
"../../../../../node_modules/yaml/dist/schema/yaml-1.1/schema.js"(exports) {
|
|
3148
3148
|
"use strict";
|
|
3149
3149
|
var map = require_map();
|
|
3150
3150
|
var _null = require_null();
|
|
@@ -3186,9 +3186,9 @@ var require_schema3 = __commonJS({
|
|
|
3186
3186
|
}
|
|
3187
3187
|
});
|
|
3188
3188
|
|
|
3189
|
-
//
|
|
3189
|
+
// ../../../../../node_modules/yaml/dist/schema/tags.js
|
|
3190
3190
|
var require_tags = __commonJS({
|
|
3191
|
-
"
|
|
3191
|
+
"../../../../../node_modules/yaml/dist/schema/tags.js"(exports) {
|
|
3192
3192
|
"use strict";
|
|
3193
3193
|
var map = require_map();
|
|
3194
3194
|
var _null = require_null();
|
|
@@ -3280,9 +3280,9 @@ var require_tags = __commonJS({
|
|
|
3280
3280
|
}
|
|
3281
3281
|
});
|
|
3282
3282
|
|
|
3283
|
-
//
|
|
3283
|
+
// ../../../../../node_modules/yaml/dist/schema/Schema.js
|
|
3284
3284
|
var require_Schema = __commonJS({
|
|
3285
|
-
"
|
|
3285
|
+
"../../../../../node_modules/yaml/dist/schema/Schema.js"(exports) {
|
|
3286
3286
|
"use strict";
|
|
3287
3287
|
var identity = require_identity();
|
|
3288
3288
|
var map = require_map();
|
|
@@ -3312,9 +3312,9 @@ var require_Schema = __commonJS({
|
|
|
3312
3312
|
}
|
|
3313
3313
|
});
|
|
3314
3314
|
|
|
3315
|
-
//
|
|
3315
|
+
// ../../../../../node_modules/yaml/dist/stringify/stringifyDocument.js
|
|
3316
3316
|
var require_stringifyDocument = __commonJS({
|
|
3317
|
-
"
|
|
3317
|
+
"../../../../../node_modules/yaml/dist/stringify/stringifyDocument.js"(exports) {
|
|
3318
3318
|
"use strict";
|
|
3319
3319
|
var identity = require_identity();
|
|
3320
3320
|
var stringify = require_stringify();
|
|
@@ -3392,9 +3392,9 @@ var require_stringifyDocument = __commonJS({
|
|
|
3392
3392
|
}
|
|
3393
3393
|
});
|
|
3394
3394
|
|
|
3395
|
-
//
|
|
3395
|
+
// ../../../../../node_modules/yaml/dist/doc/Document.js
|
|
3396
3396
|
var require_Document = __commonJS({
|
|
3397
|
-
"
|
|
3397
|
+
"../../../../../node_modules/yaml/dist/doc/Document.js"(exports) {
|
|
3398
3398
|
"use strict";
|
|
3399
3399
|
var Alias = require_Alias();
|
|
3400
3400
|
var Collection = require_Collection();
|
|
@@ -3701,9 +3701,9 @@ var require_Document = __commonJS({
|
|
|
3701
3701
|
}
|
|
3702
3702
|
});
|
|
3703
3703
|
|
|
3704
|
-
//
|
|
3704
|
+
// ../../../../../node_modules/yaml/dist/errors.js
|
|
3705
3705
|
var require_errors = __commonJS({
|
|
3706
|
-
"
|
|
3706
|
+
"../../../../../node_modules/yaml/dist/errors.js"(exports) {
|
|
3707
3707
|
"use strict";
|
|
3708
3708
|
var YAMLError = class extends Error {
|
|
3709
3709
|
constructor(name, pos, code, message) {
|
|
@@ -3766,9 +3766,9 @@ ${pointer}
|
|
|
3766
3766
|
}
|
|
3767
3767
|
});
|
|
3768
3768
|
|
|
3769
|
-
//
|
|
3769
|
+
// ../../../../../node_modules/yaml/dist/compose/resolve-props.js
|
|
3770
3770
|
var require_resolve_props = __commonJS({
|
|
3771
|
-
"
|
|
3771
|
+
"../../../../../node_modules/yaml/dist/compose/resolve-props.js"(exports) {
|
|
3772
3772
|
"use strict";
|
|
3773
3773
|
function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
|
|
3774
3774
|
let spaceBefore = false;
|
|
@@ -3900,9 +3900,9 @@ var require_resolve_props = __commonJS({
|
|
|
3900
3900
|
}
|
|
3901
3901
|
});
|
|
3902
3902
|
|
|
3903
|
-
//
|
|
3903
|
+
// ../../../../../node_modules/yaml/dist/compose/util-contains-newline.js
|
|
3904
3904
|
var require_util_contains_newline = __commonJS({
|
|
3905
|
-
"
|
|
3905
|
+
"../../../../../node_modules/yaml/dist/compose/util-contains-newline.js"(exports) {
|
|
3906
3906
|
"use strict";
|
|
3907
3907
|
function containsNewline(key) {
|
|
3908
3908
|
if (!key)
|
|
@@ -3942,9 +3942,9 @@ var require_util_contains_newline = __commonJS({
|
|
|
3942
3942
|
}
|
|
3943
3943
|
});
|
|
3944
3944
|
|
|
3945
|
-
//
|
|
3945
|
+
// ../../../../../node_modules/yaml/dist/compose/util-flow-indent-check.js
|
|
3946
3946
|
var require_util_flow_indent_check = __commonJS({
|
|
3947
|
-
"
|
|
3947
|
+
"../../../../../node_modules/yaml/dist/compose/util-flow-indent-check.js"(exports) {
|
|
3948
3948
|
"use strict";
|
|
3949
3949
|
var utilContainsNewline = require_util_contains_newline();
|
|
3950
3950
|
function flowIndentCheck(indent, fc, onError) {
|
|
@@ -3960,9 +3960,9 @@ var require_util_flow_indent_check = __commonJS({
|
|
|
3960
3960
|
}
|
|
3961
3961
|
});
|
|
3962
3962
|
|
|
3963
|
-
//
|
|
3963
|
+
// ../../../../../node_modules/yaml/dist/compose/util-map-includes.js
|
|
3964
3964
|
var require_util_map_includes = __commonJS({
|
|
3965
|
-
"
|
|
3965
|
+
"../../../../../node_modules/yaml/dist/compose/util-map-includes.js"(exports) {
|
|
3966
3966
|
"use strict";
|
|
3967
3967
|
var identity = require_identity();
|
|
3968
3968
|
function mapIncludes(ctx, items, search) {
|
|
@@ -3976,9 +3976,9 @@ var require_util_map_includes = __commonJS({
|
|
|
3976
3976
|
}
|
|
3977
3977
|
});
|
|
3978
3978
|
|
|
3979
|
-
//
|
|
3979
|
+
// ../../../../../node_modules/yaml/dist/compose/resolve-block-map.js
|
|
3980
3980
|
var require_resolve_block_map = __commonJS({
|
|
3981
|
-
"
|
|
3981
|
+
"../../../../../node_modules/yaml/dist/compose/resolve-block-map.js"(exports) {
|
|
3982
3982
|
"use strict";
|
|
3983
3983
|
var Pair = require_Pair();
|
|
3984
3984
|
var YAMLMap = require_YAMLMap();
|
|
@@ -4084,9 +4084,9 @@ var require_resolve_block_map = __commonJS({
|
|
|
4084
4084
|
}
|
|
4085
4085
|
});
|
|
4086
4086
|
|
|
4087
|
-
//
|
|
4087
|
+
// ../../../../../node_modules/yaml/dist/compose/resolve-block-seq.js
|
|
4088
4088
|
var require_resolve_block_seq = __commonJS({
|
|
4089
|
-
"
|
|
4089
|
+
"../../../../../node_modules/yaml/dist/compose/resolve-block-seq.js"(exports) {
|
|
4090
4090
|
"use strict";
|
|
4091
4091
|
var YAMLSeq = require_YAMLSeq();
|
|
4092
4092
|
var resolveProps = require_resolve_props();
|
|
@@ -4135,9 +4135,9 @@ var require_resolve_block_seq = __commonJS({
|
|
|
4135
4135
|
}
|
|
4136
4136
|
});
|
|
4137
4137
|
|
|
4138
|
-
//
|
|
4138
|
+
// ../../../../../node_modules/yaml/dist/compose/resolve-end.js
|
|
4139
4139
|
var require_resolve_end = __commonJS({
|
|
4140
|
-
"
|
|
4140
|
+
"../../../../../node_modules/yaml/dist/compose/resolve-end.js"(exports) {
|
|
4141
4141
|
"use strict";
|
|
4142
4142
|
function resolveEnd(end, offset, reqSpace, onError) {
|
|
4143
4143
|
let comment = "";
|
|
@@ -4178,9 +4178,9 @@ var require_resolve_end = __commonJS({
|
|
|
4178
4178
|
}
|
|
4179
4179
|
});
|
|
4180
4180
|
|
|
4181
|
-
//
|
|
4181
|
+
// ../../../../../node_modules/yaml/dist/compose/resolve-flow-collection.js
|
|
4182
4182
|
var require_resolve_flow_collection = __commonJS({
|
|
4183
|
-
"
|
|
4183
|
+
"../../../../../node_modules/yaml/dist/compose/resolve-flow-collection.js"(exports) {
|
|
4184
4184
|
"use strict";
|
|
4185
4185
|
var identity = require_identity();
|
|
4186
4186
|
var Pair = require_Pair();
|
|
@@ -4372,9 +4372,9 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
4372
4372
|
}
|
|
4373
4373
|
});
|
|
4374
4374
|
|
|
4375
|
-
//
|
|
4375
|
+
// ../../../../../node_modules/yaml/dist/compose/compose-collection.js
|
|
4376
4376
|
var require_compose_collection = __commonJS({
|
|
4377
|
-
"
|
|
4377
|
+
"../../../../../node_modules/yaml/dist/compose/compose-collection.js"(exports) {
|
|
4378
4378
|
"use strict";
|
|
4379
4379
|
var identity = require_identity();
|
|
4380
4380
|
var Scalar = require_Scalar();
|
|
@@ -4437,9 +4437,9 @@ var require_compose_collection = __commonJS({
|
|
|
4437
4437
|
}
|
|
4438
4438
|
});
|
|
4439
4439
|
|
|
4440
|
-
//
|
|
4440
|
+
// ../../../../../node_modules/yaml/dist/compose/resolve-block-scalar.js
|
|
4441
4441
|
var require_resolve_block_scalar = __commonJS({
|
|
4442
|
-
"
|
|
4442
|
+
"../../../../../node_modules/yaml/dist/compose/resolve-block-scalar.js"(exports) {
|
|
4443
4443
|
"use strict";
|
|
4444
4444
|
var Scalar = require_Scalar();
|
|
4445
4445
|
function resolveBlockScalar(ctx, scalar, onError) {
|
|
@@ -4620,9 +4620,9 @@ var require_resolve_block_scalar = __commonJS({
|
|
|
4620
4620
|
}
|
|
4621
4621
|
});
|
|
4622
4622
|
|
|
4623
|
-
//
|
|
4623
|
+
// ../../../../../node_modules/yaml/dist/compose/resolve-flow-scalar.js
|
|
4624
4624
|
var require_resolve_flow_scalar = __commonJS({
|
|
4625
|
-
"
|
|
4625
|
+
"../../../../../node_modules/yaml/dist/compose/resolve-flow-scalar.js"(exports) {
|
|
4626
4626
|
"use strict";
|
|
4627
4627
|
var Scalar = require_Scalar();
|
|
4628
4628
|
var resolveEnd = require_resolve_end();
|
|
@@ -4841,9 +4841,9 @@ var require_resolve_flow_scalar = __commonJS({
|
|
|
4841
4841
|
}
|
|
4842
4842
|
});
|
|
4843
4843
|
|
|
4844
|
-
//
|
|
4844
|
+
// ../../../../../node_modules/yaml/dist/compose/compose-scalar.js
|
|
4845
4845
|
var require_compose_scalar = __commonJS({
|
|
4846
|
-
"
|
|
4846
|
+
"../../../../../node_modules/yaml/dist/compose/compose-scalar.js"(exports) {
|
|
4847
4847
|
"use strict";
|
|
4848
4848
|
var identity = require_identity();
|
|
4849
4849
|
var Scalar = require_Scalar();
|
|
@@ -4922,9 +4922,9 @@ var require_compose_scalar = __commonJS({
|
|
|
4922
4922
|
}
|
|
4923
4923
|
});
|
|
4924
4924
|
|
|
4925
|
-
//
|
|
4925
|
+
// ../../../../../node_modules/yaml/dist/compose/util-empty-scalar-position.js
|
|
4926
4926
|
var require_util_empty_scalar_position = __commonJS({
|
|
4927
|
-
"
|
|
4927
|
+
"../../../../../node_modules/yaml/dist/compose/util-empty-scalar-position.js"(exports) {
|
|
4928
4928
|
"use strict";
|
|
4929
4929
|
function emptyScalarPosition(offset, before, pos) {
|
|
4930
4930
|
if (before) {
|
|
@@ -4952,9 +4952,9 @@ var require_util_empty_scalar_position = __commonJS({
|
|
|
4952
4952
|
}
|
|
4953
4953
|
});
|
|
4954
4954
|
|
|
4955
|
-
//
|
|
4955
|
+
// ../../../../../node_modules/yaml/dist/compose/compose-node.js
|
|
4956
4956
|
var require_compose_node = __commonJS({
|
|
4957
|
-
"
|
|
4957
|
+
"../../../../../node_modules/yaml/dist/compose/compose-node.js"(exports) {
|
|
4958
4958
|
"use strict";
|
|
4959
4959
|
var Alias = require_Alias();
|
|
4960
4960
|
var identity = require_identity();
|
|
@@ -5058,9 +5058,9 @@ var require_compose_node = __commonJS({
|
|
|
5058
5058
|
}
|
|
5059
5059
|
});
|
|
5060
5060
|
|
|
5061
|
-
//
|
|
5061
|
+
// ../../../../../node_modules/yaml/dist/compose/compose-doc.js
|
|
5062
5062
|
var require_compose_doc = __commonJS({
|
|
5063
|
-
"
|
|
5063
|
+
"../../../../../node_modules/yaml/dist/compose/compose-doc.js"(exports) {
|
|
5064
5064
|
"use strict";
|
|
5065
5065
|
var Document = require_Document();
|
|
5066
5066
|
var composeNode = require_compose_node();
|
|
@@ -5101,9 +5101,9 @@ var require_compose_doc = __commonJS({
|
|
|
5101
5101
|
}
|
|
5102
5102
|
});
|
|
5103
5103
|
|
|
5104
|
-
//
|
|
5104
|
+
// ../../../../../node_modules/yaml/dist/compose/composer.js
|
|
5105
5105
|
var require_composer = __commonJS({
|
|
5106
|
-
"
|
|
5106
|
+
"../../../../../node_modules/yaml/dist/compose/composer.js"(exports) {
|
|
5107
5107
|
"use strict";
|
|
5108
5108
|
var node_process = __require("process");
|
|
5109
5109
|
var directives = require_directives();
|
|
@@ -5309,9 +5309,9 @@ ${end.comment}` : end.comment;
|
|
|
5309
5309
|
}
|
|
5310
5310
|
});
|
|
5311
5311
|
|
|
5312
|
-
//
|
|
5312
|
+
// ../../../../../node_modules/yaml/dist/parse/cst-scalar.js
|
|
5313
5313
|
var require_cst_scalar = __commonJS({
|
|
5314
|
-
"
|
|
5314
|
+
"../../../../../node_modules/yaml/dist/parse/cst-scalar.js"(exports) {
|
|
5315
5315
|
"use strict";
|
|
5316
5316
|
var resolveBlockScalar = require_resolve_block_scalar();
|
|
5317
5317
|
var resolveFlowScalar = require_resolve_flow_scalar();
|
|
@@ -5494,9 +5494,9 @@ var require_cst_scalar = __commonJS({
|
|
|
5494
5494
|
}
|
|
5495
5495
|
});
|
|
5496
5496
|
|
|
5497
|
-
//
|
|
5497
|
+
// ../../../../../node_modules/yaml/dist/parse/cst-stringify.js
|
|
5498
5498
|
var require_cst_stringify = __commonJS({
|
|
5499
|
-
"
|
|
5499
|
+
"../../../../../node_modules/yaml/dist/parse/cst-stringify.js"(exports) {
|
|
5500
5500
|
"use strict";
|
|
5501
5501
|
var stringify = (cst) => "type" in cst ? stringifyToken(cst) : stringifyItem(cst);
|
|
5502
5502
|
function stringifyToken(token) {
|
|
@@ -5555,9 +5555,9 @@ var require_cst_stringify = __commonJS({
|
|
|
5555
5555
|
}
|
|
5556
5556
|
});
|
|
5557
5557
|
|
|
5558
|
-
//
|
|
5558
|
+
// ../../../../../node_modules/yaml/dist/parse/cst-visit.js
|
|
5559
5559
|
var require_cst_visit = __commonJS({
|
|
5560
|
-
"
|
|
5560
|
+
"../../../../../node_modules/yaml/dist/parse/cst-visit.js"(exports) {
|
|
5561
5561
|
"use strict";
|
|
5562
5562
|
var BREAK = /* @__PURE__ */ Symbol("break visit");
|
|
5563
5563
|
var SKIP2 = /* @__PURE__ */ Symbol("skip children");
|
|
@@ -5617,9 +5617,9 @@ var require_cst_visit = __commonJS({
|
|
|
5617
5617
|
}
|
|
5618
5618
|
});
|
|
5619
5619
|
|
|
5620
|
-
//
|
|
5620
|
+
// ../../../../../node_modules/yaml/dist/parse/cst.js
|
|
5621
5621
|
var require_cst = __commonJS({
|
|
5622
|
-
"
|
|
5622
|
+
"../../../../../node_modules/yaml/dist/parse/cst.js"(exports) {
|
|
5623
5623
|
"use strict";
|
|
5624
5624
|
var cstScalar = require_cst_scalar();
|
|
5625
5625
|
var cstStringify = require_cst_stringify();
|
|
@@ -5719,9 +5719,9 @@ var require_cst = __commonJS({
|
|
|
5719
5719
|
}
|
|
5720
5720
|
});
|
|
5721
5721
|
|
|
5722
|
-
//
|
|
5722
|
+
// ../../../../../node_modules/yaml/dist/parse/lexer.js
|
|
5723
5723
|
var require_lexer = __commonJS({
|
|
5724
|
-
"
|
|
5724
|
+
"../../../../../node_modules/yaml/dist/parse/lexer.js"(exports) {
|
|
5725
5725
|
"use strict";
|
|
5726
5726
|
var cst = require_cst();
|
|
5727
5727
|
function isEmpty(ch) {
|
|
@@ -6308,9 +6308,9 @@ var require_lexer = __commonJS({
|
|
|
6308
6308
|
}
|
|
6309
6309
|
});
|
|
6310
6310
|
|
|
6311
|
-
//
|
|
6311
|
+
// ../../../../../node_modules/yaml/dist/parse/line-counter.js
|
|
6312
6312
|
var require_line_counter = __commonJS({
|
|
6313
|
-
"
|
|
6313
|
+
"../../../../../node_modules/yaml/dist/parse/line-counter.js"(exports) {
|
|
6314
6314
|
"use strict";
|
|
6315
6315
|
var LineCounter = class {
|
|
6316
6316
|
constructor() {
|
|
@@ -6339,9 +6339,9 @@ var require_line_counter = __commonJS({
|
|
|
6339
6339
|
}
|
|
6340
6340
|
});
|
|
6341
6341
|
|
|
6342
|
-
//
|
|
6342
|
+
// ../../../../../node_modules/yaml/dist/parse/parser.js
|
|
6343
6343
|
var require_parser = __commonJS({
|
|
6344
|
-
"
|
|
6344
|
+
"../../../../../node_modules/yaml/dist/parse/parser.js"(exports) {
|
|
6345
6345
|
"use strict";
|
|
6346
6346
|
var node_process = __require("process");
|
|
6347
6347
|
var cst = require_cst();
|
|
@@ -7213,9 +7213,9 @@ var require_parser = __commonJS({
|
|
|
7213
7213
|
}
|
|
7214
7214
|
});
|
|
7215
7215
|
|
|
7216
|
-
//
|
|
7216
|
+
// ../../../../../node_modules/yaml/dist/public-api.js
|
|
7217
7217
|
var require_public_api = __commonJS({
|
|
7218
|
-
"
|
|
7218
|
+
"../../../../../node_modules/yaml/dist/public-api.js"(exports) {
|
|
7219
7219
|
"use strict";
|
|
7220
7220
|
var composer = require_composer();
|
|
7221
7221
|
var Document = require_Document();
|
|
@@ -7310,9 +7310,9 @@ var require_public_api = __commonJS({
|
|
|
7310
7310
|
}
|
|
7311
7311
|
});
|
|
7312
7312
|
|
|
7313
|
-
//
|
|
7313
|
+
// ../../../../../node_modules/yaml/dist/index.js
|
|
7314
7314
|
var require_dist = __commonJS({
|
|
7315
|
-
"
|
|
7315
|
+
"../../../../../node_modules/yaml/dist/index.js"(exports) {
|
|
7316
7316
|
"use strict";
|
|
7317
7317
|
var composer = require_composer();
|
|
7318
7318
|
var Document = require_Document();
|
|
@@ -8478,7 +8478,7 @@ async function postLong(path, body, timeoutMs = 9e5) {
|
|
|
8478
8478
|
const req = httpsRequest(`${base}${path}`, {
|
|
8479
8479
|
method: "POST",
|
|
8480
8480
|
timeout: timeoutMs,
|
|
8481
|
-
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.
|
|
8481
|
+
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.65.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
|
|
8482
8482
|
}, (res) => {
|
|
8483
8483
|
let buf = "";
|
|
8484
8484
|
res.on("data", (c) => buf += c);
|
|
@@ -8520,7 +8520,7 @@ async function request(path, opts = {}, retried = false) {
|
|
|
8520
8520
|
method: opts.method ?? (opts.body !== void 0 || opts.raw !== void 0 ? "POST" : "GET"),
|
|
8521
8521
|
headers: {
|
|
8522
8522
|
authorization: `Bearer ${token}`,
|
|
8523
|
-
"user-agent": `ghosty-cli/${"0.
|
|
8523
|
+
"user-agent": `ghosty-cli/${"0.65.0"}`,
|
|
8524
8524
|
"accept-language": lang(),
|
|
8525
8525
|
...opts.body !== void 0 ? { "content-type": "application/json" } : {},
|
|
8526
8526
|
...opts.headers
|
|
@@ -9094,17 +9094,18 @@ async function agentsLs(workspace, f = {}) {
|
|
|
9094
9094
|
const r = await api("/api/v2/me/agents?client=cli");
|
|
9095
9095
|
const list = (workspace ? r.agentes.filter((a) => a.espacio?.nombre === workspace) : r.agentes).filter((a) => !f.engine || (a.motor ?? a.origen) === f.engine);
|
|
9096
9096
|
if (f.ids) return void process.stdout.write(list.map((a) => a.id).join("\n") + (list.length ? "\n" : ""));
|
|
9097
|
-
const spaceOf = (a) => a.espacio?.tipo === "workspace" ? a.espacio.nombre : a.espacio?.tipo ?? "";
|
|
9097
|
+
const spaceOf = (a) => a.espacio?.tipo === "workspace" ? a.espacio.nombre : a.workspaceSlug ?? a.espacio?.tipo ?? "";
|
|
9098
9098
|
const rows = list.map((a) => ({
|
|
9099
9099
|
id: a.id,
|
|
9100
9100
|
name: a.nombre,
|
|
9101
9101
|
engine: a.motor ?? a.origen,
|
|
9102
|
+
model: a.modelId ?? null,
|
|
9102
9103
|
source: a.origen,
|
|
9103
9104
|
workspace: spaceOf(a),
|
|
9104
9105
|
lastActivity: a.ultimaActividad ?? null,
|
|
9105
9106
|
...a.compartidoPor ? { sharedBy: a.compartidoPor } : {}
|
|
9106
9107
|
}));
|
|
9107
|
-
out(rows, () => `${table(rows, ["id", "name", "engine", "workspace", "lastActivity"])}${workspace ? `
|
|
9108
|
+
out(rows, () => `${table(rows, ["id", "name", "engine", "model", "workspace", "lastActivity"])}${workspace ? `
|
|
9108
9109
|
${dim(t(`only ${workspace} (ghosty use) \xB7 all: --all`, `s\xF3lo ${workspace} (ghosty use) \xB7 todos: --all`))}` : ""}`);
|
|
9109
9110
|
}
|
|
9110
9111
|
function parseEnv(raw) {
|
|
@@ -9341,8 +9342,14 @@ ${dim(t(`${r3.beforeChars} \u2192 ${r3.chars} chars. Dry run: nothing changed.`,
|
|
|
9341
9342
|
const raw = await readFile3(resolve(v.catalog), "utf8");
|
|
9342
9343
|
body.catalogo = v.catalog.toLowerCase().endsWith(".json") ? JSON.parse(raw) : parseCsv(raw);
|
|
9343
9344
|
}
|
|
9345
|
+
if (v.box) {
|
|
9346
|
+
const [mem, workers] = v.box.split(":").map((x) => Number(x.trim()));
|
|
9347
|
+
if (!Number.isInteger(mem) || workers !== void 0 && !Number.isInteger(workers))
|
|
9348
|
+
throw usage(t("Bad --box.", "--box inv\xE1lido."), "ghosty agents set <agent-id> --box 4096[:10] (MB[:conversations])");
|
|
9349
|
+
body.box = { memMb: mem, ...workers !== void 0 ? { workersPerVm: workers } : {} };
|
|
9350
|
+
}
|
|
9344
9351
|
if (!Object.keys(body).length && done.length) return out({ id, updated: done }, () => `${lavender("\u2713")} ${t("Updated", "Actualizado")}: ${done.join(" \xB7 ")}`);
|
|
9345
|
-
if (!Object.keys(body).length) throw usage(t("Nothing to change.", "Nada que cambiar."), t("Use", "Usa") + " --name, --engine, --model, --prompt, --prompt-file, --env, --unset-env, --channels, --toolsets, --tool, --connect, --disconnect, --voice, --voice-replies, --auto-stage, --quote, --catalog, --bag " + t("or", "o") + " --avatar.");
|
|
9352
|
+
if (!Object.keys(body).length) throw usage(t("Nothing to change.", "Nada que cambiar."), t("Use", "Usa") + " --name, --engine, --model, --prompt, --prompt-file, --env, --unset-env, --channels, --toolsets, --tool, --connect, --disconnect, --voice, --voice-replies, --auto-stage, --quote, --catalog, --box, --bag " + t("or", "o") + " --avatar.");
|
|
9346
9353
|
const r = await api(agentPath(id), { method: "PATCH", body });
|
|
9347
9354
|
out(r, () => `${lavender("\u2713")} ${t("Updated", "Actualizado")}: ${[...Object.keys(body), ...done].join(", ")}.`);
|
|
9348
9355
|
}
|
|
@@ -9820,7 +9827,12 @@ async function writeEmbedComponent(e, baseUrl2, file, force) {
|
|
|
9820
9827
|
return relative(process.cwd(), path) || path;
|
|
9821
9828
|
}
|
|
9822
9829
|
async function agentsBox(id, v) {
|
|
9823
|
-
id = need(id, "agent id", "ghosty agents box <agent-id> [--check PATH] [--contains PATH=TEXT] [--recycle]");
|
|
9830
|
+
id = need(id, "agent id", "ghosty agents box <agent-id> [--check PATH] [--contains PATH=TEXT] [--recycle | --start]");
|
|
9831
|
+
if (v.start) {
|
|
9832
|
+
const r2 = await api(agentPath(id, "/box"), { method: "POST", body: { start: true } });
|
|
9833
|
+
out(r2, () => `${lavender("\u2713")} ${t("Box up", "Caja arriba")}: ${bold(r2?.sandboxId ?? "?")} ${dim(serverText(r2?.note ?? ""))}`);
|
|
9834
|
+
return;
|
|
9835
|
+
}
|
|
9824
9836
|
if (v.recycle) {
|
|
9825
9837
|
const r2 = await api(agentPath(id, "/box"), { method: "POST", body: { recycle: true, ...v.force ? { force: true } : {}, ...v.reenv ? { reenv: true } : {} } });
|
|
9826
9838
|
out(r2, () => `${lavender("\u2713")} ${t("Recycled.", "Reciclada.")} ${dim(serverText(r2?.note ?? ""))}
|
|
@@ -10432,7 +10444,7 @@ async function call(path, v, init = {}) {
|
|
|
10432
10444
|
"x-ghosty-ts": ts,
|
|
10433
10445
|
"x-ghosty-sig": sig,
|
|
10434
10446
|
"content-type": "application/json",
|
|
10435
|
-
"user-agent": `ghosty-cli/${"0.
|
|
10447
|
+
"user-agent": `ghosty-cli/${"0.65.0"}`
|
|
10436
10448
|
},
|
|
10437
10449
|
body: method === "GET" ? void 0 : raw
|
|
10438
10450
|
});
|
|
@@ -11144,6 +11156,7 @@ async function turnsCmd(sub, id, turnId, v) {
|
|
|
11144
11156
|
if (status) q.set("state", status);
|
|
11145
11157
|
if (v.since) q.set("since", v.since);
|
|
11146
11158
|
if (v.session) q.set("session", v.session);
|
|
11159
|
+
if (v.canal) q.set("canal", v.canal);
|
|
11147
11160
|
q.set("limit", v.limit ?? "20");
|
|
11148
11161
|
const r = await api(agentPath2(id, `/turns?${q}`));
|
|
11149
11162
|
const when = (s2) => s2.slice(0, 16).replace("T", " ");
|
|
@@ -11152,13 +11165,14 @@ async function turnsCmd(sub, id, turnId, v) {
|
|
|
11152
11165
|
started: when(tu.startedAt),
|
|
11153
11166
|
state: tu.state === "error" ? red(tu.state) : tu.state,
|
|
11154
11167
|
secs: tu.ms == null ? "" : Math.round(tu.ms / 1e3),
|
|
11168
|
+
canal: tu.canal ?? "",
|
|
11155
11169
|
from: tu.surface ?? "",
|
|
11156
11170
|
session: tu.sessionId.slice(0, 24),
|
|
11157
11171
|
resumed: resumedCell(tu.sdk),
|
|
11158
11172
|
error: serverText(tu.error ?? "").replace(/\s+/g, " ").slice(0, 90)
|
|
11159
11173
|
}));
|
|
11160
11174
|
const tally = Object.entries(r.counts).map(([k, n]) => `${k} ${n}`).join(" \xB7 ");
|
|
11161
|
-
out(r, () => rows.length ? `${table(rows, ["id", "started", "state", "secs", "from", "session", ...rows.some((r2) => r2.resumed) ? ["resumed"] : [], "error"])}
|
|
11175
|
+
out(r, () => rows.length ? `${table(rows, ["id", "started", "state", "secs", "canal", "from", "session", ...rows.some((r2) => r2.resumed) ? ["resumed"] : [], "error"])}
|
|
11162
11176
|
${dim(`${v.since ? t(`since ${v.since}: `, `desde ${v.since}: `) : ""}${tally} \xB7 ${t("where the time went", "en qu\xE9 se fue el tiempo")}: ghosty turns show ${id} <turn-id>`)}` : dim(t(`No ${status ?? ""} turns${v.since ? ` since ${v.since}` : ""}.`, `Sin turnos${status ? ` ${status}` : ""}${v.since ? ` desde ${v.since}` : ""}.`)));
|
|
11163
11177
|
}
|
|
11164
11178
|
async function turnsGrep(id, text, v) {
|
|
@@ -11231,6 +11245,15 @@ async function turnShow(id, turnId, full = false) {
|
|
|
11231
11245
|
return [head, ...io, ...r.steps.map(line2), dim(`${t("slowest", "lo m\xE1s lento")}: ${top || "\u2014"}`)].join("\n");
|
|
11232
11246
|
});
|
|
11233
11247
|
}
|
|
11248
|
+
function doctorInfoLines(i) {
|
|
11249
|
+
const yes = t("yes", "s\xED");
|
|
11250
|
+
return [
|
|
11251
|
+
`${dim(t("model", "modelo"))} ${i.engine} \xB7 ${i.model ?? t("default", "por defecto")} \xB7 effort ${i.effort ?? t("model default", "el del modelo")}`,
|
|
11252
|
+
...i.box ? [`${dim(t("box", "caja"))} ${i.box.memMb} MB \xB7 ${t(`${i.box.workersPerVm} conversations per box`, `${i.box.workersPerVm} conversaciones por caja`)}`] : [],
|
|
11253
|
+
`${dim(t("native subagents", "subagentes nativos"))} ${i.nativeSubagents ? yes : "no"}`,
|
|
11254
|
+
`${dim(t("answers /c without an account", "atiende /c sin cuenta"))} ${i.anonNative ? yes : "no"}`
|
|
11255
|
+
];
|
|
11256
|
+
}
|
|
11234
11257
|
async function agentsDoctor(id, v) {
|
|
11235
11258
|
id = need2(id, t("agent id", "el id del agente"), "ghosty agents doctor <agent-id>");
|
|
11236
11259
|
const r = await api(agentPath2(id, "/doctor"));
|
|
@@ -11238,7 +11261,7 @@ async function agentsDoctor(id, v) {
|
|
|
11238
11261
|
if (globals.json) out(r);
|
|
11239
11262
|
else {
|
|
11240
11263
|
const mark = { ok: lavender("\u2713"), warn: "\x1B[33m!\x1B[0m", error: red("\u2717") };
|
|
11241
|
-
const lines = [];
|
|
11264
|
+
const lines = r.info ? doctorInfoLines(r.info) : [];
|
|
11242
11265
|
for (const c of r.checks) {
|
|
11243
11266
|
if (c.level === "ok" && !v.verbose) continue;
|
|
11244
11267
|
lines.push(`${process.stdout.isTTY ? mark[c.level] : { ok: "\u2713", warn: "!", error: "\u2717" }[c.level]} ${serverText(c.title)}`);
|
|
@@ -12116,6 +12139,8 @@ var HELPS_ES = {
|
|
|
12116
12139
|
["# pause it there; it keeps its @handle", "# lo pausa ah\xED; conserva su @handle"],
|
|
12117
12140
|
["# archive: stops answering everywhere, hidden, deleted after 7 days unless restored", "# archivar: deja de contestar en todos lados, se oculta y se borra a los 7 d\xEDas si no lo restauras"],
|
|
12118
12141
|
["# archived agents and when they get deleted", "# los archivados y cu\xE1ndo se borran"],
|
|
12142
|
+
["# --json: model and workspace on every row", "# --json: modelo y espacio en cada fila"],
|
|
12143
|
+
["# also: model, effort, native subagents, answers /c, box size (staff)", "# tambi\xE9n: modelo, effort, subagentes nativos, si atiende /c, tama\xF1o de caja (staff)"],
|
|
12119
12144
|
["# remove it from there; the agent stays", "# lo quita de ah\xED; el agente sigue"],
|
|
12120
12145
|
["# web widget: chat bubble on your site, only on those domains", "# widget web: burbuja de chat en tu sitio, s\xF3lo en esos dominios"],
|
|
12121
12146
|
["# state + the <script> to paste", "# su estado + el <script> para pegar"]
|
|
@@ -12184,10 +12209,12 @@ var HELPS_ES = {
|
|
|
12184
12209
|
["--check PATH", "box: este archivo debe existir en la m\xE1quina (repetible), p. ej. un archivo que trae la imagen nueva"],
|
|
12185
12210
|
["--contains PATH=TEXT", "box: ese archivo debe contener TEXT (un cambio que no agrega archivos)"],
|
|
12186
12211
|
["--recycle", "box: reemplaza sus m\xE1quinas (nunca a media respuesta); pool: la nueva nace en el siguiente turno; ACP (goose, lite) igual, con el historial del \xFAltimo respaldo"],
|
|
12212
|
+
["--start", "box: levanta (o despierta) su caja ya, sin gastar un turno; dentro de las cajas del plan (503 si el espacio est\xE1 lleno)"],
|
|
12187
12213
|
["--reenv / --force", "box --recycle en ACP: --reenv s\xF3lo re-hornea el env en la misma caja; --force la recrea aunque est\xE9 ocupada (due\xF1o o staff)"],
|
|
12188
12214
|
["--unset-env K1,K2", "set: borra esas variables del env (--env K= tambi\xE9n borra K)"],
|
|
12189
12215
|
["--tool [ch:]tool=on|off", "set: prende/apaga una tool en un canal (wa:actualizar_identidad=off) o en todos (crm_buscar=off); separadas por comas"],
|
|
12190
12216
|
["--bag NAME|none", "set: de qu\xE9 bolsa de tokens de su espacio gasta; none = el saldo del espacio (s\xF3lo staff)"],
|
|
12217
|
+
["--box MB[:N]", "set: RAM de su caja (1024, 2048, 4096, 8192) y conversaciones a la vez, p. ej. 4096:10; recicla sus cajas (s\xF3lo staff)"],
|
|
12191
12218
|
["--avatar URL|FILE", "set: su cara en Teams: una liga https o un JPEG/PNG/WebP local (se guarda en img.ghosty.studio)"],
|
|
12192
12219
|
["--from-workspace", "rm: lo desactiva en cada Teams donde est\xE9 y luego lo borra (due\xF1o o staff)"],
|
|
12193
12220
|
["--prompt-mode M", "set: append (default: su prompt + la persona de Ghosty) o replace (s\xF3lo su prompt)"],
|
|
@@ -12265,7 +12292,8 @@ var HELPS_ES = {
|
|
|
12265
12292
|
["--quota-hits", "ls --workspace: mensajes (WhatsApp Business y Teams) que no abrieron turno porque se acab\xF3 el saldo"],
|
|
12266
12293
|
["--all", "stats (staff): cuenta tambi\xE9n staff, canal prueba y agentes borrados"],
|
|
12267
12294
|
["--session S", "ls: s\xF3lo los turnos de esa conversaci\xF3n. Los de Claude dicen \xABresumed\xBB: \u2713 = retom\xF3 la sesi\xF3n del SDK, \xAB1.er turno\xBB = primer turno de una sesi\xF3n nueva del SDK (no es p\xE9rdida de memoria), \u26A0 desde cero (orphan|stale|replaced) = perdi\xF3 la memoria"],
|
|
12268
|
-
["--role R", "grep: user (lo que escribi\xF3 el cliente) | agent (lo que contest\xF3 el agente)"]
|
|
12295
|
+
["--role R", "grep: user (lo que escribi\xF3 el cliente) | agent (lo que contest\xF3 el agente)"],
|
|
12296
|
+
["--canal C", "ls: s\xF3lo los turnos de ese canal: chat | teams | whatsapp | wa | messenger | programado | prueba | demo | embed | anon (/c sin cuenta). Cada fila (y --json) dice su canal"]
|
|
12269
12297
|
],
|
|
12270
12298
|
notes: ["--skipped guarda 30 d\xEDas y s\xF3lo ve lo que Formmy reenvi\xF3: si Formmy no reenv\xEDa (ghosty channels whatsapp ls, \xABformmy forwards\xBB), a gs nunca le llega el mensaje.", "show imprime lo que entr\xF3 y lo que sali\xF3 en cualquier motor o canal (grupos de WhatsApp tambi\xE9n); la l\xEDnea de tiempo lee el transcript del worker, as\xED que s\xF3lo motores del pool (no ACP/goose)."]
|
|
12271
12299
|
},
|
|
@@ -12483,14 +12511,17 @@ var HELPS_ES = {
|
|
|
12483
12511
|
]
|
|
12484
12512
|
},
|
|
12485
12513
|
usage: {
|
|
12486
|
-
summary: "Tu plan y cu\xE1nto llevas usado esta semana y este mes. Con --workspace: turnos y tokens facturables de un espacio por agente y/o por d\xEDa. Con --boxes: sus cajas contra el tope.",
|
|
12514
|
+
summary: "Tu plan y cu\xE1nto llevas usado esta semana y este mes. Con --workspace: turnos y tokens facturables de un espacio por agente y/o por d\xEDa. Con --agent: tokens y USD de un agente por modelo, d\xEDa o canal. Con --boxes: sus cajas contra el tope.",
|
|
12515
|
+
replace: [["# one agent: tokens and USD per model", "# un agente: tokens y USD por modelo"]],
|
|
12487
12516
|
flags: [
|
|
12488
12517
|
["--images", "(staff de Ghosty) cargos de im\xE1genes contra las que entregaron los agentes, por plan; costo guardado contra la tabla. Mucha diferencia = el medidor no est\xE1 reportando"],
|
|
12489
12518
|
["--plan P", "--images: s\xF3lo free | pro | power | max | workspace"],
|
|
12490
12519
|
["--boxes", "las cajas del espacio contra su tope (spares, dormidas) y, por agente: conversaciones por caja, cajas, despiertas, spares, turnos corriendo ahora"],
|
|
12491
12520
|
["--workspace SLUG", "qu\xE9 espacio (due\xF1o o staff); con --boxes el default es el de ghosty use"],
|
|
12492
12521
|
["--by agent|day|agent,day", "--workspace: filas por agente (default), por d\xEDa (CDMX) o las dos \xB7 con --boxes: template = toda la flota por template (staff)"],
|
|
12493
|
-
["--days N", "--workspace: cu\xE1ntos d\xEDas hacia atr\xE1s (default 14, m\xE1x. 92)"]
|
|
12522
|
+
["--days N", "--workspace / --agent: cu\xE1ntos d\xEDas hacia atr\xE1s (default 14, m\xE1x. 92)"],
|
|
12523
|
+
["--agent ID", "el gasto de un agente por modelo (default), d\xEDa (CDMX) y/o canal (anon = /c sin cuenta, messenger, whatsapp\u2026; other = chat/Teams)"],
|
|
12524
|
+
["--cost", "--agent: USD a precio de lista del proveedor por fila (con escritura de cach\xE9): lo que costar\xEDa el agente por API"]
|
|
12494
12525
|
],
|
|
12495
12526
|
notes: ["failed = turnos que terminaron en error o se detuvieron. \xABno balance\xBB = mensajes que no abrieron turno porque se acab\xF3 la bolsa (ghosty turns ls --workspace X --quota-hits los lista)."]
|
|
12496
12527
|
},
|
|
@@ -12590,6 +12621,14 @@ var HELPS_ES = {
|
|
|
12590
12621
|
"Revocar corta en el siguiente request. Asignar dos veces no hace nada (una sola activa por par)."
|
|
12591
12622
|
]
|
|
12592
12623
|
},
|
|
12624
|
+
settings: {
|
|
12625
|
+
summary: "Perillas de la plataforma que se mueven desde el CLI (staff de Ghosty): qu\xE9 agente atiende /c sin cuenta en caja, qu\xE9 agentes y superficies tienen subagentes nativos, el constructor de p\xE1ginas para todos. Cada cambio queda en la bit\xE1cora; las que llevan JSON siguen en /admin/settings.",
|
|
12626
|
+
flags: [],
|
|
12627
|
+
notes: [
|
|
12628
|
+
"En listas (ids, superficies) +x agrega y -x quita sobre lo que vale hoy (fila, env o default); sin signos, se reemplaza.",
|
|
12629
|
+
"unset borra la fila: vuelve a mandar el env o el default del c\xF3digo."
|
|
12630
|
+
]
|
|
12631
|
+
},
|
|
12593
12632
|
audit: {
|
|
12594
12633
|
summary: "La bit\xE1cora (AuditEvent): qui\xE9n entr\xF3 \xABcomo\xBB qui\xE9n, qu\xE9 cambi\xF3 en la ficha y en los canales de un agente, pausas y respuestas desde el CLI, traspasos, staff que entra o sale. El staff de Ghosty ve todo; cualquier otra cuenta, s\xF3lo lo de sus espacios y agentes.",
|
|
12595
12634
|
flags: [
|
|
@@ -12641,16 +12680,16 @@ var HELPS = {
|
|
|
12641
12680
|
agents: {
|
|
12642
12681
|
summary: "Create, inspect, change, check and delete agents.",
|
|
12643
12682
|
usage: [
|
|
12644
|
-
"ghosty agents ls [--engine E] [--ids] [--sponsor EMAIL | --owner EMAIL]",
|
|
12683
|
+
"ghosty agents ls [--engine E] [--ids] [--sponsor EMAIL | --owner EMAIL] # --json: model and workspace on every row",
|
|
12645
12684
|
"ghosty agents ls --handle build [--workspace WS] # who is @build in Teams (that workspace, or all of yours)",
|
|
12646
12685
|
"ghosty agents create --name NAME [--engine E] [--model M] [--prompt TEXT | --prompt-file FILE] [--env K=V,\u2026] [--workspace SLUG] [--channels teams=off,\u2026] [--like AGENT [--copy-dbs] [--board same|main|new|NAME] [--no-notify] [--dry-run]]",
|
|
12647
|
-
"ghosty agents get <agent-id> [--fields name,model,prompt] [--prompt-out FILE]",
|
|
12686
|
+
"ghosty agents get|show <agent-id> [--fields name,model,prompt] [--prompt-out FILE]",
|
|
12648
12687
|
"ghosty agents export <agent-id> [--out DIR] # the agent as a file; see ghosty apply --help",
|
|
12649
|
-
"ghosty agents set <agent-id> [--name] [--engine] [--model] [--prompt | --prompt-file] [--env K=V,\u2026] [--unset-env K1,K2] [--connect ID,\u2026] [--disconnect ID,\u2026] [--voice E:ID] [--voice-replies auto|off] [--auto-stage on|off] [--toolsets crm,sales | +crm,-sales] [--tool [channel:]tool=on|off,\u2026] [--bag NAME|none] [--avatar URL|FILE]",
|
|
12688
|
+
"ghosty agents set <agent-id> [--name] [--engine] [--model] [--prompt | --prompt-file] [--env K=V,\u2026] [--unset-env K1,K2] [--connect ID,\u2026] [--disconnect ID,\u2026] [--voice E:ID] [--voice-replies auto|off] [--auto-stage on|off] [--toolsets crm,sales | +crm,-sales] [--tool [channel:]tool=on|off,\u2026] [--bag NAME|none] [--box MB[:N]] [--avatar URL|FILE]",
|
|
12650
12689
|
"ghosty agents set <agent-id> --engine E [--model M] --dry-run # what changing the engine does (sessions, machines, memory), without changing it",
|
|
12651
12690
|
"ghosty agents set <agent-id> --prompt-base <base-agent-id> --prompt-overlay overlay.json [--dry-run [--out FILE]] | --prompt-base none",
|
|
12652
12691
|
"ghosty agents set <agent-id> --prompt-patch overlay.json [--prompt-append FILE] [--dry-run] # change one piece of the prompt, on the server's current one",
|
|
12653
|
-
"ghosty agents doctor <agent-id> [--verbose]",
|
|
12692
|
+
"ghosty agents doctor <agent-id> [--verbose] # also: model, effort, native subagents, answers /c, box size (staff)",
|
|
12654
12693
|
"ghosty agents doctor --user <email> [agent-id] [--turns 8] # staff: their agents, latest turns, plan and boxes",
|
|
12655
12694
|
"ghosty agents docs ls|grant|revoke <agent-id> [doc\u2026] [--write] [--no-deliver] [--like AGENT]",
|
|
12656
12695
|
"ghosty agents docs add <agent-id> --url URL | --file PATH [--name N] [--description TEXT] [--grant read|write|no] [--no-deliver]",
|
|
@@ -12667,6 +12706,7 @@ var HELPS = {
|
|
|
12667
12706
|
"ghosty agents teams rm <agent-id> <workspace> [--yes] # remove it from there; the agent stays",
|
|
12668
12707
|
"ghosty agents restart <agent-id>",
|
|
12669
12708
|
"ghosty agents box <agent-id> [--check PATH]\u2026 [--contains PATH=TEXT]\u2026 [--recycle]",
|
|
12709
|
+
"ghosty agents box <agent-id> --start # start (or wake) its box now, without spending a turn",
|
|
12670
12710
|
"ghosty agents demo enable|disable <agent-id>",
|
|
12671
12711
|
'ghosty agents demo <agent-id> [--slug NAME] [--expires "YYYY-MM-DDTHH:MM"|no] [--turns N] [--per-ip N] [--welcome TEXT] [--starter TEXT] [--chips "a|b|c"] [--sponsor on|off] [--rotate]',
|
|
12672
12712
|
"ghosty agents embed enable|disable <agent-id> [--domains a.com,*.b.com] # web widget: chat bubble on your site, only on those domains",
|
|
@@ -12744,10 +12784,12 @@ var HELPS = {
|
|
|
12744
12784
|
["--check PATH", "box: this file must exist in the machine (repeatable), e.g. a file the new image brings"],
|
|
12745
12785
|
["--contains PATH=TEXT", "box: that file must contain TEXT (a change that adds no files)"],
|
|
12746
12786
|
["--recycle", "box: replace its machines (not mid-turn); pool: the new one starts on the next turn; ACP (goose, lite) too, history from its last backup"],
|
|
12787
|
+
["--start", "box: start (or wake) its box now, without a turn; within the plan's boxes (503 if the space is full)"],
|
|
12747
12788
|
["--reenv / --force", "box --recycle on ACP: --reenv only re-bakes the env in the same box; --force recreates it even if busy (owner or staff)"],
|
|
12748
12789
|
["--unset-env K1,K2", "set: delete these env variables (--env K= also deletes K)"],
|
|
12749
12790
|
["--tool [ch:]tool=on|off", "set: one tool on/off in one channel (wa:actualizar_identidad=off) or everywhere (crm_buscar=off); comma-separated"],
|
|
12750
12791
|
["--bag NAME|none", "set: the token bag of its workspace it spends from; none = the workspace balance (staff only)"],
|
|
12792
|
+
["--box MB[:N]", "set: its box's RAM (1024, 2048, 4096, 8192) and conversations at once, e.g. 4096:10; recycles its boxes (staff only)"],
|
|
12751
12793
|
["--avatar URL|FILE", "set: its face in Teams: an https link or a local JPEG/PNG/WebP (stored at img.ghosty.studio)"],
|
|
12752
12794
|
["--from-workspace", "rm: turn it off in every Teams where it's active, then delete it (owner or staff)"],
|
|
12753
12795
|
["--prompt-mode M", "set: append (default: its prompt + Ghosty's persona) or replace (its prompt only)"],
|
|
@@ -12781,6 +12823,7 @@ var HELPS = {
|
|
|
12781
12823
|
"ghosty agents embed <id> --theme-source site --site-url https://palmeralegal.mx",
|
|
12782
12824
|
"ghosty agents embed <id> theme > tema.json \xB7 ghosty agents embed <id> --style-file tema.json",
|
|
12783
12825
|
`ghosty agents embed <id> --copy '{"waking":"Un momento, por favor","thinking":["Revisando su consulta\u2026","Consultando el expediente\u2026"],"showDuration":false}'`,
|
|
12826
|
+
"ghosty agents box <id> --start",
|
|
12784
12827
|
"ghosty agents box <id> --contains /opt/claude-worker/skills/pdf-doc/render-doc.mjs=pdf-templates",
|
|
12785
12828
|
"ghosty agents set <id> --tool wa:actualizar_identidad=off,teams:actualizar_identidad=on",
|
|
12786
12829
|
'ghosty agents set minighosty --bag "MiniGhosty" --avatar https://www.ghosty.studio/avatars/minighosty.png',
|
|
@@ -12879,7 +12922,7 @@ var HELPS = {
|
|
|
12879
12922
|
},
|
|
12880
12923
|
turns: {
|
|
12881
12924
|
summary: "An agent's recent turns: what answered, what failed and why, and where one turn's time went.",
|
|
12882
|
-
usage: ["ghosty turns ls <agent-id> [--errors | --status STATE | --skipped] [--since 1h] [--limit N]", "ghosty turns ls --workspace <slug> --quota-hits [--days 14]", "ghosty turns show <agent-id> [turn-id | last] [--full]", 'ghosty turns grep <agent-id> "text" [--since 7d] [--role user|agent] [--session S] # what the customer or the agent said, and its turn', "ghosty turns cancel <agent-id> <conversation-id> # stop the turn AND its background jobs", "ghosty turns stats [--since 14d] [--all] # staff: real failure rate by engine, channel (Teams/A2A too) and error"],
|
|
12925
|
+
usage: ["ghosty turns ls <agent-id> [--errors | --status STATE | --skipped] [--canal C] [--since 1h] [--limit N]", "ghosty turns ls --workspace <slug> --quota-hits [--days 14]", "ghosty turns show <agent-id> [turn-id | last] [--full]", 'ghosty turns grep <agent-id> "text" [--since 7d] [--role user|agent] [--session S] # what the customer or the agent said, and its turn', "ghosty turns cancel <agent-id> <conversation-id> # stop the turn AND its background jobs", "ghosty turns stats [--since 14d] [--all] # staff: real failure rate by engine, channel (Teams/A2A too) and error"],
|
|
12883
12926
|
flags: [
|
|
12884
12927
|
["--errors", "only failed turns (same as --status error)"],
|
|
12885
12928
|
["--skipped", "ls: WhatsApp Business customer messages that did NOT open a turn, and why (operator active, records only, paused, reaction, channel off, no balance)"],
|
|
@@ -12890,9 +12933,10 @@ var HELPS = {
|
|
|
12890
12933
|
["--quota-hits", "ls --workspace: messages (WhatsApp Business and Teams) that got no turn because the balance ran out"],
|
|
12891
12934
|
["--all", "stats (staff): also count staff users, the test channel and deleted agents"],
|
|
12892
12935
|
["--session S", "ls: only this conversation's turns. Claude turns show \xABresumed\xBB: \u2713 = it kept the SDK session, \xAB1st turn\xBB = first turn of a new SDK session (not a memory loss), \u26A0 from scratch (orphan|stale|replaced) = it lost its memory"],
|
|
12893
|
-
["--role R", "grep: user (what the customer wrote) | agent (what the agent answered)"]
|
|
12936
|
+
["--role R", "grep: user (what the customer wrote) | agent (what the agent answered)"],
|
|
12937
|
+
["--canal C", "ls: only turns from that channel: chat | teams | whatsapp | wa | messenger | programado | prueba | demo | embed | anon (/c without an account). Each row (and --json) says its canal"]
|
|
12894
12938
|
],
|
|
12895
|
-
examples: ["ghosty turns ls <id> --errors --since 1h", "ghosty turns ls --workspace descti --quota-hits --days 30", "ghosty turns ls <id> --skipped --since 1d", "ghosty turns ls <id> --json --limit 100", "ghosty turns show <id> # last turn: each tool, its seconds, output tokens", 'ghosty turns grep <id> "IVA" --since 7d --role agent'],
|
|
12939
|
+
examples: ["ghosty turns ls <id> --errors --since 1h", "ghosty turns ls <id> --canal anon --since 1d", "ghosty turns ls --workspace descti --quota-hits --days 30", "ghosty turns ls <id> --skipped --since 1d", "ghosty turns ls <id> --json --limit 100", "ghosty turns show <id> # last turn: each tool, its seconds, output tokens", 'ghosty turns grep <id> "IVA" --since 7d --role agent'],
|
|
12896
12940
|
notes: ["--skipped keeps 30 days and only sees what Formmy forwarded: if Formmy doesn't forward (ghosty channels whatsapp ls, \xABformmy forwards\xBB), gs never gets the message.", "show prints what came in and what went out on any engine or channel (WhatsApp groups too); the timeline reads the worker's transcript, so pool engines only (not ACP/goose)."],
|
|
12897
12941
|
learn: `${REF}#turnos`
|
|
12898
12942
|
},
|
|
@@ -13216,17 +13260,19 @@ HELPS.board = HELPS.cards;
|
|
|
13216
13260
|
HELPS.conversations = HELPS.chat;
|
|
13217
13261
|
HELPS.usage = {
|
|
13218
13262
|
...HELPS.me,
|
|
13219
|
-
summary: "Your plan and how much you've used this week and month. With --workspace: a workspace's turns and billable tokens per agent and/or day. With --boxes: its boxes against its limit.",
|
|
13220
|
-
usage: ["ghosty usage", "ghosty me usage", "ghosty usage --workspace SLUG [--by agent|day|agent,day] [--days 14]", "ghosty usage --boxes [--workspace SLUG]", "ghosty usage --images [--plan free] [--since 7d] [--by user] # staff"],
|
|
13263
|
+
summary: "Your plan and how much you've used this week and month. With --workspace: a workspace's turns and billable tokens per agent and/or day. With --agent: one agent's tokens and USD per model, day or channel. With --boxes: its boxes against its limit.",
|
|
13264
|
+
usage: ["ghosty usage", "ghosty me usage", "ghosty usage --workspace SLUG [--by agent|day|agent,day] [--days 14]", "ghosty usage --agent ID [--by model,day,canal] [--cost] [--days 14] # one agent: tokens and USD per model", "ghosty usage --boxes [--workspace SLUG]", "ghosty usage --images [--plan free] [--since 7d] [--by user] # staff"],
|
|
13221
13265
|
flags: [
|
|
13222
13266
|
["--images", "(Ghosty staff) image charges vs images agents delivered, per plan; stored cost vs the price table. A big gap = the meter isn't reporting"],
|
|
13223
13267
|
["--plan P", "--images: only free | pro | power | max | workspace"],
|
|
13224
13268
|
["--boxes", "the workspace's boxes against its limit (spares, asleep) and, per agent: conversations per box, boxes, awake, spares, turns running now"],
|
|
13225
13269
|
["--workspace SLUG", "which workspace (owner or staff); with --boxes the default is the one from ghosty use"],
|
|
13226
13270
|
["--by agent|day|agent,day", "--workspace: rows per agent (default), per day (CDMX) or both \xB7 with --boxes: template = the whole fleet by template (staff)"],
|
|
13227
|
-
["--days N", "--workspace: how far back (default 14, max 92)"]
|
|
13271
|
+
["--days N", "--workspace / --agent: how far back (default 14, max 92)"],
|
|
13272
|
+
["--agent ID", "one agent's spend per model (default), day (CDMX) and/or canal (anon = /c without an account, messenger, whatsapp\u2026; other = chat/Teams)"],
|
|
13273
|
+
["--cost", "--agent: USD at the provider's list price per row (cache writes included): what the agent would cost on the API"]
|
|
13228
13274
|
],
|
|
13229
|
-
examples: ["ghosty usage", "ghosty usage --json", "ghosty usage --workspace descti --by agent,day --days 14", "ghosty usage --boxes --workspace siiqtec", "ghosty usage --images --plan free --by user"],
|
|
13275
|
+
examples: ["ghosty usage", "ghosty usage --json", "ghosty usage --workspace descti --by agent,day --days 14", "ghosty usage --agent <id> --by model,day --cost", "ghosty usage --boxes --workspace siiqtec", "ghosty usage --images --plan free --by user"],
|
|
13230
13276
|
notes: ["failed = turns that ended in error or were stopped. \xABno balance\xBB = messages that got no turn because the bag ran out (ghosty turns ls --workspace X --quota-hits lists them)."],
|
|
13231
13277
|
learn: `${REF}#uso`
|
|
13232
13278
|
};
|
|
@@ -13383,6 +13429,22 @@ HELPS.staff = {
|
|
|
13383
13429
|
],
|
|
13384
13430
|
learn: `${REF}#staff-asignado`
|
|
13385
13431
|
};
|
|
13432
|
+
HELPS.settings = {
|
|
13433
|
+
summary: "Platform switches you can flip from the CLI (Ghosty staff): which agent answers /c without an account in a box, which agents and surfaces have native subagents, the page builder for everyone. Every change is logged; switches that carry JSON stay in /admin/settings.",
|
|
13434
|
+
usage: ["ghosty settings ls", "ghosty settings set <KEY> <value|+id|-id>", "ghosty settings unset <KEY>"],
|
|
13435
|
+
flags: [],
|
|
13436
|
+
examples: [
|
|
13437
|
+
"ghosty settings ls",
|
|
13438
|
+
"ghosty settings set ANON_NATIVE_AGENT_ID cmu7pgbyr0001gee3ruk172mm",
|
|
13439
|
+
"ghosty settings set NATIVE_SUBAGENT_AGENTS +cmu7pgbyr0001gee3ruk172mm",
|
|
13440
|
+
"ghosty settings unset ANON_NATIVE_AGENT_ID"
|
|
13441
|
+
],
|
|
13442
|
+
notes: [
|
|
13443
|
+
"In lists (ids, surfaces) +x adds and -x removes over the current value (row, env or default); without signs the value is replaced.",
|
|
13444
|
+
"unset deletes the row: the env or the code default applies again."
|
|
13445
|
+
],
|
|
13446
|
+
learn: `${REF}#ajustes`
|
|
13447
|
+
};
|
|
13386
13448
|
HELPS.audit = {
|
|
13387
13449
|
summary: "The audit log (AuditEvent): who logged in \xABas\xBB whom, what changed on an agent's page and channels, pauses and replies from the CLI, transfers, staff in and out. Ghosty staff see everything; anyone else, only the events of their own workspaces and agents.",
|
|
13388
13450
|
usage: ["ghosty audit ls [--workspace SLUG] [--agent ID] [--actor EMAIL] [--action A] [--since 7d] [--limit 50] [--full]"],
|
|
@@ -13950,9 +14012,9 @@ ${dim(t(`Next: ghosty use ${r.workspace} \xB7 ghosty partner enable ${r.workspac
|
|
|
13950
14012
|
if (v.combo) steps.push({ label: "combo", path: wsPath(slug, "/combo"), body: { combo: v.combo } });
|
|
13951
14013
|
if (cap !== void 0) steps.push({ label: "model-cap", path: wsPath(slug, "/model-cap"), body: { cap } });
|
|
13952
14014
|
if (house !== void 0) steps.push({ label: "house-claude", path: wsPath(slug, "/house-claude"), body: { on: house } });
|
|
13953
|
-
const
|
|
14015
|
+
const show2 = (x) => x === null ? t("plan's", "el del plan") : x === true ? "on" : x === false ? "off" : String(x);
|
|
13954
14016
|
const plans = await Promise.all(steps.map(async (st) => ({ ...st, plan: await api(st.path, { method: "POST", body: { ...st.body, dryRun: true } }) })));
|
|
13955
|
-
const lines = plans.map((p) => `${p.plan.workspace}: ${p.label} ${
|
|
14017
|
+
const lines = plans.map((p) => `${p.plan.workspace}: ${p.label} ${show2(p.plan.from)} \u2192 ${show2(p.plan.to)}`);
|
|
13956
14018
|
const pending = plans.filter((p) => p.plan.changed);
|
|
13957
14019
|
if (!pending.length) return out(plans.map((p) => p.plan), () => dim(t(`Nothing to do: ${slug} already has that.`, `Nada que hacer: ${slug} ya lo tiene.`)));
|
|
13958
14020
|
if (v["dry-run"]) return out(plans.map((p) => p.plan), () => `${lines.join("\n")}
|
|
@@ -13963,7 +14025,7 @@ ${dim(t("Dry run: nothing changed.", "Simulaci\xF3n: no cambi\xF3 nada."))}`);
|
|
|
13963
14025
|
${t("Change it?", "\xBFCambiarlo?")}`, { yes: v.yes, retry });
|
|
13964
14026
|
const done = [];
|
|
13965
14027
|
for (const p of pending) done.push(await api(p.path, { method: "POST", body: p.body }));
|
|
13966
|
-
return out(done, () => done.map((r, i) => `${lavender("\u2713")} ${r.workspace}: ${pending[i].label} ${
|
|
14028
|
+
return out(done, () => done.map((r, i) => `${lavender("\u2713")} ${r.workspace}: ${pending[i].label} ${show2(r.to)}`).join("\n"));
|
|
13967
14029
|
}
|
|
13968
14030
|
if (sub === "renew") {
|
|
13969
14031
|
slug = needSpace(slug ?? context, ex);
|
|
@@ -14068,6 +14130,36 @@ ${dim(t(`${total2} message(s) unanswered for lack of balance in ${r.days} day(s)
|
|
|
14068
14130
|
${table(rows, cols)}
|
|
14069
14131
|
${dim(t(`${fmtTokens(total)} billable tokens \xB7 failed = error or stopped \xB7 no balance: ghosty turns ls --workspace ${r.workspace} --quota-hits`, `${fmtTokens(total)} tokens facturables \xB7 failed = error o detenido \xB7 sin saldo: ghosty turns ls --workspace ${r.workspace} --quota-hits`))}`);
|
|
14070
14132
|
}
|
|
14133
|
+
var USAGE_DIMS = ["model", "day", "canal"];
|
|
14134
|
+
function groupAgentUsage(rows, by) {
|
|
14135
|
+
const groups = /* @__PURE__ */ new Map();
|
|
14136
|
+
for (const r of rows) {
|
|
14137
|
+
const k = by.map((d) => r[d]).join("|");
|
|
14138
|
+
const g = groups.get(k) ?? { day: by.includes("day") ? r.day : "", model: by.includes("model") ? r.model : "", canal: by.includes("canal") ? r.canal : "", turns: 0, inputTokens: 0, outputTokens: 0, cacheRead: 0, cacheCreation: 0, billable: 0, usd: 0 };
|
|
14139
|
+
g.turns += r.turns;
|
|
14140
|
+
g.inputTokens += r.inputTokens;
|
|
14141
|
+
g.outputTokens += r.outputTokens;
|
|
14142
|
+
g.cacheRead += r.cacheRead;
|
|
14143
|
+
g.cacheCreation += r.cacheCreation;
|
|
14144
|
+
g.billable += r.billable;
|
|
14145
|
+
g.usd += r.usd;
|
|
14146
|
+
groups.set(k, g);
|
|
14147
|
+
}
|
|
14148
|
+
return [...groups.values()].sort((a, b) => a.day.localeCompare(b.day) || b.usd - a.usd);
|
|
14149
|
+
}
|
|
14150
|
+
async function agentUsage(id, v) {
|
|
14151
|
+
const by = (v.by ?? "model").split(",").map((x) => x.trim()).filter(Boolean);
|
|
14152
|
+
if (!by.length || by.some((b) => !USAGE_DIMS.includes(b))) throw usage(t("With --agent, --by takes model, day and/or canal.", "Con --agent, --by acepta model, day y/o canal."), "ghosty usage --agent <id> --by model,day --cost");
|
|
14153
|
+
const r = await api(`/api/v2/agents/${enc10(id)}/usage?days=${enc10(v.days ?? "14")}`);
|
|
14154
|
+
const groups = groupAgentUsage(r.rows, by);
|
|
14155
|
+
const rows = groups.map((g) => ({ ...Object.fromEntries(by.map((d) => [d, g[d]])), turns: g.turns, tokens: fmtTokens(g.billable), "cache read": fmtTokens(g.cacheRead), out: fmtTokens(g.outputTokens), ...v.cost ? { usd: `$${g.usd.toFixed(2)}` } : {} }));
|
|
14156
|
+
const cols = [...by, "turns", "tokens", "cache read", "out", ...v.cost ? ["usd"] : []];
|
|
14157
|
+
const turns = r.rows.reduce((n, x) => n + x.turns, 0);
|
|
14158
|
+
const foot = v.cost ? t(`$${r.totalUsd.toFixed(2)} USD at provider list price (cache writes included) \xB7 ${turns} turn(s)`, `$${r.totalUsd.toFixed(2)} USD a precio de lista del proveedor (con escritura de cach\xE9) \xB7 ${turns} turno(s)`) : t(`${turns} turn(s) \xB7 USD per row: --cost`, `${turns} turno(s) \xB7 USD por fila: --cost`);
|
|
14159
|
+
out({ ...r, groups }, () => rows.length ? `${bold(r.agent)} ${dim(t(`last ${r.days} day(s), CDMX days`, `\xFAltimos ${r.days} d\xEDa(s), d\xEDas en hora CDMX`))}
|
|
14160
|
+
${table(rows, cols)}
|
|
14161
|
+
${dim(foot)}` : dim(t(`No usage in ${r.days} day(s).`, `Sin uso en ${r.days} d\xEDa(s).`)));
|
|
14162
|
+
}
|
|
14071
14163
|
|
|
14072
14164
|
// src/commands/demos.ts
|
|
14073
14165
|
import { randomUUID as randomUUID2 } from "node:crypto";
|
|
@@ -14483,6 +14575,21 @@ async function staffCmd(sub, staff, client, v) {
|
|
|
14483
14575
|
throw usage(t(`Unknown staff subcommand: ${sub}.`, `Subcomando de staff desconocido: ${sub}.`), "ghosty staff ls|assign|unassign <staff-email> [client-email]");
|
|
14484
14576
|
}
|
|
14485
14577
|
|
|
14578
|
+
// src/commands/settings.ts
|
|
14579
|
+
var show = (rows) => table(rows.map((s2) => ({ key: s2.key, value: s2.value ?? "", from: s2.from, what: s2.what })), ["key", "value", "from", "what"]);
|
|
14580
|
+
async function settingsCmd(sub, key, value) {
|
|
14581
|
+
if (!sub || sub === "ls" || sub === "list") {
|
|
14582
|
+
const r = await api("/api/v2/staff/settings");
|
|
14583
|
+
return out(r, () => show(r.settings));
|
|
14584
|
+
}
|
|
14585
|
+
if (sub === "set" || sub === "unset") {
|
|
14586
|
+
if (!key || sub === "set" && !value) throw usage(t("Missing key or value.", "Falta la clave o el valor."), sub === "set" ? "ghosty settings set <KEY> <value|+id|-id>" : "ghosty settings unset <KEY>");
|
|
14587
|
+
const r = await api("/api/v2/staff/settings", { method: sub === "set" ? "POST" : "DELETE", body: { key, ...sub === "set" ? { value } : {} } });
|
|
14588
|
+
return out(r, () => `${lavender("\u2713")} ${r.key}: ${r.from ?? dim(t("(none)", "(nada)"))} \u2192 ${r.to ?? dim(t("(none: env or default)", "(nada: env o default)"))}`);
|
|
14589
|
+
}
|
|
14590
|
+
throw usage(t(`Unknown settings subcommand: ${sub}.`, `Subcomando de settings desconocido: ${sub}.`), "ghosty settings ls|set|unset <KEY> [value]");
|
|
14591
|
+
}
|
|
14592
|
+
|
|
14486
14593
|
// src/commands/support.ts
|
|
14487
14594
|
import { readFile as readFile14 } from "node:fs/promises";
|
|
14488
14595
|
var enc13 = encodeURIComponent;
|
|
@@ -14766,6 +14873,7 @@ ${bold("Session")}
|
|
|
14766
14873
|
completion zsh|bash|fish Tab completion for commands, flags, agents and workspaces
|
|
14767
14874
|
usage Your plan and how much you've used this week and month [--boxes: boxes vs the workspace limit \xB7 --boxes --by template: the whole fleet (staff) \xB7 --images [--plan free] [--by user]: image charges vs deliveries (staff)]
|
|
14768
14875
|
usage --workspace SLUG A workspace's turns and tokens per agent/day [--by agent,day] [--days 14]
|
|
14876
|
+
usage --agent ID One agent's tokens per model/day/channel [--by model,day,canal] [--cost: USD at API list price] [--days 14]
|
|
14769
14877
|
plan apply [workspace] Apply a scheduled plan now, showing what changes [--dry-run]
|
|
14770
14878
|
engines ls Engines and models valid for --engine/--model [--models]
|
|
14771
14879
|
|
|
@@ -14782,6 +14890,7 @@ ${bold("Workspaces")} ${dim("(changing them: Ghosty staff)")}
|
|
|
14782
14890
|
spaces log <workspace> Its log: transfers, staff in/out, renewals (owner or staff) [--since 30d] [--action workspace]
|
|
14783
14891
|
staff ls [staff-email] [client-email] Ghosty staff assigned to client accounts (staff) [--all: also revoked]
|
|
14784
14892
|
staff assign|unassign <staff> <client> Staff sees and runs that account's agents, documents, databases and boards as themselves (no keys, billing or transfers; logged) [--reason]
|
|
14893
|
+
settings ls|set|unset <KEY> [value] Platform switches (staff): who answers /c without an account, native subagents\u2026 [+id/-id edits a list]
|
|
14785
14894
|
audit ls The audit log: who changed what (agent page, channels, pauses, replies, transfers, "log in as") [--workspace SLUG] [--agent ID] [--actor EMAIL] [--action A] [--since 24h] [--limit N]
|
|
14786
14895
|
factory runs ls|show|why|stats|rename A workspace's Software Factory runs: list (time and cost), detail (plan, PR, preview, who is working), where the time and money went, why it got stuck or failed, totals, fix a title [--workspace SLUG] [--room R] [--status S] [show --timing] [why --refresh] [stats --since 30d --repo R]
|
|
14787
14896
|
|
|
@@ -14794,7 +14903,7 @@ ${bold("Agents")}
|
|
|
14794
14903
|
[--like AGENT [--copy-dbs] [--board same|main|new|NAME] [--no-notify] [--dry-run]] with another agent's setup (not its prompt, env or channels)
|
|
14795
14904
|
agents export <id> The agent as a file (YAML, no secrets) [--out DIR: agent.yaml + its skills]
|
|
14796
14905
|
apply <file|dir> Make an agent match a file: shows the plan (+ ~ -), asks, applies [--agent X] [--create] [--prune] [--dry-run]
|
|
14797
|
-
agents get <id>
|
|
14906
|
+
agents get|show <id> Show an agent's config [--fields name,model,prompt] [--prompt-out FILE]
|
|
14798
14907
|
agents set <id> Change identity or engine [--name] [--engine] [--model] [--prompt | --prompt-file FILE] [--env K=V,\u2026]
|
|
14799
14908
|
[--connect google-drive,\u2026] [--disconnect \u2026] give/remove access to your connectors
|
|
14800
14909
|
[--channels wa=on,teams=off] turn channels on/off (wa = personal WhatsApp)
|
|
@@ -14804,9 +14913,9 @@ ${bold("Agents")}
|
|
|
14804
14913
|
[--toolsets crm,sales | +crm,-sales] gs tool groups it gets
|
|
14805
14914
|
[--prompt-base AGENT|none --prompt-overlay FILE [--dry-run]] prompt = another agent's + edits, kept in sync
|
|
14806
14915
|
[--prompt-patch overlay.json | --prompt-append FILE [--dry-run]] change one piece of the prompt, on the server's current one
|
|
14807
|
-
[--tool wa:tool=off,\u2026] [--bag NAME|none] [--avatar URL|FILE] a tool per channel \xB7 its token bag (staff) \xB7 its face in Teams
|
|
14916
|
+
[--tool wa:tool=off,\u2026] [--bag NAME|none] [--box MB[:N]] [--avatar URL|FILE] a tool per channel \xB7 its token bag and box size (staff) \xB7 its face in Teams
|
|
14808
14917
|
[--prompt-mode append|replace] replace = its prompt WITHOUT Ghosty's house persona
|
|
14809
|
-
agents doctor <id> Check the config: overlapping skills, tools the prompt names, broken grants, failing turns
|
|
14918
|
+
agents doctor <id> Check the config: overlapping skills, tools the prompt names, broken grants, failing turns; prints model, effort, native subagents, /c and box (staff)
|
|
14810
14919
|
agents docs ls|grant|revoke <id> [doc] Documents it reads and may send [--write] [--no-deliver]
|
|
14811
14920
|
agents docs grant <id> A B\u2026 Grant several documents at once [--like AGENT] copies another agent's
|
|
14812
14921
|
agents docs add <id> Upload a document and grant it --url URL | --file PATH [--description] [--grant read|write|no]
|
|
@@ -14817,7 +14926,7 @@ ${bold("Agents")}
|
|
|
14817
14926
|
agents teams ls|on|off|rm <id> [ws] Which Teams workspaces it answers in, and its @handle there [--handle x] [--factory plan,build,check: its Software Factory roles]
|
|
14818
14927
|
agents rm <id> Delete an agent (owner only; asks you to type its name, or --yes) [--from-workspace: turn it off in Teams first]
|
|
14819
14928
|
agents restart <id> Restart an ACP agent (needsRestart) so it loads new skills
|
|
14820
|
-
agents box <id> The machine serving it: is it on the new image? [--check PATH]\u2026 [--contains PATH=TEXT]\u2026 [--recycle [--reenv] [--force]]
|
|
14929
|
+
agents box <id> The machine serving it: is it on the new image? [--check PATH]\u2026 [--contains PATH=TEXT]\u2026 [--recycle [--reenv] [--force]] [--start]
|
|
14821
14930
|
agents demo enable|disable <id> Turn its public demo link on or off
|
|
14822
14931
|
agents demo <id> Public demo link /p/<slug>: anyone tries it without an account, "Keep it" clones it to theirs
|
|
14823
14932
|
agents embed enable|disable <id> Web widget: a chat bubble on YOUR site (one <script>), only on the domains you list [--domains a.com,*.b.com] [--per-visitor N] [--per-ip N] [--welcome T] [--color #hex] [--rotate]
|
|
@@ -14887,7 +14996,7 @@ ${bold("Talk to an agent")}
|
|
|
14887
14996
|
conversations ls <id> List conversations
|
|
14888
14997
|
conversations show <id> <conversation> What was said [--limit 20] (0 = all)
|
|
14889
14998
|
conversations archive|rm <id> --kind test|channel|personal Clean its history (rm: never customers) [--before 7d] [--dry-run]
|
|
14890
|
-
turns ls <id> Recent turns and why they failed [--errors] [--skipped] [--since 1h] [--limit N]
|
|
14999
|
+
turns ls <id> Recent turns, their channel and why they failed [--errors] [--skipped] [--canal anon|messenger|\u2026] [--since 1h] [--limit N]
|
|
14891
15000
|
turns ls --workspace SLUG --quota-hits Messages that got no turn because the balance ran out [--days 14]
|
|
14892
15001
|
turns show <id> [turn] What came in, what it answered, and where the time went (default: last) [--full]
|
|
14893
15002
|
turns grep <id> "text" Find what the customer or the agent said, and the turn [--since 7d] [--role user|agent] [--session S]
|
|
@@ -14939,6 +15048,7 @@ ${bold("Sesi\xF3n")}
|
|
|
14939
15048
|
completion zsh|bash|fish Autocompletado con TAB: comandos, opciones, agentes y espacios
|
|
14940
15049
|
usage Tu plan y cu\xE1nto llevas usado esta semana y este mes [--boxes: cajas contra el tope del espacio \xB7 --boxes --by template: toda la flota (staff) \xB7 --images [--plan free] [--by user]: cargos de im\xE1genes contra entregas (staff)]
|
|
14941
15050
|
usage --workspace SLUG Turnos y tokens de un espacio por agente/d\xEDa [--by agent,day] [--days 14]
|
|
15051
|
+
usage --agent ID Tokens de un agente por modelo/d\xEDa/canal [--by model,day,canal] [--cost: USD a precio de lista del API] [--days 14]
|
|
14942
15052
|
plan apply [espacio] Aplica ya un plan programado, ense\xF1ando qu\xE9 cambia [--dry-run]
|
|
14943
15053
|
engines ls Motores y modelos v\xE1lidos para --engine/--model [--models]
|
|
14944
15054
|
|
|
@@ -14955,6 +15065,7 @@ ${bold("Espacios")} ${dim("(cambiarlos: staff de Ghosty)")}
|
|
|
14955
15065
|
spaces log <espacio> Su bit\xE1cora: traspasos, staff que entra o sale, renovaciones (due\xF1o o staff) [--since 30d] [--action workspace]
|
|
14956
15066
|
staff ls [correo-staff] [correo-cliente] Staff de Ghosty asignado a cuentas cliente (staff) [--all: tambi\xE9n revocadas]
|
|
14957
15067
|
staff assign|unassign <staff> <cliente> El staff ve y opera agentes, documentos, bases y tableros de esa cuenta como s\xED mismo (sin llaves, cobro ni traspasos; queda en bit\xE1cora) [--reason]
|
|
15068
|
+
settings ls|set|unset <CLAVE> [valor] Perillas de la plataforma (staff): qui\xE9n atiende /c sin cuenta, subagentes nativos\u2026 [+id/-id edita una lista]
|
|
14958
15069
|
audit ls La bit\xE1cora: qui\xE9n cambi\xF3 qu\xE9 (ficha, canales, pausas, respuestas, traspasos, \xABentrar como\xBB) [--workspace SLUG] [--agent ID] [--actor CORREO] [--action A] [--since 24h] [--limit N]
|
|
14959
15070
|
factory runs ls|show|why|stats|rename Los pedidos de la Software Factory de un espacio: lista (tiempo y costo), detalle (plan, PR, preview, qui\xE9n trabaja), en qu\xE9 se fue el tiempo y el dinero, por qu\xE9 se ator\xF3 o fall\xF3, totales, corregir un t\xEDtulo [--workspace SLUG] [--room R] [--status S] [show --timing] [why --refresh] [stats --since 30d --repo R]
|
|
14960
15071
|
|
|
@@ -14967,7 +15078,7 @@ ${bold("Agentes")}
|
|
|
14967
15078
|
[--like AGENTE [--copy-dbs] [--board same|main|new|NOMBRE] [--no-notify] [--dry-run]] con la configuraci\xF3n de otro agente (no su prompt, env ni canales)
|
|
14968
15079
|
agents export <id> El agente como archivo (YAML, sin secretos) [--out DIR: agent.yaml + sus skills]
|
|
14969
15080
|
apply <archivo|dir> Deja un agente igual que un archivo: ense\xF1a el plan (+ ~ -), pregunta y aplica [--agent X] [--create] [--prune] [--dry-run]
|
|
14970
|
-
agents get <id>
|
|
15081
|
+
agents get|show <id> Muestra la configuraci\xF3n de un agente [--fields name,model,prompt] [--prompt-out ARCHIVO]
|
|
14971
15082
|
agents set <id> Cambia identidad o motor [--name] [--engine] [--model] [--prompt | --prompt-file ARCHIVO] [--env K=V,\u2026]
|
|
14972
15083
|
[--connect google-drive,\u2026] [--disconnect \u2026] dale o qu\xEDtale acceso a tus conectores
|
|
14973
15084
|
[--channels wa=on,teams=off] prende/apaga canales (wa = WhatsApp personal)
|
|
@@ -14977,9 +15088,9 @@ ${bold("Agentes")}
|
|
|
14977
15088
|
[--toolsets crm,sales | +crm,-sales] grupos de tools de gs que recibe
|
|
14978
15089
|
[--prompt-base AGENTE|none --prompt-overlay ARCHIVO [--dry-run]] prompt = el de otro agente + ediciones, sincronizado
|
|
14979
15090
|
[--prompt-patch overlay.json | --prompt-append ARCHIVO [--dry-run]] cambia un pedazo del prompt, sobre el actual del servidor
|
|
14980
|
-
[--tool wa:tool=off,\u2026] [--bag NOMBRE|none] [--avatar URL|ARCHIVO] una tool por canal \xB7 su bolsa de tokens (staff) \xB7 su cara en Teams
|
|
15091
|
+
[--tool wa:tool=off,\u2026] [--bag NOMBRE|none] [--box MB[:N]] [--avatar URL|ARCHIVO] una tool por canal \xB7 su bolsa de tokens y tama\xF1o de caja (staff) \xB7 su cara en Teams
|
|
14981
15092
|
[--prompt-mode append|replace] replace = su prompt SIN la persona de casa de Ghosty
|
|
14982
|
-
agents doctor <id> Revisa la configuraci\xF3n: skills encimadas, tools que nombra el prompt, permisos rotos, turnos que fallan
|
|
15093
|
+
agents doctor <id> Revisa la configuraci\xF3n: skills encimadas, tools que nombra el prompt, permisos rotos, turnos que fallan; dice modelo, effort, subagentes nativos, /c y caja (staff)
|
|
14983
15094
|
agents docs ls|grant|revoke <id> [doc] Documentos que lee y puede enviar [--write] [--no-deliver]
|
|
14984
15095
|
agents docs grant <id> A B\u2026 Da varios documentos a la vez [--like AGENTE] copia los de otro agente
|
|
14985
15096
|
agents docs add <id> Sube un documento y d\xE1selo --url URL | --file RUTA [--description] [--grant read|write|no]
|
|
@@ -14990,7 +15101,7 @@ ${bold("Agentes")}
|
|
|
14990
15101
|
agents teams ls|on|off|rm <id> [equipo] En qu\xE9 equipos de Teams contesta y con qu\xE9 @handle [--handle x] [--factory plan,build,check: sus roles de la Software Factory]
|
|
14991
15102
|
agents rm <id> Borra un agente (s\xF3lo el due\xF1o; te pide escribir su nombre, o --yes) [--from-workspace: antes lo desactiva en Teams]
|
|
14992
15103
|
agents restart <id> Reinicia un agente ACP (needsRestart) para que cargue skills nuevas
|
|
14993
|
-
agents box <id> La m\xE1quina que lo atiende: \xBFya trae la imagen nueva? [--check RUTA]\u2026 [--contains RUTA=TEXTO]\u2026 [--recycle [--reenv] [--force]]
|
|
15104
|
+
agents box <id> La m\xE1quina que lo atiende: \xBFya trae la imagen nueva? [--check RUTA]\u2026 [--contains RUTA=TEXTO]\u2026 [--recycle [--reenv] [--force]] [--start]
|
|
14994
15105
|
agents demo enable|disable <id> Prende o apaga su liga p\xFAblica de demo
|
|
14995
15106
|
agents demo <id> Liga p\xFAblica de demo /p/<slug>: cualquiera lo prueba sin cuenta y \xABQued\xE1rmelo\xBB lo clona a la suya
|
|
14996
15107
|
agents embed enable|disable <id> Widget web: burbuja de chat en TU sitio (un <script>), s\xF3lo en los dominios que pongas [--domains a.com,*.b.com] [--per-visitor N] [--per-ip N] [--welcome T] [--color #hex] [--rotate]
|
|
@@ -15060,7 +15171,7 @@ ${bold("Hablar con un agente")}
|
|
|
15060
15171
|
conversations ls <id> Lista conversaciones
|
|
15061
15172
|
conversations show <id> <conversaci\xF3n> Qu\xE9 se dijo [--limit 20] (0 = todo)
|
|
15062
15173
|
conversations archive|rm <id> --kind test|channel|personal Limpia su historial (rm: nunca clientes) [--before 7d] [--dry-run]
|
|
15063
|
-
turns ls <id> Turnos recientes y por qu\xE9 fallaron [--errors] [--skipped] [--since 1h] [--limit N]
|
|
15174
|
+
turns ls <id> Turnos recientes, su canal y por qu\xE9 fallaron [--errors] [--skipped] [--canal anon|messenger|\u2026] [--since 1h] [--limit N]
|
|
15064
15175
|
turns ls --workspace SLUG --quota-hits Mensajes que no abrieron turno porque se acab\xF3 el saldo [--days 14]
|
|
15065
15176
|
turns show <id> [turno] Qu\xE9 lleg\xF3, qu\xE9 contest\xF3 y en qu\xE9 se fue el tiempo (default: el \xFAltimo) [--full]
|
|
15066
15177
|
turns grep <id> "texto" Busca lo que dijo el cliente o el agente, y su turno [--since 7d] [--role user|agent] [--session S]
|
|
@@ -15101,8 +15212,8 @@ ${bold("Opciones globales")}
|
|
|
15101
15212
|
${bold("C\xF3digos de salida")} 0 bien \xB7 1 error de la API \xB7 2 uso incorrecto \xB7 3 sin sesi\xF3n
|
|
15102
15213
|
${dim("Nota: `ghosty` puede chocar con otro binario en tu PATH (p. ej. la TUI de Ghosty). Rev\xEDsalo con `which -a ghosty`; corre `npx @ghostystudio/cli` para ir a la segura.")}
|
|
15103
15214
|
${dim("Documentaci\xF3n: https://www.ghosty.studio/docs/cli")}`;
|
|
15104
|
-
var COMMANDS = ["login", "logout", "whoami", "usage", "use", "apply", "plan", "engines", "bags", "spaces", "workspaces", "staff", "audit", "factory", "demos", "sites", "push", "novedades", "completion", "cards", "agents", "files", "skills", "mcp", "dbs", "turns", "try", "chat", "conversations", "schedule", "partner", "me", "channels", "board", "boards", "credentials", "connectors", "browser", "support", "docs", "help"];
|
|
15105
|
-
var AGENTS_SUBS = ["ls", "create", "get", "set", "export", "doctor", "docs", "share", "unshare", "shares", "teams", "rm", "restart", "demo", "embed", "box"];
|
|
15215
|
+
var COMMANDS = ["login", "logout", "whoami", "usage", "use", "apply", "plan", "engines", "bags", "spaces", "workspaces", "staff", "settings", "audit", "factory", "demos", "sites", "push", "novedades", "completion", "cards", "agents", "files", "skills", "mcp", "dbs", "turns", "try", "chat", "conversations", "schedule", "partner", "me", "channels", "board", "boards", "credentials", "connectors", "browser", "support", "docs", "help"];
|
|
15216
|
+
var AGENTS_SUBS = ["ls", "create", "get", "show", "set", "export", "doctor", "docs", "share", "unshare", "shares", "teams", "rm", "restart", "demo", "embed", "box"];
|
|
15106
15217
|
function unknown(what, input, known, helpCmd) {
|
|
15107
15218
|
const s2 = suggest(input, known);
|
|
15108
15219
|
return usage(t(`Unknown command: ${what}.`, `Comando desconocido: ${what}.`), s2 ? t(`Did you mean "${s2}"? Run: ${helpCmd}`, `\xBFQuisiste decir "${s2}"? Corre: ${helpCmd}`) : t(`Run: ${helpCmd}`, `Corre: ${helpCmd}`));
|
|
@@ -15294,6 +15405,7 @@ async function main() {
|
|
|
15294
15405
|
column: { type: "string" },
|
|
15295
15406
|
before: { type: "string" },
|
|
15296
15407
|
recycle: { type: "boolean" },
|
|
15408
|
+
start: { type: "boolean" },
|
|
15297
15409
|
role: { type: "string" },
|
|
15298
15410
|
handle: { type: "string" },
|
|
15299
15411
|
factory: { type: "string" },
|
|
@@ -15318,12 +15430,15 @@ async function main() {
|
|
|
15318
15430
|
note: { type: "string" },
|
|
15319
15431
|
reason: { type: "string" },
|
|
15320
15432
|
bag: { type: "string" },
|
|
15433
|
+
box: { type: "string" },
|
|
15321
15434
|
avatar: { type: "string" },
|
|
15322
15435
|
tool: { type: "string" },
|
|
15323
15436
|
"from-workspace": { type: "boolean" },
|
|
15324
15437
|
archived: { type: "boolean" },
|
|
15325
15438
|
"quota-hits": { type: "boolean" },
|
|
15326
15439
|
by: { type: "string" },
|
|
15440
|
+
cost: { type: "boolean" },
|
|
15441
|
+
canal: { type: "string" },
|
|
15327
15442
|
models: { type: "boolean" },
|
|
15328
15443
|
teams: { type: "string" },
|
|
15329
15444
|
owner: { type: "string" },
|
|
@@ -15371,7 +15486,7 @@ async function main() {
|
|
|
15371
15486
|
const tokens = splitTokens(pos, v);
|
|
15372
15487
|
globals.token = tokens.session;
|
|
15373
15488
|
globals.profile = v.profile;
|
|
15374
|
-
if (v.version) return out({ version: "0.
|
|
15489
|
+
if (v.version) return out({ version: "0.65.0" }, () => "0.65.0");
|
|
15375
15490
|
for (const n of normalizeArgs(pos, v)) if (!globals.json) info(dim(n));
|
|
15376
15491
|
const context = (await readConfig()).workspace;
|
|
15377
15492
|
if (!explicitToken()?.startsWith("gat_")) {
|
|
@@ -15429,7 +15544,7 @@ async function main() {
|
|
|
15429
15544
|
}
|
|
15430
15545
|
return agentsCreate(v);
|
|
15431
15546
|
}
|
|
15432
|
-
if (sub === "get") return agentsGet(a1, v.fields, v["prompt-out"]);
|
|
15547
|
+
if (sub === "get" || sub === "show") return agentsGet(a1, v.fields, v["prompt-out"]);
|
|
15433
15548
|
if (sub === "share" || sub === "unshare" || sub === "shares") return agentsShare(sub, a1, a2, v);
|
|
15434
15549
|
if (sub === "teams") return agentsTeams(a1, a2, pos[4], v);
|
|
15435
15550
|
if (sub === "set") return agentsSet(a1, v);
|
|
@@ -15503,6 +15618,7 @@ async function main() {
|
|
|
15503
15618
|
if (v.images) return imageUsage(v);
|
|
15504
15619
|
if (v.boxes && v.by === "template") return fleetBoxes();
|
|
15505
15620
|
if (v.boxes) return boxesUsage(v.workspace ?? context);
|
|
15621
|
+
if (v.agent) return agentUsage(v.agent, v);
|
|
15506
15622
|
if (v.workspace || v.by || v.days) return workspaceUsage(v.workspace ?? context, v);
|
|
15507
15623
|
return meUsage();
|
|
15508
15624
|
case "engines":
|
|
@@ -15519,6 +15635,8 @@ async function main() {
|
|
|
15519
15635
|
return spacesCmd(sub, a1, a2, v, context);
|
|
15520
15636
|
case "staff":
|
|
15521
15637
|
return staffCmd(sub, a1, a2, v);
|
|
15638
|
+
case "settings":
|
|
15639
|
+
return settingsCmd(sub, a1, a2);
|
|
15522
15640
|
case "audit":
|
|
15523
15641
|
return auditCmd(sub, v, context);
|
|
15524
15642
|
case "factory":
|
|
@@ -15540,7 +15658,7 @@ async function main() {
|
|
|
15540
15658
|
throw unknown(cmd, cmd, COMMANDS, "ghosty --help");
|
|
15541
15659
|
}
|
|
15542
15660
|
}
|
|
15543
|
-
var notice = updateNotice("0.
|
|
15661
|
+
var notice = updateNotice("0.65.0").catch(() => null);
|
|
15544
15662
|
main().then(
|
|
15545
15663
|
async () => {
|
|
15546
15664
|
const n = await notice;
|