@ghostystudio/cli 0.36.0 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/dist/index.js +247 -174
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -90,7 +90,7 @@ ghosty demos try <slug> "message" ["message 2"…] [--new] [--recycle-between --
|
|
|
90
90
|
ghosty demos history <id> [--since 2d] [--session web:…] [--timeline] [--full] # what demo visitors did (Ghosty staff)
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
-
Global: `--json` (stdout is JSON only), `--token <token>` / `GHOSTY_TOKEN` (a `gat_…` agent token reaches only that agent), `--profile <name>` / `GHOSTY_PROFILE` (a separate saved session, e.g. one per account), `--yes`, `--help`, `--version`. Env: `GHOSTY_URL`, `XDG_CONFIG_HOME`, `NO_COLOR`, `GHOSTY_NO_UPDATE_CHECK`; partner commands sign with `GHOSTY_PARTNER_KEY` + `
|
|
93
|
+
Global: `--json` (stdout is JSON only), `--token <token>` / `GHOSTY_TOKEN` (a `gat_…` agent token reaches only that agent), `--profile <name>` / `GHOSTY_PROFILE` (a separate saved session, e.g. one per account), `--yes`, `--help`, `--version`. Env: `GHOSTY_URL`, `XDG_CONFIG_HOME`, `NO_COLOR`, `GHOSTY_NO_UPDATE_CHECK`; partner commands sign with `GHOSTY_PARTNER_KEY` + `GHOSTY_PARTNER_KEY_SECRET` when set (`GHOSTY_PARTNER_SECRET` is the old name).
|
|
94
94
|
|
|
95
95
|
Aliases: `creds` = `credentials`, `db` = `dbs`, `dbs sql` = `dbs query`.
|
|
96
96
|
|
|
@@ -98,6 +98,12 @@ Every command has its own help with examples: `ghosty <command> --help` or `ghos
|
|
|
98
98
|
|
|
99
99
|
Exit codes: `0` ok · `1` API error · `2` usage error · `3` not signed in.
|
|
100
100
|
|
|
101
|
+
### Changes in 0.38.0
|
|
102
|
+
|
|
103
|
+
- `spaces set <workspace> --model-cap 0.25|1|4|none --house-claude on|off` (staff): the most expensive model a workspace can pick, and whether its agents run on Ghosty's Claude. Both used to be only in /admin/tenants; a trial caps at 0.25 and Claude doesn't fit.
|
|
104
|
+
- `partner credentials create|rotate --out-env PATH`: Node 22 swallows `--env-file` as its own flag (`node: ./.env.partner: not found`) even after the script. `--env-file` still works as an alias where your Node lets it through.
|
|
105
|
+
- Docs and help use one name for the secret: `GHOSTY_PARTNER_KEY_SECRET` (`GHOSTY_PARTNER_SECRET` is the old name and still works).
|
|
106
|
+
|
|
101
107
|
### Changes in 0.35.0
|
|
102
108
|
|
|
103
109
|
- `spaces create <slug> [--dry-run]`: create a workspace of your own from the terminal (trial, same rules as the web form). Then `partner enable <slug>`.
|
|
@@ -143,6 +149,7 @@ Exit codes: `0` ok · `1` API error · `2` usage error · `3` not signed in.
|
|
|
143
149
|
- `partner credentials create|rotate --env-file PATH` (mode 600, nothing printed) or `--format env` (pipe to `fly secrets import`). The secret's env var is now `GHOSTY_PARTNER_KEY_SECRET` (`GHOSTY_PARTNER_SECRET` still works).
|
|
144
150
|
- `partner agent apply --prompt-file prompt.md`; `partner try --verbose` prints each tool's arguments and milliseconds.
|
|
145
151
|
- `partner agent get|apply --agent SLUG` and `partner try --agent SLUG`: several agents per partner (e.g. `nik-admin`, `nik-public`). `channels whatsapp link … --partner-tenant <externalId> --partner-agent <slug>`: a business's WhatsApp Business number answered by that partner agent.
|
|
152
|
+
- `partner waba links ls|create|set|rm`: a business's WhatsApp Business number in Formmy pointed at a partner agent (url + secret, no partner keys).
|
|
146
153
|
- `partner wa groups ls|create|link|unlink`: WhatsApp groups of a partner agent's own number (e.g. `nik-admin`), each linked to a business.
|
|
147
154
|
- Empty `partner ls|credentials ls|tenants ls` say what to do next. `login --device --profile <client>` explains how to sign in a client's account (they approve the link).
|
|
148
155
|
|
package/dist/index.js
CHANGED
|
@@ -32,9 +32,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
32
32
|
mod
|
|
33
33
|
));
|
|
34
34
|
|
|
35
|
-
//
|
|
35
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/identity.js
|
|
36
36
|
var require_identity = __commonJS({
|
|
37
|
-
"
|
|
37
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/identity.js"(exports) {
|
|
38
38
|
"use strict";
|
|
39
39
|
var ALIAS = /* @__PURE__ */ Symbol.for("yaml.alias");
|
|
40
40
|
var DOC = /* @__PURE__ */ Symbol.for("yaml.document");
|
|
@@ -89,9 +89,9 @@ var require_identity = __commonJS({
|
|
|
89
89
|
}
|
|
90
90
|
});
|
|
91
91
|
|
|
92
|
-
//
|
|
92
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/visit.js
|
|
93
93
|
var require_visit = __commonJS({
|
|
94
|
-
"
|
|
94
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/visit.js"(exports) {
|
|
95
95
|
"use strict";
|
|
96
96
|
var identity = require_identity();
|
|
97
97
|
var BREAK = /* @__PURE__ */ Symbol("break visit");
|
|
@@ -247,9 +247,9 @@ var require_visit = __commonJS({
|
|
|
247
247
|
}
|
|
248
248
|
});
|
|
249
249
|
|
|
250
|
-
//
|
|
250
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/directives.js
|
|
251
251
|
var require_directives = __commonJS({
|
|
252
|
-
"
|
|
252
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/directives.js"(exports) {
|
|
253
253
|
"use strict";
|
|
254
254
|
var identity = require_identity();
|
|
255
255
|
var visit = require_visit();
|
|
@@ -418,9 +418,9 @@ var require_directives = __commonJS({
|
|
|
418
418
|
}
|
|
419
419
|
});
|
|
420
420
|
|
|
421
|
-
//
|
|
421
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/anchors.js
|
|
422
422
|
var require_anchors = __commonJS({
|
|
423
|
-
"
|
|
423
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/anchors.js"(exports) {
|
|
424
424
|
"use strict";
|
|
425
425
|
var identity = require_identity();
|
|
426
426
|
var visit = require_visit();
|
|
@@ -488,9 +488,9 @@ var require_anchors = __commonJS({
|
|
|
488
488
|
}
|
|
489
489
|
});
|
|
490
490
|
|
|
491
|
-
//
|
|
491
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js
|
|
492
492
|
var require_applyReviver = __commonJS({
|
|
493
|
-
"
|
|
493
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/applyReviver.js"(exports) {
|
|
494
494
|
"use strict";
|
|
495
495
|
function applyReviver(reviver, obj, key, val) {
|
|
496
496
|
if (val && typeof val === "object") {
|
|
@@ -538,9 +538,9 @@ var require_applyReviver = __commonJS({
|
|
|
538
538
|
}
|
|
539
539
|
});
|
|
540
540
|
|
|
541
|
-
//
|
|
541
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/toJS.js
|
|
542
542
|
var require_toJS = __commonJS({
|
|
543
|
-
"
|
|
543
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/toJS.js"(exports) {
|
|
544
544
|
"use strict";
|
|
545
545
|
var identity = require_identity();
|
|
546
546
|
function toJS(value, arg, ctx) {
|
|
@@ -568,9 +568,9 @@ var require_toJS = __commonJS({
|
|
|
568
568
|
}
|
|
569
569
|
});
|
|
570
570
|
|
|
571
|
-
//
|
|
571
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Node.js
|
|
572
572
|
var require_Node = __commonJS({
|
|
573
|
-
"
|
|
573
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Node.js"(exports) {
|
|
574
574
|
"use strict";
|
|
575
575
|
var applyReviver = require_applyReviver();
|
|
576
576
|
var identity = require_identity();
|
|
@@ -609,9 +609,9 @@ var require_Node = __commonJS({
|
|
|
609
609
|
}
|
|
610
610
|
});
|
|
611
611
|
|
|
612
|
-
//
|
|
612
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Alias.js
|
|
613
613
|
var require_Alias = __commonJS({
|
|
614
|
-
"
|
|
614
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Alias.js"(exports) {
|
|
615
615
|
"use strict";
|
|
616
616
|
var anchors = require_anchors();
|
|
617
617
|
var visit = require_visit();
|
|
@@ -727,9 +727,9 @@ var require_Alias = __commonJS({
|
|
|
727
727
|
}
|
|
728
728
|
});
|
|
729
729
|
|
|
730
|
-
//
|
|
730
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js
|
|
731
731
|
var require_Scalar = __commonJS({
|
|
732
|
-
"
|
|
732
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Scalar.js"(exports) {
|
|
733
733
|
"use strict";
|
|
734
734
|
var identity = require_identity();
|
|
735
735
|
var Node = require_Node();
|
|
@@ -757,9 +757,9 @@ var require_Scalar = __commonJS({
|
|
|
757
757
|
}
|
|
758
758
|
});
|
|
759
759
|
|
|
760
|
-
//
|
|
760
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/createNode.js
|
|
761
761
|
var require_createNode = __commonJS({
|
|
762
|
-
"
|
|
762
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/createNode.js"(exports) {
|
|
763
763
|
"use strict";
|
|
764
764
|
var Alias = require_Alias();
|
|
765
765
|
var identity = require_identity();
|
|
@@ -832,9 +832,9 @@ var require_createNode = __commonJS({
|
|
|
832
832
|
}
|
|
833
833
|
});
|
|
834
834
|
|
|
835
|
-
//
|
|
835
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Collection.js
|
|
836
836
|
var require_Collection = __commonJS({
|
|
837
|
-
"
|
|
837
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Collection.js"(exports) {
|
|
838
838
|
"use strict";
|
|
839
839
|
var createNode = require_createNode();
|
|
840
840
|
var identity = require_identity();
|
|
@@ -975,9 +975,9 @@ var require_Collection = __commonJS({
|
|
|
975
975
|
}
|
|
976
976
|
});
|
|
977
977
|
|
|
978
|
-
//
|
|
978
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js
|
|
979
979
|
var require_stringifyComment = __commonJS({
|
|
980
|
-
"
|
|
980
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyComment.js"(exports) {
|
|
981
981
|
"use strict";
|
|
982
982
|
var stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, "#");
|
|
983
983
|
function indentComment(comment, indent) {
|
|
@@ -992,9 +992,9 @@ var require_stringifyComment = __commonJS({
|
|
|
992
992
|
}
|
|
993
993
|
});
|
|
994
994
|
|
|
995
|
-
//
|
|
995
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js
|
|
996
996
|
var require_foldFlowLines = __commonJS({
|
|
997
|
-
"
|
|
997
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/foldFlowLines.js"(exports) {
|
|
998
998
|
"use strict";
|
|
999
999
|
var FOLD_FLOW = "flow";
|
|
1000
1000
|
var FOLD_BLOCK = "block";
|
|
@@ -1128,9 +1128,9 @@ ${indent}${text.slice(fold + 1, end2)}`;
|
|
|
1128
1128
|
}
|
|
1129
1129
|
});
|
|
1130
1130
|
|
|
1131
|
-
//
|
|
1131
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js
|
|
1132
1132
|
var require_stringifyString = __commonJS({
|
|
1133
|
-
"
|
|
1133
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyString.js"(exports) {
|
|
1134
1134
|
"use strict";
|
|
1135
1135
|
var Scalar = require_Scalar();
|
|
1136
1136
|
var foldFlowLines = require_foldFlowLines();
|
|
@@ -1411,9 +1411,9 @@ ${indent}`);
|
|
|
1411
1411
|
}
|
|
1412
1412
|
});
|
|
1413
1413
|
|
|
1414
|
-
//
|
|
1414
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringify.js
|
|
1415
1415
|
var require_stringify = __commonJS({
|
|
1416
|
-
"
|
|
1416
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringify.js"(exports) {
|
|
1417
1417
|
"use strict";
|
|
1418
1418
|
var anchors = require_anchors();
|
|
1419
1419
|
var identity = require_identity();
|
|
@@ -1535,9 +1535,9 @@ ${ctx.indent}${str}`;
|
|
|
1535
1535
|
}
|
|
1536
1536
|
});
|
|
1537
1537
|
|
|
1538
|
-
//
|
|
1538
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js
|
|
1539
1539
|
var require_stringifyPair = __commonJS({
|
|
1540
|
-
"
|
|
1540
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyPair.js"(exports) {
|
|
1541
1541
|
"use strict";
|
|
1542
1542
|
var identity = require_identity();
|
|
1543
1543
|
var Scalar = require_Scalar();
|
|
@@ -1668,9 +1668,9 @@ ${ctx.indent}`;
|
|
|
1668
1668
|
}
|
|
1669
1669
|
});
|
|
1670
1670
|
|
|
1671
|
-
//
|
|
1671
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/log.js
|
|
1672
1672
|
var require_log = __commonJS({
|
|
1673
|
-
"
|
|
1673
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/log.js"(exports) {
|
|
1674
1674
|
"use strict";
|
|
1675
1675
|
var node_process = __require("process");
|
|
1676
1676
|
function debug(logLevel, ...messages) {
|
|
@@ -1690,9 +1690,9 @@ var require_log = __commonJS({
|
|
|
1690
1690
|
}
|
|
1691
1691
|
});
|
|
1692
1692
|
|
|
1693
|
-
//
|
|
1693
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js
|
|
1694
1694
|
var require_merge = __commonJS({
|
|
1695
|
-
"
|
|
1695
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/merge.js"(exports) {
|
|
1696
1696
|
"use strict";
|
|
1697
1697
|
var identity = require_identity();
|
|
1698
1698
|
var Scalar = require_Scalar();
|
|
@@ -1750,9 +1750,9 @@ var require_merge = __commonJS({
|
|
|
1750
1750
|
}
|
|
1751
1751
|
});
|
|
1752
1752
|
|
|
1753
|
-
//
|
|
1753
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js
|
|
1754
1754
|
var require_addPairToJSMap = __commonJS({
|
|
1755
|
-
"
|
|
1755
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports) {
|
|
1756
1756
|
"use strict";
|
|
1757
1757
|
var log = require_log();
|
|
1758
1758
|
var merge = require_merge();
|
|
@@ -1814,9 +1814,9 @@ var require_addPairToJSMap = __commonJS({
|
|
|
1814
1814
|
}
|
|
1815
1815
|
});
|
|
1816
1816
|
|
|
1817
|
-
//
|
|
1817
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Pair.js
|
|
1818
1818
|
var require_Pair = __commonJS({
|
|
1819
|
-
"
|
|
1819
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/Pair.js"(exports) {
|
|
1820
1820
|
"use strict";
|
|
1821
1821
|
var createNode = require_createNode();
|
|
1822
1822
|
var stringifyPair = require_stringifyPair();
|
|
@@ -1854,9 +1854,9 @@ var require_Pair = __commonJS({
|
|
|
1854
1854
|
}
|
|
1855
1855
|
});
|
|
1856
1856
|
|
|
1857
|
-
//
|
|
1857
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js
|
|
1858
1858
|
var require_stringifyCollection = __commonJS({
|
|
1859
|
-
"
|
|
1859
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyCollection.js"(exports) {
|
|
1860
1860
|
"use strict";
|
|
1861
1861
|
var identity = require_identity();
|
|
1862
1862
|
var stringify = require_stringify();
|
|
@@ -2005,9 +2005,9 @@ ${indent}${end}`;
|
|
|
2005
2005
|
}
|
|
2006
2006
|
});
|
|
2007
2007
|
|
|
2008
|
-
//
|
|
2008
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js
|
|
2009
2009
|
var require_YAMLMap = __commonJS({
|
|
2010
|
-
"
|
|
2010
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLMap.js"(exports) {
|
|
2011
2011
|
"use strict";
|
|
2012
2012
|
var stringifyCollection = require_stringifyCollection();
|
|
2013
2013
|
var addPairToJSMap = require_addPairToJSMap();
|
|
@@ -2149,9 +2149,9 @@ var require_YAMLMap = __commonJS({
|
|
|
2149
2149
|
}
|
|
2150
2150
|
});
|
|
2151
2151
|
|
|
2152
|
-
//
|
|
2152
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/map.js
|
|
2153
2153
|
var require_map = __commonJS({
|
|
2154
|
-
"
|
|
2154
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/map.js"(exports) {
|
|
2155
2155
|
"use strict";
|
|
2156
2156
|
var identity = require_identity();
|
|
2157
2157
|
var YAMLMap = require_YAMLMap();
|
|
@@ -2171,9 +2171,9 @@ var require_map = __commonJS({
|
|
|
2171
2171
|
}
|
|
2172
2172
|
});
|
|
2173
2173
|
|
|
2174
|
-
//
|
|
2174
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js
|
|
2175
2175
|
var require_YAMLSeq = __commonJS({
|
|
2176
|
-
"
|
|
2176
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/nodes/YAMLSeq.js"(exports) {
|
|
2177
2177
|
"use strict";
|
|
2178
2178
|
var createNode = require_createNode();
|
|
2179
2179
|
var stringifyCollection = require_stringifyCollection();
|
|
@@ -2287,9 +2287,9 @@ var require_YAMLSeq = __commonJS({
|
|
|
2287
2287
|
}
|
|
2288
2288
|
});
|
|
2289
2289
|
|
|
2290
|
-
//
|
|
2290
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/seq.js
|
|
2291
2291
|
var require_seq = __commonJS({
|
|
2292
|
-
"
|
|
2292
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/seq.js"(exports) {
|
|
2293
2293
|
"use strict";
|
|
2294
2294
|
var identity = require_identity();
|
|
2295
2295
|
var YAMLSeq = require_YAMLSeq();
|
|
@@ -2309,9 +2309,9 @@ var require_seq = __commonJS({
|
|
|
2309
2309
|
}
|
|
2310
2310
|
});
|
|
2311
2311
|
|
|
2312
|
-
//
|
|
2312
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/string.js
|
|
2313
2313
|
var require_string = __commonJS({
|
|
2314
|
-
"
|
|
2314
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/string.js"(exports) {
|
|
2315
2315
|
"use strict";
|
|
2316
2316
|
var stringifyString = require_stringifyString();
|
|
2317
2317
|
var string = {
|
|
@@ -2328,9 +2328,9 @@ var require_string = __commonJS({
|
|
|
2328
2328
|
}
|
|
2329
2329
|
});
|
|
2330
2330
|
|
|
2331
|
-
//
|
|
2331
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/null.js
|
|
2332
2332
|
var require_null = __commonJS({
|
|
2333
|
-
"
|
|
2333
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/common/null.js"(exports) {
|
|
2334
2334
|
"use strict";
|
|
2335
2335
|
var Scalar = require_Scalar();
|
|
2336
2336
|
var nullTag = {
|
|
@@ -2346,9 +2346,9 @@ var require_null = __commonJS({
|
|
|
2346
2346
|
}
|
|
2347
2347
|
});
|
|
2348
2348
|
|
|
2349
|
-
//
|
|
2349
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/bool.js
|
|
2350
2350
|
var require_bool = __commonJS({
|
|
2351
|
-
"
|
|
2351
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/bool.js"(exports) {
|
|
2352
2352
|
"use strict";
|
|
2353
2353
|
var Scalar = require_Scalar();
|
|
2354
2354
|
var boolTag = {
|
|
@@ -2370,9 +2370,9 @@ var require_bool = __commonJS({
|
|
|
2370
2370
|
}
|
|
2371
2371
|
});
|
|
2372
2372
|
|
|
2373
|
-
//
|
|
2373
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js
|
|
2374
2374
|
var require_stringifyNumber = __commonJS({
|
|
2375
|
-
"
|
|
2375
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyNumber.js"(exports) {
|
|
2376
2376
|
"use strict";
|
|
2377
2377
|
function stringifyNumber({ format, minFractionDigits, tag, value }) {
|
|
2378
2378
|
if (typeof value === "bigint")
|
|
@@ -2397,9 +2397,9 @@ var require_stringifyNumber = __commonJS({
|
|
|
2397
2397
|
}
|
|
2398
2398
|
});
|
|
2399
2399
|
|
|
2400
|
-
//
|
|
2400
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/float.js
|
|
2401
2401
|
var require_float = __commonJS({
|
|
2402
|
-
"
|
|
2402
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/float.js"(exports) {
|
|
2403
2403
|
"use strict";
|
|
2404
2404
|
var Scalar = require_Scalar();
|
|
2405
2405
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -2443,9 +2443,9 @@ var require_float = __commonJS({
|
|
|
2443
2443
|
}
|
|
2444
2444
|
});
|
|
2445
2445
|
|
|
2446
|
-
//
|
|
2446
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/int.js
|
|
2447
2447
|
var require_int = __commonJS({
|
|
2448
|
-
"
|
|
2448
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/int.js"(exports) {
|
|
2449
2449
|
"use strict";
|
|
2450
2450
|
var stringifyNumber = require_stringifyNumber();
|
|
2451
2451
|
var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -2488,9 +2488,9 @@ var require_int = __commonJS({
|
|
|
2488
2488
|
}
|
|
2489
2489
|
});
|
|
2490
2490
|
|
|
2491
|
-
//
|
|
2491
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/schema.js
|
|
2492
2492
|
var require_schema = __commonJS({
|
|
2493
|
-
"
|
|
2493
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/core/schema.js"(exports) {
|
|
2494
2494
|
"use strict";
|
|
2495
2495
|
var map = require_map();
|
|
2496
2496
|
var _null = require_null();
|
|
@@ -2516,9 +2516,9 @@ var require_schema = __commonJS({
|
|
|
2516
2516
|
}
|
|
2517
2517
|
});
|
|
2518
2518
|
|
|
2519
|
-
//
|
|
2519
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/json/schema.js
|
|
2520
2520
|
var require_schema2 = __commonJS({
|
|
2521
|
-
"
|
|
2521
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/json/schema.js"(exports) {
|
|
2522
2522
|
"use strict";
|
|
2523
2523
|
var Scalar = require_Scalar();
|
|
2524
2524
|
var map = require_map();
|
|
@@ -2583,9 +2583,9 @@ var require_schema2 = __commonJS({
|
|
|
2583
2583
|
}
|
|
2584
2584
|
});
|
|
2585
2585
|
|
|
2586
|
-
//
|
|
2586
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js
|
|
2587
2587
|
var require_binary = __commonJS({
|
|
2588
|
-
"
|
|
2588
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/binary.js"(exports) {
|
|
2589
2589
|
"use strict";
|
|
2590
2590
|
var node_buffer = __require("buffer");
|
|
2591
2591
|
var Scalar = require_Scalar();
|
|
@@ -2649,9 +2649,9 @@ var require_binary = __commonJS({
|
|
|
2649
2649
|
}
|
|
2650
2650
|
});
|
|
2651
2651
|
|
|
2652
|
-
//
|
|
2652
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
|
|
2653
2653
|
var require_pairs = __commonJS({
|
|
2654
|
-
"
|
|
2654
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/pairs.js"(exports) {
|
|
2655
2655
|
"use strict";
|
|
2656
2656
|
var identity = require_identity();
|
|
2657
2657
|
var Pair = require_Pair();
|
|
@@ -2727,9 +2727,9 @@ ${cn.comment}` : item.comment;
|
|
|
2727
2727
|
}
|
|
2728
2728
|
});
|
|
2729
2729
|
|
|
2730
|
-
//
|
|
2730
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js
|
|
2731
2731
|
var require_omap = __commonJS({
|
|
2732
|
-
"
|
|
2732
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/omap.js"(exports) {
|
|
2733
2733
|
"use strict";
|
|
2734
2734
|
var identity = require_identity();
|
|
2735
2735
|
var toJS = require_toJS();
|
|
@@ -2805,9 +2805,9 @@ var require_omap = __commonJS({
|
|
|
2805
2805
|
}
|
|
2806
2806
|
});
|
|
2807
2807
|
|
|
2808
|
-
//
|
|
2808
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js
|
|
2809
2809
|
var require_bool2 = __commonJS({
|
|
2810
|
-
"
|
|
2810
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/bool.js"(exports) {
|
|
2811
2811
|
"use strict";
|
|
2812
2812
|
var Scalar = require_Scalar();
|
|
2813
2813
|
function boolStringify({ value, source }, ctx) {
|
|
@@ -2837,9 +2837,9 @@ var require_bool2 = __commonJS({
|
|
|
2837
2837
|
}
|
|
2838
2838
|
});
|
|
2839
2839
|
|
|
2840
|
-
//
|
|
2840
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js
|
|
2841
2841
|
var require_float2 = __commonJS({
|
|
2842
|
-
"
|
|
2842
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/float.js"(exports) {
|
|
2843
2843
|
"use strict";
|
|
2844
2844
|
var Scalar = require_Scalar();
|
|
2845
2845
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -2886,9 +2886,9 @@ var require_float2 = __commonJS({
|
|
|
2886
2886
|
}
|
|
2887
2887
|
});
|
|
2888
2888
|
|
|
2889
|
-
//
|
|
2889
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js
|
|
2890
2890
|
var require_int2 = __commonJS({
|
|
2891
|
-
"
|
|
2891
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/int.js"(exports) {
|
|
2892
2892
|
"use strict";
|
|
2893
2893
|
var stringifyNumber = require_stringifyNumber();
|
|
2894
2894
|
var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -2965,9 +2965,9 @@ var require_int2 = __commonJS({
|
|
|
2965
2965
|
}
|
|
2966
2966
|
});
|
|
2967
2967
|
|
|
2968
|
-
//
|
|
2968
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js
|
|
2969
2969
|
var require_set = __commonJS({
|
|
2970
|
-
"
|
|
2970
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/set.js"(exports) {
|
|
2971
2971
|
"use strict";
|
|
2972
2972
|
var identity = require_identity();
|
|
2973
2973
|
var Pair = require_Pair();
|
|
@@ -3054,9 +3054,9 @@ var require_set = __commonJS({
|
|
|
3054
3054
|
}
|
|
3055
3055
|
});
|
|
3056
3056
|
|
|
3057
|
-
//
|
|
3057
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
|
|
3058
3058
|
var require_timestamp = __commonJS({
|
|
3059
|
-
"
|
|
3059
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js"(exports) {
|
|
3060
3060
|
"use strict";
|
|
3061
3061
|
var stringifyNumber = require_stringifyNumber();
|
|
3062
3062
|
function parseSexagesimal(str, asBigInt) {
|
|
@@ -3142,9 +3142,9 @@ var require_timestamp = __commonJS({
|
|
|
3142
3142
|
}
|
|
3143
3143
|
});
|
|
3144
3144
|
|
|
3145
|
-
//
|
|
3145
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js
|
|
3146
3146
|
var require_schema3 = __commonJS({
|
|
3147
|
-
"
|
|
3147
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/yaml-1.1/schema.js"(exports) {
|
|
3148
3148
|
"use strict";
|
|
3149
3149
|
var map = require_map();
|
|
3150
3150
|
var _null = require_null();
|
|
@@ -3186,9 +3186,9 @@ var require_schema3 = __commonJS({
|
|
|
3186
3186
|
}
|
|
3187
3187
|
});
|
|
3188
3188
|
|
|
3189
|
-
//
|
|
3189
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/tags.js
|
|
3190
3190
|
var require_tags = __commonJS({
|
|
3191
|
-
"
|
|
3191
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/tags.js"(exports) {
|
|
3192
3192
|
"use strict";
|
|
3193
3193
|
var map = require_map();
|
|
3194
3194
|
var _null = require_null();
|
|
@@ -3280,9 +3280,9 @@ var require_tags = __commonJS({
|
|
|
3280
3280
|
}
|
|
3281
3281
|
});
|
|
3282
3282
|
|
|
3283
|
-
//
|
|
3283
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/Schema.js
|
|
3284
3284
|
var require_Schema = __commonJS({
|
|
3285
|
-
"
|
|
3285
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/schema/Schema.js"(exports) {
|
|
3286
3286
|
"use strict";
|
|
3287
3287
|
var identity = require_identity();
|
|
3288
3288
|
var map = require_map();
|
|
@@ -3312,9 +3312,9 @@ var require_Schema = __commonJS({
|
|
|
3312
3312
|
}
|
|
3313
3313
|
});
|
|
3314
3314
|
|
|
3315
|
-
//
|
|
3315
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js
|
|
3316
3316
|
var require_stringifyDocument = __commonJS({
|
|
3317
|
-
"
|
|
3317
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/stringify/stringifyDocument.js"(exports) {
|
|
3318
3318
|
"use strict";
|
|
3319
3319
|
var identity = require_identity();
|
|
3320
3320
|
var stringify = require_stringify();
|
|
@@ -3392,9 +3392,9 @@ var require_stringifyDocument = __commonJS({
|
|
|
3392
3392
|
}
|
|
3393
3393
|
});
|
|
3394
3394
|
|
|
3395
|
-
//
|
|
3395
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/Document.js
|
|
3396
3396
|
var require_Document = __commonJS({
|
|
3397
|
-
"
|
|
3397
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/doc/Document.js"(exports) {
|
|
3398
3398
|
"use strict";
|
|
3399
3399
|
var Alias = require_Alias();
|
|
3400
3400
|
var Collection = require_Collection();
|
|
@@ -3701,9 +3701,9 @@ var require_Document = __commonJS({
|
|
|
3701
3701
|
}
|
|
3702
3702
|
});
|
|
3703
3703
|
|
|
3704
|
-
//
|
|
3704
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/errors.js
|
|
3705
3705
|
var require_errors = __commonJS({
|
|
3706
|
-
"
|
|
3706
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/errors.js"(exports) {
|
|
3707
3707
|
"use strict";
|
|
3708
3708
|
var YAMLError = class extends Error {
|
|
3709
3709
|
constructor(name, pos, code, message) {
|
|
@@ -3766,9 +3766,9 @@ ${pointer}
|
|
|
3766
3766
|
}
|
|
3767
3767
|
});
|
|
3768
3768
|
|
|
3769
|
-
//
|
|
3769
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js
|
|
3770
3770
|
var require_resolve_props = __commonJS({
|
|
3771
|
-
"
|
|
3771
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-props.js"(exports) {
|
|
3772
3772
|
"use strict";
|
|
3773
3773
|
function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
|
|
3774
3774
|
let spaceBefore = false;
|
|
@@ -3900,9 +3900,9 @@ var require_resolve_props = __commonJS({
|
|
|
3900
3900
|
}
|
|
3901
3901
|
});
|
|
3902
3902
|
|
|
3903
|
-
//
|
|
3903
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js
|
|
3904
3904
|
var require_util_contains_newline = __commonJS({
|
|
3905
|
-
"
|
|
3905
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-contains-newline.js"(exports) {
|
|
3906
3906
|
"use strict";
|
|
3907
3907
|
function containsNewline(key) {
|
|
3908
3908
|
if (!key)
|
|
@@ -3942,9 +3942,9 @@ var require_util_contains_newline = __commonJS({
|
|
|
3942
3942
|
}
|
|
3943
3943
|
});
|
|
3944
3944
|
|
|
3945
|
-
//
|
|
3945
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js
|
|
3946
3946
|
var require_util_flow_indent_check = __commonJS({
|
|
3947
|
-
"
|
|
3947
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-flow-indent-check.js"(exports) {
|
|
3948
3948
|
"use strict";
|
|
3949
3949
|
var utilContainsNewline = require_util_contains_newline();
|
|
3950
3950
|
function flowIndentCheck(indent, fc, onError) {
|
|
@@ -3960,9 +3960,9 @@ var require_util_flow_indent_check = __commonJS({
|
|
|
3960
3960
|
}
|
|
3961
3961
|
});
|
|
3962
3962
|
|
|
3963
|
-
//
|
|
3963
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js
|
|
3964
3964
|
var require_util_map_includes = __commonJS({
|
|
3965
|
-
"
|
|
3965
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-map-includes.js"(exports) {
|
|
3966
3966
|
"use strict";
|
|
3967
3967
|
var identity = require_identity();
|
|
3968
3968
|
function mapIncludes(ctx, items, search) {
|
|
@@ -3976,9 +3976,9 @@ var require_util_map_includes = __commonJS({
|
|
|
3976
3976
|
}
|
|
3977
3977
|
});
|
|
3978
3978
|
|
|
3979
|
-
//
|
|
3979
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js
|
|
3980
3980
|
var require_resolve_block_map = __commonJS({
|
|
3981
|
-
"
|
|
3981
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-map.js"(exports) {
|
|
3982
3982
|
"use strict";
|
|
3983
3983
|
var Pair = require_Pair();
|
|
3984
3984
|
var YAMLMap = require_YAMLMap();
|
|
@@ -4084,9 +4084,9 @@ var require_resolve_block_map = __commonJS({
|
|
|
4084
4084
|
}
|
|
4085
4085
|
});
|
|
4086
4086
|
|
|
4087
|
-
//
|
|
4087
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js
|
|
4088
4088
|
var require_resolve_block_seq = __commonJS({
|
|
4089
|
-
"
|
|
4089
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-seq.js"(exports) {
|
|
4090
4090
|
"use strict";
|
|
4091
4091
|
var YAMLSeq = require_YAMLSeq();
|
|
4092
4092
|
var resolveProps = require_resolve_props();
|
|
@@ -4135,9 +4135,9 @@ var require_resolve_block_seq = __commonJS({
|
|
|
4135
4135
|
}
|
|
4136
4136
|
});
|
|
4137
4137
|
|
|
4138
|
-
//
|
|
4138
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js
|
|
4139
4139
|
var require_resolve_end = __commonJS({
|
|
4140
|
-
"
|
|
4140
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-end.js"(exports) {
|
|
4141
4141
|
"use strict";
|
|
4142
4142
|
function resolveEnd(end, offset, reqSpace, onError) {
|
|
4143
4143
|
let comment = "";
|
|
@@ -4178,9 +4178,9 @@ var require_resolve_end = __commonJS({
|
|
|
4178
4178
|
}
|
|
4179
4179
|
});
|
|
4180
4180
|
|
|
4181
|
-
//
|
|
4181
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js
|
|
4182
4182
|
var require_resolve_flow_collection = __commonJS({
|
|
4183
|
-
"
|
|
4183
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-collection.js"(exports) {
|
|
4184
4184
|
"use strict";
|
|
4185
4185
|
var identity = require_identity();
|
|
4186
4186
|
var Pair = require_Pair();
|
|
@@ -4372,9 +4372,9 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
4372
4372
|
}
|
|
4373
4373
|
});
|
|
4374
4374
|
|
|
4375
|
-
//
|
|
4375
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js
|
|
4376
4376
|
var require_compose_collection = __commonJS({
|
|
4377
|
-
"
|
|
4377
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-collection.js"(exports) {
|
|
4378
4378
|
"use strict";
|
|
4379
4379
|
var identity = require_identity();
|
|
4380
4380
|
var Scalar = require_Scalar();
|
|
@@ -4437,9 +4437,9 @@ var require_compose_collection = __commonJS({
|
|
|
4437
4437
|
}
|
|
4438
4438
|
});
|
|
4439
4439
|
|
|
4440
|
-
//
|
|
4440
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js
|
|
4441
4441
|
var require_resolve_block_scalar = __commonJS({
|
|
4442
|
-
"
|
|
4442
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-block-scalar.js"(exports) {
|
|
4443
4443
|
"use strict";
|
|
4444
4444
|
var Scalar = require_Scalar();
|
|
4445
4445
|
function resolveBlockScalar(ctx, scalar, onError) {
|
|
@@ -4620,9 +4620,9 @@ var require_resolve_block_scalar = __commonJS({
|
|
|
4620
4620
|
}
|
|
4621
4621
|
});
|
|
4622
4622
|
|
|
4623
|
-
//
|
|
4623
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js
|
|
4624
4624
|
var require_resolve_flow_scalar = __commonJS({
|
|
4625
|
-
"
|
|
4625
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/resolve-flow-scalar.js"(exports) {
|
|
4626
4626
|
"use strict";
|
|
4627
4627
|
var Scalar = require_Scalar();
|
|
4628
4628
|
var resolveEnd = require_resolve_end();
|
|
@@ -4841,9 +4841,9 @@ var require_resolve_flow_scalar = __commonJS({
|
|
|
4841
4841
|
}
|
|
4842
4842
|
});
|
|
4843
4843
|
|
|
4844
|
-
//
|
|
4844
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js
|
|
4845
4845
|
var require_compose_scalar = __commonJS({
|
|
4846
|
-
"
|
|
4846
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-scalar.js"(exports) {
|
|
4847
4847
|
"use strict";
|
|
4848
4848
|
var identity = require_identity();
|
|
4849
4849
|
var Scalar = require_Scalar();
|
|
@@ -4922,9 +4922,9 @@ var require_compose_scalar = __commonJS({
|
|
|
4922
4922
|
}
|
|
4923
4923
|
});
|
|
4924
4924
|
|
|
4925
|
-
//
|
|
4925
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js
|
|
4926
4926
|
var require_util_empty_scalar_position = __commonJS({
|
|
4927
|
-
"
|
|
4927
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/util-empty-scalar-position.js"(exports) {
|
|
4928
4928
|
"use strict";
|
|
4929
4929
|
function emptyScalarPosition(offset, before, pos) {
|
|
4930
4930
|
if (before) {
|
|
@@ -4952,9 +4952,9 @@ var require_util_empty_scalar_position = __commonJS({
|
|
|
4952
4952
|
}
|
|
4953
4953
|
});
|
|
4954
4954
|
|
|
4955
|
-
//
|
|
4955
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-node.js
|
|
4956
4956
|
var require_compose_node = __commonJS({
|
|
4957
|
-
"
|
|
4957
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-node.js"(exports) {
|
|
4958
4958
|
"use strict";
|
|
4959
4959
|
var Alias = require_Alias();
|
|
4960
4960
|
var identity = require_identity();
|
|
@@ -5058,9 +5058,9 @@ var require_compose_node = __commonJS({
|
|
|
5058
5058
|
}
|
|
5059
5059
|
});
|
|
5060
5060
|
|
|
5061
|
-
//
|
|
5061
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js
|
|
5062
5062
|
var require_compose_doc = __commonJS({
|
|
5063
|
-
"
|
|
5063
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/compose-doc.js"(exports) {
|
|
5064
5064
|
"use strict";
|
|
5065
5065
|
var Document = require_Document();
|
|
5066
5066
|
var composeNode = require_compose_node();
|
|
@@ -5101,9 +5101,9 @@ var require_compose_doc = __commonJS({
|
|
|
5101
5101
|
}
|
|
5102
5102
|
});
|
|
5103
5103
|
|
|
5104
|
-
//
|
|
5104
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/composer.js
|
|
5105
5105
|
var require_composer = __commonJS({
|
|
5106
|
-
"
|
|
5106
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/compose/composer.js"(exports) {
|
|
5107
5107
|
"use strict";
|
|
5108
5108
|
var node_process = __require("process");
|
|
5109
5109
|
var directives = require_directives();
|
|
@@ -5309,9 +5309,9 @@ ${end.comment}` : end.comment;
|
|
|
5309
5309
|
}
|
|
5310
5310
|
});
|
|
5311
5311
|
|
|
5312
|
-
//
|
|
5312
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js
|
|
5313
5313
|
var require_cst_scalar = __commonJS({
|
|
5314
|
-
"
|
|
5314
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-scalar.js"(exports) {
|
|
5315
5315
|
"use strict";
|
|
5316
5316
|
var resolveBlockScalar = require_resolve_block_scalar();
|
|
5317
5317
|
var resolveFlowScalar = require_resolve_flow_scalar();
|
|
@@ -5494,9 +5494,9 @@ var require_cst_scalar = __commonJS({
|
|
|
5494
5494
|
}
|
|
5495
5495
|
});
|
|
5496
5496
|
|
|
5497
|
-
//
|
|
5497
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js
|
|
5498
5498
|
var require_cst_stringify = __commonJS({
|
|
5499
|
-
"
|
|
5499
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-stringify.js"(exports) {
|
|
5500
5500
|
"use strict";
|
|
5501
5501
|
var stringify = (cst) => "type" in cst ? stringifyToken(cst) : stringifyItem(cst);
|
|
5502
5502
|
function stringifyToken(token) {
|
|
@@ -5555,9 +5555,9 @@ var require_cst_stringify = __commonJS({
|
|
|
5555
5555
|
}
|
|
5556
5556
|
});
|
|
5557
5557
|
|
|
5558
|
-
//
|
|
5558
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js
|
|
5559
5559
|
var require_cst_visit = __commonJS({
|
|
5560
|
-
"
|
|
5560
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst-visit.js"(exports) {
|
|
5561
5561
|
"use strict";
|
|
5562
5562
|
var BREAK = /* @__PURE__ */ Symbol("break visit");
|
|
5563
5563
|
var SKIP = /* @__PURE__ */ Symbol("skip children");
|
|
@@ -5617,9 +5617,9 @@ var require_cst_visit = __commonJS({
|
|
|
5617
5617
|
}
|
|
5618
5618
|
});
|
|
5619
5619
|
|
|
5620
|
-
//
|
|
5620
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst.js
|
|
5621
5621
|
var require_cst = __commonJS({
|
|
5622
|
-
"
|
|
5622
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/cst.js"(exports) {
|
|
5623
5623
|
"use strict";
|
|
5624
5624
|
var cstScalar = require_cst_scalar();
|
|
5625
5625
|
var cstStringify = require_cst_stringify();
|
|
@@ -5719,9 +5719,9 @@ var require_cst = __commonJS({
|
|
|
5719
5719
|
}
|
|
5720
5720
|
});
|
|
5721
5721
|
|
|
5722
|
-
//
|
|
5722
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/lexer.js
|
|
5723
5723
|
var require_lexer = __commonJS({
|
|
5724
|
-
"
|
|
5724
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/lexer.js"(exports) {
|
|
5725
5725
|
"use strict";
|
|
5726
5726
|
var cst = require_cst();
|
|
5727
5727
|
function isEmpty(ch) {
|
|
@@ -6308,9 +6308,9 @@ var require_lexer = __commonJS({
|
|
|
6308
6308
|
}
|
|
6309
6309
|
});
|
|
6310
6310
|
|
|
6311
|
-
//
|
|
6311
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/line-counter.js
|
|
6312
6312
|
var require_line_counter = __commonJS({
|
|
6313
|
-
"
|
|
6313
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/line-counter.js"(exports) {
|
|
6314
6314
|
"use strict";
|
|
6315
6315
|
var LineCounter = class {
|
|
6316
6316
|
constructor() {
|
|
@@ -6339,9 +6339,9 @@ var require_line_counter = __commonJS({
|
|
|
6339
6339
|
}
|
|
6340
6340
|
});
|
|
6341
6341
|
|
|
6342
|
-
//
|
|
6342
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/parser.js
|
|
6343
6343
|
var require_parser = __commonJS({
|
|
6344
|
-
"
|
|
6344
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/parse/parser.js"(exports) {
|
|
6345
6345
|
"use strict";
|
|
6346
6346
|
var node_process = __require("process");
|
|
6347
6347
|
var cst = require_cst();
|
|
@@ -7213,9 +7213,9 @@ var require_parser = __commonJS({
|
|
|
7213
7213
|
}
|
|
7214
7214
|
});
|
|
7215
7215
|
|
|
7216
|
-
//
|
|
7216
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/public-api.js
|
|
7217
7217
|
var require_public_api = __commonJS({
|
|
7218
|
-
"
|
|
7218
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/public-api.js"(exports) {
|
|
7219
7219
|
"use strict";
|
|
7220
7220
|
var composer = require_composer();
|
|
7221
7221
|
var Document = require_Document();
|
|
@@ -7310,9 +7310,9 @@ var require_public_api = __commonJS({
|
|
|
7310
7310
|
}
|
|
7311
7311
|
});
|
|
7312
7312
|
|
|
7313
|
-
//
|
|
7313
|
+
// ../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/index.js
|
|
7314
7314
|
var require_dist = __commonJS({
|
|
7315
|
-
"
|
|
7315
|
+
"../../../../../../../../../Users/bliss/ghosty-studio/node_modules/yaml/dist/index.js"(exports) {
|
|
7316
7316
|
"use strict";
|
|
7317
7317
|
var composer = require_composer();
|
|
7318
7318
|
var Document = require_Document();
|
|
@@ -8070,6 +8070,9 @@ var SERVER_MESSAGES = [
|
|
|
8070
8070
|
['el espacio "{}" ya existe', 'workspace "{}" already exists'],
|
|
8071
8071
|
["{} ya tiene {} espacio(s) y su plan permite {}", "{} already owns {} workspace(s) and their plan allows {}"],
|
|
8072
8072
|
["no se pudo crear el espacio", "couldn't create the workspace"],
|
|
8073
|
+
["model-cap: {} | none (el de su plan)", "model-cap: {} | none (its plan's)"],
|
|
8074
|
+
["cambiar el tope de modelo de un espacio: s\xF3lo el staff de Ghosty", "changing a workspace's model cap: Ghosty staff only"],
|
|
8075
|
+
["cambiar la Claude de casa de un espacio: s\xF3lo el staff de Ghosty", "changing a workspace's house Claude: Ghosty staff only"],
|
|
8073
8076
|
["${turn.token} s\xF3lo funciona en motores del pool (claude-worker y similares), no en ACP", "${turn.token} only works on pool engines (claude-worker and similar), not ACP"],
|
|
8074
8077
|
["servers[{}]: ${turn.token} s\xF3lo va en headers de un MCP http (url)", "servers[{}]: ${turn.token} only goes in the headers of an http MCP (url)"],
|
|
8075
8078
|
["turnToken debe ser un string no vac\xEDo", "turnToken must be a non-empty string"],
|
|
@@ -8379,7 +8382,7 @@ async function postLong(path, body, timeoutMs = 9e5) {
|
|
|
8379
8382
|
const req = httpsRequest(`${base}${path}`, {
|
|
8380
8383
|
method: "POST",
|
|
8381
8384
|
timeout: timeoutMs,
|
|
8382
|
-
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.
|
|
8385
|
+
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.38.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
|
|
8383
8386
|
}, (res) => {
|
|
8384
8387
|
let buf = "";
|
|
8385
8388
|
res.on("data", (c) => buf += c);
|
|
@@ -8421,7 +8424,7 @@ async function request(path, opts = {}, retried = false) {
|
|
|
8421
8424
|
method: opts.method ?? (opts.body !== void 0 || opts.raw !== void 0 ? "POST" : "GET"),
|
|
8422
8425
|
headers: {
|
|
8423
8426
|
authorization: `Bearer ${token}`,
|
|
8424
|
-
"user-agent": `ghosty-cli/${"0.
|
|
8427
|
+
"user-agent": `ghosty-cli/${"0.38.0"}`,
|
|
8425
8428
|
"accept-language": lang(),
|
|
8426
8429
|
...opts.body !== void 0 ? { "content-type": "application/json" } : {},
|
|
8427
8430
|
...opts.headers
|
|
@@ -9502,7 +9505,7 @@ ${bold("Partner space")} ${dim("(you, signed in as the space owner)")}
|
|
|
9502
9505
|
partner ls Your partner spaces
|
|
9503
9506
|
partner enable <workspace> Turn one of your spaces into a partner space
|
|
9504
9507
|
partner credentials ls Server credentials (no secrets)
|
|
9505
|
-
partner credentials create [--label L] Issue one \u2014 the secret is shown ONCE [--env
|
|
9508
|
+
partner credentials create [--label L] Issue one \u2014 the secret is shown ONCE [--out-env PATH | --format env]
|
|
9506
9509
|
partner credentials rotate <keyId> [--grace MIN] New secret, same keyId (old one valid MIN, default 60)
|
|
9507
9510
|
partner credentials revoke <keyId> Revoke it (idempotent)
|
|
9508
9511
|
partner audit Who did what, when
|
|
@@ -9523,6 +9526,12 @@ ${bold("WhatsApp groups")} ${dim("(the number of a partner agent, e.g. nik-admi
|
|
|
9523
9526
|
partner wa groups link <jid> --tenant ID --agent SLUG [--off] Link a group the number is already in
|
|
9524
9527
|
partner wa groups unlink <jid> [--agent SLUG] Unlink and turn off (the number stays in the group)
|
|
9525
9528
|
|
|
9529
|
+
${bold("WhatsApp Business")} ${dim("(a business's number in Formmy, answered by a partner agent, e.g. nik-public)")}
|
|
9530
|
+
partner waba links ls [--tenant ID] Numbers, business, agent, on/off
|
|
9531
|
+
partner waba links create --tenant ID --agent SLUG New link (off): prints url + secret for Formmy, ONCE
|
|
9532
|
+
partner waba links set <id> [--integration ID] [--phone N] [--name N] [--on|--off] What Formmy returned; turn on/off
|
|
9533
|
+
partner waba links rm <id> Turn off (history stays)
|
|
9534
|
+
|
|
9526
9535
|
${bold("Try it")}
|
|
9527
9536
|
partner try <externalId> "message" One turn [--agent SLUG] [--group END_USER_ID] [--turn-token SHORT_LIVED_TOKEN] [--verbose: tool args and ms]
|
|
9528
9537
|
(the turn token goes to YOUR MCP as \${turn.token}; --token also works here)
|
|
@@ -9541,7 +9550,7 @@ ${bold("Espacio de partner")} ${dim("(t\xFA, con sesi\xF3n como due\xF1a del es
|
|
|
9541
9550
|
partner ls Tus espacios de partner
|
|
9542
9551
|
partner enable <workspace> Convierte uno de tus espacios en espacio de partner
|
|
9543
9552
|
partner credentials ls Credenciales de servidor (sin secretos)
|
|
9544
|
-
partner credentials create [--label L] Emite una \u2014 el secreto se muestra UNA vez [--env
|
|
9553
|
+
partner credentials create [--label L] Emite una \u2014 el secreto se muestra UNA vez [--out-env RUTA | --format env]
|
|
9545
9554
|
partner credentials rotate <keyId> [--grace MIN] Secreto nuevo, mismo keyId (el viejo vale MIN, default 60)
|
|
9546
9555
|
partner credentials revoke <keyId> La revoca (idempotente)
|
|
9547
9556
|
partner audit Qui\xE9n hizo qu\xE9 y cu\xE1ndo
|
|
@@ -9562,6 +9571,12 @@ ${bold("Grupos de WhatsApp")} ${dim("(el n\xFAmero de un agente de partner, p.
|
|
|
9562
9571
|
partner wa groups link <jid> --tenant ID --agent SLUG [--off] Liga un grupo donde ya est\xE1 el n\xFAmero
|
|
9563
9572
|
partner wa groups unlink <jid> [--agent SLUG] Lo desliga y lo apaga (el n\xFAmero sigue en el grupo)
|
|
9564
9573
|
|
|
9574
|
+
${bold("WhatsApp Business")} ${dim("(el n\xFAmero de un negocio en Formmy, atendido por un agente de partner, p. ej. nik-public)")}
|
|
9575
|
+
partner waba links ls [--tenant ID] N\xFAmeros, negocio, agente, prendido/apagado
|
|
9576
|
+
partner waba links create --tenant ID --agent SLUG Link nuevo (apagado): imprime url + secreto para Formmy, UNA vez
|
|
9577
|
+
partner waba links set <id> [--integration ID] [--phone N] [--name N] [--on|--off] Lo que devolvi\xF3 Formmy; prender/apagar
|
|
9578
|
+
partner waba links rm <id> Apagar (el historial queda)
|
|
9579
|
+
|
|
9565
9580
|
${bold("Pru\xE9balo")}
|
|
9566
9581
|
partner try <externalId> "mensaje" Un turno [--agent SLUG] [--group END_USER_ID] [--turn-token TOKEN_DE_VIDA_CORTA] [--verbose: args y ms de cada tool]
|
|
9567
9582
|
(el token del turno llega a TU MCP como \${turn.token}; --token tambi\xE9n sirve aqu\xED)
|
|
@@ -9595,7 +9610,7 @@ async function call(path, v, init = {}) {
|
|
|
9595
9610
|
"x-ghosty-ts": ts,
|
|
9596
9611
|
"x-ghosty-sig": sig,
|
|
9597
9612
|
"content-type": "application/json",
|
|
9598
|
-
"user-agent": `ghosty-cli/${"0.
|
|
9613
|
+
"user-agent": `ghosty-cli/${"0.38.0"}`
|
|
9599
9614
|
},
|
|
9600
9615
|
body: method === "GET" ? void 0 : raw
|
|
9601
9616
|
});
|
|
@@ -9618,9 +9633,10 @@ var envLines = (r) => `GHOSTY_PARTNER_KEY=${r.keyId}
|
|
|
9618
9633
|
GHOSTY_PARTNER_KEY_SECRET=${r.secret}
|
|
9619
9634
|
`;
|
|
9620
9635
|
async function showSecret(r, v) {
|
|
9621
|
-
|
|
9622
|
-
|
|
9623
|
-
|
|
9636
|
+
const envFile = v["out-env"] ?? v["env-file"];
|
|
9637
|
+
if (envFile) {
|
|
9638
|
+
await writeFile5(envFile, envLines(r), { mode: 384 });
|
|
9639
|
+
return out({ keyId: r.keyId, envFile }, () => `${lavender("\u2713")} ${r.keyId} ${t(`\u2192 ${envFile} (mode 600; the secret was not printed)`, `\u2192 ${envFile} (modo 600; el secreto no se imprimi\xF3)`)}`);
|
|
9624
9640
|
}
|
|
9625
9641
|
if (v.format === "env") return void process.stdout.write(envLines(r));
|
|
9626
9642
|
if (v.format) throw usage(t("--format takes env.", "--format acepta env."));
|
|
@@ -9630,7 +9646,7 @@ async function showSecret(r, v) {
|
|
|
9630
9646
|
`${lavender("\u2713")} ${t("Save these now \u2014 the secret is not shown again:", "Gu\xE1rdalas ya \u2014 el secreto no se vuelve a mostrar:")}`,
|
|
9631
9647
|
` GHOSTY_PARTNER_KEY=${r.keyId}`,
|
|
9632
9648
|
` GHOSTY_PARTNER_KEY_SECRET=${r.secret}`,
|
|
9633
|
-
dim(t(" Next time: --env
|
|
9649
|
+
dim(t(" Next time: --out-env PATH (0600) or --format env | fly secrets import", " La pr\xF3xima: --out-env RUTA (0600) o --format env | fly secrets import"))
|
|
9634
9650
|
].join("\n")
|
|
9635
9651
|
);
|
|
9636
9652
|
}
|
|
@@ -9643,7 +9659,7 @@ async function credentialsCmd(sub, id, v) {
|
|
|
9643
9659
|
() => r.credentials.length ? table(
|
|
9644
9660
|
r.credentials.map((c) => ({ keyId: c.keyId, label: c.label, status: c.status, lastUsed: fmt(c.lastUsedAt), created: fmt(c.createdAt) })),
|
|
9645
9661
|
["keyId", "label", "status", "lastUsed", "created"]
|
|
9646
|
-
) : dim(t("No credentials yet. Run: ghosty partner credentials create --label prod --env
|
|
9662
|
+
) : dim(t("No credentials yet. Run: ghosty partner credentials create --label prod --out-env .env.partner", "Todav\xEDa no hay credenciales. Corre: ghosty partner credentials create --label prod --out-env .env.partner"))
|
|
9647
9663
|
);
|
|
9648
9664
|
}
|
|
9649
9665
|
if (sub === "create" || sub === "new") {
|
|
@@ -9774,6 +9790,43 @@ ${t("Invite", "Invitaci\xF3n")}: ${r.inviteUrl}`);
|
|
|
9774
9790
|
}
|
|
9775
9791
|
throw usage(t(`Unknown wa groups subcommand: ${sub}.`, `Subcomando de wa groups desconocido: ${sub}.`), t("Try", "Prueba") + ": ghosty partner wa groups ls | create | link | unlink");
|
|
9776
9792
|
}
|
|
9793
|
+
async function wabaCmd(what, sub, id, v) {
|
|
9794
|
+
if (what !== "links") throw usage(t("Try: ghosty partner waba links ls", "Prueba: ghosty partner waba links ls"));
|
|
9795
|
+
const base = "/api/v2/partner/waba/links";
|
|
9796
|
+
const row = (l) => ({ id: l.id, business: l.externalId, agent: l.agent ?? "app", number: l.phoneNumber ? `+${l.phoneNumber}` : dim("\u2014"), integration: l.integrationId ?? dim("\u2014"), status: l.enabled ? lavender("on") : dim("off") });
|
|
9797
|
+
const cols = ["id", "business", "agent", "number", "integration", "status"];
|
|
9798
|
+
if (!sub || sub === "ls" || sub === "list") {
|
|
9799
|
+
const r = await json(`${base}${v.tenant ? `?externalId=${enc5(v.tenant)}` : ""}`, v);
|
|
9800
|
+
return out(r, () => r.links.length ? table(r.links.map(row), cols) : dim(t("No links. Create one: ghosty partner waba links create --tenant <id> --agent nik-public", "Sin links. Crea uno: ghosty partner waba links create --tenant <id> --agent nik-public")));
|
|
9801
|
+
}
|
|
9802
|
+
if (sub === "create") {
|
|
9803
|
+
if (!v.tenant || !v.agent) throw usage(t("Missing --tenant or --agent.", "Falta --tenant o --agent."), `${t("Example", "Ejemplo")}: ghosty partner waba links create --tenant org_123 --agent nik-public`);
|
|
9804
|
+
const r = await json(base, v, { method: "POST", body: { externalId: v.tenant, agent: v.agent } });
|
|
9805
|
+
return out(
|
|
9806
|
+
r,
|
|
9807
|
+
() => [
|
|
9808
|
+
`${lavender("\u2713")} ${t("Link created (off)", "Link creado (apagado)")}: ${r.id}`,
|
|
9809
|
+
`url: ${r.url}`,
|
|
9810
|
+
`secret: ${r.secret}`,
|
|
9811
|
+
dim(t("Give both to Formmy (externalAgentUrl / externalAgentSecret). The secret is not shown again.", "Dale los dos a Formmy (externalAgentUrl / externalAgentSecret). El secreto no se vuelve a ense\xF1ar.")),
|
|
9812
|
+
dim(`${t("Then", "Despu\xE9s")}: ghosty partner waba links set ${r.id} --integration <formmy-id> --on`)
|
|
9813
|
+
].join("\n")
|
|
9814
|
+
);
|
|
9815
|
+
}
|
|
9816
|
+
if (!id) throw usage(t("Missing the link id.", "Falta el id del link."), `${t("See them", "Velos")}: ghosty partner waba links ls`);
|
|
9817
|
+
if (sub === "set") {
|
|
9818
|
+
if (v.on && v.off) throw usage(t("--on or --off, not both.", "--on o --off, no los dos."));
|
|
9819
|
+
const body = { ...v.integration ? { integrationId: v.integration } : {}, ...v.phone ? { phoneNumber: v.phone } : {}, ...v.name ? { displayName: v.name } : {}, ...v.on ? { enabled: true } : v.off ? { enabled: false } : {} };
|
|
9820
|
+
if (!Object.keys(body).length) throw usage(t("Nothing to change.", "Nada que cambiar."), "--integration ID --phone N --name N --on|--off");
|
|
9821
|
+
const r = await json(`${base}/${enc5(id)}`, v, { method: "PUT", body });
|
|
9822
|
+
return out(r, () => table([row(r.link)], cols));
|
|
9823
|
+
}
|
|
9824
|
+
if (sub === "rm" || sub === "off") {
|
|
9825
|
+
const r = await json(`${base}/${enc5(id)}`, v, { method: "DELETE" });
|
|
9826
|
+
return out(r, () => `${lavender("\u2713")} ${t("Off: it records and doesn't answer.", "Apagado: registra y no contesta.")}`);
|
|
9827
|
+
}
|
|
9828
|
+
throw usage(t(`Unknown waba links subcommand: ${sub}.`, `Subcomando de waba links desconocido: ${sub}.`), t("Try", "Prueba") + ": ghosty partner waba links ls | create | set | rm");
|
|
9829
|
+
}
|
|
9777
9830
|
async function partnerCmd(sub, a1, a2, v, a3) {
|
|
9778
9831
|
switch (sub) {
|
|
9779
9832
|
case void 0:
|
|
@@ -9804,6 +9857,8 @@ async function partnerCmd(sub, a1, a2, v, a3) {
|
|
|
9804
9857
|
return tryCmd(a1, a2, v);
|
|
9805
9858
|
case "wa":
|
|
9806
9859
|
return waCmd(a1, a2, a3, v);
|
|
9860
|
+
case "waba":
|
|
9861
|
+
return wabaCmd(a1, a2, a3, v);
|
|
9807
9862
|
default:
|
|
9808
9863
|
throw usage(t(`Unknown partner subcommand: ${sub}.`, `Subcomando de partner desconocido: ${sub}.`), t("Run", "Corre") + ": ghosty partner --help");
|
|
9809
9864
|
}
|
|
@@ -11214,6 +11269,8 @@ var HELPS_ES = {
|
|
|
11214
11269
|
flags: [
|
|
11215
11270
|
["--user EMAIL", "ls (staff): los espacios de esa persona"],
|
|
11216
11271
|
["--combo C", "set (staff): teams | sales | both \u2014 sin Ventas sus tableros existen pero nadie los ve; create: distinto de teams, s\xF3lo staff"],
|
|
11272
|
+
["--model-cap X", "set (staff): el modelo m\xE1s caro que puede elegir el espacio \u2014 0.25 econ\xF3micos, 1 est\xE1ndar (Sonnet), 4 todos; none = el de su plan"],
|
|
11273
|
+
["--house-claude on|off", "set (staff): sus agentes corren con la Claude de Ghosty si el due\xF1o no trae llave; recicla sus cajas de Claude"],
|
|
11217
11274
|
["--until DATE", "renew: el nuevo \xABpagado hasta\xBB (AAAA-MM-DD)"],
|
|
11218
11275
|
["--note TEXT", "renew: por qu\xE9 (va a la bit\xE1cora)"],
|
|
11219
11276
|
["-n, --dry-run", "ense\xF1a qu\xE9 cambia, no cambia nada"],
|
|
@@ -11784,16 +11841,18 @@ HELPS.novedades = {
|
|
|
11784
11841
|
};
|
|
11785
11842
|
HELPS.spaces = {
|
|
11786
11843
|
summary: "Workspaces: create one of your own (trial), list yours (or, staff, anyone's), and Ghosty staff operations \u2014 join/leave a client's workspace, change its combo, move \xABpaid until\xBB, rename its slug. Each change is logged in the workspace's audit.",
|
|
11787
|
-
usage: ["ghosty spaces ls [--user EMAIL]", "ghosty spaces create <slug> [--combo teams|sales|both] [--dry-run]", "ghosty spaces join|leave <workspace>", "ghosty spaces set <workspace> --combo teams|sales|both [--dry-run]", "ghosty spaces renew <workspace> --until YYYY-MM-DD [--note TEXT] [--dry-run] [--yes]", "ghosty spaces rename <old> <new> [--dry-run] [--yes]"],
|
|
11844
|
+
usage: ["ghosty spaces ls [--user EMAIL]", "ghosty spaces create <slug> [--combo teams|sales|both] [--dry-run]", "ghosty spaces join|leave <workspace>", "ghosty spaces set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off [--dry-run]", "ghosty spaces renew <workspace> --until YYYY-MM-DD [--note TEXT] [--dry-run] [--yes]", "ghosty spaces rename <old> <new> [--dry-run] [--yes]"],
|
|
11788
11845
|
flags: [
|
|
11789
11846
|
["--user EMAIL", "ls (staff): that person's workspaces"],
|
|
11790
11847
|
["--combo C", "set (staff): teams | sales | both \u2014 without Sales its boards exist but nobody sees them; create: other than teams, staff only"],
|
|
11848
|
+
["--model-cap X", "set (staff): the most expensive model the workspace can pick \u2014 0.25 economy, 1 standard (Sonnet), 4 everything; none = its plan's"],
|
|
11849
|
+
["--house-claude on|off", "set (staff): its agents run on Ghosty's Claude when the owner brings no key; recycles their Claude boxes"],
|
|
11791
11850
|
["--until DATE", "renew: the new \xABpaid until\xBB (YYYY-MM-DD)"],
|
|
11792
11851
|
["--note TEXT", "renew: why (goes into the audit)"],
|
|
11793
11852
|
["-n, --dry-run", "show what changes, change nothing"],
|
|
11794
11853
|
["--yes", "skip the confirmation (required without a terminal)"]
|
|
11795
11854
|
],
|
|
11796
|
-
examples: ["ghosty spaces ls", "ghosty spaces create mailmask --dry-run", "ghosty spaces ls --user brenda@siiqtec.com", "ghosty spaces join denik", "ghosty spaces set denik --combo sales --dry-run", 'ghosty spaces renew descti --until 2026-11-01 --note "pag\xF3 octubre"', "ghosty spaces rename totequim siiqtec --dry-run"],
|
|
11855
|
+
examples: ["ghosty spaces ls", "ghosty spaces create mailmask --dry-run", "ghosty spaces ls --user brenda@siiqtec.com", "ghosty spaces join denik", "ghosty spaces set denik --combo sales --dry-run", "ghosty spaces set mailmask --model-cap 4 --house-claude on", 'ghosty spaces renew descti --until 2026-11-01 --note "pag\xF3 octubre"', "ghosty spaces rename totequim siiqtec --dry-run"],
|
|
11797
11856
|
notes: ["create follows the same rules as the web: you own it, it starts as a 30-day trial, your email must be confirmed, and your plan caps how many you own. Next: ghosty partner enable <slug>.", "With a Stripe subscription renew refuses: the paid invoice moves the date.", "rename changes only the slug (id and namespace stay, so board, Stripe and WhatsApp keep working); old <slug>.sales links stop working."],
|
|
11798
11857
|
learn: `${REF}#espacios`
|
|
11799
11858
|
};
|
|
@@ -12279,7 +12338,7 @@ ${bagsText(r)}`);
|
|
|
12279
12338
|
}
|
|
12280
12339
|
}
|
|
12281
12340
|
async function spacesCmd(sub, slug, arg, v, context) {
|
|
12282
|
-
const ex = "ghosty spaces ls [--user EMAIL] \xB7 create <slug> [--combo teams|sales|both] [--dry-run] \xB7 join|leave <workspace> \xB7 set <workspace> --combo teams|sales|both \xB7 renew <workspace> --until 2026-11-01 [--note TEXT] \xB7 rename <old> <new> [--dry-run]";
|
|
12341
|
+
const ex = "ghosty spaces ls [--user EMAIL] \xB7 create <slug> [--combo teams|sales|both] [--dry-run] \xB7 join|leave <workspace> \xB7 set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off \xB7 renew <workspace> --until 2026-11-01 [--note TEXT] \xB7 rename <old> <new> [--dry-run]";
|
|
12283
12342
|
if (!sub || sub === "ls" || sub === "list") {
|
|
12284
12343
|
const r = await api(`/api/v2/workspaces${v.user ? `?user=${enc10(v.user)}` : ""}`);
|
|
12285
12344
|
const rows = r.workspaces.map((w) => ({ workspace: w.slug, role: w.role ?? "", plan: w.plan, combo: w.combo, owner: w.owner ?? "", paid: w.paidUntil ?? "" }));
|
|
@@ -12301,19 +12360,28 @@ ${dim(t(`Next: ghosty use ${r.workspace} \xB7 ghosty partner enable ${r.workspac
|
|
|
12301
12360
|
return out(r, () => `${lavender("\u2713")} ${r.joined ? t(`You're in ${r.workspace} as staff (no seat; logged). Leave: ghosty spaces leave ${r.workspace}`, `Entraste a ${r.workspace} como staff (sin asiento; queda en bit\xE1cora). Salir: ghosty spaces leave ${r.workspace}`) : t(`You left ${r.workspace}.`, `Saliste de ${r.workspace}.`)}`);
|
|
12302
12361
|
}
|
|
12303
12362
|
if (sub === "set") {
|
|
12304
|
-
slug = needSpace(slug ?? context, "ghosty spaces set <workspace> --combo sales");
|
|
12305
|
-
|
|
12306
|
-
const
|
|
12307
|
-
|
|
12308
|
-
const
|
|
12309
|
-
if (
|
|
12310
|
-
if (
|
|
12363
|
+
slug = needSpace(slug ?? context, "ghosty spaces set <workspace> --combo sales | --model-cap 4");
|
|
12364
|
+
const cap = v["model-cap"];
|
|
12365
|
+
const house = parseSwitch("--house-claude", v["house-claude"]);
|
|
12366
|
+
if (!v.combo && cap === void 0 && house === void 0) throw usage(t("Nothing to change.", "Nada que cambiar."), "--combo teams|sales|both \xB7 --model-cap 0.25|1|4|none \xB7 --house-claude on|off");
|
|
12367
|
+
const steps = [];
|
|
12368
|
+
if (v.combo) steps.push({ label: "combo", path: wsPath(slug, "/combo"), body: { combo: v.combo } });
|
|
12369
|
+
if (cap !== void 0) steps.push({ label: "model-cap", path: wsPath(slug, "/model-cap"), body: { cap } });
|
|
12370
|
+
if (house !== void 0) steps.push({ label: "house-claude", path: wsPath(slug, "/house-claude"), body: { on: house } });
|
|
12371
|
+
const show = (x) => x === null ? t("plan's", "el del plan") : x === true ? "on" : x === false ? "off" : String(x);
|
|
12372
|
+
const plans = await Promise.all(steps.map(async (st) => ({ ...st, plan: await api(st.path, { method: "POST", body: { ...st.body, dryRun: true } }) })));
|
|
12373
|
+
const lines = plans.map((p) => `${p.plan.workspace}: ${p.label} ${show(p.plan.from)} \u2192 ${show(p.plan.to)}`);
|
|
12374
|
+
const pending = plans.filter((p) => p.plan.changed);
|
|
12375
|
+
if (!pending.length) return out(plans.map((p) => p.plan), () => dim(t(`Nothing to do: ${slug} already has that.`, `Nada que hacer: ${slug} ya lo tiene.`)));
|
|
12376
|
+
if (v["dry-run"]) return out(plans.map((p) => p.plan), () => `${lines.join("\n")}
|
|
12311
12377
|
${dim(t("Dry run: nothing changed.", "Simulaci\xF3n: no cambi\xF3 nada."))}`);
|
|
12312
|
-
|
|
12313
|
-
|
|
12314
|
-
|
|
12315
|
-
|
|
12316
|
-
|
|
12378
|
+
const retry = `ghosty spaces set ${slug}${v.combo ? ` --combo ${v.combo}` : ""}${cap !== void 0 ? ` --model-cap ${cap}` : ""}${house !== void 0 ? ` --house-claude ${house ? "on" : "off"}` : ""}`;
|
|
12379
|
+
requireYesIfHeadless(v.yes, retry);
|
|
12380
|
+
await confirm(`${lines.join("\n")}
|
|
12381
|
+
${t("Change it?", "\xBFCambiarlo?")}`, { yes: v.yes, retry });
|
|
12382
|
+
const done = [];
|
|
12383
|
+
for (const p of pending) done.push(await api(p.path, { method: "POST", body: p.body }));
|
|
12384
|
+
return out(done, () => done.map((r, i) => `${lavender("\u2713")} ${r.workspace}: ${pending[i].label} ${show(r.to)}`).join("\n"));
|
|
12317
12385
|
}
|
|
12318
12386
|
if (sub === "renew") {
|
|
12319
12387
|
slug = needSpace(slug ?? context, ex);
|
|
@@ -12733,7 +12801,7 @@ ${bold("Workspaces")} ${dim("(changing them: Ghosty staff)")}
|
|
|
12733
12801
|
spaces ls Your workspaces (role, plan, combo) [--user EMAIL: someone else's]
|
|
12734
12802
|
spaces create <slug> New workspace owned by you (trial) [--combo teams|sales|both: staff] [--dry-run]
|
|
12735
12803
|
spaces join|leave <workspace> Enter or leave a client's workspace as staff (no seat; logged)
|
|
12736
|
-
spaces set <workspace> --combo sales teams | sales | both (without Sales its boards are invisible)
|
|
12804
|
+
spaces set <workspace> --combo sales teams | sales | both (without Sales its boards are invisible) [--model-cap 0.25|1|4|none: most expensive model] [--house-claude on|off]
|
|
12737
12805
|
spaces renew <workspace> --until DATE Move \xABpaid until\xBB (logged) [--note] [--dry-run]
|
|
12738
12806
|
spaces rename <old> <new> Change its slug only [--dry-run]
|
|
12739
12807
|
|
|
@@ -12862,7 +12930,7 @@ ${bold("Espacios")} ${dim("(cambiarlos: staff de Ghosty)")}
|
|
|
12862
12930
|
spaces ls Tus espacios (rol, plan, combo) [--user CORREO: los de alguien m\xE1s]
|
|
12863
12931
|
spaces create <slug> Espacio nuevo a tu nombre (trial) [--combo teams|sales|both: staff] [--dry-run]
|
|
12864
12932
|
spaces join|leave <espacio> Entra o sal del espacio de un cliente como staff (sin asiento; queda en bit\xE1cora)
|
|
12865
|
-
spaces set <espacio> --combo sales teams | sales | both (sin Ventas sus tableros no se ven)
|
|
12933
|
+
spaces set <espacio> --combo sales teams | sales | both (sin Ventas sus tableros no se ven) [--model-cap 0.25|1|4|none: el modelo m\xE1s caro] [--house-claude on|off]
|
|
12866
12934
|
spaces renew <espacio> --until FECHA Mueve \xABpagado hasta\xBB (queda en bit\xE1cora) [--note] [--dry-run]
|
|
12867
12935
|
spaces rename <viejo> <nuevo> Cambia s\xF3lo su slug [--dry-run]
|
|
12868
12936
|
|
|
@@ -13168,6 +13236,8 @@ async function main() {
|
|
|
13168
13236
|
"only-ads": { type: "boolean" },
|
|
13169
13237
|
phones: { type: "string" },
|
|
13170
13238
|
combo: { type: "string" },
|
|
13239
|
+
"model-cap": { type: "string" },
|
|
13240
|
+
"house-claude": { type: "string" },
|
|
13171
13241
|
app: { type: "string" },
|
|
13172
13242
|
images: { type: "boolean" },
|
|
13173
13243
|
plan: { type: "string" },
|
|
@@ -13180,7 +13250,10 @@ async function main() {
|
|
|
13180
13250
|
timeline: { type: "boolean" },
|
|
13181
13251
|
new: { type: "boolean" },
|
|
13182
13252
|
"recycle-between": { type: "boolean" },
|
|
13183
|
-
"env-file": { type: "string" }
|
|
13253
|
+
"env-file": { type: "string" },
|
|
13254
|
+
// Node 22 se come `--env-file` aunque vaya después del script («node: ./x: not found»): el
|
|
13255
|
+
// nombre bueno es `--out-env`; `--env-file` queda como alias para quien lo corra con otro node.
|
|
13256
|
+
"out-env": { type: "string" }
|
|
13184
13257
|
}
|
|
13185
13258
|
});
|
|
13186
13259
|
globals.json = Boolean(v.json);
|
|
@@ -13188,7 +13261,7 @@ async function main() {
|
|
|
13188
13261
|
const tokens = splitTokens(pos, v);
|
|
13189
13262
|
globals.token = tokens.session;
|
|
13190
13263
|
globals.profile = v.profile;
|
|
13191
|
-
if (v.version) return out({ version: "0.
|
|
13264
|
+
if (v.version) return out({ version: "0.38.0" }, () => "0.38.0");
|
|
13192
13265
|
for (const n of normalizeArgs(pos, v)) if (!globals.json) info(dim(n));
|
|
13193
13266
|
const context = (await readConfig()).workspace;
|
|
13194
13267
|
if (!explicitToken()?.startsWith("gat_")) {
|
|
@@ -13337,7 +13410,7 @@ async function main() {
|
|
|
13337
13410
|
throw unknown(cmd, cmd, COMMANDS, "ghosty --help");
|
|
13338
13411
|
}
|
|
13339
13412
|
}
|
|
13340
|
-
var notice = updateNotice("0.
|
|
13413
|
+
var notice = updateNotice("0.38.0").catch(() => null);
|
|
13341
13414
|
main().then(
|
|
13342
13415
|
async () => {
|
|
13343
13416
|
const n = await notice;
|
package/package.json
CHANGED