@ghostystudio/cli 0.95.0 → 0.96.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +8 -1
  2. package/dist/index.js +322 -158
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -126,7 +126,7 @@ ghosty settings ls|set|unset <KEY> [value] # platform switches (+id/-id edits
126
126
  ghosty ads watch [ls] · ads watch run [--dry-run] # campaign watch: paused campaigns, billing, token, numbers without ad leads
127
127
  ghosty agents doctor --user EMAIL [agent] [--turns 8] · usage --images [--plan free] [--by user]
128
128
  ghosty novedades ls|create|set|test|send|rm [--title] [--body] [--image FILE] [--link] [--to] [--publish] [--at]
129
- ghosty sites ls [--house] · sites publish <file.html|folder> [--title] [--slug S] [--site <slug|id>] · sites slug <slug|id> <new-slug> # house sites on EasyBits
129
+ ghosty sites show <slug> · sites env|cron|files [ls] <slug> · sites ls [--house] · sites publish <file.html|folder> [--title] [--slug S] [--site <slug|id>] · sites slug <slug|id> <new-slug> # house sites on EasyBits
130
130
  ghosty credentials ls|set|rm [provider] [--from-env VAR] # never as an argument
131
131
  ghosty connectors ls|connect|disconnect [id] [--q TEXT] [--from-env VAR] [--no-open] # Shopify, Stripe, monday…
132
132
  ghosty support open --title T --body TEXT · support ls | show <id> | reply <id> --body TEXT # ask Ghosty for help; answered by email
@@ -155,6 +155,13 @@ Every command has its own help with examples: `ghosty <command> --help` or `ghos
155
155
 
156
156
  Exit codes: `0` ok · `1` API error · `2` usage error · `3` not signed in.
157
157
 
158
+ ### Changes in 0.96.0
159
+
160
+ - `sites show <slug|id>`: everything the site's page shows (`/c/sitios/<slug>`), from `GET /api/v2/sites/:ref/detail`: one app status (Ready / Starting… / Asleep / Failed), domains, variable names (never values), database, files, tasks, and email/AI when the app used them. It never wakes the app.
161
+ - `sites env [ls] <slug>` · `env set <slug> NAME=value…` · `env rm <slug> NAME`: an app's variables (restart without rebuild).
162
+ - `sites errors <slug> [--since 24h] [--kind K] [--req-id ID]`: server and browser errors of an app, grouped by message (same as the agent's `app_errors`).
163
+ - `sites cron [ls] <slug>` · `cron pause|resume|rm <slug> <id>` and `sites files [ls] <slug>` · `files rm <slug> <id>`.
164
+
158
165
  ### Changes in 0.95.0
159
166
 
160
167
  - `factory runs resume|stop|cancel <run>`: what the card offers for a run that stopped moving — its role picks up where it left off, stop the running turn, or cancel the run. `resume` refuses while a role is working (it suggests `stop`). Ghosty staff can use them in workspaces they're not a member of; approving and merging stay with the client.
package/dist/index.js CHANGED
@@ -847,7 +847,15 @@ var init_server_messages = __esm({
847
847
  ["falta el id", "missing the id"],
848
848
  ["s\xF3lo el due\xF1o (o staff) puede ceder o mover el agente", "only the owner (or staff) can hand over or move the agent"],
849
849
  ["falta to (correo) o workspace (slug, o none para el personal)", "missing to (email) or workspace (slug, or none for the personal one)"],
850
- ["{} no es un espacio de {}", "{} is not a workspace of {}"]
850
+ ["{} no es un espacio de {}", "{} is not a workspace of {}"],
851
+ // — Tablero de una app (`ghosty sites show|env|cron|files`, 3-nov)
852
+ ["no tienes una app con backend publicada \xAB{}\xBB", 'you have no published app with a backend "{}"'],
853
+ ["ese archivo ya no existe", "that file no longer exists"],
854
+ ["falta el id del archivo", "missing the file id"],
855
+ ["falta set {NOMBRE: valor}", "missing set {NAME: value}"],
856
+ ["falta name", "missing name"],
857
+ ["action debe ser pause, resume o rm", "action must be pause, resume or rm"],
858
+ ["no encontr\xE9 ese sitio en tu cuenta", "that site isn't in your account"]
851
859
  ];
852
860
  }
853
861
  });
@@ -1175,7 +1183,7 @@ async function postLong(path2, body, timeoutMs = 9e5) {
1175
1183
  const req = httpsRequest(`${base}${path2}`, {
1176
1184
  method: "POST",
1177
1185
  timeout: timeoutMs,
1178
- headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.95.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
1186
+ headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.96.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
1179
1187
  }, (res) => {
1180
1188
  let buf = "";
1181
1189
  res.on("data", (c) => buf += c);
@@ -1217,7 +1225,7 @@ async function request(path2, opts = {}, retried = false) {
1217
1225
  method: opts.method ?? (opts.body !== void 0 || opts.raw !== void 0 ? "POST" : "GET"),
1218
1226
  headers: {
1219
1227
  authorization: `Bearer ${token}`,
1220
- "user-agent": `ghosty-cli/${"0.95.0"}`,
1228
+ "user-agent": `ghosty-cli/${"0.96.0"}`,
1221
1229
  "accept-language": lang(),
1222
1230
  ...opts.body !== void 0 ? { "content-type": "application/json" } : {},
1223
1231
  ...opts.headers
@@ -1337,9 +1345,9 @@ var init_mteams = __esm({
1337
1345
  }
1338
1346
  });
1339
1347
 
1340
- // ../../../ghosty-studio/node_modules/yaml/dist/nodes/identity.js
1348
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/identity.js
1341
1349
  var require_identity = __commonJS({
1342
- "../../../ghosty-studio/node_modules/yaml/dist/nodes/identity.js"(exports) {
1350
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/identity.js"(exports) {
1343
1351
  "use strict";
1344
1352
  var ALIAS = /* @__PURE__ */ Symbol.for("yaml.alias");
1345
1353
  var DOC = /* @__PURE__ */ Symbol.for("yaml.document");
@@ -1394,9 +1402,9 @@ var require_identity = __commonJS({
1394
1402
  }
1395
1403
  });
1396
1404
 
1397
- // ../../../ghosty-studio/node_modules/yaml/dist/visit.js
1405
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/visit.js
1398
1406
  var require_visit = __commonJS({
1399
- "../../../ghosty-studio/node_modules/yaml/dist/visit.js"(exports) {
1407
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/visit.js"(exports) {
1400
1408
  "use strict";
1401
1409
  var identity = require_identity();
1402
1410
  var BREAK = /* @__PURE__ */ Symbol("break visit");
@@ -1552,9 +1560,9 @@ var require_visit = __commonJS({
1552
1560
  }
1553
1561
  });
1554
1562
 
1555
- // ../../../ghosty-studio/node_modules/yaml/dist/doc/directives.js
1563
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/directives.js
1556
1564
  var require_directives = __commonJS({
1557
- "../../../ghosty-studio/node_modules/yaml/dist/doc/directives.js"(exports) {
1565
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/directives.js"(exports) {
1558
1566
  "use strict";
1559
1567
  var identity = require_identity();
1560
1568
  var visit = require_visit();
@@ -1723,9 +1731,9 @@ var require_directives = __commonJS({
1723
1731
  }
1724
1732
  });
1725
1733
 
1726
- // ../../../ghosty-studio/node_modules/yaml/dist/doc/anchors.js
1734
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/anchors.js
1727
1735
  var require_anchors = __commonJS({
1728
- "../../../ghosty-studio/node_modules/yaml/dist/doc/anchors.js"(exports) {
1736
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/anchors.js"(exports) {
1729
1737
  "use strict";
1730
1738
  var identity = require_identity();
1731
1739
  var visit = require_visit();
@@ -1793,9 +1801,9 @@ var require_anchors = __commonJS({
1793
1801
  }
1794
1802
  });
1795
1803
 
1796
- // ../../../ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js
1804
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js
1797
1805
  var require_applyReviver = __commonJS({
1798
- "../../../ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js"(exports) {
1806
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js"(exports) {
1799
1807
  "use strict";
1800
1808
  function applyReviver(reviver, obj, key, val) {
1801
1809
  if (val && typeof val === "object") {
@@ -1843,9 +1851,9 @@ var require_applyReviver = __commonJS({
1843
1851
  }
1844
1852
  });
1845
1853
 
1846
- // ../../../ghosty-studio/node_modules/yaml/dist/nodes/toJS.js
1854
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/toJS.js
1847
1855
  var require_toJS = __commonJS({
1848
- "../../../ghosty-studio/node_modules/yaml/dist/nodes/toJS.js"(exports) {
1856
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/toJS.js"(exports) {
1849
1857
  "use strict";
1850
1858
  var identity = require_identity();
1851
1859
  function toJS(value, arg, ctx) {
@@ -1873,9 +1881,9 @@ var require_toJS = __commonJS({
1873
1881
  }
1874
1882
  });
1875
1883
 
1876
- // ../../../ghosty-studio/node_modules/yaml/dist/nodes/Node.js
1884
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Node.js
1877
1885
  var require_Node = __commonJS({
1878
- "../../../ghosty-studio/node_modules/yaml/dist/nodes/Node.js"(exports) {
1886
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Node.js"(exports) {
1879
1887
  "use strict";
1880
1888
  var applyReviver = require_applyReviver();
1881
1889
  var identity = require_identity();
@@ -1914,9 +1922,9 @@ var require_Node = __commonJS({
1914
1922
  }
1915
1923
  });
1916
1924
 
1917
- // ../../../ghosty-studio/node_modules/yaml/dist/nodes/Alias.js
1925
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Alias.js
1918
1926
  var require_Alias = __commonJS({
1919
- "../../../ghosty-studio/node_modules/yaml/dist/nodes/Alias.js"(exports) {
1927
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Alias.js"(exports) {
1920
1928
  "use strict";
1921
1929
  var anchors = require_anchors();
1922
1930
  var visit = require_visit();
@@ -2032,9 +2040,9 @@ var require_Alias = __commonJS({
2032
2040
  }
2033
2041
  });
2034
2042
 
2035
- // ../../../ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js
2043
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js
2036
2044
  var require_Scalar = __commonJS({
2037
- "../../../ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js"(exports) {
2045
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js"(exports) {
2038
2046
  "use strict";
2039
2047
  var identity = require_identity();
2040
2048
  var Node = require_Node();
@@ -2062,9 +2070,9 @@ var require_Scalar = __commonJS({
2062
2070
  }
2063
2071
  });
2064
2072
 
2065
- // ../../../ghosty-studio/node_modules/yaml/dist/doc/createNode.js
2073
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/createNode.js
2066
2074
  var require_createNode = __commonJS({
2067
- "../../../ghosty-studio/node_modules/yaml/dist/doc/createNode.js"(exports) {
2075
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/createNode.js"(exports) {
2068
2076
  "use strict";
2069
2077
  var Alias = require_Alias();
2070
2078
  var identity = require_identity();
@@ -2137,9 +2145,9 @@ var require_createNode = __commonJS({
2137
2145
  }
2138
2146
  });
2139
2147
 
2140
- // ../../../ghosty-studio/node_modules/yaml/dist/nodes/Collection.js
2148
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Collection.js
2141
2149
  var require_Collection = __commonJS({
2142
- "../../../ghosty-studio/node_modules/yaml/dist/nodes/Collection.js"(exports) {
2150
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Collection.js"(exports) {
2143
2151
  "use strict";
2144
2152
  var createNode = require_createNode();
2145
2153
  var identity = require_identity();
@@ -2280,9 +2288,9 @@ var require_Collection = __commonJS({
2280
2288
  }
2281
2289
  });
2282
2290
 
2283
- // ../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js
2291
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js
2284
2292
  var require_stringifyComment = __commonJS({
2285
- "../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js"(exports) {
2293
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js"(exports) {
2286
2294
  "use strict";
2287
2295
  var stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, "#");
2288
2296
  function indentComment(comment, indent) {
@@ -2297,9 +2305,9 @@ var require_stringifyComment = __commonJS({
2297
2305
  }
2298
2306
  });
2299
2307
 
2300
- // ../../../ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js
2308
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js
2301
2309
  var require_foldFlowLines = __commonJS({
2302
- "../../../ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js"(exports) {
2310
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js"(exports) {
2303
2311
  "use strict";
2304
2312
  var FOLD_FLOW = "flow";
2305
2313
  var FOLD_BLOCK = "block";
@@ -2433,9 +2441,9 @@ ${indent}${text.slice(fold + 1, end2)}`;
2433
2441
  }
