@ghostystudio/cli 0.60.0 → 0.63.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.
Files changed (3) hide show
  1. package/README.md +13 -0
  2. package/dist/index.js +314 -157
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -32,9 +32,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
32
32
  mod
33
33
  ));
34
34
 
35
- // ../../node_modules/yaml/dist/nodes/identity.js
35
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/identity.js
36
36
  var require_identity = __commonJS({
37
- "../../node_modules/yaml/dist/nodes/identity.js"(exports) {
37
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/identity.js"(exports) {
38
38
  "use strict";
39
39
  var ALIAS = /* @__PURE__ */ Symbol.for("yaml.alias");
40
40
  var DOC = /* @__PURE__ */ Symbol.for("yaml.document");
@@ -89,9 +89,9 @@ var require_identity = __commonJS({
89
89
  }
90
90
  });
91
91
 
92
- // ../../node_modules/yaml/dist/visit.js
92
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/visit.js
93
93
  var require_visit = __commonJS({
94
- "../../node_modules/yaml/dist/visit.js"(exports) {
94
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/visit.js"(exports) {
95
95
  "use strict";
96
96
  var identity = require_identity();
97
97
  var BREAK = /* @__PURE__ */ Symbol("break visit");
@@ -247,9 +247,9 @@ var require_visit = __commonJS({
247
247
  }
248
248
  });
249
249
 
250
- // ../../node_modules/yaml/dist/doc/directives.js
250
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/directives.js
251
251
  var require_directives = __commonJS({
252
- "../../node_modules/yaml/dist/doc/directives.js"(exports) {
252
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/directives.js"(exports) {
253
253
  "use strict";
254
254
  var identity = require_identity();
255
255
  var visit = require_visit();
@@ -418,9 +418,9 @@ var require_directives = __commonJS({
418
418
  }
419
419
  });
420
420
 
421
- // ../../node_modules/yaml/dist/doc/anchors.js
421
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/anchors.js
422
422
  var require_anchors = __commonJS({
423
- "../../node_modules/yaml/dist/doc/anchors.js"(exports) {
423
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/anchors.js"(exports) {
424
424
  "use strict";
425
425
  var identity = require_identity();
426
426
  var visit = require_visit();
@@ -488,9 +488,9 @@ var require_anchors = __commonJS({
488
488
  }
489
489
  });
490
490
 
491
- // ../../node_modules/yaml/dist/doc/applyReviver.js
491
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js
492
492
  var require_applyReviver = __commonJS({
493
- "../../node_modules/yaml/dist/doc/applyReviver.js"(exports) {
493
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js"(exports) {
494
494
  "use strict";
495
495
  function applyReviver(reviver, obj, key, val) {
496
496
  if (val && typeof val === "object") {
@@ -538,9 +538,9 @@ var require_applyReviver = __commonJS({
538
538
  }
539
539
  });
540
540
 
541
- // ../../node_modules/yaml/dist/nodes/toJS.js
541
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/toJS.js
542
542
  var require_toJS = __commonJS({
543
- "../../node_modules/yaml/dist/nodes/toJS.js"(exports) {
543
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/toJS.js"(exports) {
544
544
  "use strict";
545
545
  var identity = require_identity();
546
546
  function toJS(value, arg, ctx) {
@@ -568,9 +568,9 @@ var require_toJS = __commonJS({
568
568
  }
569
569
  });
570
570
 
571
- // ../../node_modules/yaml/dist/nodes/Node.js
571
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Node.js
572
572
  var require_Node = __commonJS({
573
- "../../node_modules/yaml/dist/nodes/Node.js"(exports) {
573
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Node.js"(exports) {
574
574
  "use strict";
575
575
  var applyReviver = require_applyReviver();
576
576
  var identity = require_identity();
@@ -609,9 +609,9 @@ var require_Node = __commonJS({
609
609
  }
610
610
  });
611
611
 
612
- // ../../node_modules/yaml/dist/nodes/Alias.js
612
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Alias.js
613
613
  var require_Alias = __commonJS({
614
- "../../node_modules/yaml/dist/nodes/Alias.js"(exports) {
614
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Alias.js"(exports) {
615
615
  "use strict";
616
616
  var anchors = require_anchors();
617
617
  var visit = require_visit();
@@ -727,9 +727,9 @@ var require_Alias = __commonJS({
727
727
  }
728
728
  });
729
729
 
730
- // ../../node_modules/yaml/dist/nodes/Scalar.js
730
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js
731
731
  var require_Scalar = __commonJS({
732
- "../../node_modules/yaml/dist/nodes/Scalar.js"(exports) {
732
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js"(exports) {
733
733
  "use strict";
734
734
  var identity = require_identity();
735
735
  var Node = require_Node();
@@ -757,9 +757,9 @@ var require_Scalar = __commonJS({
757
757
  }
758
758
  });
759
759
 
760
- // ../../node_modules/yaml/dist/doc/createNode.js
760
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/createNode.js
761
761
  var require_createNode = __commonJS({
762
- "../../node_modules/yaml/dist/doc/createNode.js"(exports) {
762
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/createNode.js"(exports) {
763
763
  "use strict";
764
764
  var Alias = require_Alias();
765
765
  var identity = require_identity();
@@ -832,9 +832,9 @@ var require_createNode = __commonJS({
832
832
  }
833
833
  });
834
834
 
835
- // ../../node_modules/yaml/dist/nodes/Collection.js
835
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Collection.js
836
836
  var require_Collection = __commonJS({
837
- "../../node_modules/yaml/dist/nodes/Collection.js"(exports) {
837
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Collection.js"(exports) {
838
838
  "use strict";
839
839
  var createNode = require_createNode();
840
840
  var identity = require_identity();
@@ -975,9 +975,9 @@ var require_Collection = __commonJS({
975
975
  }
976
976
  });
977
977
 
978
- // ../../node_modules/yaml/dist/stringify/stringifyComment.js
978
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js
979
979
  var require_stringifyComment = __commonJS({
980
- "../../node_modules/yaml/dist/stringify/stringifyComment.js"(exports) {
980
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js"(exports) {
981
981
  "use strict";
982
982
  var stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, "#");
983
983
  function indentComment(comment, indent) {
@@ -992,9 +992,9 @@ var require_stringifyComment = __commonJS({
992
992
  }
993
993
  });
994
994
 
995
- // ../../node_modules/yaml/dist/stringify/foldFlowLines.js
995
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js
996
996
  var require_foldFlowLines = __commonJS({
997
- "../../node_modules/yaml/dist/stringify/foldFlowLines.js"(exports) {
997
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js"(exports) {
998
998
  "use strict";
999
999
  var FOLD_FLOW = "flow";
1000
1000
  var FOLD_BLOCK = "block";
@@ -1128,9 +1128,9 @@ ${indent}${text.slice(fold + 1, end2)}`;
1128
1128
  }
1129
1129
  });
1130
1130
 
1131
- // ../../node_modules/yaml/dist/stringify/stringifyString.js
1131
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js
1132
1132
  var require_stringifyString = __commonJS({
1133
- "../../node_modules/yaml/dist/stringify/stringifyString.js"(exports) {
1133
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js"(exports) {
1134
1134
  "use strict";
1135
1135
  var Scalar = require_Scalar();
1136
1136
  var foldFlowLines = require_foldFlowLines();
@@ -1411,9 +1411,9 @@ ${indent}`);
1411
1411
  }
1412
1412
  });
1413
1413
 
1414
- // ../../node_modules/yaml/dist/stringify/stringify.js
1414
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringify.js
1415
1415
  var require_stringify = __commonJS({
1416
- "../../node_modules/yaml/dist/stringify/stringify.js"(exports) {
1416
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringify.js"(exports) {
1417
1417
  "use strict";
1418
1418
  var anchors = require_anchors();
1419
1419
  var identity = require_identity();
@@ -1535,9 +1535,9 @@ ${ctx.indent}${str}`;
1535
1535
  }
1536
1536
  });
1537
1537
 
1538
- // ../../node_modules/yaml/dist/stringify/stringifyPair.js
1538
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js
1539
1539
  var require_stringifyPair = __commonJS({
1540
- "../../node_modules/yaml/dist/stringify/stringifyPair.js"(exports) {
1540
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js"(exports) {
1541
1541
  "use strict";
1542
1542
  var identity = require_identity();
1543
1543
  var Scalar = require_Scalar();
@@ -1668,9 +1668,9 @@ ${ctx.indent}`;
1668
1668
  }
1669
1669
  });
1670
1670
 
1671
- // ../../node_modules/yaml/dist/log.js
1671
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/log.js
1672
1672
  var require_log = __commonJS({
1673
- "../../node_modules/yaml/dist/log.js"(exports) {
1673
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/log.js"(exports) {
1674
1674
  "use strict";
1675
1675
  var node_process = __require("process");
1676
1676
  function debug(logLevel, ...messages) {
@@ -1690,9 +1690,9 @@ var require_log = __commonJS({
1690
1690
  }
1691
1691
  });
1692
1692
 
1693
- // ../../node_modules/yaml/dist/schema/yaml-1.1/merge.js
1693
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js
1694
1694
  var require_merge = __commonJS({
1695
- "../../node_modules/yaml/dist/schema/yaml-1.1/merge.js"(exports) {
1695
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js"(exports) {
1696
1696
  "use strict";
1697
1697
  var identity = require_identity();
1698
1698
  var Scalar = require_Scalar();
@@ -1750,9 +1750,9 @@ var require_merge = __commonJS({
1750
1750
  }
1751
1751
  });
1752
1752
 
1753
- // ../../node_modules/yaml/dist/nodes/addPairToJSMap.js
1753
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js
1754
1754
  var require_addPairToJSMap = __commonJS({
1755
- "../../node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports) {
1755
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports) {
1756
1756
  "use strict";
1757
1757
  var log = require_log();
1758
1758
  var merge = require_merge();
@@ -1814,9 +1814,9 @@ var require_addPairToJSMap = __commonJS({
1814
1814
  }
1815
1815
  });
1816
1816
 
1817
- // ../../node_modules/yaml/dist/nodes/Pair.js
1817
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Pair.js
1818
1818
  var require_Pair = __commonJS({
1819
- "../../node_modules/yaml/dist/nodes/Pair.js"(exports) {
1819
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Pair.js"(exports) {
1820
1820
  "use strict";
1821
1821
  var createNode = require_createNode();
1822
1822
  var stringifyPair = require_stringifyPair();
@@ -1854,9 +1854,9 @@ var require_Pair = __commonJS({
1854
1854
  }
1855
1855
  });
1856
1856
 
1857
- // ../../node_modules/yaml/dist/stringify/stringifyCollection.js
1857
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js
1858
1858
  var require_stringifyCollection = __commonJS({
1859
- "../../node_modules/yaml/dist/stringify/stringifyCollection.js"(exports) {
1859
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js"(exports) {
1860
1860
  "use strict";
1861
1861
  var identity = require_identity();
1862
1862
  var stringify = require_stringify();
@@ -2005,9 +2005,9 @@ ${indent}${end}`;
2005
2005
  }
2006
2006
  });
2007
2007
 
2008
- // ../../node_modules/yaml/dist/nodes/YAMLMap.js
2008
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js
2009
2009
  var require_YAMLMap = __commonJS({
2010
- "../../node_modules/yaml/dist/nodes/YAMLMap.js"(exports) {
2010
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js"(exports) {
2011
2011
  "use strict";
2012
2012
  var stringifyCollection = require_stringifyCollection();
2013
2013
  var addPairToJSMap = require_addPairToJSMap();
@@ -2149,9 +2149,9 @@ var require_YAMLMap = __commonJS({
2149
2149
  }
2150
2150
  });
2151
2151
 
2152
- // ../../node_modules/yaml/dist/schema/common/map.js
2152
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/map.js
2153
2153
  var require_map = __commonJS({
2154
- "../../node_modules/yaml/dist/schema/common/map.js"(exports) {
2154
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/map.js"(exports) {
2155
2155
  "use strict";
2156
2156
  var identity = require_identity();
2157
2157
  var YAMLMap = require_YAMLMap();
@@ -2171,9 +2171,9 @@ var require_map = __commonJS({
2171
2171
  }
2172
2172
  });
2173
2173
 
2174
- // ../../node_modules/yaml/dist/nodes/YAMLSeq.js
2174
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js
2175
2175
  var require_YAMLSeq = __commonJS({
2176
- "../../node_modules/yaml/dist/nodes/YAMLSeq.js"(exports) {
2176
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js"(exports) {
2177
2177
  "use strict";
2178
2178
  var createNode = require_createNode();
2179
2179
  var stringifyCollection = require_stringifyCollection();
@@ -2287,9 +2287,9 @@ var require_YAMLSeq = __commonJS({
2287
2287
  }
2288
2288
  });
2289
2289
 
2290
- // ../../node_modules/yaml/dist/schema/common/seq.js
2290
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/seq.js
2291
2291
  var require_seq = __commonJS({
2292
- "../../node_modules/yaml/dist/schema/common/seq.js"(exports) {
2292
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/seq.js"(exports) {
2293
2293
  "use strict";
2294
2294
  var identity = require_identity();
2295
2295
  var YAMLSeq = require_YAMLSeq();
@@ -2309,9 +2309,9 @@ var require_seq = __commonJS({
2309
2309
  }
2310
2310
  });
2311
2311
 
2312
- // ../../node_modules/yaml/dist/schema/common/string.js
2312
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/string.js
2313
2313
  var require_string = __commonJS({
2314
- "../../node_modules/yaml/dist/schema/common/string.js"(exports) {
2314
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/string.js"(exports) {
2315
2315
  "use strict";
2316
2316
  var stringifyString = require_stringifyString();
2317
2317
  var string = {
@@ -2328,9 +2328,9 @@ var require_string = __commonJS({
2328
2328
  }
2329
2329
  });
2330
2330
 
2331
- // ../../node_modules/yaml/dist/schema/common/null.js
2331
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/null.js
2332
2332
  var require_null = __commonJS({
2333
- "../../node_modules/yaml/dist/schema/common/null.js"(exports) {
2333
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/null.js"(exports) {
2334
2334
  "use strict";
2335
2335
  var Scalar = require_Scalar();
2336
2336
  var nullTag = {
@@ -2346,9 +2346,9 @@ var require_null = __commonJS({
2346
2346
  }
2347
2347
  });
2348
2348
 
2349
- // ../../node_modules/yaml/dist/schema/core/bool.js
2349
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/bool.js
2350
2350
  var require_bool = __commonJS({
2351
- "../../node_modules/yaml/dist/schema/core/bool.js"(exports) {
2351
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/bool.js"(exports) {
2352
2352
  "use strict";
2353
2353
  var Scalar = require_Scalar();
2354
2354
  var boolTag = {
@@ -2370,9 +2370,9 @@ var require_bool = __commonJS({
2370
2370
  }
2371
2371
  });
2372
2372
 
2373
- // ../../node_modules/yaml/dist/stringify/stringifyNumber.js
2373
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js
2374
2374
  var require_stringifyNumber = __commonJS({
2375
- "../../node_modules/yaml/dist/stringify/stringifyNumber.js"(exports) {
2375
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js"(exports) {
2376
2376
  "use strict";
2377
2377
  function stringifyNumber({ format, minFractionDigits, tag, value }) {
2378
2378
  if (typeof value === "bigint")
@@ -2397,9 +2397,9 @@ var require_stringifyNumber = __commonJS({
2397
2397
  }
2398
2398
  });
2399
2399
 
2400
- // ../../node_modules/yaml/dist/schema/core/float.js
2400
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/float.js
2401
2401
  var require_float = __commonJS({
2402
- "../../node_modules/yaml/dist/schema/core/float.js"(exports) {
2402
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/float.js"(exports) {
2403
2403
  "use strict";
2404
2404
  var Scalar = require_Scalar();
2405
2405
  var stringifyNumber = require_stringifyNumber();
@@ -2443,9 +2443,9 @@ var require_float = __commonJS({
2443
2443
  }
2444
2444
  });
2445
2445
 
2446
- // ../../node_modules/yaml/dist/schema/core/int.js
2446
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/int.js
2447
2447
  var require_int = __commonJS({
2448
- "../../node_modules/yaml/dist/schema/core/int.js"(exports) {
2448
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/int.js"(exports) {
2449
2449
  "use strict";
2450
2450
  var stringifyNumber = require_stringifyNumber();
2451
2451
  var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -2488,9 +2488,9 @@ var require_int = __commonJS({
2488
2488
  }
2489
2489
  });
2490
2490
 
2491
- // ../../node_modules/yaml/dist/schema/core/schema.js
2491
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/schema.js
2492
2492
  var require_schema = __commonJS({
2493
- "../../node_modules/yaml/dist/schema/core/schema.js"(exports) {
2493
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/schema.js"(exports) {
2494
2494
  "use strict";
2495
2495
  var map = require_map();
2496
2496
  var _null = require_null();
@@ -2516,9 +2516,9 @@ var require_schema = __commonJS({
2516
2516
  }
2517
2517
  });
2518
2518
 
2519
- // ../../node_modules/yaml/dist/schema/json/schema.js
2519
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/json/schema.js
2520
2520
  var require_schema2 = __commonJS({
2521
- "../../node_modules/yaml/dist/schema/json/schema.js"(exports) {
2521
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/json/schema.js"(exports) {
2522
2522
  "use strict";
2523
2523
  var Scalar = require_Scalar();
2524
2524
  var map = require_map();
@@ -2583,9 +2583,9 @@ var require_schema2 = __commonJS({
2583
2583
  }
2584
2584
  });
2585
2585
 
2586
- // ../../node_modules/yaml/dist/schema/yaml-1.1/binary.js
2586
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js
2587
2587
  var require_binary = __commonJS({
2588
- "../../node_modules/yaml/dist/schema/yaml-1.1/binary.js"(exports) {
2588
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js"(exports) {
2589
2589
  "use strict";
2590
2590
  var node_buffer = __require("buffer");
2591
2591
  var Scalar = require_Scalar();
@@ -2649,9 +2649,9 @@ var require_binary = __commonJS({
2649
2649
  }
2650
2650
  });
2651
2651
 
2652
- // ../../node_modules/yaml/dist/schema/yaml-1.1/pairs.js
2652
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
2653
2653
  var require_pairs = __commonJS({
2654
- "../../node_modules/yaml/dist/schema/yaml-1.1/pairs.js"(exports) {
2654
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js"(exports) {
2655
2655
  "use strict";
2656
2656
  var identity = require_identity();
2657
2657
  var Pair = require_Pair();
@@ -2727,9 +2727,9 @@ ${cn.comment}` : item.comment;
2727
2727
  }
2728
2728
  });
2729
2729
 
2730
- // ../../node_modules/yaml/dist/schema/yaml-1.1/omap.js
2730
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js
2731
2731
  var require_omap = __commonJS({
2732
- "../../node_modules/yaml/dist/schema/yaml-1.1/omap.js"(exports) {
2732
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js"(exports) {
2733
2733
  "use strict";
2734
2734
  var identity = require_identity();
2735
2735
  var toJS = require_toJS();
@@ -2805,9 +2805,9 @@ var require_omap = __commonJS({
2805
2805
  }
2806
2806
  });
2807
2807
 
2808
- // ../../node_modules/yaml/dist/schema/yaml-1.1/bool.js
2808
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js
2809
2809
  var require_bool2 = __commonJS({
2810
- "../../node_modules/yaml/dist/schema/yaml-1.1/bool.js"(exports) {
2810
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js"(exports) {
2811
2811
  "use strict";
2812
2812
  var Scalar = require_Scalar();
2813
2813
  function boolStringify({ value, source }, ctx) {
@@ -2837,9 +2837,9 @@ var require_bool2 = __commonJS({
2837
2837
  }
2838
2838
  });
2839
2839
 
2840
- // ../../node_modules/yaml/dist/schema/yaml-1.1/float.js
2840
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js
2841
2841
  var require_float2 = __commonJS({
2842
- "../../node_modules/yaml/dist/schema/yaml-1.1/float.js"(exports) {
2842
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js"(exports) {
2843
2843
  "use strict";
2844
2844
  var Scalar = require_Scalar();
2845
2845
  var stringifyNumber = require_stringifyNumber();
@@ -2886,9 +2886,9 @@ var require_float2 = __commonJS({
2886
2886
  }
2887
2887
  });
2888
2888
 
2889
- // ../../node_modules/yaml/dist/schema/yaml-1.1/int.js
2889
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js
2890
2890
  var require_int2 = __commonJS({
2891
- "../../node_modules/yaml/dist/schema/yaml-1.1/int.js"(exports) {
2891
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js"(exports) {
2892
2892
  "use strict";
2893
2893
  var stringifyNumber = require_stringifyNumber();
2894
2894
  var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -2965,9 +2965,9 @@ var require_int2 = __commonJS({
2965
2965
  }
2966
2966
  });
2967
2967
 
2968
- // ../../node_modules/yaml/dist/schema/yaml-1.1/set.js
2968
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js
2969
2969
  var require_set = __commonJS({
2970
- "../../node_modules/yaml/dist/schema/yaml-1.1/set.js"(exports) {
2970
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js"(exports) {
2971
2971
  "use strict";
2972
2972
  var identity = require_identity();
2973
2973
  var Pair = require_Pair();
@@ -3054,9 +3054,9 @@ var require_set = __commonJS({
3054
3054
  }
3055
3055
  });
3056
3056
 
3057
- // ../../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
3057
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
3058
3058
  var require_timestamp = __commonJS({
3059
- "../../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js"(exports) {
3059
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js"(exports) {
3060
3060
  "use strict";
3061
3061
  var stringifyNumber = require_stringifyNumber();
3062
3062
  function parseSexagesimal(str, asBigInt) {
@@ -3142,9 +3142,9 @@ var require_timestamp = __commonJS({
3142
3142
  }
3143
3143
  });
3144
3144
 
3145
- // ../../node_modules/yaml/dist/schema/yaml-1.1/schema.js
3145
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js
3146
3146
  var require_schema3 = __commonJS({
3147
- "../../node_modules/yaml/dist/schema/yaml-1.1/schema.js"(exports) {
3147
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js"(exports) {
3148
3148
  "use strict";
3149
3149
  var map = require_map();
3150
3150
  var _null = require_null();
@@ -3186,9 +3186,9 @@ var require_schema3 = __commonJS({
3186
3186
  }
3187
3187
  });
3188
3188
 
3189
- // ../../node_modules/yaml/dist/schema/tags.js
3189
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/tags.js
3190
3190
  var require_tags = __commonJS({
3191
- "../../node_modules/yaml/dist/schema/tags.js"(exports) {
3191
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/tags.js"(exports) {
3192
3192
  "use strict";
3193
3193
  var map = require_map();
3194
3194
  var _null = require_null();
@@ -3280,9 +3280,9 @@ var require_tags = __commonJS({
3280
3280
  }
3281
3281
  });
3282
3282
 
3283
- // ../../node_modules/yaml/dist/schema/Schema.js
3283
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/Schema.js
3284
3284
  var require_Schema = __commonJS({
3285
- "../../node_modules/yaml/dist/schema/Schema.js"(exports) {
3285
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/Schema.js"(exports) {
3286
3286
  "use strict";
3287
3287
  var identity = require_identity();
3288
3288
  var map = require_map();
@@ -3312,9 +3312,9 @@ var require_Schema = __commonJS({
3312
3312
  }
3313
3313
  });
3314
3314
 
3315
- // ../../node_modules/yaml/dist/stringify/stringifyDocument.js
3315
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js
3316
3316
  var require_stringifyDocument = __commonJS({
3317
- "../../node_modules/yaml/dist/stringify/stringifyDocument.js"(exports) {
3317
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js"(exports) {
3318
3318
  "use strict";
3319
3319
  var identity = require_identity();
3320
3320
  var stringify = require_stringify();
@@ -3392,9 +3392,9 @@ var require_stringifyDocument = __commonJS({
3392
3392
  }
3393
3393
  });
3394
3394
 
3395
- // ../../node_modules/yaml/dist/doc/Document.js
3395
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/Document.js
3396
3396
  var require_Document = __commonJS({
3397
- "../../node_modules/yaml/dist/doc/Document.js"(exports) {
3397
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/Document.js"(exports) {
3398
3398
  "use strict";
3399
3399
  var Alias = require_Alias();
3400
3400
  var Collection = require_Collection();
@@ -3701,9 +3701,9 @@ var require_Document = __commonJS({
3701
3701
  }
3702
3702
  });
3703
3703
 
3704
- // ../../node_modules/yaml/dist/errors.js
3704
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/errors.js
3705
3705
  var require_errors = __commonJS({
3706
- "../../node_modules/yaml/dist/errors.js"(exports) {
3706
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/errors.js"(exports) {
3707
3707
  "use strict";
3708
3708
  var YAMLError = class extends Error {
3709
3709
  constructor(name, pos, code, message) {
@@ -3766,9 +3766,9 @@ ${pointer}
3766
3766
  }
3767
3767
  });
3768
3768
 
3769
- // ../../node_modules/yaml/dist/compose/resolve-props.js
3769
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js
3770
3770
  var require_resolve_props = __commonJS({
3771
- "../../node_modules/yaml/dist/compose/resolve-props.js"(exports) {
3771
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js"(exports) {
3772
3772
  "use strict";
3773
3773
  function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
3774
3774
  let spaceBefore = false;
@@ -3900,9 +3900,9 @@ var require_resolve_props = __commonJS({
3900
3900
  }
3901
3901
  });
3902
3902
 
3903
- // ../../node_modules/yaml/dist/compose/util-contains-newline.js
3903
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js
3904
3904
  var require_util_contains_newline = __commonJS({
3905
- "../../node_modules/yaml/dist/compose/util-contains-newline.js"(exports) {
3905
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js"(exports) {
3906
3906
  "use strict";
3907
3907
  function containsNewline(key) {
3908
3908
  if (!key)
@@ -3942,9 +3942,9 @@ var require_util_contains_newline = __commonJS({
3942
3942
  }
3943
3943
  });
3944
3944
 
3945
- // ../../node_modules/yaml/dist/compose/util-flow-indent-check.js
3945
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js
3946
3946
  var require_util_flow_indent_check = __commonJS({
3947
- "../../node_modules/yaml/dist/compose/util-flow-indent-check.js"(exports) {
3947
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js"(exports) {
3948
3948
  "use strict";
3949
3949
  var utilContainsNewline = require_util_contains_newline();
3950
3950
  function flowIndentCheck(indent, fc, onError) {
@@ -3960,9 +3960,9 @@ var require_util_flow_indent_check = __commonJS({
3960
3960
  }
3961
3961
  });
3962
3962
 
3963
- // ../../node_modules/yaml/dist/compose/util-map-includes.js
3963
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js
3964
3964
  var require_util_map_includes = __commonJS({
3965
- "../../node_modules/yaml/dist/compose/util-map-includes.js"(exports) {
3965
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js"(exports) {
3966
3966
  "use strict";
3967
3967
  var identity = require_identity();
3968
3968
  function mapIncludes(ctx, items, search) {
@@ -3976,9 +3976,9 @@ var require_util_map_includes = __commonJS({
3976
3976
  }
3977
3977
  });
3978
3978
 
3979
- // ../../node_modules/yaml/dist/compose/resolve-block-map.js
3979
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js
3980
3980
  var require_resolve_block_map = __commonJS({
3981
- "../../node_modules/yaml/dist/compose/resolve-block-map.js"(exports) {
3981
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js"(exports) {
3982
3982
  "use strict";
3983
3983
  var Pair = require_Pair();
3984
3984
  var YAMLMap = require_YAMLMap();
@@ -4084,9 +4084,9 @@ var require_resolve_block_map = __commonJS({
4084
4084
  }
4085
4085
  });
4086
4086
 
4087
- // ../../node_modules/yaml/dist/compose/resolve-block-seq.js
4087
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js
4088
4088
  var require_resolve_block_seq = __commonJS({
4089
- "../../node_modules/yaml/dist/compose/resolve-block-seq.js"(exports) {
4089
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js"(exports) {
4090
4090
  "use strict";
4091
4091
  var YAMLSeq = require_YAMLSeq();
4092
4092
  var resolveProps = require_resolve_props();
@@ -4135,9 +4135,9 @@ var require_resolve_block_seq = __commonJS({
4135
4135
  }
4136
4136
  });
4137
4137
 
4138
- // ../../node_modules/yaml/dist/compose/resolve-end.js
4138
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js
4139
4139
  var require_resolve_end = __commonJS({
4140
- "../../node_modules/yaml/dist/compose/resolve-end.js"(exports) {
4140
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js"(exports) {
4141
4141
  "use strict";
4142
4142
  function resolveEnd(end, offset, reqSpace, onError) {
4143
4143
  let comment = "";
@@ -4178,9 +4178,9 @@ var require_resolve_end = __commonJS({
4178
4178
  }
4179
4179
  });
4180
4180
 
4181
- // ../../node_modules/yaml/dist/compose/resolve-flow-collection.js
4181
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js
4182
4182
  var require_resolve_flow_collection = __commonJS({
4183
- "../../node_modules/yaml/dist/compose/resolve-flow-collection.js"(exports) {
4183
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js"(exports) {
4184
4184
  "use strict";
4185
4185
  var identity = require_identity();
4186
4186
  var Pair = require_Pair();
@@ -4372,9 +4372,9 @@ var require_resolve_flow_collection = __commonJS({
4372
4372
  }
4373
4373
  });
4374
4374
 
4375
- // ../../node_modules/yaml/dist/compose/compose-collection.js
4375
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js
4376
4376
  var require_compose_collection = __commonJS({
4377
- "../../node_modules/yaml/dist/compose/compose-collection.js"(exports) {
4377
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js"(exports) {
4378
4378
  "use strict";
4379
4379
  var identity = require_identity();
4380
4380
  var Scalar = require_Scalar();
@@ -4437,9 +4437,9 @@ var require_compose_collection = __commonJS({
4437
4437
  }
4438
4438
  });
4439
4439
 
4440
- // ../../node_modules/yaml/dist/compose/resolve-block-scalar.js
4440
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js
4441
4441
  var require_resolve_block_scalar = __commonJS({
4442
- "../../node_modules/yaml/dist/compose/resolve-block-scalar.js"(exports) {
4442
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js"(exports) {
4443
4443
  "use strict";
4444
4444
  var Scalar = require_Scalar();
4445
4445
  function resolveBlockScalar(ctx, scalar, onError) {
@@ -4620,9 +4620,9 @@ var require_resolve_block_scalar = __commonJS({
4620
4620
  }
4621
4621
  });
4622
4622
 
4623
- // ../../node_modules/yaml/dist/compose/resolve-flow-scalar.js
4623
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js
4624
4624
  var require_resolve_flow_scalar = __commonJS({
4625
- "../../node_modules/yaml/dist/compose/resolve-flow-scalar.js"(exports) {
4625
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js"(exports) {
4626
4626
  "use strict";
4627
4627
  var Scalar = require_Scalar();
4628
4628
  var resolveEnd = require_resolve_end();
@@ -4841,9 +4841,9 @@ var require_resolve_flow_scalar = __commonJS({
4841
4841
  }
4842
4842
  });
4843
4843
 
4844
- // ../../node_modules/yaml/dist/compose/compose-scalar.js
4844
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js
4845
4845
  var require_compose_scalar = __commonJS({
4846
- "../../node_modules/yaml/dist/compose/compose-scalar.js"(exports) {
4846
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js"(exports) {
4847
4847
  "use strict";
4848
4848
  var identity = require_identity();
4849
4849
  var Scalar = require_Scalar();
@@ -4922,9 +4922,9 @@ var require_compose_scalar = __commonJS({
4922
4922
  }
4923
4923
  });
4924
4924
 
4925
- // ../../node_modules/yaml/dist/compose/util-empty-scalar-position.js
4925
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js
4926
4926
  var require_util_empty_scalar_position = __commonJS({
4927
- "../../node_modules/yaml/dist/compose/util-empty-scalar-position.js"(exports) {
4927
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js"(exports) {
4928
4928
  "use strict";
4929
4929
  function emptyScalarPosition(offset, before, pos) {
4930
4930
  if (before) {
@@ -4952,9 +4952,9 @@ var require_util_empty_scalar_position = __commonJS({
4952
4952
  }
4953
4953
  });
4954
4954
 
4955
- // ../../node_modules/yaml/dist/compose/compose-node.js
4955
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-node.js
4956
4956
  var require_compose_node = __commonJS({
4957
- "../../node_modules/yaml/dist/compose/compose-node.js"(exports) {
4957
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-node.js"(exports) {
4958
4958
  "use strict";
4959
4959
  var Alias = require_Alias();
4960
4960
  var identity = require_identity();
@@ -5058,9 +5058,9 @@ var require_compose_node = __commonJS({
5058
5058
  }
5059
5059
  });
5060
5060
 
5061
- // ../../node_modules/yaml/dist/compose/compose-doc.js
5061
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js
5062
5062
  var require_compose_doc = __commonJS({
5063
- "../../node_modules/yaml/dist/compose/compose-doc.js"(exports) {
5063
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js"(exports) {
5064
5064
  "use strict";
5065
5065
  var Document = require_Document();
5066
5066
  var composeNode = require_compose_node();
@@ -5101,9 +5101,9 @@ var require_compose_doc = __commonJS({
5101
5101
  }
5102
5102
  });
5103
5103
 
5104
- // ../../node_modules/yaml/dist/compose/composer.js
5104
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/composer.js
5105
5105
  var require_composer = __commonJS({
5106
- "../../node_modules/yaml/dist/compose/composer.js"(exports) {
5106
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/composer.js"(exports) {
5107
5107
  "use strict";
5108
5108
  var node_process = __require("process");
5109
5109
  var directives = require_directives();
@@ -5309,9 +5309,9 @@ ${end.comment}` : end.comment;
5309
5309
  }
5310
5310
  });
5311
5311
 
5312
- // ../../node_modules/yaml/dist/parse/cst-scalar.js
5312
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js
5313
5313
  var require_cst_scalar = __commonJS({
5314
- "../../node_modules/yaml/dist/parse/cst-scalar.js"(exports) {
5314
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js"(exports) {
5315
5315
  "use strict";
5316
5316
  var resolveBlockScalar = require_resolve_block_scalar();
5317
5317
  var resolveFlowScalar = require_resolve_flow_scalar();
@@ -5494,9 +5494,9 @@ var require_cst_scalar = __commonJS({
5494
5494
  }
5495
5495
  });
5496
5496
 
5497
- // ../../node_modules/yaml/dist/parse/cst-stringify.js
5497
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js
5498
5498
  var require_cst_stringify = __commonJS({
5499
- "../../node_modules/yaml/dist/parse/cst-stringify.js"(exports) {
5499
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js"(exports) {
5500
5500
  "use strict";
5501
5501
  var stringify = (cst) => "type" in cst ? stringifyToken(cst) : stringifyItem(cst);
5502
5502
  function stringifyToken(token) {
@@ -5555,9 +5555,9 @@ var require_cst_stringify = __commonJS({
5555
5555
  }
5556
5556
  });
5557
5557
 
5558
- // ../../node_modules/yaml/dist/parse/cst-visit.js
5558
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js
5559
5559
  var require_cst_visit = __commonJS({
5560
- "../../node_modules/yaml/dist/parse/cst-visit.js"(exports) {
5560
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js"(exports) {
5561
5561
  "use strict";
5562
5562
  var BREAK = /* @__PURE__ */ Symbol("break visit");
5563
5563
  var SKIP2 = /* @__PURE__ */ Symbol("skip children");
@@ -5617,9 +5617,9 @@ var require_cst_visit = __commonJS({
5617
5617
  }
5618
5618
  });
5619
5619
 
5620
- // ../../node_modules/yaml/dist/parse/cst.js
5620
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst.js
5621
5621
  var require_cst = __commonJS({
5622
- "../../node_modules/yaml/dist/parse/cst.js"(exports) {
5622
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst.js"(exports) {
5623
5623
  "use strict";
5624
5624
  var cstScalar = require_cst_scalar();
5625
5625
  var cstStringify = require_cst_stringify();
@@ -5719,9 +5719,9 @@ var require_cst = __commonJS({
5719
5719
  }
5720
5720
  });
5721
5721
 
5722
- // ../../node_modules/yaml/dist/parse/lexer.js
5722
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/lexer.js
5723
5723
  var require_lexer = __commonJS({
5724
- "../../node_modules/yaml/dist/parse/lexer.js"(exports) {
5724
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/lexer.js"(exports) {
5725
5725
  "use strict";
5726
5726
  var cst = require_cst();
5727
5727
  function isEmpty(ch) {
@@ -6308,9 +6308,9 @@ var require_lexer = __commonJS({
6308
6308
  }
6309
6309
  });
6310
6310
 
6311
- // ../../node_modules/yaml/dist/parse/line-counter.js
6311
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/line-counter.js
6312
6312
  var require_line_counter = __commonJS({
6313
- "../../node_modules/yaml/dist/parse/line-counter.js"(exports) {
6313
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/line-counter.js"(exports) {
6314
6314
  "use strict";
6315
6315
  var LineCounter = class {
6316
6316
  constructor() {
@@ -6339,9 +6339,9 @@ var require_line_counter = __commonJS({
6339
6339
  }
6340
6340
  });
6341
6341
 
6342
- // ../../node_modules/yaml/dist/parse/parser.js
6342
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/parser.js
6343
6343
  var require_parser = __commonJS({
6344
- "../../node_modules/yaml/dist/parse/parser.js"(exports) {
6344
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/parser.js"(exports) {
6345
6345
  "use strict";
6346
6346
  var node_process = __require("process");
6347
6347
  var cst = require_cst();
@@ -7213,9 +7213,9 @@ var require_parser = __commonJS({
7213
7213
  }
7214
7214
  });
7215
7215
 
7216
- // ../../node_modules/yaml/dist/public-api.js
7216
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/public-api.js
7217
7217
  var require_public_api = __commonJS({
7218
- "../../node_modules/yaml/dist/public-api.js"(exports) {
7218
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/public-api.js"(exports) {
7219
7219
  "use strict";
7220
7220
  var composer = require_composer();
7221
7221
  var Document = require_Document();
@@ -7310,9 +7310,9 @@ var require_public_api = __commonJS({
7310
7310
  }
7311
7311
  });
7312
7312
 
7313
- // ../../node_modules/yaml/dist/index.js
7313
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/index.js
7314
7314
  var require_dist = __commonJS({
7315
- "../../node_modules/yaml/dist/index.js"(exports) {
7315
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/index.js"(exports) {
7316
7316
  "use strict";
7317
7317
  var composer = require_composer();
7318
7318
  var Document = require_Document();
@@ -8478,7 +8478,7 @@ async function postLong(path, body, timeoutMs = 9e5) {
8478
8478
  const req = httpsRequest(`${base}${path}`, {
8479
8479
  method: "POST",
8480
8480
  timeout: timeoutMs,
8481
- headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.60.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
8481
+ headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.63.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
8482
8482
  }, (res) => {
8483
8483
  let buf = "";
8484
8484
  res.on("data", (c) => buf += c);
@@ -8520,7 +8520,7 @@ async function request(path, opts = {}, retried = false) {
8520
8520
  method: opts.method ?? (opts.body !== void 0 || opts.raw !== void 0 ? "POST" : "GET"),
8521
8521
  headers: {
8522
8522
  authorization: `Bearer ${token}`,
8523
- "user-agent": `ghosty-cli/${"0.60.0"}`,
8523
+ "user-agent": `ghosty-cli/${"0.63.0"}`,
8524
8524
  "accept-language": lang(),
8525
8525
  ...opts.body !== void 0 ? { "content-type": "application/json" } : {},
8526
8526
  ...opts.headers
@@ -9341,8 +9341,14 @@ ${dim(t(`${r3.beforeChars} \u2192 ${r3.chars} chars. Dry run: nothing changed.`,
9341
9341
  const raw = await readFile3(resolve(v.catalog), "utf8");
9342
9342
  body.catalogo = v.catalog.toLowerCase().endsWith(".json") ? JSON.parse(raw) : parseCsv(raw);
9343
9343
  }
9344
+ if (v.box) {
9345
+ const [mem, workers] = v.box.split(":").map((x) => Number(x.trim()));
9346
+ if (!Number.isInteger(mem) || workers !== void 0 && !Number.isInteger(workers))
9347
+ throw usage(t("Bad --box.", "--box inv\xE1lido."), "ghosty agents set <agent-id> --box 4096[:10] (MB[:conversations])");
9348
+ body.box = { memMb: mem, ...workers !== void 0 ? { workersPerVm: workers } : {} };
9349
+ }
9344
9350
  if (!Object.keys(body).length && done.length) return out({ id, updated: done }, () => `${lavender("\u2713")} ${t("Updated", "Actualizado")}: ${done.join(" \xB7 ")}`);
9345
- if (!Object.keys(body).length) throw usage(t("Nothing to change.", "Nada que cambiar."), t("Use", "Usa") + " --name, --engine, --model, --prompt, --prompt-file, --env, --unset-env, --channels, --toolsets, --tool, --connect, --disconnect, --voice, --voice-replies, --auto-stage, --quote, --catalog, --bag " + t("or", "o") + " --avatar.");
9351
+ if (!Object.keys(body).length) throw usage(t("Nothing to change.", "Nada que cambiar."), t("Use", "Usa") + " --name, --engine, --model, --prompt, --prompt-file, --env, --unset-env, --channels, --toolsets, --tool, --connect, --disconnect, --voice, --voice-replies, --auto-stage, --quote, --catalog, --box, --bag " + t("or", "o") + " --avatar.");
9346
9352
  const r = await api(agentPath(id), { method: "PATCH", body });
9347
9353
  out(r, () => `${lavender("\u2713")} ${t("Updated", "Actualizado")}: ${[...Object.keys(body), ...done].join(", ")}.`);
9348
9354
  }
@@ -10432,7 +10438,7 @@ async function call(path, v, init = {}) {
10432
10438
  "x-ghosty-ts": ts,
10433
10439
  "x-ghosty-sig": sig,
10434
10440
  "content-type": "application/json",
10435
- "user-agent": `ghosty-cli/${"0.60.0"}`
10441
+ "user-agent": `ghosty-cli/${"0.63.0"}`
10436
10442
  },
10437
10443
  body: method === "GET" ? void 0 : raw
10438
10444
  });
@@ -10933,6 +10939,16 @@ ${table(rows, ["table", "rows", "customer writes", "customer sees", "columns"])}
10933
10939
  ${dim(`${t(`${rows.length} row(s)`, `${rows.length} fila(s)`)} \xB7 ${Math.round(r.ms)} ms`)}`;
10934
10940
  });
10935
10941
  }
10942
+ case "origin": {
10943
+ db = need2(db, t("database (id or name)", "la base (id o nombre)"), "ghosty dbs origin <agent-id> <db> [--table T] [--since 2026-10-10] [--limit N]");
10944
+ const q = new URLSearchParams();
10945
+ if (v.table) q.set("table", v.table);
10946
+ if (v.since) q.set("since", v.since);
10947
+ if (v.limit) q.set("limit", v.limit);
10948
+ const r = await api(agentPath2(id, `/dbs/${enc6(db)}/origin${q.size ? `?${q}` : ""}`));
10949
+ const rows = r.writes.map((w) => ({ when: w.created_at, agent: w.agent_id.slice(0, 10), channel: w.canal ?? "", what: `${w.op} ${w.table_name}${w.row_id != null ? ` #${w.row_id}` : ""}`, customer: w.phone10 ?? "", why: w.reason ?? "" }));
10950
+ return out(r, () => rows.length ? table(rows, ["when", "agent", "channel", "what", "customer", "why"]) : dim(t("No agent writes recorded yet in this database.", "Todav\xEDa no hay escrituras de agentes registradas en esta base.")));
10951
+ }
10936
10952
  case "grant": {
10937
10953
  db = need2(db, t("database (id or name)", "la base (id o nombre)"), "ghosty dbs grant <agent-id> <db> [--external-write t1,t2] [--external-rows t:col+col]");
10938
10954
  let rowScope;
@@ -12178,6 +12194,7 @@ var HELPS_ES = {
12178
12194
  ["--unset-env K1,K2", "set: borra esas variables del env (--env K= tambi\xE9n borra K)"],
12179
12195
  ["--tool [ch:]tool=on|off", "set: prende/apaga una tool en un canal (wa:actualizar_identidad=off) o en todos (crm_buscar=off); separadas por comas"],
12180
12196
  ["--bag NAME|none", "set: de qu\xE9 bolsa de tokens de su espacio gasta; none = el saldo del espacio (s\xF3lo staff)"],
12197
+ ["--box MB[:N]", "set: RAM de su caja (1024, 2048, 4096, 8192) y conversaciones a la vez, p. ej. 4096:10; recicla sus cajas (s\xF3lo staff)"],
12181
12198
  ["--avatar URL|FILE", "set: su cara en Teams: una liga https o un JPEG/PNG/WebP local (se guarda en img.ghosty.studio)"],
12182
12199
  ["--from-workspace", "rm: lo desactiva en cada Teams donde est\xE9 y luego lo borra (due\xF1o o staff)"],
12183
12200
  ["--prompt-mode M", "set: append (default: su prompt + la persona de Ghosty) o replace (s\xF3lo su prompt)"],
@@ -12230,6 +12247,7 @@ var HELPS_ES = {
12230
12247
  ["--rehost-images t.col,\u2026", "import: copia las ligas de imagen de esas columnas al almacenamiento p\xFAblico de Ghosty (ligas permanentes en img.ghosty.studio)"],
12231
12248
  ["--table T --column C", "rehost: la columna de ligas de imagen (p. ej. catalogo imagen_url) que se pasa a ligas permanentes en img.ghosty.studio; idempotente, una liga que falla se queda como estaba"],
12232
12249
  ["--key-column K --dir DIR", "photos put: cada archivo de DIR se llama como la clave de su fila (SKU-123.jpg \u2192 la fila donde K = SKU-123); va al almacenamiento permanente y su liga a --column (default imagen_url)"],
12250
+ ["--since DATE --limit N", "origin: escrituras de agentes desde esa fecha (p. ej. 2026-10-10), hasta N (default 50)"],
12233
12251
  ["-n, --dry-run", "import: imprime el plan (+ crear, ~ reemplazar N \u2192 M filas) y las filas que s\xF3lo existen en gs, no cambia nada \xB7 photos put: lista las claves sin fila y los archivos que no son imagen \xB7 rename: lista los prompts, env y skills que la nombran \xB7 rm: tablas, filas y agentes que la perder\xEDan"],
12234
12252
  ["--yes", "import, rm: se salta la confirmaci\xF3n (obligatorio sin terminal)"]
12235
12253
  ],
@@ -12516,6 +12534,16 @@ var HELPS_ES = {
12516
12534
  summary: "Staff de Ghosty: qu\xE9 avisos (push) se le mandaron a alguien (fin de turno, permiso, escalar, documento\u2026), a qu\xE9 dispositivo y qu\xE9 contest\xF3 Apple/Google. Se registran desde el 1-oct y se guardan 30 d\xEDas.",
12517
12535
  notes: ["thread ense\xF1a la clase de la conversaci\xF3n: un \xABchannel\xBB ah\xED es que le lleg\xF3 el aviso de un cliente.", "Tambi\xE9n salen los push de las novedades (kind novedad)."]
12518
12536
  },
12537
+ support: {
12538
+ summary: "Pide ayuda a Ghosty. Soporte es por correo: cada caso tiene su propia direcci\xF3n de respuesta, as\xED que contestar el correo (o escribir aqu\xED) cae en el mismo caso. Tambi\xE9n te lo abre tu agente: \xABrep\xF3rtalo a soporte\xBB.",
12539
+ notes: [
12540
+ "El caso lleva tu cuenta, tus agentes y sus errores recientes: no hace falta repetirlos.",
12541
+ "Contestar un caso resuelto lo reabre.",
12542
+ "El staff contesta desde su correo: /resuelto en la primera l\xEDnea cierra el caso.",
12543
+ "link liga un caso al issue o PR de GitHub que lo arregla; varios casos al mismo funcionan como tracker. Al cerrarse el issue como completado (o mergearse el PR) a cada cliente le llega \xABya qued\xF3\xBB y su caso se resuelve.",
12544
+ "Solo: al staff le llega un recordatorio tras 4 h sin respuesta; un caso esperando al cliente se cierra solo a los 7 d\xEDas (si contesta, se reabre)."
12545
+ ]
12546
+ },
12519
12547
  novedades: {
12520
12548
  summary: "Staff de Ghosty: las novedades de la app Android. Cada una con su ilustraci\xF3n; mismos frenos que el admin: pru\xE9bala en tu tel\xE9fono primero, push de 9 a 21 h CDMX, 72 h entre env\xEDos a todos.",
12521
12549
  notes: ["ls dice, de una ya enviada, cu\xE1ntos entreg\xF3 y rechaz\xF3 FCM (del push log, desde el 1-oct).", "--image se publica en img.ghosty.studio (WebP 1200 px). --to vac\xEDo = todos. send sin --at la manda ya (pregunta); --at '' quita la programaci\xF3n.", "--min-version N (versionCode de Android): si la app del tester es m\xE1s vieja, el bot\xF3n dice \xABActualizar\xBB y lanza la actualizaci\xF3n de Play desde la app; '' la quita."]
@@ -12569,6 +12597,14 @@ var HELPS_ES = {
12569
12597
  "Revocar corta en el siguiente request. Asignar dos veces no hace nada (una sola activa por par)."
12570
12598
  ]
12571
12599
  },
12600
+ settings: {
12601
+ summary: "Perillas de la plataforma que se mueven desde el CLI (staff de Ghosty): qu\xE9 agente atiende /c sin cuenta en caja, qu\xE9 agentes y superficies tienen subagentes nativos, el constructor de p\xE1ginas para todos. Cada cambio queda en la bit\xE1cora; las que llevan JSON siguen en /admin/settings.",
12602
+ flags: [],
12603
+ notes: [
12604
+ "En listas (ids, superficies) +x agrega y -x quita sobre lo que vale hoy (fila, env o default); sin signos, se reemplaza.",
12605
+ "unset borra la fila: vuelve a mandar el env o el default del c\xF3digo."
12606
+ ]
12607
+ },
12572
12608
  audit: {
12573
12609
  summary: "La bit\xE1cora (AuditEvent): qui\xE9n entr\xF3 \xABcomo\xBB qui\xE9n, qu\xE9 cambi\xF3 en la ficha y en los canales de un agente, pausas y respuestas desde el CLI, traspasos, staff que entra o sale. El staff de Ghosty ve todo; cualquier otra cuenta, s\xF3lo lo de sus espacios y agentes.",
12574
12610
  flags: [
@@ -12625,7 +12661,7 @@ var HELPS = {
12625
12661
  "ghosty agents create --name NAME [--engine E] [--model M] [--prompt TEXT | --prompt-file FILE] [--env K=V,\u2026] [--workspace SLUG] [--channels teams=off,\u2026] [--like AGENT [--copy-dbs] [--board same|main|new|NAME] [--no-notify] [--dry-run]]",
12626
12662
  "ghosty agents get <agent-id> [--fields name,model,prompt] [--prompt-out FILE]",
12627
12663
  "ghosty agents export <agent-id> [--out DIR] # the agent as a file; see ghosty apply --help",
12628
- "ghosty agents set <agent-id> [--name] [--engine] [--model] [--prompt | --prompt-file] [--env K=V,\u2026] [--unset-env K1,K2] [--connect ID,\u2026] [--disconnect ID,\u2026] [--voice E:ID] [--voice-replies auto|off] [--auto-stage on|off] [--toolsets crm,sales | +crm,-sales] [--tool [channel:]tool=on|off,\u2026] [--bag NAME|none] [--avatar URL|FILE]",
12664
+ "ghosty agents set <agent-id> [--name] [--engine] [--model] [--prompt | --prompt-file] [--env K=V,\u2026] [--unset-env K1,K2] [--connect ID,\u2026] [--disconnect ID,\u2026] [--voice E:ID] [--voice-replies auto|off] [--auto-stage on|off] [--toolsets crm,sales | +crm,-sales] [--tool [channel:]tool=on|off,\u2026] [--bag NAME|none] [--box MB[:N]] [--avatar URL|FILE]",
12629
12665
  "ghosty agents set <agent-id> --engine E [--model M] --dry-run # what changing the engine does (sessions, machines, memory), without changing it",
12630
12666
  "ghosty agents set <agent-id> --prompt-base <base-agent-id> --prompt-overlay overlay.json [--dry-run [--out FILE]] | --prompt-base none",
12631
12667
  "ghosty agents set <agent-id> --prompt-patch overlay.json [--prompt-append FILE] [--dry-run] # change one piece of the prompt, on the server's current one",
@@ -12727,6 +12763,7 @@ var HELPS = {
12727
12763
  ["--unset-env K1,K2", "set: delete these env variables (--env K= also deletes K)"],
12728
12764
  ["--tool [ch:]tool=on|off", "set: one tool on/off in one channel (wa:actualizar_identidad=off) or everywhere (crm_buscar=off); comma-separated"],
12729
12765
  ["--bag NAME|none", "set: the token bag of its workspace it spends from; none = the workspace balance (staff only)"],
12766
+ ["--box MB[:N]", "set: its box's RAM (1024, 2048, 4096, 8192) and conversations at once, e.g. 4096:10; recycles its boxes (staff only)"],
12730
12767
  ["--avatar URL|FILE", "set: its face in Teams: an https link or a local JPEG/PNG/WebP (stored at img.ghosty.studio)"],
12731
12768
  ["--from-workspace", "rm: turn it off in every Teams where it's active, then delete it (owner or staff)"],
12732
12769
  ["--prompt-mode M", "set: append (default: its prompt + Ghosty's persona) or replace (its prompt only)"],
@@ -12806,6 +12843,7 @@ var HELPS = {
12806
12843
  "ghosty dbs ls <agent-id> [--orphans]",
12807
12844
  "ghosty dbs tables <agent-id> <db>",
12808
12845
  'ghosty dbs query <agent-id> <db> "SQL" [--arg V]\u2026 [--write]',
12846
+ "ghosty dbs origin <agent-id> <db> [--table T] [--since 2026-10-10] [--limit N]",
12809
12847
  "ghosty dbs export <agent-id> <db> [--table T] [--out FILE]",
12810
12848
  "ghosty dbs import <agent-id> <db> --from easybits:<db-id> [--tables a,b] [--append] [--rehost-images t.col,\u2026] [--dry-run] [--yes]",
12811
12849
  "ghosty dbs rehost <agent-id> <db> --table T --column C [--dry-run]",
@@ -12829,6 +12867,7 @@ var HELPS = {
12829
12867
  ["--rehost-images t.col,\u2026", "import: copy the image links in those columns to Ghosty's public storage (permanent links at img.ghosty.studio)"],
12830
12868
  ["--table T --column C", "rehost: the column of image links (e.g. catalogo imagen_url) to move to permanent links at img.ghosty.studio; idempotent, a link that fails stays as it was"],
12831
12869
  ["--key-column K --dir DIR", "photos put: each file in DIR is named after its row's key (SKU-123.jpg \u2192 the row where K = SKU-123); it goes to permanent storage and its link to --column (default imagen_url)"],
12870
+ ["--since DATE --limit N", "origin: agent writes since that date (e.g. 2026-10-10), up to N (default 50)"],
12832
12871
  ["-n, --dry-run", "import: print the plan (+ create, ~ replace N \u2192 M rows) and the rows that exist only in gs, change nothing \xB7 photos put: list keys with no row and files that aren't images \xB7 rename: list the prompts, env and skills that name it \xB7 rm: tables, rows and agents that would lose it"],
12833
12872
  ["--yes", "import, rm: skip the confirmation (required when not interactive)"]
12834
12873
  ],
@@ -13260,6 +13299,22 @@ HELPS.push = {
13260
13299
  notes: ["thread shows the conversation's kind: a \xABchannel\xBB there means a customer's push reached them.", "Announcement pushes appear too (kind novedad)."],
13261
13300
  learn: `${REF}#soporte`
13262
13301
  };
13302
+ HELPS.support = {
13303
+ summary: "Ask Ghosty for help. Support is by email: each case has its own reply address, so answering the email (or writing here) lands in the same case. Your agent can open one too: \xABreport it to support\xBB.",
13304
+ usage: [
13305
+ "ghosty support open --title T --body TEXT",
13306
+ "ghosty support ls",
13307
+ "ghosty support show <id>",
13308
+ "ghosty support reply <id> --body TEXT",
13309
+ "ghosty support ls|show --all [--status open|waiting_customer|resolved] (staff)",
13310
+ "ghosty support reply <id> --all --body TEXT [--resolve] (staff: emails the customer)",
13311
+ "ghosty support resolve|reopen <id> (staff)",
13312
+ "ghosty support link <id> <owner/repo#12 | issue/PR URL> (staff)"
13313
+ ],
13314
+ examples: ['ghosty support open --title "My agent stopped answering on WhatsApp" --body "Since yesterday 6 pm\u2026"', "ghosty support ls --all", 'ghosty support reply <id> --all --body "Fixed, try again" --resolve'],
13315
+ notes: ["The case carries your account, agents and recent errors, so you don't have to repeat them.", "Replying to a resolved case reopens it.", "Staff answer from their own inbox too: /resuelto on the first line closes the case.", "link ties a case to the GitHub issue or PR that fixes it; several cases on the same one act as a tracker. When the issue closes as completed (or the PR merges) each customer gets \xABya qued\xF3\xBB and the case resolves.", "Automatic: staff get a reminder after 4 h without an answer; a case waiting on the customer closes itself after 7 days (replying reopens it)."],
13316
+ learn: `${REF}#soporte`
13317
+ };
13263
13318
  HELPS.novedades = {
13264
13319
  summary: "Ghosty staff: the Android app's announcements (what's new). Each one needs its own illustration; same brakes as the admin: test on your phone first, push 9\u201321 h CDMX, 72 h between pushes to everyone.",
13265
13320
  usage: [
@@ -13344,6 +13399,22 @@ HELPS.staff = {
13344
13399
  ],
13345
13400
  learn: `${REF}#staff-asignado`
13346
13401
  };
13402
+ HELPS.settings = {
13403
+ summary: "Platform switches you can flip from the CLI (Ghosty staff): which agent answers /c without an account in a box, which agents and surfaces have native subagents, the page builder for everyone. Every change is logged; switches that carry JSON stay in /admin/settings.",
13404
+ usage: ["ghosty settings ls", "ghosty settings set <KEY> <value|+id|-id>", "ghosty settings unset <KEY>"],
13405
+ flags: [],
13406
+ examples: [
13407
+ "ghosty settings ls",
13408
+ "ghosty settings set ANON_NATIVE_AGENT_ID cmu7pgbyr0001gee3ruk172mm",
13409
+ "ghosty settings set NATIVE_SUBAGENT_AGENTS +cmu7pgbyr0001gee3ruk172mm",
13410
+ "ghosty settings unset ANON_NATIVE_AGENT_ID"
13411
+ ],
13412
+ notes: [
13413
+ "In lists (ids, surfaces) +x adds and -x removes over the current value (row, env or default); without signs the value is replaced.",
13414
+ "unset deletes the row: the env or the code default applies again."
13415
+ ],
13416
+ learn: `${REF}#ajustes`
13417
+ };
13347
13418
  HELPS.audit = {
13348
13419
  summary: "The audit log (AuditEvent): who logged in \xABas\xBB whom, what changed on an agent's page and channels, pauses and replies from the CLI, transfers, staff in and out. Ghosty staff see everything; anyone else, only the events of their own workspaces and agents.",
13349
13420
  usage: ["ghosty audit ls [--workspace SLUG] [--agent ID] [--actor EMAIL] [--action A] [--since 7d] [--limit 50] [--full]"],
@@ -13911,9 +13982,9 @@ ${dim(t(`Next: ghosty use ${r.workspace} \xB7 ghosty partner enable ${r.workspac
13911
13982
  if (v.combo) steps.push({ label: "combo", path: wsPath(slug, "/combo"), body: { combo: v.combo } });
13912
13983
  if (cap !== void 0) steps.push({ label: "model-cap", path: wsPath(slug, "/model-cap"), body: { cap } });
13913
13984
  if (house !== void 0) steps.push({ label: "house-claude", path: wsPath(slug, "/house-claude"), body: { on: house } });
13914
- const show = (x) => x === null ? t("plan's", "el del plan") : x === true ? "on" : x === false ? "off" : String(x);
13985
+ const show2 = (x) => x === null ? t("plan's", "el del plan") : x === true ? "on" : x === false ? "off" : String(x);
13915
13986
  const plans = await Promise.all(steps.map(async (st) => ({ ...st, plan: await api(st.path, { method: "POST", body: { ...st.body, dryRun: true } }) })));
13916
- const lines = plans.map((p) => `${p.plan.workspace}: ${p.label} ${show(p.plan.from)} \u2192 ${show(p.plan.to)}`);
13987
+ const lines = plans.map((p) => `${p.plan.workspace}: ${p.label} ${show2(p.plan.from)} \u2192 ${show2(p.plan.to)}`);
13917
13988
  const pending = plans.filter((p) => p.plan.changed);
13918
13989
  if (!pending.length) return out(plans.map((p) => p.plan), () => dim(t(`Nothing to do: ${slug} already has that.`, `Nada que hacer: ${slug} ya lo tiene.`)));
13919
13990
  if (v["dry-run"]) return out(plans.map((p) => p.plan), () => `${lines.join("\n")}
@@ -13924,7 +13995,7 @@ ${dim(t("Dry run: nothing changed.", "Simulaci\xF3n: no cambi\xF3 nada."))}`);
13924
13995
  ${t("Change it?", "\xBFCambiarlo?")}`, { yes: v.yes, retry });
13925
13996
  const done = [];
13926
13997
  for (const p of pending) done.push(await api(p.path, { method: "POST", body: p.body }));
13927
- return out(done, () => done.map((r, i) => `${lavender("\u2713")} ${r.workspace}: ${pending[i].label} ${show(r.to)}`).join("\n"));
13998
+ return out(done, () => done.map((r, i) => `${lavender("\u2713")} ${r.workspace}: ${pending[i].label} ${show2(r.to)}`).join("\n"));
13928
13999
  }
13929
14000
  if (sub === "renew") {
13930
14001
  slug = needSpace(slug ?? context, ex);
@@ -14444,6 +14515,21 @@ async function staffCmd(sub, staff, client, v) {
14444
14515
  throw usage(t(`Unknown staff subcommand: ${sub}.`, `Subcomando de staff desconocido: ${sub}.`), "ghosty staff ls|assign|unassign <staff-email> [client-email]");
14445
14516
  }
14446
14517
 
14518
+ // src/commands/settings.ts
14519
+ var show = (rows) => table(rows.map((s2) => ({ key: s2.key, value: s2.value ?? "", from: s2.from, what: s2.what })), ["key", "value", "from", "what"]);
14520
+ async function settingsCmd(sub, key, value) {
14521
+ if (!sub || sub === "ls" || sub === "list") {
14522
+ const r = await api("/api/v2/staff/settings");
14523
+ return out(r, () => show(r.settings));
14524
+ }
14525
+ if (sub === "set" || sub === "unset") {
14526
+ if (!key || sub === "set" && !value) throw usage(t("Missing key or value.", "Falta la clave o el valor."), sub === "set" ? "ghosty settings set <KEY> <value|+id|-id>" : "ghosty settings unset <KEY>");
14527
+ const r = await api("/api/v2/staff/settings", { method: sub === "set" ? "POST" : "DELETE", body: { key, ...sub === "set" ? { value } : {} } });
14528
+ return out(r, () => `${lavender("\u2713")} ${r.key}: ${r.from ?? dim(t("(none)", "(nada)"))} \u2192 ${r.to ?? dim(t("(none: env or default)", "(nada: env o default)"))}`);
14529
+ }
14530
+ throw usage(t(`Unknown settings subcommand: ${sub}.`, `Subcomando de settings desconocido: ${sub}.`), "ghosty settings ls|set|unset <KEY> [value]");
14531
+ }
14532
+
14447
14533
  // src/commands/support.ts
14448
14534
  import { readFile as readFile14 } from "node:fs/promises";
14449
14535
  var enc13 = encodeURIComponent;
@@ -14661,6 +14747,59 @@ async function userDoctor(email, agent, v) {
14661
14747
  return lines.join("\n");
14662
14748
  });
14663
14749
  }
14750
+ var STATUS = (s2) => s2 === "open" ? t("open", "abierto") : s2 === "waiting_customer" ? t("waiting on customer", "esperando al cliente") : s2 === "resolved" ? t("resolved", "resuelto") : s2;
14751
+ async function supportCmd(sub, id, v) {
14752
+ if (!sub || sub === "ls" || sub === "list") {
14753
+ const q = new URLSearchParams({ ...v.status ? { status: v.status } : {}, ...v.limit ? { limit: v.limit } : {} });
14754
+ const r = v.all ? await api(`/api/v2/support/cases?${q}`) : await api("/api/v2/me/support");
14755
+ const rows = r.cases.map((c) => ({ id: c.id, code: c.code, status: STATUS(c.status), title: c.title.slice(0, 50), ...v.all ? { email: c.email } : {}, last: cdmx(c.lastMessageAt) }));
14756
+ return out(r, () => rows.length ? table(rows, v.all ? ["id", "code", "status", "title", "email", "last"] : ["id", "code", "status", "title", "last"]) : dim(t("No cases.", "Sin casos.")));
14757
+ }
14758
+ if (sub === "open") {
14759
+ if (!v.body) throw usage(t("Missing --body.", "Falta --body."), 'ghosty support open --title "\u2026" --body "\u2026"');
14760
+ const r = await api("/api/v2/me/support", { method: "POST", body: { title: v.title ?? "", body: v.body } });
14761
+ return out(r, () => `${lavender("\u2713")} ${t("Case", "Caso")} ${bold(r.case.code)} ${t("opened. We'll answer by email at", "abierto. Te contestamos por correo a")} ${r.case.email}.
14762
+ ${dim(r.case.id)}`);
14763
+ }
14764
+ if (!id) throw usage(t("Missing the case id.", "Falta el id del caso."), "ghosty support ls");
14765
+ if (sub === "show") {
14766
+ const r = v.all ? await api(`/api/v2/support/cases/${enc13(id)}`) : await api(`/api/v2/me/support/${enc13(id)}`);
14767
+ const c = r.case;
14768
+ return out(r, () => {
14769
+ const who2 = (a) => a === "staff" ? "Ghosty" : a === "agent" ? t("agent", "agente") : a === "customer" ? t("customer", "cliente") : a;
14770
+ const ctx = c.context;
14771
+ const lines = [
14772
+ `${bold(c.code)} ${c.title} ${dim(`\xB7 ${STATUS(c.status)} \xB7 ${c.email} \xB7 ${c.channel}`)}`,
14773
+ ...ctx?.plan ? [dim(` plan ${ctx.plan}`)] : [],
14774
+ ...(ctx?.agents ?? []).map((a) => dim(` ${a.name ?? a.id} ${a.engine}/${a.model ?? ""}`) + (a.failedTurns ? red(` \xB7 ${a.failedTurns} ${t("failed turns", "turnos con error")}`) : "")),
14775
+ ...ctx?.thread ? [dim(` ghosty conversations show ${ctx.thread.agentId} ${ctx.thread.sessionId} --why`)] : [],
14776
+ "",
14777
+ ...c.thread.map((m) => `${dim(cdmx(m.createdAt))} ${bold(who2(m.author))}${m.authorEmail ? dim(` ${m.authorEmail}`) : ""} ${dim(`(${m.via})`)}
14778
+ ${m.body}${m.attachments.length ? dim(`
14779
+ \u{1F4CE} ${m.attachments.map((a) => a.name).join(", ")}`) : ""}
14780
+ `)
14781
+ ];
14782
+ return lines.join("\n");
14783
+ });
14784
+ }
14785
+ if (sub === "reply") {
14786
+ if (!v.body && !v.resolve) throw usage(t("Missing --body.", "Falta --body."), 'ghosty support reply <id> --body "\u2026" [--resolve]');
14787
+ const r = v.all || v.resolve ? await api(`/api/v2/support/cases/${enc13(id)}`, { method: "POST", body: { intent: "reply", body: v.body ?? "", resolve: Boolean(v.resolve) } }) : await api(`/api/v2/me/support/${enc13(id)}`, { method: "POST", body: { body: v.body } });
14788
+ return out(r, () => `${lavender("\u2713")} ${r.case.code} \xB7 ${STATUS(r.case.status)}`);
14789
+ }
14790
+ if (sub === "link") {
14791
+ const ref = v.ref;
14792
+ if (!ref) throw usage(t("Missing the issue or PR.", "Falta el issue o PR."), "ghosty support link <id> owner/repo#12 (or the issue/PR URL)");
14793
+ const r = await api(`/api/v2/support/cases/${enc13(id)}`, { method: "POST", body: { intent: "link", ref } });
14794
+ return out(r, () => `${lavender("\u2713")} ${r.case.code} \u2192 ${bold(r.ref)} ${dim(`(${r.github.title})`)}${r.alsoWaiting ? `
14795
+ ${dim(t(`${r.alsoWaiting} more cases wait for the same fix: all get "fixed" when it closes.`, `Otros ${r.alsoWaiting} casos esperan el mismo arreglo: a todos les llega \xABya qued\xF3\xBB al cerrarse.`))}` : ""}`);
14796
+ }
14797
+ if (sub === "resolve" || sub === "reopen") {
14798
+ const r = await api(`/api/v2/support/cases/${enc13(id)}`, { method: "POST", body: { intent: sub } });
14799
+ return out(r, () => `${lavender("\u2713")} ${r.case.code} \xB7 ${STATUS(r.case.status)}`);
14800
+ }
14801
+ throw usage(t(`Unknown support subcommand: ${sub}.`, `Subcomando de support desconocido: ${sub}.`), "ghosty support ls | open | show | reply | resolve | reopen | link");
14802
+ }
14664
14803
 
14665
14804
  // src/index.ts
14666
14805
  var HELP_EN = `${bold("Usage:")} ghosty <command> [options]
@@ -14690,6 +14829,7 @@ ${bold("Workspaces")} ${dim("(changing them: Ghosty staff)")}
14690
14829
  spaces log <workspace> Its log: transfers, staff in/out, renewals (owner or staff) [--since 30d] [--action workspace]
14691
14830
  staff ls [staff-email] [client-email] Ghosty staff assigned to client accounts (staff) [--all: also revoked]
14692
14831
  staff assign|unassign <staff> <client> Staff sees and runs that account's agents, documents, databases and boards as themselves (no keys, billing or transfers; logged) [--reason]
14832
+ settings ls|set|unset <KEY> [value] Platform switches (staff): who answers /c without an account, native subagents\u2026 [+id/-id edits a list]
14693
14833
  audit ls The audit log: who changed what (agent page, channels, pauses, replies, transfers, "log in as") [--workspace SLUG] [--agent ID] [--actor EMAIL] [--action A] [--since 24h] [--limit N]
14694
14834
  factory runs ls|show|why|stats|rename A workspace's Software Factory runs: list (time and cost), detail (plan, PR, preview, who is working), where the time and money went, why it got stuck or failed, totals, fix a title [--workspace SLUG] [--room R] [--status S] [show --timing] [why --refresh] [stats --since 30d --repo R]
14695
14835
 
@@ -14712,7 +14852,7 @@ ${bold("Agents")}
14712
14852
  [--toolsets crm,sales | +crm,-sales] gs tool groups it gets
14713
14853
  [--prompt-base AGENT|none --prompt-overlay FILE [--dry-run]] prompt = another agent's + edits, kept in sync
14714
14854
  [--prompt-patch overlay.json | --prompt-append FILE [--dry-run]] change one piece of the prompt, on the server's current one
14715
- [--tool wa:tool=off,\u2026] [--bag NAME|none] [--avatar URL|FILE] a tool per channel \xB7 its token bag (staff) \xB7 its face in Teams
14855
+ [--tool wa:tool=off,\u2026] [--bag NAME|none] [--box MB[:N]] [--avatar URL|FILE] a tool per channel \xB7 its token bag and box size (staff) \xB7 its face in Teams
14716
14856
  [--prompt-mode append|replace] replace = its prompt WITHOUT Ghosty's house persona
14717
14857
  agents doctor <id> Check the config: overlapping skills, tools the prompt names, broken grants, failing turns
14718
14858
  agents docs ls|grant|revoke <id> [doc] Documents it reads and may send [--write] [--no-deliver]
@@ -14770,6 +14910,9 @@ ${bold("Support")} ${dim("(Ghosty staff)")}
14770
14910
  conversations show <id> <conv> --why A conversation: who sees it in their list / by link, and why
14771
14911
  turns stats Real failure rate by engine and error [--since 14d] [--all]
14772
14912
  push log --user EMAIL Pushes sent to someone and what Apple/Google answered [--since 2d]
14913
+ support ls|show|reply --all The support inbox; reply goes to the customer by email [--status open|waiting_customer|resolved] [--resolve]
14914
+ support resolve|reopen <id> Close a case (emails the customer) or reopen it
14915
+ support link <id> <issue|PR> Tie it to the GitHub fix: when it closes, every tied case gets "fixed" by email
14773
14916
  novedades ls|create|set|test|send|rm Android app announcements [--title] [--body] [--image FILE] [--link] [--to] [--min-version N] [--publish] [--at]
14774
14917
 
14775
14918
  ${bold("Sites")} ${dim("(sites your agents publish at <slug>.ghosty.page)")}
@@ -14816,6 +14959,8 @@ ${bold("Your account")}
14816
14959
  me memories ls|add|edit|rm What your agents remember about you (personal chats only) add "text" \xB7 edit <id> "text" \xB7 rm <id>
14817
14960
  credentials ls|set|rm [provider] Provider keys in your vault (hidden prompt, stdin or --from-env VAR; never as an argument)
14818
14961
  connectors ls|connect|disconnect [id] Your connectors (Shopify, Stripe, monday\u2026): connect opens the browser or asks for the key
14962
+ support open --title T --body TEXT Ask Ghosty for help; we answer by email (or ask your agent: "report it to support")
14963
+ support ls | show <id> | reply <id> --body TEXT Your support cases (replying to the email works too)
14819
14964
  docs [topic] Open the docs
14820
14965
 
14821
14966
  ${bold("Global options")}
@@ -14858,6 +15003,7 @@ ${bold("Espacios")} ${dim("(cambiarlos: staff de Ghosty)")}
14858
15003
  spaces log <espacio> Su bit\xE1cora: traspasos, staff que entra o sale, renovaciones (due\xF1o o staff) [--since 30d] [--action workspace]
14859
15004
  staff ls [correo-staff] [correo-cliente] Staff de Ghosty asignado a cuentas cliente (staff) [--all: tambi\xE9n revocadas]
14860
15005
  staff assign|unassign <staff> <cliente> El staff ve y opera agentes, documentos, bases y tableros de esa cuenta como s\xED mismo (sin llaves, cobro ni traspasos; queda en bit\xE1cora) [--reason]
15006
+ settings ls|set|unset <CLAVE> [valor] Perillas de la plataforma (staff): qui\xE9n atiende /c sin cuenta, subagentes nativos\u2026 [+id/-id edita una lista]
14861
15007
  audit ls La bit\xE1cora: qui\xE9n cambi\xF3 qu\xE9 (ficha, canales, pausas, respuestas, traspasos, \xABentrar como\xBB) [--workspace SLUG] [--agent ID] [--actor CORREO] [--action A] [--since 24h] [--limit N]
14862
15008
  factory runs ls|show|why|stats|rename Los pedidos de la Software Factory de un espacio: lista (tiempo y costo), detalle (plan, PR, preview, qui\xE9n trabaja), en qu\xE9 se fue el tiempo y el dinero, por qu\xE9 se ator\xF3 o fall\xF3, totales, corregir un t\xEDtulo [--workspace SLUG] [--room R] [--status S] [show --timing] [why --refresh] [stats --since 30d --repo R]
14863
15009
 
@@ -14880,7 +15026,7 @@ ${bold("Agentes")}
14880
15026
  [--toolsets crm,sales | +crm,-sales] grupos de tools de gs que recibe
14881
15027
  [--prompt-base AGENTE|none --prompt-overlay ARCHIVO [--dry-run]] prompt = el de otro agente + ediciones, sincronizado
14882
15028
  [--prompt-patch overlay.json | --prompt-append ARCHIVO [--dry-run]] cambia un pedazo del prompt, sobre el actual del servidor
14883
- [--tool wa:tool=off,\u2026] [--bag NOMBRE|none] [--avatar URL|ARCHIVO] una tool por canal \xB7 su bolsa de tokens (staff) \xB7 su cara en Teams
15029
+ [--tool wa:tool=off,\u2026] [--bag NOMBRE|none] [--box MB[:N]] [--avatar URL|ARCHIVO] una tool por canal \xB7 su bolsa de tokens y tama\xF1o de caja (staff) \xB7 su cara en Teams
14884
15030
  [--prompt-mode append|replace] replace = su prompt SIN la persona de casa de Ghosty
14885
15031
  agents doctor <id> Revisa la configuraci\xF3n: skills encimadas, tools que nombra el prompt, permisos rotos, turnos que fallan
14886
15032
  agents docs ls|grant|revoke <id> [doc] Documentos que lee y puede enviar [--write] [--no-deliver]
@@ -14938,6 +15084,9 @@ ${bold("Soporte")} ${dim("(staff de Ghosty)")}
14938
15084
  conversations show <id> <conv> --why Una conversaci\xF3n: qui\xE9n la ve en su lista / por liga, y por qu\xE9
14939
15085
  turns stats Tasa real de fallos por motor y por error [--since 14d] [--all]
14940
15086
  push log --user CORREO Avisos que se le mandaron a alguien y qu\xE9 contest\xF3 Apple/Google [--since 2d]
15087
+ support ls|show|reply --all La bandeja de soporte; la respuesta le llega al cliente por correo [--status open|waiting_customer|resolved] [--resolve]
15088
+ support resolve|reopen <id> Cerrar un caso (le avisa al cliente) o reabrirlo
15089
+ support link <id> <issue|PR> Ligarlo al arreglo en GitHub: al cerrarse, a todos los casos ligados les llega \xABya qued\xF3\xBB
14941
15090
  novedades ls|create|set|test|send|rm Novedades de la app Android [--title] [--body] [--image ARCHIVO] [--link] [--to] [--min-version N] [--publish] [--at]
14942
15091
 
14943
15092
  ${bold("Sitios")} ${dim("(los sitios que publican tus agentes en <slug>.ghosty.page)")}
@@ -14984,6 +15133,8 @@ ${bold("Tu cuenta")}
14984
15133
  me memories ls|add|edit|rm Lo que tus agentes recuerdan de ti (s\xF3lo chats personales) add "texto" \xB7 edit <id> "texto" \xB7 rm <id>
14985
15134
  credentials ls|set|rm [proveedor] Llaves de proveedor en tu b\xF3veda (prompt oculto, stdin o --from-env VAR; nunca como argumento)
14986
15135
  connectors ls|connect|disconnect [id] Tus conectores (Shopify, Stripe, monday\u2026): connect abre el navegador o pide la llave
15136
+ support open --title T --body TEXTO Pide ayuda a Ghosty; te contestamos por correo (o dile a tu agente \xABrep\xF3rtalo a soporte\xBB)
15137
+ support ls | show <id> | reply <id> --body TEXTO Tus casos de soporte (contestar el correo tambi\xE9n sirve)
14987
15138
  docs [tema] Abre la documentaci\xF3n
14988
15139
 
14989
15140
  ${bold("Opciones globales")}
@@ -14999,7 +15150,7 @@ ${bold("Opciones globales")}
14999
15150
  ${bold("C\xF3digos de salida")} 0 bien \xB7 1 error de la API \xB7 2 uso incorrecto \xB7 3 sin sesi\xF3n
15000
15151
  ${dim("Nota: `ghosty` puede chocar con otro binario en tu PATH (p. ej. la TUI de Ghosty). Rev\xEDsalo con `which -a ghosty`; corre `npx @ghostystudio/cli` para ir a la segura.")}
15001
15152
  ${dim("Documentaci\xF3n: https://www.ghosty.studio/docs/cli")}`;
15002
- var COMMANDS = ["login", "logout", "whoami", "usage", "use", "apply", "plan", "engines", "bags", "spaces", "workspaces", "staff", "audit", "factory", "demos", "sites", "push", "novedades", "completion", "cards", "agents", "files", "skills", "mcp", "dbs", "turns", "try", "chat", "conversations", "schedule", "partner", "me", "channels", "board", "boards", "credentials", "connectors", "browser", "docs", "help"];
15153
+ var COMMANDS = ["login", "logout", "whoami", "usage", "use", "apply", "plan", "engines", "bags", "spaces", "workspaces", "staff", "settings", "audit", "factory", "demos", "sites", "push", "novedades", "completion", "cards", "agents", "files", "skills", "mcp", "dbs", "turns", "try", "chat", "conversations", "schedule", "partner", "me", "channels", "board", "boards", "credentials", "connectors", "browser", "support", "docs", "help"];
15003
15154
  var AGENTS_SUBS = ["ls", "create", "get", "set", "export", "doctor", "docs", "share", "unshare", "shares", "teams", "rm", "restart", "demo", "embed", "box"];
15004
15155
  function unknown(what, input, known, helpCmd) {
15005
15156
  const s2 = suggest(input, known);
@@ -15152,6 +15303,7 @@ async function main() {
15152
15303
  "columns-from": { type: "string" },
15153
15304
  to: { type: "string" },
15154
15305
  all: { type: "boolean" },
15306
+ resolve: { type: "boolean" },
15155
15307
  clear: { type: "boolean" },
15156
15308
  expires: { type: "string" },
15157
15309
  lang: { type: "string" },
@@ -15215,6 +15367,7 @@ async function main() {
15215
15367
  note: { type: "string" },
15216
15368
  reason: { type: "string" },
15217
15369
  bag: { type: "string" },
15370
+ box: { type: "string" },
15218
15371
  avatar: { type: "string" },
15219
15372
  tool: { type: "string" },
15220
15373
  "from-workspace": { type: "boolean" },
@@ -15268,7 +15421,7 @@ async function main() {
15268
15421
  const tokens = splitTokens(pos, v);
15269
15422
  globals.token = tokens.session;
15270
15423
  globals.profile = v.profile;
15271
- if (v.version) return out({ version: "0.60.0" }, () => "0.60.0");
15424
+ if (v.version) return out({ version: "0.63.0" }, () => "0.63.0");
15272
15425
  for (const n of normalizeArgs(pos, v)) if (!globals.json) info(dim(n));
15273
15426
  const context = (await readConfig()).workspace;
15274
15427
  if (!explicitToken()?.startsWith("gat_")) {
@@ -15355,6 +15508,8 @@ async function main() {
15355
15508
  if (v["quota-hits"]) return workspaceUsage(v.workspace ?? context, v);
15356
15509
  if (sub === "stats") return turnStats(v);
15357
15510
  return turnsCmd(sub, a1, a2, v);
15511
+ case "support":
15512
+ return supportCmd(sub, a1, { ...v, ref: a2 });
15358
15513
  case "push":
15359
15514
  if (sub !== "log") throw usage(t("Unknown push subcommand.", "Subcomando de push desconocido."), "ghosty push log --user <email> [--since 2d]");
15360
15515
  return pushLog(v.user, v);
@@ -15414,6 +15569,8 @@ async function main() {
15414
15569
  return spacesCmd(sub, a1, a2, v, context);
15415
15570
  case "staff":
15416
15571
  return staffCmd(sub, a1, a2, v);
15572
+ case "settings":
15573
+ return settingsCmd(sub, a1, a2);
15417
15574
  case "audit":
15418
15575
  return auditCmd(sub, v, context);
15419
15576
  case "factory":
@@ -15435,7 +15592,7 @@ async function main() {
15435
15592
  throw unknown(cmd, cmd, COMMANDS, "ghosty --help");
15436
15593
  }
15437
15594
  }
15438
- var notice = updateNotice("0.60.0").catch(() => null);
15595
+ var notice = updateNotice("0.63.0").catch(() => null);
15439
15596
  main().then(
15440
15597
  async () => {
15441
15598
  const n = await notice;