@ghostystudio/cli 0.44.0 → 0.46.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 +14 -0
  2. package/dist/index.js +298 -167
  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
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/identity.js
35
+ // ../../node_modules/yaml/dist/nodes/identity.js
36
36
  var require_identity = __commonJS({
37
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/identity.js"(exports) {
37
+ "../../node_modules/yaml/dist/nodes/identity.js"(exports) {
38
38
  "use strict";
39
39
  var ALIAS = /* @__PURE__ */ Symbol.for("yaml.alias");
40
40
  var DOC = /* @__PURE__ */ Symbol.for("yaml.document");
@@ -89,9 +89,9 @@ var require_identity = __commonJS({
89
89
  }
90
90
  });
91
91
 
92
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/visit.js
92
+ // ../../node_modules/yaml/dist/visit.js
93
93
  var require_visit = __commonJS({
94
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/visit.js"(exports) {
94
+ "../../node_modules/yaml/dist/visit.js"(exports) {
95
95
  "use strict";
96
96
  var identity = require_identity();
97
97
  var BREAK = /* @__PURE__ */ Symbol("break visit");
@@ -247,9 +247,9 @@ var require_visit = __commonJS({
247
247
  }
248
248
  });
249
249
 
250
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/directives.js
250
+ // ../../node_modules/yaml/dist/doc/directives.js
251
251
  var require_directives = __commonJS({
252
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/directives.js"(exports) {
252
+ "../../node_modules/yaml/dist/doc/directives.js"(exports) {
253
253
  "use strict";
254
254
  var identity = require_identity();
255
255
  var visit = require_visit();
@@ -418,9 +418,9 @@ var require_directives = __commonJS({
418
418
  }
419
419
  });
420
420
 
421
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/anchors.js
421
+ // ../../node_modules/yaml/dist/doc/anchors.js
422
422
  var require_anchors = __commonJS({
423
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/anchors.js"(exports) {
423
+ "../../node_modules/yaml/dist/doc/anchors.js"(exports) {
424
424
  "use strict";
425
425
  var identity = require_identity();
426
426
  var visit = require_visit();
@@ -488,9 +488,9 @@ var require_anchors = __commonJS({
488
488
  }
489
489
  });
490
490
 
491
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js
491
+ // ../../node_modules/yaml/dist/doc/applyReviver.js
492
492
  var require_applyReviver = __commonJS({
493
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js"(exports) {
493
+ "../../node_modules/yaml/dist/doc/applyReviver.js"(exports) {
494
494
  "use strict";
495
495
  function applyReviver(reviver, obj, key, val) {
496
496
  if (val && typeof val === "object") {
@@ -538,9 +538,9 @@ var require_applyReviver = __commonJS({
538
538
  }
539
539
  });
540
540
 
541
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/toJS.js
541
+ // ../../node_modules/yaml/dist/nodes/toJS.js
542
542
  var require_toJS = __commonJS({
543
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/toJS.js"(exports) {
543
+ "../../node_modules/yaml/dist/nodes/toJS.js"(exports) {
544
544
  "use strict";
545
545
  var identity = require_identity();
546
546
  function toJS(value, arg, ctx) {
@@ -568,9 +568,9 @@ var require_toJS = __commonJS({
568
568
  }
569
569
  });
570
570
 
571
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Node.js
571
+ // ../../node_modules/yaml/dist/nodes/Node.js
572
572
  var require_Node = __commonJS({
573
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Node.js"(exports) {
573
+ "../../node_modules/yaml/dist/nodes/Node.js"(exports) {
574
574
  "use strict";
575
575
  var applyReviver = require_applyReviver();
576
576
  var identity = require_identity();
@@ -609,9 +609,9 @@ var require_Node = __commonJS({
609
609
  }
610
610
  });
611
611
 
612
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Alias.js
612
+ // ../../node_modules/yaml/dist/nodes/Alias.js
613
613
  var require_Alias = __commonJS({
614
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Alias.js"(exports) {
614
+ "../../node_modules/yaml/dist/nodes/Alias.js"(exports) {
615
615
  "use strict";
616
616
  var anchors = require_anchors();
617
617
  var visit = require_visit();
@@ -727,9 +727,9 @@ var require_Alias = __commonJS({
727
727
  }
728
728
  });
729
729
 
730
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js
730
+ // ../../node_modules/yaml/dist/nodes/Scalar.js
731
731
  var require_Scalar = __commonJS({
732
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js"(exports) {
732
+ "../../node_modules/yaml/dist/nodes/Scalar.js"(exports) {
733
733
  "use strict";
734
734
  var identity = require_identity();
735
735
  var Node = require_Node();
@@ -757,9 +757,9 @@ var require_Scalar = __commonJS({
757
757
  }
758
758
  });
759
759
 
760
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/createNode.js
760
+ // ../../node_modules/yaml/dist/doc/createNode.js
761
761
  var require_createNode = __commonJS({
762
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/createNode.js"(exports) {
762
+ "../../node_modules/yaml/dist/doc/createNode.js"(exports) {
763
763
  "use strict";
764
764
  var Alias = require_Alias();
765
765
  var identity = require_identity();
@@ -832,9 +832,9 @@ var require_createNode = __commonJS({
832
832
  }
833
833
  });
834
834
 
835
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Collection.js
835
+ // ../../node_modules/yaml/dist/nodes/Collection.js
836
836
  var require_Collection = __commonJS({
837
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Collection.js"(exports) {
837
+ "../../node_modules/yaml/dist/nodes/Collection.js"(exports) {
838
838
  "use strict";
839
839
  var createNode = require_createNode();
840
840
  var identity = require_identity();
@@ -975,9 +975,9 @@ var require_Collection = __commonJS({
975
975
  }
976
976
  });
977
977
 
978
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js
978
+ // ../../node_modules/yaml/dist/stringify/stringifyComment.js
979
979
  var require_stringifyComment = __commonJS({
980
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js"(exports) {
980
+ "../../node_modules/yaml/dist/stringify/stringifyComment.js"(exports) {
981
981
  "use strict";
982
982
  var stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, "#");
983
983
  function indentComment(comment, indent) {
@@ -992,9 +992,9 @@ var require_stringifyComment = __commonJS({
992
992
  }
993
993
  });
994
994
 
995
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js
995
+ // ../../node_modules/yaml/dist/stringify/foldFlowLines.js
996
996
  var require_foldFlowLines = __commonJS({
997
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js"(exports) {
997
+ "../../node_modules/yaml/dist/stringify/foldFlowLines.js"(exports) {
998
998
  "use strict";
999
999
  var FOLD_FLOW = "flow";
1000
1000
  var FOLD_BLOCK = "block";
@@ -1128,9 +1128,9 @@ ${indent}${text.slice(fold + 1, end2)}`;
1128
1128
  }
1129
1129
  });
1130
1130
 
1131
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js
1131
+ // ../../node_modules/yaml/dist/stringify/stringifyString.js
1132
1132
  var require_stringifyString = __commonJS({
1133
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js"(exports) {
1133
+ "../../node_modules/yaml/dist/stringify/stringifyString.js"(exports) {
1134
1134
  "use strict";
1135
1135
  var Scalar = require_Scalar();
1136
1136
  var foldFlowLines = require_foldFlowLines();
@@ -1411,9 +1411,9 @@ ${indent}`);
1411
1411
  }
1412
1412
  });
1413
1413
 
1414
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringify.js
1414
+ // ../../node_modules/yaml/dist/stringify/stringify.js
1415
1415
  var require_stringify = __commonJS({
1416
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringify.js"(exports) {
1416
+ "../../node_modules/yaml/dist/stringify/stringify.js"(exports) {
1417
1417
  "use strict";
1418
1418
  var anchors = require_anchors();
1419
1419
  var identity = require_identity();
@@ -1535,9 +1535,9 @@ ${ctx.indent}${str}`;
1535
1535
  }
1536
1536
  });
1537
1537
 
1538
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js
1538
+ // ../../node_modules/yaml/dist/stringify/stringifyPair.js
1539
1539
  var require_stringifyPair = __commonJS({
1540
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js"(exports) {
1540
+ "../../node_modules/yaml/dist/stringify/stringifyPair.js"(exports) {
1541
1541
  "use strict";
1542
1542
  var identity = require_identity();
1543
1543
  var Scalar = require_Scalar();
@@ -1668,9 +1668,9 @@ ${ctx.indent}`;
1668
1668
  }
1669
1669
  });
1670
1670
 
1671
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/log.js
1671
+ // ../../node_modules/yaml/dist/log.js
1672
1672
  var require_log = __commonJS({
1673
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/log.js"(exports) {
1673
+ "../../node_modules/yaml/dist/log.js"(exports) {
1674
1674
  "use strict";
1675
1675
  var node_process = __require("process");
1676
1676
  function debug(logLevel, ...messages) {
@@ -1690,9 +1690,9 @@ var require_log = __commonJS({
1690
1690
  }
1691
1691
  });
1692
1692
 
1693
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js
1693
+ // ../../node_modules/yaml/dist/schema/yaml-1.1/merge.js
1694
1694
  var require_merge = __commonJS({
1695
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js"(exports) {
1695
+ "../../node_modules/yaml/dist/schema/yaml-1.1/merge.js"(exports) {
1696
1696
  "use strict";
1697
1697
  var identity = require_identity();
1698
1698
  var Scalar = require_Scalar();
@@ -1750,9 +1750,9 @@ var require_merge = __commonJS({
1750
1750
  }
1751
1751
  });
1752
1752
 
1753
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js
1753
+ // ../../node_modules/yaml/dist/nodes/addPairToJSMap.js
1754
1754
  var require_addPairToJSMap = __commonJS({
1755
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports) {
1755
+ "../../node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports) {
1756
1756
  "use strict";
1757
1757
  var log = require_log();
1758
1758
  var merge = require_merge();
@@ -1814,9 +1814,9 @@ var require_addPairToJSMap = __commonJS({
1814
1814
  }
1815
1815
  });
1816
1816
 
1817
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Pair.js
1817
+ // ../../node_modules/yaml/dist/nodes/Pair.js
1818
1818
  var require_Pair = __commonJS({
1819
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Pair.js"(exports) {
1819
+ "../../node_modules/yaml/dist/nodes/Pair.js"(exports) {
1820
1820
  "use strict";
1821
1821
  var createNode = require_createNode();
1822
1822
  var stringifyPair = require_stringifyPair();
@@ -1854,9 +1854,9 @@ var require_Pair = __commonJS({
1854
1854
  }
1855
1855
  });
1856
1856
 
1857
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js
1857
+ // ../../node_modules/yaml/dist/stringify/stringifyCollection.js
1858
1858
  var require_stringifyCollection = __commonJS({
1859
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js"(exports) {
1859
+ "../../node_modules/yaml/dist/stringify/stringifyCollection.js"(exports) {
1860
1860
  "use strict";
1861
1861
  var identity = require_identity();
1862
1862
  var stringify = require_stringify();
@@ -2005,9 +2005,9 @@ ${indent}${end}`;
2005
2005
  }
2006
2006
  });
2007
2007
 
2008
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js
2008
+ // ../../node_modules/yaml/dist/nodes/YAMLMap.js
2009
2009
  var require_YAMLMap = __commonJS({
2010
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js"(exports) {
2010
+ "../../node_modules/yaml/dist/nodes/YAMLMap.js"(exports) {
2011
2011
  "use strict";
2012
2012
  var stringifyCollection = require_stringifyCollection();
2013
2013
  var addPairToJSMap = require_addPairToJSMap();
@@ -2149,9 +2149,9 @@ var require_YAMLMap = __commonJS({
2149
2149
  }
2150
2150
  });
2151
2151
 
2152
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/map.js
2152
+ // ../../node_modules/yaml/dist/schema/common/map.js
2153
2153
  var require_map = __commonJS({
2154
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/map.js"(exports) {
2154
+ "../../node_modules/yaml/dist/schema/common/map.js"(exports) {
2155
2155
  "use strict";
2156
2156
  var identity = require_identity();
2157
2157
  var YAMLMap = require_YAMLMap();
@@ -2171,9 +2171,9 @@ var require_map = __commonJS({
2171
2171
  }
2172
2172
  });
2173
2173
 
2174
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js
2174
+ // ../../node_modules/yaml/dist/nodes/YAMLSeq.js
2175
2175
  var require_YAMLSeq = __commonJS({
2176
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js"(exports) {
2176
+ "../../node_modules/yaml/dist/nodes/YAMLSeq.js"(exports) {
2177
2177
  "use strict";
2178
2178
  var createNode = require_createNode();
2179
2179
  var stringifyCollection = require_stringifyCollection();
@@ -2287,9 +2287,9 @@ var require_YAMLSeq = __commonJS({
2287
2287
  }
2288
2288
  });
2289
2289
 
2290
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/seq.js
2290
+ // ../../node_modules/yaml/dist/schema/common/seq.js
2291
2291
  var require_seq = __commonJS({
2292
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/seq.js"(exports) {
2292
+ "../../node_modules/yaml/dist/schema/common/seq.js"(exports) {
2293
2293
  "use strict";
2294
2294
  var identity = require_identity();
2295
2295
  var YAMLSeq = require_YAMLSeq();
@@ -2309,9 +2309,9 @@ var require_seq = __commonJS({
2309
2309
  }
2310
2310
  });
2311
2311
 
2312
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/string.js
2312
+ // ../../node_modules/yaml/dist/schema/common/string.js
2313
2313
  var require_string = __commonJS({
2314
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/string.js"(exports) {
2314
+ "../../node_modules/yaml/dist/schema/common/string.js"(exports) {
2315
2315
  "use strict";
2316
2316
  var stringifyString = require_stringifyString();
2317
2317
  var string = {
@@ -2328,9 +2328,9 @@ var require_string = __commonJS({
2328
2328
  }
2329
2329
  });
2330
2330
 
2331
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/null.js
2331
+ // ../../node_modules/yaml/dist/schema/common/null.js
2332
2332
  var require_null = __commonJS({
2333
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/null.js"(exports) {
2333
+ "../../node_modules/yaml/dist/schema/common/null.js"(exports) {
2334
2334
  "use strict";
2335
2335
  var Scalar = require_Scalar();
2336
2336
  var nullTag = {
@@ -2346,9 +2346,9 @@ var require_null = __commonJS({
2346
2346
  }
2347
2347
  });
2348
2348
 
2349
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/bool.js
2349
+ // ../../node_modules/yaml/dist/schema/core/bool.js
2350
2350
  var require_bool = __commonJS({
2351
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/bool.js"(exports) {
2351
+ "../../node_modules/yaml/dist/schema/core/bool.js"(exports) {
2352
2352
  "use strict";
2353
2353
  var Scalar = require_Scalar();
2354
2354
  var boolTag = {
@@ -2370,9 +2370,9 @@ var require_bool = __commonJS({
2370
2370
  }
2371
2371
  });
2372
2372
 
2373
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js
2373
+ // ../../node_modules/yaml/dist/stringify/stringifyNumber.js
2374
2374
  var require_stringifyNumber = __commonJS({
2375
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js"(exports) {
2375
+ "../../node_modules/yaml/dist/stringify/stringifyNumber.js"(exports) {
2376
2376
  "use strict";
2377
2377
  function stringifyNumber({ format, minFractionDigits, tag, value }) {
2378
2378
  if (typeof value === "bigint")
@@ -2397,9 +2397,9 @@ var require_stringifyNumber = __commonJS({
2397
2397
  }
2398
2398
  });
2399
2399
 
2400
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/float.js
2400
+ // ../../node_modules/yaml/dist/schema/core/float.js
2401
2401
  var require_float = __commonJS({
2402
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/float.js"(exports) {
2402
+ "../../node_modules/yaml/dist/schema/core/float.js"(exports) {
2403
2403
  "use strict";
2404
2404
  var Scalar = require_Scalar();
2405
2405
  var stringifyNumber = require_stringifyNumber();
@@ -2443,9 +2443,9 @@ var require_float = __commonJS({
2443
2443
  }
2444
2444
  });
2445
2445
 
2446
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/int.js
2446
+ // ../../node_modules/yaml/dist/schema/core/int.js
2447
2447
  var require_int = __commonJS({
2448
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/int.js"(exports) {
2448
+ "../../node_modules/yaml/dist/schema/core/int.js"(exports) {
2449
2449
  "use strict";
2450
2450
  var stringifyNumber = require_stringifyNumber();
2451
2451
  var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -2488,9 +2488,9 @@ var require_int = __commonJS({
2488
2488
  }
2489
2489
  });
2490
2490
 
2491
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/schema.js
2491
+ // ../../node_modules/yaml/dist/schema/core/schema.js
2492
2492
  var require_schema = __commonJS({
2493
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/schema.js"(exports) {
2493
+ "../../node_modules/yaml/dist/schema/core/schema.js"(exports) {
2494
2494
  "use strict";
2495
2495
  var map = require_map();
2496
2496
  var _null = require_null();
@@ -2516,9 +2516,9 @@ var require_schema = __commonJS({
2516
2516
  }
2517
2517
  });
2518
2518
 
2519
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/json/schema.js
2519
+ // ../../node_modules/yaml/dist/schema/json/schema.js
2520
2520
  var require_schema2 = __commonJS({
2521
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/json/schema.js"(exports) {
2521
+ "../../node_modules/yaml/dist/schema/json/schema.js"(exports) {
2522
2522
  "use strict";
2523
2523
  var Scalar = require_Scalar();
2524
2524
  var map = require_map();
@@ -2583,9 +2583,9 @@ var require_schema2 = __commonJS({
2583
2583
  }
2584
2584
  });
2585
2585
 
2586
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js
2586
+ // ../../node_modules/yaml/dist/schema/yaml-1.1/binary.js
2587
2587
  var require_binary = __commonJS({
2588
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js"(exports) {
2588
+ "../../node_modules/yaml/dist/schema/yaml-1.1/binary.js"(exports) {
2589
2589
  "use strict";
2590
2590
  var node_buffer = __require("buffer");
2591
2591
  var Scalar = require_Scalar();
@@ -2649,9 +2649,9 @@ var require_binary = __commonJS({
2649
2649
  }
2650
2650
  });
2651
2651
 
2652
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
2652
+ // ../../node_modules/yaml/dist/schema/yaml-1.1/pairs.js
2653
2653
  var require_pairs = __commonJS({
2654
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js"(exports) {
2654
+ "../../node_modules/yaml/dist/schema/yaml-1.1/pairs.js"(exports) {
2655
2655
  "use strict";
2656
2656
  var identity = require_identity();
2657
2657
  var Pair = require_Pair();
@@ -2727,9 +2727,9 @@ ${cn.comment}` : item.comment;
2727
2727
  }
2728
2728
  });
2729
2729
 
2730
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js
2730
+ // ../../node_modules/yaml/dist/schema/yaml-1.1/omap.js
2731
2731
  var require_omap = __commonJS({
2732
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js"(exports) {
2732
+ "../../node_modules/yaml/dist/schema/yaml-1.1/omap.js"(exports) {
2733
2733
  "use strict";
2734
2734
  var identity = require_identity();
2735
2735
  var toJS = require_toJS();
@@ -2805,9 +2805,9 @@ var require_omap = __commonJS({
2805
2805
  }
2806
2806
  });
2807
2807
 
2808
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js
2808
+ // ../../node_modules/yaml/dist/schema/yaml-1.1/bool.js
2809
2809
  var require_bool2 = __commonJS({
2810
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js"(exports) {
2810
+ "../../node_modules/yaml/dist/schema/yaml-1.1/bool.js"(exports) {
2811
2811
  "use strict";
2812
2812
  var Scalar = require_Scalar();
2813
2813
  function boolStringify({ value, source }, ctx) {
@@ -2837,9 +2837,9 @@ var require_bool2 = __commonJS({
2837
2837
  }
2838
2838
  });
2839
2839
 
2840
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js
2840
+ // ../../node_modules/yaml/dist/schema/yaml-1.1/float.js
2841
2841
  var require_float2 = __commonJS({
2842
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js"(exports) {
2842
+ "../../node_modules/yaml/dist/schema/yaml-1.1/float.js"(exports) {
2843
2843
  "use strict";
2844
2844
  var Scalar = require_Scalar();
2845
2845
  var stringifyNumber = require_stringifyNumber();
@@ -2886,9 +2886,9 @@ var require_float2 = __commonJS({
2886
2886
  }
2887
2887
  });
2888
2888
 
2889
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js
2889
+ // ../../node_modules/yaml/dist/schema/yaml-1.1/int.js
2890
2890
  var require_int2 = __commonJS({
2891
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js"(exports) {
2891
+ "../../node_modules/yaml/dist/schema/yaml-1.1/int.js"(exports) {
2892
2892
  "use strict";
2893
2893
  var stringifyNumber = require_stringifyNumber();
2894
2894
  var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -2965,9 +2965,9 @@ var require_int2 = __commonJS({
2965
2965
  }
2966
2966
  });
2967
2967
 
2968
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js
2968
+ // ../../node_modules/yaml/dist/schema/yaml-1.1/set.js
2969
2969
  var require_set = __commonJS({
2970
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js"(exports) {
2970
+ "../../node_modules/yaml/dist/schema/yaml-1.1/set.js"(exports) {
2971
2971
  "use strict";
2972
2972
  var identity = require_identity();
2973
2973
  var Pair = require_Pair();
@@ -3054,9 +3054,9 @@ var require_set = __commonJS({
3054
3054
  }
3055
3055
  });
3056
3056
 
3057
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
3057
+ // ../../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
3058
3058
  var require_timestamp = __commonJS({
3059
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js"(exports) {
3059
+ "../../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js"(exports) {
3060
3060
  "use strict";
3061
3061
  var stringifyNumber = require_stringifyNumber();
3062
3062
  function parseSexagesimal(str, asBigInt) {
@@ -3122,9 +3122,9 @@ var require_timestamp = __commonJS({
3122
3122
  const match = str.match(timestamp.test);
3123
3123
  if (!match)
3124
3124
  throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");
3125
- const [, year, month, day2, hour, minute, second] = match.map(Number);
3125
+ const [, year, month, day3, hour, minute, second] = match.map(Number);
3126
3126
  const millisec = match[7] ? Number((match[7] + "00").substr(1, 3)) : 0;
3127
- let date = Date.UTC(year, month - 1, day2, hour || 0, minute || 0, second || 0, millisec);
3127
+ let date = Date.UTC(year, month - 1, day3, hour || 0, minute || 0, second || 0, millisec);
3128
3128
  const tz = match[8];
3129
3129
  if (tz && tz !== "Z") {
3130
3130
  let d = parseSexagesimal(tz, false);
@@ -3142,9 +3142,9 @@ var require_timestamp = __commonJS({
3142
3142
  }
3143
3143
  });
3144
3144
 
3145
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js
3145
+ // ../../node_modules/yaml/dist/schema/yaml-1.1/schema.js
3146
3146
  var require_schema3 = __commonJS({
3147
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js"(exports) {
3147
+ "../../node_modules/yaml/dist/schema/yaml-1.1/schema.js"(exports) {
3148
3148
  "use strict";
3149
3149
  var map = require_map();
3150
3150
  var _null = require_null();
@@ -3186,9 +3186,9 @@ var require_schema3 = __commonJS({
3186
3186
  }
3187
3187
  });
3188
3188
 
3189
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/tags.js
3189
+ // ../../node_modules/yaml/dist/schema/tags.js
3190
3190
  var require_tags = __commonJS({
3191
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/tags.js"(exports) {
3191
+ "../../node_modules/yaml/dist/schema/tags.js"(exports) {
3192
3192
  "use strict";
3193
3193
  var map = require_map();
3194
3194
  var _null = require_null();
@@ -3280,9 +3280,9 @@ var require_tags = __commonJS({
3280
3280
  }
3281
3281
  });
3282
3282
 
3283
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/Schema.js
3283
+ // ../../node_modules/yaml/dist/schema/Schema.js
3284
3284
  var require_Schema = __commonJS({
3285
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/Schema.js"(exports) {
3285
+ "../../node_modules/yaml/dist/schema/Schema.js"(exports) {
3286
3286
  "use strict";
3287
3287
  var identity = require_identity();
3288
3288
  var map = require_map();
@@ -3312,9 +3312,9 @@ var require_Schema = __commonJS({
3312
3312
  }
3313
3313
  });
3314
3314
 
3315
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js
3315
+ // ../../node_modules/yaml/dist/stringify/stringifyDocument.js
3316
3316
  var require_stringifyDocument = __commonJS({
3317
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js"(exports) {
3317
+ "../../node_modules/yaml/dist/stringify/stringifyDocument.js"(exports) {
3318
3318
  "use strict";
3319
3319
  var identity = require_identity();
3320
3320
  var stringify = require_stringify();
@@ -3392,9 +3392,9 @@ var require_stringifyDocument = __commonJS({
3392
3392
  }
3393
3393
  });
3394
3394
 
3395
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/Document.js
3395
+ // ../../node_modules/yaml/dist/doc/Document.js
3396
3396
  var require_Document = __commonJS({
3397
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/Document.js"(exports) {
3397
+ "../../node_modules/yaml/dist/doc/Document.js"(exports) {
3398
3398
  "use strict";
3399
3399
  var Alias = require_Alias();
3400
3400
  var Collection = require_Collection();
@@ -3701,9 +3701,9 @@ var require_Document = __commonJS({
3701
3701
  }
3702
3702
  });
3703
3703
 
3704
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/errors.js
3704
+ // ../../node_modules/yaml/dist/errors.js
3705
3705
  var require_errors = __commonJS({
3706
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/errors.js"(exports) {
3706
+ "../../node_modules/yaml/dist/errors.js"(exports) {
3707
3707
  "use strict";
3708
3708
  var YAMLError = class extends Error {
3709
3709
  constructor(name, pos, code, message) {
@@ -3766,9 +3766,9 @@ ${pointer}
3766
3766
  }
3767
3767
  });
3768
3768
 
3769
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js
3769
+ // ../../node_modules/yaml/dist/compose/resolve-props.js
3770
3770
  var require_resolve_props = __commonJS({
3771
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js"(exports) {
3771
+ "../../node_modules/yaml/dist/compose/resolve-props.js"(exports) {
3772
3772
  "use strict";
3773
3773
  function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
3774
3774
  let spaceBefore = false;
@@ -3900,9 +3900,9 @@ var require_resolve_props = __commonJS({
3900
3900
  }
3901
3901
  });
3902
3902
 
3903
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js
3903
+ // ../../node_modules/yaml/dist/compose/util-contains-newline.js
3904
3904
  var require_util_contains_newline = __commonJS({
3905
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js"(exports) {
3905
+ "../../node_modules/yaml/dist/compose/util-contains-newline.js"(exports) {
3906
3906
  "use strict";
3907
3907
  function containsNewline(key) {
3908
3908
  if (!key)
@@ -3942,9 +3942,9 @@ var require_util_contains_newline = __commonJS({
3942
3942
  }
3943
3943
  });
3944
3944
 
3945
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js
3945
+ // ../../node_modules/yaml/dist/compose/util-flow-indent-check.js
3946
3946
  var require_util_flow_indent_check = __commonJS({
3947
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js"(exports) {
3947
+ "../../node_modules/yaml/dist/compose/util-flow-indent-check.js"(exports) {
3948
3948
  "use strict";
3949
3949
  var utilContainsNewline = require_util_contains_newline();
3950
3950
  function flowIndentCheck(indent, fc, onError) {
@@ -3960,9 +3960,9 @@ var require_util_flow_indent_check = __commonJS({
3960
3960
  }
3961
3961
  });
3962
3962
 
3963
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js
3963
+ // ../../node_modules/yaml/dist/compose/util-map-includes.js
3964
3964
  var require_util_map_includes = __commonJS({
3965
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js"(exports) {
3965
+ "../../node_modules/yaml/dist/compose/util-map-includes.js"(exports) {
3966
3966
  "use strict";
3967
3967
  var identity = require_identity();
3968
3968
  function mapIncludes(ctx, items, search) {
@@ -3976,9 +3976,9 @@ var require_util_map_includes = __commonJS({
3976
3976
  }
3977
3977
  });
3978
3978
 
3979
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js
3979
+ // ../../node_modules/yaml/dist/compose/resolve-block-map.js
3980
3980
  var require_resolve_block_map = __commonJS({
3981
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js"(exports) {
3981
+ "../../node_modules/yaml/dist/compose/resolve-block-map.js"(exports) {
3982
3982
  "use strict";
3983
3983
  var Pair = require_Pair();
3984
3984
  var YAMLMap = require_YAMLMap();
@@ -4084,9 +4084,9 @@ var require_resolve_block_map = __commonJS({
4084
4084
  }
4085
4085
  });
4086
4086
 
4087
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js
4087
+ // ../../node_modules/yaml/dist/compose/resolve-block-seq.js
4088
4088
  var require_resolve_block_seq = __commonJS({
4089
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js"(exports) {
4089
+ "../../node_modules/yaml/dist/compose/resolve-block-seq.js"(exports) {
4090
4090
  "use strict";
4091
4091
  var YAMLSeq = require_YAMLSeq();
4092
4092
  var resolveProps = require_resolve_props();
@@ -4135,9 +4135,9 @@ var require_resolve_block_seq = __commonJS({
4135
4135
  }
4136
4136
  });
4137
4137
 
4138
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js
4138
+ // ../../node_modules/yaml/dist/compose/resolve-end.js
4139
4139
  var require_resolve_end = __commonJS({
4140
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js"(exports) {
4140
+ "../../node_modules/yaml/dist/compose/resolve-end.js"(exports) {
4141
4141
  "use strict";
4142
4142
  function resolveEnd(end, offset, reqSpace, onError) {
4143
4143
  let comment = "";
@@ -4178,9 +4178,9 @@ var require_resolve_end = __commonJS({
4178
4178
  }
4179
4179
  });
4180
4180
 
4181
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js
4181
+ // ../../node_modules/yaml/dist/compose/resolve-flow-collection.js
4182
4182
  var require_resolve_flow_collection = __commonJS({
4183
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js"(exports) {
4183
+ "../../node_modules/yaml/dist/compose/resolve-flow-collection.js"(exports) {
4184
4184
  "use strict";
4185
4185
  var identity = require_identity();
4186
4186
  var Pair = require_Pair();
@@ -4372,9 +4372,9 @@ var require_resolve_flow_collection = __commonJS({
4372
4372
  }
4373
4373
  });
4374
4374
 
4375
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js
4375
+ // ../../node_modules/yaml/dist/compose/compose-collection.js
4376
4376
  var require_compose_collection = __commonJS({
4377
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js"(exports) {
4377
+ "../../node_modules/yaml/dist/compose/compose-collection.js"(exports) {
4378
4378
  "use strict";
4379
4379
  var identity = require_identity();
4380
4380
  var Scalar = require_Scalar();
@@ -4437,9 +4437,9 @@ var require_compose_collection = __commonJS({
4437
4437
  }
4438
4438
  });
4439
4439
 
4440
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js
4440
+ // ../../node_modules/yaml/dist/compose/resolve-block-scalar.js
4441
4441
  var require_resolve_block_scalar = __commonJS({
4442
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js"(exports) {
4442
+ "../../node_modules/yaml/dist/compose/resolve-block-scalar.js"(exports) {
4443
4443
  "use strict";
4444
4444
  var Scalar = require_Scalar();
4445
4445
  function resolveBlockScalar(ctx, scalar, onError) {
@@ -4620,9 +4620,9 @@ var require_resolve_block_scalar = __commonJS({
4620
4620
  }
4621
4621
  });
4622
4622
 
4623
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js
4623
+ // ../../node_modules/yaml/dist/compose/resolve-flow-scalar.js
4624
4624
  var require_resolve_flow_scalar = __commonJS({
4625
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js"(exports) {
4625
+ "../../node_modules/yaml/dist/compose/resolve-flow-scalar.js"(exports) {
4626
4626
  "use strict";
4627
4627
  var Scalar = require_Scalar();
4628
4628
  var resolveEnd = require_resolve_end();
@@ -4841,9 +4841,9 @@ var require_resolve_flow_scalar = __commonJS({
4841
4841
  }
4842
4842
  });
4843
4843
 
4844
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js
4844
+ // ../../node_modules/yaml/dist/compose/compose-scalar.js
4845
4845
  var require_compose_scalar = __commonJS({
4846
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js"(exports) {
4846
+ "../../node_modules/yaml/dist/compose/compose-scalar.js"(exports) {
4847
4847
  "use strict";
4848
4848
  var identity = require_identity();
4849
4849
  var Scalar = require_Scalar();
@@ -4922,9 +4922,9 @@ var require_compose_scalar = __commonJS({
4922
4922
  }
4923
4923
  });
4924
4924
 
4925
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js
4925
+ // ../../node_modules/yaml/dist/compose/util-empty-scalar-position.js
4926
4926
  var require_util_empty_scalar_position = __commonJS({
4927
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js"(exports) {
4927
+ "../../node_modules/yaml/dist/compose/util-empty-scalar-position.js"(exports) {
4928
4928
  "use strict";
4929
4929
  function emptyScalarPosition(offset, before, pos) {
4930
4930
  if (before) {
@@ -4952,9 +4952,9 @@ var require_util_empty_scalar_position = __commonJS({
4952
4952
  }
4953
4953
  });
4954
4954
 
4955
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-node.js
4955
+ // ../../node_modules/yaml/dist/compose/compose-node.js
4956
4956
  var require_compose_node = __commonJS({
4957
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-node.js"(exports) {
4957
+ "../../node_modules/yaml/dist/compose/compose-node.js"(exports) {
4958
4958
  "use strict";
4959
4959
  var Alias = require_Alias();
4960
4960
  var identity = require_identity();
@@ -5058,9 +5058,9 @@ var require_compose_node = __commonJS({
5058
5058
  }
5059
5059
  });
5060
5060
 
5061
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js
5061
+ // ../../node_modules/yaml/dist/compose/compose-doc.js
5062
5062
  var require_compose_doc = __commonJS({
5063
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js"(exports) {
5063
+ "../../node_modules/yaml/dist/compose/compose-doc.js"(exports) {
5064
5064
  "use strict";
5065
5065
  var Document = require_Document();
5066
5066
  var composeNode = require_compose_node();
@@ -5101,9 +5101,9 @@ var require_compose_doc = __commonJS({
5101
5101
  }
5102
5102
  });
5103
5103
 
5104
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/composer.js
5104
+ // ../../node_modules/yaml/dist/compose/composer.js
5105
5105
  var require_composer = __commonJS({
5106
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/composer.js"(exports) {
5106
+ "../../node_modules/yaml/dist/compose/composer.js"(exports) {
5107
5107
  "use strict";
5108
5108
  var node_process = __require("process");
5109
5109
  var directives = require_directives();
@@ -5309,9 +5309,9 @@ ${end.comment}` : end.comment;
5309
5309
  }
5310
5310
  });
5311
5311
 
5312
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js
5312
+ // ../../node_modules/yaml/dist/parse/cst-scalar.js
5313
5313
  var require_cst_scalar = __commonJS({
5314
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js"(exports) {
5314
+ "../../node_modules/yaml/dist/parse/cst-scalar.js"(exports) {
5315
5315
  "use strict";
5316
5316
  var resolveBlockScalar = require_resolve_block_scalar();
5317
5317
  var resolveFlowScalar = require_resolve_flow_scalar();
@@ -5494,9 +5494,9 @@ var require_cst_scalar = __commonJS({
5494
5494
  }
5495
5495
  });
5496
5496
 
5497
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js
5497
+ // ../../node_modules/yaml/dist/parse/cst-stringify.js
5498
5498
  var require_cst_stringify = __commonJS({
5499
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js"(exports) {
5499
+ "../../node_modules/yaml/dist/parse/cst-stringify.js"(exports) {
5500
5500
  "use strict";
5501
5501
  var stringify = (cst) => "type" in cst ? stringifyToken(cst) : stringifyItem(cst);
5502
5502
  function stringifyToken(token) {
@@ -5555,9 +5555,9 @@ var require_cst_stringify = __commonJS({
5555
5555
  }
5556
5556
  });
5557
5557
 
5558
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js
5558
+ // ../../node_modules/yaml/dist/parse/cst-visit.js
5559
5559
  var require_cst_visit = __commonJS({
5560
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js"(exports) {
5560
+ "../../node_modules/yaml/dist/parse/cst-visit.js"(exports) {
5561
5561
  "use strict";
5562
5562
  var BREAK = /* @__PURE__ */ Symbol("break visit");
5563
5563
  var SKIP2 = /* @__PURE__ */ Symbol("skip children");
@@ -5617,9 +5617,9 @@ var require_cst_visit = __commonJS({
5617
5617
  }
5618
5618
  });
5619
5619
 
5620
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst.js
5620
+ // ../../node_modules/yaml/dist/parse/cst.js
5621
5621
  var require_cst = __commonJS({
5622
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst.js"(exports) {
5622
+ "../../node_modules/yaml/dist/parse/cst.js"(exports) {
5623
5623
  "use strict";
5624
5624
  var cstScalar = require_cst_scalar();
5625
5625
  var cstStringify = require_cst_stringify();
@@ -5719,9 +5719,9 @@ var require_cst = __commonJS({
5719
5719
  }
5720
5720
  });
5721
5721
 
5722
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/lexer.js
5722
+ // ../../node_modules/yaml/dist/parse/lexer.js
5723
5723
  var require_lexer = __commonJS({
5724
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/lexer.js"(exports) {
5724
+ "../../node_modules/yaml/dist/parse/lexer.js"(exports) {
5725
5725
  "use strict";
5726
5726
  var cst = require_cst();
5727
5727
  function isEmpty(ch) {
@@ -6308,9 +6308,9 @@ var require_lexer = __commonJS({
6308
6308
  }
6309
6309
  });
6310
6310
 
6311
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/line-counter.js
6311
+ // ../../node_modules/yaml/dist/parse/line-counter.js
6312
6312
  var require_line_counter = __commonJS({
6313
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/line-counter.js"(exports) {
6313
+ "../../node_modules/yaml/dist/parse/line-counter.js"(exports) {
6314
6314
  "use strict";
6315
6315
  var LineCounter = class {
6316
6316
  constructor() {
@@ -6339,9 +6339,9 @@ var require_line_counter = __commonJS({
6339
6339
  }
6340
6340
  });
6341
6341
 
6342
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/parser.js
6342
+ // ../../node_modules/yaml/dist/parse/parser.js
6343
6343
  var require_parser = __commonJS({
6344
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/parser.js"(exports) {
6344
+ "../../node_modules/yaml/dist/parse/parser.js"(exports) {
6345
6345
  "use strict";
6346
6346
  var node_process = __require("process");
6347
6347
  var cst = require_cst();
@@ -7213,9 +7213,9 @@ var require_parser = __commonJS({
7213
7213
  }
7214
7214
  });
7215
7215
 
7216
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/public-api.js
7216
+ // ../../node_modules/yaml/dist/public-api.js
7217
7217
  var require_public_api = __commonJS({
7218
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/public-api.js"(exports) {
7218
+ "../../node_modules/yaml/dist/public-api.js"(exports) {
7219
7219
  "use strict";
7220
7220
  var composer = require_composer();
7221
7221
  var Document = require_Document();
@@ -7310,9 +7310,9 @@ var require_public_api = __commonJS({
7310
7310
  }
7311
7311
  });
7312
7312
 
7313
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/index.js
7313
+ // ../../node_modules/yaml/dist/index.js
7314
7314
  var require_dist = __commonJS({
7315
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/index.js"(exports) {
7315
+ "../../node_modules/yaml/dist/index.js"(exports) {
7316
7316
  "use strict";
7317
7317
  var composer = require_composer();
7318
7318
  var Document = require_Document();
@@ -8422,7 +8422,7 @@ async function postLong(path, body, timeoutMs = 9e5) {
8422
8422
  const req = httpsRequest(`${base}${path}`, {
8423
8423
  method: "POST",
8424
8424
  timeout: timeoutMs,
8425
- headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.44.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
8425
+ headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.46.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
8426
8426
  }, (res) => {
8427
8427
  let buf = "";
8428
8428
  res.on("data", (c) => buf += c);
@@ -8464,7 +8464,7 @@ async function request(path, opts = {}, retried = false) {
8464
8464
  method: opts.method ?? (opts.body !== void 0 || opts.raw !== void 0 ? "POST" : "GET"),
8465
8465
  headers: {
8466
8466
  authorization: `Bearer ${token}`,
8467
- "user-agent": `ghosty-cli/${"0.44.0"}`,
8467
+ "user-agent": `ghosty-cli/${"0.46.0"}`,
8468
8468
  "accept-language": lang(),
8469
8469
  ...opts.body !== void 0 ? { "content-type": "application/json" } : {},
8470
8470
  ...opts.headers
@@ -8863,8 +8863,20 @@ ${dim(t("Dry run: nothing changed.", "Simulacro: no se cambi\xF3 nada."))}`);
8863
8863
  if (v["auto-stage"] !== "on" && v["auto-stage"] !== "off") throw usage(t("--auto-stage takes on or off.", "--auto-stage acepta on u off."));
8864
8864
  body.autoStage = v["auto-stage"] === "on";
8865
8865
  }
8866
+ if (v.quote) {
8867
+ const alias = { iva: "ivaPct", vigencia: "vigenciaDias", prefix: "folioPrefijo", prefijo: "folioPrefijo", currency: "moneda", company: "empresa", phone: "telefono", email: "correo", address: "direccion", notes: "notas" };
8868
+ const cot = {};
8869
+ for (const part of v.quote.split(/,(?=\s*[a-zA-Z]+=)/)) {
8870
+ const m = /^\s*([a-zA-Z]+)=(.*)$/.exec(part);
8871
+ if (!m) throw usage(t(`Bad --quote: ${part}.`, `--quote inv\xE1lido: ${part}.`), "--quote iva=0,prefix=SFI,vigencia=15");
8872
+ const key = alias[m[1]] ?? m[1];
8873
+ const val = m[2].trim().replace(/^"(.*)"$/, "$1");
8874
+ cot[key] = key === "ivaPct" || key === "vigenciaDias" ? Number(val) : val;
8875
+ }
8876
+ body.cotizacion = cot;
8877
+ }
8866
8878
  if (!Object.keys(body).length && done.length) return out({ id, updated: done }, () => `${lavender("\u2713")} ${t("Updated", "Actualizado")}: ${done.join(" \xB7 ")}`);
8867
- if (!Object.keys(body).length) throw usage(t("Nothing to change.", "Nada que cambiar."), t("Use", "Usa") + " --name, --engine, --model, --prompt, --prompt-file, --env, --unset-env, --channels, --toolsets, --tool, --connect, --disconnect, --voice, --voice-replies, --auto-stage, --bag " + t("or", "o") + " --avatar.");
8879
+ if (!Object.keys(body).length) throw usage(t("Nothing to change.", "Nada que cambiar."), t("Use", "Usa") + " --name, --engine, --model, --prompt, --prompt-file, --env, --unset-env, --channels, --toolsets, --tool, --connect, --disconnect, --voice, --voice-replies, --auto-stage, --quote, --bag " + t("or", "o") + " --avatar.");
8868
8880
  const r = await api(agentPath(id), { method: "PATCH", body });
8869
8881
  out(r, () => `${lavender("\u2713")} ${t("Updated", "Actualizado")}: ${[...Object.keys(body), ...done].join(", ")}.`);
8870
8882
  }
@@ -8967,7 +8979,8 @@ async function filesCmd(sub, id, path, v) {
8967
8979
  const r = await api(agentPath(id, `/files/${p}`));
8968
8980
  const cols = r.files?.length ? Object.keys(r.files[0]).slice(0, 4) : ["path"];
8969
8981
  out(r, () => `${dim(r.dir)}
8970
- ${table(r.files ?? [], cols)}`);
8982
+ ${table(r.files ?? [], cols)}${r.note ? `
8983
+ ${dim(r.note)}` : ""}`);
8971
8984
  return;
8972
8985
  }
8973
8986
  case "get": {
@@ -9725,7 +9738,7 @@ async function call(path, v, init = {}) {
9725
9738
  "x-ghosty-ts": ts,
9726
9739
  "x-ghosty-sig": sig,
9727
9740
  "content-type": "application/json",
9728
- "user-agent": `ghosty-cli/${"0.44.0"}`
9741
+ "user-agent": `ghosty-cli/${"0.46.0"}`
9729
9742
  },
9730
9743
  body: method === "GET" ? void 0 : raw
9731
9744
  });
@@ -10330,7 +10343,7 @@ ${dim(t("Used by", "Lo usan"))}: ${used}` : ""}`);
10330
10343
  function resumedCell(sdk) {
10331
10344
  if (!sdk) return "";
10332
10345
  if (sdk.resumed) return "\u2713";
10333
- return sdk.freshReason === "new" ? t("new", "nueva") : `\u26A0 ${t("from scratch", "desde cero")} (${sdk.freshReason ?? "?"})`;
10346
+ return sdk.freshReason === "new" ? t("1st turn", "1.er turno") : `\u26A0 ${t("from scratch", "desde cero")} (${sdk.freshReason ?? "?"})`;
10334
10347
  }
10335
10348
  function skipReason(r) {
10336
10349
  const es = {
@@ -10369,8 +10382,9 @@ async function turnsCancel(id, sid) {
10369
10382
  }
10370
10383
  async function turnsCmd(sub, id, turnId, v) {
10371
10384
  if (sub === "show") return turnShow(id, turnId, !!v.full);
10385
+ if (sub === "grep" || sub === "search") return turnsGrep(id, turnId, v);
10372
10386
  if (sub === "cancel" || sub === "stop") return turnsCancel(id, turnId);
10373
- if (sub && sub !== "ls" && sub !== "list") throw usage(t(`Unknown turns subcommand: ${sub}.`, `Subcomando de turns desconocido: ${sub}.`), t("Try", "Prueba") + ": ghosty turns ls <agent-id> --errors --since 1h \xB7 ghosty turns show <agent-id> [turn-id|last] \xB7 ghosty turns cancel <agent-id> <conversation>");
10387
+ if (sub && sub !== "ls" && sub !== "list") throw usage(t(`Unknown turns subcommand: ${sub}.`, `Subcomando de turns desconocido: ${sub}.`), t("Try", "Prueba") + ': ghosty turns ls <agent-id> --errors --since 1h \xB7 ghosty turns grep <agent-id> "text" --since 7d \xB7 ghosty turns show <agent-id> [turn-id|last] \xB7 ghosty turns cancel <agent-id> <conversation>');
10374
10388
  id = need2(id, t("agent id", "el id del agente"), "ghosty turns ls <agent-id> --errors --since 1h");
10375
10389
  if (v.skipped) return turnsSkipped(id, v);
10376
10390
  const q = new URLSearchParams();
@@ -10395,6 +10409,25 @@ async function turnsCmd(sub, id, turnId, v) {
10395
10409
  out(r, () => rows.length ? `${table(rows, ["id", "started", "state", "secs", "from", "session", ...rows.some((r2) => r2.resumed) ? ["resumed"] : [], "error"])}
10396
10410
  ${dim(`${v.since ? t(`since ${v.since}: `, `desde ${v.since}: `) : ""}${tally} \xB7 ${t("where the time went", "en qu\xE9 se fue el tiempo")}: ghosty turns show ${id} <turn-id>`)}` : dim(t(`No ${status ?? ""} turns${v.since ? ` since ${v.since}` : ""}.`, `Sin turnos${status ? ` ${status}` : ""}${v.since ? ` desde ${v.since}` : ""}.`)));
10397
10411
  }
10412
+ async function turnsGrep(id, text, v) {
10413
+ id = need2(id, t("agent id", "el id del agente"), 'ghosty turns grep <agent-id> "text" --since 7d');
10414
+ text = need2(text, t("text to search", "el texto a buscar"), 'ghosty turns grep <agent-id> "text" --since 7d');
10415
+ const q = new URLSearchParams({ q: text, limit: v.limit ?? "30" });
10416
+ if (v.since) q.set("since", v.since);
10417
+ if (v.session) q.set("session", v.session);
10418
+ if (v.role) q.set("role", v.role);
10419
+ const r = await api(agentPath2(id, `/turns?${q}`));
10420
+ const rows = r.matches.map((m) => ({
10421
+ at: m.at.slice(0, 16).replace("T", " "),
10422
+ who: m.role === "user" ? t("customer", "cliente") : t("agent", "agente"),
10423
+ turn: m.turnId ?? "",
10424
+ state: m.state === "error" ? red(m.state) : m.state ?? "",
10425
+ session: m.sessionId.slice(0, 24),
10426
+ text: serverText(m.snippet).slice(0, 140)
10427
+ }));
10428
+ out(r, () => rows.length ? `${table(rows, ["at", "who", "turn", "state", "session", "text"])}
10429
+ ${dim(`${t("open one", "abre uno")}: ghosty turns show ${id} <turn>`)}` : dim(t(`Nothing says \xAB${text}\xBB${v.since ? ` since ${v.since}` : ""}.`, `Nada dice \xAB${text}\xBB${v.since ? ` desde ${v.since}` : ""}.`)));
10430
+ }
10398
10431
  async function turnShow(id, turnId, full = false) {
10399
10432
  id = need2(id, t("agent id", "el id del agente"), "ghosty turns show <agent-id> [turn-id|last] [--full]");
10400
10433
  const r = await api(agentPath2(id, `/turns/${enc6(turnId ?? "last")}`));
@@ -11192,6 +11225,7 @@ var HELPS_ES = {
11192
11225
  ["--voice E:ID", "set: voz de las notas de voz: elevenlabs:<voiceId> o kokoro:em_santa|em_alex|ef_dora"],
11193
11226
  ["--voice-replies M", "set: auto = contesta con nota de voz cuando el cliente manda o pide audio; off = siempre texto"],
11194
11227
  ["--auto-stage on|off", "set: mueve solo las tarjetas del tablero tras cada turno del cliente (una llamada extra al modelo por turno)"],
11228
+ ["--quote k=v,\u2026", "set: config de la tool de casa `cotizar` \u2014 iva (0-100), vigencia (d\xEDas), prefix (folio), moneda, empresa, rfc, telefono, correo, direccion, notas, color. Vac\xEDo lo borra (rfc=). El contador de folio no se toca"],
11195
11229
  ["--verbose", "doctor: lista tambi\xE9n las revisiones que pasaron"],
11196
11230
  ["--user EMAIL", "doctor (staff de Ghosty): los agentes de esa persona \u2014 doctor, \xFAltimos turnos (estado, segundos, error y \xABfetched\xBB: si su app pidi\xF3 el hilo despu\xE9s de que termin\xF3 el turno), plan/bolsa y cajas (marca duplicadas); queda en bit\xE1cora"],
11197
11231
  ["--turns N", "doctor --user: cu\xE1ntos turnos recientes por agente (default 8, m\xE1x. 50)"],
@@ -11278,7 +11312,7 @@ var HELPS_ES = {
11278
11312
  },
11279
11313
  turns: {
11280
11314
  summary: "Los turnos recientes de un agente: qu\xE9 contest\xF3, qu\xE9 fall\xF3 y por qu\xE9, y en qu\xE9 se fue el tiempo de un turno.",
11281
- replace: [["# last turn: each tool, its seconds, output tokens", "# \xFAltimo turno: cada tool, sus segundos, tokens de salida"], ["# stop the turn AND its background jobs", "# detiene el turno Y sus encargos en fondo"], ["# staff: real failure rate by engine, channel (Teams/A2A too) and error", "# staff: tasa real de fallos por motor, canal (tambi\xE9n Teams y A2A) y error"]],
11315
+ replace: [["# last turn: each tool, its seconds, output tokens", "# \xFAltimo turno: cada tool, sus segundos, tokens de salida"], ["# stop the turn AND its background jobs", "# detiene el turno Y sus encargos en fondo"], ["# staff: real failure rate by engine, channel (Teams/A2A too) and error", "# staff: tasa real de fallos por motor, canal (tambi\xE9n Teams y A2A) y error"], ["# what the customer or the agent said, and its turn", "# lo que dijo el cliente o el agente, y su turno"]],
11282
11316
  flags: [
11283
11317
  ["--errors", "s\xF3lo turnos fallidos (igual que --status error)"],
11284
11318
  ["--skipped", "ls: mensajes de clientes de WhatsApp Business que NO abrieron turno, y por qu\xE9 (operador activo, s\xF3lo registra, pausa, reacci\xF3n, canal apagado, sin saldo)"],
@@ -11288,7 +11322,8 @@ var HELPS_ES = {
11288
11322
  ["--full", "show: el mensaje que entr\xF3 y la respuesta completos (default: primeros 600 caracteres)"],
11289
11323
  ["--quota-hits", "ls --workspace: mensajes (WhatsApp Business y Teams) que no abrieron turno porque se acab\xF3 el saldo"],
11290
11324
  ["--all", "stats (staff): cuenta tambi\xE9n staff, canal prueba y agentes borrados"],
11291
- ["--session S", "ls: s\xF3lo los turnos de esa conversaci\xF3n. Los de Claude dicen \xABresumed\xBB: \u2713 = retom\xF3 la sesi\xF3n del SDK, \u26A0 desde cero (orphan|stale|replaced) = perdi\xF3 la memoria"]
11325
+ ["--session S", "ls: s\xF3lo los turnos de esa conversaci\xF3n. Los de Claude dicen \xABresumed\xBB: \u2713 = retom\xF3 la sesi\xF3n del SDK, \xAB1.er turno\xBB = primer turno de una sesi\xF3n nueva del SDK (no es p\xE9rdida de memoria), \u26A0 desde cero (orphan|stale|replaced) = perdi\xF3 la memoria"],
11326
+ ["--role R", "grep: user (lo que escribi\xF3 el cliente) | agent (lo que contest\xF3 el agente)"]
11292
11327
  ],
11293
11328
  notes: ["--skipped guarda 30 d\xEDas y s\xF3lo ve lo que Formmy reenvi\xF3: si Formmy no reenv\xEDa (ghosty channels whatsapp ls, \xABformmy forwards\xBB), a gs nunca le llega el mensaje.", "show imprime lo que entr\xF3 y lo que sali\xF3 en cualquier motor o canal (grupos de WhatsApp tambi\xE9n); la l\xEDnea de tiempo lee el transcript del worker, as\xED que s\xF3lo motores del pool (no ACP/goose)."]
11294
11329
  },
@@ -11557,11 +11592,24 @@ var HELPS_ES = {
11557
11592
  ["--note TEXT", "renew: por qu\xE9 (va a la bit\xE1cora)"],
11558
11593
  ["--to EMAIL", "transfer: el due\xF1o nuevo (si no tiene cuenta se precrea y la reclama al entrar)"],
11559
11594
  ["--keep-as R", "transfer: el rol del due\xF1o anterior \u2014 admin | member (default) | none (sale del espacio)"],
11560
- ["--copy-keys", "transfer: copia las llaves de proveedor del anterior que le falten al nuevo (los agentes gastan la llave del due\xF1o nuevo)"],
11595
+ ["--copy-keys", "transfer: copia las llaves de proveedor del anterior y los conectores que usan sus agentes (MercadoPago, Skydropx\u2026) que le falten al nuevo. S\xF3lo cambia el due\xF1o: documentos, bases, tableros y n\xFAmeros que usan sus agentes se van con \xE9l; lo que tambi\xE9n se usa fuera del espacio se queda y se avisa"],
11596
+ ["--action A", "log: s\xF3lo esos eventos (workspace, workspace.transfer, partner\u2026)"],
11561
11597
  ["-n, --dry-run", "ense\xF1a qu\xE9 cambia, no cambia nada"],
11562
11598
  ["--yes", "s\xE1ltate la confirmaci\xF3n (obligatorio sin terminal)"]
11563
11599
  ],
11564
11600
  notes: ["create sigue las reglas de la web: queda a tu nombre, nace como prueba de 30 d\xEDas, tu correo debe estar confirmado y tu plan topa cu\xE1ntos tienes. Sigue: ghosty partner enable <slug>.", "Con suscripci\xF3n de Stripe renew se niega: la fecha la mueve la factura pagada.", "rename cambia s\xF3lo el slug (id y namespace se quedan, as\xED que tablero, Stripe y WhatsApp siguen funcionando); las ligas viejas <slug>.sales dejan de servir.", "transfer se lleva los agentes con el espacio y recicla sus cajas (el due\xF1o va horneado en la caja); sin --copy-keys la simulaci\xF3n dice qu\xE9 llaves le faltan al nuevo \u2014 esos agentes dejar\xEDan de contestar."]
11601
+ },
11602
+ staff: {
11603
+ summary: "Staff de Ghosty asignado a CUENTAS cliente (admin delegado que act\xFAa como s\xED mismo): ve y opera con su propia sesi\xF3n los agentes (con y sin espacio), documentos, bases y tableros de esa cuenta. Sin llaves, cobro, traspasos ni borrados. S\xF3lo el staff de Ghosty asigna; el cliente s\xF3lo ve \xABTu ejecutivo de Ghosty\xBB. Cada cambio y cada escritura quedan en la bit\xE1cora.",
11604
+ flags: [
11605
+ ["--all", "ls: tambi\xE9n las asignaciones revocadas"],
11606
+ ["--reason TEXT", "assign: por qu\xE9 (va a la bit\xE1cora)"],
11607
+ ["--yes", "unassign: s\xE1ltate la confirmaci\xF3n (obligatorio sin terminal)"]
11608
+ ],
11609
+ notes: [
11610
+ "En el panel web el staff elige \xABAtendiendo: <cliente>\xBB (Documentos y bases, Agentes); es una cookie que se revalida en cada request, nunca otra sesi\xF3n.",
11611
+ "Revocar corta en el siguiente request. Asignar dos veces no hace nada (una sola activa por par)."
11612
+ ]
11565
11613
  }
11566
11614
  };
11567
11615
  var HELP_ALIASES = { creds: "credentials", conectores: "connectors", board: "cards", conversations: "chat", workspaces: "spaces" };
@@ -11616,6 +11664,7 @@ var HELPS = {
11616
11664
  ["--voice E:ID", "set: voice for voice notes: elevenlabs:<voiceId> or kokoro:em_santa|em_alex|ef_dora"],
11617
11665
  ["--voice-replies M", "set: auto = answer with a voice note when the customer sends or asks for audio; off = always text"],
11618
11666
  ["--auto-stage on|off", "set: move board cards by itself after each customer turn (one extra model call per turn)"],
11667
+ ["--quote k=v,\u2026", "set: config of the house `cotizar` tool \u2014 iva (0-100), vigencia (days), prefix (folio), moneda, empresa, rfc, telefono, correo, direccion, notas, color. Empty value clears it (rfc=). The folio counter is never touched"],
11619
11668
  ["--verbose", "doctor: also list the checks that passed"],
11620
11669
  ["--user EMAIL", "doctor (Ghosty staff): that person's agents \u2014 doctor, latest turns (state, seconds, error, and \xABfetched\xBB: whether their app asked for the thread after the turn ended), plan/bag and boxes (duplicates flagged); logged"],
11621
11670
  ["--turns N", "doctor --user: how many recent turns per agent (default 8, max 50)"],
@@ -11760,7 +11809,7 @@ var HELPS = {
11760
11809
  },
11761
11810
  turns: {
11762
11811
  summary: "An agent's recent turns: what answered, what failed and why, and where one turn's time went.",
11763
- usage: ["ghosty turns ls <agent-id> [--errors | --status STATE | --skipped] [--since 1h] [--limit N]", "ghosty turns ls --workspace <slug> --quota-hits [--days 14]", "ghosty turns show <agent-id> [turn-id | last] [--full]", "ghosty turns cancel <agent-id> <conversation-id> # stop the turn AND its background jobs", "ghosty turns stats [--since 14d] [--all] # staff: real failure rate by engine, channel (Teams/A2A too) and error"],
11812
+ usage: ["ghosty turns ls <agent-id> [--errors | --status STATE | --skipped] [--since 1h] [--limit N]", "ghosty turns ls --workspace <slug> --quota-hits [--days 14]", "ghosty turns show <agent-id> [turn-id | last] [--full]", 'ghosty turns grep <agent-id> "text" [--since 7d] [--role user|agent] [--session S] # what the customer or the agent said, and its turn', "ghosty turns cancel <agent-id> <conversation-id> # stop the turn AND its background jobs", "ghosty turns stats [--since 14d] [--all] # staff: real failure rate by engine, channel (Teams/A2A too) and error"],
11764
11813
  flags: [
11765
11814
  ["--errors", "only failed turns (same as --status error)"],
11766
11815
  ["--skipped", "ls: WhatsApp Business customer messages that did NOT open a turn, and why (operator active, records only, paused, reaction, channel off, no balance)"],
@@ -11770,9 +11819,10 @@ var HELPS = {
11770
11819
  ["--full", "show: the whole message that came in and the whole answer (default: first 600 chars)"],
11771
11820
  ["--quota-hits", "ls --workspace: messages (WhatsApp Business and Teams) that got no turn because the balance ran out"],
11772
11821
  ["--all", "stats (staff): also count staff users, the test channel and deleted agents"],
11773
- ["--session S", "ls: only this conversation's turns. Claude turns show \xABresumed\xBB: \u2713 = it kept the SDK session, \u26A0 from scratch (orphan|stale|replaced) = it lost its memory"]
11822
+ ["--session S", "ls: only this conversation's turns. Claude turns show \xABresumed\xBB: \u2713 = it kept the SDK session, \xAB1st turn\xBB = first turn of a new SDK session (not a memory loss), \u26A0 from scratch (orphan|stale|replaced) = it lost its memory"],
11823
+ ["--role R", "grep: user (what the customer wrote) | agent (what the agent answered)"]
11774
11824
  ],
11775
- examples: ["ghosty turns ls <id> --errors --since 1h", "ghosty turns ls --workspace descti --quota-hits --days 30", "ghosty turns ls <id> --skipped --since 1d", "ghosty turns ls <id> --json --limit 100", "ghosty turns show <id> # last turn: each tool, its seconds, output tokens"],
11825
+ examples: ["ghosty turns ls <id> --errors --since 1h", "ghosty turns ls --workspace descti --quota-hits --days 30", "ghosty turns ls <id> --skipped --since 1d", "ghosty turns ls <id> --json --limit 100", "ghosty turns show <id> # last turn: each tool, its seconds, output tokens", 'ghosty turns grep <id> "IVA" --since 7d --role agent'],
11776
11826
  notes: ["--skipped keeps 30 days and only sees what Formmy forwarded: if Formmy doesn't forward (ghosty channels whatsapp ls, \xABformmy forwards\xBB), gs never gets the message.", "show prints what came in and what went out on any engine or channel (WhatsApp groups too); the timeline reads the worker's transcript, so pool engines only (not ACP/goose)."],
11777
11827
  learn: `${REF}#turnos`
11778
11828
  },
@@ -12158,7 +12208,7 @@ HELPS.novedades = {
12158
12208
  };
12159
12209
  HELPS.spaces = {
12160
12210
  summary: "Workspaces: create one of your own (trial), list yours (or, staff, anyone's), and Ghosty staff operations \u2014 join/leave a client's workspace, change its combo, move \xABpaid until\xBB, rename its slug, change its owner. Each change is logged in the workspace's audit.",
12161
- usage: ["ghosty spaces ls [--user EMAIL]", "ghosty spaces create <slug> [--combo teams|sales|both] [--dry-run]", "ghosty spaces join|leave <workspace>", "ghosty spaces set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off [--dry-run]", "ghosty spaces renew <workspace> --until YYYY-MM-DD [--note TEXT] [--dry-run] [--yes]", "ghosty spaces rename <old> <new> [--dry-run] [--yes]", "ghosty spaces transfer <workspace> --to EMAIL [--keep-as admin|member|none] [--copy-keys] [--dry-run] [--yes]"],
12211
+ usage: ["ghosty spaces ls [--user EMAIL]", "ghosty spaces create <slug> [--combo teams|sales|both] [--dry-run]", "ghosty spaces join|leave <workspace>", "ghosty spaces set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off [--dry-run]", "ghosty spaces renew <workspace> --until YYYY-MM-DD [--note TEXT] [--dry-run] [--yes]", "ghosty spaces rename <old> <new> [--dry-run] [--yes]", "ghosty spaces transfer <workspace> --to EMAIL [--keep-as admin|member|none] [--copy-keys] [--dry-run] [--yes]", "ghosty spaces log <workspace> [--since 30d] [--action workspace] [--limit N]"],
12162
12212
  flags: [
12163
12213
  ["--user EMAIL", "ls (staff): that person's workspaces"],
12164
12214
  ["--combo C", "set (staff): teams | sales | both \u2014 without Sales its boards exist but nobody sees them; create: other than teams, staff only"],
@@ -12168,11 +12218,12 @@ HELPS.spaces = {
12168
12218
  ["--note TEXT", "renew: why (goes into the audit)"],
12169
12219
  ["--to EMAIL", "transfer: the new owner (if they have no account it is pre-created and claimed on login)"],
12170
12220
  ["--keep-as R", "transfer: the previous owner's role \u2014 admin | member (default) | none (removed)"],
12171
- ["--copy-keys", "transfer: copy the previous owner's provider keys the new one lacks (agents spend the new owner's key)"],
12221
+ ["--copy-keys", "transfer: copy the previous owner's provider keys and the connectors its agents use (MercadoPago, Skydropx\u2026) that the new one lacks. Only the owner changes: documents, databases, boards and numbers its agents use move with it; anything also used outside the space stays and is listed"],
12222
+ ["--action A", "log: only these events (workspace, workspace.transfer, partner\u2026)"],
12172
12223
  ["-n, --dry-run", "show what changes, change nothing"],
12173
12224
  ["--yes", "skip the confirmation (required without a terminal)"]
12174
12225
  ],
12175
- examples: ["ghosty spaces ls", "ghosty spaces create mailmask --dry-run", "ghosty spaces ls --user brenda@siiqtec.com", "ghosty spaces join denik", "ghosty spaces set denik --combo sales --dry-run", "ghosty spaces set mailmask --model-cap 4 --house-claude on", 'ghosty spaces renew descti --until 2026-11-01 --note "pag\xF3 octubre"', "ghosty spaces rename totequim siiqtec --dry-run", "ghosty spaces transfer siiqtec --to siiqtec@gmail.com --keep-as admin --copy-keys --dry-run"],
12226
+ examples: ["ghosty spaces ls", "ghosty spaces create mailmask --dry-run", "ghosty spaces ls --user brenda@siiqtec.com", "ghosty spaces join denik", "ghosty spaces set denik --combo sales --dry-run", "ghosty spaces set mailmask --model-cap 4 --house-claude on", 'ghosty spaces renew descti --until 2026-11-01 --note "pag\xF3 octubre"', "ghosty spaces rename totequim siiqtec --dry-run", "ghosty spaces transfer siiqtec --to siiqtec@gmail.com --keep-as admin --copy-keys --dry-run", "ghosty spaces log siiqtec --since 30d"],
12176
12227
  notes: ["create follows the same rules as the web: you own it, it starts as a 30-day trial, your email must be confirmed, and your plan caps how many you own. Next: ghosty partner enable <slug>.", "With a Stripe subscription renew refuses: the paid invoice moves the date.", "rename changes only the slug (id and namespace stay, so board, Stripe and WhatsApp keep working); old <slug>.sales links stop working.", "transfer moves the agents with the workspace and recycles their boxes (the owner is baked into the box); without --copy-keys the dry run lists which keys the new owner lacks \u2014 those agents would stop answering."],
12177
12228
  learn: `${REF}#espacios`
12178
12229
  };
@@ -12190,6 +12241,25 @@ HELPS.sites = {
12190
12241
  notes: ["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.", "Without --site, publish always creates a new site (house sites are never matched by title).", "Slug errors: slug_invalid, slug_taken, and slug_unsupported while EasyBits does not accept a slug yet (exit 1, nothing changes)."],
12191
12242
  learn: `${REF}#sitios`
12192
12243
  };
12244
+ HELPS.staff = {
12245
+ summary: "Ghosty staff assigned to client ACCOUNTS (delegated admin acting as themselves): the staff member sees and runs that account's agents (with and without a workspace), documents, databases and boards with their own session. No keys, billing, transfers or deletes. Only Ghosty staff assigns; the customer just sees \xABYour Ghosty account executive\xBB. Every change and every write is logged.",
12246
+ usage: [
12247
+ "ghosty staff ls [staff-email] [client-email] [--all]",
12248
+ "ghosty staff assign <staff-email> <client-email> [--reason TEXT]",
12249
+ "ghosty staff unassign <staff-email> <client-email> [--yes]"
12250
+ ],
12251
+ flags: [
12252
+ ["--all", "ls: also revoked assignments"],
12253
+ ["--reason TEXT", "assign: why (goes to the audit log)"],
12254
+ ["--yes", "unassign: skip the confirmation (required without a terminal)"]
12255
+ ],
12256
+ examples: ['ghosty staff assign brenda@siiqtec.com siiqtec@gmail.com --reason "migraci\xF3n SIIQTEC"', "ghosty staff ls brenda@siiqtec.com", "ghosty staff unassign brenda@siiqtec.com siiqtec@gmail.com --yes"],
12257
+ notes: [
12258
+ "In the web panel the staff member picks \xABAtendiendo: <client>\xBB (Documents and databases, Agents); it is a cookie revalidated on every request, never another session.",
12259
+ "Revoking cuts on the next request. Assigning twice is a no-op (one active assignment per pair)."
12260
+ ],
12261
+ learn: `${REF}#staff-asignado`
12262
+ };
12193
12263
  function helpText(cmd) {
12194
12264
  const base = HELPS[cmd];
12195
12265
  if (!base) return void 0;
@@ -12671,7 +12741,7 @@ ${bagsText(r)}`);
12671
12741
  }
12672
12742
  }
12673
12743
  async function spacesCmd(sub, slug, arg, v, context) {
12674
- const ex = "ghosty spaces ls [--user EMAIL] \xB7 create <slug> [--combo teams|sales|both] [--dry-run] \xB7 join|leave <workspace> \xB7 set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off \xB7 renew <workspace> --until 2026-11-01 [--note TEXT] \xB7 rename <old> <new> [--dry-run] \xB7 transfer <workspace> --to EMAIL [--keep-as admin|member|none] [--copy-keys] [--dry-run]";
12744
+ const ex = "ghosty spaces ls [--user EMAIL] \xB7 create <slug> [--combo teams|sales|both] [--dry-run] \xB7 join|leave <workspace> \xB7 set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off \xB7 renew <workspace> --until 2026-11-01 [--note TEXT] \xB7 rename <old> <new> [--dry-run] \xB7 transfer <workspace> --to EMAIL [--keep-as admin|member|none] [--copy-keys] [--dry-run] \xB7 log <workspace> [--since 30d] [--action workspace]";
12675
12745
  if (!sub || sub === "ls" || sub === "list") {
12676
12746
  const r = await api(`/api/v2/workspaces${v.user ? `?user=${enc10(v.user)}` : ""}`);
12677
12747
  const rows = r.workspaces.map((w) => ({ workspace: w.slug, role: w.role ?? "", plan: w.plan, combo: w.combo, owner: w.owner ?? "", paid: w.paidUntil ?? "" }));
@@ -12687,6 +12757,15 @@ ${dim(t("Dry run: nothing created.", "Simulaci\xF3n: no se cre\xF3 nada."))}`);
12687
12757
  return out(r, () => `${lavender("\u2713")} ${line2}
12688
12758
  ${dim(t(`Next: ghosty use ${r.workspace} \xB7 ghosty partner enable ${r.workspace}`, `Sigue: ghosty use ${r.workspace} \xB7 ghosty partner enable ${r.workspace}`))}`);
12689
12759
  }
12760
+ if (sub === "log") {
12761
+ slug = needSpace(slug, "ghosty spaces log <workspace> [--since 30d] [--action workspace]");
12762
+ const q = new URLSearchParams({ limit: v.limit ?? "50" });
12763
+ if (v.since) q.set("since", v.since);
12764
+ if (v.action) q.set("action", v.action);
12765
+ const r = await api(wsPath(slug, `/log?${q}`));
12766
+ const rows = r.events.map((e) => ({ at: e.at.slice(0, 16).replace("T", " "), actor: e.actor, action: e.action, detail: serverText(e.detail ? JSON.stringify(e.detail) : "").slice(0, 110) }));
12767
+ return out(r, () => rows.length ? table(rows, ["at", "actor", "action", "detail"]) : dim(t(`No events in ${r.workspace}${v.since ? ` since ${v.since}` : ""}.`, `Sin eventos en ${r.workspace}${v.since ? ` desde ${v.since}` : ""}.`)));
12768
+ }
12690
12769
  if (sub === "join" || sub === "leave") {
12691
12770
  slug = needSpace(slug, `ghosty spaces ${sub} <workspace>`);
12692
12771
  const r = await api(wsPath(slug, "/staff"), { method: "POST", body: { join: sub === "join" } });
@@ -12795,7 +12874,7 @@ ${dim(t(`${total2} message(s) unanswered for lack of balance in ${r.days} day(s)
12795
12874
  d.noQuota += x.noQuota;
12796
12875
  days.set(x.day, d);
12797
12876
  }
12798
- rows = [...days].map(([day2, x]) => ({ day: day2, ...fmt2(x) }));
12877
+ rows = [...days].map(([day3, x]) => ({ day: day3, ...fmt2(x) }));
12799
12878
  } else rows = r.agents.map((x) => ({ agent: x.agent, ...fmt2(x) }));
12800
12879
  const cols = [...by.has("day") ? ["day"] : [], ...by.has("agent") ? ["agent"] : [], "turns", "failed", "tokens", "no balance"];
12801
12880
  const total = r.agents.reduce((n, a) => n + a.billable, 0);
@@ -12996,6 +13075,43 @@ ${dim(t("Links with the old slug may stop working.", "Las ligas con el slug viej
12996
13075
  }
12997
13076
  }
12998
13077
 
13078
+ // src/commands/staff.ts
13079
+ var day2 = (iso) => iso ? iso.slice(0, 10) : "";
13080
+ async function staffCmd(sub, staff, client, v) {
13081
+ if (!sub || sub === "ls" || sub === "list") {
13082
+ const q = new URLSearchParams();
13083
+ if (staff) q.set("staff", staff);
13084
+ if (client) q.set("client", client);
13085
+ if (v.all) q.set("all", "1");
13086
+ const r = await api(`/api/v2/staff/assignments${q.toString() ? `?${q}` : ""}`);
13087
+ const rows = r.assignments.map((a) => ({
13088
+ staff: a.staff.email,
13089
+ client: a.client.email,
13090
+ since: day2(a.createdAt),
13091
+ by: a.grantedBy,
13092
+ reason: a.reason ?? "",
13093
+ ...v.all ? { revoked: day2(a.revokedAt) } : {}
13094
+ }));
13095
+ return out(r, () => rows.length ? table(rows, ["staff", "client", "since", "by", "reason", ...v.all ? ["revoked"] : []]) : dim(t("No assignments.", "Sin asignaciones.")));
13096
+ }
13097
+ if (sub === "assign" || sub === "unassign") {
13098
+ if (!staff || !client) throw usage(t("Missing emails.", "Faltan correos."), `ghosty staff ${sub} <staff-email> <client-email>${sub === "assign" ? " [--reason TEXT]" : ""}`);
13099
+ if (sub === "assign") {
13100
+ const r2 = await api("/api/v2/staff/assignments", { method: "POST", body: { staff, client, ...v.reason ? { reason: v.reason } : {} } });
13101
+ return out(
13102
+ r2,
13103
+ () => r2.already ? dim(t(`${r2.staff} already serves ${r2.client}.`, `${r2.staff} ya atend\xEDa a ${r2.client}.`)) : `${lavender("\u2713")} ${t(`${r2.staff} now serves ${r2.client}: agents, documents, databases and boards, with no keys, billing or transfers (logged).`, `${r2.staff} ahora atiende a ${r2.client}: agentes, documentos, bases y tableros, sin llaves, cobro ni traspasos (queda en bit\xE1cora).`)}`
13104
+ );
13105
+ }
13106
+ const retry = `ghosty staff unassign ${staff} ${client} --yes`;
13107
+ requireYesIfHeadless(v.yes, retry);
13108
+ if (!v.yes) await confirm(t(`Stop ${staff} serving ${client}? It cuts on their next click.`, `\xBFQue ${staff} deje de atender a ${client}? Se corta en su siguiente clic.`), { retry });
13109
+ const r = await api("/api/v2/staff/assignments", { method: "DELETE", body: { staff, client } });
13110
+ return out(r, () => r.revoked ? `${lavender("\u2713")} ${t(`${r.staff} no longer serves ${r.client}.`, `${r.staff} ya no atiende a ${r.client}.`)}` : dim(t("There was no active assignment.", "No hab\xEDa asignaci\xF3n activa.")));
13111
+ }
13112
+ throw usage(t(`Unknown staff subcommand: ${sub}.`, `Subcomando de staff desconocido: ${sub}.`), "ghosty staff ls|assign|unassign <staff-email> [client-email]");
13113
+ }
13114
+
12999
13115
  // src/commands/support.ts
13000
13116
  import { readFile as readFile14 } from "node:fs/promises";
13001
13117
  var enc12 = encodeURIComponent;
@@ -13237,6 +13353,9 @@ ${bold("Workspaces")} ${dim("(changing them: Ghosty staff)")}
13237
13353
  spaces renew <workspace> --until DATE Move \xABpaid until\xBB (logged) [--note] [--dry-run]
13238
13354
  spaces rename <old> <new> Change its slug only [--dry-run]
13239
13355
  spaces transfer <workspace> --to EMAIL New owner; agents go with it and their boxes are recycled [--keep-as admin|member|none] [--copy-keys] [--dry-run]
13356
+ spaces log <workspace> Its log: transfers, staff in/out, renewals (owner or staff) [--since 30d] [--action workspace]
13357
+ staff ls [staff-email] [client-email] Ghosty staff assigned to client accounts (staff) [--all: also revoked]
13358
+ 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]
13240
13359
 
13241
13360
  ${bold("Agents")}
13242
13361
  agents ls List your agents [--engine E] [--ids: only ids, for xargs] \xB7 --user EMAIL --app all|android|ios|desktop: as their app sees it (staff)
@@ -13251,6 +13370,7 @@ ${bold("Agents")}
13251
13370
  [--connect google-drive,\u2026] [--disconnect \u2026] give/remove access to your connectors
13252
13371
  [--channels wa=on,teams=off] turn channels on/off (wa = personal WhatsApp)
13253
13372
  [--voice elevenlabs:ID | kokoro:em_santa] [--voice-replies auto|off] [--auto-stage on|off]
13373
+ [--quote iva=0,prefix=SFI,vigencia=15] house cotizar tool config (issuer, VAT, folio)
13254
13374
  [--toolsets crm,sales | +crm,-sales] gs tool groups it gets
13255
13375
  [--prompt-base AGENT|none --prompt-overlay FILE [--dry-run]] prompt = another agent's + edits, kept in sync
13256
13376
  [--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
@@ -13320,6 +13440,7 @@ ${bold("Talk to an agent")}
13320
13440
  turns ls <id> Recent turns and why they failed [--errors] [--skipped] [--since 1h] [--limit N]
13321
13441
  turns ls --workspace SLUG --quota-hits Messages that got no turn because the balance ran out [--days 14]
13322
13442
  turns show <id> [turn] What came in, what it answered, and where the time went (default: last) [--full]
13443
+ turns grep <id> "text" Find what the customer or the agent said, and the turn [--since 7d] [--role user|agent] [--session S]
13323
13444
  turns cancel <id> <conv> Stop: the running turn AND that conversation's background jobs (video, subagents, pending wake-ups)
13324
13445
 
13325
13446
  ${bold("Schedule turns")} ${dim("(each run lands in a conversation and notifies your phone; an answer of exactly OK stays silent)")}
@@ -13377,6 +13498,9 @@ ${bold("Espacios")} ${dim("(cambiarlos: staff de Ghosty)")}
13377
13498
  spaces renew <espacio> --until FECHA Mueve \xABpagado hasta\xBB (queda en bit\xE1cora) [--note] [--dry-run]
13378
13499
  spaces rename <viejo> <nuevo> Cambia s\xF3lo su slug [--dry-run]
13379
13500
  spaces transfer <espacio> --to CORREO Due\xF1o nuevo; los agentes se van con \xE9l y se reciclan sus cajas [--keep-as admin|member|none] [--copy-keys] [--dry-run]
13501
+ spaces log <espacio> Su bit\xE1cora: traspasos, staff que entra o sale, renovaciones (due\xF1o o staff) [--since 30d] [--action workspace]
13502
+ staff ls [correo-staff] [correo-cliente] Staff de Ghosty asignado a cuentas cliente (staff) [--all: tambi\xE9n revocadas]
13503
+ 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]
13380
13504
 
13381
13505
  ${bold("Agentes")}
13382
13506
  agents ls Lista tus agentes [--engine E] [--ids: s\xF3lo ids, para xargs] \xB7 --user CORREO --app all|android|ios|desktop: como lo ve su app (staff)
@@ -13391,6 +13515,7 @@ ${bold("Agentes")}
13391
13515
  [--connect google-drive,\u2026] [--disconnect \u2026] dale o qu\xEDtale acceso a tus conectores
13392
13516
  [--channels wa=on,teams=off] prende/apaga canales (wa = WhatsApp personal)
13393
13517
  [--voice elevenlabs:ID | kokoro:em_santa] [--voice-replies auto|off] [--auto-stage on|off]
13518
+ [--quote iva=0,prefix=SFI,vigencia=15] config de la tool de casa cotizar (emisor, IVA, folio)
13394
13519
  [--toolsets crm,sales | +crm,-sales] grupos de tools de gs que recibe
13395
13520
  [--prompt-base AGENTE|none --prompt-overlay ARCHIVO [--dry-run]] prompt = el de otro agente + ediciones, sincronizado
13396
13521
  [--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
@@ -13460,6 +13585,7 @@ ${bold("Hablar con un agente")}
13460
13585
  turns ls <id> Turnos recientes y por qu\xE9 fallaron [--errors] [--skipped] [--since 1h] [--limit N]
13461
13586
  turns ls --workspace SLUG --quota-hits Mensajes que no abrieron turno porque se acab\xF3 el saldo [--days 14]
13462
13587
  turns show <id> [turno] Qu\xE9 lleg\xF3, qu\xE9 contest\xF3 y en qu\xE9 se fue el tiempo (default: el \xFAltimo) [--full]
13588
+ turns grep <id> "texto" Busca lo que dijo el cliente o el agente, y su turno [--since 7d] [--role user|agent] [--session S]
13463
13589
  turns cancel <id> <conv> Detener: el turno en curso Y los encargos en fondo de esa conversaci\xF3n (video, subagentes, despertadores)
13464
13590
 
13465
13591
  ${bold("Turnos programados")} ${dim("(cada corrida cae en una conversaci\xF3n y avisa a tu tel\xE9fono; una respuesta de exactamente OK no avisa)")}
@@ -13494,7 +13620,7 @@ ${bold("Opciones globales")}
13494
13620
  ${bold("C\xF3digos de salida")} 0 bien \xB7 1 error de la API \xB7 2 uso incorrecto \xB7 3 sin sesi\xF3n
13495
13621
  ${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.")}
13496
13622
  ${dim("Documentaci\xF3n: https://www.ghosty.studio/docs/cli")}`;
13497
- var COMMANDS = ["login", "logout", "whoami", "usage", "use", "apply", "plan", "engines", "bags", "spaces", "workspaces", "demos", "sites", "push", "novedades", "completion", "cards", "agents", "files", "skills", "mcp", "dbs", "turns", "try", "chat", "conversations", "schedule", "partner", "me", "channels", "board", "boards", "credentials", "connectors", "browser", "docs", "help"];
13623
+ var COMMANDS = ["login", "logout", "whoami", "usage", "use", "apply", "plan", "engines", "bags", "spaces", "workspaces", "staff", "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"];
13498
13624
  var AGENTS_SUBS = ["ls", "create", "get", "set", "export", "doctor", "docs", "share", "unshare", "shares", "teams", "rm", "restart", "demo", "box"];
13499
13625
  function unknown(what, input, known, helpCmd) {
13500
13626
  const s = suggest(input, known);
@@ -13594,6 +13720,7 @@ async function main() {
13594
13720
  status: { type: "string" },
13595
13721
  since: { type: "string" },
13596
13722
  limit: { type: "string" },
13723
+ action: { type: "string" },
13597
13724
  verbose: { type: "boolean" },
13598
13725
  full: { type: "boolean" },
13599
13726
  "as-formmy": { type: "boolean" },
@@ -13634,6 +13761,7 @@ async function main() {
13634
13761
  grant: { type: "string" },
13635
13762
  days: { type: "string" },
13636
13763
  voice: { type: "string" },
13764
+ quote: { type: "string" },
13637
13765
  "voice-replies": { type: "string" },
13638
13766
  "auto-stage": { type: "string" },
13639
13767
  "from-env": { type: "string" },
@@ -13668,6 +13796,7 @@ async function main() {
13668
13796
  recurring: { type: "string" },
13669
13797
  "hard-cap": { type: "string" },
13670
13798
  note: { type: "string" },
13799
+ reason: { type: "string" },
13671
13800
  bag: { type: "string" },
13672
13801
  avatar: { type: "string" },
13673
13802
  tool: { type: "string" },
@@ -13721,7 +13850,7 @@ async function main() {
13721
13850
  const tokens = splitTokens(pos, v);
13722
13851
  globals.token = tokens.session;
13723
13852
  globals.profile = v.profile;
13724
- if (v.version) return out({ version: "0.44.0" }, () => "0.44.0");
13853
+ if (v.version) return out({ version: "0.46.0" }, () => "0.46.0");
13725
13854
  for (const n of normalizeArgs(pos, v)) if (!globals.json) info(dim(n));
13726
13855
  const context = (await readConfig()).workspace;
13727
13856
  if (!explicitToken()?.startsWith("gat_")) {
@@ -13862,6 +13991,8 @@ async function main() {
13862
13991
  case "space":
13863
13992
  case "workspaces":
13864
13993
  return spacesCmd(sub, a1, a2, v, context);
13994
+ case "staff":
13995
+ return staffCmd(sub, a1, a2, v);
13865
13996
  case "plan":
13866
13997
  return planCmd(sub, a1, v, context);
13867
13998
  case "me":
@@ -13879,7 +14010,7 @@ async function main() {
13879
14010
  throw unknown(cmd, cmd, COMMANDS, "ghosty --help");
13880
14011
  }
13881
14012
  }
13882
- var notice = updateNotice("0.44.0").catch(() => null);
14013
+ var notice = updateNotice("0.46.0").catch(() => null);
13883
14014
  main().then(
13884
14015
  async () => {
13885
14016
  const n = await notice;