2434
2442
  });
2435
2443
 
2436
- // ../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js
2444
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js
2437
2445
  var require_stringifyString = __commonJS({
2438
- "../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js"(exports) {
2446
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js"(exports) {
2439
2447
  "use strict";
2440
2448
  var Scalar = require_Scalar();
2441
2449
  var foldFlowLines = require_foldFlowLines();
@@ -2716,9 +2724,9 @@ ${indent}`);
2716
2724
  }
2717
2725
  });
2718
2726
 
2719
- // ../../../ghosty-studio/node_modules/yaml/dist/stringify/stringify.js
2727
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringify.js
2720
2728
  var require_stringify = __commonJS({
2721
- "../../../ghosty-studio/node_modules/yaml/dist/stringify/stringify.js"(exports) {
2729
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringify.js"(exports) {
2722
2730
  "use strict";
2723
2731
  var anchors = require_anchors();
2724
2732
  var identity = require_identity();
@@ -2840,9 +2848,9 @@ ${ctx.indent}${str}`;
2840
2848
  }
2841
2849
  });
2842
2850
 
2843
- // ../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js
2851
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js
2844
2852
  var require_stringifyPair = __commonJS({
2845
- "../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js"(exports) {
2853
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js"(exports) {
2846
2854
  "use strict";
2847
2855
  var identity = require_identity();
2848
2856
  var Scalar = require_Scalar();
@@ -2973,9 +2981,9 @@ ${ctx.indent}`;
2973
2981
  }
2974
2982
  });
2975
2983
 
2976
- // ../../../ghosty-studio/node_modules/yaml/dist/log.js
2984
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/log.js
2977
2985
  var require_log = __commonJS({
2978
- "../../../ghosty-studio/node_modules/yaml/dist/log.js"(exports) {
2986
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/log.js"(exports) {
2979
2987
  "use strict";
2980
2988
  var node_process = __require("process");
2981
2989
  function debug(logLevel, ...messages) {
@@ -2995,9 +3003,9 @@ var require_log = __commonJS({
2995
3003
  }
2996
3004
  });
2997
3005
 
2998
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js
3006
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js
2999
3007
  var require_merge = __commonJS({
3000
- "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js"(exports) {
3008
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js"(exports) {
3001
3009
  "use strict";
3002
3010
  var identity = require_identity();
3003
3011
  var Scalar = require_Scalar();
@@ -3055,9 +3063,9 @@ var require_merge = __commonJS({
3055
3063
  }
3056
3064
  });
3057
3065
 
3058
- // ../../../ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js
3066
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js
3059
3067
  var require_addPairToJSMap = __commonJS({
3060
- "../../../ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports) {
3068
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports) {
3061
3069
  "use strict";
3062
3070
  var log = require_log();
3063
3071
  var merge = require_merge();
@@ -3119,9 +3127,9 @@ var require_addPairToJSMap = __commonJS({
3119
3127
  }
3120
3128
  });
3121
3129
 
3122
- // ../../../ghosty-studio/node_modules/yaml/dist/nodes/Pair.js
3130
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Pair.js
3123
3131
  var require_Pair = __commonJS({
3124
- "../../../ghosty-studio/node_modules/yaml/dist/nodes/Pair.js"(exports) {
3132
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Pair.js"(exports) {
3125
3133
  "use strict";
3126
3134
  var createNode = require_createNode();
3127
3135
  var stringifyPair = require_stringifyPair();
@@ -3159,9 +3167,9 @@ var require_Pair = __commonJS({
3159
3167
  }
3160
3168
  });
3161
3169
 
3162
- // ../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js
3170
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js
3163
3171
  var require_stringifyCollection = __commonJS({
3164
- "../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js"(exports) {
3172
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js"(exports) {
3165
3173
  "use strict";
3166
3174
  var identity = require_identity();
3167
3175
  var stringify = require_stringify();
@@ -3310,9 +3318,9 @@ ${indent}${end}`;
3310
3318
  }
3311
3319
  });
3312
3320
 
