@ghostystudio/cli 0.101.0 → 0.104.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 +9 -3
- package/dist/index.js +222 -175
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1190,7 +1190,7 @@ async function postLong(path2, body, timeoutMs = 9e5) {
|
|
|
1190
1190
|
const req = httpsRequest(`${base}${path2}`, {
|
|
1191
1191
|
method: "POST",
|
|
1192
1192
|
timeout: timeoutMs,
|
|
1193
|
-
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.
|
|
1193
|
+
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.104.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
|
|
1194
1194
|
}, (res) => {
|
|
1195
1195
|
let buf = "";
|
|
1196
1196
|
res.on("data", (c) => buf += c);
|
|
@@ -1232,7 +1232,7 @@ async function request(path2, opts = {}, retried = false) {
|
|
|
1232
1232
|
method: opts.method ?? (opts.body !== void 0 || opts.raw !== void 0 ? "POST" : "GET"),
|
|
1233
1233
|
headers: {
|
|
1234
1234
|
authorization: `Bearer ${token}`,
|
|
1235
|
-
"user-agent": `ghosty-cli/${"0.
|
|
1235
|
+
"user-agent": `ghosty-cli/${"0.104.0"}`,
|
|
1236
1236
|
"accept-language": lang(),
|
|
1237
1237
|
...opts.body !== void 0 ? { "content-type": "application/json" } : {},
|
|
1238
1238
|
...opts.headers
|
|
@@ -1352,9 +1352,9 @@ var init_mteams = __esm({
|
|
|
1352
1352
|
}
|
|
1353
1353
|
});
|
|
1354
1354
|
|
|
1355
|
-
//
|
|
1355
|
+
// ../../node_modules/yaml/dist/nodes/identity.js
|
|
1356
1356
|
var require_identity = __commonJS({
|
|
1357
|
-
"
|
|
1357
|
+
"../../node_modules/yaml/dist/nodes/identity.js"(exports) {
|
|
1358
1358
|
"use strict";
|
|
1359
1359
|
var ALIAS = /* @__PURE__ */ Symbol.for("yaml.alias");
|
|
1360
1360
|
var DOC = /* @__PURE__ */ Symbol.for("yaml.document");
|
|
@@ -1409,9 +1409,9 @@ var require_identity = __commonJS({
|
|
|
1409
1409
|
}
|
|
1410
1410
|
});
|
|
1411
1411
|
|
|
1412
|
-
//
|
|
1412
|
+
// ../../node_modules/yaml/dist/visit.js
|
|
1413
1413
|
var require_visit = __commonJS({
|
|
1414
|
-
"
|
|
1414
|
+
"../../node_modules/yaml/dist/visit.js"(exports) {
|
|
1415
1415
|
"use strict";
|
|
1416
1416
|
var identity = require_identity();
|
|
1417
1417
|
var BREAK = /* @__PURE__ */ Symbol("break visit");
|
|
@@ -1567,9 +1567,9 @@ var require_visit = __commonJS({
|
|
|
1567
1567
|
}
|
|
1568
1568
|
});
|
|
1569
1569
|
|
|
1570
|
-
//
|
|
1570
|
+
// ../../node_modules/yaml/dist/doc/directives.js
|
|
1571
1571
|
var require_directives = __commonJS({
|
|
1572
|
-
"
|
|
1572
|
+
"../../node_modules/yaml/dist/doc/directives.js"(exports) {
|
|
1573
1573
|
"use strict";
|
|
1574
1574
|
var identity = require_identity();
|
|
1575
1575
|
var visit = require_visit();
|
|
@@ -1738,9 +1738,9 @@ var require_directives = __commonJS({
|
|
|
1738
1738
|
}
|
|
1739
1739
|
});
|
|
1740
1740
|
|
|
1741
|
-
//
|
|
1741
|
+
// ../../node_modules/yaml/dist/doc/anchors.js
|
|
1742
1742
|
var require_anchors = __commonJS({
|
|
1743
|
-
"
|
|
1743
|
+
"../../node_modules/yaml/dist/doc/anchors.js"(exports) {
|
|
1744
1744
|
"use strict";
|
|
1745
1745
|
var identity = require_identity();
|
|
1746
1746
|
var visit = require_visit();
|
|
@@ -1808,9 +1808,9 @@ var require_anchors = __commonJS({
|
|
|
1808
1808
|
}
|
|
1809
1809
|
});
|
|
1810
1810
|
|
|
1811
|
-
//
|
|
1811
|
+
// ../../node_modules/yaml/dist/doc/applyReviver.js
|
|
1812
1812
|
var require_applyReviver = __commonJS({
|
|
1813
|
-
"
|
|
1813
|
+
"../../node_modules/yaml/dist/doc/applyReviver.js"(exports) {
|
|
1814
1814
|
"use strict";
|
|
1815
1815
|
function applyReviver(reviver, obj, key, val) {
|
|
1816
1816
|
if (val && typeof val === "object") {
|
|
@@ -1858,9 +1858,9 @@ var require_applyReviver = __commonJS({
|
|
|
1858
1858
|
}
|
|
1859
1859
|
});
|
|
1860
1860
|
|
|
1861
|
-
//
|
|
1861
|
+
// ../../node_modules/yaml/dist/nodes/toJS.js
|
|
1862
1862
|
var require_toJS = __commonJS({
|
|
1863
|
-
"
|
|
1863
|
+
"../../node_modules/yaml/dist/nodes/toJS.js"(exports) {
|
|
1864
1864
|
"use strict";
|
|
1865
1865
|
var identity = require_identity();
|
|
1866
1866
|
function toJS(value, arg, ctx) {
|
|
@@ -1888,9 +1888,9 @@ var require_toJS = __commonJS({
|
|
|
1888
1888
|
}
|
|
1889
1889
|
});
|
|
1890
1890
|
|
|
1891
|
-
//
|
|
1891
|
+
// ../../node_modules/yaml/dist/nodes/Node.js
|
|
1892
1892
|
var require_Node = __commonJS({
|
|
1893
|
-
"
|
|
1893
|
+
"../../node_modules/yaml/dist/nodes/Node.js"(exports) {
|
|
1894
1894
|
"use strict";
|
|
1895
1895
|
var applyReviver = require_applyReviver();
|
|
1896
1896
|
var identity = require_identity();
|
|
@@ -1929,9 +1929,9 @@ var require_Node = __commonJS({
|
|
|
1929
1929
|
}
|
|
1930
1930
|
});
|
|
1931
1931
|
|
|
1932
|
-
//
|
|
1932
|
+
// ../../node_modules/yaml/dist/nodes/Alias.js
|
|
1933
1933
|
var require_Alias = __commonJS({
|
|
1934
|
-
"
|
|
1934
|
+
"../../node_modules/yaml/dist/nodes/Alias.js"(exports) {
|
|
1935
1935
|
"use strict";
|
|
1936
1936
|
var anchors = require_anchors();
|
|
1937
1937
|
var visit = require_visit();
|
|
@@ -2047,9 +2047,9 @@ var require_Alias = __commonJS({
|
|
|
2047
2047
|
}
|
|
2048
2048
|
});
|
|
2049
2049
|
|
|
2050
|
-
//
|
|
2050
|
+
// ../../node_modules/yaml/dist/nodes/Scalar.js
|
|
2051
2051
|
var require_Scalar = __commonJS({
|
|
2052
|
-
"
|
|
2052
|
+
"../../node_modules/yaml/dist/nodes/Scalar.js"(exports) {
|
|
2053
2053
|
"use strict";
|
|
2054
2054
|
var identity = require_identity();
|
|
2055
2055
|
var Node = require_Node();
|
|
@@ -2077,9 +2077,9 @@ var require_Scalar = __commonJS({
|
|
|
2077
2077
|
}
|
|
2078
2078
|
});
|
|
2079
2079
|
|
|
2080
|
-
//
|
|
2080
|
+
// ../../node_modules/yaml/dist/doc/createNode.js
|
|
2081
2081
|
var require_createNode = __commonJS({
|
|
2082
|
-
"
|
|
2082
|
+
"../../node_modules/yaml/dist/doc/createNode.js"(exports) {
|
|
2083
2083
|
"use strict";
|
|
2084
2084
|
var Alias = require_Alias();
|
|
2085
2085
|
var identity = require_identity();
|
|
@@ -2152,9 +2152,9 @@ var require_createNode = __commonJS({
|
|
|
2152
2152
|
}
|
|
2153
2153
|
});
|
|
2154
2154
|
|
|
2155
|
-
//
|
|
2155
|
+
// ../../node_modules/yaml/dist/nodes/Collection.js
|
|
2156
2156
|
var require_Collection = __commonJS({
|
|
2157
|
-
"
|
|
2157
|
+
"../../node_modules/yaml/dist/nodes/Collection.js"(exports) {
|
|
2158
2158
|
"use strict";
|
|
2159
2159
|
var createNode = require_createNode();
|
|
2160
2160
|
var identity = require_identity();
|
|
@@ -2295,9 +2295,9 @@ var require_Collection = __commonJS({
|
|
|
2295
2295
|
}
|
|
2296
2296
|
});
|
|
2297
2297
|
|
|
2298
|
-
//
|
|
2298
|
+
// ../../node_modules/yaml/dist/stringify/stringifyComment.js
|
|
2299
2299
|
var require_stringifyComment = __commonJS({
|
|
2300
|
-
"
|
|
2300
|
+
"../../node_modules/yaml/dist/stringify/stringifyComment.js"(exports) {
|
|
2301
2301
|
"use strict";
|
|
2302
2302
|
var stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, "#");
|
|
2303
2303
|
function indentComment(comment, indent) {
|
|
@@ -2312,9 +2312,9 @@ var require_stringifyComment = __commonJS({
|
|
|
2312
2312
|
}
|
|
2313
2313
|
});
|
|
2314
2314
|
|
|
2315
|
-
//
|
|
2315
|
+
// ../../node_modules/yaml/dist/stringify/foldFlowLines.js
|
|
2316
2316
|
var require_foldFlowLines = __commonJS({
|
|
2317
|
-
"
|
|
2317
|
+
"../../node_modules/yaml/dist/stringify/foldFlowLines.js"(exports) {
|
|
2318
2318
|
"use strict";
|
|
2319
2319
|
var FOLD_FLOW = "flow";
|
|
2320
2320
|
var FOLD_BLOCK = "block";
|
|
@@ -2448,9 +2448,9 @@ ${indent}${text.slice(fold + 1, end2)}`;
|
|
|
2448
2448
|
}
|
|
2449
2449
|
});
|
|
2450
2450
|
|
|
2451
|
-
//
|
|
2451
|
+
// ../../node_modules/yaml/dist/stringify/stringifyString.js
|
|
2452
2452
|
var require_stringifyString = __commonJS({
|
|
2453
|
-
"
|
|
2453
|
+
"../../node_modules/yaml/dist/stringify/stringifyString.js"(exports) {
|
|
2454
2454
|
"use strict";
|
|
2455
2455
|
var Scalar = require_Scalar();
|
|
2456
2456
|
var foldFlowLines = require_foldFlowLines();
|
|
@@ -2731,9 +2731,9 @@ ${indent}`);
|
|
|
2731
2731
|
}
|
|
2732
2732
|
});
|
|
2733
2733
|
|
|
2734
|
-
//
|
|
2734
|
+
// ../../node_modules/yaml/dist/stringify/stringify.js
|
|
2735
2735
|
var require_stringify = __commonJS({
|
|
2736
|
-
"
|
|
2736
|
+
"../../node_modules/yaml/dist/stringify/stringify.js"(exports) {
|
|
2737
2737
|
"use strict";
|
|
2738
2738
|
var anchors = require_anchors();
|
|
2739
2739
|
var identity = require_identity();
|
|
@@ -2855,9 +2855,9 @@ ${ctx.indent}${str}`;
|
|
|
2855
2855
|
}
|
|
2856
2856
|
});
|
|
2857
2857
|
|
|
2858
|
-
//
|
|
2858
|
+
// ../../node_modules/yaml/dist/stringify/stringifyPair.js
|
|
2859
2859
|
var require_stringifyPair = __commonJS({
|
|
2860
|
-
"
|
|
2860
|
+
"../../node_modules/yaml/dist/stringify/stringifyPair.js"(exports) {
|
|
2861
2861
|
"use strict";
|
|
2862
2862
|
var identity = require_identity();
|
|
2863
2863
|
var Scalar = require_Scalar();
|
|
@@ -2988,9 +2988,9 @@ ${ctx.indent}`;
|
|
|
2988
2988
|
}
|
|
2989
2989
|
});
|
|
2990
2990
|
|
|
2991
|
-
//
|
|
2991
|
+
// ../../node_modules/yaml/dist/log.js
|
|
2992
2992
|
var require_log = __commonJS({
|
|
2993
|
-
"
|
|
2993
|
+
"../../node_modules/yaml/dist/log.js"(exports) {
|
|
2994
2994
|
"use strict";
|
|
2995
2995
|
var node_process = __require("process");
|
|
2996
2996
|
function debug(logLevel, ...messages) {
|
|
@@ -3010,9 +3010,9 @@ var require_log = __commonJS({
|
|
|
3010
3010
|
}
|
|
3011
3011
|
});
|
|
3012
3012
|
|
|
3013
|
-
//
|
|
3013
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/merge.js
|
|
3014
3014
|
var require_merge = __commonJS({
|
|
3015
|
-
"
|
|
3015
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/merge.js"(exports) {
|
|
3016
3016
|
"use strict";
|
|
3017
3017
|
var identity = require_identity();
|
|
3018
3018
|
var Scalar = require_Scalar();
|
|
@@ -3070,9 +3070,9 @@ var require_merge = __commonJS({
|
|
|
3070
3070
|
}
|
|
3071
3071
|
});
|
|
3072
3072
|
|
|
3073
|
-
//
|
|
3073
|
+
// ../../node_modules/yaml/dist/nodes/addPairToJSMap.js
|
|
3074
3074
|
var require_addPairToJSMap = __commonJS({
|
|
3075
|
-
"
|
|
3075
|
+
"../../node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports) {
|
|
3076
3076
|
"use strict";
|
|
3077
3077
|
var log = require_log();
|
|
3078
3078
|
var merge = require_merge();
|
|
@@ -3134,9 +3134,9 @@ var require_addPairToJSMap = __commonJS({
|
|
|
3134
3134
|
}
|
|
3135
3135
|
});
|
|
3136
3136
|
|
|
3137
|
-
//
|
|
3137
|
+
// ../../node_modules/yaml/dist/nodes/Pair.js
|
|
3138
3138
|
var require_Pair = __commonJS({
|
|
3139
|
-
"
|
|
3139
|
+
"../../node_modules/yaml/dist/nodes/Pair.js"(exports) {
|
|
3140
3140
|
"use strict";
|
|
3141
3141
|
var createNode = require_createNode();
|
|
3142
3142
|
var stringifyPair = require_stringifyPair();
|
|
@@ -3174,9 +3174,9 @@ var require_Pair = __commonJS({
|
|
|
3174
3174
|
}
|
|
3175
3175
|
});
|
|
3176
3176
|
|
|
3177
|
-
//
|
|
3177
|
+
// ../../node_modules/yaml/dist/stringify/stringifyCollection.js
|
|
3178
3178
|
var require_stringifyCollection = __commonJS({
|
|
3179
|
-
"
|
|
3179
|
+
"../../node_modules/yaml/dist/stringify/stringifyCollection.js"(exports) {
|
|
3180
3180
|
"use strict";
|
|
3181
3181
|
var identity = require_identity();
|
|
3182
3182
|
var stringify = require_stringify();
|
|
@@ -3325,9 +3325,9 @@ ${indent}${end}`;
|
|
|
3325
3325
|
}
|
|
3326
3326
|
});
|
|
3327
3327
|
|
|
3328
|
-
//
|
|
3328
|
+
// ../../node_modules/yaml/dist/nodes/YAMLMap.js
|
|
3329
3329
|
var require_YAMLMap = __commonJS({
|
|
3330
|
-
"
|
|
3330
|
+
"../../node_modules/yaml/dist/nodes/YAMLMap.js"(exports) {
|
|
3331
3331
|
"use strict";
|
|
3332
3332
|
var stringifyCollection = require_stringifyCollection();
|
|
3333
3333
|
var addPairToJSMap = require_addPairToJSMap();
|
|
@@ -3469,9 +3469,9 @@ var require_YAMLMap = __commonJS({
|
|
|
3469
3469
|
}
|
|
3470
3470
|
});
|
|
3471
3471
|
|
|
3472
|
-
//
|
|
3472
|
+
// ../../node_modules/yaml/dist/schema/common/map.js
|
|
3473
3473
|
var require_map = __commonJS({
|
|
3474
|
-
"
|
|
3474
|
+
"../../node_modules/yaml/dist/schema/common/map.js"(exports) {
|
|
3475
3475
|
"use strict";
|
|
3476
3476
|
var identity = require_identity();
|
|
3477
3477
|
var YAMLMap = require_YAMLMap();
|
|
@@ -3491,9 +3491,9 @@ var require_map = __commonJS({
|
|
|
3491
3491
|
}
|
|
3492
3492
|
});
|
|
3493
3493
|
|
|
3494
|
-
//
|
|
3494
|
+
// ../../node_modules/yaml/dist/nodes/YAMLSeq.js
|
|
3495
3495
|
var require_YAMLSeq = __commonJS({
|
|
3496
|
-
"
|
|
3496
|
+
"../../node_modules/yaml/dist/nodes/YAMLSeq.js"(exports) {
|
|
3497
3497
|
"use strict";
|
|
3498
3498
|
var createNode = require_createNode();
|
|
3499
3499
|
var stringifyCollection = require_stringifyCollection();
|
|
@@ -3607,9 +3607,9 @@ var require_YAMLSeq = __commonJS({
|
|
|
3607
3607
|
}
|
|
3608
3608
|
});
|
|
3609
3609
|
|
|
3610
|
-
//
|
|
3610
|
+
// ../../node_modules/yaml/dist/schema/common/seq.js
|
|
3611
3611
|
var require_seq = __commonJS({
|
|
3612
|
-
"
|
|
3612
|
+
"../../node_modules/yaml/dist/schema/common/seq.js"(exports) {
|
|
3613
3613
|
"use strict";
|
|
3614
3614
|
var identity = require_identity();
|
|
3615
3615
|
var YAMLSeq = require_YAMLSeq();
|
|
@@ -3629,9 +3629,9 @@ var require_seq = __commonJS({
|
|
|
3629
3629
|
}
|
|
3630
3630
|
});
|
|
3631
3631
|
|
|
3632
|
-
//
|
|
3632
|
+
// ../../node_modules/yaml/dist/schema/common/string.js
|
|
3633
3633
|
var require_string = __commonJS({
|
|
3634
|
-
"
|
|
3634
|
+
"../../node_modules/yaml/dist/schema/common/string.js"(exports) {
|
|
3635
3635
|
"use strict";
|
|
3636
3636
|
var stringifyString = require_stringifyString();
|
|
3637
3637
|
var string = {
|
|
@@ -3648,9 +3648,9 @@ var require_string = __commonJS({
|
|
|
3648
3648
|
}
|
|
3649
3649
|
});
|
|
3650
3650
|
|
|
3651
|
-
//
|
|
3651
|
+
// ../../node_modules/yaml/dist/schema/common/null.js
|
|
3652
3652
|
var require_null = __commonJS({
|
|
3653
|
-
"
|
|
3653
|
+
"../../node_modules/yaml/dist/schema/common/null.js"(exports) {
|
|
3654
3654
|
"use strict";
|
|
3655
3655
|
var Scalar = require_Scalar();
|
|
3656
3656
|
var nullTag = {
|
|
@@ -3666,9 +3666,9 @@ var require_null = __commonJS({
|
|
|
3666
3666
|
}
|
|
3667
3667
|
});
|
|
3668
3668
|
|
|
3669
|
-
//
|
|
3669
|
+
// ../../node_modules/yaml/dist/schema/core/bool.js
|
|
3670
3670
|
var require_bool = __commonJS({
|
|
3671
|
-
"
|
|
3671
|
+
"../../node_modules/yaml/dist/schema/core/bool.js"(exports) {
|
|
3672
3672
|
"use strict";
|
|
3673
3673
|
var Scalar = require_Scalar();
|
|
3674
3674
|
var boolTag = {
|
|
@@ -3690,9 +3690,9 @@ var require_bool = __commonJS({
|
|
|
3690
3690
|
}
|
|
3691
3691
|
});
|
|
3692
3692
|
|
|
3693
|
-
//
|
|
3693
|
+
// ../../node_modules/yaml/dist/stringify/stringifyNumber.js
|
|
3694
3694
|
var require_stringifyNumber = __commonJS({
|
|
3695
|
-
"
|
|
3695
|
+
"../../node_modules/yaml/dist/stringify/stringifyNumber.js"(exports) {
|
|
3696
3696
|
"use strict";
|
|
3697
3697
|
function stringifyNumber({ format, minFractionDigits, tag, value }) {
|
|
3698
3698
|
if (typeof value === "bigint")
|
|
@@ -3717,9 +3717,9 @@ var require_stringifyNumber = __commonJS({
|
|
|
3717
3717
|
}
|
|
3718
3718
|
});
|
|
3719
3719
|
|
|
3720
|
-
//
|
|
3720
|
+
// ../../node_modules/yaml/dist/schema/core/float.js
|
|
3721
3721
|
var require_float = __commonJS({
|
|
3722
|
-
"
|
|
3722
|
+
"../../node_modules/yaml/dist/schema/core/float.js"(exports) {
|
|
3723
3723
|
"use strict";
|
|
3724
3724
|
var Scalar = require_Scalar();
|
|
3725
3725
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -3763,9 +3763,9 @@ var require_float = __commonJS({
|
|
|
3763
3763
|
}
|
|
3764
3764
|
});
|
|
3765
3765
|
|
|
3766
|
-
//
|
|
3766
|
+
// ../../node_modules/yaml/dist/schema/core/int.js
|
|
3767
3767
|
var require_int = __commonJS({
|
|
3768
|
-
"
|
|
3768
|
+
"../../node_modules/yaml/dist/schema/core/int.js"(exports) {
|
|
3769
3769
|
"use strict";
|
|
3770
3770
|
var stringifyNumber = require_stringifyNumber();
|
|
3771
3771
|
var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -3808,9 +3808,9 @@ var require_int = __commonJS({
|
|
|
3808
3808
|
}
|
|
3809
3809
|
});
|
|
3810
3810
|
|
|
3811
|
-
//
|
|
3811
|
+
// ../../node_modules/yaml/dist/schema/core/schema.js
|
|
3812
3812
|
var require_schema = __commonJS({
|
|
3813
|
-
"
|
|
3813
|
+
"../../node_modules/yaml/dist/schema/core/schema.js"(exports) {
|
|
3814
3814
|
"use strict";
|
|
3815
3815
|
var map = require_map();
|
|
3816
3816
|
var _null = require_null();
|
|
@@ -3836,9 +3836,9 @@ var require_schema = __commonJS({
|
|
|
3836
3836
|
}
|
|
3837
3837
|
});
|
|
3838
3838
|
|
|
3839
|
-
//
|
|
3839
|
+
// ../../node_modules/yaml/dist/schema/json/schema.js
|
|
3840
3840
|
var require_schema2 = __commonJS({
|
|
3841
|
-
"
|
|
3841
|
+
"../../node_modules/yaml/dist/schema/json/schema.js"(exports) {
|
|
3842
3842
|
"use strict";
|
|
3843
3843
|
var Scalar = require_Scalar();
|
|
3844
3844
|
var map = require_map();
|
|
@@ -3903,9 +3903,9 @@ var require_schema2 = __commonJS({
|
|
|
3903
3903
|
}
|
|
3904
3904
|
});
|
|
3905
3905
|
|
|
3906
|
-
//
|
|
3906
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/binary.js
|
|
3907
3907
|
var require_binary = __commonJS({
|
|
3908
|
-
"
|
|
3908
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/binary.js"(exports) {
|
|
3909
3909
|
"use strict";
|
|
3910
3910
|
var node_buffer = __require("buffer");
|
|
3911
3911
|
var Scalar = require_Scalar();
|
|
@@ -3969,9 +3969,9 @@ var require_binary = __commonJS({
|
|
|
3969
3969
|
}
|
|
3970
3970
|
});
|
|
3971
3971
|
|
|
3972
|
-
//
|
|
3972
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/pairs.js
|
|
3973
3973
|
var require_pairs = __commonJS({
|
|
3974
|
-
"
|
|
3974
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/pairs.js"(exports) {
|
|
3975
3975
|
"use strict";
|
|
3976
3976
|
var identity = require_identity();
|
|
3977
3977
|
var Pair = require_Pair();
|
|
@@ -4047,9 +4047,9 @@ ${cn.comment}` : item.comment;
|
|
|
4047
4047
|
}
|
|
4048
4048
|
});
|
|
4049
4049
|
|
|
4050
|
-
//
|
|
4050
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/omap.js
|
|
4051
4051
|
var require_omap = __commonJS({
|
|
4052
|
-
"
|
|
4052
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/omap.js"(exports) {
|
|
4053
4053
|
"use strict";
|
|
4054
4054
|
var identity = require_identity();
|
|
4055
4055
|
var toJS = require_toJS();
|
|
@@ -4125,9 +4125,9 @@ var require_omap = __commonJS({
|
|
|
4125
4125
|
}
|
|
4126
4126
|
});
|
|
4127
4127
|
|
|
4128
|
-
//
|
|
4128
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/bool.js
|
|
4129
4129
|
var require_bool2 = __commonJS({
|
|
4130
|
-
"
|
|
4130
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/bool.js"(exports) {
|
|
4131
4131
|
"use strict";
|
|
4132
4132
|
var Scalar = require_Scalar();
|
|
4133
4133
|
function boolStringify({ value, source }, ctx) {
|
|
@@ -4157,9 +4157,9 @@ var require_bool2 = __commonJS({
|
|
|
4157
4157
|
}
|
|
4158
4158
|
});
|
|
4159
4159
|
|
|
4160
|
-
//
|
|
4160
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/float.js
|
|
4161
4161
|
var require_float2 = __commonJS({
|
|
4162
|
-
"
|
|
4162
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/float.js"(exports) {
|
|
4163
4163
|
"use strict";
|
|
4164
4164
|
var Scalar = require_Scalar();
|
|
4165
4165
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -4206,9 +4206,9 @@ var require_float2 = __commonJS({
|
|
|
4206
4206
|
}
|
|
4207
4207
|
});
|
|
4208
4208
|
|
|
4209
|
-
//
|
|
4209
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/int.js
|
|
4210
4210
|
var require_int2 = __commonJS({
|
|
4211
|
-
"
|
|
4211
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/int.js"(exports) {
|
|
4212
4212
|
"use strict";
|
|
4213
4213
|
var stringifyNumber = require_stringifyNumber();
|
|
4214
4214
|
var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -4285,9 +4285,9 @@ var require_int2 = __commonJS({
|
|
|
4285
4285
|
}
|
|
4286
4286
|
});
|
|
4287
4287
|
|
|
4288
|
-
//
|
|
4288
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/set.js
|
|
4289
4289
|
var require_set = __commonJS({
|
|
4290
|
-
"
|
|
4290
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/set.js"(exports) {
|
|
4291
4291
|
"use strict";
|
|
4292
4292
|
var identity = require_identity();
|
|
4293
4293
|
var Pair = require_Pair();
|
|
@@ -4374,9 +4374,9 @@ var require_set = __commonJS({
|
|
|
4374
4374
|
}
|
|
4375
4375
|
});
|
|
4376
4376
|
|
|
4377
|
-
//
|
|
4377
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
|
|
4378
4378
|
var require_timestamp = __commonJS({
|
|
4379
|
-
"
|
|
4379
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js"(exports) {
|
|
4380
4380
|
"use strict";
|
|
4381
4381
|
var stringifyNumber = require_stringifyNumber();
|
|
4382
4382
|
function parseSexagesimal(str, asBigInt) {
|
|
@@ -4462,9 +4462,9 @@ var require_timestamp = __commonJS({
|
|
|
4462
4462
|
}
|
|
4463
4463
|
});
|
|
4464
4464
|
|
|
4465
|
-
//
|
|
4465
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/schema.js
|
|
4466
4466
|
var require_schema3 = __commonJS({
|
|
4467
|
-
"
|
|
4467
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/schema.js"(exports) {
|
|
4468
4468
|
"use strict";
|
|
4469
4469
|
var map = require_map();
|
|
4470
4470
|
var _null = require_null();
|
|
@@ -4506,9 +4506,9 @@ var require_schema3 = __commonJS({
|
|
|
4506
4506
|
}
|
|
4507
4507
|
});
|
|
4508
4508
|
|
|
4509
|
-
//
|
|
4509
|
+
// ../../node_modules/yaml/dist/schema/tags.js
|
|
4510
4510
|
var require_tags = __commonJS({
|
|
4511
|
-
"
|
|
4511
|
+
"../../node_modules/yaml/dist/schema/tags.js"(exports) {
|
|
4512
4512
|
"use strict";
|
|
4513
4513
|
var map = require_map();
|
|
4514
4514
|
var _null = require_null();
|
|
@@ -4600,9 +4600,9 @@ var require_tags = __commonJS({
|
|
|
4600
4600
|
}
|
|
4601
4601
|
});
|
|
4602
4602
|
|
|
4603
|
-
//
|
|
4603
|
+
// ../../node_modules/yaml/dist/schema/Schema.js
|
|
4604
4604
|
var require_Schema = __commonJS({
|
|
4605
|
-
"
|
|
4605
|
+
"../../node_modules/yaml/dist/schema/Schema.js"(exports) {
|
|
4606
4606
|
"use strict";
|
|
4607
4607
|
var identity = require_identity();
|
|
4608
4608
|
var map = require_map();
|
|
@@ -4632,9 +4632,9 @@ var require_Schema = __commonJS({
|
|
|
4632
4632
|
}
|
|
4633
4633
|
});
|
|
4634
4634
|
|
|
4635
|
-
//
|
|
4635
|
+
// ../../node_modules/yaml/dist/stringify/stringifyDocument.js
|
|
4636
4636
|
var require_stringifyDocument = __commonJS({
|
|
4637
|
-
"
|
|
4637
|
+
"../../node_modules/yaml/dist/stringify/stringifyDocument.js"(exports) {
|
|
4638
4638
|
"use strict";
|
|
4639
4639
|
var identity = require_identity();
|
|
4640
4640
|
var stringify = require_stringify();
|
|
@@ -4712,9 +4712,9 @@ var require_stringifyDocument = __commonJS({
|
|
|
4712
4712
|
}
|
|
4713
4713
|
});
|
|
4714
4714
|
|
|
4715
|
-
//
|
|
4715
|
+
// ../../node_modules/yaml/dist/doc/Document.js
|
|
4716
4716
|
var require_Document = __commonJS({
|
|
4717
|
-
"
|
|
4717
|
+
"../../node_modules/yaml/dist/doc/Document.js"(exports) {
|
|
4718
4718
|
"use strict";
|
|
4719
4719
|
var Alias = require_Alias();
|
|
4720
4720
|
var Collection = require_Collection();
|
|
@@ -5021,9 +5021,9 @@ var require_Document = __commonJS({
|
|
|
5021
5021
|
}
|
|
5022
5022
|
});
|
|
5023
5023
|
|
|
5024
|
-
//
|
|
5024
|
+
// ../../node_modules/yaml/dist/errors.js
|
|
5025
5025
|
var require_errors = __commonJS({
|
|
5026
|
-
"
|
|
5026
|
+
"../../node_modules/yaml/dist/errors.js"(exports) {
|
|
5027
5027
|
"use strict";
|
|
5028
5028
|
var YAMLError = class extends Error {
|
|
5029
5029
|
constructor(name, pos, code, message) {
|
|
@@ -5086,9 +5086,9 @@ ${pointer}
|
|
|
5086
5086
|
}
|
|
5087
5087
|
});
|
|
5088
5088
|
|
|
5089
|
-
//
|
|
5089
|
+
// ../../node_modules/yaml/dist/compose/resolve-props.js
|
|
5090
5090
|
var require_resolve_props = __commonJS({
|
|
5091
|
-
"
|
|
5091
|
+
"../../node_modules/yaml/dist/compose/resolve-props.js"(exports) {
|
|
5092
5092
|
"use strict";
|
|
5093
5093
|
function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
|
|
5094
5094
|
let spaceBefore = false;
|
|
@@ -5220,9 +5220,9 @@ var require_resolve_props = __commonJS({
|
|
|
5220
5220
|
}
|
|
5221
5221
|
});
|
|
5222
5222
|
|
|
5223
|
-
//
|
|
5223
|
+
// ../../node_modules/yaml/dist/compose/util-contains-newline.js
|
|
5224
5224
|
var require_util_contains_newline = __commonJS({
|
|
5225
|
-
"
|
|
5225
|
+
"../../node_modules/yaml/dist/compose/util-contains-newline.js"(exports) {
|
|
5226
5226
|
"use strict";
|
|
5227
5227
|
function containsNewline(key) {
|
|
5228
5228
|
if (!key)
|
|
@@ -5262,9 +5262,9 @@ var require_util_contains_newline = __commonJS({
|
|
|
5262
5262
|
}
|
|
5263
5263
|
});
|
|
5264
5264
|
|
|
5265
|
-
//
|
|
5265
|
+
// ../../node_modules/yaml/dist/compose/util-flow-indent-check.js
|
|
5266
5266
|
var require_util_flow_indent_check = __commonJS({
|
|
5267
|
-
"
|
|
5267
|
+
"../../node_modules/yaml/dist/compose/util-flow-indent-check.js"(exports) {
|
|
5268
5268
|
"use strict";
|
|
5269
5269
|
var utilContainsNewline = require_util_contains_newline();
|
|
5270
5270
|
function flowIndentCheck(indent, fc, onError) {
|
|
@@ -5280,9 +5280,9 @@ var require_util_flow_indent_check = __commonJS({
|
|
|
5280
5280
|
}
|
|
5281
5281
|
});
|
|
5282
5282
|
|
|
5283
|
-
//
|
|
5283
|
+
// ../../node_modules/yaml/dist/compose/util-map-includes.js
|
|
5284
5284
|
var require_util_map_includes = __commonJS({
|
|
5285
|
-
"
|
|
5285
|
+
"../../node_modules/yaml/dist/compose/util-map-includes.js"(exports) {
|
|
5286
5286
|
"use strict";
|
|
5287
5287
|
var identity = require_identity();
|
|
5288
5288
|
function mapIncludes(ctx, items, search) {
|
|
@@ -5296,9 +5296,9 @@ var require_util_map_includes = __commonJS({
|
|
|
5296
5296
|
}
|
|
5297
5297
|
});
|
|
5298
5298
|
|
|
5299
|
-
//
|
|
5299
|
+
// ../../node_modules/yaml/dist/compose/resolve-block-map.js
|
|
5300
5300
|
var require_resolve_block_map = __commonJS({
|
|
5301
|
-
"
|
|
5301
|
+
"../../node_modules/yaml/dist/compose/resolve-block-map.js"(exports) {
|
|
5302
5302
|
"use strict";
|
|
5303
5303
|
var Pair = require_Pair();
|
|
5304
5304
|
var YAMLMap = require_YAMLMap();
|
|
@@ -5404,9 +5404,9 @@ var require_resolve_block_map = __commonJS({
|
|
|
5404
5404
|
}
|
|
5405
5405
|
});
|
|
5406
5406
|
|
|
5407
|
-
//
|
|
5407
|
+
// ../../node_modules/yaml/dist/compose/resolve-block-seq.js
|
|
5408
5408
|
var require_resolve_block_seq = __commonJS({
|
|
5409
|
-
"
|
|
5409
|
+
"../../node_modules/yaml/dist/compose/resolve-block-seq.js"(exports) {
|
|
5410
5410
|
"use strict";
|
|
5411
5411
|
var YAMLSeq = require_YAMLSeq();
|
|
5412
5412
|
var resolveProps = require_resolve_props();
|
|
@@ -5455,9 +5455,9 @@ var require_resolve_block_seq = __commonJS({
|
|
|
5455
5455
|
}
|
|
5456
5456
|
});
|
|
5457
5457
|
|
|
5458
|
-
//
|
|
5458
|
+
// ../../node_modules/yaml/dist/compose/resolve-end.js
|
|
5459
5459
|
var require_resolve_end = __commonJS({
|
|
5460
|
-
"
|
|
5460
|
+
"../../node_modules/yaml/dist/compose/resolve-end.js"(exports) {
|
|
5461
5461
|
"use strict";
|
|
5462
5462
|
function resolveEnd(end, offset, reqSpace, onError) {
|
|
5463
5463
|
let comment = "";
|
|
@@ -5498,9 +5498,9 @@ var require_resolve_end = __commonJS({
|
|
|
5498
5498
|
}
|
|
5499
5499
|
});
|
|
5500
5500
|
|
|
5501
|
-
//
|
|
5501
|
+
// ../../node_modules/yaml/dist/compose/resolve-flow-collection.js
|
|
5502
5502
|
var require_resolve_flow_collection = __commonJS({
|
|
5503
|
-
"
|
|
5503
|
+
"../../node_modules/yaml/dist/compose/resolve-flow-collection.js"(exports) {
|
|
5504
5504
|
"use strict";
|
|
5505
5505
|
var identity = require_identity();
|
|
5506
5506
|
var Pair = require_Pair();
|
|
@@ -5692,9 +5692,9 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
5692
5692
|
}
|
|
5693
5693
|
});
|
|
5694
5694
|
|
|
5695
|
-
//
|
|
5695
|
+
// ../../node_modules/yaml/dist/compose/compose-collection.js
|
|
5696
5696
|
var require_compose_collection = __commonJS({
|
|
5697
|
-
"
|
|
5697
|
+
"../../node_modules/yaml/dist/compose/compose-collection.js"(exports) {
|
|
5698
5698
|
"use strict";
|
|
5699
5699
|
var identity = require_identity();
|
|
5700
5700
|
var Scalar = require_Scalar();
|
|
@@ -5757,9 +5757,9 @@ var require_compose_collection = __commonJS({
|
|
|
5757
5757
|
}
|
|
5758
5758
|
});
|
|
5759
5759
|
|
|
5760
|
-
//
|
|
5760
|
+
// ../../node_modules/yaml/dist/compose/resolve-block-scalar.js
|
|
5761
5761
|
var require_resolve_block_scalar = __commonJS({
|
|
5762
|
-
"
|
|
5762
|
+
"../../node_modules/yaml/dist/compose/resolve-block-scalar.js"(exports) {
|
|
5763
5763
|
"use strict";
|
|
5764
5764
|
var Scalar = require_Scalar();
|
|
5765
5765
|
function resolveBlockScalar(ctx, scalar, onError) {
|
|
@@ -5940,9 +5940,9 @@ var require_resolve_block_scalar = __commonJS({
|
|
|
5940
5940
|
}
|
|
5941
5941
|
});
|
|
5942
5942
|
|
|
5943
|
-
//
|
|
5943
|
+
// ../../node_modules/yaml/dist/compose/resolve-flow-scalar.js
|
|
5944
5944
|
var require_resolve_flow_scalar = __commonJS({
|
|
5945
|
-
"
|
|
5945
|
+
"../../node_modules/yaml/dist/compose/resolve-flow-scalar.js"(exports) {
|
|
5946
5946
|
"use strict";
|
|
5947
5947
|
var Scalar = require_Scalar();
|
|
5948
5948
|
var resolveEnd = require_resolve_end();
|
|
@@ -6161,9 +6161,9 @@ var require_resolve_flow_scalar = __commonJS({
|
|
|
6161
6161
|
}
|
|
6162
6162
|
});
|
|
6163
6163
|
|
|
6164
|
-
//
|
|
6164
|
+
// ../../node_modules/yaml/dist/compose/compose-scalar.js
|
|
6165
6165
|
var require_compose_scalar = __commonJS({
|
|
6166
|
-
"
|
|
6166
|
+
"../../node_modules/yaml/dist/compose/compose-scalar.js"(exports) {
|
|
6167
6167
|
"use strict";
|
|
6168
6168
|
var identity = require_identity();
|
|
6169
6169
|
var Scalar = require_Scalar();
|
|
@@ -6242,9 +6242,9 @@ var require_compose_scalar = __commonJS({
|
|
|
6242
6242
|
}
|
|
6243
6243
|
});
|
|
6244
6244
|
|
|
6245
|
-
//
|
|
6245
|
+
// ../../node_modules/yaml/dist/compose/util-empty-scalar-position.js
|
|
6246
6246
|
var require_util_empty_scalar_position = __commonJS({
|
|
6247
|
-
"
|
|
6247
|
+
"../../node_modules/yaml/dist/compose/util-empty-scalar-position.js"(exports) {
|
|
6248
6248
|
"use strict";
|
|
6249
6249
|
function emptyScalarPosition(offset, before, pos) {
|
|
6250
6250
|
if (before) {
|
|
@@ -6272,9 +6272,9 @@ var require_util_empty_scalar_position = __commonJS({
|
|
|
6272
6272
|
}
|
|
6273
6273
|
});
|
|
6274
6274
|
|
|
6275
|
-
//
|
|
6275
|
+
// ../../node_modules/yaml/dist/compose/compose-node.js
|
|
6276
6276
|
var require_compose_node = __commonJS({
|
|
6277
|
-
"
|
|
6277
|
+
"../../node_modules/yaml/dist/compose/compose-node.js"(exports) {
|
|
6278
6278
|
"use strict";
|
|
6279
6279
|
var Alias = require_Alias();
|
|
6280
6280
|
var identity = require_identity();
|
|
@@ -6378,9 +6378,9 @@ var require_compose_node = __commonJS({
|
|
|
6378
6378
|
}
|
|
6379
6379
|
});
|
|
6380
6380
|
|
|
6381
|
-
//
|
|
6381
|
+
// ../../node_modules/yaml/dist/compose/compose-doc.js
|
|
6382
6382
|
var require_compose_doc = __commonJS({
|
|
6383
|
-
"
|
|
6383
|
+
"../../node_modules/yaml/dist/compose/compose-doc.js"(exports) {
|
|
6384
6384
|
"use strict";
|
|
6385
6385
|
var Document = require_Document();
|
|
6386
6386
|
var composeNode = require_compose_node();
|
|
@@ -6421,9 +6421,9 @@ var require_compose_doc = __commonJS({
|
|
|
6421
6421
|
}
|
|
6422
6422
|
});
|
|
6423
6423
|
|
|
6424
|
-
//
|
|
6424
|
+
// ../../node_modules/yaml/dist/compose/composer.js
|
|
6425
6425
|
var require_composer = __commonJS({
|
|
6426
|
-
"
|
|
6426
|
+
"../../node_modules/yaml/dist/compose/composer.js"(exports) {
|
|
6427
6427
|
"use strict";
|
|
6428
6428
|
var node_process = __require("process");
|
|
6429
6429
|
var directives = require_directives();
|
|
@@ -6629,9 +6629,9 @@ ${end.comment}` : end.comment;
|
|
|
6629
6629
|
}
|
|
6630
6630
|
});
|
|
6631
6631
|
|
|
6632
|
-
//
|
|
6632
|
+
// ../../node_modules/yaml/dist/parse/cst-scalar.js
|
|
6633
6633
|
var require_cst_scalar = __commonJS({
|
|
6634
|
-
"
|
|
6634
|
+
"../../node_modules/yaml/dist/parse/cst-scalar.js"(exports) {
|
|
6635
6635
|
"use strict";
|
|
6636
6636
|
var resolveBlockScalar = require_resolve_block_scalar();
|
|
6637
6637
|
var resolveFlowScalar = require_resolve_flow_scalar();
|
|
@@ -6814,9 +6814,9 @@ var require_cst_scalar = __commonJS({
|
|
|
6814
6814
|
}
|
|
6815
6815
|
});
|
|
6816
6816
|
|
|
6817
|
-
//
|
|
6817
|
+
// ../../node_modules/yaml/dist/parse/cst-stringify.js
|
|
6818
6818
|
var require_cst_stringify = __commonJS({
|
|
6819
|
-
"
|
|
6819
|
+
"../../node_modules/yaml/dist/parse/cst-stringify.js"(exports) {
|
|
6820
6820
|
"use strict";
|
|
6821
6821
|
var stringify = (cst) => "type" in cst ? stringifyToken(cst) : stringifyItem(cst);
|
|
6822
6822
|
function stringifyToken(token) {
|
|
@@ -6875,9 +6875,9 @@ var require_cst_stringify = __commonJS({
|
|
|
6875
6875
|
}
|
|
6876
6876
|
});
|
|
6877
6877
|
|
|
6878
|
-
//
|
|
6878
|
+
// ../../node_modules/yaml/dist/parse/cst-visit.js
|
|
6879
6879
|
var require_cst_visit = __commonJS({
|
|
6880
|
-
"
|
|
6880
|
+
"../../node_modules/yaml/dist/parse/cst-visit.js"(exports) {
|
|
6881
6881
|
"use strict";
|
|
6882
6882
|
var BREAK = /* @__PURE__ */ Symbol("break visit");
|
|
6883
6883
|
var SKIP2 = /* @__PURE__ */ Symbol("skip children");
|
|
@@ -6937,9 +6937,9 @@ var require_cst_visit = __commonJS({
|
|
|
6937
6937
|
}
|
|
6938
6938
|
});
|
|
6939
6939
|
|
|
6940
|
-
//
|
|
6940
|
+
// ../../node_modules/yaml/dist/parse/cst.js
|
|
6941
6941
|
var require_cst = __commonJS({
|
|
6942
|
-
"
|
|
6942
|
+
"../../node_modules/yaml/dist/parse/cst.js"(exports) {
|
|
6943
6943
|
"use strict";
|
|
6944
6944
|
var cstScalar = require_cst_scalar();
|
|
6945
6945
|
var cstStringify = require_cst_stringify();
|
|
@@ -7039,9 +7039,9 @@ var require_cst = __commonJS({
|
|
|
7039
7039
|
}
|
|
7040
7040
|
});
|
|
7041
7041
|
|
|
7042
|
-
//
|
|
7042
|
+
// ../../node_modules/yaml/dist/parse/lexer.js
|
|
7043
7043
|
var require_lexer = __commonJS({
|
|
7044
|
-
"
|
|
7044
|
+
"../../node_modules/yaml/dist/parse/lexer.js"(exports) {
|
|
7045
7045
|
"use strict";
|
|
7046
7046
|
var cst = require_cst();
|
|
7047
7047
|
function isEmpty(ch) {
|
|
@@ -7628,9 +7628,9 @@ var require_lexer = __commonJS({
|
|
|
7628
7628
|
}
|
|
7629
7629
|
});
|
|
7630
7630
|
|
|
7631
|
-
//
|
|
7631
|
+
// ../../node_modules/yaml/dist/parse/line-counter.js
|
|
7632
7632
|
var require_line_counter = __commonJS({
|
|
7633
|
-
"
|
|
7633
|
+
"../../node_modules/yaml/dist/parse/line-counter.js"(exports) {
|
|
7634
7634
|
"use strict";
|
|
7635
7635
|
var LineCounter = class {
|
|
7636
7636
|
constructor() {
|
|
@@ -7659,9 +7659,9 @@ var require_line_counter = __commonJS({
|
|
|
7659
7659
|
}
|
|
7660
7660
|
});
|
|
7661
7661
|
|
|
7662
|
-
//
|
|
7662
|
+
// ../../node_modules/yaml/dist/parse/parser.js
|
|
7663
7663
|
var require_parser = __commonJS({
|
|
7664
|
-
"
|
|
7664
|
+
"../../node_modules/yaml/dist/parse/parser.js"(exports) {
|
|
7665
7665
|
"use strict";
|
|
7666
7666
|
var node_process = __require("process");
|
|
7667
7667
|
var cst = require_cst();
|
|
@@ -8533,9 +8533,9 @@ var require_parser = __commonJS({
|
|
|
8533
8533
|
}
|
|
8534
8534
|
});
|
|
8535
8535
|
|
|
8536
|
-
//
|
|
8536
|
+
// ../../node_modules/yaml/dist/public-api.js
|
|
8537
8537
|
var require_public_api = __commonJS({
|
|
8538
|
-
"
|
|
8538
|
+
"../../node_modules/yaml/dist/public-api.js"(exports) {
|
|
8539
8539
|
"use strict";
|
|
8540
8540
|
var composer = require_composer();
|
|
8541
8541
|
var Document = require_Document();
|
|
@@ -8630,9 +8630,9 @@ var require_public_api = __commonJS({
|
|
|
8630
8630
|
}
|
|
8631
8631
|
});
|
|
8632
8632
|
|
|
8633
|
-
//
|
|
8633
|
+
// ../../node_modules/yaml/dist/index.js
|
|
8634
8634
|
var require_dist = __commonJS({
|
|
8635
|
-
"
|
|
8635
|
+
"../../node_modules/yaml/dist/index.js"(exports) {
|
|
8636
8636
|
"use strict";
|
|
8637
8637
|
var composer = require_composer();
|
|
8638
8638
|
var Document = require_Document();
|
|
@@ -9920,11 +9920,11 @@ ${dim(t(`${r3.beforeChars} \u2192 ${r3.chars} chars. Dry run: nothing changed.`,
|
|
|
9920
9920
|
const emailAny = parseSwitch("--email-any", v["email-any"]);
|
|
9921
9921
|
if (emailAny !== void 0) body.email = { anyFromClients: emailAny };
|
|
9922
9922
|
if (v.quote) {
|
|
9923
|
-
const alias = { iva: "ivaPct", vigencia: "vigenciaDias", prefix: "folioPrefijo", prefijo: "folioPrefijo", currency: "moneda", company: "empresa", phone: "telefono", email: "correo", address: "direccion", notes: "notas", "iva-incluido": "ivaIncluido", "solo-factura": "ivaSoloConFactura" };
|
|
9923
|
+
const alias = { "catalogo-base": "catalogoBase", catalogo_base: "catalogoBase", "catalog-db": "catalogoBase", catalog_db: "catalogoBase", iva: "ivaPct", vigencia: "vigenciaDias", prefix: "folioPrefijo", prefijo: "folioPrefijo", currency: "moneda", company: "empresa", phone: "telefono", email: "correo", address: "direccion", notes: "notas", "iva-incluido": "ivaIncluido", "solo-factura": "ivaSoloConFactura", template: "plantilla", numbers: "numeros", seller: "comercial" };
|
|
9924
9924
|
const cot = {};
|
|
9925
9925
|
let cats = null;
|
|
9926
|
-
for (const part of v.quote.split(/,(?=\s*[a-zA-
|
|
9927
|
-
const m = /^\s*([a-zA-
|
|
9926
|
+
for (const part of v.quote.split(/,(?=\s*[a-zA-Z_-]+(?:\.[^=,]+)?=)/)) {
|
|
9927
|
+
const m = /^\s*([a-zA-Z_-]+)(?:\.([^=]+))?=(.*)$/.exec(part);
|
|
9928
9928
|
if (!m) throw usage(t(`Bad --quote: ${part}.`, `--quote inv\xE1lido: ${part}.`), "--quote iva=0,prefix=SFI,vigencia=15");
|
|
9929
9929
|
const [, rawKey, category, rawVal] = m;
|
|
9930
9930
|
const val = rawVal.trim().replace(/^"(.*)"$/, "$1");
|
|
@@ -9935,6 +9935,10 @@ ${dim(t(`${r3.beforeChars} \u2192 ${r3.chars} chars. Dry run: nothing changed.`,
|
|
|
9935
9935
|
continue;
|
|
9936
9936
|
}
|
|
9937
9937
|
const key = alias[rawKey] ?? rawKey;
|
|
9938
|
+
if (key === "plantilla" && val.startsWith("@")) {
|
|
9939
|
+
cot[key] = await readFile3(resolve(val.slice(1)), "utf8");
|
|
9940
|
+
continue;
|
|
9941
|
+
}
|
|
9938
9942
|
cot[key] = key === "ivaPct" || key === "vigenciaDias" ? Number(val) : key === "ivaIncluido" || key === "ivaSoloConFactura" ? /^(true|on|yes|si|sí|1)$/i.test(val) : val;
|
|
9939
9943
|
}
|
|
9940
9944
|
if (cats) cot.ivaPorCategoria = cats;
|
|
@@ -11293,7 +11297,7 @@ async function call(path2, v, init = {}) {
|
|
|
11293
11297
|
"x-ghosty-ts": ts,
|
|
11294
11298
|
"x-ghosty-sig": sig,
|
|
11295
11299
|
"content-type": "application/json",
|
|
11296
|
-
"user-agent": `ghosty-cli/${"0.
|
|
11300
|
+
"user-agent": `ghosty-cli/${"0.104.0"}`
|
|
11297
11301
|
},
|
|
11298
11302
|
body: method === "GET" ? void 0 : raw
|
|
11299
11303
|
});
|
|
@@ -11909,8 +11913,29 @@ ${dim(t("Is the source the right database? Leave those tables out with --tables.
|
|
|
11909
11913
|
function planText(plan) {
|
|
11910
11914
|
return plan.map((p) => p.action === "create" ? t(` + ${p.table} create, ${p.sourceRows} row(s)`, ` + ${p.table} crear, ${p.sourceRows} fila(s)`) : t(` ~ ${p.table} ${p.action} ${p.targetRows} \u2192 ${p.resultRows} row(s)`, ` ~ ${p.table} ${p.action === "replace" ? "reemplazar" : "agregar"} ${p.targetRows} \u2192 ${p.resultRows} fila(s)`)).join("\n");
|
|
11911
11915
|
}
|
|
11916
|
+
async function dbsImportCsv(id, db, file, v) {
|
|
11917
|
+
const ex = "ghosty dbs import <agent-id> <db> --from csv:products.csv --table products [--append] [--dry-run]";
|
|
11918
|
+
if (!v.table) throw usage(t("Missing --table.", "Falta --table."), `${t("Example", "Ejemplo")}: ${ex}`);
|
|
11919
|
+
const csvText = await readFile6(file, "utf8");
|
|
11920
|
+
const body = { from: "csv", table: v.table, csv: csvText, mode: v.append ? "append" : "replace" };
|
|
11921
|
+
const path2 = agentPath2(id, `/dbs/${enc9(db)}/import`);
|
|
11922
|
+
const dry = await api(path2, { body: { ...body, dryRun: true } });
|
|
11923
|
+
const cols = dim(` ${t("columns", "columnas")}: ${dry.columns.join(", ")}`);
|
|
11924
|
+
if (v["dry-run"]) return out(dry, () => `${dry.db} \u2190 ${basename3(file)}
|
|
11925
|
+
${planText(dry.plan)}
|
|
11926
|
+
${cols}
|
|
11927
|
+
${dim(t("Dry run: nothing changed.", "Simulaci\xF3n: no cambi\xF3 nada."))}`);
|
|
11928
|
+
if (dry.plan.some((p) => p.action === "replace" && p.targetRows > 0)) await confirm(`${planText(dry.plan)}${shrinkWarnings(dry.plan)}
|
|
11929
|
+
${t(`Replace the rows of ${v.table} in ${dry.db}?`, `\xBFReemplazar las filas de ${v.table} en ${dry.db}?`)}`, { yes: v.yes, retry: ex });
|
|
11930
|
+
const r = await api(path2, { body });
|
|
11931
|
+
return out(r, () => `${planText(r.plan)}
|
|
11932
|
+
${cols}
|
|
11933
|
+
${lavender("\u2713")} ${t(`${r.imported} row(s) imported into ${r.db}.${v.table}${r.created ? " (new table)" : ""}.`, `${r.imported} fila(s) importadas en ${r.db}.${v.table}${r.created ? " (tabla nueva)" : ""}.`)}`);
|
|
11934
|
+
}
|
|
11912
11935
|
async function dbsImport(id, db, v) {
|
|
11913
|
-
const ex = "ghosty dbs import <agent-id> <db> --from easybits:<db-id> [--tables a,b] [--dry-run]";
|
|
11936
|
+
const ex = "ghosty dbs import <agent-id> <db> --from easybits:<db-id> [--tables a,b] [--dry-run] | --from csv:file.csv --table T";
|
|
11937
|
+
const csvFile = /^csv:(.+)$/.exec(v.from ?? "");
|
|
11938
|
+
if (csvFile) return dbsImportCsv(id, db, csvFile[1], v);
|
|
11914
11939
|
const m = /^easybits:(.+)$/.exec(v.from ?? "");
|
|
11915
11940
|
if (!m) throw usage(t("Missing or bad --from.", "Falta --from o no es v\xE1lido."), `${t("Example", "Ejemplo")}: ${ex}`);
|
|
11916
11941
|
const easybitsKey = process.env.EASYBITS_API_KEY;
|
|
@@ -12029,6 +12054,13 @@ async function dbsCmd(sub, id, db, rest, v) {
|
|
|
12029
12054
|
${dim(`${t("Delete one", "Borrar una")}: ghosty dbs rm ${id} <db> --dry-run`)}` : dim(t("No orphan databases: every one is granted to some agent.", "Sin bases hu\xE9rfanas: todas est\xE1n concedidas a alg\xFAn agente.")));
|
|
12030
12055
|
return out(dbs, () => rows.length ? table(rows, ["name", "access", "agents", "writes from customers", "own rows", "id"]) : dim(t("This account has no databases yet: create one at /app/dbs.", "Esta cuenta todav\xEDa no tiene bases: crea una en /app/dbs.")));
|
|
12031
12056
|
}
|
|
12057
|
+
case "create":
|
|
12058
|
+
case "new": {
|
|
12059
|
+
const name = need2(db, t("database name", "el nombre de la base"), "ghosty dbs create <agent-id> <name> [--description TEXT] [--read]");
|
|
12060
|
+
const r = await api(agentPath2(id, "/dbs"), { body: { name, ...v.description ? { description: v.description } : {}, grant: v["no-grant"] ? false : v.read ? "read" : "write" } });
|
|
12061
|
+
return out(r, () => `${lavender("\u2713")} ${t(`Database ${bold(r.name)} created${r.granted ? " and granted to the agent" : ""}.`, `Base ${bold(r.name)} creada${r.granted ? " y concedida al agente" : ""}.`)}
|
|
12062
|
+
${dim(`${t("Fill it", "Ll\xE9nala")}: ghosty dbs import ${id} ${r.name} --from csv:file.csv --table T`)}`);
|
|
12063
|
+
}
|
|
12032
12064
|
case "tables": {
|
|
12033
12065
|
db = need2(db, t("database (id or name)", "la base (id o nombre)"), "ghosty dbs tables <agent-id> <db>");
|
|
12034
12066
|
const r = await api(agentPath2(id, `/dbs/${enc9(db)}`));
|
|
@@ -12800,15 +12832,15 @@ async function groupsCmd(args, v) {
|
|
|
12800
12832
|
const sub = rawSub === "enable" || rawSub === "disable" ? "set" : rawSub;
|
|
12801
12833
|
if (rawSub === "enable") v = { ...v, on: true };
|
|
12802
12834
|
if (rawSub === "disable") v = { ...v, off: true };
|
|
12803
|
-
const ex = 'ghosty channels wa groups ls <agent-id> | set <agent-id> <group> [--role equipo|cliente] [--wake mention|all] [--on|--off] [--name "New name"] | create <agent-id> "Name" | inject <agent-id> <group> --text "\u2026" [--sender NAME]';
|
|
12835
|
+
const ex = 'ghosty channels wa groups ls <agent-id> | set <agent-id> <group> [--role equipo|cliente] [--wake mention|name|all] [--alias "tilin,ghos"] [--on|--off] [--name "New name"] | create <agent-id> "Name" | inject <agent-id> <group> --text "\u2026" [--sender NAME]';
|
|
12804
12836
|
if (!id) throw usage(t("Missing agent id.", "Falta el id del agente."), `${t("Example", "Ejemplo")}: ${ex}`);
|
|
12805
12837
|
const path2 = `/api/v2/agents/${enc11(id)}/wa/groups`;
|
|
12806
12838
|
if (v.role !== void 0 && v.role !== "equipo" && v.role !== "cliente") throw usage(t("--role takes equipo or cliente.", "--role acepta equipo o cliente."));
|
|
12807
|
-
if (v.wake !== void 0 && v.wake !== "mention" && v.wake !== "all") throw usage(t("--wake takes mention or all.", "--wake acepta mention o all."));
|
|
12839
|
+
if (v.wake !== void 0 && v.wake !== "mention" && v.wake !== "name" && v.wake !== "all") throw usage(t("--wake takes mention, name or all.", "--wake acepta mention, name o all."));
|
|
12808
12840
|
if (!sub || sub === "ls" || sub === "list") {
|
|
12809
12841
|
const r2 = await api(`${path2}${v.cached ? "?live=0" : ""}`);
|
|
12810
|
-
const rows = r2.groups.map((g2) => ({ name: g2.name, on: g2.enabled ? lavender("on") : dim("off"), role: g2.role, wake: g2.wake ?? "all", jid: g2.jid }));
|
|
12811
|
-
return out(r2, () => rows.length ? table(rows, ["name", "on", "role", "wake", "jid"]) : dim(t('No groups. Pair its personal WhatsApp in the web, or: ghosty channels wa groups create <agent-id> "Name"', 'Sin grupos. Parea su WhatsApp personal en la web, o: ghosty channels wa groups create <agent-id> "Nombre"')));
|
|
12842
|
+
const rows = r2.groups.map((g2) => ({ name: g2.name, on: g2.enabled ? lavender("on") : dim("off"), role: g2.role, wake: g2.wake ?? "all", alias: (g2.alias ?? []).join(", "), jid: g2.jid }));
|
|
12843
|
+
return out(r2, () => rows.length ? table(rows, ["name", "on", "role", "wake", "alias", "jid"]) : dim(t('No groups. Pair its personal WhatsApp in the web, or: ghosty channels wa groups create <agent-id> "Name"', 'Sin grupos. Parea su WhatsApp personal en la web, o: ghosty channels wa groups create <agent-id> "Nombre"')));
|
|
12812
12844
|
}
|
|
12813
12845
|
if (sub === "create") {
|
|
12814
12846
|
const name2 = rest.join(" ").trim();
|
|
@@ -12835,16 +12867,18 @@ async function groupsCmd(args, v) {
|
|
|
12835
12867
|
const role = v.role ?? g.role;
|
|
12836
12868
|
const name = v.name?.trim() || void 0;
|
|
12837
12869
|
const wake = v.wake;
|
|
12838
|
-
const
|
|
12870
|
+
const alias = v.alias === void 0 ? void 0 : v.alias.split(",").map((x) => x.trim()).filter(Boolean);
|
|
12871
|
+
const aliasChanged = alias !== void 0 && alias.join(",") !== (g.alias ?? []).join(",");
|
|
12872
|
+
const changes = [...aliasChanged ? [`alias [${(g.alias ?? []).join(", ")}]\u2192[${alias.join(", ")}]`] : [], ...wake && wake !== g.wake ? [`wake ${g.wake ?? "all"}\u2192${wake}`] : [], ...enabled !== g.enabled ? [`${g.enabled ? "on" : "off"}\u2192${enabled ? "on" : "off"}`] : [], ...role !== g.role ? [`${g.role}\u2192${role}`] : [], ...name && name !== g.name ? [`\xAB${g.name}\xBB\u2192\xAB${name}\xBB`] : []];
|
|
12839
12873
|
if (!changes.length) return out({ changed: 0, group: g }, () => dim(t(`Nothing to do: ${g.name} is already ${g.enabled ? "on" : "off"} as ${g.role}.`, `Nada que hacer: ${g.name} ya est\xE1 ${g.enabled ? "encendido" : "apagado"} como ${g.role}.`)));
|
|
12840
12874
|
const plan = `~ ${g.name}: ${changes.join(", ")}`;
|
|
12841
12875
|
if (v["dry-run"]) return out({ dryRun: true, plan: [plan] }, () => `${plan}
|
|
12842
12876
|
${dim(t("Dry run: nothing changed.", "Simulacro: no se cambi\xF3 nada."))}`);
|
|
12843
12877
|
if (enabled && !g.enabled) await confirm(`${bold(plan)}
|
|
12844
12878
|
${t(`The agent will start answering in this group as ${role}.`, `El agente empezar\xE1 a contestar en este grupo como ${role}.`)}`, { yes: v.yes, retry: `ghosty channels wa groups set ${id} "${ref}"${v.role ? ` --role ${v.role}` : ""} --on` });
|
|
12845
|
-
const r = await api(path2, { method: "POST", body: { jid: g.jid, enabled, role, ...wake ? { wake } : {}, ...name ? { name } : {} } });
|
|
12879
|
+
const r = await api(path2, { method: "POST", body: { jid: g.jid, enabled, role, ...wake ? { wake } : {}, ...alias ? { alias } : {}, ...name ? { name } : {} } });
|
|
12846
12880
|
const now = r.groups.find((x) => x.jid === g.jid);
|
|
12847
|
-
return out({ group: now ?? null, plan: [plan] }, () => `${lavender("\u2713")} ${now?.name ?? g.name}: ${now?.enabled ? "on" : "off"} ${t("as", "como")} ${now?.role ?? role} \xB7 wake ${now?.wake ?? wake ?? "all"}`);
|
|
12881
|
+
return out({ group: now ?? null, plan: [plan] }, () => `${lavender("\u2713")} ${now?.name ?? g.name}: ${now?.enabled ? "on" : "off"} ${t("as", "como")} ${now?.role ?? role} \xB7 wake ${now?.wake ?? wake ?? "all"}${now?.alias?.length ? ` \xB7 alias ${now.alias.join(", ")}` : ""}`);
|
|
12848
12882
|
}
|
|
12849
12883
|
var EB_EXPORT = (agentId) => `${(process.env.EASYBITS_URL ?? "https://www.easybits.cloud").replace(/\/+$/, "")}/api/v2/fleet-agents/${enc11(agentId)}/baileys/export`;
|
|
12850
12884
|
async function easybitsSession(agentId, keys) {
|
|
@@ -13121,29 +13155,30 @@ ${t(`Cards appear on the team's board (no "new lead" alerts).`, "Las tarjetas ap
|
|
|
13121
13155
|
out({ ...sum, conversations: done }, () => `${lavender("\u2713")} ${t(`${sum.newCards} new card(s), ${sum.updatedCards} updated, ${sum.messages} message(s), ${sum.orders} order(s)`, `${sum.newCards} tarjeta(s) nueva(s), ${sum.updatedCards} actualizada(s), ${sum.messages} mensaje(s), ${sum.orders} pedido(s)`)}${files(sum)}${sum.suppressed ? dim(t(` \xB7 ${sum.suppressed} bot draft(s) the customer never saw, skipped`, ` \xB7 se omitieron ${sum.suppressed} borrador(es) del bot que el cliente nunca vio`)) : ""}${pausedLine(sum, id)}`);
|
|
13122
13156
|
}
|
|
13123
13157
|
async function contactsCmd(id, v) {
|
|
13124
|
-
if (!id || !v.integration) throw usage(t("Missing agent id or --integration.", "Falta el id del agente o --integration."), t("Example", "Ejemplo") + ": ghosty channels whatsapp contacts <agent-id> --integration <id> [--new-only on|off] [--mute PHONE] [--allow PHONE] [--unmute PHONE] [--signature \u{1F47E}|off] [--seed] [--list] [--q TEXT]");
|
|
13158
|
+
if (!id || !v.integration) throw usage(t("Missing agent id or --integration.", "Falta el id del agente o --integration."), t("Example", "Ejemplo") + ": ghosty channels whatsapp contacts <agent-id> --integration <id> [--new-only on|off] [--mute PHONE] [--allow PHONE] [--team PHONE] [--unmute PHONE] [--signature \u{1F47E}|off] [--seed] [--list] [--q TEXT]");
|
|
13125
13159
|
if (v["new-only"] !== void 0 && v["new-only"] !== "on" && v["new-only"] !== "off") throw usage(t("--new-only takes on or off.", "--new-only acepta on u off."));
|
|
13126
|
-
if ([v.mute, v.unmute, v.allow].filter((x) => x !== void 0).length > 1) throw usage(t("Use only one of --mute, --allow or --unmute.", "Usa s\xF3lo uno de --mute, --allow o --unmute."));
|
|
13160
|
+
if ([v.mute, v.unmute, v.allow, v.team].filter((x) => x !== void 0).length > 1) throw usage(t("Use only one of --mute, --allow, --team or --unmute.", "Usa s\xF3lo uno de --mute, --allow, --team o --unmute."));
|
|
13127
13161
|
const path2 = `/api/v2/agents/${enc11(id)}/whatsapp/contacts`;
|
|
13128
13162
|
if (v.list || v.q !== void 0) {
|
|
13129
13163
|
const l = await api(`${path2}?number=${enc11(v.integration)}&list=1&limit=200${v.q ? `&q=${enc11(v.q)}` : ""}`);
|
|
13130
13164
|
return out(l, () => {
|
|
13131
13165
|
if (!l.rows.length) return dim(t("No contacts yet (Meta sends the phone contacts within 24 h of connecting).", "Sin contactos todav\xEDa (Meta manda la agenda del tel\xE9fono en las primeras 24 h)."));
|
|
13132
|
-
const rule = (r2) => r2.agentOff ? t("never", "nunca") : r2.agentAlways ? t("always", "siempre") : "";
|
|
13166
|
+
const rule = (r2) => r2.agentOff ? t("never", "nunca") : r2.team ? t("team", "equipo") : r2.agentAlways ? t("always", "siempre") : "";
|
|
13133
13167
|
const lines = l.rows.map((r2) => `${r2.key.padEnd(12)} ${r2.name ?? dim(t("(no name)", "(sin nombre)"))}${rule(r2) ? ` ${lavender(rule(r2))}` : ""}`);
|
|
13134
13168
|
if (l.next != null) lines.push(dim(t(`\u2026 ${l.counts.all - l.rows.length} more; narrow it with --q`, `\u2026 ${l.counts.all - l.rows.length} m\xE1s; acota con --q`)));
|
|
13135
13169
|
return lines.join("\n");
|
|
13136
13170
|
});
|
|
13137
13171
|
}
|
|
13138
|
-
const contact = v.mute ?? v.allow ?? v.unmute;
|
|
13172
|
+
const contact = v.mute ?? v.allow ?? v.team ?? v.unmute;
|
|
13139
13173
|
const write = v["new-only"] !== void 0 || contact !== void 0 || v.seed || v.signature !== void 0;
|
|
13140
|
-
const r = write ? await api(path2, { method: "POST", body: { number: v.integration, ...v["new-only"] !== void 0 ? { newOnly: v["new-only"] === "on" } : {}, ...contact !== void 0 ? v.allow !== void 0 ? { contact, always: true } : { contact, off: !!v.mute } : {}, ...v.seed ? { seed: true } : {}, ...v.signature !== void 0 ? { signature: v.signature === "off" ? null : v.signature } : {} } }) : await api(`${path2}?number=${enc11(v.integration)}`);
|
|
13174
|
+
const r = write ? await api(path2, { method: "POST", body: { number: v.integration, ...v["new-only"] !== void 0 ? { newOnly: v["new-only"] === "on" } : {}, ...contact !== void 0 ? v.allow !== void 0 ? { contact, always: true } : v.team !== void 0 ? { contact, team: true } : { contact, off: !!v.mute } : {}, ...v.seed ? { seed: true } : {}, ...v.signature !== void 0 ? { signature: v.signature === "off" ? null : v.signature } : {} } }) : await api(`${path2}?number=${enc11(v.integration)}`);
|
|
13141
13175
|
return out(r, () => {
|
|
13142
13176
|
const lines = [
|
|
13143
13177
|
`${t("New contacts only", "S\xF3lo contactos nuevos")}: ${r.newOnly ? lavender(t("on", "encendido")) : t("off", "apagado")}${r.newSince ? dim(` (${t("since", "desde")} ${r.newSince})`) : ""}`,
|
|
13144
13178
|
`${t("Known contacts", "Contactos conocidos")}: ${r.known}${r.seededAt ? dim(` (${t("brought from Formmy", "tra\xEDdos de Formmy")} ${r.seededAt})`) : dim(t(" (still waiting for the WhatsApp history)", " (todav\xEDa esperando el historial de WhatsApp)"))}`,
|
|
13145
13179
|
`${t("Signature", "Firma")}: ${r.signature ? `${r.signature}:` : dim(t("none", "sin firma"))}`,
|
|
13146
13180
|
`${t("Always answers", "Siempre le contesta a")}: ${r.always?.length ? r.always.map((o) => o.name ? `${o.name} ${o.key}` : o.key).join(", ") : dim("\u2014")}`,
|
|
13181
|
+
`${t("Team (answers in team mode)", "Equipo (le contesta en modo equipo)")}: ${r.team?.length ? r.team.map((o) => o.name ? `${o.name} ${o.key}` : o.key).join(", ") : dim("\u2014")}`,
|
|
13147
13182
|
`${t("Never answers", "Nunca le contesta a")}: ${r.off.length ? r.off.map((o) => o.name ? `${o.name} ${o.key}` : o.key).join(", ") : dim("\u2014")}`
|
|
13148
13183
|
];
|
|
13149
13184
|
return lines.join("\n");
|
|
@@ -13514,7 +13549,7 @@ var HELPS_ES = {
|
|
|
13514
13549
|
["--channel-roles k=role,\u2026", "set: qui\xE9n habla en teams y en programado (turnos programados): equipo (escribe en bases, tools admin) o cliente. chat siempre es el equipo; WhatsApp Business, Messenger, demo y widget son clientes; el WhatsApp personal va por grupo (channels wa groups set --role)"],
|
|
13515
13550
|
["--extensions name=on|off,\u2026", "set: prende o apaga extensiones del config.yaml de su caja (developer, memory\u2026; Ghosty \xB7 Lite y Goose); se funden con lo guardado. L\xEDstalas: get (configuraci\xF3n completa)"],
|
|
13516
13551
|
["--email-any on|off", "set: on = enviar_correo puede escribir a CUALQUIER direcci\xF3n desde canales de cliente; off (default) = s\xF3lo a quien escribe. S\xF3lo el due\xF1o"],
|
|
13517
|
-
["--quote k=v,\u2026", "set: config de la tool de casa `cotizar` \u2014 iva (0-100), iva-incluido=true (los precios del cat\xE1logo ya traen IVA), iva.CATEGORIA=16 (IVA de esa categor\xEDa del cat\xE1logo; iva.CATEGORIA= la quita), solo-factura=true (IVA s\xF3lo si el cliente pide factura), 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"],
|
|
13552
|
+
["--quote k=v,\u2026", "set: config de la tool de casa `cotizar` \u2014 iva (0-100), iva-incluido=true (los precios del cat\xE1logo ya traen IVA), iva.CATEGORIA=16 (IVA de esa categor\xEDa del cat\xE1logo; iva.CATEGORIA= la quita), solo-factura=true (IVA s\xF3lo si el cliente pide factura), 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 \xB7 plantilla=@cotizacion.html (tu propia plantilla del PDF: {{folio}}, {{cliente}}, {{#items}}\u2026{{/items}}), logo=https://\u2026, comercial=NOMBRE, numeros=es (1.234,56) \xB7 catalogo_base=BASE:TABLA (el cat\xE1logo sale de esa tabla de una base concedida, editable en la web o platicando con el agente; catalogo_base= regresa a la lista de la ficha)"],
|
|
13518
13553
|
["--catalog FILE", "set: el cat\xE1logo de la tool de casa `cotizar` desde un CSV (sku,nombre,precio[,unidad,categoria,descripcion]) o una lista JSON; reemplaza al anterior. Su `categoria` decide las reglas de IVA"],
|
|
13519
13554
|
["--verbose", "doctor: lista tambi\xE9n las revisiones que pasaron"],
|
|
13520
13555
|
["--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"],
|
|
@@ -13838,12 +13873,13 @@ var HELPS_ES = {
|
|
|
13838
13873
|
["-n, --dry-run", "imprime el plan (+ empieza a contestar, - deja de contestar) y no cambia nada"],
|
|
13839
13874
|
["--yes", "enable / groups enable: se salta la confirmaci\xF3n (obligatorio sin terminal)"],
|
|
13840
13875
|
["--role R", "groups: equipo (el equipo: escribe en bases de datos, tools de admin) o cliente (como cualquier cliente)"],
|
|
13841
|
-
["--wake mention|all", "groups set/enable: contesta todo,
|
|
13876
|
+
["--wake mention|name|all", "groups set/enable: contesta todo (all), s\xF3lo si lo mencionan con @, lo nombran o le responden (mention), o s\xF3lo si escriben su nombre o un alias (name: sin @ ni respuestas)"],
|
|
13877
|
+
['--alias "a,b"', 'groups set: otros nombres que lo despiertan en ese grupo adem\xE1s del suyo (el apodo con que le dicen ah\xED); "" los quita'],
|
|
13842
13878
|
["--text T / --sender N", "groups inject (staff): un mensaje que se perdi\xF3 (grupo apagado, deploy) entra como si N lo hubiera escrito ah\xED, y el agente contesta en el grupo"],
|
|
13843
13879
|
["--cached", "groups ls: no le pide a WhatsApp la lista en vivo (m\xE1s r\xE1pido; puede faltar alg\xFAn grupo nuevo)"],
|
|
13844
13880
|
["--ads-only on|off", "link: s\xF3lo las conversaciones que vienen de un anuncio abren tarjeta (tambi\xE9n solo, para cambiarlo en un n\xFAmero ya ligado)"],
|
|
13845
13881
|
["--new-only on|off", "link: el agente s\xF3lo contesta a contactos que escriben por primera vez desde ahora; los de antes quedan en el hilo para ti (tambi\xE9n solo)"],
|
|
13846
|
-
["contacts <id> --integration ID", "s\xF3lo contactos nuevos y contactos sin agente: --new-only on|off, --mute TEL (el agente nunca le contesta a ese n\xFAmero), --allow TEL (el agente le contesta aunque sea contacto conocido), --unmute TEL (vuelve a la regla general), --signature \u{1F47E}|off (los mensajes del agente empiezan con \xAB\u{1F47E}:\xBB para que el cliente lo distinga de ti), --seed (vuelve a traer los contactos conocidos de WhatsApp), --list [--q TEXTO] (la agenda del tel\xE9fono con la regla de cada contacto; --q busca por nombre o n\xFAmero)"],
|
|
13882
|
+
["contacts <id> --integration ID", "s\xF3lo contactos nuevos y contactos sin agente: --new-only on|off, --mute TEL (el agente nunca le contesta a ese n\xFAmero), --allow TEL (el agente le contesta aunque sea contacto conocido), --team TEL (ese n\xFAmero es de tu equipo: el agente le contesta en modo equipo, sin guion de venta, sin tarjeta de lead y sin campa\xF1as), --unmute TEL (vuelve a la regla general), --signature \u{1F47E}|off (los mensajes del agente empiezan con \xAB\u{1F47E}:\xBB para que el cliente lo distinga de ti), --seed (vuelve a traer los contactos conocidos de WhatsApp), --list [--q TEXTO] (la agenda del tel\xE9fono con la regla de cada contacto; --q busca por nombre o n\xFAmero)"],
|
|
13847
13883
|
["--board NAME|agent", "link: este n\xFAmero llena su propio tablero de ventas (nombre, id o main) en vez del del agente; las tools del CRM del agente trabajan ese tablero en los turnos de este n\xFAmero. agent = vuelve al del agente. Tambi\xE9n solo, en un n\xFAmero ya ligado"],
|
|
13848
13884
|
["--list", "history --dry-run: CU\xC1LES conversaciones (tel\xE9fono, nombre, primer mensaje, mensajes, si vino de anuncio)"],
|
|
13849
13885
|
["--only-ads / --phones a,b", "history: importa (o lista) s\xF3lo las de anuncio y/o esos tel\xE9fonos"],
|
|
@@ -14272,7 +14308,7 @@ var HELPS = {
|
|
|
14272
14308
|
["--channel-roles k=role,\u2026", "set: who talks on teams and programado (scheduled turns): equipo (team: writes to databases, admin tools) or cliente (customer). chat is always the team; WhatsApp Business, Messenger, demo and widget are customers; personal WhatsApp goes per group (channels wa groups set --role)"],
|
|
14273
14309
|
["--extensions name=on|off,\u2026", "set: turn its box's config.yaml extensions on or off (developer, memory\u2026; Ghosty \xB7 Lite and Goose); merged with what's saved. List them: get (full config)"],
|
|
14274
14310
|
["--email-any on|off", "set: on = enviar_correo may write to ANY address from customer channels; off (default) = only to the person writing. Owner only"],
|
|
14275
|
-
["--quote k=v,\u2026", "set: config of the house `cotizar` tool \u2014 iva (0-100), iva-incluido=true (catalog prices already include VAT), iva.CATEGORY=16 (VAT for that catalog category; iva.CATEGORY= removes it), solo-factura=true (VAT only when the customer asks for an invoice), vigencia (days), prefix (folio), moneda, empresa, rfc, telefono, correo, direccion, notas, color. Empty value clears it (rfc=). The folio counter is never touched"],
|
|
14311
|
+
["--quote k=v,\u2026", "set: config of the house `cotizar` tool \u2014 iva (0-100), iva-incluido=true (catalog prices already include VAT), iva.CATEGORY=16 (VAT for that catalog category; iva.CATEGORY= removes it), solo-factura=true (VAT only when the customer asks for an invoice), vigencia (days), prefix (folio), moneda, empresa, rfc, telefono, correo, direccion, notas, color. Empty value clears it (rfc=). The folio counter is never touched \xB7 plantilla=@quote.html (your own PDF template: {{folio}}, {{cliente}}, {{#items}}\u2026{{/items}}), logo=https://\u2026, comercial=NAME, numeros=es (1.234,56) \xB7 catalogo_base=DB:TABLE (the catalog comes from that table of a granted database, editable on the web or by chatting with the agent; catalogo_base= goes back to the agent's own list)"],
|
|
14276
14312
|
["--catalog FILE", "set: the house `cotizar` tool's catalog from a CSV (sku,nombre,precio[,unidad,categoria,descripcion]) or JSON list; replaces the previous one. Its `categoria` drives the VAT rules"],
|
|
14277
14313
|
["--verbose", "doctor: also list the checks that passed"],
|
|
14278
14314
|
["--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"],
|
|
@@ -14404,6 +14440,7 @@ var HELPS = {
|
|
|
14404
14440
|
summary: "Databases an agent can use, and what it may write from customer channels.",
|
|
14405
14441
|
usage: [
|
|
14406
14442
|
"ghosty dbs ls <agent-id> [--orphans]",
|
|
14443
|
+
"ghosty dbs create <agent-id> <name> [--description TEXT] [--read] [--no-grant]",
|
|
14407
14444
|
"ghosty dbs tables <agent-id> <db>",
|
|
14408
14445
|
'ghosty dbs query <agent-id> <db> "SQL" [--arg V]\u2026 [--write]',
|
|
14409
14446
|
"ghosty dbs origin <agent-id> <db> [--table T] [--since 2026-10-10] [--limit N]",
|
|
@@ -14411,6 +14448,7 @@ var HELPS = {
|
|
|
14411
14448
|
"ghosty dbs restore <agent-id> <db> <checkpoint-id> [--yes]",
|
|
14412
14449
|
"ghosty dbs export <agent-id> <db> [--table T] [--out FILE]",
|
|
14413
14450
|
"ghosty dbs import <agent-id> <db> --from easybits:<db-id> [--tables a,b] [--append] [--rehost-images t.col,\u2026] [--dry-run] [--yes]",
|
|
14451
|
+
"ghosty dbs import <agent-id> <db> --from csv:FILE --table T [--append] [--dry-run] [--yes]",
|
|
14414
14452
|
"ghosty dbs rehost <agent-id> <db> --table T --column C [--dry-run]",
|
|
14415
14453
|
"ghosty dbs photos put <agent-id> <db> --table T --key-column K --dir DIR [--column C] [--dry-run]",
|
|
14416
14454
|
"ghosty dbs grant <agent-id> <db> [--external-write t1,t2] [--external-rows t:col+col,\u2026]",
|
|
@@ -14762,12 +14800,13 @@ HELPS.channels = {
|
|
|
14762
14800
|
["-n, --dry-run", "print the plan (+ starts answering, - stops) and change nothing"],
|
|
14763
14801
|
["--yes", "enable / groups enable: skip the confirmation (required without a terminal)"],
|
|
14764
14802
|
["--role R", "groups: equipo (the team: writes to databases, admin tools) or cliente (like any customer)"],
|
|
14765
|
-
["--wake mention|all", "groups set/enable: answer every message,
|
|
14803
|
+
["--wake mention|name|all", "groups set/enable: answer every message (all), only when it's @-mentioned, named or replied to (mention), or only when its name or an alias is written (name: no @, no replies)"],
|
|
14804
|
+
['--alias "a,b"', 'groups set: other names that wake it in that group besides its own (the nickname people use there); "" clears them'],
|
|
14766
14805
|
["--text T / --sender N", "groups inject (staff): a message that got lost (group off, deploy) enters as if N wrote it there, and the agent answers in the group"],
|
|
14767
14806
|
["--cached", "groups ls: don't ask WhatsApp for the live list (faster; may miss new groups)"],
|
|
14768
14807
|
["--ads-only on|off", "link: only conversations that come from an ad open a card (also alone, to change it on a linked number)"],
|
|
14769
14808
|
["--new-only on|off", "link: the agent answers only contacts writing for the first time from now on; earlier contacts stay in the thread for you (also alone)"],
|
|
14770
|
-
["contacts <id> --integration ID", "new contacts only and contacts without the agent: --new-only on|off, --mute PHONE (the agent never answers that number), --allow PHONE (the agent answers that number even if it's a known contact), --unmute PHONE (back to the general rule), --signature \u{1F47E}|off (the agent's messages start with \u201C\u{1F47E}:\u201D so customers can tell it from you), --seed (bring the known contacts from WhatsApp again), --list [--q TEXT] (the phone contacts with their rule; --q searches by name or number)"],
|
|
14809
|
+
["contacts <id> --integration ID", "new contacts only and contacts without the agent: --new-only on|off, --mute PHONE (the agent never answers that number), --allow PHONE (the agent answers that number even if it's a known contact), --team PHONE (that number is your team's: the agent answers it in team mode, with no sales script, no lead card and no campaigns), --unmute PHONE (back to the general rule), --signature \u{1F47E}|off (the agent's messages start with \u201C\u{1F47E}:\u201D so customers can tell it from you), --seed (bring the known contacts from WhatsApp again), --list [--q TEXT] (the phone contacts with their rule; --q searches by name or number)"],
|
|
14771
14810
|
["--board NAME|agent", "link: this number fills its own sales board (name, id or main) instead of the agent's; the agent's CRM tools work that board on this number's turns. agent = back to the agent's board. Also alone, on a linked number"],
|
|
14772
14811
|
["--list", "history --dry-run: WHICH conversations (phone, name, first message, messages, from an ad)"],
|
|
14773
14812
|
["--only-ads / --phones a,b", "history: import (or list) only the ones from an ad and/or those phones"],
|
|
@@ -17591,6 +17630,8 @@ ${bold("Configure an agent")}
|
|
|
17591
17630
|
skills ls|get|add|rm <id> [slug] Skills (add from catalog, --file SKILL.md or --dir FOLDER; get lists, --out DIR saves; rm keeps a copy)
|
|
17592
17631
|
skills templates <id> pdf-doc templates it sees: its own and Ghosty's, and which folder wins
|
|
17593
17632
|
dbs ls|tables|query|export|import|rehost|grant|revoke|rename|rm <id> [db] Databases it uses [--write] [--external-write t1,t2] [--external-rows t:col] [--from easybits:ID --dry-run] [--table T --column C]
|
|
17633
|
+
dbs create <id> <name> New database in the owner's account, granted to this agent [--description TEXT] [--read] [--no-grant]
|
|
17634
|
+
dbs import <id> <db> --from csv:FILE --table T A CSV (with header) into a table; creates it if missing [--append] [--dry-run]
|
|
17594
17635
|
dbs export <id> <db> Download a database: whole as .sqlite, or one table as CSV [--table T] [--out FILE]
|
|
17595
17636
|
dbs photos put <id> <db> --table T --key-column K --dir DIR Loose photos to a catalog (SKU-123.jpg \u2192 its row), permanent links [--column C] [--dry-run]
|
|
17596
17637
|
mcp get|set <id> MCP servers [--file servers.json] (http headers accept \${turn.token})
|
|
@@ -17604,12 +17645,12 @@ ${bold("Configure an agent")}
|
|
|
17604
17645
|
channels messenger on|off <id> <page> Answer a page with this agent, or stop (off keeps logging to the board) [--take --dry-run --yes]
|
|
17605
17646
|
channels mteams ls|connect|zip|on|off|rm <id> [bot] Microsoft Teams bot (Azure Bot in the client's tenant) [--app-id --tenant --secret|GHOSTY_MTEAMS_SECRET --name --out]
|
|
17606
17647
|
channels whatsapp link|unlink <id> --integration ID --answer on|off Bring a WhatsApp Business number from Formmy/EasyBits to this agent, or send it back [--forward] [--ads-only on|off] [--new-only on|off] [--board NAME|agent] [--dry-run]
|
|
17607
|
-
channels whatsapp contacts <id> --integration ID New contacts only (the agent skips the people you already talk to) and contacts without the agent [--new-only on|off] [--mute PHONE] [--allow PHONE] [--unmute PHONE] [--signature \u{1F47E}|off] [--seed] [--list] [--q TEXT]
|
|
17648
|
+
channels whatsapp contacts <id> --integration ID New contacts only (the agent skips the people you already talk to) and contacts without the agent [--new-only on|off] [--mute PHONE] [--allow PHONE] [--team PHONE] [--unmute PHONE] [--signature \u{1F47E}|off] [--seed] [--list] [--q TEXT]
|
|
17608
17649
|
channels whatsapp history <id> --integration ID [--days 7] Bring its recent cards, messages, orders and files from Formmy (no duplicates; Formmy keeps files 7 days) [--media] [--dry-run [--list]] [--only-ads] [--phones a,b] [--column NAME]
|
|
17609
17650
|
channels wa import <id> --from easybits:ID | --from-file F | --from-dir DIR --own-number yes|no Move a personal WhatsApp session here, no QR [--dry-run] [--replace] [--no-connect]
|
|
17610
17651
|
channels wa pair <id> --phone N Pair a personal WhatsApp by code (no QR)
|
|
17611
17652
|
channels wa status|pause <id> Personal WhatsApp: how it is / pause it (keeps the session)
|
|
17612
|
-
channels wa groups ls|enable|disable|set|create <id> [group] Personal WhatsApp groups it answers, and as whom [--role equipo|cliente] [--wake mention|all] [--name "New name"] [--dry-run]
|
|
17653
|
+
channels wa groups ls|enable|disable|set|create <id> [group] Personal WhatsApp groups it answers, and as whom [--role equipo|cliente] [--wake mention|name|all] [--alias "tilin"] [--name "New name"] [--dry-run]
|
|
17613
17654
|
boards ls|create|assign|move-cards|access|followups|rm A workspace's boards: create (--columns-from), where an agent sends cards, move cards, who sees each one, quote follow-ups
|
|
17614
17655
|
cards ls <id> Recent cards on its sales board [--q TEXT] [--paused] [--limit 20]
|
|
17615
17656
|
cards show <id> <card> A card's thread: who wrote, text, attachments and whether gs kept a copy (folio, phone or id)
|
|
@@ -17823,6 +17864,8 @@ ${bold("Configurar un agente")}
|
|
|
17823
17864
|
skills ls|get|add|rm <id> [slug] Skills (add del cat\xE1logo, --file SKILL.md o --dir CARPETA; get lista, --out DIR guarda; rm deja copia)
|
|
17824
17865
|
skills templates <id> Plantillas de pdf-doc que ve: las suyas y las de Ghosty, y qu\xE9 carpeta gana
|
|
17825
17866
|
dbs ls|tables|query|export|import|rehost|grant|revoke|rename|rm <id> [db] Bases de datos que usa [--write] [--external-write t1,t2] [--external-rows t:col] [--from easybits:ID --dry-run] [--table T --column C]
|
|
17867
|
+
dbs create <id> <nombre> Base nueva en la cuenta del due\xF1o, concedida a este agente [--description TEXTO] [--read] [--no-grant]
|
|
17868
|
+
dbs import <id> <db> --from csv:ARCHIVO --table T Un CSV (con encabezado) a una tabla; la crea si no existe [--append] [--dry-run]
|
|
17826
17869
|
dbs export <id> <db> Descarga una base: entera como .sqlite, o una tabla en CSV [--table T] [--out ARCHIVO]
|
|
17827
17870
|
dbs photos put <id> <db> --table T --key-column K --dir DIR Fotos sueltas a un cat\xE1logo (SKU-123.jpg \u2192 su fila), ligas permanentes [--column C] [--dry-run]
|
|
17828
17871
|
mcp get|set <id> Servidores MCP [--file servers.json] (headers http admiten \${turn.token})
|
|
@@ -17836,12 +17879,12 @@ ${bold("Configurar un agente")}
|
|
|
17836
17879
|
channels messenger on|off <id> <p\xE1gina> Que este agente conteste una p\xE1gina, o que deje de hacerlo (off sigue registrando en el tablero) [--take --dry-run --yes]
|
|
17837
17880
|
channels mteams ls|connect|zip|on|off|rm <id> [bot] Bot de Microsoft Teams (Azure Bot en el tenant del cliente) [--app-id --tenant --secret|GHOSTY_MTEAMS_SECRET --name --out]
|
|
17838
17881
|
channels whatsapp link|unlink <id> --integration ID --answer on|off Trae un n\xFAmero de WhatsApp Business de Formmy/EasyBits a este agente, o devu\xE9lvelo [--forward] [--ads-only on|off] [--new-only on|off] [--board NOMBRE|agent] [--dry-run]
|
|
17839
|
-
channels whatsapp contacts <id> --integration ID S\xF3lo contactos nuevos (el agente no le contesta a tu gente de siempre) y contactos sin agente [--new-only on|off] [--mute TEL] [--allow TEL] [--unmute TEL] [--signature \u{1F47E}|off] [--seed] [--list] [--q TEXT]
|
|
17882
|
+
channels whatsapp contacts <id> --integration ID S\xF3lo contactos nuevos (el agente no le contesta a tu gente de siempre) y contactos sin agente [--new-only on|off] [--mute TEL] [--allow TEL] [--team TEL] [--unmute TEL] [--signature \u{1F47E}|off] [--seed] [--list] [--q TEXT]
|
|
17840
17883
|
channels whatsapp history <id> --integration ID [--days 7] Trae de Formmy sus tarjetas, mensajes, pedidos y archivos recientes (sin duplicar; Formmy guarda los archivos 7 d\xEDas) [--media] [--dry-run [--list]] [--only-ads] [--phones a,b] [--column NOMBRE]
|
|
17841
17884
|
channels wa import <id> --from easybits:ID | --from-file F | --from-dir DIR --own-number yes|no Mueve aqu\xED una sesi\xF3n de WhatsApp personal, sin QR [--dry-run] [--replace] [--no-connect]
|
|
17842
17885
|
channels wa pair <id> --phone N Vincula un WhatsApp personal con c\xF3digo (sin QR)
|
|
17843
17886
|
channels wa status|pause <id> WhatsApp personal: c\xF3mo est\xE1 / pausarlo (conserva la sesi\xF3n)
|
|
17844
|
-
channels wa groups ls|enable|disable|set|create <id> [grupo] Grupos de WhatsApp personal que contesta, y como qui\xE9n [--role equipo|cliente] [--wake mention|all] [--name "Nombre nuevo"] [--dry-run]
|
|
17887
|
+
channels wa groups ls|enable|disable|set|create <id> [grupo] Grupos de WhatsApp personal que contesta, y como qui\xE9n [--role equipo|cliente] [--wake mention|name|all] [--alias "tilin"] [--name "Nombre nuevo"] [--dry-run]
|
|
17845
17888
|
boards ls|create|assign|move-cards|access|followups|rm Los tableros de un espacio: crear (--columns-from), a d\xF3nde manda tarjetas un agente, mover tarjetas, qui\xE9n ve cada uno, seguimiento de cotizaciones
|
|
17846
17889
|
cards ls <id> Tarjetas recientes de su tablero de ventas [--q TEXTO] [--paused] [--limit 20]
|
|
17847
17890
|
cards show <id> <tarjeta> El hilo de una tarjeta: qui\xE9n escribi\xF3, texto, adjuntos y si gs guard\xF3 copia (folio, tel\xE9fono o id)
|
|
@@ -18075,6 +18118,8 @@ async function main() {
|
|
|
18075
18118
|
dir: { type: "string" },
|
|
18076
18119
|
arg: { type: "string", multiple: true },
|
|
18077
18120
|
write: { type: "boolean" },
|
|
18121
|
+
read: { type: "boolean" },
|
|
18122
|
+
"no-grant": { type: "boolean" },
|
|
18078
18123
|
"external-write": { type: "string" },
|
|
18079
18124
|
"external-rows": { type: "string" },
|
|
18080
18125
|
"no-deliver": { type: "boolean" },
|
|
@@ -18180,6 +18225,7 @@ async function main() {
|
|
|
18180
18225
|
handle: { type: "string" },
|
|
18181
18226
|
factory: { type: "string" },
|
|
18182
18227
|
wake: { type: "string" },
|
|
18228
|
+
alias: { type: "string" },
|
|
18183
18229
|
text: { type: "string" },
|
|
18184
18230
|
sender: { type: "string" },
|
|
18185
18231
|
"from-file": { type: "string" },
|
|
@@ -18236,6 +18282,7 @@ async function main() {
|
|
|
18236
18282
|
mute: { type: "string" },
|
|
18237
18283
|
unmute: { type: "string" },
|
|
18238
18284
|
allow: { type: "string" },
|
|
18285
|
+
team: { type: "string" },
|
|
18239
18286
|
signature: { type: "string" },
|
|
18240
18287
|
seed: { type: "boolean" },
|
|
18241
18288
|
"partner-tenant": { type: "string" },
|
|
@@ -18280,7 +18327,7 @@ async function main() {
|
|
|
18280
18327
|
const tokens = splitTokens(pos, v);
|
|
18281
18328
|
globals.token = tokens.session;
|
|
18282
18329
|
globals.profile = v.profile;
|
|
18283
|
-
if (v.version) return out({ version: "0.
|
|
18330
|
+
if (v.version) return out({ version: "0.104.0" }, () => "0.104.0");
|
|
18284
18331
|
for (const n of normalizeArgs(pos, v)) if (!globals.json) info(dim(n));
|
|
18285
18332
|
const context = (await readConfig()).workspace;
|
|
18286
18333
|
if (!explicitToken()?.startsWith("gat_")) {
|
|
@@ -18490,7 +18537,7 @@ async function main() {
|
|
|
18490
18537
|
throw unknown(cmd, cmd, COMMANDS, "ghosty --help");
|
|
18491
18538
|
}
|
|
18492
18539
|
}
|
|
18493
|
-
var notice = updateNotice("0.
|
|
18540
|
+
var notice = updateNotice("0.104.0").catch(() => null);
|
|
18494
18541
|
main().then(
|
|
18495
18542
|
async () => {
|
|
18496
18543
|
const n = process.stderr.isTTY ? await notice : null;
|