@ghostystudio/cli 0.96.0 → 0.99.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +13 -0
  2. package/dist/index.js +215 -163
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -108,6 +108,7 @@ ghosty watch ls <id>
108
108
  ghosty watch check <id> <watch-id> [--dry-run]
109
109
  ghosty watch rm|resume <id> <watch-id>
110
110
  ghosty brief [show] · brief on|off [--voice on|off] [--at HH:MM] [--days 1-5|all|0,6] # your morning brief: in your chat with a voice note, only when there's something
111
+ ghosty brief pause <days|YYYY-MM-DD> · brief resume # skip it for a while; it comes back on its own
111
112
  ghosty brief run [--dry-run]
112
113
  ghosty tts "Hola, te aviso por WhatsApp." [--voice em_santa|em_alex|ef_dora] [--out voz.wav] # the house voice (Mexican Spanish + pronunciation lexicon)
113
114
  ghosty teams post <workspace>#<room>[/<thread-id>] "msg" [--wait] # write there as you; any @agent it mentions answers
@@ -155,6 +156,18 @@ Every command has its own help with examples: `ghosty <command> --help` or `ghos
155
156
 
156
157
  Exit codes: `0` ok · `1` API error · `2` usage error · `3` not signed in.
157
158
 
159
+ ### Changes in 0.99.0
160
+
161
+ - `channels whatsapp connect <id>` now starts or resumes the connection and gives a link that works on any screen for 1 hour, in case the phone doesn't finish the Meta sign-in. Running it again never opens a second one and tells you whether it finished. Connecting needs no balance and doesn't turn the agent on.
162
+
163
+ ### Changes in 0.98.0
164
+
165
+ - `brief pause <days|YYYY-MM-DD>` skips your morning brief for 1 to 90 days and it comes back on its own; `brief resume` removes the pause. `brief show` tells you when it returns, and `brief on|off` clears the pause.
166
+
167
+ ### Changes in 0.97.0
168
+
169
+ - `sites agent <slug> [create] [--agent id] [--model m] [--prompt p]`: the agent that lives inside an app and talks to its users (same as the agent's `app_agent`). With no flags it shows which one the app has; `create` makes «Agente de <title>» on Haiku 5.5 with the app's `/mcp`; `--agent` links one of yours; `--model` / `--prompt` change it live, without touching the app.
170
+
158
171
  ### Changes in 0.96.0
159
172
 
160
173
  - `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.
