@ghostystudio/cli 0.94.0 → 0.96.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 +12 -1
- package/dist/index.js +335 -164
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -847,7 +847,15 @@ var init_server_messages = __esm({
|
|
|
847
847
|
["falta el id", "missing the id"],
|
|
848
848
|
["s\xF3lo el due\xF1o (o staff) puede ceder o mover el agente", "only the owner (or staff) can hand over or move the agent"],
|
|
849
849
|
["falta to (correo) o workspace (slug, o none para el personal)", "missing to (email) or workspace (slug, or none for the personal one)"],
|
|
850
|
-
["{} no es un espacio de {}", "{} is not a workspace of {}"]
|
|
850
|
+
["{} no es un espacio de {}", "{} is not a workspace of {}"],
|
|
851
|
+
// — Tablero de una app (`ghosty sites show|env|cron|files`, 3-nov)
|
|
852
|
+
["no tienes una app con backend publicada \xAB{}\xBB", 'you have no published app with a backend "{}"'],
|
|
853
|
+
["ese archivo ya no existe", "that file no longer exists"],
|
|
854
|
+
["falta el id del archivo", "missing the file id"],
|
|
855
|
+
["falta set {NOMBRE: valor}", "missing set {NAME: value}"],
|
|
856
|
+
["falta name", "missing name"],
|
|
857
|
+
["action debe ser pause, resume o rm", "action must be pause, resume or rm"],
|
|
858
|
+
["no encontr\xE9 ese sitio en tu cuenta", "that site isn't in your account"]
|
|
851
859
|
];
|
|
852
860
|
}
|
|
853
861
|
});
|
|
@@ -1175,7 +1183,7 @@ async function postLong(path2, body, timeoutMs = 9e5) {
|
|
|
1175
1183
|
const req = httpsRequest(`${base}${path2}`, {
|
|
1176
1184
|
method: "POST",
|
|
1177
1185
|
timeout: timeoutMs,
|
|
1178
|
-
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.
|
|
1186
|
+
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.96.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
|
|
1179
1187
|
}, (res) => {
|
|
1180
1188
|
let buf = "";
|
|
1181
1189
|
res.on("data", (c) => buf += c);
|
|
@@ -1217,7 +1225,7 @@ async function request(path2, opts = {}, retried = false) {
|
|
|
1217
1225
|
method: opts.method ?? (opts.body !== void 0 || opts.raw !== void 0 ? "POST" : "GET"),
|
|
1218
1226
|
headers: {
|
|
1219
1227
|
authorization: `Bearer ${token}`,
|
|
1220
|
-
"user-agent": `ghosty-cli/${"0.
|
|
1228
|
+
"user-agent": `ghosty-cli/${"0.96.0"}`,
|
|
1221
1229
|
"accept-language": lang(),
|
|
1222
1230
|
...opts.body !== void 0 ? { "content-type": "application/json" } : {},
|
|
1223
1231
|
...opts.headers
|
|
@@ -1337,9 +1345,9 @@ var init_mteams = __esm({
|
|
|
1337
1345
|
}
|
|
1338
1346
|
});
|
|
1339
1347
|
|
|
1340
|
-
//
|
|
1348
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/identity.js
|
|
1341
1349
|
var require_identity = __commonJS({
|
|
1342
|
-
"
|
|
1350
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/identity.js"(exports) {
|
|
1343
1351
|
"use strict";
|
|
1344
1352
|
var ALIAS = /* @__PURE__ */ Symbol.for("yaml.alias");
|
|
1345
1353
|
var DOC = /* @__PURE__ */ Symbol.for("yaml.document");
|
|
@@ -1394,9 +1402,9 @@ var require_identity = __commonJS({
|
|
|
1394
1402
|
}
|
|
1395
1403
|
});
|
|
1396
1404
|
|
|
1397
|
-
//
|
|
1405
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/visit.js
|
|
1398
1406
|
var require_visit = __commonJS({
|
|
1399
|
-
"
|
|
1407
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/visit.js"(exports) {
|
|
1400
1408
|
"use strict";
|
|
1401
1409
|
var identity = require_identity();
|
|
1402
1410
|
var BREAK = /* @__PURE__ */ Symbol("break visit");
|
|
@@ -1552,9 +1560,9 @@ var require_visit = __commonJS({
|
|
|
1552
1560
|
}
|
|
1553
1561
|
});
|
|
1554
1562
|
|
|
1555
|
-
//
|
|
1563
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/directives.js
|
|
1556
1564
|
var require_directives = __commonJS({
|
|
1557
|
-
"
|
|
1565
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/directives.js"(exports) {
|
|
1558
1566
|
"use strict";
|
|
1559
1567
|
var identity = require_identity();
|
|
1560
1568
|
var visit = require_visit();
|
|
@@ -1723,9 +1731,9 @@ var require_directives = __commonJS({
|
|
|
1723
1731
|
}
|
|
1724
1732
|
});
|
|
1725
1733
|
|
|
1726
|
-
//
|
|
1734
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/anchors.js
|
|
1727
1735
|
var require_anchors = __commonJS({
|
|
1728
|
-
"
|
|
1736
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/anchors.js"(exports) {
|
|
1729
1737
|
"use strict";
|
|
1730
1738
|
var identity = require_identity();
|
|
1731
1739
|
var visit = require_visit();
|
|
@@ -1793,9 +1801,9 @@ var require_anchors = __commonJS({
|
|
|
1793
1801
|
}
|
|
1794
1802
|
});
|
|
1795
1803
|
|
|
1796
|
-
//
|
|
1804
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js
|
|
1797
1805
|
var require_applyReviver = __commonJS({
|
|
1798
|
-
"
|
|
1806
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js"(exports) {
|
|
1799
1807
|
"use strict";
|
|
1800
1808
|
function applyReviver(reviver, obj, key, val) {
|
|
1801
1809
|
if (val && typeof val === "object") {
|
|
@@ -1843,9 +1851,9 @@ var require_applyReviver = __commonJS({
|
|
|
1843
1851
|
}
|
|
1844
1852
|
});
|
|
1845
1853
|
|
|
1846
|
-
//
|
|
1854
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/toJS.js
|
|
1847
1855
|
var require_toJS = __commonJS({
|
|
1848
|
-
"
|
|
1856
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/toJS.js"(exports) {
|
|
1849
1857
|
"use strict";
|
|
1850
1858
|
var identity = require_identity();
|
|
1851
1859
|
function toJS(value, arg, ctx) {
|
|
@@ -1873,9 +1881,9 @@ var require_toJS = __commonJS({
|
|
|
1873
1881
|
}
|
|
1874
1882
|
});
|
|
1875
1883
|
|
|
1876
|
-
//
|
|
1884
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Node.js
|
|
1877
1885
|
var require_Node = __commonJS({
|
|
1878
|
-
"
|
|
1886
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Node.js"(exports) {
|
|
1879
1887
|
"use strict";
|
|
1880
1888
|
var applyReviver = require_applyReviver();
|
|
1881
1889
|
var identity = require_identity();
|
|
@@ -1914,9 +1922,9 @@ var require_Node = __commonJS({
|
|
|
1914
1922
|
}
|
|
1915
1923
|
});
|
|
1916
1924
|
|
|
1917
|
-
//
|
|
1925
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Alias.js
|
|
1918
1926
|
var require_Alias = __commonJS({
|
|
1919
|
-
"
|
|
1927
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Alias.js"(exports) {
|
|
1920
1928
|
"use strict";
|
|
1921
1929
|
var anchors = require_anchors();
|
|
1922
1930
|
var visit = require_visit();
|
|
@@ -2032,9 +2040,9 @@ var require_Alias = __commonJS({
|
|
|
2032
2040
|
}
|
|
2033
2041
|
});
|
|
2034
2042
|
|
|
2035
|
-
//
|
|
2043
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js
|
|
2036
2044
|
var require_Scalar = __commonJS({
|
|
2037
|
-
"
|
|
2045
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js"(exports) {
|
|
2038
2046
|
"use strict";
|
|
2039
2047
|
var identity = require_identity();
|
|
2040
2048
|
var Node = require_Node();
|
|
@@ -2062,9 +2070,9 @@ var require_Scalar = __commonJS({
|
|
|
2062
2070
|
}
|
|
2063
2071
|
});
|
|
2064
2072
|
|
|
2065
|
-
//
|
|
2073
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/createNode.js
|
|
2066
2074
|
var require_createNode = __commonJS({
|
|
2067
|
-
"
|
|
2075
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/createNode.js"(exports) {
|
|
2068
2076
|
"use strict";
|
|
2069
2077
|
var Alias = require_Alias();
|
|
2070
2078
|
var identity = require_identity();
|
|
@@ -2137,9 +2145,9 @@ var require_createNode = __commonJS({
|
|
|
2137
2145
|
}
|
|
2138
2146
|
});
|
|
2139
2147
|
|
|
2140
|
-
//
|
|
2148
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Collection.js
|
|
2141
2149
|
var require_Collection = __commonJS({
|
|
2142
|
-
"
|
|
2150
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Collection.js"(exports) {
|
|
2143
2151
|
"use strict";
|
|
2144
2152
|
var createNode = require_createNode();
|
|
2145
2153
|
var identity = require_identity();
|
|
@@ -2280,9 +2288,9 @@ var require_Collection = __commonJS({
|
|
|
2280
2288
|
}
|
|
2281
2289
|
});
|
|
2282
2290
|
|
|
2283
|
-
//
|
|
2291
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js
|
|
2284
2292
|
var require_stringifyComment = __commonJS({
|
|
2285
|
-
"
|
|
2293
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js"(exports) {
|
|
2286
2294
|
"use strict";
|
|
2287
2295
|
var stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, "#");
|
|
2288
2296
|
function indentComment(comment, indent) {
|
|
@@ -2297,9 +2305,9 @@ var require_stringifyComment = __commonJS({
|
|
|
2297
2305
|
}
|
|
2298
2306
|
});
|
|
2299
2307
|
|
|
2300
|
-
//
|
|
2308
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js
|
|
2301
2309
|
var require_foldFlowLines = __commonJS({
|
|
2302
|
-
"
|
|
2310
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js"(exports) {
|
|
2303
2311
|
"use strict";
|
|
2304
2312
|
var FOLD_FLOW = "flow";
|
|
2305
2313
|
var FOLD_BLOCK = "block";
|
|
@@ -2433,9 +2441,9 @@ ${indent}${text.slice(fold + 1, end2)}`;
|
|
|
2433
2441
|
}
|
|
2434
2442
|
});
|
|
2435
2443
|
|
|
2436
|
-
//
|
|
2444
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js
|
|
2437
2445
|
var require_stringifyString = __commonJS({
|
|
2438
|
-
"
|
|
2446
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js"(exports) {
|
|
2439
2447
|
"use strict";
|
|
2440
2448
|
var Scalar = require_Scalar();
|
|
2441
2449
|
var foldFlowLines = require_foldFlowLines();
|
|
@@ -2716,9 +2724,9 @@ ${indent}`);
|
|
|
2716
2724
|
}
|
|
2717
2725
|
});
|
|
2718
2726
|
|
|
2719
|
-
//
|
|
2727
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringify.js
|
|
2720
2728
|
var require_stringify = __commonJS({
|
|
2721
|
-
"
|
|
2729
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringify.js"(exports) {
|
|
2722
2730
|
"use strict";
|
|
2723
2731
|
var anchors = require_anchors();
|
|
2724
2732
|
var identity = require_identity();
|
|
@@ -2840,9 +2848,9 @@ ${ctx.indent}${str}`;
|
|
|
2840
2848
|
}
|
|
2841
2849
|
});
|
|
2842
2850
|
|
|
2843
|
-
//
|
|
2851
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js
|
|
2844
2852
|
var require_stringifyPair = __commonJS({
|
|
2845
|
-
"
|
|
2853
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js"(exports) {
|
|
2846
2854
|
"use strict";
|
|
2847
2855
|
var identity = require_identity();
|
|
2848
2856
|
var Scalar = require_Scalar();
|
|
@@ -2973,9 +2981,9 @@ ${ctx.indent}`;
|
|
|
2973
2981
|
}
|
|
2974
2982
|
});
|
|
2975
2983
|
|
|
2976
|
-
//
|
|
2984
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/log.js
|
|
2977
2985
|
var require_log = __commonJS({
|
|
2978
|
-
"
|
|
2986
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/log.js"(exports) {
|
|
2979
2987
|
"use strict";
|
|
2980
2988
|
var node_process = __require("process");
|
|
2981
2989
|
function debug(logLevel, ...messages) {
|
|
@@ -2995,9 +3003,9 @@ var require_log = __commonJS({
|
|
|
2995
3003
|
}
|
|
2996
3004
|
});
|
|
2997
3005
|
|
|
2998
|
-
//
|
|
3006
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js
|
|
2999
3007
|
var require_merge = __commonJS({
|
|
3000
|
-
"
|
|
3008
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js"(exports) {
|
|
3001
3009
|
"use strict";
|
|
3002
3010
|
var identity = require_identity();
|
|
3003
3011
|
var Scalar = require_Scalar();
|
|
@@ -3055,9 +3063,9 @@ var require_merge = __commonJS({
|
|
|
3055
3063
|
}
|
|
3056
3064
|
});
|
|
3057
3065
|
|
|
3058
|
-
//
|
|
3066
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js
|
|
3059
3067
|
var require_addPairToJSMap = __commonJS({
|
|
3060
|
-
"
|
|
3068
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports) {
|
|
3061
3069
|
"use strict";
|
|
3062
3070
|
var log = require_log();
|
|
3063
3071
|
var merge = require_merge();
|
|
@@ -3119,9 +3127,9 @@ var require_addPairToJSMap = __commonJS({
|
|
|
3119
3127
|
}
|
|
3120
3128
|
});
|
|
3121
3129
|
|
|
3122
|
-
//
|
|
3130
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Pair.js
|
|
3123
3131
|
var require_Pair = __commonJS({
|
|
3124
|
-
"
|
|
3132
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Pair.js"(exports) {
|
|
3125
3133
|
"use strict";
|
|
3126
3134
|
var createNode = require_createNode();
|
|
3127
3135
|
var stringifyPair = require_stringifyPair();
|
|
@@ -3159,9 +3167,9 @@ var require_Pair = __commonJS({
|
|
|
3159
3167
|
}
|
|
3160
3168
|
});
|
|
3161
3169
|
|
|
3162
|
-
//
|
|
3170
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js
|
|
3163
3171
|
var require_stringifyCollection = __commonJS({
|
|
3164
|
-
"
|
|
3172
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js"(exports) {
|
|
3165
3173
|
"use strict";
|
|
3166
3174
|
var identity = require_identity();
|
|
3167
3175
|
var stringify = require_stringify();
|
|
@@ -3310,9 +3318,9 @@ ${indent}${end}`;
|
|
|
3310
3318
|
}
|
|
3311
3319
|
});
|
|
3312
3320
|
|
|
3313
|
-
//
|
|
3321
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js
|
|
3314
3322
|
var require_YAMLMap = __commonJS({
|
|
3315
|
-
"
|
|
3323
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js"(exports) {
|
|
3316
3324
|
"use strict";
|
|
3317
3325
|
var stringifyCollection = require_stringifyCollection();
|
|
3318
3326
|
var addPairToJSMap = require_addPairToJSMap();
|
|
@@ -3454,9 +3462,9 @@ var require_YAMLMap = __commonJS({
|
|
|
3454
3462
|
}
|
|
3455
3463
|
});
|
|
3456
3464
|
|
|
3457
|
-
//
|
|
3465
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/map.js
|
|
3458
3466
|
var require_map = __commonJS({
|
|
3459
|
-
"
|
|
3467
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/map.js"(exports) {
|
|
3460
3468
|
"use strict";
|
|
3461
3469
|
var identity = require_identity();
|
|
3462
3470
|
var YAMLMap = require_YAMLMap();
|
|
@@ -3476,9 +3484,9 @@ var require_map = __commonJS({
|
|
|
3476
3484
|
}
|
|
3477
3485
|
});
|
|
3478
3486
|
|
|
3479
|
-
//
|
|
3487
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js
|
|
3480
3488
|
var require_YAMLSeq = __commonJS({
|
|
3481
|
-
"
|
|
3489
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js"(exports) {
|
|
3482
3490
|
"use strict";
|
|
3483
3491
|
var createNode = require_createNode();
|
|
3484
3492
|
var stringifyCollection = require_stringifyCollection();
|
|
@@ -3592,9 +3600,9 @@ var require_YAMLSeq = __commonJS({
|
|
|
3592
3600
|
}
|
|
3593
3601
|
});
|
|
3594
3602
|
|
|
3595
|
-
//
|
|
3603
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/seq.js
|
|
3596
3604
|
var require_seq = __commonJS({
|
|
3597
|
-
"
|
|
3605
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/seq.js"(exports) {
|
|
3598
3606
|
"use strict";
|
|
3599
3607
|
var identity = require_identity();
|
|
3600
3608
|
var YAMLSeq = require_YAMLSeq();
|
|
@@ -3614,9 +3622,9 @@ var require_seq = __commonJS({
|
|
|
3614
3622
|
}
|
|
3615
3623
|
});
|
|
3616
3624
|
|
|
3617
|
-
//
|
|
3625
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/string.js
|
|
3618
3626
|
var require_string = __commonJS({
|
|
3619
|
-
"
|
|
3627
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/string.js"(exports) {
|
|
3620
3628
|
"use strict";
|
|
3621
3629
|
var stringifyString = require_stringifyString();
|
|
3622
3630
|
var string = {
|
|
@@ -3633,9 +3641,9 @@ var require_string = __commonJS({
|
|
|
3633
3641
|
}
|
|
3634
3642
|
});
|
|
3635
3643
|
|
|
3636
|
-
//
|
|
3644
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/null.js
|
|
3637
3645
|
var require_null = __commonJS({
|
|
3638
|
-
"
|
|
3646
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/null.js"(exports) {
|
|
3639
3647
|
"use strict";
|
|
3640
3648
|
var Scalar = require_Scalar();
|
|
3641
3649
|
var nullTag = {
|
|
@@ -3651,9 +3659,9 @@ var require_null = __commonJS({
|
|
|
3651
3659
|
}
|
|
3652
3660
|
});
|
|
3653
3661
|
|
|
3654
|
-
//
|
|
3662
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/bool.js
|
|
3655
3663
|
var require_bool = __commonJS({
|
|
3656
|
-
"
|
|
3664
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/bool.js"(exports) {
|
|
3657
3665
|
"use strict";
|
|
3658
3666
|
var Scalar = require_Scalar();
|
|
3659
3667
|
var boolTag = {
|
|
@@ -3675,9 +3683,9 @@ var require_bool = __commonJS({
|
|
|
3675
3683
|
}
|
|
3676
3684
|
});
|
|
3677
3685
|
|
|
3678
|
-
//
|
|
3686
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js
|
|
3679
3687
|
var require_stringifyNumber = __commonJS({
|
|
3680
|
-
"
|
|
3688
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js"(exports) {
|
|
3681
3689
|
"use strict";
|
|
3682
3690
|
function stringifyNumber({ format, minFractionDigits, tag, value }) {
|
|
3683
3691
|
if (typeof value === "bigint")
|
|
@@ -3702,9 +3710,9 @@ var require_stringifyNumber = __commonJS({
|
|
|
3702
3710
|
}
|
|
3703
3711
|
});
|
|
3704
3712
|
|
|
3705
|
-
//
|
|
3713
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/float.js
|
|
3706
3714
|
var require_float = __commonJS({
|
|
3707
|
-
"
|
|
3715
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/float.js"(exports) {
|
|
3708
3716
|
"use strict";
|
|
3709
3717
|
var Scalar = require_Scalar();
|
|
3710
3718
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -3748,9 +3756,9 @@ var require_float = __commonJS({
|
|
|
3748
3756
|
}
|
|
3749
3757
|
});
|
|
3750
3758
|
|
|
3751
|
-
//
|
|
3759
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/int.js
|
|
3752
3760
|
var require_int = __commonJS({
|
|
3753
|
-
"
|
|
3761
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/int.js"(exports) {
|
|
3754
3762
|
"use strict";
|
|
3755
3763
|
var stringifyNumber = require_stringifyNumber();
|
|
3756
3764
|
var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -3793,9 +3801,9 @@ var require_int = __commonJS({
|
|
|
3793
3801
|
}
|
|
3794
3802
|
});
|
|
3795
3803
|
|
|
3796
|
-
//
|
|
3804
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/schema.js
|
|
3797
3805
|
var require_schema = __commonJS({
|
|
3798
|
-
"
|
|
3806
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/schema.js"(exports) {
|
|
3799
3807
|
"use strict";
|
|
3800
3808
|
var map = require_map();
|
|
3801
3809
|
var _null = require_null();
|
|
@@ -3821,9 +3829,9 @@ var require_schema = __commonJS({
|
|
|
3821
3829
|
}
|
|
3822
3830
|
});
|
|
3823
3831
|
|
|
3824
|
-
//
|
|
3832
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/json/schema.js
|
|
3825
3833
|
var require_schema2 = __commonJS({
|
|
3826
|
-
"
|
|
3834
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/json/schema.js"(exports) {
|
|
3827
3835
|
"use strict";
|
|
3828
3836
|
var Scalar = require_Scalar();
|
|
3829
3837
|
var map = require_map();
|
|
@@ -3888,9 +3896,9 @@ var require_schema2 = __commonJS({
|
|
|
3888
3896
|
}
|
|
3889
3897
|
});
|
|
3890
3898
|
|
|
3891
|
-
//
|
|
3899
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js
|
|
3892
3900
|
var require_binary = __commonJS({
|
|
3893
|
-
"
|
|
3901
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js"(exports) {
|
|
3894
3902
|
"use strict";
|
|
3895
3903
|
var node_buffer = __require("buffer");
|
|
3896
3904
|
var Scalar = require_Scalar();
|
|
@@ -3954,9 +3962,9 @@ var require_binary = __commonJS({
|
|
|
3954
3962
|
}
|
|
3955
3963
|
});
|
|
3956
3964
|
|
|
3957
|
-
//
|
|
3965
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
|
|
3958
3966
|
var require_pairs = __commonJS({
|
|
3959
|
-
"
|
|
3967
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js"(exports) {
|
|
3960
3968
|
"use strict";
|
|
3961
3969
|
var identity = require_identity();
|
|
3962
3970
|
var Pair = require_Pair();
|
|
@@ -4032,9 +4040,9 @@ ${cn.comment}` : item.comment;
|
|
|
4032
4040
|
}
|
|
4033
4041
|
});
|
|
4034
4042
|
|
|
4035
|
-
//
|
|
4043
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js
|
|
4036
4044
|
var require_omap = __commonJS({
|
|
4037
|
-
"
|
|
4045
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js"(exports) {
|
|
4038
4046
|
"use strict";
|
|
4039
4047
|
var identity = require_identity();
|
|
4040
4048
|
var toJS = require_toJS();
|
|
@@ -4110,9 +4118,9 @@ var require_omap = __commonJS({
|
|
|
4110
4118
|
}
|
|
4111
4119
|
});
|
|
4112
4120
|
|
|
4113
|
-
//
|
|
4121
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js
|
|
4114
4122
|
var require_bool2 = __commonJS({
|
|
4115
|
-
"
|
|
4123
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js"(exports) {
|
|
4116
4124
|
"use strict";
|
|
4117
4125
|
var Scalar = require_Scalar();
|
|
4118
4126
|
function boolStringify({ value, source }, ctx) {
|
|
@@ -4142,9 +4150,9 @@ var require_bool2 = __commonJS({
|
|
|
4142
4150
|
}
|
|
4143
4151
|
});
|
|
4144
4152
|
|
|
4145
|
-
//
|
|
4153
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js
|
|
4146
4154
|
var require_float2 = __commonJS({
|
|
4147
|
-
"
|
|
4155
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js"(exports) {
|
|
4148
4156
|
"use strict";
|
|
4149
4157
|
var Scalar = require_Scalar();
|
|
4150
4158
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -4191,9 +4199,9 @@ var require_float2 = __commonJS({
|
|
|
4191
4199
|
}
|
|
4192
4200
|
});
|
|
4193
4201
|
|
|
4194
|
-
//
|
|
4202
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js
|
|
4195
4203
|
var require_int2 = __commonJS({
|
|
4196
|
-
"
|
|
4204
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js"(exports) {
|
|
4197
4205
|
"use strict";
|
|
4198
4206
|
var stringifyNumber = require_stringifyNumber();
|
|
4199
4207
|
var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -4270,9 +4278,9 @@ var require_int2 = __commonJS({
|
|
|
4270
4278
|
}
|
|
4271
4279
|
});
|
|
4272
4280
|
|
|
4273
|
-
//
|
|
4281
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js
|
|
4274
4282
|
var require_set = __commonJS({
|
|
4275
|
-
"
|
|
4283
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js"(exports) {
|
|
4276
4284
|
"use strict";
|
|
4277
4285
|
var identity = require_identity();
|
|
4278
4286
|
var Pair = require_Pair();
|
|
@@ -4359,9 +4367,9 @@ var require_set = __commonJS({
|
|
|
4359
4367
|
}
|
|
4360
4368
|
});
|
|
4361
4369
|
|
|
4362
|
-
//
|
|
4370
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
|
|
4363
4371
|
var require_timestamp = __commonJS({
|
|
4364
|
-
"
|
|
4372
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js"(exports) {
|
|
4365
4373
|
"use strict";
|
|
4366
4374
|
var stringifyNumber = require_stringifyNumber();
|
|
4367
4375
|
function parseSexagesimal(str, asBigInt) {
|
|
@@ -4447,9 +4455,9 @@ var require_timestamp = __commonJS({
|
|
|
4447
4455
|
}
|
|
4448
4456
|
});
|
|
4449
4457
|
|
|
4450
|
-
//
|
|
4458
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js
|
|
4451
4459
|
var require_schema3 = __commonJS({
|
|
4452
|
-
"
|
|
4460
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js"(exports) {
|
|
4453
4461
|
"use strict";
|
|
4454
4462
|
var map = require_map();
|
|
4455
4463
|
var _null = require_null();
|
|
@@ -4491,9 +4499,9 @@ var require_schema3 = __commonJS({
|
|
|
4491
4499
|
}
|
|
4492
4500
|
});
|
|
4493
4501
|
|
|
4494
|
-
//
|
|
4502
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/tags.js
|
|
4495
4503
|
var require_tags = __commonJS({
|
|
4496
|
-
"
|
|
4504
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/tags.js"(exports) {
|
|
4497
4505
|
"use strict";
|
|
4498
4506
|
var map = require_map();
|
|
4499
4507
|
var _null = require_null();
|
|
@@ -4585,9 +4593,9 @@ var require_tags = __commonJS({
|
|
|
4585
4593
|
}
|
|
4586
4594
|
});
|
|
4587
4595
|
|
|
4588
|
-
//
|
|
4596
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/Schema.js
|
|
4589
4597
|
var require_Schema = __commonJS({
|
|
4590
|
-
"
|
|
4598
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/Schema.js"(exports) {
|
|
4591
4599
|
"use strict";
|
|
4592
4600
|
var identity = require_identity();
|
|
4593
4601
|
var map = require_map();
|
|
@@ -4617,9 +4625,9 @@ var require_Schema = __commonJS({
|
|
|
4617
4625
|
}
|
|
4618
4626
|
});
|
|
4619
4627
|
|
|
4620
|
-
//
|
|
4628
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js
|
|
4621
4629
|
var require_stringifyDocument = __commonJS({
|
|
4622
|
-
"
|
|
4630
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js"(exports) {
|
|
4623
4631
|
"use strict";
|
|
4624
4632
|
var identity = require_identity();
|
|
4625
4633
|
var stringify = require_stringify();
|
|
@@ -4697,9 +4705,9 @@ var require_stringifyDocument = __commonJS({
|
|
|
4697
4705
|
}
|
|
4698
4706
|
});
|
|
4699
4707
|
|
|
4700
|
-
//
|
|
4708
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/Document.js
|
|
4701
4709
|
var require_Document = __commonJS({
|
|
4702
|
-
"
|
|
4710
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/Document.js"(exports) {
|
|
4703
4711
|
"use strict";
|
|
4704
4712
|
var Alias = require_Alias();
|
|
4705
4713
|
var Collection = require_Collection();
|
|
@@ -5006,9 +5014,9 @@ var require_Document = __commonJS({
|
|
|
5006
5014
|
}
|
|
5007
5015
|
});
|
|
5008
5016
|
|
|
5009
|
-
//
|
|
5017
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/errors.js
|
|
5010
5018
|
var require_errors = __commonJS({
|
|
5011
|
-
"
|
|
5019
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/errors.js"(exports) {
|
|
5012
5020
|
"use strict";
|
|
5013
5021
|
var YAMLError = class extends Error {
|
|
5014
5022
|
constructor(name, pos, code, message) {
|
|
@@ -5071,9 +5079,9 @@ ${pointer}
|
|
|
5071
5079
|
}
|
|
5072
5080
|
});
|
|
5073
5081
|
|
|
5074
|
-
//
|
|
5082
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js
|
|
5075
5083
|
var require_resolve_props = __commonJS({
|
|
5076
|
-
"
|
|
5084
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js"(exports) {
|
|
5077
5085
|
"use strict";
|
|
5078
5086
|
function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
|
|
5079
5087
|
let spaceBefore = false;
|
|
@@ -5205,9 +5213,9 @@ var require_resolve_props = __commonJS({
|
|
|
5205
5213
|
}
|
|
5206
5214
|
});
|
|
5207
5215
|
|
|
5208
|
-
//
|
|
5216
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js
|
|
5209
5217
|
var require_util_contains_newline = __commonJS({
|
|
5210
|
-
"
|
|
5218
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js"(exports) {
|
|
5211
5219
|
"use strict";
|
|
5212
5220
|
function containsNewline(key) {
|
|
5213
5221
|
if (!key)
|
|
@@ -5247,9 +5255,9 @@ var require_util_contains_newline = __commonJS({
|
|
|
5247
5255
|
}
|
|
5248
5256
|
});
|
|
5249
5257
|
|
|
5250
|
-
//
|
|
5258
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js
|
|
5251
5259
|
var require_util_flow_indent_check = __commonJS({
|
|
5252
|
-
"
|
|
5260
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js"(exports) {
|
|
5253
5261
|
"use strict";
|
|
5254
5262
|
var utilContainsNewline = require_util_contains_newline();
|
|
5255
5263
|
function flowIndentCheck(indent, fc, onError) {
|
|
@@ -5265,9 +5273,9 @@ var require_util_flow_indent_check = __commonJS({
|
|
|
5265
5273
|
}
|
|
5266
5274
|
});
|
|
5267
5275
|
|
|
5268
|
-
//
|
|
5276
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js
|
|
5269
5277
|
var require_util_map_includes = __commonJS({
|
|
5270
|
-
"
|
|
5278
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js"(exports) {
|
|
5271
5279
|
"use strict";
|
|
5272
5280
|
var identity = require_identity();
|
|
5273
5281
|
function mapIncludes(ctx, items, search) {
|
|
@@ -5281,9 +5289,9 @@ var require_util_map_includes = __commonJS({
|
|
|
5281
5289
|
}
|
|
5282
5290
|
});
|
|
5283
5291
|
|
|
5284
|
-
//
|
|
5292
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js
|
|
5285
5293
|
var require_resolve_block_map = __commonJS({
|
|
5286
|
-
"
|
|
5294
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js"(exports) {
|
|
5287
5295
|
"use strict";
|
|
5288
5296
|
var Pair = require_Pair();
|
|
5289
5297
|
var YAMLMap = require_YAMLMap();
|
|
@@ -5389,9 +5397,9 @@ var require_resolve_block_map = __commonJS({
|
|
|
5389
5397
|
}
|
|
5390
5398
|
});
|
|
5391
5399
|
|
|
5392
|
-
//
|
|
5400
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js
|
|
5393
5401
|
var require_resolve_block_seq = __commonJS({
|
|
5394
|
-
"
|
|
5402
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js"(exports) {
|
|
5395
5403
|
"use strict";
|
|
5396
5404
|
var YAMLSeq = require_YAMLSeq();
|
|
5397
5405
|
var resolveProps = require_resolve_props();
|
|
@@ -5440,9 +5448,9 @@ var require_resolve_block_seq = __commonJS({
|
|
|
5440
5448
|
}
|
|
5441
5449
|
});
|
|
5442
5450
|
|
|
5443
|
-
//
|
|
5451
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js
|
|
5444
5452
|
var require_resolve_end = __commonJS({
|
|
5445
|
-
"
|
|
5453
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js"(exports) {
|
|
5446
5454
|
"use strict";
|
|
5447
5455
|
function resolveEnd(end, offset, reqSpace, onError) {
|
|
5448
5456
|
let comment = "";
|
|
@@ -5483,9 +5491,9 @@ var require_resolve_end = __commonJS({
|
|
|
5483
5491
|
}
|
|
5484
5492
|
});
|
|
5485
5493
|
|
|
5486
|
-
//
|
|
5494
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js
|
|
5487
5495
|
var require_resolve_flow_collection = __commonJS({
|
|
5488
|
-
"
|
|
5496
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js"(exports) {
|
|
5489
5497
|
"use strict";
|
|
5490
5498
|
var identity = require_identity();
|
|
5491
5499
|
var Pair = require_Pair();
|
|
@@ -5677,9 +5685,9 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
5677
5685
|
}
|
|
5678
5686
|
});
|
|
5679
5687
|
|
|
5680
|
-
//
|
|
5688
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js
|
|
5681
5689
|
var require_compose_collection = __commonJS({
|
|
5682
|
-
"
|
|
5690
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js"(exports) {
|
|
5683
5691
|
"use strict";
|
|
5684
5692
|
var identity = require_identity();
|
|
5685
5693
|
var Scalar = require_Scalar();
|
|
@@ -5742,9 +5750,9 @@ var require_compose_collection = __commonJS({
|
|
|
5742
5750
|
}
|
|
5743
5751
|
});
|
|
5744
5752
|
|
|
5745
|
-
//
|
|
5753
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js
|
|
5746
5754
|
var require_resolve_block_scalar = __commonJS({
|
|
5747
|
-
"
|
|
5755
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js"(exports) {
|
|
5748
5756
|
"use strict";
|
|
5749
5757
|
var Scalar = require_Scalar();
|
|
5750
5758
|
function resolveBlockScalar(ctx, scalar, onError) {
|
|
@@ -5925,9 +5933,9 @@ var require_resolve_block_scalar = __commonJS({
|
|
|
5925
5933
|
}
|
|
5926
5934
|
});
|
|
5927
5935
|
|
|
5928
|
-
//
|
|
5936
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js
|
|
5929
5937
|
var require_resolve_flow_scalar = __commonJS({
|
|
5930
|
-
"
|
|
5938
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js"(exports) {
|
|
5931
5939
|
"use strict";
|
|
5932
5940
|
var Scalar = require_Scalar();
|
|
5933
5941
|
var resolveEnd = require_resolve_end();
|
|
@@ -6146,9 +6154,9 @@ var require_resolve_flow_scalar = __commonJS({
|
|
|
6146
6154
|
}
|
|
6147
6155
|
});
|
|
6148
6156
|
|
|
6149
|
-
//
|
|
6157
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js
|
|
6150
6158
|
var require_compose_scalar = __commonJS({
|
|
6151
|
-
"
|
|
6159
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js"(exports) {
|
|
6152
6160
|
"use strict";
|
|
6153
6161
|
var identity = require_identity();
|
|
6154
6162
|
var Scalar = require_Scalar();
|
|
@@ -6227,9 +6235,9 @@ var require_compose_scalar = __commonJS({
|
|
|
6227
6235
|
}
|
|
6228
6236
|
});
|
|
6229
6237
|
|
|
6230
|
-
//
|
|
6238
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js
|
|
6231
6239
|
var require_util_empty_scalar_position = __commonJS({
|
|
6232
|
-
"
|
|
6240
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js"(exports) {
|
|
6233
6241
|
"use strict";
|
|
6234
6242
|
function emptyScalarPosition(offset, before, pos) {
|
|
6235
6243
|
if (before) {
|
|
@@ -6257,9 +6265,9 @@ var require_util_empty_scalar_position = __commonJS({
|
|
|
6257
6265
|
}
|
|
6258
6266
|
});
|
|
6259
6267
|
|
|
6260
|
-
//
|
|
6268
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-node.js
|
|
6261
6269
|
var require_compose_node = __commonJS({
|
|
6262
|
-
"
|
|
6270
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-node.js"(exports) {
|
|
6263
6271
|
"use strict";
|
|
6264
6272
|
var Alias = require_Alias();
|
|
6265
6273
|
var identity = require_identity();
|
|
@@ -6363,9 +6371,9 @@ var require_compose_node = __commonJS({
|
|
|
6363
6371
|
}
|
|
6364
6372
|
});
|
|
6365
6373
|
|
|
6366
|
-
//
|
|
6374
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js
|
|
6367
6375
|
var require_compose_doc = __commonJS({
|
|
6368
|
-
"
|
|
6376
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js"(exports) {
|
|
6369
6377
|
"use strict";
|
|
6370
6378
|
var Document = require_Document();
|
|
6371
6379
|
var composeNode = require_compose_node();
|
|
@@ -6406,9 +6414,9 @@ var require_compose_doc = __commonJS({
|
|
|
6406
6414
|
}
|
|
6407
6415
|
});
|
|
6408
6416
|
|
|
6409
|
-
//
|
|
6417
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/composer.js
|
|
6410
6418
|
var require_composer = __commonJS({
|
|
6411
|
-
"
|
|
6419
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/composer.js"(exports) {
|
|
6412
6420
|
"use strict";
|
|
6413
6421
|
var node_process = __require("process");
|
|
6414
6422
|
var directives = require_directives();
|
|
@@ -6614,9 +6622,9 @@ ${end.comment}` : end.comment;
|
|
|
6614
6622
|
}
|
|
6615
6623
|
});
|
|
6616
6624
|
|
|
6617
|
-
//
|
|
6625
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js
|
|
6618
6626
|
var require_cst_scalar = __commonJS({
|
|
6619
|
-
"
|
|
6627
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js"(exports) {
|
|
6620
6628
|
"use strict";
|
|
6621
6629
|
var resolveBlockScalar = require_resolve_block_scalar();
|
|
6622
6630
|
var resolveFlowScalar = require_resolve_flow_scalar();
|
|
@@ -6799,9 +6807,9 @@ var require_cst_scalar = __commonJS({
|
|
|
6799
6807
|
}
|
|
6800
6808
|
});
|
|
6801
6809
|
|
|
6802
|
-
//
|
|
6810
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js
|
|
6803
6811
|
var require_cst_stringify = __commonJS({
|
|
6804
|
-
"
|
|
6812
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js"(exports) {
|
|
6805
6813
|
"use strict";
|
|
6806
6814
|
var stringify = (cst) => "type" in cst ? stringifyToken(cst) : stringifyItem(cst);
|
|
6807
6815
|
function stringifyToken(token) {
|
|
@@ -6860,9 +6868,9 @@ var require_cst_stringify = __commonJS({
|
|
|
6860
6868
|
}
|
|
6861
6869
|
});
|
|
6862
6870
|
|
|
6863
|
-
//
|
|
6871
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js
|
|
6864
6872
|
var require_cst_visit = __commonJS({
|
|
6865
|
-
"
|
|
6873
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js"(exports) {
|
|
6866
6874
|
"use strict";
|
|
6867
6875
|
var BREAK = /* @__PURE__ */ Symbol("break visit");
|
|
6868
6876
|
var SKIP2 = /* @__PURE__ */ Symbol("skip children");
|
|
@@ -6922,9 +6930,9 @@ var require_cst_visit = __commonJS({
|
|
|
6922
6930
|
}
|
|
6923
6931
|
});
|
|
6924
6932
|
|
|
6925
|
-
//
|
|
6933
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst.js
|
|
6926
6934
|
var require_cst = __commonJS({
|
|
6927
|
-
"
|
|
6935
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst.js"(exports) {
|
|
6928
6936
|
"use strict";
|
|
6929
6937
|
var cstScalar = require_cst_scalar();
|
|
6930
6938
|
var cstStringify = require_cst_stringify();
|
|
@@ -7024,9 +7032,9 @@ var require_cst = __commonJS({
|
|
|
7024
7032
|
}
|
|
7025
7033
|
});
|
|
7026
7034
|
|
|
7027
|
-
//
|
|
7035
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/lexer.js
|
|
7028
7036
|
var require_lexer = __commonJS({
|
|
7029
|
-
"
|
|
7037
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/lexer.js"(exports) {
|
|
7030
7038
|
"use strict";
|
|
7031
7039
|
var cst = require_cst();
|
|
7032
7040
|
function isEmpty(ch) {
|
|
@@ -7613,9 +7621,9 @@ var require_lexer = __commonJS({
|
|
|
7613
7621
|
}
|
|
7614
7622
|
});
|
|
7615
7623
|
|
|
7616
|
-
//
|
|
7624
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/line-counter.js
|
|
7617
7625
|
var require_line_counter = __commonJS({
|
|
7618
|
-
"
|
|
7626
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/line-counter.js"(exports) {
|
|
7619
7627
|
"use strict";
|
|
7620
7628
|
var LineCounter = class {
|
|
7621
7629
|
constructor() {
|
|
@@ -7644,9 +7652,9 @@ var require_line_counter = __commonJS({
|
|
|
7644
7652
|
}
|
|
7645
7653
|
});
|
|
7646
7654
|
|
|
7647
|
-
//
|
|
7655
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/parser.js
|
|
7648
7656
|
var require_parser = __commonJS({
|
|
7649
|
-
"
|
|
7657
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/parser.js"(exports) {
|
|
7650
7658
|
"use strict";
|
|
7651
7659
|
var node_process = __require("process");
|
|
7652
7660
|
var cst = require_cst();
|
|
@@ -8518,9 +8526,9 @@ var require_parser = __commonJS({
|
|
|
8518
8526
|
}
|
|
8519
8527
|
});
|
|
8520
8528
|
|
|
8521
|
-
//
|
|
8529
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/public-api.js
|
|
8522
8530
|
var require_public_api = __commonJS({
|
|
8523
|
-
"
|
|
8531
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/public-api.js"(exports) {
|
|
8524
8532
|
"use strict";
|
|
8525
8533
|
var composer = require_composer();
|
|
8526
8534
|
var Document = require_Document();
|
|
@@ -8615,9 +8623,9 @@ var require_public_api = __commonJS({
|
|
|
8615
8623
|
}
|
|
8616
8624
|
});
|
|
8617
8625
|
|
|
8618
|
-
//
|
|
8626
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/index.js
|
|
8619
8627
|
var require_dist = __commonJS({
|
|
8620
|
-
"
|
|
8628
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/index.js"(exports) {
|
|
8621
8629
|
"use strict";
|
|
8622
8630
|
var composer = require_composer();
|
|
8623
8631
|
var Document = require_Document();
|
|
@@ -11278,7 +11286,7 @@ async function call(path2, v, init = {}) {
|
|
|
11278
11286
|
"x-ghosty-ts": ts,
|
|
11279
11287
|
"x-ghosty-sig": sig,
|
|
11280
11288
|
"content-type": "application/json",
|
|
11281
|
-
"user-agent": `ghosty-cli/${"0.
|
|
11289
|
+
"user-agent": `ghosty-cli/${"0.96.0"}`
|
|
11282
11290
|
},
|
|
11283
11291
|
body: method === "GET" ? void 0 : raw
|
|
11284
11292
|
});
|
|
@@ -14010,6 +14018,7 @@ var HELPS_ES = {
|
|
|
14010
14018
|
["--add-pack", "pin: ya usas tus lugares \u2014 suma 3 m\xE1s (mismo periodo y moneda de tu suscripci\xF3n) y fija \xE9ste"],
|
|
14011
14019
|
["--cancel / --resume", "pins: cancela al final del periodo (los sitios vuelven a Gratis con aviso), o lo deshace"],
|
|
14012
14020
|
["--days N", "search: la ventana de Search Console en d\xEDas (default 28; Google reporta con 2\u20133 d\xEDas de retraso)"],
|
|
14021
|
+
["--since S / --kind K / --req-id ID", "errors: ventana (30m, 6h, 7d; default 24h), un tipo de evento, o todo lo de una petici\xF3n (su x-request-id)"],
|
|
14013
14022
|
["--title T", "publish: el nombre del sitio (default: el <title> del HTML o el nombre de la carpeta)"],
|
|
14014
14023
|
["--slug S", "publish: el slug de un sitio NUEVO (a-z, 0-9 y guiones, 3\u201360, no reservado)"],
|
|
14015
14024
|
["--site X", "publish: actualiza ese sitio de la casa (slug, id o URL) en vez de crear uno"]
|
|
@@ -14018,7 +14027,10 @@ var HELPS_ES = {
|
|
|
14018
14027
|
"pin: con lugar libre lo fija al momento; sin suscripci\xF3n imprime una liga de pago con tarjeta (queda fijo al pagar); con todos los lugares ocupados contesta needs_pack (repite con --add-pack).",
|
|
14019
14028
|
"unpin, cancelar o un pago fallido nunca pausan de golpe: el sitio vuelve a la regla Gratis (30 d\xEDas desde su \xFAltimo cambio, m\xEDnimo 8 desde hoy, aviso 7 d\xEDas antes).",
|
|
14020
14029
|
"Una carpeta necesita index.html en la ra\xEDz; se saltan ocultos y node_modules. Topes: 1 MB por archivo, 8 MB y 40 archivos por sitio.",
|
|
14021
|
-
"Errores de slug: slug_invalid, slug_taken, slug_unsupported (exit 1, no cambia nada)."
|
|
14030
|
+
"Errores de slug: slug_invalid, slug_taken, slug_unsupported (exit 1, no cambia nada).",
|
|
14031
|
+
"show: lo mismo que la p\xE1gina del sitio (/c/sitios/<slug>): un solo estado de la app (Lista / Arrancando\u2026 / Dormida / Fall\xF3), dominios, NOMBRES de las variables (los valores nunca regresan), base, archivos, tareas, y correo/IA s\xF3lo si la app los us\xF3. Nunca despierta la app.",
|
|
14032
|
+
"errors: los errores del servidor y del navegador de una app, agrupados por mensaje con su conteo y las migas del m\xE1s reciente (lo mismo que la tool app_errors). La app los manda con /apps/sdk/errors.mjs.",
|
|
14033
|
+
"env/cron/files: s\xF3lo apps con backend. env set reinicia la app sin rebuild si su caja existe. Las tareas nuevas las crea el agente (app_cron); aqu\xED se pausan, reanudan o borran."
|
|
14022
14034
|
]
|
|
14023
14035
|
},
|
|
14024
14036
|
access: {
|
|
@@ -14127,6 +14139,7 @@ var HELPS_ES = {
|
|
|
14127
14139
|
"rooms connect revisa que TU instalaci\xF3n de la GitHub App vea el repo (si no, te da la liga para darle acceso) y dice qu\xE9 tan listo est\xE1 para agentes (niveles 1\u20133 y lo que falta). Cualquier miembro puede conectar; desconectar, quien lo conect\xF3 o el due\xF1o. Queda en bit\xE1cora (factory.room_connect / factory.room_disconnect).",
|
|
14128
14140
|
"run publica \xAB@plan <tu texto>\xBB en el room A TU NOMBRE, como si lo escribieras en Teams: el mismo plan, firmas y tarjeta. Escr\xEDbelo como ticket: el objetivo, por qu\xE9 y c\xF3mo se sabe que qued\xF3. Cualquier miembro puede pedir, firmar, pedir cambios y mergear; todo queda en bit\xE1cora (factory.run, factory.run_approve\u2026).",
|
|
14129
14141
|
"card baja la tarjeta viva del pedido al final de su hilo; la anterior queda como huella quieta con liga a la viva. Los roles tambi\xE9n pueden (factory_card).",
|
|
14142
|
+
"resume|stop|cancel: lo que ofrece la tarjeta de un pedido que dej\xF3 de avanzar \u2014 su rol sigue donde se qued\xF3, detener el turno que corre ahora o cancelar el pedido. Cualquier miembro; staff de Ghosty tambi\xE9n en espacios donde no es miembro (s\xF3lo esto, nunca firmar ni mergear). Queda en bit\xE1cora (factory.run_resume\u2026).",
|
|
14130
14143
|
"Leer pide ser miembro del espacio; renombrar, ser due\xF1o, admin o staff de Ghosty, y queda en bit\xE1cora (factory.run_rename). La tarjeta del room toma el t\xEDtulo nuevo en su siguiente refresco.",
|
|
14131
14144
|
"Qui\xE9n es @plan o @build: ghosty agents ls --handle plan --workspace SLUG.",
|
|
14132
14145
|
"stats: pedidos, % mezclados, mediana de minutos hasta el PR y hasta el merge, vueltas @check\u2192@build y CI rojo por pedido, y costo por pedido y por PR mezclado. El costo incluye el primer turno de @plan en el hilo, antes de que naciera el pedido.",
|
|
@@ -15022,6 +15035,11 @@ HELPS.sites = {
|
|
|
15022
15035
|
summary: "Sites your agents publish at <slug>.ghosty.page. On the Free plan a site PAUSES after 30 days without changes (nothing is deleted; it comes back as-is when pinned). \xABPinned sites\xBB ($49 USD/yr or $5 USD/mo \u2014 $990 / $99 MXN \u2014 includes up to 3 sites; add 3 more for the same price) never pause and carry no \xABMade with Ghosty\xBB banner. Staff also publish Ghosty's own house sites and change any site's slug.",
|
|
15023
15036
|
usage: [
|
|
15024
15037
|
"ghosty sites ls [--house]",
|
|
15038
|
+
"ghosty sites show <slug|id>",
|
|
15039
|
+
"ghosty sites env [ls] <slug> \xB7 env set <slug> NAME=value [NAME=value\u2026] \xB7 env rm <slug> NAME",
|
|
15040
|
+
"ghosty sites cron [ls] <slug> \xB7 cron pause|resume|rm <slug> <id>",
|
|
15041
|
+
"ghosty sites files [ls] <slug> \xB7 files rm <slug> <id>",
|
|
15042
|
+
"ghosty sites errors <slug> [--since 24h] [--kind server_error|client_error|request|build] [--req-id ID]",
|
|
15025
15043
|
"ghosty sites pin <slug|id> [--interval year|month] [--currency usd|mxn] [--add-pack]",
|
|
15026
15044
|
"ghosty sites unpin <slug|id>",
|
|
15027
15045
|
"ghosty sites pins [--cancel | --resume]",
|
|
@@ -15036,16 +15054,19 @@ HELPS.sites = {
|
|
|
15036
15054
|
["--add-pack", "pin: you already use your slots \u2014 add 3 more (same period and currency as your subscription) and pin this one"],
|
|
15037
15055
|
["--cancel / --resume", "pins: cancel at period end (sites go back to Free with notice), or undo it"],
|
|
15038
15056
|
["--days N", "search: Search Console window in days (default 28; Google reports 2\u20133 days late)"],
|
|
15057
|
+
["--since S / --kind K / --req-id ID", "errors: window (30m, 6h, 7d; default 24h), one event kind, or everything from one request (its x-request-id)"],
|
|
15039
15058
|
["--title T", "publish: the site's name (default: the HTML <title> or the folder name)"],
|
|
15040
15059
|
["--slug S", "publish: the slug for a NEW site (a-z, 0-9 and hyphens, 3\u201360, not reserved)"],
|
|
15041
15060
|
["--site X", "publish: update that house site (slug, id or URL) instead of creating one"]
|
|
15042
15061
|
],
|
|
15043
|
-
examples: ["ghosty sites pin tacos-don-pepe", "ghosty sites pin tacos-don-pepe --interval month --currency mxn", "ghosty sites unpin landing-vieja", "ghosty sites pins --cancel", "ghosty sites publish ./landing/ --site gelatina-de-sandia"],
|
|
15062
|
+
examples: ["ghosty sites show agenda-perdix", "ghosty sites env set agenda-perdix STRIPE_SECRET_KEY=sk_live_\u2026", "ghosty sites cron pause agenda-perdix cm123", "ghosty sites pin tacos-don-pepe", "ghosty sites pin tacos-don-pepe --interval month --currency mxn", "ghosty sites unpin landing-vieja", "ghosty sites pins --cancel", "ghosty sites publish ./landing/ --site gelatina-de-sandia"],
|
|
15044
15063
|
notes: [
|
|
15045
15064
|
"pin: with a free slot it pins right away; without a subscription it prints a card-payment link (the site is pinned when you pay); with every slot used it answers needs_pack (repeat with --add-pack).",
|
|
15046
15065
|
"unpin, cancelling, or a failed payment never pause a site at once: it goes back to the Free rule (30 days since its last change, at least 8 from today, notice 7 days before).",
|
|
15047
15066
|
"A folder needs index.html at its root; hidden files and node_modules are skipped. Limits: 1 MB per file, 8 MB and 40 files per site.",
|
|
15048
|
-
"Slug errors: slug_invalid, slug_taken, slug_unsupported (exit 1, nothing changes)."
|
|
15067
|
+
"Slug errors: slug_invalid, slug_taken, slug_unsupported (exit 1, nothing changes).",
|
|
15068
|
+
"show: the same as the site's page (/c/sitios/<slug>): one app status (Ready / Starting\u2026 / Asleep / Failed), domains, variable NAMES (values never come back), database, files, tasks, and email/AI only if the app used them. It never wakes the app.",
|
|
15069
|
+
"env/cron/files: apps with a backend only. env set restarts the app without a rebuild when its box exists. New tasks are created by the agent (app_cron); here you pause, resume or delete them."
|
|
15049
15070
|
],
|
|
15050
15071
|
learn: `${REF}#sitios`
|
|
15051
15072
|
};
|
|
@@ -15121,6 +15142,7 @@ HELPS.factory = {
|
|
|
15121
15142
|
"ghosty factory env ls [OWNER/REPO] [--workspace SLUG]",
|
|
15122
15143
|
"ghosty factory env push [OWNER/REPO] [FILE] [--gen KEY,KEY] [--replace] [--yes] [--workspace SLUG]",
|
|
15123
15144
|
"ghosty factory runs recheck <run> [--yes] [--workspace SLUG]",
|
|
15145
|
+
"ghosty factory runs resume|stop|cancel <run> [--yes] [--workspace SLUG]",
|
|
15124
15146
|
"ghosty factory runs choose <run> [a|b|c] [--yes] [--workspace SLUG]",
|
|
15125
15147
|
`ghosty factory run "What, why and how we know it's done" --repo OWNER/REPO [--room R] [--wait] [--timeout 1800] [--workspace SLUG]`,
|
|
15126
15148
|
"ghosty factory runs watch <run> | --thread <id> [--timeout 1800] [--workspace SLUG]",
|
|
@@ -15161,7 +15183,7 @@ HELPS.factory = {
|
|
|
15161
15183
|
["--yes", "rename, approve, changes, merge: skip the confirmation (required without a terminal)"]
|
|
15162
15184
|
],
|
|
15163
15185
|
examples: ["ghosty factory rooms connect blissito/ghosty-studio --room studio --create --workspace business", 'ghosty factory run "Add a COLLABORATOR role: invited by room, lands in the room, no personal agent. Done when an invite to #factory logs in straight there" --repo blissito/ghosty-studio --wait --workspace business', "ghosty factory runs approve 31 --plan-version 2 --workspace business", "ghosty factory runs watch 31 --workspace business", "ghosty factory runs merge 31 --workspace business", "ghosty factory runs ls --workspace business --room mailmask", "ghosty factory runs show 15 --workspace business", "ghosty factory runs show 13 --timing --workspace mercadito-verde", "ghosty factory runs why 13 --workspace mercadito-verde", "ghosty factory runs advise 115 --workspace business", "ghosty factory runs stats --since 7d --workspace mercadito-verde", 'ghosty factory runs rename 15 "Docs del CLI al d\xEDa" --workspace business --dry-run'],
|
|
15164
|
-
notes: ["env: the preview's environment variables live on your computer, so your terminal agent pushes them. ls lists saved and missing names (from .env.example and from runs escalated because the preview won't start); push adds them (only the workspace owner). Use disposable values, never production: the preview runs the repo's code. Values never come back. Then runs recheck <run>: @check reviews the same PR again without another @build loop. Logged as factory.env_set and factory.run_recheck.", "sprints: when the goal is too big for one run, @plan proposes a sprint (3\u20138 tickets in order, with dependencies) as a draft. approve signs every included ticket at once; they start one at a time as their dependencies merge. Only the owner or whoever asked can approve. Logged as factory.sprint_approve.", "rooms repos lists the repos your GitHub App sees (most recent first) and which rooms each one is already in.", "rooms connect checks that YOUR GitHub App installation sees the repo (if not, it gives you the link to grant access) and tells you how ready the repo is for agents (levels 1\u20133 and what's missing). Any member can connect; only whoever connected it, or the owner, can disconnect. Logged as factory.room_connect / factory.room_disconnect.", "run posts \xAB@plan <your text>\xBB in the room under YOUR name, like typing it in Teams: the same plan, approvals and card. Write it like a ticket: the goal, why, and how you'll know it's done. Any member can run, approve, ask for changes and merge; each one is logged (factory.run, factory.run_approve\u2026).", "card brings the run's live card down to the bottom of its thread; the old one stays as a still footprint linking to the live one. The roles can do it too (factory_card).", "Reading needs membership in the workspace; rename needs owner, admin or Ghosty staff, and is logged (factory.run_rename). The room's card picks the new title up on its next refresh.", "Who is @plan or @build: ghosty agents ls --handle plan --workspace SLUG.", "stats: runs, % merged, median minutes to PR and to merge, @check\u2192@build loops and red CI per run, and cost per run and per merged PR. The cost counts @plan's first turn in the thread, before the run existed.", "--timing reads each role's transcript: engines without one (ACP) show minutes and cost but no commands. It also lists stuck patterns: a command open 8+ min, the same command 4 times, the same error 3 times, going back and forth, or apt install inside a box.", "why: if the run wasn't healthy (stuck patterns, @build over 30 min, loops, red CI, escalated), a category (missing_service, unresolved_build_or_tests, fixed_strategy\u2026), the critical step with its evidence and what to change next time. First it checks the approved plan's criteria against the evidence: approved without the preview a criterion asked for, merged without preview, smoke failed on the merged commit, or a CI criterion with CI none \u2192 approved_unmet_criterion, above any stuck pattern. A healthy run doesn't call the model. When a run closes unhealthy, the room gets this summary in its thread.", "advise: for an ESCALATED run, what to do \u2014 let @build fix it or redo the plan \u2014 with the note for @build point by point (each one cites the finding or plan step behind it) and what @check should review. It compares @check's findings against the signed plan. Nothing is applied: it prints the exact approve/changes command. show tells you why it was escalated.", "While a role works, if it gets stuck the room gets a \u23F3 message in the thread and the role is told what to check; from the second time in the same run, whoever asked gets a push.", "choose: when @check escalates a decision it leaves 2\u20133 concrete paths (a, b, c), each one an action: build (@build does it on the branch), recheck, replan, close, merge_as_is or fix_main (opens a separate run that fixes the main branch; this run waits without counting as \xAByour turn\xBB and is updated and re-reviewed on its own when the fix merges). Without a letter it lists them; with one it applies it and the choice reaches the next role word for word. merge_as_is merges with CI as it is (red checks included): use it when what's red isn't caused by the PR; it asks for confirmation and is logged (merge_override). show lists the options too."],
|
|
15186
|
+
notes: ["env: the preview's environment variables live on your computer, so your terminal agent pushes them. ls lists saved and missing names (from .env.example and from runs escalated because the preview won't start); push adds them (only the workspace owner). Use disposable values, never production: the preview runs the repo's code. Values never come back. Then runs recheck <run>: @check reviews the same PR again without another @build loop. Logged as factory.env_set and factory.run_recheck.", "sprints: when the goal is too big for one run, @plan proposes a sprint (3\u20138 tickets in order, with dependencies) as a draft. approve signs every included ticket at once; they start one at a time as their dependencies merge. Only the owner or whoever asked can approve. Logged as factory.sprint_approve.", "rooms repos lists the repos your GitHub App sees (most recent first) and which rooms each one is already in.", "rooms connect checks that YOUR GitHub App installation sees the repo (if not, it gives you the link to grant access) and tells you how ready the repo is for agents (levels 1\u20133 and what's missing). Any member can connect; only whoever connected it, or the owner, can disconnect. Logged as factory.room_connect / factory.room_disconnect.", "run posts \xAB@plan <your text>\xBB in the room under YOUR name, like typing it in Teams: the same plan, approvals and card. Write it like a ticket: the goal, why, and how you'll know it's done. Any member can run, approve, ask for changes and merge; each one is logged (factory.run, factory.run_approve\u2026).", "card brings the run's live card down to the bottom of its thread; the old one stays as a still footprint linking to the live one. The roles can do it too (factory_card).", "resume|stop|cancel: what the card offers for a run that stopped moving \u2014 its role picks up where it left off, stop the turn running now, or cancel the run. Any member; Ghosty staff too, even in a workspace they're not a member of (only these, never approve or merge). Logged (factory.run_resume\u2026).", "Reading needs membership in the workspace; rename needs owner, admin or Ghosty staff, and is logged (factory.run_rename). The room's card picks the new title up on its next refresh.", "Who is @plan or @build: ghosty agents ls --handle plan --workspace SLUG.", "stats: runs, % merged, median minutes to PR and to merge, @check\u2192@build loops and red CI per run, and cost per run and per merged PR. The cost counts @plan's first turn in the thread, before the run existed.", "--timing reads each role's transcript: engines without one (ACP) show minutes and cost but no commands. It also lists stuck patterns: a command open 8+ min, the same command 4 times, the same error 3 times, going back and forth, or apt install inside a box.", "why: if the run wasn't healthy (stuck patterns, @build over 30 min, loops, red CI, escalated), a category (missing_service, unresolved_build_or_tests, fixed_strategy\u2026), the critical step with its evidence and what to change next time. First it checks the approved plan's criteria against the evidence: approved without the preview a criterion asked for, merged without preview, smoke failed on the merged commit, or a CI criterion with CI none \u2192 approved_unmet_criterion, above any stuck pattern. A healthy run doesn't call the model. When a run closes unhealthy, the room gets this summary in its thread.", "advise: for an ESCALATED run, what to do \u2014 let @build fix it or redo the plan \u2014 with the note for @build point by point (each one cites the finding or plan step behind it) and what @check should review. It compares @check's findings against the signed plan. Nothing is applied: it prints the exact approve/changes command. show tells you why it was escalated.", "While a role works, if it gets stuck the room gets a \u23F3 message in the thread and the role is told what to check; from the second time in the same run, whoever asked gets a push.", "choose: when @check escalates a decision it leaves 2\u20133 concrete paths (a, b, c), each one an action: build (@build does it on the branch), recheck, replan, close, merge_as_is or fix_main (opens a separate run that fixes the main branch; this run waits without counting as \xAByour turn\xBB and is updated and re-reviewed on its own when the fix merges). Without a letter it lists them; with one it applies it and the choice reaches the next role word for word. merge_as_is merges with CI as it is (red checks included): use it when what's red isn't caused by the PR; it asks for confirmation and is logged (merge_override). show lists the options too."],
|
|
15165
15187
|
learn: `${REF}#fabrica`
|
|
15166
15188
|
};
|
|
15167
15189
|
function helpText(cmd) {
|
|
@@ -15731,8 +15753,8 @@ var PACK = { year: { usd: 49, mxn: 990 }, month: { usd: 5, mxn: 99 } };
|
|
|
15731
15753
|
var packPrice = (c, i, lang2) => `$${(PACK[i]?.[c] ?? 0).toLocaleString("en-US")} ${c.toUpperCase()}${lang2 === "es" ? i === "year" ? " al a\xF1o" : " al mes" : i === "year" ? "/yr" : "/mo"}`;
|
|
15732
15754
|
var kb = (n) => n ? `${Math.max(1, Math.round(n / 1024))} KB` : "";
|
|
15733
15755
|
var day = (iso) => iso ? iso.slice(0, 10) : "";
|
|
15734
|
-
async function sitesCmd(sub, a1, a2, v, a3) {
|
|
15735
|
-
const ex = "ghosty sites ls [--house] \xB7 pin|unpin <slug|id> \xB7 pins [--cancel|--resume] \xB7 search <slug|id> [--days 28] \xB7 domain [ls|add|verify|rm] <slug> [domain] \xB7 publish <file.html|folder> [--title T] [--slug S] [--site <slug|id>] \xB7 slug <slug|id> <new-slug>";
|
|
15756
|
+
async function sitesCmd(sub, a1, a2, v, a3, rest = []) {
|
|
15757
|
+
const ex = "ghosty sites ls [--house] \xB7 show <slug|id> \xB7 env|cron|files \u2026 \xB7 errors <slug> [--since 24h] [--kind K] [--req-id ID] \xB7 pin|unpin <slug|id> \xB7 pins [--cancel|--resume] \xB7 search <slug|id> [--days 28] \xB7 domain [ls|add|verify|rm] <slug> [domain] \xB7 publish <file.html|folder> [--title T] [--slug S] [--site <slug|id>] \xB7 slug <slug|id> <new-slug>";
|
|
15736
15758
|
switch (sub ?? "ls") {
|
|
15737
15759
|
case "ls":
|
|
15738
15760
|
case "list": {
|
|
@@ -15792,6 +15814,31 @@ ${table(r.pinned.map((p) => ({ slug: p.slug, title: (p.title ?? "").slice(0, 40)
|
|
|
15792
15814
|
case "domain":
|
|
15793
15815
|
case "domains":
|
|
15794
15816
|
return domainCmd(a1, a2, a3);
|
|
15817
|
+
case "show":
|
|
15818
|
+
case "get": {
|
|
15819
|
+
if (!a1) throw usage(t("Missing the site (slug, id or URL).", "Falta el sitio (slug, id o URL)."), "ghosty sites show <slug|id>");
|
|
15820
|
+
const r = await api(`/api/v2/sites/${encodeURIComponent(a1)}/detail`);
|
|
15821
|
+
return out(r, () => showLines(r, t("en", "es") === "es" ? "es" : "en"));
|
|
15822
|
+
}
|
|
15823
|
+
case "env":
|
|
15824
|
+
case "vars":
|
|
15825
|
+
return envCmd(a1, a2, a3 === void 0 ? [] : [a3, ...rest]);
|
|
15826
|
+
case "cron":
|
|
15827
|
+
case "crons":
|
|
15828
|
+
case "tasks":
|
|
15829
|
+
return cronCmd(a1, a2, a3);
|
|
15830
|
+
case "files":
|
|
15831
|
+
return filesCmd2(a1, a2, a3);
|
|
15832
|
+
case "errors":
|
|
15833
|
+
case "errores": {
|
|
15834
|
+
if (!a1) throw usage(t("Missing the app (slug, id or URL).", "Falta la app (slug, id o URL)."), "ghosty sites errors <slug> [--since 24h] [--kind server_error|client_error|request|build] [--req-id ID]");
|
|
15835
|
+
const q = new URLSearchParams();
|
|
15836
|
+
if (v.since) q.set("since", v.since);
|
|
15837
|
+
if (v.kind) q.set("kind", v.kind);
|
|
15838
|
+
if (v["req-id"]) q.set("req_id", v["req-id"]);
|
|
15839
|
+
const r = await api(`/api/v2/sites/${encodeURIComponent(a1)}/errors${q.size ? `?${q}` : ""}`);
|
|
15840
|
+
return out(r, () => errorsLines(r, t("en", "es") === "es" ? "es" : "en"));
|
|
15841
|
+
}
|
|
15795
15842
|
case "publish":
|
|
15796
15843
|
case "deploy": {
|
|
15797
15844
|
if (!a1) throw usage(t("Missing the file or folder.", "Falta el archivo o la carpeta."), ex);
|
|
@@ -15853,6 +15900,120 @@ ${table(r2.domains.map((d) => ({ domain: d.host, state: d.verified ? t("verified
|
|
|
15853
15900
|
return out(r, () => `${r.verified ? lavender("\u2713") : dim("\u2026")} ${bold(r.host)}
|
|
15854
15901
|
${domainLine(r, t("en", "es") === "es" ? "es" : "en").replace("<slug>", slug)}`);
|
|
15855
15902
|
}
|
|
15903
|
+
function wakeLine(w, lang2 = "es", now = Date.now()) {
|
|
15904
|
+
const secs = w.startedAt ? Math.max(0, Math.round((now - Date.parse(w.startedAt)) / 1e3)) : null;
|
|
15905
|
+
if (w.phase === "ready") return lang2 === "es" ? "Lista" : "Ready";
|
|
15906
|
+
if (w.phase === "starting") return (lang2 === "es" ? "Arrancando\u2026" : "Starting\u2026") + (secs == null ? "" : ` ${secs} s`);
|
|
15907
|
+
if (w.phase === "failed") return (lang2 === "es" ? "Fall\xF3" : "Failed") + (w.error ? `: ${w.error}` : "");
|
|
15908
|
+
return lang2 === "es" ? "Dormida" : "Asleep";
|
|
15909
|
+
}
|
|
15910
|
+
function showLines(r, lang2 = "es") {
|
|
15911
|
+
const es = lang2 === "es";
|
|
15912
|
+
const s2 = r.site;
|
|
15913
|
+
const a = r.app;
|
|
15914
|
+
const kind = s2.isApp ? es ? "app con servidor" : "app with a server" : es ? "p\xE1gina est\xE1tica" : "static page";
|
|
15915
|
+
const lines = [`${s2.title} \xB7 ${s2.url}`, `${es ? "estado" : "status"}: ${s2.pinned ? es ? "fijado" : "pinned" : s2.status} \xB7 ${kind}`];
|
|
15916
|
+
if (s2.wake) lines.push(`${es ? "app" : "app"}: ${wakeLine(s2.wake, lang2)}`);
|
|
15917
|
+
if (s2.repo) lines.push(`repo: ${s2.repo}${s2.commit ? ` \xB7 ${s2.commit}` : ""}`);
|
|
15918
|
+
if (s2.deploying) lines.push(es ? "publicando una versi\xF3n nueva\u2026" : "publishing a new version\u2026");
|
|
15919
|
+
lines.push(`${es ? "dominios" : "domains"}: ${r.domains.list.length ? r.domains.list.map((d) => `${d.host}${d.verified ? "" : es ? " (falta DNS)" : " (DNS missing)"}`).join(", ") : "\u2014"}`);
|
|
15920
|
+
if (a) {
|
|
15921
|
+
lines.push(`${es ? "variables" : "variables"}: ${a.envNames.length ? a.envNames.join(", ") : "\u2014"}`);
|
|
15922
|
+
lines.push(`${es ? "base" : "database"}: ${a.database ? `${a.database.name} (${a.database.tables.join(", ") || "\u2014"})` : "\u2014"}`);
|
|
15923
|
+
lines.push(`${es ? "archivos" : "files"}: ${a.files.usage.files}/${a.files.usage.maxFiles}`);
|
|
15924
|
+
lines.push(`${es ? "tareas" : "tasks"}: ${a.crons.length ? a.crons.map((c) => `${c.path} (${c.when}${c.paused ? es ? ", en pausa" : ", paused" : ""})`).join(", ") : "\u2014"}`);
|
|
15925
|
+
if (r.tabs.includes("correo")) lines.push(`${es ? "correo" : "email"}: ${a.email.sentToday}/${a.email.cap} ${es ? "en 24 h" : "in 24 h"}`);
|
|
15926
|
+
if (r.tabs.includes("ia")) lines.push(`${es ? "IA" : "AI"}: ${a.ai.callsToday}/${a.ai.callsCap} ${es ? "hoy" : "today"}`);
|
|
15927
|
+
}
|
|
15928
|
+
return lines.join("\n");
|
|
15929
|
+
}
|
|
15930
|
+
function parseEnvPairs(pairs) {
|
|
15931
|
+
const set = {};
|
|
15932
|
+
for (const p of pairs) {
|
|
15933
|
+
const i = p.indexOf("=");
|
|
15934
|
+
if (i <= 0) throw usage(t(`Expected NAME=value, got \xAB${p}\xBB.`, `Se esperaba NOMBRE=valor y lleg\xF3 \xAB${p}\xBB.`), "ghosty sites env set <slug> NAME=value [NAME=value\u2026]");
|
|
15935
|
+
set[p.slice(0, i).trim()] = p.slice(i + 1);
|
|
15936
|
+
}
|
|
15937
|
+
return set;
|
|
15938
|
+
}
|
|
15939
|
+
var ACTS = /* @__PURE__ */ new Set(["ls", "list", "set", "add", "rm", "remove", "pause", "resume"]);
|
|
15940
|
+
var splitAct = (action, a2, a3) => action && !ACTS.has(action) ? ["ls", action, a2] : [action ?? "ls", a2, a3];
|
|
15941
|
+
async function envCmd(action, a2, rest) {
|
|
15942
|
+
const ex = "ghosty sites env [ls] <slug> \xB7 set <slug> NAME=value\u2026 \xB7 rm <slug> NAME";
|
|
15943
|
+
const isAct = !!action && ACTS.has(action);
|
|
15944
|
+
const act = isAct ? action : "ls";
|
|
15945
|
+
const slug = isAct ? a2 : action;
|
|
15946
|
+
const args = isAct ? rest : [];
|
|
15947
|
+
if (!slug) throw usage(t("Missing the app (slug, id or URL).", "Falta la app (slug, id o URL)."), ex);
|
|
15948
|
+
const path2 = `/api/v2/sites/${encodeURIComponent(slug)}/env`;
|
|
15949
|
+
const names2 = (r) => r.names.length ? r.names.join("\n") : dim(t("No variables.", "Sin variables."));
|
|
15950
|
+
if (act === "ls" || act === "list") {
|
|
15951
|
+
const r = await api(path2);
|
|
15952
|
+
return out(r, () => `${bold(r.slug)} ${dim(t("(names only; values never leave the vault)", "(s\xF3lo nombres; los valores nunca salen de la b\xF3veda)"))}
|
|
15953
|
+
${names2(r)}`);
|
|
15954
|
+
}
|
|
15955
|
+
if (act === "set" || act === "add") {
|
|
15956
|
+
if (!args.length) throw usage(t("Missing NAME=value.", "Falta NOMBRE=valor."), ex);
|
|
15957
|
+
const r = await api(path2, { method: "POST", body: { set: parseEnvPairs(args) } });
|
|
15958
|
+
return out(r, () => `${lavender("\u2713")} ${r.restarted ? t("Saved: the app is already running with it.", "Guardada: la app ya corre con ella.") : t("Saved: it applies the next time the app starts.", "Guardada: entra la pr\xF3xima vez que la app arranque.")}
|
|
15959
|
+
${names2(r)}`);
|
|
15960
|
+
}
|
|
15961
|
+
if (act === "rm" || act === "remove") {
|
|
15962
|
+
if (!args[0]) throw usage(t("Missing the variable name.", "Falta el nombre de la variable."), ex);
|
|
15963
|
+
const r = await api(path2, { method: "DELETE", body: { name: args[0] } });
|
|
15964
|
+
return out(r, () => `${lavender("\u2713")} ${t("Deleted", "Borrada")} ${bold(args[0])}`);
|
|
15965
|
+
}
|
|
15966
|
+
throw usage(t(`Unknown env action: ${act}.`, `Acci\xF3n de env desconocida: ${act}.`), ex);
|
|
15967
|
+
}
|
|
15968
|
+
async function cronCmd(action, a2, a3) {
|
|
15969
|
+
const ex = "ghosty sites cron [ls] <slug> \xB7 pause|resume|rm <slug> <id>";
|
|
15970
|
+
const [act, slug, id] = splitAct(action, a2, a3);
|
|
15971
|
+
if (!slug) throw usage(t("Missing the app (slug, id or URL).", "Falta la app (slug, id o URL)."), ex);
|
|
15972
|
+
const path2 = `/api/v2/sites/${encodeURIComponent(slug)}/crons`;
|
|
15973
|
+
if (act === "ls" || act === "list") {
|
|
15974
|
+
const r2 = await api(path2);
|
|
15975
|
+
return out(r2, () => r2.tareas.length ? table(r2.tareas.map((c) => ({ id: c.id, path: c.path, when: c.cuando, state: c.estado, next: day(c.siguiente) })), ["id", "path", "when", "state", "next"]) : t("The app has no scheduled tasks.", "La app no tiene tareas programadas."));
|
|
15976
|
+
}
|
|
15977
|
+
if (act !== "pause" && act !== "resume" && act !== "rm" && act !== "remove") throw usage(t(`Unknown cron action: ${act}.`, `Acci\xF3n de cron desconocida: ${act}.`), ex);
|
|
15978
|
+
if (!id) throw usage(t("Missing the task id (see: ghosty sites cron ls <slug>).", "Falta el id de la tarea (m\xEDralo con: ghosty sites cron ls <slug>)."), ex);
|
|
15979
|
+
const r = await api(path2, { method: "POST", body: { id, action: act === "remove" ? "rm" : act } });
|
|
15980
|
+
const done = act === "pause" ? t("Paused", "En pausa") : act === "resume" ? t("Resumed", "Reanudada") : t("Deleted", "Borrada");
|
|
15981
|
+
return out(r, () => `${lavender("\u2713")} ${done} ${bold(id)}`);
|
|
15982
|
+
}
|
|
15983
|
+
async function filesCmd2(action, a2, a3) {
|
|
15984
|
+
const ex = "ghosty sites files [ls] <slug> \xB7 rm <slug> <id>";
|
|
15985
|
+
const [act, slug, id] = splitAct(action, a2, a3);
|
|
15986
|
+
if (!slug) throw usage(t("Missing the app (slug, id or URL).", "Falta la app (slug, id o URL)."), ex);
|
|
15987
|
+
const path2 = `/api/v2/sites/${encodeURIComponent(slug)}/files`;
|
|
15988
|
+
if (act === "ls" || act === "list") {
|
|
15989
|
+
const r2 = await api(path2);
|
|
15990
|
+
return out(
|
|
15991
|
+
r2,
|
|
15992
|
+
() => `${bold(r2.slug)} ${dim(`${r2.usage.files}/${r2.usage.maxFiles} \xB7 ${kb(r2.usage.bytes) || "0 KB"}`)}
|
|
15993
|
+
` + (r2.files.length ? table(r2.files.map((f) => ({ id: f.id, name: f.name.slice(0, 40), access: f.uploaded ? f.access : t("uploading", "subiendo"), size: kb(f.size), date: day(f.createdAt) })), ["id", "name", "access", "size", "date"]) : t("The app doesn't store files yet.", "La app todav\xEDa no guarda archivos."))
|
|
15994
|
+
);
|
|
15995
|
+
}
|
|
15996
|
+
if (act !== "rm" && act !== "remove") throw usage(t(`Unknown files action: ${act}.`, `Acci\xF3n de files desconocida: ${act}.`), ex);
|
|
15997
|
+
if (!id) throw usage(t("Missing the file id (see: ghosty sites files ls <slug>).", "Falta el id del archivo (m\xEDralo con: ghosty sites files ls <slug>)."), ex);
|
|
15998
|
+
const r = await api(path2, { method: "DELETE", body: { id } });
|
|
15999
|
+
return out(r, () => `${lavender("\u2713")} ${t("Deleted", "Borrado")} ${bold(r.id)}`);
|
|
16000
|
+
}
|
|
16001
|
+
function errorsLines(r, lang2 = "es") {
|
|
16002
|
+
const es = lang2 === "es";
|
|
16003
|
+
const time = (iso) => iso.slice(5, 16).replace("T", " ");
|
|
16004
|
+
if ("events" in r) {
|
|
16005
|
+
if (!r.events.length) return es ? `Sin eventos de la petici\xF3n ${r.reqId}.` : `No events for request ${r.reqId}.`;
|
|
16006
|
+
return [`${bold(r.slug)} ${dim(`x-request-id ${r.reqId}`)}`, ...r.events.map((e) => `${time(e.at)} ${e.kind} ${e.message}${e.path ? dim(` ${e.path}`) : ""}`)].join("\n");
|
|
16007
|
+
}
|
|
16008
|
+
if (!r.groups.length) return es ? `${r.slug}: sin errores desde ${time(r.since)} UTC.` : `${r.slug}: no errors since ${time(r.since)} UTC.`;
|
|
16009
|
+
const lines = [`${bold(r.slug)} ${dim(es ? `${r.total} eventos desde ${time(r.since)} UTC` : `${r.total} events since ${time(r.since)} UTC`)}`];
|
|
16010
|
+
for (const g of r.groups) {
|
|
16011
|
+
lines.push(`${g.level === "error" ? "\u2716" : "!"} ${bold(`\xD7${g.count}`)} ${g.kind} ${g.message.slice(0, 160)} ${dim(`${es ? "\xFAltimo" : "last"} ${time(g.lastAt)}${g.paths.length ? ` \xB7 ${g.paths.join(", ")}` : ""}${g.last.reqId ? ` \xB7 ${g.last.reqId}` : ""}`)}`);
|
|
16012
|
+
}
|
|
16013
|
+
const top = r.groups[0];
|
|
16014
|
+
if (top.last.breadcrumbs.length) lines.push(dim(es ? "migas del m\xE1s reciente:" : "breadcrumbs of the latest:"), ...top.last.breadcrumbs.slice(-10).map((c) => dim(` ${c}`)));
|
|
16015
|
+
return lines.join("\n");
|
|
16016
|
+
}
|
|
15856
16017
|
|
|
15857
16018
|
// src/commands/docs.ts
|
|
15858
16019
|
init_api();
|
|
@@ -16314,7 +16475,7 @@ function repoHere() {
|
|
|
16314
16475
|
function dotenvKeys(text) {
|
|
16315
16476
|
return text.split("\n").map((l) => l.trim().replace(/^export\s+/, "")).filter((l) => l && !l.startsWith("#") && l.indexOf("=") > 0).map((l) => l.slice(0, l.indexOf("=")).trim());
|
|
16316
16477
|
}
|
|
16317
|
-
async function
|
|
16478
|
+
async function envCmd2(ws, verb, ref, file, v) {
|
|
16318
16479
|
const path2 = `/api/v2/workspaces/${enc17(ws)}/factory/env`;
|
|
16319
16480
|
const repo = ref && ref.includes("/") ? ref : v.repo ?? repoHere();
|
|
16320
16481
|
if (ref && !ref.includes("/") && !file) file = ref;
|
|
@@ -16461,7 +16622,7 @@ async function factoryCmd(sub, verb, ref, title, v, context) {
|
|
|
16461
16622
|
if (!ws) throw usage(t("Which workspace?", "\xBFQu\xE9 espacio?"), t("Add --workspace SLUG (or set one with ghosty use SLUG).", "Agrega --workspace SLUG (o fija uno con ghosty use SLUG)."));
|
|
16462
16623
|
if (sub === "rooms") return roomsCmd(ws, verb, ref, v);
|
|
16463
16624
|
if (sub === "sprints") return sprintsCmd(ws, verb, ref, v);
|
|
16464
|
-
if (sub === "env") return
|
|
16625
|
+
if (sub === "env") return envCmd2(ws, verb, ref, title, v);
|
|
16465
16626
|
const base = `/api/v2/workspaces/${enc17(ws)}/factory/runs`;
|
|
16466
16627
|
if (sub === "run") {
|
|
16467
16628
|
const text = verb?.trim();
|
|
@@ -16620,7 +16781,7 @@ ${dim(t("Dry run: nothing changed.", "Simulacro: no se cambi\xF3 nada."))}`);
|
|
|
16620
16781
|
const r = await api(path2, { body: { title } });
|
|
16621
16782
|
return out(r, () => `${lavender("\u2713")} ${line2} ${dim(t("(logged; the room card picks it up on its next refresh)", "(queda en bit\xE1cora; la tarjeta del room lo toma en su siguiente refresco)"))}`);
|
|
16622
16783
|
}
|
|
16623
|
-
if (verb === "approve" || verb === "changes" || verb === "recheck" || verb === "merge" || verb === "card") {
|
|
16784
|
+
if (verb === "approve" || verb === "changes" || verb === "recheck" || verb === "merge" || verb === "card" || verb === "resume" || verb === "stop" || verb === "cancel") {
|
|
16624
16785
|
const id = Number(ref.replace(/^#/, ""));
|
|
16625
16786
|
const note = v.note?.trim() ?? title?.trim();
|
|
16626
16787
|
const scope = verb === "approve" || verb === "changes" ? v["check-scope"]?.trim() : void 0;
|
|
@@ -16629,7 +16790,9 @@ ${dim(t("Dry run: nothing changed.", "Simulacro: no se cambi\xF3 nada."))}`);
|
|
|
16629
16790
|
if (verb !== "card") {
|
|
16630
16791
|
requireYesIfHeadless(v.yes, retry);
|
|
16631
16792
|
const cur = (await api(`${base}/${id}`)).run;
|
|
16632
|
-
|
|
16793
|
+
if (verb === "resume" && cur.running?.length)
|
|
16794
|
+
throw usage(t(`@${cur.running[0].role ?? "?"} is working on #${id} right now: there's nothing to resume.`, `@${cur.running[0].role ?? "?"} est\xE1 trabajando en el #${id} ahora: no hay nada que retomar.`), `ghosty factory runs stop ${id} --workspace ${ws}`);
|
|
16795
|
+
const what = { approve: t(`Approve #${id} (plan v${cur.planVersion})`, `\xBFFirmar el #${id} (plan v${cur.planVersion})`), changes: t(`Ask for changes on #${id}`, `\xBFPedir cambios en el #${id}`), recheck: t(`Have @check review #${id} again (no @build loop)`, `\xBFQue @check revise otra vez el #${id} (sin vuelta de @build)`), merge: t(`Merge the PR of #${id} (${cur.pr ?? "\u2014"})`, `\xBFMergear el PR del #${id} (${cur.pr ?? "\u2014"})`), resume: t(`Resume #${id} (its role picks up where it stopped)`, `\xBFRetomar el #${id} (su rol sigue donde se qued\xF3)`), stop: t(`Stop the turn running on #${id}`, `\xBFDetener el turno que corre en el #${id}`), cancel: t(`Cancel #${id} \xAB${cur.title}\xBB (it can't be undone)`, `\xBFCancelar el #${id} \xAB${cur.title}\xBB (no se deshace)`) }[verb];
|
|
16633
16796
|
await confirm(`${what}?`, { yes: v.yes, retry });
|
|
16634
16797
|
}
|
|
16635
16798
|
const r = await api(`${base}/${id}/act`, {
|
|
@@ -16640,9 +16803,12 @@ ${dim(t("Dry run: nothing changed.", "Simulacro: no se cambi\xF3 nada."))}`);
|
|
|
16640
16803
|
changes: t(`#${id}: changes sent to @plan.`, `#${id}: cambios enviados a @plan.`),
|
|
16641
16804
|
recheck: t(`#${id}: @check is reviewing the same PR again.`, `#${id}: @check revisa otra vez el mismo PR.`),
|
|
16642
16805
|
merge: r.queued ? t(`#${id}: merge queued, it goes in when CI passes.`, `#${id}: merge en cola, entra cuando pase el CI.`) : t(`#${id} merged.`, `#${id} mergeado.`),
|
|
16643
|
-
card: t(`#${id}: the card is at the bottom of its thread again.`, `#${id}: la tarjeta volvi\xF3 al final de su hilo.`)
|
|
16806
|
+
card: t(`#${id}: the card is at the bottom of its thread again.`, `#${id}: la tarjeta volvi\xF3 al final de su hilo.`),
|
|
16807
|
+
resume: t(`#${id}: its role is back on it (${stage(r.status)}).`, `#${id}: su rol lo retom\xF3 (${stage(r.status)}).`),
|
|
16808
|
+
stop: t(`#${id}: turn stopped.`, `#${id}: turno detenido.`),
|
|
16809
|
+
cancel: t(`#${id} cancelled.`, `#${id} cancelado.`)
|
|
16644
16810
|
}[verb];
|
|
16645
|
-
return out(r, () => `${lavender("\u2713")} ${msg}${verb === "approve" || verb === "changes" || verb === "recheck" ? `
|
|
16811
|
+
return out(r, () => `${lavender("\u2713")} ${msg}${verb === "approve" || verb === "changes" || verb === "recheck" || verb === "resume" ? `
|
|
16646
16812
|
${dim(t(`Follow it: ghosty factory runs watch ${id} --workspace ${ws}`, `S\xEDguelo: ghosty factory runs watch ${id} --workspace ${ws}`))}` : ""}`);
|
|
16647
16813
|
}
|
|
16648
16814
|
if (verb === "choose") {
|
|
@@ -16669,7 +16835,7 @@ ${dim(t(`Follow it: ghosty factory runs watch ${id} --workspace ${ws}`, `S\xEDgu
|
|
|
16669
16835
|
${dim(t(`Follow it: ghosty factory runs watch ${id} --workspace ${ws}`, `S\xEDguelo: ghosty factory runs watch ${id} --workspace ${ws}`))}`)
|
|
16670
16836
|
);
|
|
16671
16837
|
}
|
|
16672
|
-
throw usage(t(`Unknown runs subcommand: ${verb}.`, `Subcomando de runs desconocido: ${verb}.`), 'ghosty factory runs ls | show <run> [--timing] | why <run> [--refresh] | advise <run> | stats [--since 30d] | rename <run> "title" | watch <run> | approve <run> --plan-version N [--note "\u2026"] [--check-scope "\u2026"] | changes <run> --note "\u2026" | recheck <run> | choose <run> [a|b|c] | merge <run> | card <run>');
|
|
16838
|
+
throw usage(t(`Unknown runs subcommand: ${verb}.`, `Subcomando de runs desconocido: ${verb}.`), 'ghosty factory runs ls | show <run> [--timing] | why <run> [--refresh] | advise <run> | stats [--since 30d] | rename <run> "title" | watch <run> | approve <run> --plan-version N [--note "\u2026"] [--check-scope "\u2026"] | changes <run> --note "\u2026" | recheck <run> | resume|stop|cancel <run> | choose <run> [a|b|c] | merge <run> | card <run>');
|
|
16673
16839
|
}
|
|
16674
16840
|
async function agentsByHandle(handle, workspace) {
|
|
16675
16841
|
const qs = new URLSearchParams({ handle, ...workspace ? { workspace } : {} });
|
|
@@ -17336,6 +17502,8 @@ ${bold("Sites")} ${dim("(sites your agents publish at <slug>.ghosty.page)")}
|
|
|
17336
17502
|
sites unpin <slug|id> Release its slot (back to the Free rule: 30 days + notice)
|
|
17337
17503
|
sites search <slug|id> How Google finds it: clicks, impressions, searches, indexed or not [--days 28]
|
|
17338
17504
|
sites domain add|verify|rm <slug> <dom> Custom domain for a site or app (DNS record \u2192 verify \u2192 HTTPS) [ls <slug>: list]
|
|
17505
|
+
sites show <slug|id> Everything about a site or app: status, domains, variable names, data, files, tasks
|
|
17506
|
+
sites env|cron|files [ls] <slug> An app's variables (set <slug> K=V \xB7 rm <slug> K), tasks (pause|resume|rm <slug> <id>), files (rm <slug> <id>)
|
|
17339
17507
|
sites pins Your pinned-sites subscription and slots [--cancel | --resume]
|
|
17340
17508
|
sites publish <file.html|folder> Publish a house site (staff): no owner, no expiry, no banner [--title] [--slug S] [--site <slug|id>: update that one]
|
|
17341
17509
|
sites slug <slug|id> <new-slug> Change a site's slug (staff)
|
|
@@ -17561,6 +17729,8 @@ ${bold("Sitios")} ${dim("(los sitios que publican tus agentes en <slug>.ghosty.
|
|
|
17561
17729
|
sites unpin <slug|id> Suelta su lugar (vuelve a la regla Gratis: 30 d\xEDas + aviso)
|
|
17562
17730
|
sites pins Tu suscripci\xF3n de Sitios fijos y sus lugares [--cancel | --resume]
|
|
17563
17731
|
sites domain add|verify|rm <slug> <dom> Dominio propio para un sitio o app (registro DNS \u2192 verificar \u2192 HTTPS) [ls <slug>: lista]
|
|
17732
|
+
sites show <slug|id> Todo de un sitio o app: estado, dominios, nombres de variables, datos, archivos, tareas
|
|
17733
|
+
sites env|cron|files [ls] <slug> Variables (set <slug> K=V \xB7 rm <slug> K), tareas (pause|resume|rm <slug> <id>) y archivos (rm <slug> <id>) de una app
|
|
17564
17734
|
sites publish <archivo.html|carpeta> Publica un sitio de la casa (staff): sin due\xF1o, sin caducidad, sin franja [--title] [--slug S] [--site <slug|id>: actualiza \xE9se]
|
|
17565
17735
|
sites slug <slug|id> <slug-nuevo> Cambia el slug de un sitio (staff)
|
|
17566
17736
|
|
|
@@ -17772,6 +17942,7 @@ async function main() {
|
|
|
17772
17942
|
errors: { type: "boolean" },
|
|
17773
17943
|
status: { type: "string" },
|
|
17774
17944
|
since: { type: "string" },
|
|
17945
|
+
"req-id": { type: "string" },
|
|
17775
17946
|
limit: { type: "string" },
|
|
17776
17947
|
action: { type: "string" },
|
|
17777
17948
|
verbose: { type: "boolean" },
|
|
@@ -17968,7 +18139,7 @@ async function main() {
|
|
|
17968
18139
|
const tokens = splitTokens(pos, v);
|
|
17969
18140
|
globals.token = tokens.session;
|
|
17970
18141
|
globals.profile = v.profile;
|
|
17971
|
-
if (v.version) return out({ version: "0.
|
|
18142
|
+
if (v.version) return out({ version: "0.96.0" }, () => "0.96.0");
|
|
17972
18143
|
for (const n of normalizeArgs(pos, v)) if (!globals.json) info(dim(n));
|
|
17973
18144
|
const context = (await readConfig()).workspace;
|
|
17974
18145
|
if (!explicitToken()?.startsWith("gat_")) {
|
|
@@ -18071,7 +18242,7 @@ async function main() {
|
|
|
18071
18242
|
return novedadesCmd(sub, a1, v);
|
|
18072
18243
|
case "sites":
|
|
18073
18244
|
case "site":
|
|
18074
|
-
return sitesCmd(sub, a1, a2, v, pos[4]);
|
|
18245
|
+
return sitesCmd(sub, a1, a2, v, pos[4], pos.slice(5));
|
|
18075
18246
|
case "board":
|
|
18076
18247
|
return boardCmd(sub, a1, v, a2);
|
|
18077
18248
|
case "boards":
|
|
@@ -18175,7 +18346,7 @@ async function main() {
|
|
|
18175
18346
|
throw unknown(cmd, cmd, COMMANDS, "ghosty --help");
|
|
18176
18347
|
}
|
|
18177
18348
|
}
|
|
18178
|
-
var notice = updateNotice("0.
|
|
18349
|
+
var notice = updateNotice("0.96.0").catch(() => null);
|
|
18179
18350
|
main().then(
|
|
18180
18351
|
async () => {
|
|
18181
18352
|
const n = process.stderr.isTTY ? await notice : null;
|