@ghostystudio/cli 0.43.0 → 0.45.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 +15 -0
- package/dist/index.js +396 -167
- 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();
|
|
@@ -8422,7 +8422,7 @@ async function postLong(path, body, timeoutMs = 9e5) {
|
|
|
8422
8422
|
const req = httpsRequest(`${base}${path}`, {
|
|
8423
8423
|
method: "POST",
|
|
8424
8424
|
timeout: timeoutMs,
|
|
8425
|
-
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.
|
|
8425
|
+
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.45.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
|
|
8426
8426
|
}, (res) => {
|
|
8427
8427
|
let buf = "";
|
|
8428
8428
|
res.on("data", (c) => buf += c);
|
|
@@ -8464,7 +8464,7 @@ async function request(path, opts = {}, retried = false) {
|
|
|
8464
8464
|
method: opts.method ?? (opts.body !== void 0 || opts.raw !== void 0 ? "POST" : "GET"),
|
|
8465
8465
|
headers: {
|
|
8466
8466
|
authorization: `Bearer ${token}`,
|
|
8467
|
-
"user-agent": `ghosty-cli/${"0.
|
|
8467
|
+
"user-agent": `ghosty-cli/${"0.45.0"}`,
|
|
8468
8468
|
"accept-language": lang(),
|
|
8469
8469
|
...opts.body !== void 0 ? { "content-type": "application/json" } : {},
|
|
8470
8470
|
...opts.headers
|
|
@@ -8863,8 +8863,20 @@ ${dim(t("Dry run: nothing changed.", "Simulacro: no se cambi\xF3 nada."))}`);
|
|
|
8863
8863
|
if (v["auto-stage"] !== "on" && v["auto-stage"] !== "off") throw usage(t("--auto-stage takes on or off.", "--auto-stage acepta on u off."));
|
|
8864
8864
|
body.autoStage = v["auto-stage"] === "on";
|
|
8865
8865
|
}
|
|
8866
|
+
if (v.quote) {
|
|
8867
|
+
const alias = { iva: "ivaPct", vigencia: "vigenciaDias", prefix: "folioPrefijo", prefijo: "folioPrefijo", currency: "moneda", company: "empresa", phone: "telefono", email: "correo", address: "direccion", notes: "notas" };
|
|
8868
|
+
const cot = {};
|
|
8869
|
+
for (const part of v.quote.split(/,(?=\s*[a-zA-Z]+=)/)) {
|
|
8870
|
+
const m = /^\s*([a-zA-Z]+)=(.*)$/.exec(part);
|
|
8871
|
+
if (!m) throw usage(t(`Bad --quote: ${part}.`, `--quote inv\xE1lido: ${part}.`), "--quote iva=0,prefix=SFI,vigencia=15");
|
|
8872
|
+
const key = alias[m[1]] ?? m[1];
|
|
8873
|
+
const val = m[2].trim().replace(/^"(.*)"$/, "$1");
|
|
8874
|
+
cot[key] = key === "ivaPct" || key === "vigenciaDias" ? Number(val) : val;
|
|
8875
|
+
}
|
|
8876
|
+
body.cotizacion = cot;
|
|
8877
|
+
}
|
|
8866
8878
|
if (!Object.keys(body).length && done.length) return out({ id, updated: done }, () => `${lavender("\u2713")} ${t("Updated", "Actualizado")}: ${done.join(" \xB7 ")}`);
|
|
8867
|
-
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, --bag " + t("or", "o") + " --avatar.");
|
|
8879
|
+
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, --bag " + t("or", "o") + " --avatar.");
|
|
8868
8880
|
const r = await api(agentPath(id), { method: "PATCH", body });
|
|
8869
8881
|
out(r, () => `${lavender("\u2713")} ${t("Updated", "Actualizado")}: ${[...Object.keys(body), ...done].join(", ")}.`);
|
|
8870
8882
|
}
|
|
@@ -8967,7 +8979,8 @@ async function filesCmd(sub, id, path, v) {
|
|
|
8967
8979
|
const r = await api(agentPath(id, `/files/${p}`));
|
|
8968
8980
|
const cols = r.files?.length ? Object.keys(r.files[0]).slice(0, 4) : ["path"];
|
|
8969
8981
|
out(r, () => `${dim(r.dir)}
|
|
8970
|
-
${table(r.files ?? [], cols)}`
|
|
8982
|
+
${table(r.files ?? [], cols)}${r.note ? `
|
|
8983
|
+
${dim(r.note)}` : ""}`);
|
|
8971
8984
|
return;
|
|
8972
8985
|
}
|
|
8973
8986
|
case "get": {
|
|
@@ -9725,7 +9738,7 @@ async function call(path, v, init = {}) {
|
|
|
9725
9738
|
"x-ghosty-ts": ts,
|
|
9726
9739
|
"x-ghosty-sig": sig,
|
|
9727
9740
|
"content-type": "application/json",
|
|
9728
|
-
"user-agent": `ghosty-cli/${"0.
|
|
9741
|
+
"user-agent": `ghosty-cli/${"0.45.0"}`
|
|
9729
9742
|
},
|
|
9730
9743
|
body: method === "GET" ? void 0 : raw
|
|
9731
9744
|
});
|
|
@@ -10330,7 +10343,7 @@ ${dim(t("Used by", "Lo usan"))}: ${used}` : ""}`);
|
|
|
10330
10343
|
function resumedCell(sdk) {
|
|
10331
10344
|
if (!sdk) return "";
|
|
10332
10345
|
if (sdk.resumed) return "\u2713";
|
|
10333
|
-
return sdk.freshReason === "new" ? t("
|
|
10346
|
+
return sdk.freshReason === "new" ? t("1st turn", "1.er turno") : `\u26A0 ${t("from scratch", "desde cero")} (${sdk.freshReason ?? "?"})`;
|
|
10334
10347
|
}
|
|
10335
10348
|
function skipReason(r) {
|
|
10336
10349
|
const es = {
|
|
@@ -10369,8 +10382,9 @@ async function turnsCancel(id, sid) {
|
|
|
10369
10382
|
}
|
|
10370
10383
|
async function turnsCmd(sub, id, turnId, v) {
|
|
10371
10384
|
if (sub === "show") return turnShow(id, turnId, !!v.full);
|
|
10385
|
+
if (sub === "grep" || sub === "search") return turnsGrep(id, turnId, v);
|
|
10372
10386
|
if (sub === "cancel" || sub === "stop") return turnsCancel(id, turnId);
|
|
10373
|
-
if (sub && sub !== "ls" && sub !== "list") throw usage(t(`Unknown turns subcommand: ${sub}.`, `Subcomando de turns desconocido: ${sub}.`), t("Try", "Prueba") +
|
|
10387
|
+
if (sub && sub !== "ls" && sub !== "list") throw usage(t(`Unknown turns subcommand: ${sub}.`, `Subcomando de turns desconocido: ${sub}.`), t("Try", "Prueba") + ': ghosty turns ls <agent-id> --errors --since 1h \xB7 ghosty turns grep <agent-id> "text" --since 7d \xB7 ghosty turns show <agent-id> [turn-id|last] \xB7 ghosty turns cancel <agent-id> <conversation>');
|
|
10374
10388
|
id = need2(id, t("agent id", "el id del agente"), "ghosty turns ls <agent-id> --errors --since 1h");
|
|
10375
10389
|
if (v.skipped) return turnsSkipped(id, v);
|
|
10376
10390
|
const q = new URLSearchParams();
|
|
@@ -10395,6 +10409,25 @@ async function turnsCmd(sub, id, turnId, v) {
|
|
|
10395
10409
|
out(r, () => rows.length ? `${table(rows, ["id", "started", "state", "secs", "from", "session", ...rows.some((r2) => r2.resumed) ? ["resumed"] : [], "error"])}
|
|
10396
10410
|
${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}` : ""}.`)));
|
|
10397
10411
|
}
|
|
10412
|
+
async function turnsGrep(id, text, v) {
|
|
10413
|
+
id = need2(id, t("agent id", "el id del agente"), 'ghosty turns grep <agent-id> "text" --since 7d');
|
|
10414
|
+
text = need2(text, t("text to search", "el texto a buscar"), 'ghosty turns grep <agent-id> "text" --since 7d');
|
|
10415
|
+
const q = new URLSearchParams({ q: text, limit: v.limit ?? "30" });
|
|
10416
|
+
if (v.since) q.set("since", v.since);
|
|
10417
|
+
if (v.session) q.set("session", v.session);
|
|
10418
|
+
if (v.role) q.set("role", v.role);
|
|
10419
|
+
const r = await api(agentPath2(id, `/turns?${q}`));
|
|
10420
|
+
const rows = r.matches.map((m) => ({
|
|
10421
|
+
at: m.at.slice(0, 16).replace("T", " "),
|
|
10422
|
+
who: m.role === "user" ? t("customer", "cliente") : t("agent", "agente"),
|
|
10423
|
+
turn: m.turnId ?? "",
|
|
10424
|
+
state: m.state === "error" ? red(m.state) : m.state ?? "",
|
|
10425
|
+
session: m.sessionId.slice(0, 24),
|
|
10426
|
+
text: serverText(m.snippet).slice(0, 140)
|
|
10427
|
+
}));
|
|
10428
|
+
out(r, () => rows.length ? `${table(rows, ["at", "who", "turn", "state", "session", "text"])}
|
|
10429
|
+
${dim(`${t("open one", "abre uno")}: ghosty turns show ${id} <turn>`)}` : dim(t(`Nothing says \xAB${text}\xBB${v.since ? ` since ${v.since}` : ""}.`, `Nada dice \xAB${text}\xBB${v.since ? ` desde ${v.since}` : ""}.`)));
|
|
10430
|
+
}
|
|
10398
10431
|
async function turnShow(id, turnId, full = false) {
|
|
10399
10432
|
id = need2(id, t("agent id", "el id del agente"), "ghosty turns show <agent-id> [turn-id|last] [--full]");
|
|
10400
10433
|
const r = await api(agentPath2(id, `/turns/${enc6(turnId ?? "last")}`));
|
|
@@ -10557,6 +10590,143 @@ async function credentialsCmd2(sub, provider, v) {
|
|
|
10557
10590
|
}
|
|
10558
10591
|
}
|
|
10559
10592
|
|
|
10593
|
+
// src/commands/connectors.ts
|
|
10594
|
+
async function hiddenPrompt2(label) {
|
|
10595
|
+
process.stderr.write(label);
|
|
10596
|
+
const stdin = process.stdin;
|
|
10597
|
+
stdin.setRawMode(true);
|
|
10598
|
+
stdin.resume();
|
|
10599
|
+
stdin.setEncoding("utf8");
|
|
10600
|
+
return new Promise((resolve3, reject) => {
|
|
10601
|
+
let value = "";
|
|
10602
|
+
const onData = (chunk) => {
|
|
10603
|
+
for (const ch of chunk) {
|
|
10604
|
+
if (ch === "\r" || ch === "\n") {
|
|
10605
|
+
stdin.setRawMode(false);
|
|
10606
|
+
stdin.pause();
|
|
10607
|
+
stdin.off("data", onData);
|
|
10608
|
+
process.stderr.write("\n");
|
|
10609
|
+
return resolve3(value);
|
|
10610
|
+
}
|
|
10611
|
+
if (ch === "") {
|
|
10612
|
+
stdin.setRawMode(false);
|
|
10613
|
+
process.stderr.write("\n");
|
|
10614
|
+
return reject(usage(t("Cancelled.", "Cancelado.")));
|
|
10615
|
+
}
|
|
10616
|
+
if (ch === "\x7F") value = value.slice(0, -1);
|
|
10617
|
+
else value += ch;
|
|
10618
|
+
}
|
|
10619
|
+
};
|
|
10620
|
+
stdin.on("data", onData);
|
|
10621
|
+
});
|
|
10622
|
+
}
|
|
10623
|
+
async function visiblePrompt(label) {
|
|
10624
|
+
const { createInterface: createInterface3 } = await import("node:readline/promises");
|
|
10625
|
+
const rl = createInterface3({ input: process.stdin, output: process.stderr });
|
|
10626
|
+
try {
|
|
10627
|
+
return (await rl.question(label)).trim();
|
|
10628
|
+
} finally {
|
|
10629
|
+
rl.close();
|
|
10630
|
+
}
|
|
10631
|
+
}
|
|
10632
|
+
function kindOf(c) {
|
|
10633
|
+
if (c.kind === "credential") return t("key", "llave");
|
|
10634
|
+
if (c.store === "teams") return "OAuth (Teams)";
|
|
10635
|
+
return "OAuth";
|
|
10636
|
+
}
|
|
10637
|
+
async function catalog() {
|
|
10638
|
+
return (await api("/api/v2/me/connectors")).connectors;
|
|
10639
|
+
}
|
|
10640
|
+
async function find(id) {
|
|
10641
|
+
const all = await catalog();
|
|
10642
|
+
const q = id.toLowerCase();
|
|
10643
|
+
const c = all.find((x) => x.id === q) ?? all.find((x) => x.nombre.toLowerCase() === q);
|
|
10644
|
+
if (!c) throw usage(t(`Unknown connector: ${id}.`, `Conector desconocido: ${id}.`), t("List them with: ghosty connectors ls", "L\xEDstalos con: ghosty connectors ls"));
|
|
10645
|
+
return c;
|
|
10646
|
+
}
|
|
10647
|
+
async function readValues(c, fromEnv) {
|
|
10648
|
+
const fields = c.credential?.fields ?? [];
|
|
10649
|
+
const secrets = fields.filter((f) => f.secret !== false);
|
|
10650
|
+
const values = {};
|
|
10651
|
+
if (fromEnv || !process.stdin.isTTY) {
|
|
10652
|
+
if (fields.length !== 1) {
|
|
10653
|
+
throw usage(
|
|
10654
|
+
t(`${c.nombre} asks for ${fields.length} fields: run it in a terminal to answer them.`, `${c.nombre} pide ${fields.length} campos: c\xF3rrelo en una terminal para contestarlos.`),
|
|
10655
|
+
fields.map((f) => `${f.key}: ${f.label}`).join(" \xB7 ")
|
|
10656
|
+
);
|
|
10657
|
+
}
|
|
10658
|
+
if (fromEnv) {
|
|
10659
|
+
const v = process.env[fromEnv];
|
|
10660
|
+
if (!v) throw usage(t(`$${fromEnv} is empty or not set.`, `$${fromEnv} est\xE1 vac\xEDa o no existe.`));
|
|
10661
|
+
values[fields[0].key] = v.trim();
|
|
10662
|
+
} else {
|
|
10663
|
+
const parts = [];
|
|
10664
|
+
for await (const ch of process.stdin) parts.push(ch);
|
|
10665
|
+
values[fields[0].key] = Buffer.concat(parts).toString("utf8").trim();
|
|
10666
|
+
}
|
|
10667
|
+
return values;
|
|
10668
|
+
}
|
|
10669
|
+
if (!canPrompt()) throw usage(t("Nothing to save.", "No hay nada que guardar."), t("Use --from-env VAR or pipe the key.", "Usa --from-env VAR o pasa la llave por tuber\xEDa."));
|
|
10670
|
+
if (c.credential?.help) info(dim(c.credential.help + (c.credential.helpUrl ? ` ${c.credential.helpUrl}` : "")));
|
|
10671
|
+
for (const f of fields) {
|
|
10672
|
+
const label = `${f.label}${f.placeholder ? dim(` (${f.placeholder})`) : ""}: `;
|
|
10673
|
+
values[f.key] = secrets.includes(f) ? (await hiddenPrompt2(label)).trim() : await visiblePrompt(label);
|
|
10674
|
+
}
|
|
10675
|
+
return values;
|
|
10676
|
+
}
|
|
10677
|
+
async function connectorsCmd(sub, id, v) {
|
|
10678
|
+
switch (sub ?? "ls") {
|
|
10679
|
+
case "ls":
|
|
10680
|
+
case "list": {
|
|
10681
|
+
let all = await catalog();
|
|
10682
|
+
if (v.q) {
|
|
10683
|
+
const q = v.q.toLowerCase();
|
|
10684
|
+
all = all.filter((c) => `${c.id} ${c.nombre} ${c.descripcion}`.toLowerCase().includes(q));
|
|
10685
|
+
}
|
|
10686
|
+
const rows = all.map((c) => ({
|
|
10687
|
+
id: c.id,
|
|
10688
|
+
name: c.nombre,
|
|
10689
|
+
status: c.conectado ? t("connected", "conectado") : c.disponible ? t("available", "disponible") : t("soon", "muy pronto"),
|
|
10690
|
+
kind: kindOf(c)
|
|
10691
|
+
}));
|
|
10692
|
+
return out(all, () => table(rows, ["id", "name", "status", "kind"]));
|
|
10693
|
+
}
|
|
10694
|
+
case "connect": {
|
|
10695
|
+
if (!id) throw usage(t("Missing connector.", "Falta el conector."), t("Example: ghosty connectors connect shopify (ghosty connectors ls lists them)", "Ejemplo: ghosty connectors connect shopify (ghosty connectors ls los lista)"));
|
|
10696
|
+
const c = await find(id);
|
|
10697
|
+
if (!c.disponible) throw usage(t(`${c.nombre} isn't available yet.`, `${c.nombre} todav\xEDa no est\xE1 disponible.`));
|
|
10698
|
+
if (c.kind === "credential" && c.credential) {
|
|
10699
|
+
const values = await readValues(c, v["from-env"]);
|
|
10700
|
+
if (Object.values(values).some((x) => !x)) throw usage(t("Empty field: nothing saved.", "Campo vac\xEDo: no se guard\xF3 nada."));
|
|
10701
|
+
const r2 = await api(`/api/v2/me/connectors/${encodeURIComponent(c.id)}/credentials`, { method: "POST", body: { values } });
|
|
10702
|
+
return out(r2, () => `${lavender("\u2713")} ${c.nombre} ${t("connected", "conectado")}${r2.account ? dim(` (${r2.account})`) : ""}. ${dim(t("Give it to an agent: ghosty agents set <id> --connect " + c.id, "D\xE1selo a un agente: ghosty agents set <id> --connect " + c.id))}`);
|
|
10703
|
+
}
|
|
10704
|
+
const r = await api(`/api/v2/me/connectors/${encodeURIComponent(c.id)}/start?from=connectors`, { method: "POST" });
|
|
10705
|
+
if (!v["no-open"]) await openUrl(r.url);
|
|
10706
|
+
return out(
|
|
10707
|
+
r,
|
|
10708
|
+
() => [
|
|
10709
|
+
`${lavender("\u2192")} ${t(`Finish connecting ${c.nombre} in your browser:`, `Termina de conectar ${c.nombre} en tu navegador:`)}`,
|
|
10710
|
+
` ${r.url}`,
|
|
10711
|
+
dim(t("Then check it with: ghosty connectors ls --q " + c.id, "Luego rev\xEDsalo con: ghosty connectors ls --q " + c.id))
|
|
10712
|
+
].join("\n")
|
|
10713
|
+
);
|
|
10714
|
+
}
|
|
10715
|
+
case "disconnect":
|
|
10716
|
+
case "rm": {
|
|
10717
|
+
if (!id) throw usage(t("Missing connector.", "Falta el conector."), t("Example", "Ejemplo") + ": ghosty connectors disconnect shopify");
|
|
10718
|
+
const c = await find(id);
|
|
10719
|
+
if (!c.conectado) throw usage(t(`${c.nombre} isn't connected.`, `${c.nombre} no est\xE1 conectado.`));
|
|
10720
|
+
await confirm(t(`Disconnect ${c.nombre}? Your agents stop using it.`, `\xBFDesconectar ${c.nombre}? Tus agentes dejar\xE1n de usarlo.`), { yes: v.yes, retry: `ghosty connectors disconnect ${c.id}` });
|
|
10721
|
+
const r = await api(`/api/v2/me/connectors/${encodeURIComponent(c.id)}`, { method: "DELETE" });
|
|
10722
|
+
return out(r, () => `${lavender("\u2713")} ${c.nombre} ${t("disconnected.", "desconectado.")}${r.aviso ? `
|
|
10723
|
+
${dim(r.aviso)}` : ""}`);
|
|
10724
|
+
}
|
|
10725
|
+
default:
|
|
10726
|
+
throw usage(t(`Unknown connectors subcommand: ${sub}.`, `Subcomando de connectors desconocido: ${sub}.`), t("Try", "Prueba") + ": ghosty connectors ls | connect | disconnect (ghosty connectors --help)");
|
|
10727
|
+
}
|
|
10728
|
+
}
|
|
10729
|
+
|
|
10560
10730
|
// src/commands/channels.ts
|
|
10561
10731
|
import { readFile as readFile8 } from "node:fs/promises";
|
|
10562
10732
|
|
|
@@ -10596,7 +10766,7 @@ async function readMultiFileAuth(dir) {
|
|
|
10596
10766
|
// src/commands/channels.ts
|
|
10597
10767
|
var enc7 = encodeURIComponent;
|
|
10598
10768
|
var digits = (s) => s.replace(/\D/g, "");
|
|
10599
|
-
function
|
|
10769
|
+
function find2(nums, ref) {
|
|
10600
10770
|
const d = digits(ref);
|
|
10601
10771
|
const hit = nums.find((n) => n.id === ref) ?? nums.find((n) => n.label.toLowerCase() === ref.toLowerCase()) ?? (d.length >= 6 ? nums.find((n) => digits(n.label).endsWith(d)) : void 0);
|
|
10602
10772
|
if (!hit) throw usage(t(`No WhatsApp number "${ref}" for this agent.`, `Este agente no tiene el n\xFAmero de WhatsApp "${ref}".`), nums.length ? `${t("Available", "Disponibles")}: ${nums.map((n) => n.label).join(", ")}` : t("Pair a number first in the web (the agent's Channels page).", "Primero parea un n\xFAmero en la web (p\xE1gina Canales del agente)."));
|
|
@@ -10626,7 +10796,7 @@ async function channelsCmd(kind, sub, id, ref, v) {
|
|
|
10626
10796
|
}
|
|
10627
10797
|
if (sub !== "enable" && sub !== "disable") throw usage(t(`Unknown subcommand: ${sub}.`, `Subcomando desconocido: ${sub}.`), t("Try", "Prueba") + ": ghosty channels whatsapp ls | enable | disable | integrations | link | unlink | history \xB7 ghosty channels wa import | status | pause | groups");
|
|
10628
10798
|
if (!ref) throw usage(t("Missing number.", "Falta el n\xFAmero."), t("Example", "Ejemplo") + `: ghosty channels whatsapp ${sub} ${id} +52 55 1234 5678`);
|
|
10629
|
-
const n =
|
|
10799
|
+
const n = find2(cur.numbers, ref);
|
|
10630
10800
|
const on = sub === "enable";
|
|
10631
10801
|
if (on === n.mine) return out({ changed: 0, number: n.label, answers: on }, () => dim(t(`Nothing to do: ${n.label} is already ${on ? "answered by this agent" : "not answered by it"}.`, `Nada que hacer: ${n.label} ya ${on ? "lo contesta este agente" : "no lo contesta este agente"}.`)));
|
|
10632
10802
|
const plan = on ? `+ ${n.label}: ${t(`this agent starts answering its customers${n.takenByOther ? " (takes it from the agent answering today)" : ""}`, `este agente empieza a contestarles a sus clientes${n.takenByOther ? " (se lo quita al agente que contesta hoy)" : ""}`)}` : `- ${n.label}: ${t("this agent stops answering (messages are still logged)", "este agente deja de contestar (los mensajes se siguen registrando)")}`;
|
|
@@ -11055,6 +11225,7 @@ var HELPS_ES = {
|
|
|
11055
11225
|
["--voice E:ID", "set: voz de las notas de voz: elevenlabs:<voiceId> o kokoro:em_santa|em_alex|ef_dora"],
|
|
11056
11226
|
["--voice-replies M", "set: auto = contesta con nota de voz cuando el cliente manda o pide audio; off = siempre texto"],
|
|
11057
11227
|
["--auto-stage on|off", "set: mueve solo las tarjetas del tablero tras cada turno del cliente (una llamada extra al modelo por turno)"],
|
|
11228
|
+
["--quote k=v,\u2026", "set: config de la tool de casa `cotizar` \u2014 iva (0-100), vigencia (d\xEDas), prefix (folio), moneda, empresa, rfc, telefono, correo, direccion, notas, color. Vac\xEDo lo borra (rfc=). El contador de folio no se toca"],
|
|
11058
11229
|
["--verbose", "doctor: lista tambi\xE9n las revisiones que pasaron"],
|
|
11059
11230
|
["--user EMAIL", "doctor (staff de Ghosty): los agentes de esa persona \u2014 doctor, \xFAltimos turnos (estado, segundos, error y \xABfetched\xBB: si su app pidi\xF3 el hilo despu\xE9s de que termin\xF3 el turno), plan/bolsa y cajas (marca duplicadas); queda en bit\xE1cora"],
|
|
11060
11231
|
["--turns N", "doctor --user: cu\xE1ntos turnos recientes por agente (default 8, m\xE1x. 50)"],
|
|
@@ -11141,7 +11312,7 @@ var HELPS_ES = {
|
|
|
11141
11312
|
},
|
|
11142
11313
|
turns: {
|
|
11143
11314
|
summary: "Los turnos recientes de un agente: qu\xE9 contest\xF3, qu\xE9 fall\xF3 y por qu\xE9, y en qu\xE9 se fue el tiempo de un turno.",
|
|
11144
|
-
replace: [["# last turn: each tool, its seconds, output tokens", "# \xFAltimo turno: cada tool, sus segundos, tokens de salida"], ["# stop the turn AND its background jobs", "# detiene el turno Y sus encargos en fondo"], ["# staff: real failure rate by engine, channel (Teams/A2A too) and error", "# staff: tasa real de fallos por motor, canal (tambi\xE9n Teams y A2A) y error"]],
|
|
11315
|
+
replace: [["# last turn: each tool, its seconds, output tokens", "# \xFAltimo turno: cada tool, sus segundos, tokens de salida"], ["# stop the turn AND its background jobs", "# detiene el turno Y sus encargos en fondo"], ["# staff: real failure rate by engine, channel (Teams/A2A too) and error", "# staff: tasa real de fallos por motor, canal (tambi\xE9n Teams y A2A) y error"], ["# what the customer or the agent said, and its turn", "# lo que dijo el cliente o el agente, y su turno"]],
|
|
11145
11316
|
flags: [
|
|
11146
11317
|
["--errors", "s\xF3lo turnos fallidos (igual que --status error)"],
|
|
11147
11318
|
["--skipped", "ls: mensajes de clientes de WhatsApp Business que NO abrieron turno, y por qu\xE9 (operador activo, s\xF3lo registra, pausa, reacci\xF3n, canal apagado, sin saldo)"],
|
|
@@ -11151,7 +11322,8 @@ var HELPS_ES = {
|
|
|
11151
11322
|
["--full", "show: el mensaje que entr\xF3 y la respuesta completos (default: primeros 600 caracteres)"],
|
|
11152
11323
|
["--quota-hits", "ls --workspace: mensajes (WhatsApp Business y Teams) que no abrieron turno porque se acab\xF3 el saldo"],
|
|
11153
11324
|
["--all", "stats (staff): cuenta tambi\xE9n staff, canal prueba y agentes borrados"],
|
|
11154
|
-
["--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, \u26A0 desde cero (orphan|stale|replaced) = perdi\xF3 la memoria"]
|
|
11325
|
+
["--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"],
|
|
11326
|
+
["--role R", "grep: user (lo que escribi\xF3 el cliente) | agent (lo que contest\xF3 el agente)"]
|
|
11155
11327
|
],
|
|
11156
11328
|
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)."]
|
|
11157
11329
|
},
|
|
@@ -11215,6 +11387,17 @@ var HELPS_ES = {
|
|
|
11215
11387
|
],
|
|
11216
11388
|
notes: ["La llave nunca se acepta como argumento: se quedar\xEDa en el historial de tu shell y en `ps`."]
|
|
11217
11389
|
},
|
|
11390
|
+
connectors: {
|
|
11391
|
+
summary: "Los conectores de tu cuenta (los mismos de /app/connectors y la app): listar, conectar y desconectar.",
|
|
11392
|
+
replace: [["# opens the browser: type your store and approve", "# abre el navegador: escribe tu tienda y autoriza"], ["# then give it to an agent", "# luego d\xE1selo a un agente"]],
|
|
11393
|
+
flags: [
|
|
11394
|
+
["--q TEXT", "ls: filtra por id, nombre o descripci\xF3n"],
|
|
11395
|
+
["--from-env VAR", "connect: los de llave con UN campo la leen de esta variable de entorno"],
|
|
11396
|
+
["--no-open", "connect: imprime la URL sin abrir el navegador (SSH, agentes)"],
|
|
11397
|
+
["--yes", "disconnect: se salta la confirmaci\xF3n"]
|
|
11398
|
+
],
|
|
11399
|
+
notes: ["Los de OAuth terminan en el navegador; los de llave se verifican antes de guardarse. Las llaves nunca se aceptan como argumento."]
|
|
11400
|
+
},
|
|
11218
11401
|
channels: {
|
|
11219
11402
|
summary: "Qu\xE9 n\xFAmeros de WhatsApp Business contesta un agente, y qu\xE9 grupos de su WhatsApp personal (y como qui\xE9n). Los n\xFAmeros se emparejan en la web.",
|
|
11220
11403
|
replace: [['"Name"', '"Nombre"']],
|
|
@@ -11409,14 +11592,15 @@ var HELPS_ES = {
|
|
|
11409
11592
|
["--note TEXT", "renew: por qu\xE9 (va a la bit\xE1cora)"],
|
|
11410
11593
|
["--to EMAIL", "transfer: el due\xF1o nuevo (si no tiene cuenta se precrea y la reclama al entrar)"],
|
|
11411
11594
|
["--keep-as R", "transfer: el rol del due\xF1o anterior \u2014 admin | member (default) | none (sale del espacio)"],
|
|
11412
|
-
["--copy-keys", "transfer: copia las llaves de proveedor del anterior que le falten al nuevo
|
|
11595
|
+
["--copy-keys", "transfer: copia las llaves de proveedor del anterior y los conectores que usan sus agentes (MercadoPago, Skydropx\u2026) que le falten al nuevo. S\xF3lo cambia el due\xF1o: documentos, bases, tableros y n\xFAmeros que usan sus agentes se van con \xE9l; lo que tambi\xE9n se usa fuera del espacio se queda y se avisa"],
|
|
11596
|
+
["--action A", "log: s\xF3lo esos eventos (workspace, workspace.transfer, partner\u2026)"],
|
|
11413
11597
|
["-n, --dry-run", "ense\xF1a qu\xE9 cambia, no cambia nada"],
|
|
11414
11598
|
["--yes", "s\xE1ltate la confirmaci\xF3n (obligatorio sin terminal)"]
|
|
11415
11599
|
],
|
|
11416
11600
|
notes: ["create sigue las reglas de la web: queda a tu nombre, nace como prueba de 30 d\xEDas, tu correo debe estar confirmado y tu plan topa cu\xE1ntos tienes. Sigue: ghosty partner enable <slug>.", "Con suscripci\xF3n de Stripe renew se niega: la fecha la mueve la factura pagada.", "rename cambia s\xF3lo el slug (id y namespace se quedan, as\xED que tablero, Stripe y WhatsApp siguen funcionando); las ligas viejas <slug>.sales dejan de servir.", "transfer se lleva los agentes con el espacio y recicla sus cajas (el due\xF1o va horneado en la caja); sin --copy-keys la simulaci\xF3n dice qu\xE9 llaves le faltan al nuevo \u2014 esos agentes dejar\xEDan de contestar."]
|
|
11417
11601
|
}
|
|
11418
11602
|
};
|
|
11419
|
-
var HELP_ALIASES = { creds: "credentials", board: "cards", conversations: "chat", workspaces: "spaces" };
|
|
11603
|
+
var HELP_ALIASES = { creds: "credentials", conectores: "connectors", board: "cards", conversations: "chat", workspaces: "spaces" };
|
|
11420
11604
|
|
|
11421
11605
|
// src/help.ts
|
|
11422
11606
|
var DOCS = "https://www.ghosty.studio/docs/cli";
|
|
@@ -11468,6 +11652,7 @@ var HELPS = {
|
|
|
11468
11652
|
["--voice E:ID", "set: voice for voice notes: elevenlabs:<voiceId> or kokoro:em_santa|em_alex|ef_dora"],
|
|
11469
11653
|
["--voice-replies M", "set: auto = answer with a voice note when the customer sends or asks for audio; off = always text"],
|
|
11470
11654
|
["--auto-stage on|off", "set: move board cards by itself after each customer turn (one extra model call per turn)"],
|
|
11655
|
+
["--quote k=v,\u2026", "set: config of the house `cotizar` tool \u2014 iva (0-100), vigencia (days), prefix (folio), moneda, empresa, rfc, telefono, correo, direccion, notas, color. Empty value clears it (rfc=). The folio counter is never touched"],
|
|
11471
11656
|
["--verbose", "doctor: also list the checks that passed"],
|
|
11472
11657
|
["--user EMAIL", "doctor (Ghosty staff): that person's agents \u2014 doctor, latest turns (state, seconds, error, and \xABfetched\xBB: whether their app asked for the thread after the turn ended), plan/bag and boxes (duplicates flagged); logged"],
|
|
11473
11658
|
["--turns N", "doctor --user: how many recent turns per agent (default 8, max 50)"],
|
|
@@ -11612,7 +11797,7 @@ var HELPS = {
|
|
|
11612
11797
|
},
|
|
11613
11798
|
turns: {
|
|
11614
11799
|
summary: "An agent's recent turns: what answered, what failed and why, and where one turn's time went.",
|
|
11615
|
-
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 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"],
|
|
11800
|
+
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"],
|
|
11616
11801
|
flags: [
|
|
11617
11802
|
["--errors", "only failed turns (same as --status error)"],
|
|
11618
11803
|
["--skipped", "ls: WhatsApp Business customer messages that did NOT open a turn, and why (operator active, records only, paused, reaction, channel off, no balance)"],
|
|
@@ -11622,9 +11807,10 @@ var HELPS = {
|
|
|
11622
11807
|
["--full", "show: the whole message that came in and the whole answer (default: first 600 chars)"],
|
|
11623
11808
|
["--quota-hits", "ls --workspace: messages (WhatsApp Business and Teams) that got no turn because the balance ran out"],
|
|
11624
11809
|
["--all", "stats (staff): also count staff users, the test channel and deleted agents"],
|
|
11625
|
-
["--session S", "ls: only this conversation's turns. Claude turns show \xABresumed\xBB: \u2713 = it kept the SDK session, \u26A0 from scratch (orphan|stale|replaced) = it lost its memory"]
|
|
11810
|
+
["--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"],
|
|
11811
|
+
["--role R", "grep: user (what the customer wrote) | agent (what the agent answered)"]
|
|
11626
11812
|
],
|
|
11627
|
-
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"],
|
|
11813
|
+
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'],
|
|
11628
11814
|
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)."],
|
|
11629
11815
|
learn: `${REF}#turnos`
|
|
11630
11816
|
},
|
|
@@ -11735,6 +11921,25 @@ HELPS.credentials = {
|
|
|
11735
11921
|
learn: `${REF}#credenciales`
|
|
11736
11922
|
};
|
|
11737
11923
|
HELPS.creds = HELPS.credentials;
|
|
11924
|
+
HELPS.connectors = {
|
|
11925
|
+
summary: "Your account's connectors (the same as /app/connectors and the app): list, connect and disconnect.",
|
|
11926
|
+
usage: ["ghosty connectors ls [--q TEXT]", "ghosty connectors connect <id> [--from-env VAR | < stdin] [--no-open]", "ghosty connectors disconnect <id> [--yes]"],
|
|
11927
|
+
flags: [
|
|
11928
|
+
["--q TEXT", "ls: filter by id, name or description"],
|
|
11929
|
+
["--from-env VAR", "connect: key connectors with ONE field read it from this environment variable"],
|
|
11930
|
+
["--no-open", "connect: print the URL without opening the browser (SSH, agents)"],
|
|
11931
|
+
["--yes", "disconnect: skip the confirmation"]
|
|
11932
|
+
],
|
|
11933
|
+
examples: [
|
|
11934
|
+
"ghosty connectors ls --q shop",
|
|
11935
|
+
"ghosty connectors connect shopify # opens the browser: type your store and approve",
|
|
11936
|
+
"ghosty connectors connect stripe --from-env STRIPE_SECRET_KEY",
|
|
11937
|
+
"ghosty agents set <agent> --connect shopify # then give it to an agent"
|
|
11938
|
+
],
|
|
11939
|
+
notes: ["OAuth connectors finish in the browser; key connectors are verified before saving. Keys are never accepted as arguments."],
|
|
11940
|
+
learn: `${REF}#conectores`
|
|
11941
|
+
};
|
|
11942
|
+
HELPS.conectores = HELPS.connectors;
|
|
11738
11943
|
HELPS.channels = {
|
|
11739
11944
|
summary: "Which WhatsApp Business numbers an agent answers, and which groups of its personal WhatsApp (and as whom). Pair numbers in the web.",
|
|
11740
11945
|
usage: [
|
|
@@ -11991,7 +12196,7 @@ HELPS.novedades = {
|
|
|
11991
12196
|
};
|
|
11992
12197
|
HELPS.spaces = {
|
|
11993
12198
|
summary: "Workspaces: create one of your own (trial), list yours (or, staff, anyone's), and Ghosty staff operations \u2014 join/leave a client's workspace, change its combo, move \xABpaid until\xBB, rename its slug, change its owner. Each change is logged in the workspace's audit.",
|
|
11994
|
-
usage: ["ghosty spaces ls [--user EMAIL]", "ghosty spaces create <slug> [--combo teams|sales|both] [--dry-run]", "ghosty spaces join|leave <workspace>", "ghosty spaces set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off [--dry-run]", "ghosty spaces renew <workspace> --until YYYY-MM-DD [--note TEXT] [--dry-run] [--yes]", "ghosty spaces rename <old> <new> [--dry-run] [--yes]", "ghosty spaces transfer <workspace> --to EMAIL [--keep-as admin|member|none] [--copy-keys] [--dry-run] [--yes]"],
|
|
12199
|
+
usage: ["ghosty spaces ls [--user EMAIL]", "ghosty spaces create <slug> [--combo teams|sales|both] [--dry-run]", "ghosty spaces join|leave <workspace>", "ghosty spaces set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off [--dry-run]", "ghosty spaces renew <workspace> --until YYYY-MM-DD [--note TEXT] [--dry-run] [--yes]", "ghosty spaces rename <old> <new> [--dry-run] [--yes]", "ghosty spaces transfer <workspace> --to EMAIL [--keep-as admin|member|none] [--copy-keys] [--dry-run] [--yes]", "ghosty spaces log <workspace> [--since 30d] [--action workspace] [--limit N]"],
|
|
11995
12200
|
flags: [
|
|
11996
12201
|
["--user EMAIL", "ls (staff): that person's workspaces"],
|
|
11997
12202
|
["--combo C", "set (staff): teams | sales | both \u2014 without Sales its boards exist but nobody sees them; create: other than teams, staff only"],
|
|
@@ -12001,11 +12206,12 @@ HELPS.spaces = {
|
|
|
12001
12206
|
["--note TEXT", "renew: why (goes into the audit)"],
|
|
12002
12207
|
["--to EMAIL", "transfer: the new owner (if they have no account it is pre-created and claimed on login)"],
|
|
12003
12208
|
["--keep-as R", "transfer: the previous owner's role \u2014 admin | member (default) | none (removed)"],
|
|
12004
|
-
["--copy-keys", "transfer: copy the previous owner's provider keys the new one lacks
|
|
12209
|
+
["--copy-keys", "transfer: copy the previous owner's provider keys and the connectors its agents use (MercadoPago, Skydropx\u2026) that the new one lacks. Only the owner changes: documents, databases, boards and numbers its agents use move with it; anything also used outside the space stays and is listed"],
|
|
12210
|
+
["--action A", "log: only these events (workspace, workspace.transfer, partner\u2026)"],
|
|
12005
12211
|
["-n, --dry-run", "show what changes, change nothing"],
|
|
12006
12212
|
["--yes", "skip the confirmation (required without a terminal)"]
|
|
12007
12213
|
],
|
|
12008
|
-
examples: ["ghosty spaces ls", "ghosty spaces create mailmask --dry-run", "ghosty spaces ls --user brenda@siiqtec.com", "ghosty spaces join denik", "ghosty spaces set denik --combo sales --dry-run", "ghosty spaces set mailmask --model-cap 4 --house-claude on", 'ghosty spaces renew descti --until 2026-11-01 --note "pag\xF3 octubre"', "ghosty spaces rename totequim siiqtec --dry-run", "ghosty spaces transfer siiqtec --to siiqtec@gmail.com --keep-as admin --copy-keys --dry-run"],
|
|
12214
|
+
examples: ["ghosty spaces ls", "ghosty spaces create mailmask --dry-run", "ghosty spaces ls --user brenda@siiqtec.com", "ghosty spaces join denik", "ghosty spaces set denik --combo sales --dry-run", "ghosty spaces set mailmask --model-cap 4 --house-claude on", 'ghosty spaces renew descti --until 2026-11-01 --note "pag\xF3 octubre"', "ghosty spaces rename totequim siiqtec --dry-run", "ghosty spaces transfer siiqtec --to siiqtec@gmail.com --keep-as admin --copy-keys --dry-run", "ghosty spaces log siiqtec --since 30d"],
|
|
12009
12215
|
notes: ["create follows the same rules as the web: you own it, it starts as a 30-day trial, your email must be confirmed, and your plan caps how many you own. Next: ghosty partner enable <slug>.", "With a Stripe subscription renew refuses: the paid invoice moves the date.", "rename changes only the slug (id and namespace stay, so board, Stripe and WhatsApp keep working); old <slug>.sales links stop working.", "transfer moves the agents with the workspace and recycles their boxes (the owner is baked into the box); without --copy-keys the dry run lists which keys the new owner lacks \u2014 those agents would stop answering."],
|
|
12010
12216
|
learn: `${REF}#espacios`
|
|
12011
12217
|
};
|
|
@@ -12504,7 +12710,7 @@ ${bagsText(r)}`);
|
|
|
12504
12710
|
}
|
|
12505
12711
|
}
|
|
12506
12712
|
async function spacesCmd(sub, slug, arg, v, context) {
|
|
12507
|
-
const ex = "ghosty spaces ls [--user EMAIL] \xB7 create <slug> [--combo teams|sales|both] [--dry-run] \xB7 join|leave <workspace> \xB7 set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off \xB7 renew <workspace> --until 2026-11-01 [--note TEXT] \xB7 rename <old> <new> [--dry-run] \xB7 transfer <workspace> --to EMAIL [--keep-as admin|member|none] [--copy-keys] [--dry-run]";
|
|
12713
|
+
const ex = "ghosty spaces ls [--user EMAIL] \xB7 create <slug> [--combo teams|sales|both] [--dry-run] \xB7 join|leave <workspace> \xB7 set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off \xB7 renew <workspace> --until 2026-11-01 [--note TEXT] \xB7 rename <old> <new> [--dry-run] \xB7 transfer <workspace> --to EMAIL [--keep-as admin|member|none] [--copy-keys] [--dry-run] \xB7 log <workspace> [--since 30d] [--action workspace]";
|
|
12508
12714
|
if (!sub || sub === "ls" || sub === "list") {
|
|
12509
12715
|
const r = await api(`/api/v2/workspaces${v.user ? `?user=${enc10(v.user)}` : ""}`);
|
|
12510
12716
|
const rows = r.workspaces.map((w) => ({ workspace: w.slug, role: w.role ?? "", plan: w.plan, combo: w.combo, owner: w.owner ?? "", paid: w.paidUntil ?? "" }));
|
|
@@ -12520,6 +12726,15 @@ ${dim(t("Dry run: nothing created.", "Simulaci\xF3n: no se cre\xF3 nada."))}`);
|
|
|
12520
12726
|
return out(r, () => `${lavender("\u2713")} ${line2}
|
|
12521
12727
|
${dim(t(`Next: ghosty use ${r.workspace} \xB7 ghosty partner enable ${r.workspace}`, `Sigue: ghosty use ${r.workspace} \xB7 ghosty partner enable ${r.workspace}`))}`);
|
|
12522
12728
|
}
|
|
12729
|
+
if (sub === "log") {
|
|
12730
|
+
slug = needSpace(slug, "ghosty spaces log <workspace> [--since 30d] [--action workspace]");
|
|
12731
|
+
const q = new URLSearchParams({ limit: v.limit ?? "50" });
|
|
12732
|
+
if (v.since) q.set("since", v.since);
|
|
12733
|
+
if (v.action) q.set("action", v.action);
|
|
12734
|
+
const r = await api(wsPath(slug, `/log?${q}`));
|
|
12735
|
+
const rows = r.events.map((e) => ({ at: e.at.slice(0, 16).replace("T", " "), actor: e.actor, action: e.action, detail: serverText(e.detail ? JSON.stringify(e.detail) : "").slice(0, 110) }));
|
|
12736
|
+
return out(r, () => rows.length ? table(rows, ["at", "actor", "action", "detail"]) : dim(t(`No events in ${r.workspace}${v.since ? ` since ${v.since}` : ""}.`, `Sin eventos en ${r.workspace}${v.since ? ` desde ${v.since}` : ""}.`)));
|
|
12737
|
+
}
|
|
12523
12738
|
if (sub === "join" || sub === "leave") {
|
|
12524
12739
|
slug = needSpace(slug, `ghosty spaces ${sub} <workspace>`);
|
|
12525
12740
|
const r = await api(wsPath(slug, "/staff"), { method: "POST", body: { join: sub === "join" } });
|
|
@@ -13070,6 +13285,7 @@ ${bold("Workspaces")} ${dim("(changing them: Ghosty staff)")}
|
|
|
13070
13285
|
spaces renew <workspace> --until DATE Move \xABpaid until\xBB (logged) [--note] [--dry-run]
|
|
13071
13286
|
spaces rename <old> <new> Change its slug only [--dry-run]
|
|
13072
13287
|
spaces transfer <workspace> --to EMAIL New owner; agents go with it and their boxes are recycled [--keep-as admin|member|none] [--copy-keys] [--dry-run]
|
|
13288
|
+
spaces log <workspace> Its log: transfers, staff in/out, renewals (owner or staff) [--since 30d] [--action workspace]
|
|
13073
13289
|
|
|
13074
13290
|
${bold("Agents")}
|
|
13075
13291
|
agents ls List your agents [--engine E] [--ids: only ids, for xargs] \xB7 --user EMAIL --app all|android|ios|desktop: as their app sees it (staff)
|
|
@@ -13084,6 +13300,7 @@ ${bold("Agents")}
|
|
|
13084
13300
|
[--connect google-drive,\u2026] [--disconnect \u2026] give/remove access to your connectors
|
|
13085
13301
|
[--channels wa=on,teams=off] turn channels on/off (wa = personal WhatsApp)
|
|
13086
13302
|
[--voice elevenlabs:ID | kokoro:em_santa] [--voice-replies auto|off] [--auto-stage on|off]
|
|
13303
|
+
[--quote iva=0,prefix=SFI,vigencia=15] house cotizar tool config (issuer, VAT, folio)
|
|
13087
13304
|
[--toolsets crm,sales | +crm,-sales] gs tool groups it gets
|
|
13088
13305
|
[--prompt-base AGENT|none --prompt-overlay FILE [--dry-run]] prompt = another agent's + edits, kept in sync
|
|
13089
13306
|
[--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
|
|
@@ -13153,6 +13370,7 @@ ${bold("Talk to an agent")}
|
|
|
13153
13370
|
turns ls <id> Recent turns and why they failed [--errors] [--skipped] [--since 1h] [--limit N]
|
|
13154
13371
|
turns ls --workspace SLUG --quota-hits Messages that got no turn because the balance ran out [--days 14]
|
|
13155
13372
|
turns show <id> [turn] What came in, what it answered, and where the time went (default: last) [--full]
|
|
13373
|
+
turns grep <id> "text" Find what the customer or the agent said, and the turn [--since 7d] [--role user|agent] [--session S]
|
|
13156
13374
|
turns cancel <id> <conv> Stop: the running turn AND that conversation's background jobs (video, subagents, pending wake-ups)
|
|
13157
13375
|
|
|
13158
13376
|
${bold("Schedule turns")} ${dim("(each run lands in a conversation and notifies your phone; an answer of exactly OK stays silent)")}
|
|
@@ -13171,6 +13389,7 @@ ${bold("Your account")}
|
|
|
13171
13389
|
me files ls|get|upload|rm Files in your account [--q TEXT] [--kind image|video|audio|document|other] [--cursor C] \xB7 get <id> [--out FILE]
|
|
13172
13390
|
me memories ls|add|edit|rm What your agents remember about you (personal chats only) add "text" \xB7 edit <id> "text" \xB7 rm <id>
|
|
13173
13391
|
credentials ls|set|rm [provider] Provider keys in your vault (hidden prompt, stdin or --from-env VAR; never as an argument)
|
|
13392
|
+
connectors ls|connect|disconnect [id] Your connectors (Shopify, Stripe, monday\u2026): connect opens the browser or asks for the key
|
|
13174
13393
|
docs [topic] Open the docs
|
|
13175
13394
|
|
|
13176
13395
|
${bold("Global options")}
|
|
@@ -13209,6 +13428,7 @@ ${bold("Espacios")} ${dim("(cambiarlos: staff de Ghosty)")}
|
|
|
13209
13428
|
spaces renew <espacio> --until FECHA Mueve \xABpagado hasta\xBB (queda en bit\xE1cora) [--note] [--dry-run]
|
|
13210
13429
|
spaces rename <viejo> <nuevo> Cambia s\xF3lo su slug [--dry-run]
|
|
13211
13430
|
spaces transfer <espacio> --to CORREO Due\xF1o nuevo; los agentes se van con \xE9l y se reciclan sus cajas [--keep-as admin|member|none] [--copy-keys] [--dry-run]
|
|
13431
|
+
spaces log <espacio> Su bit\xE1cora: traspasos, staff que entra o sale, renovaciones (due\xF1o o staff) [--since 30d] [--action workspace]
|
|
13212
13432
|
|
|
13213
13433
|
${bold("Agentes")}
|
|
13214
13434
|
agents ls Lista tus agentes [--engine E] [--ids: s\xF3lo ids, para xargs] \xB7 --user CORREO --app all|android|ios|desktop: como lo ve su app (staff)
|
|
@@ -13223,6 +13443,7 @@ ${bold("Agentes")}
|
|
|
13223
13443
|
[--connect google-drive,\u2026] [--disconnect \u2026] dale o qu\xEDtale acceso a tus conectores
|
|
13224
13444
|
[--channels wa=on,teams=off] prende/apaga canales (wa = WhatsApp personal)
|
|
13225
13445
|
[--voice elevenlabs:ID | kokoro:em_santa] [--voice-replies auto|off] [--auto-stage on|off]
|
|
13446
|
+
[--quote iva=0,prefix=SFI,vigencia=15] config de la tool de casa cotizar (emisor, IVA, folio)
|
|
13226
13447
|
[--toolsets crm,sales | +crm,-sales] grupos de tools de gs que recibe
|
|
13227
13448
|
[--prompt-base AGENTE|none --prompt-overlay ARCHIVO [--dry-run]] prompt = el de otro agente + ediciones, sincronizado
|
|
13228
13449
|
[--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
|
|
@@ -13292,6 +13513,7 @@ ${bold("Hablar con un agente")}
|
|
|
13292
13513
|
turns ls <id> Turnos recientes y por qu\xE9 fallaron [--errors] [--skipped] [--since 1h] [--limit N]
|
|
13293
13514
|
turns ls --workspace SLUG --quota-hits Mensajes que no abrieron turno porque se acab\xF3 el saldo [--days 14]
|
|
13294
13515
|
turns show <id> [turno] Qu\xE9 lleg\xF3, qu\xE9 contest\xF3 y en qu\xE9 se fue el tiempo (default: el \xFAltimo) [--full]
|
|
13516
|
+
turns grep <id> "texto" Busca lo que dijo el cliente o el agente, y su turno [--since 7d] [--role user|agent] [--session S]
|
|
13295
13517
|
turns cancel <id> <conv> Detener: el turno en curso Y los encargos en fondo de esa conversaci\xF3n (video, subagentes, despertadores)
|
|
13296
13518
|
|
|
13297
13519
|
${bold("Turnos programados")} ${dim("(cada corrida cae en una conversaci\xF3n y avisa a tu tel\xE9fono; una respuesta de exactamente OK no avisa)")}
|
|
@@ -13310,6 +13532,7 @@ ${bold("Tu cuenta")}
|
|
|
13310
13532
|
me files ls|get|upload|rm Archivos de tu cuenta [--q TEXTO] [--kind image|video|audio|document|other] [--cursor C] \xB7 get <id> [--out ARCHIVO]
|
|
13311
13533
|
me memories ls|add|edit|rm Lo que tus agentes recuerdan de ti (s\xF3lo chats personales) add "texto" \xB7 edit <id> "texto" \xB7 rm <id>
|
|
13312
13534
|
credentials ls|set|rm [proveedor] Llaves de proveedor en tu b\xF3veda (prompt oculto, stdin o --from-env VAR; nunca como argumento)
|
|
13535
|
+
connectors ls|connect|disconnect [id] Tus conectores (Shopify, Stripe, monday\u2026): connect abre el navegador o pide la llave
|
|
13313
13536
|
docs [tema] Abre la documentaci\xF3n
|
|
13314
13537
|
|
|
13315
13538
|
${bold("Opciones globales")}
|
|
@@ -13325,7 +13548,7 @@ ${bold("Opciones globales")}
|
|
|
13325
13548
|
${bold("C\xF3digos de salida")} 0 bien \xB7 1 error de la API \xB7 2 uso incorrecto \xB7 3 sin sesi\xF3n
|
|
13326
13549
|
${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.")}
|
|
13327
13550
|
${dim("Documentaci\xF3n: https://www.ghosty.studio/docs/cli")}`;
|
|
13328
|
-
var COMMANDS = ["login", "logout", "whoami", "usage", "use", "apply", "plan", "engines", "bags", "spaces", "workspaces", "demos", "sites", "push", "novedades", "completion", "cards", "agents", "files", "skills", "mcp", "dbs", "turns", "try", "chat", "conversations", "schedule", "partner", "me", "channels", "board", "boards", "credentials", "browser", "docs", "help"];
|
|
13551
|
+
var COMMANDS = ["login", "logout", "whoami", "usage", "use", "apply", "plan", "engines", "bags", "spaces", "workspaces", "demos", "sites", "push", "novedades", "completion", "cards", "agents", "files", "skills", "mcp", "dbs", "turns", "try", "chat", "conversations", "schedule", "partner", "me", "channels", "board", "boards", "credentials", "connectors", "browser", "docs", "help"];
|
|
13329
13552
|
var AGENTS_SUBS = ["ls", "create", "get", "set", "export", "doctor", "docs", "share", "unshare", "shares", "teams", "rm", "restart", "demo", "box"];
|
|
13330
13553
|
function unknown(what, input, known, helpCmd) {
|
|
13331
13554
|
const s = suggest(input, known);
|
|
@@ -13425,6 +13648,7 @@ async function main() {
|
|
|
13425
13648
|
status: { type: "string" },
|
|
13426
13649
|
since: { type: "string" },
|
|
13427
13650
|
limit: { type: "string" },
|
|
13651
|
+
action: { type: "string" },
|
|
13428
13652
|
verbose: { type: "boolean" },
|
|
13429
13653
|
full: { type: "boolean" },
|
|
13430
13654
|
"as-formmy": { type: "boolean" },
|
|
@@ -13455,6 +13679,7 @@ async function main() {
|
|
|
13455
13679
|
create: { type: "boolean" },
|
|
13456
13680
|
prune: { type: "boolean" },
|
|
13457
13681
|
q: { type: "string" },
|
|
13682
|
+
"no-open": { type: "boolean" },
|
|
13458
13683
|
"prompt-out": { type: "string" },
|
|
13459
13684
|
toolsets: { type: "string" },
|
|
13460
13685
|
"prompt-base": { type: "string" },
|
|
@@ -13464,6 +13689,7 @@ async function main() {
|
|
|
13464
13689
|
grant: { type: "string" },
|
|
13465
13690
|
days: { type: "string" },
|
|
13466
13691
|
voice: { type: "string" },
|
|
13692
|
+
quote: { type: "string" },
|
|
13467
13693
|
"voice-replies": { type: "string" },
|
|
13468
13694
|
"auto-stage": { type: "string" },
|
|
13469
13695
|
"from-env": { type: "string" },
|
|
@@ -13551,7 +13777,7 @@ async function main() {
|
|
|
13551
13777
|
const tokens = splitTokens(pos, v);
|
|
13552
13778
|
globals.token = tokens.session;
|
|
13553
13779
|
globals.profile = v.profile;
|
|
13554
|
-
if (v.version) return out({ version: "0.
|
|
13780
|
+
if (v.version) return out({ version: "0.45.0" }, () => "0.45.0");
|
|
13555
13781
|
for (const n of normalizeArgs(pos, v)) if (!globals.json) info(dim(n));
|
|
13556
13782
|
const context = (await readConfig()).workspace;
|
|
13557
13783
|
if (!explicitToken()?.startsWith("gat_")) {
|
|
@@ -13654,6 +13880,9 @@ async function main() {
|
|
|
13654
13880
|
case "credentials":
|
|
13655
13881
|
case "creds":
|
|
13656
13882
|
return credentialsCmd2(sub, a1, v);
|
|
13883
|
+
case "connectors":
|
|
13884
|
+
case "conectores":
|
|
13885
|
+
return connectorsCmd(sub, a1, v);
|
|
13657
13886
|
case "try":
|
|
13658
13887
|
return tryTurn(sub, a1, v);
|
|
13659
13888
|
case "chat":
|
|
@@ -13706,7 +13935,7 @@ async function main() {
|
|
|
13706
13935
|
throw unknown(cmd, cmd, COMMANDS, "ghosty --help");
|
|
13707
13936
|
}
|
|
13708
13937
|
}
|
|
13709
|
-
var notice = updateNotice("0.
|
|
13938
|
+
var notice = updateNotice("0.45.0").catch(() => null);
|
|
13710
13939
|
main().then(
|
|
13711
13940
|
async () => {
|
|
13712
13941
|
const n = await notice;
|