package/dist/index.js CHANGED
@@ -1183,7 +1183,7 @@ async function postLong(path2, body, timeoutMs = 9e5) {
1183
1183
  const req = httpsRequest(`${base}${path2}`, {
1184
1184
  method: "POST",
1185
1185
  timeout: timeoutMs,
1186
- headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.96.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
1186
+ headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.99.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
1187
1187
  }, (res) => {
1188
1188
  let buf = "";
1189
1189
  res.on("data", (c) => buf += c);
@@ -1225,7 +1225,7 @@ async function request(path2, opts = {}, retried = false) {
1225
1225
  method: opts.method ?? (opts.body !== void 0 || opts.raw !== void 0 ? "POST" : "GET"),
1226
1226
  headers: {
1227
1227
  authorization: `Bearer ${token}`,
1228
- "user-agent": `ghosty-cli/${"0.96.0"}`,
1228
+ "user-agent": `ghosty-cli/${"0.99.0"}`,
1229
1229
  "accept-language": lang(),
1230
1230
  ...opts.body !== void 0 ? { "content-type": "application/json" } : {},
1231
1231
  ...opts.headers
@@ -1345,9 +1345,9 @@ var init_mteams = __esm({
1345
1345
  }
1346
1346
  });
1347
1347
 
1348
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/identity.js
1348
+ // ../../../ghosty-studio/node_modules/yaml/dist/nodes/identity.js
1349
1349
  var require_identity = __commonJS({
1350
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/identity.js"(exports) {
1350
+ "../../../ghosty-studio/node_modules/yaml/dist/nodes/identity.js"(exports) {
1351
1351
  "use strict";
1352
1352
  var ALIAS = /* @__PURE__ */ Symbol.for("yaml.alias");
1353
1353
  var DOC = /* @__PURE__ */ Symbol.for("yaml.document");
@@ -1402,9 +1402,9 @@ var require_identity = __commonJS({
1402
1402
  }
1403
1403
  });
1404
1404
 
1405
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/visit.js
1405
+ // ../../../ghosty-studio/node_modules/yaml/dist/visit.js
1406
1406
  var require_visit = __commonJS({
1407
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/visit.js"(exports) {
1407
+ "../../../ghosty-studio/node_modules/yaml/dist/visit.js"(exports) {
1408
1408
  "use strict";
1409
1409
  var identity = require_identity();
1410
1410
  var BREAK = /* @__PURE__ */ Symbol("break visit");
@@ -1560,9 +1560,9 @@ var require_visit = __commonJS({
1560
1560
  }
1561
1561
  });
1562
1562
 
1563
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/directives.js
1563
+ // ../../../ghosty-studio/node_modules/yaml/dist/doc/directives.js
1564
1564
  var require_directives = __commonJS({
1565
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/directives.js"(exports) {
1565
+ "../../../ghosty-studio/node_modules/yaml/dist/doc/directives.js"(exports) {
1566
1566
  "use strict";
1567
1567
  var identity = require_identity();
1568
1568
  var visit = require_visit();
@@ -1731,9 +1731,9 @@ var require_directives = __commonJS({
1731
1731
  }
1732
1732
  });
1733
1733
 
1734
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/anchors.js
1734
+ // ../../../ghosty-studio/node_modules/yaml/dist/doc/anchors.js
1735
1735
  var require_anchors = __commonJS({
1736
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/anchors.js"(exports) {
1736
+ "../../../ghosty-studio/node_modules/yaml/dist/doc/anchors.js"(exports) {
1737
1737
  "use strict";
1738
1738
  var identity = require_identity();
1739
1739
  var visit = require_visit();
@@ -1801,9 +1801,9 @@ var require_anchors = __commonJS({
1801
1801
  }
1802
1802
  });
1803
1803
 
1804
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js
1804
+ // ../../../ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js
1805
1805
  var require_applyReviver = __commonJS({
1806
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js"(exports) {
1806
+ "../../../ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js"(exports) {
1807
1807
  "use strict";
1808
1808
  function applyReviver(reviver, obj, key, val) {
1809
1809
  if (val && typeof val === "object") {
@@ -1851,9 +1851,9 @@ var require_applyReviver = __commonJS({
1851
1851
  }
1852
1852
  });
1853
1853
 
1854
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/toJS.js
1854
+ // ../../../ghosty-studio/node_modules/yaml/dist/nodes/toJS.js
1855
1855
  var require_toJS = __commonJS({
1856
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/toJS.js"(exports) {
1856
+ "../../../ghosty-studio/node_modules/yaml/dist/nodes/toJS.js"(exports) {
1857
1857
  "use strict";
1858
1858
  var identity = require_identity();
1859
1859
  function toJS(value, arg, ctx) {
@@ -1881,9 +1881,9 @@ var require_toJS = __commonJS({
1881
1881
  }
1882
1882
  });
1883
1883
 
1884
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Node.js
1884
+ // ../../../ghosty-studio/node_modules/yaml/dist/nodes/Node.js
1885
1885
  var require_Node = __commonJS({
1886
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Node.js"(exports) {
1886
+ "../../../ghosty-studio/node_modules/yaml/dist/nodes/Node.js"(exports) {
1887
1887
  "use strict";
1888
1888
  var applyReviver = require_applyReviver();
1889
1889
  var identity = require_identity();
@@ -1922,9 +1922,9 @@ var require_Node = __commonJS({
1922
1922
  }
1923
1923
  });
1924
1924
 
1925
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Alias.js
1925
+ // ../../../ghosty-studio/node_modules/yaml/dist/nodes/Alias.js
1926
1926
  var require_Alias = __commonJS({
1927
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Alias.js"(exports) {
1927
+ "../../../ghosty-studio/node_modules/yaml/dist/nodes/Alias.js"(exports) {
1928
1928
  "use strict";
1929
1929
  var anchors = require_anchors();
1930
1930
  var visit = require_visit();
@@ -2040,9 +2040,9 @@ var require_Alias = __commonJS({
2040
2040
  }
2041
2041
  });
2042
2042
 
2043
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js
2043
+ // ../../../ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js
2044
2044
  var require_Scalar = __commonJS({
2045
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js"(exports) {
2045
+ "../../../ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js"(exports) {
2046
2046
  "use strict";
2047
2047
  var identity = require_identity();
2048
2048
  var Node = require_Node();
@@ -2070,9 +2070,9 @@ var require_Scalar = __commonJS({
2070
2070
  }
2071
2071
  });
2072
2072
 
2073
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/createNode.js
2073
+ // ../../../ghosty-studio/node_modules/yaml/dist/doc/createNode.js
2074
2074
  var require_createNode = __commonJS({
2075
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/createNode.js"(exports) {
2075
+ "../../../ghosty-studio/node_modules/yaml/dist/doc/createNode.js"(exports) {
2076
2076
  "use strict";
2077
2077
  var Alias = require_Alias();
2078
2078
  var identity = require_identity();
@@ -2145,9 +2145,9 @@ var require_createNode = __commonJS({
2145
2145
  }
2146
2146
  });
2147
2147
 
2148
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Collection.js
2148
+ // ../../../ghosty-studio/node_modules/yaml/dist/nodes/Collection.js
2149
2149
  var require_Collection = __commonJS({
2150
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Collection.js"(exports) {
2150
+ "../../../ghosty-studio/node_modules/yaml/dist/nodes/Collection.js"(exports) {
2151
2151
  "use strict";
2152
2152
  var createNode = require_createNode();
2153
2153
  var identity = require_identity();
@@ -2288,9 +2288,9 @@ var require_Collection = __commonJS({
2288
2288
  }
2289
2289
  });
2290
2290
 
2291
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js
2291
+ // ../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js
2292
2292
  var require_stringifyComment = __commonJS({
2293
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js"(exports) {
2293
+ "../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js"(exports) {
2294
2294
  "use strict";
2295
2295
  var stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, "#");
2296
2296
  function indentComment(comment, indent) {
@@ -2305,9 +2305,9 @@ var require_stringifyComment = __commonJS({
2305
2305
  }
2306
2306
  });
2307
2307
 
2308
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js
2308
+ // ../../../ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js
2309
2309
  var require_foldFlowLines = __commonJS({
2310
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js"(exports) {
2310
+ "../../../ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js"(exports) {
2311
2311
  "use strict";
2312
2312
  var FOLD_FLOW = "flow";
2313
2313
  var FOLD_BLOCK = "block";
@@ -2441,9 +2441,9 @@ ${indent}${text.slice(fold + 1, end2)}`;
2441
2441
  }
2442
2442
  });
2443
2443
 
2444
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js
2444
+ // ../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js
2445
2445
  var require_stringifyString = __commonJS({
2446
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js"(exports) {
2446
+ "../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js"(exports) {
2447
2447
  "use strict";
2448
2448
  var Scalar = require_Scalar();
2449
2449
  var foldFlowLines = require_foldFlowLines();
@@ -2724,9 +2724,9 @@ ${indent}`);
2724
2724
  }
2725
2725
  });
2726
2726
 
2727
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringify.js
2727
+ // ../../../ghosty-studio/node_modules/yaml/dist/stringify/stringify.js
2728
2728
  var require_stringify = __commonJS({
2729
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringify.js"(exports) {
2729
+ "../../../ghosty-studio/node_modules/yaml/dist/stringify/stringify.js"(exports) {
2730
2730
  "use strict";
2731
2731
  var anchors = require_anchors();
2732
2732
  var identity = require_identity();
@@ -2848,9 +2848,9 @@ ${ctx.indent}${str}`;
2848
2848
  }
2849
2849
  });
2850
2850
 
2851
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js
2851
+ // ../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js
2852
2852
  var require_stringifyPair = __commonJS({
2853
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js"(exports) {
2853
+ "../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js"(exports) {
2854
2854
  "use strict";
2855
2855
  var identity = require_identity();
2856
2856
  var Scalar = require_Scalar();
@@ -2981,9 +2981,9 @@ ${ctx.indent}`;
2981
2981
  }
2982
2982
  });
2983
2983
 
2984
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/log.js
2984
+ // ../../../ghosty-studio/node_modules/yaml/dist/log.js
2985
2985
  var require_log = __commonJS({
2986
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/log.js"(exports) {
2986
+ "../../../ghosty-studio/node_modules/yaml/dist/log.js"(exports) {
2987
2987
  "use strict";
2988
2988
  var node_process = __require("process");
2989
2989
  function debug(logLevel, ...messages) {
@@ -3003,9 +3003,9 @@ var require_log = __commonJS({
3003
3003
  }
3004
3004
  });
3005
3005
 
3006
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js
3006
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js
3007
3007
  var require_merge = __commonJS({
3008
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js"(exports) {
3008
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js"(exports) {
3009
3009
  "use strict";
3010
3010
  var identity = require_identity();
3011
3011
  var Scalar = require_Scalar();
@@ -3063,9 +3063,9 @@ var require_merge = __commonJS({
3063
3063
  }
3064
3064
  });
3065
3065
 
3066
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js
3066
+ // ../../../ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js
3067
3067
  var require_addPairToJSMap = __commonJS({
3068
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports) {
3068
+ "../../../ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports) {
3069
3069
  "use strict";
3070
3070
  var log = require_log();
3071
3071
  var merge = require_merge();
@@ -3127,9 +3127,9 @@ var require_addPairToJSMap = __commonJS({
3127
3127
  }
3128
3128
  });
3129
3129
 
3130
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Pair.js
3130
+ // ../../../ghosty-studio/node_modules/yaml/dist/nodes/Pair.js
3131
3131
  var require_Pair = __commonJS({
3132
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Pair.js"(exports) {
3132
+ "../../../ghosty-studio/node_modules/yaml/dist/nodes/Pair.js"(exports) {
3133
3133
  "use strict";
3134
3134
  var createNode = require_createNode();
3135
3135
  var stringifyPair = require_stringifyPair();
@@ -3167,9 +3167,9 @@ var require_Pair = __commonJS({
3167
3167
  }
3168
3168
  });
3169
3169
 
3170
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js
3170
+ // ../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js
3171
3171
  var require_stringifyCollection = __commonJS({
3172
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js"(exports) {
3172
+ "../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js"(exports) {
3173
3173
  "use strict";
3174
3174
  var identity = require_identity();
3175
3175
  var stringify = require_stringify();
@@ -3318,9 +3318,9 @@ ${indent}${end}`;
3318
3318
  }
3319
3319
  });
3320
3320
 
3321
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js
3321
+ // ../../../ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js
3322
3322
  var require_YAMLMap = __commonJS({
3323
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js"(exports) {
3323
+ "../../../ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js"(exports) {
3324
3324
  "use strict";
3325
3325
  var stringifyCollection = require_stringifyCollection();
3326
3326
  var addPairToJSMap = require_addPairToJSMap();
@@ -3462,9 +3462,9 @@ var require_YAMLMap = __commonJS({
3462
3462
  }
3463
3463
  });
3464
3464
 
3465
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/map.js
3465
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/common/map.js
3466
3466
  var require_map = __commonJS({
3467
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/map.js"(exports) {
3467
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/common/map.js"(exports) {
3468
3468
  "use strict";
3469
3469
  var identity = require_identity();
3470
3470
  var YAMLMap = require_YAMLMap();
@@ -3484,9 +3484,9 @@ var require_map = __commonJS({
3484
3484
  }
3485
3485
  });
3486
3486
 
3487
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js
3487
+ // ../../../ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js
3488
3488
  var require_YAMLSeq = __commonJS({
3489
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js"(exports) {
3489
+ "../../../ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js"(exports) {
3490
3490
  "use strict";
3491
3491
  var createNode = require_createNode();
3492
3492
  var stringifyCollection = require_stringifyCollection();
@@ -3600,9 +3600,9 @@ var require_YAMLSeq = __commonJS({
3600
3600
  }
3601
3601
  });
3602
3602
 
3603
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/seq.js
3603
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/common/seq.js
3604
3604
  var require_seq = __commonJS({
3605
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/seq.js"(exports) {
3605
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/common/seq.js"(exports) {
3606
3606
  "use strict";
3607
3607
  var identity = require_identity();
3608
3608
  var YAMLSeq = require_YAMLSeq();
@@ -3622,9 +3622,9 @@ var require_seq = __commonJS({
3622
3622
  }
3623
3623
  });
3624
3624
 
3625
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/string.js
3625
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/common/string.js
3626
3626
  var require_string = __commonJS({
3627
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/string.js"(exports) {
3627
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/common/string.js"(exports) {
3628
3628
  "use strict";
3629
3629
  var stringifyString = require_stringifyString();
3630
3630
  var string = {
@@ -3641,9 +3641,9 @@ var require_string = __commonJS({
3641
3641
  }
3642
3642
  });
3643
3643
 
3644
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/null.js
3644
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/common/null.js
3645
3645
  var require_null = __commonJS({
3646
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/null.js"(exports) {
3646
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/common/null.js"(exports) {
3647
3647
  "use strict";
3648
3648
  var Scalar = require_Scalar();
3649
3649
  var nullTag = {
@@ -3659,9 +3659,9 @@ var require_null = __commonJS({
3659
3659
  }
3660
3660
  });
3661
3661
 
3662
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/bool.js
3662
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/core/bool.js
3663
3663
  var require_bool = __commonJS({
3664
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/bool.js"(exports) {
3664
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/core/bool.js"(exports) {
3665
3665
  "use strict";
3666
3666
  var Scalar = require_Scalar();
3667
3667
  var boolTag = {
@@ -3683,9 +3683,9 @@ var require_bool = __commonJS({
3683
3683
  }
3684
3684
  });
3685
3685
 
3686
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js
3686
+ // ../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js
3687
3687
  var require_stringifyNumber = __commonJS({
3688
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js"(exports) {
3688
+ "../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js"(exports) {
3689
3689
  "use strict";
3690
3690
  function stringifyNumber({ format, minFractionDigits, tag, value }) {
3691
3691
  if (typeof value === "bigint")
@@ -3710,9 +3710,9 @@ var require_stringifyNumber = __commonJS({
3710
3710
  }
3711
3711
  });
3712
3712
 
3713
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/float.js
3713
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/core/float.js
3714
3714
  var require_float = __commonJS({
3715
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/float.js"(exports) {
3715
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/core/float.js"(exports) {
3716
3716
  "use strict";
3717
3717
  var Scalar = require_Scalar();
3718
3718
  var stringifyNumber = require_stringifyNumber();
@@ -3756,9 +3756,9 @@ var require_float = __commonJS({
3756
3756
  }
3757
3757
  });
3758
3758
 
3759
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/int.js
3759
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/core/int.js
3760
3760
  var require_int = __commonJS({
3761
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/int.js"(exports) {
3761
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/core/int.js"(exports) {
3762
3762
  "use strict";
3763
3763
  var stringifyNumber = require_stringifyNumber();
3764
3764
  var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -3801,9 +3801,9 @@ var require_int = __commonJS({
3801
3801
  }
3802
3802
  });
3803
3803
 
3804
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/schema.js
3804
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/core/schema.js
3805
3805
  var require_schema = __commonJS({
3806
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/schema.js"(exports) {
3806
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/core/schema.js"(exports) {
3807
3807
  "use strict";
3808
3808
  var map = require_map();
3809
3809
  var _null = require_null();
@@ -3829,9 +3829,9 @@ var require_schema = __commonJS({
3829
3829
  }
3830
3830
  });
3831
3831
 
3832
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/json/schema.js
3832
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/json/schema.js
3833
3833
  var require_schema2 = __commonJS({
3834
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/json/schema.js"(exports) {
3834
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/json/schema.js"(exports) {
3835
3835
  "use strict";
3836
3836
  var Scalar = require_Scalar();
3837
3837
  var map = require_map();
@@ -3896,9 +3896,9 @@ var require_schema2 = __commonJS({
3896
3896
  }
3897
3897
  });
3898
3898
 
3899
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js
3899
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js
3900
3900
  var require_binary = __commonJS({
3901
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js"(exports) {
3901
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js"(exports) {
3902
3902
  "use strict";
3903
3903
  var node_buffer = __require("buffer");
3904
3904
  var Scalar = require_Scalar();
@@ -3962,9 +3962,9 @@ var require_binary = __commonJS({
3962
3962
  }
3963
3963
  });
3964
3964
 
3965
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
3965
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
3966
3966
  var require_pairs = __commonJS({
3967
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js"(exports) {
3967
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js"(exports) {
3968
3968
  "use strict";
3969
3969
  var identity = require_identity();
3970
3970
  var Pair = require_Pair();
@@ -4040,9 +4040,9 @@ ${cn.comment}` : item.comment;
4040
4040
  }
4041
4041
  });
4042
4042
 
4043
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js
4043
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js
4044
4044
  var require_omap = __commonJS({
4045
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js"(exports) {
4045
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js"(exports) {
4046
4046
  "use strict";
4047
4047
  var identity = require_identity();
4048
4048
  var toJS = require_toJS();
@@ -4118,9 +4118,9 @@ var require_omap = __commonJS({
4118
4118
  }
4119
4119
  });
4120
4120
 
4121
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js
4121
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js
4122
4122
  var require_bool2 = __commonJS({
4123
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js"(exports) {
4123
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js"(exports) {
4124
4124
  "use strict";
4125
4125
  var Scalar = require_Scalar();
4126
4126
  function boolStringify({ value, source }, ctx) {
@@ -4150,9 +4150,9 @@ var require_bool2 = __commonJS({
4150
4150
  }
4151
4151
  });
4152
4152
 
4153
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js
4153
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js
4154
4154
  var require_float2 = __commonJS({
4155
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js"(exports) {
4155
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js"(exports) {
4156
4156
  "use strict";
4157
4157
  var Scalar = require_Scalar();
4158
4158
  var stringifyNumber = require_stringifyNumber();
@@ -4199,9 +4199,9 @@ var require_float2 = __commonJS({
4199
4199
  }
4200
4200
  });
4201
4201
 
4202
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js
4202
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js
4203
4203
  var require_int2 = __commonJS({
4204
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js"(exports) {
4204
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js"(exports) {
4205
4205
  "use strict";
4206
4206
  var stringifyNumber = require_stringifyNumber();
4207
4207
  var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -4278,9 +4278,9 @@ var require_int2 = __commonJS({
4278
4278
  }
4279
4279
  });
4280
4280
 
4281
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js
4281
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js
4282
4282
  var require_set = __commonJS({
4283
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js"(exports) {
4283
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js"(exports) {
4284
4284
  "use strict";
4285
4285
  var identity = require_identity();
4286
4286
  var Pair = require_Pair();
@@ -4367,9 +4367,9 @@ var require_set = __commonJS({
4367
4367
  }
4368
4368
  });
4369
4369
 
4370
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
4370
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
4371
4371
  var require_timestamp = __commonJS({
4372
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js"(exports) {
4372
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js"(exports) {
4373
4373
  "use strict";
4374
4374
  var stringifyNumber = require_stringifyNumber();
4375
4375
  function parseSexagesimal(str, asBigInt) {
@@ -4455,9 +4455,9 @@ var require_timestamp = __commonJS({
4455
4455
  }
4456
4456
  });
4457
4457
 
4458
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js
4458
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js
4459
4459
  var require_schema3 = __commonJS({
4460
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js"(exports) {
4460
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js"(exports) {
4461
4461
  "use strict";
4462
4462
  var map = require_map();
4463
4463
  var _null = require_null();
@@ -4499,9 +4499,9 @@ var require_schema3 = __commonJS({
4499
4499
  }
4500
4500
  });
4501
4501
 
4502
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/tags.js
4502
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/tags.js
4503
4503
  var require_tags = __commonJS({
4504
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/tags.js"(exports) {
4504
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/tags.js"(exports) {
4505
4505
  "use strict";
4506
4506
  var map = require_map();
4507
4507
  var _null = require_null();
@@ -4593,9 +4593,9 @@ var require_tags = __commonJS({
4593
4593
  }
4594
4594
  });
4595
4595
 
4596
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/Schema.js
4596
+ // ../../../ghosty-studio/node_modules/yaml/dist/schema/Schema.js
4597
4597
  var require_Schema = __commonJS({
4598
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/Schema.js"(exports) {
4598
+ "../../../ghosty-studio/node_modules/yaml/dist/schema/Schema.js"(exports) {
4599
4599
  "use strict";
4600
4600
  var identity = require_identity();
4601
4601
  var map = require_map();
@@ -4625,9 +4625,9 @@ var require_Schema = __commonJS({
4625
4625
  }
4626
4626
  });
4627
4627
 
4628
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js
4628
+ // ../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js
4629
4629
  var require_stringifyDocument = __commonJS({
4630
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js"(exports) {
4630
+ "../../../ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js"(exports) {
4631
4631
  "use strict";
4632
4632
  var identity = require_identity();
4633
4633
  var stringify = require_stringify();
@@ -4705,9 +4705,9 @@ var require_stringifyDocument = __commonJS({
4705
4705
  }
4706
4706
  });
4707
4707
 
4708
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/Document.js
4708
+ // ../../../ghosty-studio/node_modules/yaml/dist/doc/Document.js
4709
4709
  var require_Document = __commonJS({
4710
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/Document.js"(exports) {
4710
+ "../../../ghosty-studio/node_modules/yaml/dist/doc/Document.js"(exports) {
4711
4711
  "use strict";
4712
4712
  var Alias = require_Alias();
4713
4713
  var Collection = require_Collection();
@@ -5014,9 +5014,9 @@ var require_Document = __commonJS({
5014
5014
  }
5015
5015
  });
5016
5016
 
5017
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/errors.js
5017
+ // ../../../ghosty-studio/node_modules/yaml/dist/errors.js
5018
5018
  var require_errors = __commonJS({
5019
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/errors.js"(exports) {
5019
+ "../../../ghosty-studio/node_modules/yaml/dist/errors.js"(exports) {
5020
5020
  "use strict";
5021
5021
  var YAMLError = class extends Error {
5022
5022
  constructor(name, pos, code, message) {
@@ -5079,9 +5079,9 @@ ${pointer}
5079
5079
  }
5080
5080
  });
5081
5081
 
5082
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js
5082
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js
5083
5083
  var require_resolve_props = __commonJS({
5084
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js"(exports) {
5084
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js"(exports) {
5085
5085
  "use strict";
5086
5086
  function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
5087
5087
  let spaceBefore = false;
@@ -5213,9 +5213,9 @@ var require_resolve_props = __commonJS({
5213
5213
  }
5214
5214
  });
5215
5215
 
5216
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js
5216
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js
5217
5217
  var require_util_contains_newline = __commonJS({
5218
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js"(exports) {
5218
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js"(exports) {
5219
5219
  "use strict";
5220
5220
  function containsNewline(key) {
5221
5221
  if (!key)
@@ -5255,9 +5255,9 @@ var require_util_contains_newline = __commonJS({
5255
5255
  }
5256
5256
  });
5257
5257
 
5258
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js
5258
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js
5259
5259
  var require_util_flow_indent_check = __commonJS({
5260
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js"(exports) {
5260
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js"(exports) {
5261
5261
  "use strict";
5262
5262
  var utilContainsNewline = require_util_contains_newline();
5263
5263
  function flowIndentCheck(indent, fc, onError) {
@@ -5273,9 +5273,9 @@ var require_util_flow_indent_check = __commonJS({
5273
5273
  }
5274
5274
  });
5275
5275
 
5276
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js
5276
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js
5277
5277
  var require_util_map_includes = __commonJS({
5278
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js"(exports) {
5278
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js"(exports) {
5279
5279
  "use strict";
5280
5280
  var identity = require_identity();
5281
5281
  function mapIncludes(ctx, items, search) {
@@ -5289,9 +5289,9 @@ var require_util_map_includes = __commonJS({
5289
5289
  }
5290
5290
  });
5291
5291
 
5292
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js
5292
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js
5293
5293
  var require_resolve_block_map = __commonJS({
5294
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js"(exports) {
5294
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js"(exports) {
5295
5295
  "use strict";
5296
5296
  var Pair = require_Pair();
5297
5297
  var YAMLMap = require_YAMLMap();
@@ -5397,9 +5397,9 @@ var require_resolve_block_map = __commonJS({
5397
5397
  }
5398
5398
  });
5399
5399
 
5400
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js
5400
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js
5401
5401
  var require_resolve_block_seq = __commonJS({
5402
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js"(exports) {
5402
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js"(exports) {
5403
5403
  "use strict";
5404
5404
  var YAMLSeq = require_YAMLSeq();
5405
5405
  var resolveProps = require_resolve_props();
@@ -5448,9 +5448,9 @@ var require_resolve_block_seq = __commonJS({
5448
5448
  }
5449
5449
  });
5450
5450
 
5451
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js
5451
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js
5452
5452
  var require_resolve_end = __commonJS({
5453
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js"(exports) {
5453
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js"(exports) {
5454
5454
  "use strict";
5455
5455
  function resolveEnd(end, offset, reqSpace, onError) {
5456
5456
  let comment = "";
@@ -5491,9 +5491,9 @@ var require_resolve_end = __commonJS({
5491
5491
  }
5492
5492
  });
5493
5493
 
5494
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js
5494
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js
5495
5495
  var require_resolve_flow_collection = __commonJS({
5496
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js"(exports) {
5496
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js"(exports) {
5497
5497
  "use strict";
5498
5498
  var identity = require_identity();
5499
5499
  var Pair = require_Pair();
@@ -5685,9 +5685,9 @@ var require_resolve_flow_collection = __commonJS({
5685
5685
  }
5686
5686
  });
5687
5687
 
5688
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js
5688
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js
5689
5689
  var require_compose_collection = __commonJS({
5690
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js"(exports) {
5690
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js"(exports) {
5691
5691
  "use strict";
5692
5692
  var identity = require_identity();
5693
5693
  var Scalar = require_Scalar();
@@ -5750,9 +5750,9 @@ var require_compose_collection = __commonJS({
5750
5750
  }
5751
5751
  });
5752
5752
 
5753
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js
5753
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js
5754
5754
  var require_resolve_block_scalar = __commonJS({
5755
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js"(exports) {
5755
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js"(exports) {
5756
5756
  "use strict";
5757
5757
  var Scalar = require_Scalar();
5758
5758
  function resolveBlockScalar(ctx, scalar, onError) {
@@ -5933,9 +5933,9 @@ var require_resolve_block_scalar = __commonJS({
5933
5933
  }
5934
5934
  });
5935
5935
 
5936
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js
5936
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js
5937
5937
  var require_resolve_flow_scalar = __commonJS({
5938
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js"(exports) {
5938
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js"(exports) {
5939
5939
  "use strict";
5940
5940
  var Scalar = require_Scalar();
5941
5941
  var resolveEnd = require_resolve_end();
@@ -6154,9 +6154,9 @@ var require_resolve_flow_scalar = __commonJS({
6154
6154
  }
6155
6155
  });
6156
6156
 
6157
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js
6157
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js
6158
6158
  var require_compose_scalar = __commonJS({
6159
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js"(exports) {
6159
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js"(exports) {
6160
6160
  "use strict";
6161
6161
  var identity = require_identity();
6162
6162
  var Scalar = require_Scalar();
@@ -6235,9 +6235,9 @@ var require_compose_scalar = __commonJS({
6235
6235
  }
6236
6236
  });
6237
6237
 
6238
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js
6238
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js
6239
6239
  var require_util_empty_scalar_position = __commonJS({
6240
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js"(exports) {
6240
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js"(exports) {
6241
6241
  "use strict";
6242
6242
  function emptyScalarPosition(offset, before, pos) {
6243
6243
  if (before) {
@@ -6265,9 +6265,9 @@ var require_util_empty_scalar_position = __commonJS({
6265
6265
  }
6266
6266
  });
6267
6267
 
6268
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-node.js
6268
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/compose-node.js
6269
6269
  var require_compose_node = __commonJS({
6270
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-node.js"(exports) {
6270
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/compose-node.js"(exports) {
6271
6271
  "use strict";
6272
6272
  var Alias = require_Alias();
6273
6273
  var identity = require_identity();
@@ -6371,9 +6371,9 @@ var require_compose_node = __commonJS({
6371
6371
  }
6372
6372
  });
6373
6373
 
6374
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js
6374
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js
6375
6375
  var require_compose_doc = __commonJS({
6376
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js"(exports) {
6376
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js"(exports) {
6377
6377
  "use strict";
6378
6378
  var Document = require_Document();
6379
6379
  var composeNode = require_compose_node();
@@ -6414,9 +6414,9 @@ var require_compose_doc = __commonJS({
6414
6414
  }
6415
6415
  });
6416
6416
 
6417
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/composer.js
6417
+ // ../../../ghosty-studio/node_modules/yaml/dist/compose/composer.js
6418
6418
  var require_composer = __commonJS({
6419
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/composer.js"(exports) {
6419
+ "../../../ghosty-studio/node_modules/yaml/dist/compose/composer.js"(exports) {
6420
6420
  "use strict";
6421
6421
  var node_process = __require("process");
6422
6422
  var directives = require_directives();
@@ -6622,9 +6622,9 @@ ${end.comment}` : end.comment;
6622
6622
  }
6623
6623
  });
6624
6624
 
6625
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js
6625
+ // ../../../ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js
6626
6626
  var require_cst_scalar = __commonJS({
6627
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js"(exports) {
6627
+ "../../../ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js"(exports) {
6628
6628
  "use strict";
6629
6629
  var resolveBlockScalar = require_resolve_block_scalar();
6630
6630
  var resolveFlowScalar = require_resolve_flow_scalar();
@@ -6807,9 +6807,9 @@ var require_cst_scalar = __commonJS({
6807
6807
  }
6808
6808
  });
6809
6809
 
6810
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js
6810
+ // ../../../ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js
6811
6811
  var require_cst_stringify = __commonJS({
6812
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js"(exports) {
6812
+ "../../../ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js"(exports) {
6813
6813
  "use strict";
6814
6814
  var stringify = (cst) => "type" in cst ? stringifyToken(cst) : stringifyItem(cst);
6815
6815
  function stringifyToken(token) {
@@ -6868,9 +6868,9 @@ var require_cst_stringify = __commonJS({
6868
6868
  }
6869
6869
  });
6870
6870
 
6871
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js
6871
+ // ../../../ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js
6872
6872
  var require_cst_visit = __commonJS({
6873
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js"(exports) {
6873
+ "../../../ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js"(exports) {
6874
6874
  "use strict";
6875
6875
  var BREAK = /* @__PURE__ */ Symbol("break visit");
6876
6876
  var SKIP2 = /* @__PURE__ */ Symbol("skip children");
@@ -6930,9 +6930,9 @@ var require_cst_visit = __commonJS({
6930
6930
  }
6931
6931
  });
6932
6932
 
6933
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst.js
6933
+ // ../../../ghosty-studio/node_modules/yaml/dist/parse/cst.js
6934
6934
  var require_cst = __commonJS({
6935
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst.js"(exports) {
6935
+ "../../../ghosty-studio/node_modules/yaml/dist/parse/cst.js"(exports) {
6936
6936
  "use strict";
6937
6937
  var cstScalar = require_cst_scalar();
6938
6938
  var cstStringify = require_cst_stringify();
@@ -7032,9 +7032,9 @@ var require_cst = __commonJS({
7032
7032
  }
7033
7033
  });
7034
7034
 
7035
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/lexer.js
7035
+ // ../../../ghosty-studio/node_modules/yaml/dist/parse/lexer.js
7036
7036
  var require_lexer = __commonJS({
7037
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/lexer.js"(exports) {
7037
+ "../../../ghosty-studio/node_modules/yaml/dist/parse/lexer.js"(exports) {
7038
7038
  "use strict";
7039
7039
  var cst = require_cst();
7040
7040
  function isEmpty(ch) {
@@ -7621,9 +7621,9 @@ var require_lexer = __commonJS({
7621
7621
  }
7622
7622
  });
7623
7623
 
7624
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/line-counter.js
7624
+ // ../../../ghosty-studio/node_modules/yaml/dist/parse/line-counter.js
7625
7625
  var require_line_counter = __commonJS({
7626
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/line-counter.js"(exports) {
7626
+ "../../../ghosty-studio/node_modules/yaml/dist/parse/line-counter.js"(exports) {
7627
7627
  "use strict";
7628
7628
  var LineCounter = class {
7629
7629
  constructor() {
@@ -7652,9 +7652,9 @@ var require_line_counter = __commonJS({
7652
7652
  }
7653
7653
  });
7654
7654
 
7655
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/parser.js
7655
+ // ../../../ghosty-studio/node_modules/yaml/dist/parse/parser.js
7656
7656
  var require_parser = __commonJS({
7657
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/parser.js"(exports) {
7657
+ "../../../ghosty-studio/node_modules/yaml/dist/parse/parser.js"(exports) {
7658
7658
  "use strict";
7659
7659
  var node_process = __require("process");
7660
7660
  var cst = require_cst();
@@ -8526,9 +8526,9 @@ var require_parser = __commonJS({
8526
8526
  }
8527
8527
  });
8528
8528
 
8529
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/public-api.js
8529
+ // ../../../ghosty-studio/node_modules/yaml/dist/public-api.js
8530
8530
  var require_public_api = __commonJS({
8531
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/public-api.js"(exports) {
8531
+ "../../../ghosty-studio/node_modules/yaml/dist/public-api.js"(exports) {
8532
8532
  "use strict";
8533
8533
  var composer = require_composer();
8534
8534
  var Document = require_Document();
@@ -8623,9 +8623,9 @@ var require_public_api = __commonJS({
8623
8623
  }
8624
8624
  });
8625
8625
 
8626
- // ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/index.js
8626
+ // ../../../ghosty-studio/node_modules/yaml/dist/index.js
8627
8627
  var require_dist = __commonJS({
8628
- "../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/index.js"(exports) {
8628
+ "../../../ghosty-studio/node_modules/yaml/dist/index.js"(exports) {
8629
8629
  "use strict";
8630
8630
  var composer = require_composer();
8631
8631
  var Document = require_Document();
@@ -11286,7 +11286,7 @@ async function call(path2, v, init = {}) {
11286
11286
  "x-ghosty-ts": ts,
11287
11287
  "x-ghosty-sig": sig,
11288
11288
  "content-type": "application/json",
11289
- "user-agent": `ghosty-cli/${"0.96.0"}`
11289
+ "user-agent": `ghosty-cli/${"0.99.0"}`
11290
11290
  },
11291
11291
  body: method === "GET" ? void 0 : raw
11292
11292
  });
@@ -11758,7 +11758,7 @@ function parseAtFlag(raw) {
11758
11758
  return hour <= 23 && minute <= 59 ? { hour, minute } : null;
11759
11759
  }
11760
11760
  function showView(v) {
11761
- const state = v.enabled ? lavender(t("on", "encendido")) : dim(t("off", "apagado"));
11761
+ const state = !v.enabled ? dim(t("off", "apagado")) : v.pausedUntil ? dim(t(`paused until ${v.pausedUntil}`, `en pausa hasta el ${v.pausedUntil}`)) : lavender(t("on", "encendido"));
11762
11762
  const at = v.hour !== void 0 && v.minute !== void 0 ? `${pad(v.hour)}:${pad(v.minute)}` : "7:30";
11763
11763
  const when = [at, v.days ? daysLabel(v.days) : null, v.timeZone].filter(Boolean).join(" \xB7 ");
11764
11764
  const voice = v.voice === void 0 ? "" : ` \xB7 ${v.voice ? t("with voice", "con voz") : t("no voice", "sin voz")}`;
@@ -11779,7 +11779,14 @@ function showRun(r) {
11779
11779
  if (r.error) parts.push(dim(r.error));
11780
11780
  return parts.join("\n");
11781
11781
  }
11782
- async function briefCmd(sub, v) {
11782
+ function parsePauseArg(raw) {
11783
+ const s2 = raw?.trim() ?? "";
11784
+ if (/^\d{4}-\d{2}-\d{2}$/.test(s2)) return { pausedUntil: s2 };
11785
+ if (!/^\d{1,2}$/.test(s2)) return null;
11786
+ const n = Number(s2);
11787
+ return n >= 1 && n <= 90 ? { pauseDays: n } : null;
11788
+ }
11789
+ async function briefCmd(sub, arg, v) {
11783
11790
  const patch = {};
11784
11791
  if (v.voice !== void 0) {
11785
11792
  const on = ["on", "si", "s\xED", "true", "1", "yes"].includes(v.voice.toLowerCase());
@@ -11798,7 +11805,13 @@ async function briefCmd(sub, v) {
11798
11805
  patch.days = days;
11799
11806
  }
11800
11807
  if (sub === "on" || sub === "off") patch.enabled = sub === "on";
11801
- if (Object.keys(patch).length && (!sub || sub === "show" || sub === "set" || sub === "on" || sub === "off")) {
11808
+ if (sub === "pause") {
11809
+ const pause = parsePauseArg(arg);
11810
+ if (!pause) throw usage(t("pause takes days (1\u201390) or the date it comes back (YYYY-MM-DD).", "pause va con d\xEDas (1\u201390) o la fecha en que vuelve (YYYY-MM-DD)."), "ghosty brief pause 7");
11811
+ Object.assign(patch, pause);
11812
+ }
11813
+ if (sub === "resume") patch.pausedUntil = null;
11814
+ if (Object.keys(patch).length && (!sub || sub === "show" || sub === "set" || sub === "on" || sub === "off" || sub === "pause" || sub === "resume")) {
11802
11815
  const r = await api(PATH, { method: "PUT", body: { ...patch, via: "cli" } });
11803
11816
  return out(r, () => showView(r));
11804
11817
  }
@@ -11811,7 +11824,7 @@ async function briefCmd(sub, v) {
11811
11824
  const r = await api(`${PATH}/run`, { method: "POST", body: { dryRun: !!v["dry-run"], ...v.email ? { email: v.email } : {} } });
11812
11825
  return out(r, () => showRun(r));
11813
11826
  }
11814
- throw usage(t(`Unknown brief subcommand: ${sub}.`, `Subcomando de brief desconocido: ${sub}.`), "ghosty brief [show] | on | off [--voice on|off] [--at HH:MM] [--days 1-5] | run [--dry-run] [--email X]");
11827
+ throw usage(t(`Unknown brief subcommand: ${sub}.`, `Subcomando de brief desconocido: ${sub}.`), "ghosty brief [show] | on | off [--voice on|off] [--at HH:MM] [--days 1-5] | pause <days|YYYY-MM-DD> | resume | run [--dry-run] [--email X]");
11815
11828
  }
11816
11829
 
11817
11830
  // src/commands/data.ts
@@ -13129,6 +13142,15 @@ async function contactsCmd(id, v) {
13129
13142
  return lines.join("\n");
13130
13143
  });
13131
13144
  }
13145
+ async function whatsappConnectCmd(id, v) {
13146
+ const r = await api(`/api/v2/agents/${enc11(id)}/whatsapp/connect`, { method: "POST", body: {} });
13147
+ if (globals.json) return out(r);
13148
+ if (r.state === "connected") return out(r, () => `${lavender("\u2713")} ${t(`Connected${r.phoneNumber ? `: ${r.phoneNumber}` : ""}. It doesn't answer yet: ghosty channels whatsapp enable ${id} <number>`, `Conectado${r.phoneNumber ? `: ${r.phoneNumber}` : ""}. Todav\xEDa no contesta: ghosty channels whatsapp enable ${id} <n\xFAmero>`)}`);
13149
+ if (r.state === "other_owner") throw new CliError(t("That number already belongs to another account; nothing changed.", "Ese n\xFAmero ya es de otra cuenta; no se cambi\xF3 nada."));
13150
+ info(`${lavender("\u203A")} ${r.url}
13151
+ ${dim(t("Open it where you can sign in to Meta, then run this again to confirm.", "\xC1brela donde puedas entrar a Meta y luego corre esto otra vez para confirmar."))}`);
13152
+ if (!v["no-open"] && r.url) await openUrl(r.url);
13153
+ }
13132
13154
 
13133
13155
  // src/commands/board.ts
13134
13156
  init_api();
@@ -13697,7 +13719,7 @@ var HELPS_ES = {
13697
13719
  },
13698
13720
  brief: {
13699
13721
  summary: "Tu brief de la ma\xF1ana: a tu hora (7:30 por default) cae en tu chat un resumen corto con nota de voz y un push \u2014 lo que va en curso y lo que te necesita, en 5 renglones. Encendido por default; s\xF3lo llega si hay algo que contar.",
13700
- replace: [["person@x.com", "persona@x.com"]],
13722
+ replace: [["person@x.com", "persona@x.com"], ["<days|", "<d\xEDas|"]],
13701
13723
  flags: [
13702
13724
  ["--voice on|off", "con o sin la nota de voz (em_santa) arriba de los renglones"],
13703
13725
  ["--at HH:MM", "la hora a la que llega, 24 h, en tu zona"],
@@ -14019,6 +14041,7 @@ var HELPS_ES = {
14019
14041
  ["--cancel / --resume", "pins: cancela al final del periodo (los sitios vuelven a Gratis con aviso), o lo deshace"],
14020
14042
  ["--days N", "search: la ventana de Search Console en d\xEDas (default 28; Google reporta con 2\u20133 d\xEDas de retraso)"],
14021
14043
  ["--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)"],
14044
+ ["--agent ID / --model M / --prompt P", "agent: liga a la app uno de tus agentes (motor claude), o cambia el modelo o el prompt del agente de la app"],
14022
14045
  ["--title T", "publish: el nombre del sitio (default: el <title> del HTML o el nombre de la carpeta)"],
14023
14046
  ["--slug S", "publish: el slug de un sitio NUEVO (a-z, 0-9 y guiones, 3\u201360, no reservado)"],
14024
14047
  ["--site X", "publish: actualiza ese sitio de la casa (slug, id o URL) en vez de crear uno"]
@@ -14029,6 +14052,7 @@ var HELPS_ES = {
14029
14052
  "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.",
14030
14053
  "Errores de slug: slug_invalid, slug_taken, slug_unsupported (exit 1, no cambia nada).",
14031
14054
  "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.",
14055
+ "agent: el agente que vive DENTRO de la app y platica con sus usuarios (lo mismo que la tool app_agent). Sin flags dice cu\xE1l tiene; \xABcreate\xBB crea \xABAgente de <t\xEDtulo>\xBB en Haiku 5.5 con el /mcp de la app; --agent liga uno tuyo; --model / --prompt lo cambian en caliente, sin tocar la app.",
14032
14056
  "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
14057
  "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."
14034
14058
  ]
@@ -14557,7 +14581,7 @@ var HELPS = {
14557
14581
  },
14558
14582
  brief: {
14559
14583
  summary: "Your morning brief: at your time (7:30 by default) a short summary lands in your chat with a voice note and a push \u2014 what's in progress and what needs you, in 5 lines. On by default; it only arrives when there's something to tell.",
14560
- usage: ["ghosty brief show", "ghosty brief on|off", "ghosty brief [--voice on|off] [--at HH:MM] [--days 1-5|all|0,6]", "ghosty brief run [--dry-run]", "ghosty brief run --dry-run --email person@x.com"],
14584
+ usage: ["ghosty brief show", "ghosty brief on|off", "ghosty brief [--voice on|off] [--at HH:MM] [--days 1-5|all|0,6]", "ghosty brief pause <days|YYYY-MM-DD>", "ghosty brief resume", "ghosty brief run [--dry-run]", "ghosty brief run --dry-run --email person@x.com"],
14561
14585
  flags: [
14562
14586
  ["--voice on|off", "with or without the voice note (em_santa) on top of the lines"],
14563
14587
  ["--at HH:MM", "the time it arrives, 24 h, in your time zone"],
@@ -14565,7 +14589,7 @@ var HELPS = {
14565
14589
  ["--dry-run", "run: collect and draft today's brief now and print it; saves nothing, posts nothing, pushes nobody"],
14566
14590
  ["--email X", "run --dry-run (Ghosty staff): another account's brief, without sending it"]
14567
14591
  ],
14568
- examples: ["ghosty brief", "ghosty brief --at 8:15 --days 1-5", "ghosty brief --voice off", "ghosty brief run --dry-run", "ghosty brief off"],
14592
+ examples: ["ghosty brief", "ghosty brief --at 8:15 --days 1-5", "ghosty brief --voice off", "ghosty brief pause 7", "ghosty brief resume", "ghosty brief run --dry-run", "ghosty brief off"],
14569
14593
  notes: ["It goes to the latest personal chat with your main agent, as a message from it; your agent knows what it said in your next message.", "run --dry-run also makes the voice note so you can hear it (the link is printed); nothing is posted.", "The footer \xABUseful? \xB7 Stop sending it\xBB works with one tap; you can also ask your agent to turn it on or off."]
14570
14594
  },
14571
14595
  teams: {
@@ -14704,7 +14728,8 @@ HELPS.channels = {
14704
14728
  "ghosty channels messenger ls <agent-id> [--orphans]",
14705
14729
  "ghosty channels messenger status <agent-id> # who answers each page, last webhook, token health",
14706
14730
  "ghosty channels messenger on|off <agent-id> <page> [--take] [--dry-run] [--yes]",
14707
- "ghosty channels whatsapp|messenger connect <agent-id> [--no-open] # opens Channels: Meta sign-in in the browser",
14731
+ "ghosty channels whatsapp connect <agent-id> [--no-open] # starts or resumes it: a link for any screen; connecting needs no balance and does not turn the agent on",
14732
+ "ghosty channels messenger connect <agent-id> [--no-open] # opens Channels: Meta sign-in in the browser",
14708
14733
  "ghosty channels whatsapp link <agent-id> --integration <formmy-id> --answer on|off [--forward] [--dry-run] [--yes]",
14709
14734
  "ghosty channels whatsapp unlink <agent-id> --integration <formmy-id> [--dry-run] [--yes]",
14710
14735
  "ghosty channels whatsapp history <agent-id> --integration <formmy-id> [--days 7] [--media] [--dry-run] [--yes]",
@@ -15040,6 +15065,7 @@ HELPS.sites = {
15040
15065
  "ghosty sites cron [ls] <slug> \xB7 cron pause|resume|rm <slug> <id>",
15041
15066
  "ghosty sites files [ls] <slug> \xB7 files rm <slug> <id>",
15042
15067
  "ghosty sites errors <slug> [--since 24h] [--kind server_error|client_error|request|build] [--req-id ID]",
15068
+ "ghosty sites agent <slug> [create] [--agent id] [--model m] [--prompt p]",
15043
15069
  "ghosty sites pin <slug|id> [--interval year|month] [--currency usd|mxn] [--add-pack]",
15044
15070
  "ghosty sites unpin <slug|id>",
15045
15071
  "ghosty sites pins [--cancel | --resume]",
@@ -15055,11 +15081,12 @@ HELPS.sites = {
15055
15081
  ["--cancel / --resume", "pins: cancel at period end (sites go back to Free with notice), or undo it"],
15056
15082
  ["--days N", "search: Search Console window in days (default 28; Google reports 2\u20133 days late)"],
15057
15083
  ["--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)"],
15084
+ ["--agent ID / --model M / --prompt P", "agent: link one of your agents (claude engine) to the app, or change the app agent's model or prompt"],
15058
15085
  ["--title T", "publish: the site's name (default: the HTML <title> or the folder name)"],
15059
15086
  ["--slug S", "publish: the slug for a NEW site (a-z, 0-9 and hyphens, 3\u201360, not reserved)"],
15060
15087
  ["--site X", "publish: update that house site (slug, id or URL) instead of creating one"]
15061
15088
  ],
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"],
15089
+ 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 agent agenda-perdix create", "ghosty sites agent agenda-perdix --model claude-sonnet-5-5", "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"],
15063
15090
  notes: [
15064
15091
  "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).",
15065
15092
  "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).",
@@ -15754,7 +15781,7 @@ var packPrice = (c, i, lang2) => `$${(PACK[i]?.[c] ?? 0).toLocaleString("en-US")
15754
15781
  var kb = (n) => n ? `${Math.max(1, Math.round(n / 1024))} KB` : "";
15755
15782
  var day = (iso) => iso ? iso.slice(0, 10) : "";
15756
15783
  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>";
15784
+ 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 agent <slug> [--agent id] [--model m] \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>";
15758
15785
  switch (sub ?? "ls") {
15759
15786
  case "ls":
15760
15787
  case "list": {
@@ -15839,6 +15866,24 @@ ${table(r.pinned.map((p) => ({ slug: p.slug, title: (p.title ?? "").slice(0, 40)
15839
15866
  const r = await api(`/api/v2/sites/${encodeURIComponent(a1)}/errors${q.size ? `?${q}` : ""}`);
15840
15867
  return out(r, () => errorsLines(r, t("en", "es") === "es" ? "es" : "en"));
15841
15868
  }
15869
+ case "agent": {
15870
+ if (!a1) throw usage(t("Missing the app (slug, id or URL).", "Falta la app (slug, id o URL)."), "ghosty sites agent <slug> [--agent id] [--model m] [--prompt p]");
15871
+ const path2 = `/api/v2/sites/${encodeURIComponent(a1)}/agent`;
15872
+ const change = v.agent || v.model || v.prompt || a2 === "create" || a2 === "set";
15873
+ if (!change) {
15874
+ const r2 = await api(path2);
15875
+ return out(
15876
+ r2,
15877
+ () => r2.agent ? `${bold(r2.agent.name)} ${dim(`${r2.agent.id} \xB7 ${r2.agent.model ?? ""}`)}
15878
+ ${r2.agent.manageUrl}` : t(`${r2.slug} has no agent yet. Create one (Haiku 5.5): ghosty sites agent ${r2.slug} create`, `${r2.slug} todav\xEDa no tiene agente. Crea uno (Haiku 5.5): ghosty sites agent ${r2.slug} create`)
15879
+ );
15880
+ }
15881
+ const r = await api(path2, { method: "POST", body: { ...v.agent ? { agent: v.agent } : {}, ...v.model ? { model: v.model } : {}, ...v.prompt ? { prompt: v.prompt } : {} } });
15882
+ const what = r.created ? t("Created", "Creado") : r.linked ? t("Linked", "Ligado") : r.changed.length ? t("Updated", "Actualizado") : t("Unchanged", "Sin cambios");
15883
+ return out(r, () => `${lavender("\u2713")} ${what} ${bold(r.name)} ${dim(`${r.agentId} \xB7 ${r.model ?? ""}`)}
15884
+ ${r.manageUrl}${r.warning ? `
15885
+ ${dim(r.warning)}` : ""}`);
15886
+ }
15842
15887
  case "publish":
15843
15888
  case "deploy": {
15844
15889
  if (!a1) throw usage(t("Missing the file or folder.", "Falta el archivo o la carpeta."), ex);
@@ -17465,7 +17510,8 @@ ${bold("Configure an agent")}
17465
17510
  mcp get|set <id> MCP servers [--file servers.json] (http headers accept \${turn.token})
17466
17511
  mcp connect <id> --name N --url U Add one remote MCP by its URL; opens the browser if it asks for OAuth [--from-env VAR: its token] [--no-open]
17467
17512
  channels whatsapp ls|enable|disable <id> [number] Which WhatsApp Business numbers it answers [--dry-run]
17468
- channels whatsapp|messenger connect <id> Opens the agent's Channels page to connect a number or page with Meta (browser sign-in) [--no-open]
17513
+ channels whatsapp connect <id> Starts or resumes connecting a number and gives a link you can open on any screen; run it again to see how it went [--no-open]
17514
+ channels messenger connect <id> Opens the agent's Channels page to connect a page with Meta (browser sign-in) [--no-open]
17469
17515
  channels whatsapp integrations <id> Its owner's WhatsApp Business numbers in Formmy (number, who answers today, who answered last, Integration id) [--orphans: answered by nobody but with turns]
17470
17516
  channels messenger ls <id> The workspace's Messenger pages: who answers now and who answered last [--orphans]
17471
17517
  channels messenger status <id> Each page: who answers, last webhook and token health (asks Meta now)
@@ -17504,6 +17550,7 @@ ${bold("Sites")} ${dim("(sites your agents publish at <slug>.ghosty.page)")}
17504
17550
  sites domain add|verify|rm <slug> <dom> Custom domain for a site or app (DNS record \u2192 verify \u2192 HTTPS) [ls <slug>: list]
17505
17551
  sites show <slug|id> Everything about a site or app: status, domains, variable names, data, files, tasks
17506
17552
  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>)
17553
+ sites agent <slug> [create] The agent inside an app (Haiku 5.5 by default) [--agent id: link yours] [--model m] [--prompt p]
17507
17554
  sites pins Your pinned-sites subscription and slots [--cancel | --resume]
17508
17555
  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]
17509
17556
  sites slug <slug|id> <new-slug> Change a site's slug (staff)
@@ -17547,6 +17594,7 @@ ${bold("Watch pages")} ${dim("(checked without a model turn; the agent only get
17547
17594
  ${bold("Morning brief")} ${dim("(on by default: 7:30 in your chat with a voice note and a push, only when there's something)")}
17548
17595
  brief [show] Is it on, voice, time, days, the last one sent
17549
17596
  brief on|off Turn it on or off [--voice on|off] [--at HH:MM] [--days 1-5|all|0,6]
17597
+ brief pause <days|YYYY-MM-DD> Skip it for a while; it comes back on its own (brief resume removes the pause)
17550
17598
  brief run Send today's now [--dry-run: collect and draft, send nothing] [--email X (staff, with --dry-run)]
17551
17599
 
17552
17600
  ${bold("Teams")}
@@ -17692,7 +17740,8 @@ ${bold("Configurar un agente")}
17692
17740
  mcp get|set <id> Servidores MCP [--file servers.json] (headers http admiten \${turn.token})
17693
17741
  mcp connect <id> --name N --url U Agrega un MCP remoto con su URL; abre el navegador si pide OAuth [--from-env VAR: su token] [--no-open]
17694
17742
  channels whatsapp ls|enable|disable <id> [n\xFAmero] Qu\xE9 n\xFAmeros de WhatsApp Business contesta [--dry-run]
17695
- channels whatsapp|messenger connect <id> Abre la p\xE1gina Canales del agente para conectar un n\xFAmero o una p\xE1gina con Meta (inicio de sesi\xF3n en el navegador) [--no-open]
17743
+ channels whatsapp connect <id> Abre o retoma la conexi\xF3n de un n\xFAmero y da una liga para abrir en cualquier pantalla; c\xF3rrelo otra vez para ver c\xF3mo va [--no-open]
17744
+ channels messenger connect <id> Abre la p\xE1gina Canales del agente para conectar una p\xE1gina con Meta (inicio de sesi\xF3n en el navegador) [--no-open]
17696
17745
  channels whatsapp integrations <id> Los n\xFAmeros de WhatsApp Business de su due\xF1o en Formmy (n\xFAmero, qui\xE9n contesta hoy, qui\xE9n contest\xF3 al \xFAltimo, id de la Integration) [--orphans: sin qui\xE9n conteste pero con turnos]
17697
17746
  channels messenger ls <id> Las p\xE1ginas de Messenger del espacio: qui\xE9n contesta hoy y qui\xE9n contest\xF3 al \xFAltimo [--orphans]
17698
17747
  channels messenger status <id> Cada p\xE1gina: qui\xE9n contesta, \xFAltimo webhook y salud del token (le pregunta a Meta en el momento)
@@ -17731,6 +17780,7 @@ ${bold("Sitios")} ${dim("(los sitios que publican tus agentes en <slug>.ghosty.
17731
17780
  sites domain add|verify|rm <slug> <dom> Dominio propio para un sitio o app (registro DNS \u2192 verificar \u2192 HTTPS) [ls <slug>: lista]
17732
17781
  sites show <slug|id> Todo de un sitio o app: estado, dominios, nombres de variables, datos, archivos, tareas
17733
17782
  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
17783
+ sites agent <slug> [create] El agente dentro de una app (Haiku 5.5 por default) [--agent id: liga uno tuyo] [--model m] [--prompt p]
17734
17784
  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]
17735
17785
  sites slug <slug|id> <slug-nuevo> Cambia el slug de un sitio (staff)
17736
17786
 
@@ -17773,6 +17823,7 @@ ${bold("Vigilar p\xE1ginas")} ${dim("(se revisan sin turno del modelo; el agent
17773
17823
  ${bold("Brief de la ma\xF1ana")} ${dim("(encendido por default: 7:30 en tu chat con nota de voz y un push, s\xF3lo si hay algo)")}
17774
17824
  brief [show] Si est\xE1 prendido, voz, hora, d\xEDas, el \xFAltimo que sali\xF3
17775
17825
  brief on|off Prenderlo o apagarlo [--voice on|off] [--at HH:MM] [--days 1-5|todos|0,6]
17826
+ brief pause <d\xEDas|AAAA-MM-DD> No lo mandes un tiempo; vuelve solo (brief resume quita la pausa)
17776
17827
  brief run M\xE1ndalo ya [--dry-run: junta y redacta, no manda nada] [--email X (staff, con --dry-run)]
17777
17828
 
17778
17829
  ${bold("Teams")}
@@ -18139,7 +18190,7 @@ async function main() {
18139
18190
  const tokens = splitTokens(pos, v);
18140
18191
  globals.token = tokens.session;
18141
18192
  globals.profile = v.profile;
18142
- if (v.version) return out({ version: "0.96.0" }, () => "0.96.0");
18193
+ if (v.version) return out({ version: "0.99.0" }, () => "0.99.0");
18143
18194
  for (const n of normalizeArgs(pos, v)) if (!globals.json) info(dim(n));
18144
18195
  const context = (await readConfig()).workspace;
18145
18196
  if (!explicitToken()?.startsWith("gat_")) {
@@ -18250,7 +18301,8 @@ async function main() {
18250
18301
  case "channels":
18251
18302
  if (a1 === "connect" && ["whatsapp", "wa", "messenger", "fb"].includes(sub ?? "")) {
18252
18303
  if (!a2) throw usage(t("Missing agent id.", "Falta el id del agente."), `ghosty channels ${sub} connect <agent-id>`);
18253
- return openPage(`/app/agents/${encodeURIComponent(a2)}/canales`, sub === "messenger" || sub === "fb" ? t("Connect Messenger (Meta sign-in in your browser)", "Conectar Messenger (inicio de sesi\xF3n de Meta en tu navegador)") : t("Connect WhatsApp Business (Meta sign-in in your browser)", "Conectar WhatsApp Business (inicio de sesi\xF3n de Meta en tu navegador)"), v);
18304
+ if (sub === "whatsapp" || sub === "wa") return whatsappConnectCmd(a2, v);
18305
+ return openPage(`/app/agents/${encodeURIComponent(a2)}/canales`, t("Connect Messenger (Meta sign-in in your browser)", "Conectar Messenger (inicio de sesi\xF3n de Meta en tu navegador)"), v);
18254
18306
  }
18255
18307
  if (a1 === "groups") return groupsCmd(pos.slice(3).filter((x) => x !== void 0), v);
18256
18308
  return channelsCmd(sub, a1, a2, pos.slice(4).join(" ") || void 0, v);
@@ -18277,7 +18329,7 @@ async function main() {
18277
18329
  case "watch":
18278
18330
  return watchCmd(sub, a1, a2, v);
18279
18331
  case "brief":
18280
- return briefCmd(sub, v);
18332
+ return briefCmd(sub, a1, v);
18281
18333
  case "teams":
18282
18334
  return teamsCmd(sub, a1, a2, v);
18283
18335
  case "browser":
@@ -18346,7 +18398,7 @@ async function main() {
18346
18398
  throw unknown(cmd, cmd, COMMANDS, "ghosty --help");
18347
18399
  }
18348
18400
  }
18349
- var notice = updateNotice("0.96.0").catch(() => null);
18401
+ var notice = updateNotice("0.99.0").catch(() => null);
18350
18402
  main().then(
18351
18403
  async () => {
18352
18404
  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.96.0",
3
+ "version": "0.99.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": {