3313
- // ../../../ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js
3321
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js
3314
3322
  var require_YAMLMap = __commonJS({
3315
- "../../../ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js"(exports) {
3323
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js"(exports) {
3316
3324
  "use strict";
3317
3325
  var stringifyCollection = require_stringifyCollection();
3318
3326
  var addPairToJSMap = require_addPairToJSMap();
@@ -3454,9 +3462,9 @@ var require_YAMLMap = __commonJS({
3454
3462
  }
3455
3463
  });
3456
3464
 
3457
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/common/map.js
3465
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/map.js
3458
3466
  var require_map = __commonJS({
3459
- "../../../ghosty-studio/node_modules/yaml/dist/schema/common/map.js"(exports) {
3467
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/map.js"(exports) {
3460
3468
  "use strict";
3461
3469
  var identity = require_identity();
3462
3470
  var YAMLMap = require_YAMLMap();
@@ -3476,9 +3484,9 @@ var require_map = __commonJS({
3476
3484
  }
3477
3485
  });
3478
3486
 
3479
- // ../../../ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js
3487
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js
3480
3488
  var require_YAMLSeq = __commonJS({
3481
- "../../../ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js"(exports) {
3489
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js"(exports) {
3482
3490
  "use strict";
3483
3491
  var createNode = require_createNode();
3484
3492
  var stringifyCollection = require_stringifyCollection();
@@ -3592,9 +3600,9 @@ var require_YAMLSeq = __commonJS({
3592
3600
  }
3593
3601
  });
3594
3602
 
3595
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/common/seq.js
3603
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/seq.js
3596
3604
  var require_seq = __commonJS({
3597
- "../../../ghosty-studio/node_modules/yaml/dist/schema/common/seq.js"(exports) {
3605
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/seq.js"(exports) {
3598
3606
  "use strict";
3599
3607
  var identity = require_identity();
3600
3608
  var YAMLSeq = require_YAMLSeq();
@@ -3614,9 +3622,9 @@ var require_seq = __commonJS({
3614
3622
  }
3615
3623
  });
3616
3624
 
3617
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/common/string.js
3625
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/string.js
3618
3626
  var require_string = __commonJS({
3619
- "../../../ghosty-studio/node_modules/yaml/dist/schema/common/string.js"(exports) {
3627
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/string.js"(exports) {
3620
3628
  "use strict";
3621
3629
  var stringifyString = require_stringifyString();
3622
3630
  var string = {
@@ -3633,9 +3641,9 @@ var require_string = __commonJS({
3633
3641
  }
3634
3642
  });
3635
3643
 
3636
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/common/null.js
3644
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/null.js
3637
3645
  var require_null = __commonJS({
3638
- "../../../ghosty-studio/node_modules/yaml/dist/schema/common/null.js"(exports) {
3646
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/null.js"(exports) {
3639
3647
  "use strict";
3640
3648
  var Scalar = require_Scalar();
3641
3649
  var nullTag = {
@@ -3651,9 +3659,9 @@ var require_null = __commonJS({
3651
3659
  }
3652
3660
  });
3653
3661
 
3654
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/core/bool.js
3662
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/bool.js
3655
3663
  var require_bool = __commonJS({
3656
- "../../../ghosty-studio/node_modules/yaml/dist/schema/core/bool.js"(exports) {
3664
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/bool.js"(exports) {
3657
3665
  "use strict";
3658
3666
  var Scalar = require_Scalar();
3659
3667
  var boolTag = {
@@ -3675,9 +3683,9 @@ var require_bool = __commonJS({
3675
3683
  }
3676
3684
  });
3677
3685
 
3678
- // ../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js
3686
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js
3679
3687
  var require_stringifyNumber = __commonJS({
3680
- "../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js"(exports) {
3688
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js"(exports) {
3681
3689
  "use strict";
3682
3690
  function stringifyNumber({ format, minFractionDigits, tag, value }) {
3683
3691
  if (typeof value === "bigint")
@@ -3702,9 +3710,9 @@ var require_stringifyNumber = __commonJS({
3702
3710
  }
3703
3711
  });
3704
3712
 
3705
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/core/float.js
3713
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/float.js
3706
3714
  var require_float = __commonJS({
3707
- "../../../ghosty-studio/node_modules/yaml/dist/schema/core/float.js"(exports) {
3715
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/float.js"(exports) {
3708
3716
  "use strict";
3709
3717
  var Scalar = require_Scalar();
3710
3718
  var stringifyNumber = require_stringifyNumber();
@@ -3748,9 +3756,9 @@ var require_float = __commonJS({
3748
3756
  }
3749
3757
  });
3750
3758
 
3751
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/core/int.js
3759
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/int.js
3752
3760
  var require_int = __commonJS({
3753
- "../../../ghosty-studio/node_modules/yaml/dist/schema/core/int.js"(exports) {
3761
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/int.js"(exports) {
3754
3762
  "use strict";
3755
3763
  var stringifyNumber = require_stringifyNumber();
3756
3764
  var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -3793,9 +3801,9 @@ var require_int = __commonJS({
3793
3801
  }
3794
3802
  });
3795
3803
 
3796
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/core/schema.js
3804
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/schema.js
3797
3805
  var require_schema = __commonJS({
3798
- "../../../ghosty-studio/node_modules/yaml/dist/schema/core/schema.js"(exports) {
3806
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/schema.js"(exports) {
3799
3807
  "use strict";
3800
3808
  var map = require_map();
3801
3809
  var _null = require_null();
@@ -3821,9 +3829,9 @@ var require_schema = __commonJS({
3821
3829
  }
3822
3830
  });
3823
3831
 
3824
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/json/schema.js
3832
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/json/schema.js
3825
3833
  var require_schema2 = __commonJS({
3826
- "../../../ghosty-studio/node_modules/yaml/dist/schema/json/schema.js"(exports) {
3834
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/json/schema.js"(exports) {
3827
3835
  "use strict";
3828
3836
  var Scalar = require_Scalar();
3829
3837
  var map = require_map();
@@ -3888,9 +3896,9 @@ var require_schema2 = __commonJS({
3888
3896
  }
3889
3897
  });
3890
3898
 
3891
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js
3899
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js
3892
3900
  var require_binary = __commonJS({
3893
- "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js"(exports) {
3901
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js"(exports) {
3894
3902
  "use strict";
3895
3903
  var node_buffer = __require("buffer");
3896
3904
  var Scalar = require_Scalar();
@@ -3954,9 +3962,9 @@ var require_binary = __commonJS({
3954
3962
  }
3955
3963
  });
3956
3964
 
3957
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
3965
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
3958
3966
  var require_pairs = __commonJS({
3959
- "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js"(exports) {
3967
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js"(exports) {
3960
3968
  "use strict";
3961
3969
  var identity = require_identity();
3962
3970
  var Pair = require_Pair();
@@ -4032,9 +4040,9 @@ ${cn.comment}` : item.comment;
4032
4040
  }
4033
4041
  });
4034
4042
 
4035
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js
4043
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js
4036
4044
  var require_omap = __commonJS({
4037
- "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js"(exports) {
4045
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js"(exports) {
4038
4046
  "use strict";
4039
4047
  var identity = require_identity();
4040
4048
  var toJS = require_toJS();
@@ -4110,9 +4118,9 @@ var require_omap = __commonJS({
4110
4118
  }
4111
4119
  });
4112
4120
 
4113
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js
4121
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js
4114
4122
  var require_bool2 = __commonJS({
4115
- "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js"(exports) {
4123
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js"(exports) {
4116
4124
  "use strict";
4117
4125
  var Scalar = require_Scalar();
4118
4126
  function boolStringify({ value, source }, ctx) {
@@ -4142,9 +4150,9 @@ var require_bool2 = __commonJS({
4142
4150
  }
4143
4151
  });
4144
4152
 
4145
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js
4153
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js
4146
4154
  var require_float2 = __commonJS({
4147
- "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js"(exports) {
4155
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js"(exports) {
4148
4156
  "use strict";
4149
4157
  var Scalar = require_Scalar();
4150
4158
  var stringifyNumber = require_stringifyNumber();
@@ -4191,9 +4199,9 @@ var require_float2 = __commonJS({
4191
4199
  }
4192
4200
  });
4193
4201
 
4194
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js
4202
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js
4195
4203
  var require_int2 = __commonJS({
4196
- "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js"(exports) {
4204
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js"(exports) {
4197
4205
  "use strict";
4198
4206
  var stringifyNumber = require_stringifyNumber();
4199
4207
  var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -4270,9 +4278,9 @@ var require_int2 = __commonJS({
4270
4278
  }
4271
4279
  });
4272
4280
 
4273
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js
4281
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js
4274
4282
  var require_set = __commonJS({
4275
- "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js"(exports) {
4283
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js"(exports) {
4276
4284
  "use strict";
4277
4285
  var identity = require_identity();
4278
4286
  var Pair = require_Pair();
@@ -4359,9 +4367,9 @@ var require_set = __commonJS({
4359
4367
  }
4360
4368
  });
4361
4369
 
4362
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
4370
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
4363
4371
  var require_timestamp = __commonJS({
4364
- "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js"(exports) {
4372
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js"(exports) {
4365
4373
  "use strict";
4366
4374
  var stringifyNumber = require_stringifyNumber();
4367
4375
  function parseSexagesimal(str, asBigInt) {
@@ -4447,9 +4455,9 @@ var require_timestamp = __commonJS({
4447
4455
  }
4448
4456
  });
4449
4457
 
4450
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js
4458
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js
4451
4459
  var require_schema3 = __commonJS({
4452
- "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js"(exports) {
4460
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js"(exports) {
4453
4461
  "use strict";
4454
4462
  var map = require_map();
4455
4463
  var _null = require_null();
@@ -4491,9 +4499,9 @@ var require_schema3 = __commonJS({
4491
4499
  }
4492
4500
  });
4493
4501
 
4494
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/tags.js
4502
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/tags.js
4495
4503
  var require_tags = __commonJS({
4496
- "../../../ghosty-studio/node_modules/yaml/dist/schema/tags.js"(exports) {
4504
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/tags.js"(exports) {
4497
4505
  "use strict";
4498
4506
  var map = require_map();
4499
4507
  var _null = require_null();
@@ -4585,9 +4593,9 @@ var require_tags = __commonJS({
4585
4593
  }
4586
4594
  });
4587
4595
 
4588
- // ../../../ghosty-studio/node_modules/yaml/dist/schema/Schema.js
4596
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/Schema.js
4589
4597
  var require_Schema = __commonJS({
4590
- "../../../ghosty-studio/node_modules/yaml/dist/schema/Schema.js"(exports) {
4598
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/Schema.js"(exports) {
4591
4599
  "use strict";
4592
4600
  var identity = require_identity();
4593
4601
  var map = require_map();
@@ -4617,9 +4625,9 @@ var require_Schema = __commonJS({
4617
4625
  }
4618
4626
  });
4619
4627
 
4620
- // ../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js
4628
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js
4621
4629
  var require_stringifyDocument = __commonJS({
4622
- "../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js"(exports) {
4630
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js"(exports) {
4623
4631
  "use strict";
4624
4632
  var identity = require_identity();
4625
4633
  var stringify = require_stringify();
@@ -4697,9 +4705,9 @@ var require_stringifyDocument = __commonJS({
4697
4705
  }
4698
4706
  });
4699
4707
 
4700
- // ../../../ghosty-studio/node_modules/yaml/dist/doc/Document.js
4708
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/Document.js
4701
4709
  var require_Document = __commonJS({
4702
- "../../../ghosty-studio/node_modules/yaml/dist/doc/Document.js"(exports) {
4710
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/Document.js"(exports) {
4703
4711
  "use strict";
4704
4712
  var Alias = require_Alias();
4705
4713
  var Collection = require_Collection();
@@ -5006,9 +5014,9 @@ var require_Document = __commonJS({
5006
5014
  }
5007
5015
  });
5008
5016
 
5009
- // ../../../ghosty-studio/node_modules/yaml/dist/errors.js
5017
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/errors.js
5010
5018
  var require_errors = __commonJS({
5011
- "../../../ghosty-studio/node_modules/yaml/dist/errors.js"(exports) {
5019
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/errors.js"(exports) {
5012
5020
  "use strict";
5013
5021
  var YAMLError = class extends Error {
5014
5022
  constructor(name, pos, code, message) {
@@ -5071,9 +5079,9 @@ ${pointer}
5071
5079
  }
5072
5080
  });
5073
5081
 
5074
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js
5082
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js
5075
5083
  var require_resolve_props = __commonJS({
5076
- "../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js"(exports) {
5084
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js"(exports) {
5077
5085
  "use strict";
5078
5086
  function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
5079
5087
  let spaceBefore = false;
@@ -5205,9 +5213,9 @@ var require_resolve_props = __commonJS({
5205
5213
  }
5206
5214
  });
5207
5215
 
5208
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js
5216
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js
5209
5217
  var require_util_contains_newline = __commonJS({
5210
- "../../../ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js"(exports) {
5218
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js"(exports) {
5211
5219
  "use strict";
5212
5220
  function containsNewline(key) {
5213
5221
  if (!key)
@@ -5247,9 +5255,9 @@ var require_util_contains_newline = __commonJS({
5247
5255
  }
5248
5256
  });
5249
5257
 
5250
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js
5258
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js
5251
5259
  var require_util_flow_indent_check = __commonJS({
5252
- "../../../ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js"(exports) {
5260
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js"(exports) {
5253
5261
  "use strict";
5254
5262
  var utilContainsNewline = require_util_contains_newline();
5255
5263
  function flowIndentCheck(indent, fc, onError) {
@@ -5265,9 +5273,9 @@ var require_util_flow_indent_check = __commonJS({
5265
5273
  }
5266
5274
  });
5267
5275
 
5268
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js
5276
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js
5269
5277
  var require_util_map_includes = __commonJS({
5270
- "../../../ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js"(exports) {
5278
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js"(exports) {
5271
5279
  "use strict";
5272
5280
  var identity = require_identity();
5273
5281
  function mapIncludes(ctx, items, search) {
@@ -5281,9 +5289,9 @@ var require_util_map_includes = __commonJS({
5281
5289
  }
5282
5290
  });
5283
5291
 
5284
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js
5292
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js
5285
5293
  var require_resolve_block_map = __commonJS({
5286
- "../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js"(exports) {
5294
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js"(exports) {
5287
5295
  "use strict";
5288
5296
  var Pair = require_Pair();
5289
5297
  var YAMLMap = require_YAMLMap();
@@ -5389,9 +5397,9 @@ var require_resolve_block_map = __commonJS({
5389
5397
  }
5390
5398
  });
5391
5399
 
5392
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js
5400
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js
5393
5401
  var require_resolve_block_seq = __commonJS({
5394
- "../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js"(exports) {
5402
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js"(exports) {
5395
5403
  "use strict";
5396
5404
  var YAMLSeq = require_YAMLSeq();
5397
5405
  var resolveProps = require_resolve_props();
@@ -5440,9 +5448,9 @@ var require_resolve_block_seq = __commonJS({
5440
5448
  }
5441
5449
  });
5442
5450
 
5443
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js
5451
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js
5444
5452
  var require_resolve_end = __commonJS({
5445
- "../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js"(exports) {
5453
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js"(exports) {
5446
5454
  "use strict";
5447
5455
  function resolveEnd(end, offset, reqSpace, onError) {
5448
5456
  let comment = "";
@@ -5483,9 +5491,9 @@ var require_resolve_end = __commonJS({
5483
5491
  }
5484
5492
  });
5485
5493
 
5486
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js
5494
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js
5487
5495
  var require_resolve_flow_collection = __commonJS({
5488
- "../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js"(exports) {
5496
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js"(exports) {
5489
5497
  "use strict";
5490
5498
  var identity = require_identity();
5491
5499
  var Pair = require_Pair();
@@ -5677,9 +5685,9 @@ var require_resolve_flow_collection = __commonJS({
5677
5685
  }
5678
5686
  });
5679
5687
 
5680
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js
5688
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js
5681
5689
  var require_compose_collection = __commonJS({
5682
- "../../../ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js"(exports) {
5690
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js"(exports) {
5683
5691
  "use strict";
5684
5692
  var identity = require_identity();
5685
5693
  var Scalar = require_Scalar();
@@ -5742,9 +5750,9 @@ var require_compose_collection = __commonJS({
5742
5750
  }
5743
5751
  });
5744
5752
 
5745
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js
5753
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js
5746
5754
  var require_resolve_block_scalar = __commonJS({
5747
- "../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js"(exports) {
5755
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js"(exports) {
5748
5756
  "use strict";
5749
5757
  var Scalar = require_Scalar();
5750
5758
  function resolveBlockScalar(ctx, scalar, onError) {
@@ -5925,9 +5933,9 @@ var require_resolve_block_scalar = __commonJS({
5925
5933
  }
5926
5934
  });
5927
5935
 
5928
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js
5936
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js
5929
5937
  var require_resolve_flow_scalar = __commonJS({
5930
- "../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js"(exports) {
5938
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js"(exports) {
5931
5939
  "use strict";
5932
5940
  var Scalar = require_Scalar();
5933
5941
  var resolveEnd = require_resolve_end();
@@ -6146,9 +6154,9 @@ var require_resolve_flow_scalar = __commonJS({
6146
6154
  }
6147
6155
  });
6148
6156
 
6149
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js
6157
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js
6150
6158
  var require_compose_scalar = __commonJS({
6151
- "../../../ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js"(exports) {
6159
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js"(exports) {
6152
6160
  "use strict";
6153
6161
  var identity = require_identity();
6154
6162
  var Scalar = require_Scalar();
@@ -6227,9 +6235,9 @@ var require_compose_scalar = __commonJS({
6227
6235
  }
6228
6236
  });
6229
6237
 
6230
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js
6238
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js
6231
6239
  var require_util_empty_scalar_position = __commonJS({
6232
- "../../../ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js"(exports) {
6240
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js"(exports) {
6233
6241
  "use strict";
6234
6242
  function emptyScalarPosition(offset, before, pos) {
6235
6243
  if (before) {
@@ -6257,9 +6265,9 @@ var require_util_empty_scalar_position = __commonJS({
6257
6265
  }
6258
6266
  });
6259
6267
 
6260
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/compose-node.js
6268
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-node.js
6261
6269
  var require_compose_node = __commonJS({
6262
- "../../../ghosty-studio/node_modules/yaml/dist/compose/compose-node.js"(exports) {
6270
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-node.js"(exports) {
6263
6271
  "use strict";
6264
6272
  var Alias = require_Alias();
6265
6273
  var identity = require_identity();
@@ -6363,9 +6371,9 @@ var require_compose_node = __commonJS({
6363
6371
  }
6364
6372
  });
6365
6373
 
6366
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js
6374
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js
6367
6375
  var require_compose_doc = __commonJS({
6368
- "../../../ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js"(exports) {
6376
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js"(exports) {
6369
6377
  "use strict";
6370
6378
  var Document = require_Document();
6371
6379
  var composeNode = require_compose_node();
@@ -6406,9 +6414,9 @@ var require_compose_doc = __commonJS({
6406
6414
  }
6407
6415
  });
6408
6416
 
6409
- // ../../../ghosty-studio/node_modules/yaml/dist/compose/composer.js
6417
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/composer.js
6410
6418
  var require_composer = __commonJS({
6411
- "../../../ghosty-studio/node_modules/yaml/dist/compose/composer.js"(exports) {
6419
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/composer.js"(exports) {
6412
6420
  "use strict";
6413
6421
  var node_process = __require("process");
6414
6422
  var directives = require_directives();
@@ -6614,9 +6622,9 @@ ${end.comment}` : end.comment;
6614
6622
  }
6615
6623
  });
6616
6624
 
6617
- // ../../../ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js
6625
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js
6618
6626
  var require_cst_scalar = __commonJS({
6619
- "../../../ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js"(exports) {
6627
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js"(exports) {
6620
6628
  "use strict";
6621
6629
  var resolveBlockScalar = require_resolve_block_scalar();
6622
6630
  var resolveFlowScalar = require_resolve_flow_scalar();
@@ -6799,9 +6807,9 @@ var require_cst_scalar = __commonJS({
6799
6807
  }
6800
6808
  });
6801
6809
 
6802
- // ../../../ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js
6810
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js
6803
6811
  var require_cst_stringify = __commonJS({
6804
- "../../../ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js"(exports) {
6812
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js"(exports) {
6805
6813
  "use strict";
6806
6814
  var stringify = (cst) => "type" in cst ? stringifyToken(cst) : stringifyItem(cst);
6807
6815
  function stringifyToken(token) {
@@ -6860,9 +6868,9 @@ var require_cst_stringify = __commonJS({
6860
6868
  }
6861
6869
  });
6862
6870
 
6863
- // ../../../ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js
6871
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js
6864
6872
  var require_cst_visit = __commonJS({
6865
- "../../../ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js"(exports) {
6873
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js"(exports) {
6866
6874
  "use strict";
6867
6875
  var BREAK = /* @__PURE__ */ Symbol("break visit");
6868
6876
  var SKIP2 = /* @__PURE__ */ Symbol("skip children");
@@ -6922,9 +6930,9 @@ var require_cst_visit = __commonJS({
6922
6930
  }
6923
6931
  });
6924
6932
 
6925
- // ../../../ghosty-studio/node_modules/yaml/dist/parse/cst.js
6933
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst.js
6926
6934
  var require_cst = __commonJS({
6927
- "../../../ghosty-studio/node_modules/yaml/dist/parse/cst.js"(exports) {
6935
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst.js"(exports) {
6928
6936
  "use strict";
6929
6937
  var cstScalar = require_cst_scalar();
6930
6938
  var cstStringify = require_cst_stringify();
@@ -7024,9 +7032,9 @@ var require_cst = __commonJS({
7024
7032
  }
7025
7033
  });
7026
7034
 
7027
- // ../../../ghosty-studio/node_modules/yaml/dist/parse/lexer.js
7035
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/lexer.js
7028
7036
  var require_lexer = __commonJS({
7029
- "../../../ghosty-studio/node_modules/yaml/dist/parse/lexer.js"(exports) {
7037
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/lexer.js"(exports) {
7030
7038
  "use strict";
7031
7039
  var cst = require_cst();
7032
7040
  function isEmpty(ch) {
@@ -7613,9 +7621,9 @@ var require_lexer = __commonJS({
7613
7621
  }
7614
7622
  });
7615
7623
 
7616
- // ../../../ghosty-studio/node_modules/yaml/dist/parse/line-counter.js
7624
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/line-counter.js
7617
7625
  var require_line_counter = __commonJS({
7618
- "../../../ghosty-studio/node_modules/yaml/dist/parse/line-counter.js"(exports) {
7626
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/line-counter.js"(exports) {
7619
7627
  "use strict";
7620
7628
  var LineCounter = class {
7621
7629
  constructor() {
@@ -7644,9 +7652,9 @@ var require_line_counter = __commonJS({
7644
7652
  }
7645
7653
  });
7646
7654
 
7647
- // ../../../ghosty-studio/node_modules/yaml/dist/parse/parser.js
7655
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/parser.js
7648
7656
  var require_parser = __commonJS({
7649
- "../../../ghosty-studio/node_modules/yaml/dist/parse/parser.js"(exports) {
7657
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/parser.js"(exports) {
7650
7658
  "use strict";
7651
7659
  var node_process = __require("process");
7652
7660
  var cst = require_cst();
@@ -8518,9 +8526,9 @@ var require_parser = __commonJS({
8518
8526
  }
8519
8527
  });
8520
8528
 
8521
- // ../../../ghosty-studio/node_modules/yaml/dist/public-api.js
8529
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/public-api.js
8522
8530
  var require_public_api = __commonJS({
8523
- "../../../ghosty-studio/node_modules/yaml/dist/public-api.js"(exports) {
8531
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/public-api.js"(exports) {
8524
8532
  "use strict";
8525
8533
  var composer = require_composer();
8526
8534
  var Document = require_Document();
@@ -8615,9 +8623,9 @@ var require_public_api = __commonJS({
8615
8623
  }
8616
8624
  });
8617
8625
 
8618
- // ../../../ghosty-studio/node_modules/yaml/dist/index.js
8626
+ // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/index.js
8619
8627
  var require_dist = __commonJS({
8620
- "../../../ghosty-studio/node_modules/yaml/dist/index.js"(exports) {
8628
+ "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/index.js"(exports) {
8621
8629
  "use strict";
8622
8630
  var composer = require_composer();
8623
8631
  var Document = require_Document();
@@ -11278,7 +11286,7 @@ async function call(path2, v, init = {}) {
11278
11286
  "x-ghosty-ts": ts,
11279
11287
  "x-ghosty-sig": sig,
11280
11288
  "content-type": "application/json",
11281
- "user-agent": `ghosty-cli/${"0.95.0"}`
11289
+ "user-agent": `ghosty-cli/${"0.96.0"}`
11282
11290
  },
11283
11291
  body: method === "GET" ? void 0 : raw
11284
11292
  });
@@ -14010,6 +14018,7 @@ var HELPS_ES = {
14010
14018
  ["--add-pack", "pin: ya usas tus lugares \u2014 suma 3 m\xE1s (mismo periodo y moneda de tu suscripci\xF3n) y fija \xE9ste"],
14011
14019
  ["--cancel / --resume", "pins: cancela al final del periodo (los sitios vuelven a Gratis con aviso), o lo deshace"],
14012
14020
  ["--days N", "search: la ventana de Search Console en d\xEDas (default 28; Google reporta con 2\u20133 d\xEDas de retraso)"],
14021
+ ["--since S / --kind K / --req-id ID", "errors: ventana (30m, 6h, 7d; default 24h), un tipo de evento, o todo lo de una petici\xF3n (su x-request-id)"],
14013
14022
  ["--title T", "publish: el nombre del sitio (default: el <title> del HTML o el nombre de la carpeta)"],
14014
14023
  ["--slug S", "publish: el slug de un sitio NUEVO (a-z, 0-9 y guiones, 3\u201360, no reservado)"],
14015
14024
  ["--site X", "publish: actualiza ese sitio de la casa (slug, id o URL) en vez de crear uno"]
@@ -14018,7 +14027,10 @@ var HELPS_ES = {
14018
14027
  "pin: con lugar libre lo fija al momento; sin suscripci\xF3n imprime una liga de pago con tarjeta (queda fijo al pagar); con todos los lugares ocupados contesta needs_pack (repite con --add-pack).",
14019
14028
  "unpin, cancelar o un pago fallido nunca pausan de golpe: el sitio vuelve a la regla Gratis (30 d\xEDas desde su \xFAltimo cambio, m\xEDnimo 8 desde hoy, aviso 7 d\xEDas antes).",
14020
14029
  "Una carpeta necesita index.html en la ra\xEDz; se saltan ocultos y node_modules. Topes: 1 MB por archivo, 8 MB y 40 archivos por sitio.",
14021
- "Errores de slug: slug_invalid, slug_taken, slug_unsupported (exit 1, no cambia nada)."
14030
+ "Errores de slug: slug_invalid, slug_taken, slug_unsupported (exit 1, no cambia nada).",
14031
+ "show: lo mismo que la p\xE1gina del sitio (/c/sitios/<slug>): un solo estado de la app (Lista / Arrancando\u2026 / Dormida / Fall\xF3), dominios, NOMBRES de las variables (los valores nunca regresan), base, archivos, tareas, y correo/IA s\xF3lo si la app los us\xF3. Nunca despierta la app.",
14032
+ "errors: los errores del servidor y del navegador de una app, agrupados por mensaje con su conteo y las migas del m\xE1s reciente (lo mismo que la tool app_errors). La app los manda con /apps/sdk/errors.mjs.",
14033
+ "env/cron/files: s\xF3lo apps con backend. env set reinicia la app sin rebuild si su caja existe. Las tareas nuevas las crea el agente (app_cron); aqu\xED se pausan, reanudan o borran."
14022
14034
  ]
14023
14035
  },
14024
14036
  access: {
@@ -15023,6 +15035,11 @@ HELPS.sites = {
15023
15035
  summary: "Sites your agents publish at <slug>.ghosty.page. On the Free plan a site PAUSES after 30 days without changes (nothing is deleted; it comes back as-is when pinned). \xABPinned sites\xBB ($49 USD/yr or $5 USD/mo \u2014 $990 / $99 MXN \u2014 includes up to 3 sites; add 3 more for the same price) never pause and carry no \xABMade with Ghosty\xBB banner. Staff also publish Ghosty's own house sites and change any site's slug.",
15024
15036
  usage: [
15025
15037
  "ghosty sites ls [--house]",
15038
+ "ghosty sites show <slug|id>",
15039
+ "ghosty sites env [ls] <slug> \xB7 env set <slug> NAME=value [NAME=value\u2026] \xB7 env rm <slug> NAME",
15040
+ "ghosty sites cron [ls] <slug> \xB7 cron pause|resume|rm <slug> <id>",
15041
+ "ghosty sites files [ls] <slug> \xB7 files rm <slug> <id>",
15042
+ "ghosty sites errors <slug> [--since 24h] [--kind server_error|client_error|request|build] [--req-id ID]",
15026
15043
  "ghosty sites pin <slug|id> [--interval year|month] [--currency usd|mxn] [--add-pack]",
15027
15044
  "ghosty sites unpin <slug|id>",
15028
15045
  "ghosty sites pins [--cancel | --resume]",
@@ -15037,16 +15054,19 @@ HELPS.sites = {
15037
15054
  ["--add-pack", "pin: you already use your slots \u2014 add 3 more (same period and currency as your subscription) and pin this one"],
15038
15055
  ["--cancel / --resume", "pins: cancel at period end (sites go back to Free with notice), or undo it"],
15039
15056
  ["--days N", "search: Search Console window in days (default 28; Google reports 2\u20133 days late)"],
15057
+ ["--since S / --kind K / --req-id ID", "errors: window (30m, 6h, 7d; default 24h), one event kind, or everything from one request (its x-request-id)"],
15040
15058
  ["--title T", "publish: the site's name (default: the HTML <title> or the folder name)"],
15041
15059
  ["--slug S", "publish: the slug for a NEW site (a-z, 0-9 and hyphens, 3\u201360, not reserved)"],
15042
15060
  ["--site X", "publish: update that house site (slug, id or URL) instead of creating one"]
15043
15061
  ],
15044
- examples: ["ghosty sites pin tacos-don-pepe", "ghosty sites pin tacos-don-pepe --interval month --currency mxn", "ghosty sites unpin landing-vieja", "ghosty sites pins --cancel", "ghosty sites publish ./landing/ --site gelatina-de-sandia"],
15062
+ examples: ["ghosty sites show agenda-perdix", "ghosty sites env set agenda-perdix STRIPE_SECRET_KEY=sk_live_\u2026", "ghosty sites cron pause agenda-perdix cm123", "ghosty sites pin tacos-don-pepe", "ghosty sites pin tacos-don-pepe --interval month --currency mxn", "ghosty sites unpin landing-vieja", "ghosty sites pins --cancel", "ghosty sites publish ./landing/ --site gelatina-de-sandia"],
15045
15063
  notes: [
15046
15064
  "pin: with a free slot it pins right away; without a subscription it prints a card-payment link (the site is pinned when you pay); with every slot used it answers needs_pack (repeat with --add-pack).",
15047
15065
  "unpin, cancelling, or a failed payment never pause a site at once: it goes back to the Free rule (30 days since its last change, at least 8 from today, notice 7 days before).",
15048
15066
  "A folder needs index.html at its root; hidden files and node_modules are skipped. Limits: 1 MB per file, 8 MB and 40 files per site.",
15049
- "Slug errors: slug_invalid, slug_taken, slug_unsupported (exit 1, nothing changes)."
15067
+ "Slug errors: slug_invalid, slug_taken, slug_unsupported (exit 1, nothing changes).",
15068
+ "show: the same as the site's page (/c/sitios/<slug>): one app status (Ready / Starting\u2026 / Asleep / Failed), domains, variable NAMES (values never come back), database, files, tasks, and email/AI only if the app used them. It never wakes the app.",
15069
+ "env/cron/files: apps with a backend only. env set restarts the app without a rebuild when its box exists. New tasks are created by the agent (app_cron); here you pause, resume or delete them."
15050
15070
  ],
15051
15071
  learn: `${REF}#sitios`
15052
15072
  };
@@ -15733,8 +15753,8 @@ var PACK = { year: { usd: 49, mxn: 990 }, month: { usd: 5, mxn: 99 } };
15733
15753
  var packPrice = (c, i, lang2) => `$${(PACK[i]?.[c] ?? 0).toLocaleString("en-US")} ${c.toUpperCase()}${lang2 === "es" ? i === "year" ? " al a\xF1o" : " al mes" : i === "year" ? "/yr" : "/mo"}`;
15734
15754
  var kb = (n) => n ? `${Math.max(1, Math.round(n / 1024))} KB` : "";
15735
15755
  var day = (iso) => iso ? iso.slice(0, 10) : "";
15736
- async function sitesCmd(sub, a1, a2, v, a3) {
15737
- const ex = "ghosty sites ls [--house] \xB7 pin|unpin <slug|id> \xB7 pins [--cancel|--resume] \xB7 search <slug|id> [--days 28] \xB7 domain [ls|add|verify|rm] <slug> [domain] \xB7 publish <file.html|folder> [--title T] [--slug S] [--site <slug|id>] \xB7 slug <slug|id> <new-slug>";
15756
+ async function sitesCmd(sub, a1, a2, v, a3, rest = []) {
15757
+ const ex = "ghosty sites ls [--house] \xB7 show <slug|id> \xB7 env|cron|files \u2026 \xB7 errors <slug> [--since 24h] [--kind K] [--req-id ID] \xB7 pin|unpin <slug|id> \xB7 pins [--cancel|--resume] \xB7 search <slug|id> [--days 28] \xB7 domain [ls|add|verify|rm] <slug> [domain] \xB7 publish <file.html|folder> [--title T] [--slug S] [--site <slug|id>] \xB7 slug <slug|id> <new-slug>";
15738
15758
  switch (sub ?? "ls") {
15739
15759
  case "ls":
15740
15760
  case "list": {
@@ -15794,6 +15814,31 @@ ${table(r.pinned.map((p) => ({ slug: p.slug, title: (p.title ?? "").slice(0, 40)
15794
15814
  case "domain":
15795
15815
  case "domains":
15796
15816
  return domainCmd(a1, a2, a3);
15817
+ case "show":
15818
+ case "get": {
15819
+ if (!a1) throw usage(t("Missing the site (slug, id or URL).", "Falta el sitio (slug, id o URL)."), "ghosty sites show <slug|id>");
15820
+ const r = await api(`/api/v2/sites/${encodeURIComponent(a1)}/detail`);
15821
+ return out(r, () => showLines(r, t("en", "es") === "es" ? "es" : "en"));
15822
+ }
15823
+ case "env":
15824
+ case "vars":
15825
+ return envCmd(a1, a2, a3 === void 0 ? [] : [a3, ...rest]);
15826
+ case "cron":
15827
+ case "crons":
15828
+ case "tasks":
15829
+ return cronCmd(a1, a2, a3);
15830
+ case "files":
15831
+ return filesCmd2(a1, a2, a3);
15832
+ case "errors":
15833
+ case "errores": {
15834
+ if (!a1) throw usage(t("Missing the app (slug, id or URL).", "Falta la app (slug, id o URL)."), "ghosty sites errors <slug> [--since 24h] [--kind server_error|client_error|request|build] [--req-id ID]");
15835
+ const q = new URLSearchParams();
15836
+ if (v.since) q.set("since", v.since);
15837
+ if (v.kind) q.set("kind", v.kind);
15838
+ if (v["req-id"]) q.set("req_id", v["req-id"]);
15839
+ const r = await api(`/api/v2/sites/${encodeURIComponent(a1)}/errors${q.size ? `?${q}` : ""}`);
15840
+ return out(r, () => errorsLines(r, t("en", "es") === "es" ? "es" : "en"));
15841
+ }
15797
15842
  case "publish":
15798
15843
  case "deploy": {
15799
15844
  if (!a1) throw usage(t("Missing the file or folder.", "Falta el archivo o la carpeta."), ex);
@@ -15855,6 +15900,120 @@ ${table(r2.domains.map((d) => ({ domain: d.host, state: d.verified ? t("verified
15855
15900
  return out(r, () => `${r.verified ? lavender("\u2713") : dim("\u2026")} ${bold(r.host)}
15856
15901
  ${domainLine(r, t("en", "es") === "es" ? "es" : "en").replace("<slug>", slug)}`);
15857
15902
  }
15903
+ function wakeLine(w, lang2 = "es", now = Date.now()) {
15904
+ const secs = w.startedAt ? Math.max(0, Math.round((now - Date.parse(w.startedAt)) / 1e3)) : null;
15905
+ if (w.phase === "ready") return lang2 === "es" ? "Lista" : "Ready";
15906
+ if (w.phase === "starting") return (lang2 === "es" ? "Arrancando\u2026" : "Starting\u2026") + (secs == null ? "" : ` ${secs} s`);
15907
+ if (w.phase === "failed") return (lang2 === "es" ? "Fall\xF3" : "Failed") + (w.error ? `: ${w.error}` : "");
15908
+ return lang2 === "es" ? "Dormida" : "Asleep";
15909
+ }
15910
+ function showLines(r, lang2 = "es") {
15911
+ const es = lang2 === "es";
15912
+ const s2 = r.site;
15913
+ const a = r.app;
15914
+ const kind = s2.isApp ? es ? "app con servidor" : "app with a server" : es ? "p\xE1gina est\xE1tica" : "static page";
15915
+ const lines = [`${s2.title} \xB7 ${s2.url}`, `${es ? "estado" : "status"}: ${s2.pinned ? es ? "fijado" : "pinned" : s2.status} \xB7 ${kind}`];
15916
+ if (s2.wake) lines.push(`${es ? "app" : "app"}: ${wakeLine(s2.wake, lang2)}`);
15917
+ if (s2.repo) lines.push(`repo: ${s2.repo}${s2.commit ? ` \xB7 ${s2.commit}` : ""}`);
15918
+ if (s2.deploying) lines.push(es ? "publicando una versi\xF3n nueva\u2026" : "publishing a new version\u2026");
15919
+ lines.push(`${es ? "dominios" : "domains"}: ${r.domains.list.length ? r.domains.list.map((d) => `${d.host}${d.verified ? "" : es ? " (falta DNS)" : " (DNS missing)"}`).join(", ") : "\u2014"}`);
15920
+ if (a) {
15921
+ lines.push(`${es ? "variables" : "variables"}: ${a.envNames.length ? a.envNames.join(", ") : "\u2014"}`);
15922
+ lines.push(`${es ? "base" : "database"}: ${a.database ? `${a.database.name} (${a.database.tables.join(", ") || "\u2014"})` : "\u2014"}`);
15923
+ lines.push(`${es ? "archivos" : "files"}: ${a.files.usage.files}/${a.files.usage.maxFiles}`);
15924
+ lines.push(`${es ? "tareas" : "tasks"}: ${a.crons.length ? a.crons.map((c) => `${c.path} (${c.when}${c.paused ? es ? ", en pausa" : ", paused" : ""})`).join(", ") : "\u2014"}`);
15925
+ if (r.tabs.includes("correo")) lines.push(`${es ? "correo" : "email"}: ${a.email.sentToday}/${a.email.cap} ${es ? "en 24 h" : "in 24 h"}`);
15926
+ if (r.tabs.includes("ia")) lines.push(`${es ? "IA" : "AI"}: ${a.ai.callsToday}/${a.ai.callsCap} ${es ? "hoy" : "today"}`);
15927
+ }
15928
+ return lines.join("\n");
15929
+ }
15930
+ function parseEnvPairs(pairs) {
15931
+ const set = {};
15932
+ for (const p of pairs) {
15933
+ const i = p.indexOf("=");
15934
+ if (i <= 0) throw usage(t(`Expected NAME=value, got \xAB${p}\xBB.`, `Se esperaba NOMBRE=valor y lleg\xF3 \xAB${p}\xBB.`), "ghosty sites env set <slug> NAME=value [NAME=value\u2026]");
15935
+ set[p.slice(0, i).trim()] = p.slice(i + 1);
15936
+ }
15937
+ return set;
15938
+ }
15939
+ var ACTS = /* @__PURE__ */ new Set(["ls", "list", "set", "add", "rm", "remove", "pause", "resume"]);
15940
+ var splitAct = (action, a2, a3) => action && !ACTS.has(action) ? ["ls", action, a2] : [action ?? "ls", a2, a3];
15941
+ async function envCmd(action, a2, rest) {
15942
+ const ex = "ghosty sites env [ls] <slug> \xB7 set <slug> NAME=value\u2026 \xB7 rm <slug> NAME";
15943
+ const isAct = !!action && ACTS.has(action);
15944
+ const act = isAct ? action : "ls";
15945
+ const slug = isAct ? a2 : action;
15946
+ const args = isAct ? rest : [];
15947
+ if (!slug) throw usage(t("Missing the app (slug, id or URL).", "Falta la app (slug, id o URL)."), ex);
15948
+ const path2 = `/api/v2/sites/${encodeURIComponent(slug)}/env`;
15949
+ const names2 = (r) => r.names.length ? r.names.join("\n") : dim(t("No variables.", "Sin variables."));
15950
+ if (act === "ls" || act === "list") {
15951
+ const r = await api(path2);
15952
+ return out(r, () => `${bold(r.slug)} ${dim(t("(names only; values never leave the vault)", "(s\xF3lo nombres; los valores nunca salen de la b\xF3veda)"))}
15953
+ ${names2(r)}`);
15954
+ }
15955
+ if (act === "set" || act === "add") {
15956
+ if (!args.length) throw usage(t("Missing NAME=value.", "Falta NOMBRE=valor."), ex);
15957
+ const r = await api(path2, { method: "POST", body: { set: parseEnvPairs(args) } });
15958
+ return out(r, () => `${lavender("\u2713")} ${r.restarted ? t("Saved: the app is already running with it.", "Guardada: la app ya corre con ella.") : t("Saved: it applies the next time the app starts.", "Guardada: entra la pr\xF3xima vez que la app arranque.")}
15959
+ ${names2(r)}`);
15960
+ }
15961
+ if (act === "rm" || act === "remove") {
15962
+ if (!args[0]) throw usage(t("Missing the variable name.", "Falta el nombre de la variable."), ex);
15963
+ const r = await api(path2, { method: "DELETE", body: { name: args[0] } });
15964
+ return out(r, () => `${lavender("\u2713")} ${t("Deleted", "Borrada")} ${bold(args[0])}`);
15965
+ }
15966
+ throw usage(t(`Unknown env action: ${act}.`, `Acci\xF3n de env desconocida: ${act}.`), ex);
15967
+ }
15968
+ async function cronCmd(action, a2, a3) {
15969
+ const ex = "ghosty sites cron [ls] <slug> \xB7 pause|resume|rm <slug> <id>";
15970
+ const [act, slug, id] = splitAct(action, a2, a3);
15971
+ if (!slug) throw usage(t("Missing the app (slug, id or URL).", "Falta la app (slug, id o URL)."), ex);
15972
+ const path2 = `/api/v2/sites/${encodeURIComponent(slug)}/crons`;
15973
+ if (act === "ls" || act === "list") {
15974
+ const r2 = await api(path2);
15975
+ return out(r2, () => r2.tareas.length ? table(r2.tareas.map((c) => ({ id: c.id, path: c.path, when: c.cuando, state: c.estado, next: day(c.siguiente) })), ["id", "path", "when", "state", "next"]) : t("The app has no scheduled tasks.", "La app no tiene tareas programadas."));
15976
+ }
15977
+ if (act !== "pause" && act !== "resume" && act !== "rm" && act !== "remove") throw usage(t(`Unknown cron action: ${act}.`, `Acci\xF3n de cron desconocida: ${act}.`), ex);
15978
+ if (!id) throw usage(t("Missing the task id (see: ghosty sites cron ls <slug>).", "Falta el id de la tarea (m\xEDralo con: ghosty sites cron ls <slug>)."), ex);
15979
+ const r = await api(path2, { method: "POST", body: { id, action: act === "remove" ? "rm" : act } });
15980
+ const done = act === "pause" ? t("Paused", "En pausa") : act === "resume" ? t("Resumed", "Reanudada") : t("Deleted", "Borrada");
15981
+ return out(r, () => `${lavender("\u2713")} ${done} ${bold(id)}`);
15982
+ }
15983
+ async function filesCmd2(action, a2, a3) {
15984
+ const ex = "ghosty sites files [ls] <slug> \xB7 rm <slug> <id>";
15985
+ const [act, slug, id] = splitAct(action, a2, a3);
15986
+ if (!slug) throw usage(t("Missing the app (slug, id or URL).", "Falta la app (slug, id o URL)."), ex);
15987
+ const path2 = `/api/v2/sites/${encodeURIComponent(slug)}/files`;
15988
+ if (act === "ls" || act === "list") {
15989
+ const r2 = await api(path2);
15990
+ return out(
15991
+ r2,
15992
+ () => `${bold(r2.slug)} ${dim(`${r2.usage.files}/${r2.usage.maxFiles} \xB7 ${kb(r2.usage.bytes) || "0 KB"}`)}
15993
+ ` + (r2.files.length ? table(r2.files.map((f) => ({ id: f.id, name: f.name.slice(0, 40), access: f.uploaded ? f.access : t("uploading", "subiendo"), size: kb(f.size), date: day(f.createdAt) })), ["id", "name", "access", "size", "date"]) : t("The app doesn't store files yet.", "La app todav\xEDa no guarda archivos."))
15994
+ );
15995
+ }
15996
+ if (act !== "rm" && act !== "remove") throw usage(t(`Unknown files action: ${act}.`, `Acci\xF3n de files desconocida: ${act}.`), ex);
15997
+ if (!id) throw usage(t("Missing the file id (see: ghosty sites files ls <slug>).", "Falta el id del archivo (m\xEDralo con: ghosty sites files ls <slug>)."), ex);
15998
+ const r = await api(path2, { method: "DELETE", body: { id } });
15999
+ return out(r, () => `${lavender("\u2713")} ${t("Deleted", "Borrado")} ${bold(r.id)}`);
16000
+ }
16001
+ function errorsLines(r, lang2 = "es") {
16002
+ const es = lang2 === "es";
16003
+ const time = (iso) => iso.slice(5, 16).replace("T", " ");
16004
+ if ("events" in r) {
16005
+ if (!r.events.length) return es ? `Sin eventos de la petici\xF3n ${r.reqId}.` : `No events for request ${r.reqId}.`;
16006
+ return [`${bold(r.slug)} ${dim(`x-request-id ${r.reqId}`)}`, ...r.events.map((e) => `${time(e.at)} ${e.kind} ${e.message}${e.path ? dim(` ${e.path}`) : ""}`)].join("\n");
16007
+ }
16008
+ if (!r.groups.length) return es ? `${r.slug}: sin errores desde ${time(r.since)} UTC.` : `${r.slug}: no errors since ${time(r.since)} UTC.`;
16009
+ const lines = [`${bold(r.slug)} ${dim(es ? `${r.total} eventos desde ${time(r.since)} UTC` : `${r.total} events since ${time(r.since)} UTC`)}`];
16010
+ for (const g of r.groups) {
16011
+ lines.push(`${g.level === "error" ? "\u2716" : "!"} ${bold(`\xD7${g.count}`)} ${g.kind} ${g.message.slice(0, 160)} ${dim(`${es ? "\xFAltimo" : "last"} ${time(g.lastAt)}${g.paths.length ? ` \xB7 ${g.paths.join(", ")}` : ""}${g.last.reqId ? ` \xB7 ${g.last.reqId}` : ""}`)}`);
16012
+ }
16013
+ const top = r.groups[0];
16014
+ if (top.last.breadcrumbs.length) lines.push(dim(es ? "migas del m\xE1s reciente:" : "breadcrumbs of the latest:"), ...top.last.breadcrumbs.slice(-10).map((c) => dim(` ${c}`)));
16015
+ return lines.join("\n");
16016
+ }
15858
16017
 
15859
16018
  // src/commands/docs.ts
15860
16019
  init_api();
@@ -16316,7 +16475,7 @@ function repoHere() {
16316
16475
  function dotenvKeys(text) {
16317
16476
  return text.split("\n").map((l) => l.trim().replace(/^export\s+/, "")).filter((l) => l && !l.startsWith("#") && l.indexOf("=") > 0).map((l) => l.slice(0, l.indexOf("=")).trim());
16318
16477
  }
16319
- async function envCmd(ws, verb, ref, file, v) {
16478
+ async function envCmd2(ws, verb, ref, file, v) {
16320
16479
  const path2 = `/api/v2/workspaces/${enc17(ws)}/factory/env`;
16321
16480
  const repo = ref && ref.includes("/") ? ref : v.repo ?? repoHere();
16322
16481
  if (ref && !ref.includes("/") && !file) file = ref;
@@ -16463,7 +16622,7 @@ async function factoryCmd(sub, verb, ref, title, v, context) {
16463
16622
  if (!ws) throw usage(t("Which workspace?", "\xBFQu\xE9 espacio?"), t("Add --workspace SLUG (or set one with ghosty use SLUG).", "Agrega --workspace SLUG (o fija uno con ghosty use SLUG)."));
16464
16623
  if (sub === "rooms") return roomsCmd(ws, verb, ref, v);
16465
16624
  if (sub === "sprints") return sprintsCmd(ws, verb, ref, v);
16466
- if (sub === "env") return envCmd(ws, verb, ref, title, v);
16625
+ if (sub === "env") return envCmd2(ws, verb, ref, title, v);
16467
16626
  const base = `/api/v2/workspaces/${enc17(ws)}/factory/runs`;
16468
16627
  if (sub === "run") {
16469
16628
  const text = verb?.trim();
@@ -17343,6 +17502,8 @@ ${bold("Sites")} ${dim("(sites your agents publish at <slug>.ghosty.page)")}
17343
17502
  sites unpin <slug|id> Release its slot (back to the Free rule: 30 days + notice)
17344
17503
  sites search <slug|id> How Google finds it: clicks, impressions, searches, indexed or not [--days 28]
17345
17504
  sites domain add|verify|rm <slug> <dom> Custom domain for a site or app (DNS record \u2192 verify \u2192 HTTPS) [ls <slug>: list]
17505
+ sites show <slug|id> Everything about a site or app: status, domains, variable names, data, files, tasks
17506
+ sites env|cron|files [ls] <slug> An app's variables (set <slug> K=V \xB7 rm <slug> K), tasks (pause|resume|rm <slug> <id>), files (rm <slug> <id>)
17346
17507
  sites pins Your pinned-sites subscription and slots [--cancel | --resume]
17347
17508
  sites publish <file.html|folder> Publish a house site (staff): no owner, no expiry, no banner [--title] [--slug S] [--site <slug|id>: update that one]
17348
17509
  sites slug <slug|id> <new-slug> Change a site's slug (staff)
@@ -17568,6 +17729,8 @@ ${bold("Sitios")} ${dim("(los sitios que publican tus agentes en <slug>.ghosty.
17568
17729
  sites unpin <slug|id> Suelta su lugar (vuelve a la regla Gratis: 30 d\xEDas + aviso)
17569
17730
  sites pins Tu suscripci\xF3n de Sitios fijos y sus lugares [--cancel | --resume]
17570
17731
  sites domain add|verify|rm <slug> <dom> Dominio propio para un sitio o app (registro DNS \u2192 verificar \u2192 HTTPS) [ls <slug>: lista]
17732
+ sites show <slug|id> Todo de un sitio o app: estado, dominios, nombres de variables, datos, archivos, tareas
17733
+ sites env|cron|files [ls] <slug> Variables (set <slug> K=V \xB7 rm <slug> K), tareas (pause|resume|rm <slug> <id>) y archivos (rm <slug> <id>) de una app
17571
17734
  sites publish <archivo.html|carpeta> Publica un sitio de la casa (staff): sin due\xF1o, sin caducidad, sin franja [--title] [--slug S] [--site <slug|id>: actualiza \xE9se]
17572
17735
  sites slug <slug|id> <slug-nuevo> Cambia el slug de un sitio (staff)
17573
17736
 
@@ -17779,6 +17942,7 @@ async function main() {
17779
17942
  errors: { type: "boolean" },
17780
17943
  status: { type: "string" },
17781
17944
  since: { type: "string" },
17945
+ "req-id": { type: "string" },
17782
17946
  limit: { type: "string" },
17783
17947
  action: { type: "string" },
17784
17948
  verbose: { type: "boolean" },
@@ -17975,7 +18139,7 @@ async function main() {
17975
18139
  const tokens = splitTokens(pos, v);
17976
18140
  globals.token = tokens.session;
17977
18141
  globals.profile = v.profile;
17978
- if (v.version) return out({ version: "0.95.0" }, () => "0.95.0");
18142
+ if (v.version) return out({ version: "0.96.0" }, () => "0.96.0");
17979
18143
  for (const n of normalizeArgs(pos, v)) if (!globals.json) info(dim(n));
17980
18144
  const context = (await readConfig()).workspace;
17981
18145
  if (!explicitToken()?.startsWith("gat_")) {
@@ -18078,7 +18242,7 @@ async function main() {
18078
18242
  return novedadesCmd(sub, a1, v);
18079
18243
  case "sites":
18080
18244
  case "site":
18081
- return sitesCmd(sub, a1, a2, v, pos[4]);
18245
+ return sitesCmd(sub, a1, a2, v, pos[4], pos.slice(5));
18082
18246
  case "board":
18083
18247
  return boardCmd(sub, a1, v, a2);
18084
18248
  case "boards":
@@ -18182,7 +18346,7 @@ async function main() {
18182
18346
  throw unknown(cmd, cmd, COMMANDS, "ghosty --help");
18183
18347
  }
18184
18348
  }
18185
- var notice = updateNotice("0.95.0").catch(() => null);
18349
+ var notice = updateNotice("0.96.0").catch(() => null);
18186
18350
  main().then(
18187
18351
  async () => {
18188
18352
  const n = process.stderr.isTTY ? await notice : null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ghostystudio/cli",
3
- "version": "0.95.0",
3
+ "version": "0.96.0",
4
4
  "description": "Official Ghosty Studio CLI — configure, test and chat with your agents from the terminal. Built for humans and coding agents.",
5
5
  "type": "module",
6
6
  "bin": {