@marcusrbrown/infra 0.15.4 → 0.19.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/dist/cli.js +252 -151
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -4,7 +4,7 @@ var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports,
|
|
|
4
4
|
var __require = import.meta.require;
|
|
5
5
|
|
|
6
6
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/identity.js
|
|
7
|
-
var require_identity = __commonJS((exports)
|
|
7
|
+
var require_identity = __commonJS(function(exports) {
|
|
8
8
|
var ALIAS = Symbol.for("yaml.alias");
|
|
9
9
|
var DOC = Symbol.for("yaml.document");
|
|
10
10
|
var MAP = Symbol.for("yaml.map");
|
|
@@ -58,7 +58,7 @@ var require_identity = __commonJS((exports) => {
|
|
|
58
58
|
});
|
|
59
59
|
|
|
60
60
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/visit.js
|
|
61
|
-
var require_visit = __commonJS((exports)
|
|
61
|
+
var require_visit = __commonJS(function(exports) {
|
|
62
62
|
var identity = require_identity();
|
|
63
63
|
var BREAK = Symbol("break visit");
|
|
64
64
|
var SKIP = Symbol("skip children");
|
|
@@ -213,7 +213,7 @@ var require_visit = __commonJS((exports) => {
|
|
|
213
213
|
});
|
|
214
214
|
|
|
215
215
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/directives.js
|
|
216
|
-
var require_directives = __commonJS((exports)
|
|
216
|
+
var require_directives = __commonJS(function(exports) {
|
|
217
217
|
var identity = require_identity();
|
|
218
218
|
var visit = require_visit();
|
|
219
219
|
var escapeChars = {
|
|
@@ -365,7 +365,7 @@ var require_directives = __commonJS((exports) => {
|
|
|
365
365
|
});
|
|
366
366
|
|
|
367
367
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/anchors.js
|
|
368
|
-
var require_anchors = __commonJS((exports)
|
|
368
|
+
var require_anchors = __commonJS(function(exports) {
|
|
369
369
|
var identity = require_identity();
|
|
370
370
|
var visit = require_visit();
|
|
371
371
|
function anchorIsValid(anchor) {
|
|
@@ -427,7 +427,7 @@ var require_anchors = __commonJS((exports) => {
|
|
|
427
427
|
});
|
|
428
428
|
|
|
429
429
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/applyReviver.js
|
|
430
|
-
var require_applyReviver = __commonJS((exports)
|
|
430
|
+
var require_applyReviver = __commonJS(function(exports) {
|
|
431
431
|
function applyReviver(reviver, obj, key, val) {
|
|
432
432
|
if (val && typeof val === "object") {
|
|
433
433
|
if (Array.isArray(val)) {
|
|
@@ -474,7 +474,7 @@ var require_applyReviver = __commonJS((exports) => {
|
|
|
474
474
|
});
|
|
475
475
|
|
|
476
476
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/toJS.js
|
|
477
|
-
var require_toJS = __commonJS((exports)
|
|
477
|
+
var require_toJS = __commonJS(function(exports) {
|
|
478
478
|
var identity = require_identity();
|
|
479
479
|
function toJS(value, arg, ctx) {
|
|
480
480
|
if (Array.isArray(value))
|
|
@@ -501,7 +501,7 @@ var require_toJS = __commonJS((exports) => {
|
|
|
501
501
|
});
|
|
502
502
|
|
|
503
503
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Node.js
|
|
504
|
-
var require_Node = __commonJS((exports)
|
|
504
|
+
var require_Node = __commonJS(function(exports) {
|
|
505
505
|
var applyReviver = require_applyReviver();
|
|
506
506
|
var identity = require_identity();
|
|
507
507
|
var toJS = require_toJS();
|
|
@@ -538,7 +538,7 @@ var require_Node = __commonJS((exports) => {
|
|
|
538
538
|
});
|
|
539
539
|
|
|
540
540
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Alias.js
|
|
541
|
-
var require_Alias = __commonJS((exports)
|
|
541
|
+
var require_Alias = __commonJS(function(exports) {
|
|
542
542
|
var anchors = require_anchors();
|
|
543
543
|
var visit = require_visit();
|
|
544
544
|
var identity = require_identity();
|
|
@@ -648,7 +648,7 @@ var require_Alias = __commonJS((exports) => {
|
|
|
648
648
|
});
|
|
649
649
|
|
|
650
650
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Scalar.js
|
|
651
|
-
var require_Scalar = __commonJS((exports)
|
|
651
|
+
var require_Scalar = __commonJS(function(exports) {
|
|
652
652
|
var identity = require_identity();
|
|
653
653
|
var Node = require_Node();
|
|
654
654
|
var toJS = require_toJS();
|
|
@@ -676,7 +676,7 @@ var require_Scalar = __commonJS((exports) => {
|
|
|
676
676
|
});
|
|
677
677
|
|
|
678
678
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/createNode.js
|
|
679
|
-
var require_createNode = __commonJS((exports)
|
|
679
|
+
var require_createNode = __commonJS(function(exports) {
|
|
680
680
|
var Alias = require_Alias();
|
|
681
681
|
var identity = require_identity();
|
|
682
682
|
var Scalar = require_Scalar();
|
|
@@ -748,7 +748,7 @@ var require_createNode = __commonJS((exports) => {
|
|
|
748
748
|
});
|
|
749
749
|
|
|
750
750
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Collection.js
|
|
751
|
-
var require_Collection = __commonJS((exports)
|
|
751
|
+
var require_Collection = __commonJS(function(exports) {
|
|
752
752
|
var createNode = require_createNode();
|
|
753
753
|
var identity = require_identity();
|
|
754
754
|
var Node = require_Node();
|
|
@@ -863,7 +863,7 @@ var require_Collection = __commonJS((exports) => {
|
|
|
863
863
|
});
|
|
864
864
|
|
|
865
865
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyComment.js
|
|
866
|
-
var require_stringifyComment = __commonJS((exports)
|
|
866
|
+
var require_stringifyComment = __commonJS(function(exports) {
|
|
867
867
|
var stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, "#");
|
|
868
868
|
function indentComment(comment, indent) {
|
|
869
869
|
if (/^\n+$/.test(comment))
|
|
@@ -880,7 +880,7 @@ var require_stringifyComment = __commonJS((exports) => {
|
|
|
880
880
|
});
|
|
881
881
|
|
|
882
882
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/foldFlowLines.js
|
|
883
|
-
var require_foldFlowLines = __commonJS((exports)
|
|
883
|
+
var require_foldFlowLines = __commonJS(function(exports) {
|
|
884
884
|
var FOLD_FLOW = "flow";
|
|
885
885
|
var FOLD_BLOCK = "block";
|
|
886
886
|
var FOLD_QUOTED = "quoted";
|
|
@@ -1017,7 +1017,7 @@ ${indent}${text.slice(fold + 1, end2)}`;
|
|
|
1017
1017
|
});
|
|
1018
1018
|
|
|
1019
1019
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyString.js
|
|
1020
|
-
var require_stringifyString = __commonJS((exports)
|
|
1020
|
+
var require_stringifyString = __commonJS(function(exports) {
|
|
1021
1021
|
var Scalar = require_Scalar();
|
|
1022
1022
|
var foldFlowLines = require_foldFlowLines();
|
|
1023
1023
|
var getFoldOptions = (ctx, isBlock) => ({
|
|
@@ -1315,7 +1315,7 @@ ${indent}`);
|
|
|
1315
1315
|
});
|
|
1316
1316
|
|
|
1317
1317
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringify.js
|
|
1318
|
-
var require_stringify = __commonJS((exports)
|
|
1318
|
+
var require_stringify = __commonJS(function(exports) {
|
|
1319
1319
|
var anchors = require_anchors();
|
|
1320
1320
|
var identity = require_identity();
|
|
1321
1321
|
var stringifyComment = require_stringifyComment();
|
|
@@ -1436,7 +1436,7 @@ ${ctx.indent}${str}`;
|
|
|
1436
1436
|
});
|
|
1437
1437
|
|
|
1438
1438
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyPair.js
|
|
1439
|
-
var require_stringifyPair = __commonJS((exports)
|
|
1439
|
+
var require_stringifyPair = __commonJS(function(exports) {
|
|
1440
1440
|
var identity = require_identity();
|
|
1441
1441
|
var Scalar = require_Scalar();
|
|
1442
1442
|
var stringify = require_stringify();
|
|
@@ -1572,7 +1572,7 @@ ${ctx.indent}`;
|
|
|
1572
1572
|
});
|
|
1573
1573
|
|
|
1574
1574
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/log.js
|
|
1575
|
-
var require_log = __commonJS((exports)
|
|
1575
|
+
var require_log = __commonJS(function(exports) {
|
|
1576
1576
|
var node_process = __require("process");
|
|
1577
1577
|
function debug(logLevel, ...messages) {
|
|
1578
1578
|
if (logLevel === "debug")
|
|
@@ -1591,7 +1591,7 @@ var require_log = __commonJS((exports) => {
|
|
|
1591
1591
|
});
|
|
1592
1592
|
|
|
1593
1593
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/merge.js
|
|
1594
|
-
var require_merge = __commonJS((exports)
|
|
1594
|
+
var require_merge = __commonJS(function(exports) {
|
|
1595
1595
|
var identity = require_identity();
|
|
1596
1596
|
var Scalar = require_Scalar();
|
|
1597
1597
|
var MERGE_KEY = "<<";
|
|
@@ -1648,7 +1648,7 @@ var require_merge = __commonJS((exports) => {
|
|
|
1648
1648
|
});
|
|
1649
1649
|
|
|
1650
1650
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/addPairToJSMap.js
|
|
1651
|
-
var require_addPairToJSMap = __commonJS((exports)
|
|
1651
|
+
var require_addPairToJSMap = __commonJS(function(exports) {
|
|
1652
1652
|
var log = require_log();
|
|
1653
1653
|
var merge = require_merge();
|
|
1654
1654
|
var stringify = require_stringify();
|
|
@@ -1709,7 +1709,7 @@ var require_addPairToJSMap = __commonJS((exports) => {
|
|
|
1709
1709
|
});
|
|
1710
1710
|
|
|
1711
1711
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Pair.js
|
|
1712
|
-
var require_Pair = __commonJS((exports)
|
|
1712
|
+
var require_Pair = __commonJS(function(exports) {
|
|
1713
1713
|
var createNode = require_createNode();
|
|
1714
1714
|
var stringifyPair = require_stringifyPair();
|
|
1715
1715
|
var addPairToJSMap = require_addPairToJSMap();
|
|
@@ -1747,7 +1747,7 @@ var require_Pair = __commonJS((exports) => {
|
|
|
1747
1747
|
});
|
|
1748
1748
|
|
|
1749
1749
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyCollection.js
|
|
1750
|
-
var require_stringifyCollection = __commonJS((exports)
|
|
1750
|
+
var require_stringifyCollection = __commonJS(function(exports) {
|
|
1751
1751
|
var identity = require_identity();
|
|
1752
1752
|
var stringify = require_stringify();
|
|
1753
1753
|
var stringifyComment = require_stringifyComment();
|
|
@@ -1899,7 +1899,7 @@ ${indent}${end}`;
|
|
|
1899
1899
|
});
|
|
1900
1900
|
|
|
1901
1901
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/YAMLMap.js
|
|
1902
|
-
var require_YAMLMap = __commonJS((exports)
|
|
1902
|
+
var require_YAMLMap = __commonJS(function(exports) {
|
|
1903
1903
|
var stringifyCollection = require_stringifyCollection();
|
|
1904
1904
|
var addPairToJSMap = require_addPairToJSMap();
|
|
1905
1905
|
var Collection = require_Collection();
|
|
@@ -2026,7 +2026,7 @@ var require_YAMLMap = __commonJS((exports) => {
|
|
|
2026
2026
|
});
|
|
2027
2027
|
|
|
2028
2028
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/common/map.js
|
|
2029
|
-
var require_map = __commonJS((exports)
|
|
2029
|
+
var require_map = __commonJS(function(exports) {
|
|
2030
2030
|
var identity = require_identity();
|
|
2031
2031
|
var YAMLMap = require_YAMLMap();
|
|
2032
2032
|
var map = {
|
|
@@ -2045,7 +2045,7 @@ var require_map = __commonJS((exports) => {
|
|
|
2045
2045
|
});
|
|
2046
2046
|
|
|
2047
2047
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/YAMLSeq.js
|
|
2048
|
-
var require_YAMLSeq = __commonJS((exports)
|
|
2048
|
+
var require_YAMLSeq = __commonJS(function(exports) {
|
|
2049
2049
|
var createNode = require_createNode();
|
|
2050
2050
|
var stringifyCollection = require_stringifyCollection();
|
|
2051
2051
|
var Collection = require_Collection();
|
|
@@ -2138,7 +2138,7 @@ var require_YAMLSeq = __commonJS((exports) => {
|
|
|
2138
2138
|
});
|
|
2139
2139
|
|
|
2140
2140
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/common/seq.js
|
|
2141
|
-
var require_seq = __commonJS((exports)
|
|
2141
|
+
var require_seq = __commonJS(function(exports) {
|
|
2142
2142
|
var identity = require_identity();
|
|
2143
2143
|
var YAMLSeq = require_YAMLSeq();
|
|
2144
2144
|
var seq = {
|
|
@@ -2157,7 +2157,7 @@ var require_seq = __commonJS((exports) => {
|
|
|
2157
2157
|
});
|
|
2158
2158
|
|
|
2159
2159
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/common/string.js
|
|
2160
|
-
var require_string = __commonJS((exports)
|
|
2160
|
+
var require_string = __commonJS(function(exports) {
|
|
2161
2161
|
var stringifyString = require_stringifyString();
|
|
2162
2162
|
var string = {
|
|
2163
2163
|
identify: (value) => typeof value === "string",
|
|
@@ -2173,7 +2173,7 @@ var require_string = __commonJS((exports) => {
|
|
|
2173
2173
|
});
|
|
2174
2174
|
|
|
2175
2175
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/common/null.js
|
|
2176
|
-
var require_null = __commonJS((exports)
|
|
2176
|
+
var require_null = __commonJS(function(exports) {
|
|
2177
2177
|
var Scalar = require_Scalar();
|
|
2178
2178
|
var nullTag = {
|
|
2179
2179
|
identify: (value) => value == null,
|
|
@@ -2188,7 +2188,7 @@ var require_null = __commonJS((exports) => {
|
|
|
2188
2188
|
});
|
|
2189
2189
|
|
|
2190
2190
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/core/bool.js
|
|
2191
|
-
var require_bool = __commonJS((exports)
|
|
2191
|
+
var require_bool = __commonJS(function(exports) {
|
|
2192
2192
|
var Scalar = require_Scalar();
|
|
2193
2193
|
var boolTag = {
|
|
2194
2194
|
identify: (value) => typeof value === "boolean",
|
|
@@ -2209,7 +2209,7 @@ var require_bool = __commonJS((exports) => {
|
|
|
2209
2209
|
});
|
|
2210
2210
|
|
|
2211
2211
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyNumber.js
|
|
2212
|
-
var require_stringifyNumber = __commonJS((exports)
|
|
2212
|
+
var require_stringifyNumber = __commonJS(function(exports) {
|
|
2213
2213
|
function stringifyNumber({ format, minFractionDigits, tag, value }) {
|
|
2214
2214
|
if (typeof value === "bigint")
|
|
2215
2215
|
return String(value);
|
|
@@ -2233,7 +2233,7 @@ var require_stringifyNumber = __commonJS((exports) => {
|
|
|
2233
2233
|
});
|
|
2234
2234
|
|
|
2235
2235
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/core/float.js
|
|
2236
|
-
var require_float = __commonJS((exports)
|
|
2236
|
+
var require_float = __commonJS(function(exports) {
|
|
2237
2237
|
var Scalar = require_Scalar();
|
|
2238
2238
|
var stringifyNumber = require_stringifyNumber();
|
|
2239
2239
|
var floatNaN = {
|
|
@@ -2276,7 +2276,7 @@ var require_float = __commonJS((exports) => {
|
|
|
2276
2276
|
});
|
|
2277
2277
|
|
|
2278
2278
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/core/int.js
|
|
2279
|
-
var require_int = __commonJS((exports)
|
|
2279
|
+
var require_int = __commonJS(function(exports) {
|
|
2280
2280
|
var stringifyNumber = require_stringifyNumber();
|
|
2281
2281
|
var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
2282
2282
|
var intResolve = (str, offset, radix, { intAsBigInt }) => intAsBigInt ? BigInt(str) : parseInt(str.substring(offset), radix);
|
|
@@ -2318,7 +2318,7 @@ var require_int = __commonJS((exports) => {
|
|
|
2318
2318
|
});
|
|
2319
2319
|
|
|
2320
2320
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/core/schema.js
|
|
2321
|
-
var require_schema = __commonJS((exports)
|
|
2321
|
+
var require_schema = __commonJS(function(exports) {
|
|
2322
2322
|
var map = require_map();
|
|
2323
2323
|
var _null = require_null();
|
|
2324
2324
|
var seq = require_seq();
|
|
@@ -2343,7 +2343,7 @@ var require_schema = __commonJS((exports) => {
|
|
|
2343
2343
|
});
|
|
2344
2344
|
|
|
2345
2345
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/json/schema.js
|
|
2346
|
-
var require_schema2 = __commonJS((exports)
|
|
2346
|
+
var require_schema2 = __commonJS(function(exports) {
|
|
2347
2347
|
var Scalar = require_Scalar();
|
|
2348
2348
|
var map = require_map();
|
|
2349
2349
|
var seq = require_seq();
|
|
@@ -2407,7 +2407,7 @@ var require_schema2 = __commonJS((exports) => {
|
|
|
2407
2407
|
});
|
|
2408
2408
|
|
|
2409
2409
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/binary.js
|
|
2410
|
-
var require_binary = __commonJS((exports)
|
|
2410
|
+
var require_binary = __commonJS(function(exports) {
|
|
2411
2411
|
var node_buffer = __require("buffer");
|
|
2412
2412
|
var Scalar = require_Scalar();
|
|
2413
2413
|
var stringifyString = require_stringifyString();
|
|
@@ -2462,7 +2462,7 @@ var require_binary = __commonJS((exports) => {
|
|
|
2462
2462
|
});
|
|
2463
2463
|
|
|
2464
2464
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
|
|
2465
|
-
var require_pairs = __commonJS((exports)
|
|
2465
|
+
var require_pairs = __commonJS(function(exports) {
|
|
2466
2466
|
var identity = require_identity();
|
|
2467
2467
|
var Pair = require_Pair();
|
|
2468
2468
|
var Scalar = require_Scalar();
|
|
@@ -2537,7 +2537,7 @@ ${cn.comment}` : item.comment;
|
|
|
2537
2537
|
});
|
|
2538
2538
|
|
|
2539
2539
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/omap.js
|
|
2540
|
-
var require_omap = __commonJS((exports)
|
|
2540
|
+
var require_omap = __commonJS(function(exports) {
|
|
2541
2541
|
var identity = require_identity();
|
|
2542
2542
|
var toJS = require_toJS();
|
|
2543
2543
|
var YAMLMap = require_YAMLMap();
|
|
@@ -2609,7 +2609,7 @@ var require_omap = __commonJS((exports) => {
|
|
|
2609
2609
|
});
|
|
2610
2610
|
|
|
2611
2611
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/bool.js
|
|
2612
|
-
var require_bool2 = __commonJS((exports)
|
|
2612
|
+
var require_bool2 = __commonJS(function(exports) {
|
|
2613
2613
|
var Scalar = require_Scalar();
|
|
2614
2614
|
function boolStringify({ value, source }, ctx) {
|
|
2615
2615
|
const boolObj = value ? trueTag : falseTag;
|
|
@@ -2638,7 +2638,7 @@ var require_bool2 = __commonJS((exports) => {
|
|
|
2638
2638
|
});
|
|
2639
2639
|
|
|
2640
2640
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/float.js
|
|
2641
|
-
var require_float2 = __commonJS((exports)
|
|
2641
|
+
var require_float2 = __commonJS(function(exports) {
|
|
2642
2642
|
var Scalar = require_Scalar();
|
|
2643
2643
|
var stringifyNumber = require_stringifyNumber();
|
|
2644
2644
|
var floatNaN = {
|
|
@@ -2684,7 +2684,7 @@ var require_float2 = __commonJS((exports) => {
|
|
|
2684
2684
|
});
|
|
2685
2685
|
|
|
2686
2686
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/int.js
|
|
2687
|
-
var require_int2 = __commonJS((exports)
|
|
2687
|
+
var require_int2 = __commonJS(function(exports) {
|
|
2688
2688
|
var stringifyNumber = require_stringifyNumber();
|
|
2689
2689
|
var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
2690
2690
|
function intResolve(str, offset, radix, { intAsBigInt }) {
|
|
@@ -2760,7 +2760,7 @@ var require_int2 = __commonJS((exports) => {
|
|
|
2760
2760
|
});
|
|
2761
2761
|
|
|
2762
2762
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/set.js
|
|
2763
|
-
var require_set = __commonJS((exports)
|
|
2763
|
+
var require_set = __commonJS(function(exports) {
|
|
2764
2764
|
var identity = require_identity();
|
|
2765
2765
|
var Pair = require_Pair();
|
|
2766
2766
|
var YAMLMap = require_YAMLMap();
|
|
@@ -2843,7 +2843,7 @@ var require_set = __commonJS((exports) => {
|
|
|
2843
2843
|
});
|
|
2844
2844
|
|
|
2845
2845
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
|
|
2846
|
-
var require_timestamp = __commonJS((exports)
|
|
2846
|
+
var require_timestamp = __commonJS(function(exports) {
|
|
2847
2847
|
var stringifyNumber = require_stringifyNumber();
|
|
2848
2848
|
function parseSexagesimal(str, asBigInt) {
|
|
2849
2849
|
const sign = str[0];
|
|
@@ -2925,7 +2925,7 @@ var require_timestamp = __commonJS((exports) => {
|
|
|
2925
2925
|
});
|
|
2926
2926
|
|
|
2927
2927
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/schema.js
|
|
2928
|
-
var require_schema3 = __commonJS((exports)
|
|
2928
|
+
var require_schema3 = __commonJS(function(exports) {
|
|
2929
2929
|
var map = require_map();
|
|
2930
2930
|
var _null = require_null();
|
|
2931
2931
|
var seq = require_seq();
|
|
@@ -2966,7 +2966,7 @@ var require_schema3 = __commonJS((exports) => {
|
|
|
2966
2966
|
});
|
|
2967
2967
|
|
|
2968
2968
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/tags.js
|
|
2969
|
-
var require_tags = __commonJS((exports)
|
|
2969
|
+
var require_tags = __commonJS(function(exports) {
|
|
2970
2970
|
var map = require_map();
|
|
2971
2971
|
var _null = require_null();
|
|
2972
2972
|
var seq = require_seq();
|
|
@@ -3057,7 +3057,7 @@ var require_tags = __commonJS((exports) => {
|
|
|
3057
3057
|
});
|
|
3058
3058
|
|
|
3059
3059
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/Schema.js
|
|
3060
|
-
var require_Schema = __commonJS((exports)
|
|
3060
|
+
var require_Schema = __commonJS(function(exports) {
|
|
3061
3061
|
var identity = require_identity();
|
|
3062
3062
|
var map = require_map();
|
|
3063
3063
|
var seq = require_seq();
|
|
@@ -3087,7 +3087,7 @@ var require_Schema = __commonJS((exports) => {
|
|
|
3087
3087
|
});
|
|
3088
3088
|
|
|
3089
3089
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyDocument.js
|
|
3090
|
-
var require_stringifyDocument = __commonJS((exports)
|
|
3090
|
+
var require_stringifyDocument = __commonJS(function(exports) {
|
|
3091
3091
|
var identity = require_identity();
|
|
3092
3092
|
var stringify = require_stringify();
|
|
3093
3093
|
var stringifyComment = require_stringifyComment();
|
|
@@ -3167,7 +3167,7 @@ var require_stringifyDocument = __commonJS((exports) => {
|
|
|
3167
3167
|
});
|
|
3168
3168
|
|
|
3169
3169
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/Document.js
|
|
3170
|
-
var require_Document = __commonJS((exports)
|
|
3170
|
+
var require_Document = __commonJS(function(exports) {
|
|
3171
3171
|
var Alias = require_Alias();
|
|
3172
3172
|
var Collection = require_Collection();
|
|
3173
3173
|
var identity = require_identity();
|
|
@@ -3402,7 +3402,7 @@ var require_Document = __commonJS((exports) => {
|
|
|
3402
3402
|
});
|
|
3403
3403
|
|
|
3404
3404
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/errors.js
|
|
3405
|
-
var require_errors = __commonJS((exports)
|
|
3405
|
+
var require_errors = __commonJS(function(exports) {
|
|
3406
3406
|
class YAMLError extends Error {
|
|
3407
3407
|
constructor(name, pos, code, message) {
|
|
3408
3408
|
super();
|
|
@@ -3467,7 +3467,7 @@ ${pointer}
|
|
|
3467
3467
|
});
|
|
3468
3468
|
|
|
3469
3469
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-props.js
|
|
3470
|
-
var require_resolve_props = __commonJS((exports)
|
|
3470
|
+
var require_resolve_props = __commonJS(function(exports) {
|
|
3471
3471
|
function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
|
|
3472
3472
|
let spaceBefore = false;
|
|
3473
3473
|
let atNewline = startOnNewline;
|
|
@@ -3597,7 +3597,7 @@ var require_resolve_props = __commonJS((exports) => {
|
|
|
3597
3597
|
});
|
|
3598
3598
|
|
|
3599
3599
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/util-contains-newline.js
|
|
3600
|
-
var require_util_contains_newline = __commonJS((exports)
|
|
3600
|
+
var require_util_contains_newline = __commonJS(function(exports) {
|
|
3601
3601
|
function containsNewline(key) {
|
|
3602
3602
|
if (!key)
|
|
3603
3603
|
return null;
|
|
@@ -3637,7 +3637,7 @@ var require_util_contains_newline = __commonJS((exports) => {
|
|
|
3637
3637
|
});
|
|
3638
3638
|
|
|
3639
3639
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/util-flow-indent-check.js
|
|
3640
|
-
var require_util_flow_indent_check = __commonJS((exports)
|
|
3640
|
+
var require_util_flow_indent_check = __commonJS(function(exports) {
|
|
3641
3641
|
var utilContainsNewline = require_util_contains_newline();
|
|
3642
3642
|
function flowIndentCheck(indent, fc, onError) {
|
|
3643
3643
|
if (fc?.type === "flow-collection") {
|
|
@@ -3652,7 +3652,7 @@ var require_util_flow_indent_check = __commonJS((exports) => {
|
|
|
3652
3652
|
});
|
|
3653
3653
|
|
|
3654
3654
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/util-map-includes.js
|
|
3655
|
-
var require_util_map_includes = __commonJS((exports)
|
|
3655
|
+
var require_util_map_includes = __commonJS(function(exports) {
|
|
3656
3656
|
var identity = require_identity();
|
|
3657
3657
|
function mapIncludes(ctx, items, search) {
|
|
3658
3658
|
const { uniqueKeys } = ctx.options;
|
|
@@ -3665,7 +3665,7 @@ var require_util_map_includes = __commonJS((exports) => {
|
|
|
3665
3665
|
});
|
|
3666
3666
|
|
|
3667
3667
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-map.js
|
|
3668
|
-
var require_resolve_block_map = __commonJS((exports)
|
|
3668
|
+
var require_resolve_block_map = __commonJS(function(exports) {
|
|
3669
3669
|
var Pair = require_Pair();
|
|
3670
3670
|
var YAMLMap = require_YAMLMap();
|
|
3671
3671
|
var resolveProps = require_resolve_props();
|
|
@@ -3772,7 +3772,7 @@ var require_resolve_block_map = __commonJS((exports) => {
|
|
|
3772
3772
|
});
|
|
3773
3773
|
|
|
3774
3774
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-seq.js
|
|
3775
|
-
var require_resolve_block_seq = __commonJS((exports)
|
|
3775
|
+
var require_resolve_block_seq = __commonJS(function(exports) {
|
|
3776
3776
|
var YAMLSeq = require_YAMLSeq();
|
|
3777
3777
|
var resolveProps = require_resolve_props();
|
|
3778
3778
|
var utilFlowIndentCheck = require_util_flow_indent_check();
|
|
@@ -3820,7 +3820,7 @@ var require_resolve_block_seq = __commonJS((exports) => {
|
|
|
3820
3820
|
});
|
|
3821
3821
|
|
|
3822
3822
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-end.js
|
|
3823
|
-
var require_resolve_end = __commonJS((exports)
|
|
3823
|
+
var require_resolve_end = __commonJS(function(exports) {
|
|
3824
3824
|
function resolveEnd(end, offset, reqSpace, onError) {
|
|
3825
3825
|
let comment = "";
|
|
3826
3826
|
if (end) {
|
|
@@ -3860,7 +3860,7 @@ var require_resolve_end = __commonJS((exports) => {
|
|
|
3860
3860
|
});
|
|
3861
3861
|
|
|
3862
3862
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-flow-collection.js
|
|
3863
|
-
var require_resolve_flow_collection = __commonJS((exports)
|
|
3863
|
+
var require_resolve_flow_collection = __commonJS(function(exports) {
|
|
3864
3864
|
var identity = require_identity();
|
|
3865
3865
|
var Pair = require_Pair();
|
|
3866
3866
|
var YAMLMap = require_YAMLMap();
|
|
@@ -4051,7 +4051,7 @@ var require_resolve_flow_collection = __commonJS((exports) => {
|
|
|
4051
4051
|
});
|
|
4052
4052
|
|
|
4053
4053
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/compose-collection.js
|
|
4054
|
-
var require_compose_collection = __commonJS((exports)
|
|
4054
|
+
var require_compose_collection = __commonJS(function(exports) {
|
|
4055
4055
|
var identity = require_identity();
|
|
4056
4056
|
var Scalar = require_Scalar();
|
|
4057
4057
|
var YAMLMap = require_YAMLMap();
|
|
@@ -4113,7 +4113,7 @@ var require_compose_collection = __commonJS((exports) => {
|
|
|
4113
4113
|
});
|
|
4114
4114
|
|
|
4115
4115
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-scalar.js
|
|
4116
|
-
var require_resolve_block_scalar = __commonJS((exports)
|
|
4116
|
+
var require_resolve_block_scalar = __commonJS(function(exports) {
|
|
4117
4117
|
var Scalar = require_Scalar();
|
|
4118
4118
|
function resolveBlockScalar(ctx, scalar, onError) {
|
|
4119
4119
|
const start = scalar.offset;
|
|
@@ -4306,7 +4306,7 @@ var require_resolve_block_scalar = __commonJS((exports) => {
|
|
|
4306
4306
|
});
|
|
4307
4307
|
|
|
4308
4308
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-flow-scalar.js
|
|
4309
|
-
var require_resolve_flow_scalar = __commonJS((exports)
|
|
4309
|
+
var require_resolve_flow_scalar = __commonJS(function(exports) {
|
|
4310
4310
|
var Scalar = require_Scalar();
|
|
4311
4311
|
var resolveEnd = require_resolve_end();
|
|
4312
4312
|
function resolveFlowScalar(scalar, strict, onError) {
|
|
@@ -4523,7 +4523,7 @@ var require_resolve_flow_scalar = __commonJS((exports) => {
|
|
|
4523
4523
|
});
|
|
4524
4524
|
|
|
4525
4525
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/compose-scalar.js
|
|
4526
|
-
var require_compose_scalar = __commonJS((exports)
|
|
4526
|
+
var require_compose_scalar = __commonJS(function(exports) {
|
|
4527
4527
|
var identity = require_identity();
|
|
4528
4528
|
var Scalar = require_Scalar();
|
|
4529
4529
|
var resolveBlockScalar = require_resolve_block_scalar();
|
|
@@ -4601,7 +4601,7 @@ var require_compose_scalar = __commonJS((exports) => {
|
|
|
4601
4601
|
});
|
|
4602
4602
|
|
|
4603
4603
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/util-empty-scalar-position.js
|
|
4604
|
-
var require_util_empty_scalar_position = __commonJS((exports)
|
|
4604
|
+
var require_util_empty_scalar_position = __commonJS(function(exports) {
|
|
4605
4605
|
function emptyScalarPosition(offset, before, pos) {
|
|
4606
4606
|
if (before) {
|
|
4607
4607
|
pos ?? (pos = before.length);
|
|
@@ -4628,7 +4628,7 @@ var require_util_empty_scalar_position = __commonJS((exports) => {
|
|
|
4628
4628
|
});
|
|
4629
4629
|
|
|
4630
4630
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/compose-node.js
|
|
4631
|
-
var require_compose_node = __commonJS((exports)
|
|
4631
|
+
var require_compose_node = __commonJS(function(exports) {
|
|
4632
4632
|
var Alias = require_Alias();
|
|
4633
4633
|
var identity = require_identity();
|
|
4634
4634
|
var composeCollection = require_compose_collection();
|
|
@@ -4731,7 +4731,7 @@ var require_compose_node = __commonJS((exports) => {
|
|
|
4731
4731
|
});
|
|
4732
4732
|
|
|
4733
4733
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/compose-doc.js
|
|
4734
|
-
var require_compose_doc = __commonJS((exports)
|
|
4734
|
+
var require_compose_doc = __commonJS(function(exports) {
|
|
4735
4735
|
var Document = require_Document();
|
|
4736
4736
|
var composeNode = require_compose_node();
|
|
4737
4737
|
var resolveEnd = require_resolve_end();
|
|
@@ -4771,7 +4771,7 @@ var require_compose_doc = __commonJS((exports) => {
|
|
|
4771
4771
|
});
|
|
4772
4772
|
|
|
4773
4773
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/composer.js
|
|
4774
|
-
var require_composer = __commonJS((exports)
|
|
4774
|
+
var require_composer = __commonJS(function(exports) {
|
|
4775
4775
|
var node_process = __require("process");
|
|
4776
4776
|
var directives = require_directives();
|
|
4777
4777
|
var Document = require_Document();
|
|
@@ -4962,7 +4962,7 @@ ${end.comment}` : end.comment;
|
|
|
4962
4962
|
});
|
|
4963
4963
|
|
|
4964
4964
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/cst-scalar.js
|
|
4965
|
-
var require_cst_scalar = __commonJS((exports)
|
|
4965
|
+
var require_cst_scalar = __commonJS(function(exports) {
|
|
4966
4966
|
var resolveBlockScalar = require_resolve_block_scalar();
|
|
4967
4967
|
var resolveFlowScalar = require_resolve_flow_scalar();
|
|
4968
4968
|
var errors = require_errors();
|
|
@@ -5152,7 +5152,7 @@ var require_cst_scalar = __commonJS((exports) => {
|
|
|
5152
5152
|
});
|
|
5153
5153
|
|
|
5154
5154
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/cst-stringify.js
|
|
5155
|
-
var require_cst_stringify = __commonJS((exports)
|
|
5155
|
+
var require_cst_stringify = __commonJS(function(exports) {
|
|
5156
5156
|
var stringify = (cst) => ("type" in cst) ? stringifyToken(cst) : stringifyItem(cst);
|
|
5157
5157
|
function stringifyToken(token) {
|
|
5158
5158
|
switch (token.type) {
|
|
@@ -5210,7 +5210,7 @@ var require_cst_stringify = __commonJS((exports) => {
|
|
|
5210
5210
|
});
|
|
5211
5211
|
|
|
5212
5212
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/cst-visit.js
|
|
5213
|
-
var require_cst_visit = __commonJS((exports)
|
|
5213
|
+
var require_cst_visit = __commonJS(function(exports) {
|
|
5214
5214
|
var BREAK = Symbol("break visit");
|
|
5215
5215
|
var SKIP = Symbol("skip children");
|
|
5216
5216
|
var REMOVE = Symbol("remove item");
|
|
@@ -5269,7 +5269,7 @@ var require_cst_visit = __commonJS((exports) => {
|
|
|
5269
5269
|
});
|
|
5270
5270
|
|
|
5271
5271
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/cst.js
|
|
5272
|
-
var require_cst = __commonJS((exports)
|
|
5272
|
+
var require_cst = __commonJS(function(exports) {
|
|
5273
5273
|
var cstScalar = require_cst_scalar();
|
|
5274
5274
|
var cstStringify = require_cst_stringify();
|
|
5275
5275
|
var cstVisit = require_cst_visit();
|
|
@@ -5370,7 +5370,7 @@ var require_cst = __commonJS((exports) => {
|
|
|
5370
5370
|
});
|
|
5371
5371
|
|
|
5372
5372
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/lexer.js
|
|
5373
|
-
var require_lexer = __commonJS((exports)
|
|
5373
|
+
var require_lexer = __commonJS(function(exports) {
|
|
5374
5374
|
var cst = require_cst();
|
|
5375
5375
|
function isEmpty(ch) {
|
|
5376
5376
|
switch (ch) {
|
|
@@ -5967,7 +5967,7 @@ var require_lexer = __commonJS((exports) => {
|
|
|
5967
5967
|
});
|
|
5968
5968
|
|
|
5969
5969
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/line-counter.js
|
|
5970
|
-
var require_line_counter = __commonJS((exports)
|
|
5970
|
+
var require_line_counter = __commonJS(function(exports) {
|
|
5971
5971
|
class LineCounter {
|
|
5972
5972
|
constructor() {
|
|
5973
5973
|
this.lineStarts = [];
|
|
@@ -5995,7 +5995,7 @@ var require_line_counter = __commonJS((exports) => {
|
|
|
5995
5995
|
});
|
|
5996
5996
|
|
|
5997
5997
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/parser.js
|
|
5998
|
-
var require_parser = __commonJS((exports)
|
|
5998
|
+
var require_parser = __commonJS(function(exports) {
|
|
5999
5999
|
var node_process = __require("process");
|
|
6000
6000
|
var cst = require_cst();
|
|
6001
6001
|
var lexer = require_lexer();
|
|
@@ -6851,7 +6851,7 @@ var require_parser = __commonJS((exports) => {
|
|
|
6851
6851
|
});
|
|
6852
6852
|
|
|
6853
6853
|
// ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/public-api.js
|
|
6854
|
-
var require_public_api = __commonJS((exports)
|
|
6854
|
+
var require_public_api = __commonJS(function(exports) {
|
|
6855
6855
|
var composer = require_composer();
|
|
6856
6856
|
var Document = require_Document();
|
|
6857
6857
|
var errors = require_errors();
|
|
@@ -6949,7 +6949,7 @@ import { goke } from "goke";
|
|
|
6949
6949
|
// package.json
|
|
6950
6950
|
var package_default = {
|
|
6951
6951
|
name: "@marcusrbrown/infra",
|
|
6952
|
-
version: "0.
|
|
6952
|
+
version: "0.19.0",
|
|
6953
6953
|
description: "Infrastructure management CLI \u2014 deploy automation, health checks, and MCP bridge",
|
|
6954
6954
|
keywords: [
|
|
6955
6955
|
"infra",
|
|
@@ -6985,7 +6985,7 @@ var package_default = {
|
|
|
6985
6985
|
},
|
|
6986
6986
|
dependencies: {
|
|
6987
6987
|
"@clack/prompts": "^1.2.0",
|
|
6988
|
-
"@goke/mcp": "^0.0.
|
|
6988
|
+
"@goke/mcp": "^0.0.13",
|
|
6989
6989
|
goke: "^6.3.2",
|
|
6990
6990
|
"string-dedent": "^3.0.2",
|
|
6991
6991
|
zod: "^4.3.6"
|
|
@@ -10389,7 +10389,59 @@ import { z as z16 } from "zod";
|
|
|
10389
10389
|
|
|
10390
10390
|
// src/commands/cliproxy/status.ts
|
|
10391
10391
|
import { z as z15 } from "zod";
|
|
10392
|
+
|
|
10393
|
+
// src/lib/redact.ts
|
|
10394
|
+
function redactHost(text4, host) {
|
|
10395
|
+
if (!host)
|
|
10396
|
+
return text4;
|
|
10397
|
+
const escaped = host.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw`\$&`);
|
|
10398
|
+
return text4.replaceAll(new RegExp(escaped, "gi"), "<host>");
|
|
10399
|
+
}
|
|
10400
|
+
|
|
10401
|
+
// ../shared/server/droplet-helpers.ts
|
|
10402
|
+
import { appendFileSync, chmodSync as chmodSync2, mkdtempSync, readFileSync as readFileSync2, rmSync, writeFileSync } from "fs";
|
|
10403
|
+
import { tmpdir } from "os";
|
|
10404
|
+
import { join as join5 } from "path";
|
|
10405
|
+
function materializeIdentityFile(privateKey) {
|
|
10406
|
+
const dir = mkdtempSync(join5(tmpdir(), "infra-ssh-key-"));
|
|
10407
|
+
const path = join5(dir, "id");
|
|
10408
|
+
const cleanup = () => {
|
|
10409
|
+
try {
|
|
10410
|
+
rmSync(dir, { recursive: true, force: true });
|
|
10411
|
+
} catch {}
|
|
10412
|
+
};
|
|
10413
|
+
try {
|
|
10414
|
+
const contents = privateKey.endsWith(`
|
|
10415
|
+
`) ? privateKey : `${privateKey}
|
|
10416
|
+
`;
|
|
10417
|
+
writeFileSync(path, contents, { mode: 384 });
|
|
10418
|
+
chmodSync2(path, 384);
|
|
10419
|
+
} catch (error) {
|
|
10420
|
+
cleanup();
|
|
10421
|
+
throw error;
|
|
10422
|
+
}
|
|
10423
|
+
return { path, cleanup };
|
|
10424
|
+
}
|
|
10425
|
+
|
|
10426
|
+
// src/lib/ssh-identity.ts
|
|
10427
|
+
function materializeIdentityFile2(privateKey) {
|
|
10428
|
+
return materializeIdentityFile(privateKey);
|
|
10429
|
+
}
|
|
10430
|
+
function buildIdentityArgs(privateKey) {
|
|
10431
|
+
if (!privateKey?.trim()) {
|
|
10432
|
+
return { args: [], cleanup: () => {
|
|
10433
|
+
return;
|
|
10434
|
+
} };
|
|
10435
|
+
}
|
|
10436
|
+
const { path, cleanup } = materializeIdentityFile2(privateKey);
|
|
10437
|
+
return { args: ["-i", path, "-o", "IdentitiesOnly=yes"], cleanup };
|
|
10438
|
+
}
|
|
10439
|
+
|
|
10440
|
+
// src/commands/cliproxy/status.ts
|
|
10392
10441
|
var DEFAULT_CLIPROXY_URL6 = "https://cliproxy.fro.bot";
|
|
10442
|
+
function defaultSpawn(cmd, opts) {
|
|
10443
|
+
return Bun.spawn(cmd, opts);
|
|
10444
|
+
}
|
|
10393
10445
|
function levelLabel(level) {
|
|
10394
10446
|
if (level === "ok") {
|
|
10395
10447
|
return "OK";
|
|
@@ -10526,14 +10578,14 @@ async function checkVersion(baseUrl, key) {
|
|
|
10526
10578
|
});
|
|
10527
10579
|
if (response.status === 429) {
|
|
10528
10580
|
return {
|
|
10529
|
-
title: "Latest version",
|
|
10581
|
+
title: "Latest available version",
|
|
10530
10582
|
level: "warning",
|
|
10531
10583
|
summary: "Rate limited by management API (HTTP 429). Retry in a few moments."
|
|
10532
10584
|
};
|
|
10533
10585
|
}
|
|
10534
10586
|
if (!response.ok) {
|
|
10535
10587
|
return {
|
|
10536
|
-
title: "Latest version",
|
|
10588
|
+
title: "Latest available version",
|
|
10537
10589
|
level: "error",
|
|
10538
10590
|
summary: `GET /v0/management/latest-version failed with HTTP ${response.status}`
|
|
10539
10591
|
};
|
|
@@ -10542,17 +10594,73 @@ async function checkVersion(baseUrl, key) {
|
|
|
10542
10594
|
if (payload && typeof payload === "object") {
|
|
10543
10595
|
const version = payload["latest-version"];
|
|
10544
10596
|
if (typeof version === "string" && version.length > 0) {
|
|
10545
|
-
return { title: "Latest version", level: "ok", summary: version };
|
|
10597
|
+
return { title: "Latest available version", level: "ok", summary: version };
|
|
10546
10598
|
}
|
|
10547
10599
|
}
|
|
10548
10600
|
return {
|
|
10549
|
-
title: "Latest version",
|
|
10601
|
+
title: "Latest available version",
|
|
10550
10602
|
level: "warning",
|
|
10551
10603
|
summary: "Response did not include a latest-version string."
|
|
10552
10604
|
};
|
|
10553
10605
|
} catch (error) {
|
|
10554
10606
|
const message = error instanceof Error ? error.message : String(error);
|
|
10555
|
-
return { title: "Latest version", level: "error", summary: `Unable to check latest version: ${message}` };
|
|
10607
|
+
return { title: "Latest available version", level: "error", summary: `Unable to check latest version: ${message}` };
|
|
10608
|
+
}
|
|
10609
|
+
}
|
|
10610
|
+
async function checkRunningVersion(host, spawn = defaultSpawn) {
|
|
10611
|
+
let cleanup = () => {
|
|
10612
|
+
return;
|
|
10613
|
+
};
|
|
10614
|
+
try {
|
|
10615
|
+
validateCliproxyHost(host);
|
|
10616
|
+
const knownHostsArgs = buildKnownHostsArgs();
|
|
10617
|
+
const identity2 = buildIdentityArgs(process.env.CLIPROXY_SSH_KEY);
|
|
10618
|
+
cleanup = identity2.cleanup;
|
|
10619
|
+
const sshCmd = [
|
|
10620
|
+
"ssh",
|
|
10621
|
+
"-o",
|
|
10622
|
+
"BatchMode=yes",
|
|
10623
|
+
"-o",
|
|
10624
|
+
"ConnectTimeout=10",
|
|
10625
|
+
"-o",
|
|
10626
|
+
"StrictHostKeyChecking=yes",
|
|
10627
|
+
...knownHostsArgs,
|
|
10628
|
+
...identity2.args,
|
|
10629
|
+
`root@${host}`,
|
|
10630
|
+
`docker ps --format '{{.Image}}'`
|
|
10631
|
+
];
|
|
10632
|
+
const env = {
|
|
10633
|
+
PATH: process.env.PATH ?? "/usr/bin:/bin",
|
|
10634
|
+
HOME: process.env.HOME ?? "/tmp",
|
|
10635
|
+
...process.env.SSH_AUTH_SOCK ? { SSH_AUTH_SOCK: process.env.SSH_AUTH_SOCK } : {}
|
|
10636
|
+
};
|
|
10637
|
+
const child = spawn(sshCmd, { env, stdout: "pipe", stderr: "pipe" });
|
|
10638
|
+
const [stdoutText, stderrText, exitCode] = await Promise.all([
|
|
10639
|
+
new Response(child.stdout).text(),
|
|
10640
|
+
new Response(child.stderr).text(),
|
|
10641
|
+
child.exited
|
|
10642
|
+
]);
|
|
10643
|
+
if (exitCode !== 0) {
|
|
10644
|
+
return {
|
|
10645
|
+
title: "Running version",
|
|
10646
|
+
level: "warning",
|
|
10647
|
+
summary: `SSH command failed (exit ${exitCode}): ${redactHost(stderrText.trim(), host) || "unknown error"}`
|
|
10648
|
+
};
|
|
10649
|
+
}
|
|
10650
|
+
const imageMatch = /(?:^|\s)eceasy\/cli-proxy-api:([^\s@]+)/m.exec(stdoutText);
|
|
10651
|
+
if (!imageMatch) {
|
|
10652
|
+
return {
|
|
10653
|
+
title: "Running version",
|
|
10654
|
+
level: "warning",
|
|
10655
|
+
summary: "No running eceasy/cli-proxy-api container found."
|
|
10656
|
+
};
|
|
10657
|
+
}
|
|
10658
|
+
return { title: "Running version", level: "ok", summary: imageMatch[1] ?? "unknown" };
|
|
10659
|
+
} catch (error) {
|
|
10660
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
10661
|
+
return { title: "Running version", level: "warning", summary: `Unable to check running version via SSH: ${message}` };
|
|
10662
|
+
} finally {
|
|
10663
|
+
cleanup();
|
|
10556
10664
|
}
|
|
10557
10665
|
}
|
|
10558
10666
|
var DEFAULT_PROVIDER_MODEL = "claude-sonnet-4-6";
|
|
@@ -10722,6 +10830,41 @@ function printCheckResult(result, ctx) {
|
|
|
10722
10830
|
function formatCheckSummary(result) {
|
|
10723
10831
|
return `${levelLabel(result.level)}: ${result.summary}`;
|
|
10724
10832
|
}
|
|
10833
|
+
var RUNNING_VERSION_NOT_CHECKED_SUMMARY = "Not checked for explicit URL override.";
|
|
10834
|
+
function formatVersionSummary(running, available) {
|
|
10835
|
+
const latestFailure = /429|rate limit/i.test(available.summary) ? "rate-limited" : /auth|\b40[13]\b|ip banned/i.test(available.summary) ? "auth" : "unknown";
|
|
10836
|
+
if (running.summary === RUNNING_VERSION_NOT_CHECKED_SUMMARY) {
|
|
10837
|
+
if (available.level === "ok") {
|
|
10838
|
+
return `not checked (latest ${available.summary})`;
|
|
10839
|
+
}
|
|
10840
|
+
if (available.summary === "Not checked (no management key).") {
|
|
10841
|
+
return "not checked (latest: no key)";
|
|
10842
|
+
}
|
|
10843
|
+
return `not checked (latest ${latestFailure})`;
|
|
10844
|
+
}
|
|
10845
|
+
if (running.level === "ok" && available.level === "ok") {
|
|
10846
|
+
return running.summary === available.summary ? `${running.summary} (latest)` : `${running.summary} (latest ${available.summary})`;
|
|
10847
|
+
}
|
|
10848
|
+
if (running.level === "ok") {
|
|
10849
|
+
return available.summary === "Not checked (no management key)." ? `${running.summary} (latest: no key)` : `${running.summary} (latest ${latestFailure})`;
|
|
10850
|
+
}
|
|
10851
|
+
if (available.level === "ok") {
|
|
10852
|
+
return `unknown (latest ${available.summary})`;
|
|
10853
|
+
}
|
|
10854
|
+
if (latestFailure === "auth") {
|
|
10855
|
+
return "unknown (auth)";
|
|
10856
|
+
}
|
|
10857
|
+
return latestFailure === "rate-limited" ? "unknown (latest rate-limited)" : "unknown";
|
|
10858
|
+
}
|
|
10859
|
+
function getRunningVersionNotChecked(host) {
|
|
10860
|
+
try {
|
|
10861
|
+
validateCliproxyHost(host);
|
|
10862
|
+
return { title: "Running version", level: "warning", summary: RUNNING_VERSION_NOT_CHECKED_SUMMARY };
|
|
10863
|
+
} catch (error) {
|
|
10864
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
10865
|
+
return { title: "Running version", level: "warning", summary: `Unable to validate running-version host: ${message}` };
|
|
10866
|
+
}
|
|
10867
|
+
}
|
|
10725
10868
|
function formatUsageSummaryLine(result) {
|
|
10726
10869
|
const recentMatch = /recent:\s*(\d+)/.exec(result.summary);
|
|
10727
10870
|
if (!recentMatch) {
|
|
@@ -10732,35 +10875,36 @@ function formatUsageSummaryLine(result) {
|
|
|
10732
10875
|
const errors2 = errorMatch ? Number(errorMatch[1]) : 0;
|
|
10733
10876
|
return `Recent requests: ${total}${errors2 > 0 ? `, ${errors2} errors` : ""}`;
|
|
10734
10877
|
}
|
|
10735
|
-
async function getCliproxyStatusSummary(baseUrl, key, verbose) {
|
|
10878
|
+
async function getCliproxyStatusSummary(baseUrl, key, verbose, spawn = defaultSpawn) {
|
|
10736
10879
|
const normalizedBaseUrl = stripTrailingSlash5(baseUrl);
|
|
10737
|
-
const
|
|
10880
|
+
const host = new URL(normalizedBaseUrl).hostname;
|
|
10881
|
+
const [httpResult, mgmt, running] = await Promise.all([
|
|
10738
10882
|
checkHttpReachability(`${normalizedBaseUrl}/healthz`, verbose),
|
|
10739
|
-
runManagementChecks(normalizedBaseUrl, key || undefined)
|
|
10883
|
+
runManagementChecks(normalizedBaseUrl, key || undefined),
|
|
10884
|
+
checkRunningVersion(host, spawn)
|
|
10740
10885
|
]);
|
|
10741
|
-
let
|
|
10886
|
+
let available;
|
|
10742
10887
|
let usageStats;
|
|
10743
10888
|
if (mgmt.kind === "no-key") {
|
|
10744
|
-
|
|
10889
|
+
available = { title: "Latest available version", level: "warning", summary: "Not checked (no management key)." };
|
|
10745
10890
|
usageStats = "\u2014 (no key)";
|
|
10746
10891
|
} else if (mgmt.kind === "auth-failure") {
|
|
10747
|
-
|
|
10748
|
-
|
|
10749
|
-
usageStats = authSummary;
|
|
10892
|
+
available = mgmt.result;
|
|
10893
|
+
usageStats = formatCheckSummary(mgmt.result);
|
|
10750
10894
|
} else {
|
|
10751
|
-
|
|
10895
|
+
available = mgmt.version;
|
|
10752
10896
|
usageStats = formatCheckSummary(mgmt.usage);
|
|
10753
10897
|
}
|
|
10754
10898
|
return {
|
|
10755
10899
|
app: "cliproxy",
|
|
10756
10900
|
http: formatCheckSummary(httpResult),
|
|
10757
10901
|
lastDeploy: "\u2014",
|
|
10758
|
-
version,
|
|
10902
|
+
version: formatVersionSummary(running, available),
|
|
10759
10903
|
contentHash: "\u2014",
|
|
10760
10904
|
usageStats
|
|
10761
10905
|
};
|
|
10762
10906
|
}
|
|
10763
|
-
async function cliproxyStatusAction(options, ctx) {
|
|
10907
|
+
async function cliproxyStatusAction(options, ctx, spawn = defaultSpawn) {
|
|
10764
10908
|
let errorCount = 0;
|
|
10765
10909
|
try {
|
|
10766
10910
|
const verbose = options.verbose === true;
|
|
@@ -10771,7 +10915,13 @@ async function cliproxyStatusAction(options, ctx) {
|
|
|
10771
10915
|
const providerKey = options.apiKey ?? (urlIsExplicitlyOverridden ? undefined : process.env.CLIPROXY_API_KEY);
|
|
10772
10916
|
ctx.console.log("CLIProxyAPI status");
|
|
10773
10917
|
ctx.console.log("");
|
|
10774
|
-
const
|
|
10918
|
+
const host = new URL(baseUrl).hostname;
|
|
10919
|
+
const runningCheck = urlIsExplicitlyOverridden ? Promise.resolve(getRunningVersionNotChecked(host)) : checkRunningVersion(host, spawn);
|
|
10920
|
+
const [httpResult, runningResult] = await Promise.all([
|
|
10921
|
+
checkHttpReachability(`${baseUrl}/healthz`, verbose),
|
|
10922
|
+
runningCheck
|
|
10923
|
+
]);
|
|
10924
|
+
const results = [httpResult, runningResult];
|
|
10775
10925
|
let capturedUsageResult;
|
|
10776
10926
|
const mgmt = await runManagementChecks(baseUrl, managementKey);
|
|
10777
10927
|
if (mgmt.kind === "no-key") {
|
|
@@ -11380,45 +11530,6 @@ function registerDashboardDeploy(cli) {
|
|
|
11380
11530
|
// src/commands/dashboard/logs.ts
|
|
11381
11531
|
import { z as z19 } from "zod";
|
|
11382
11532
|
|
|
11383
|
-
// ../shared/server/droplet-helpers.ts
|
|
11384
|
-
import { appendFileSync, chmodSync as chmodSync2, mkdtempSync, readFileSync as readFileSync2, rmSync, writeFileSync } from "fs";
|
|
11385
|
-
import { tmpdir } from "os";
|
|
11386
|
-
import { join as join5 } from "path";
|
|
11387
|
-
function materializeIdentityFile(privateKey) {
|
|
11388
|
-
const dir = mkdtempSync(join5(tmpdir(), "infra-ssh-key-"));
|
|
11389
|
-
const path = join5(dir, "id");
|
|
11390
|
-
const cleanup = () => {
|
|
11391
|
-
try {
|
|
11392
|
-
rmSync(dir, { recursive: true, force: true });
|
|
11393
|
-
} catch {}
|
|
11394
|
-
};
|
|
11395
|
-
try {
|
|
11396
|
-
const contents = privateKey.endsWith(`
|
|
11397
|
-
`) ? privateKey : `${privateKey}
|
|
11398
|
-
`;
|
|
11399
|
-
writeFileSync(path, contents, { mode: 384 });
|
|
11400
|
-
chmodSync2(path, 384);
|
|
11401
|
-
} catch (error) {
|
|
11402
|
-
cleanup();
|
|
11403
|
-
throw error;
|
|
11404
|
-
}
|
|
11405
|
-
return { path, cleanup };
|
|
11406
|
-
}
|
|
11407
|
-
|
|
11408
|
-
// src/lib/ssh-identity.ts
|
|
11409
|
-
function materializeIdentityFile2(privateKey) {
|
|
11410
|
-
return materializeIdentityFile(privateKey);
|
|
11411
|
-
}
|
|
11412
|
-
function buildIdentityArgs(privateKey) {
|
|
11413
|
-
if (!privateKey?.trim()) {
|
|
11414
|
-
return { args: [], cleanup: () => {
|
|
11415
|
-
return;
|
|
11416
|
-
} };
|
|
11417
|
-
}
|
|
11418
|
-
const { path, cleanup } = materializeIdentityFile2(privateKey);
|
|
11419
|
-
return { args: ["-i", path, "-o", "IdentitiesOnly=yes"], cleanup };
|
|
11420
|
-
}
|
|
11421
|
-
|
|
11422
11533
|
// src/commands/dashboard/host.ts
|
|
11423
11534
|
var VALID_HOST_RE3 = /^[a-z\d][a-z\d.\-]*$/i;
|
|
11424
11535
|
function validateDashboardHost(host) {
|
|
@@ -11521,16 +11632,6 @@ function registerDashboardLogs(cli) {
|
|
|
11521
11632
|
|
|
11522
11633
|
// src/commands/dashboard/status.ts
|
|
11523
11634
|
import { z as z20 } from "zod";
|
|
11524
|
-
|
|
11525
|
-
// src/lib/redact.ts
|
|
11526
|
-
function redactHost(text4, host) {
|
|
11527
|
-
if (!host)
|
|
11528
|
-
return text4;
|
|
11529
|
-
const escaped = host.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw`\$&`);
|
|
11530
|
-
return text4.replaceAll(new RegExp(escaped, "gi"), "<host>");
|
|
11531
|
-
}
|
|
11532
|
-
|
|
11533
|
-
// src/commands/dashboard/status.ts
|
|
11534
11635
|
var COMPOSE_PROJECT_DIR2 = "/opt/dashboard";
|
|
11535
11636
|
function parseComposePsOutput(stdoutText) {
|
|
11536
11637
|
const trimmed = stdoutText.trim();
|
|
@@ -11559,10 +11660,10 @@ function parseComposePs(entries) {
|
|
|
11559
11660
|
function isAllRunning(rows) {
|
|
11560
11661
|
return rows.every((row) => row.state === "running" && (row.health === "healthy" || row.health === "n-a"));
|
|
11561
11662
|
}
|
|
11562
|
-
function
|
|
11663
|
+
function defaultSpawn2(cmd, opts) {
|
|
11563
11664
|
return Bun.spawn(cmd, opts);
|
|
11564
11665
|
}
|
|
11565
|
-
async function getDashboardComposeStatus(host, spawn =
|
|
11666
|
+
async function getDashboardComposeStatus(host, spawn = defaultSpawn2) {
|
|
11566
11667
|
validateDashboardHost(host);
|
|
11567
11668
|
const knownHostsArgs = buildKnownHostsArgs();
|
|
11568
11669
|
const { args: identityArgs, cleanup } = buildIdentityArgs(process.env.DASHBOARD_SSH_KEY);
|
|
@@ -11736,10 +11837,10 @@ var CA_CERT_FILE = "mitmproxy-ca-cert.pem";
|
|
|
11736
11837
|
var CA_KEY_FILE = "mitmproxy-ca.pem";
|
|
11737
11838
|
var DEFAULT_OUTPUT = "apps/gateway/.local/mitmproxy-ca.tar";
|
|
11738
11839
|
var SENSITIVE_WARNING3 = "Warning: Output contains the mitmproxy CA private trust anchor; treat as sensitive.";
|
|
11739
|
-
function
|
|
11840
|
+
function defaultSpawn3(cmd, opts) {
|
|
11740
11841
|
return Bun.spawn(cmd, opts);
|
|
11741
11842
|
}
|
|
11742
|
-
async function backupGatewayCa(opts, spawn =
|
|
11843
|
+
async function backupGatewayCa(opts, spawn = defaultSpawn3, printErr) {
|
|
11743
11844
|
if (!opts.includeCa) {
|
|
11744
11845
|
return { ok: false, error: "Only CA backup is currently supported; --no-include-ca is not accepted" };
|
|
11745
11846
|
}
|
|
@@ -12074,10 +12175,10 @@ function validateBackupArchive(inputPath, spawn, env) {
|
|
|
12074
12175
|
return;
|
|
12075
12176
|
});
|
|
12076
12177
|
}
|
|
12077
|
-
function
|
|
12178
|
+
function defaultSpawn4(cmd, opts) {
|
|
12078
12179
|
return Bun.spawn(cmd, opts);
|
|
12079
12180
|
}
|
|
12080
|
-
async function restoreGatewayCa(opts, spawn =
|
|
12181
|
+
async function restoreGatewayCa(opts, spawn = defaultSpawn4) {
|
|
12081
12182
|
if (!opts.includeCa) {
|
|
12082
12183
|
return { ok: false, error: "Only CA restore is currently supported; --no-include-ca is not accepted" };
|
|
12083
12184
|
}
|
|
@@ -12230,10 +12331,10 @@ function parseComposePs2(entries) {
|
|
|
12230
12331
|
function isAllRunning2(rows) {
|
|
12231
12332
|
return rows.every((row) => row.state === "running");
|
|
12232
12333
|
}
|
|
12233
|
-
function
|
|
12334
|
+
function defaultSpawn5(cmd, opts) {
|
|
12234
12335
|
return Bun.spawn(cmd, opts);
|
|
12235
12336
|
}
|
|
12236
|
-
async function getGatewayComposeStatus(host, spawn =
|
|
12337
|
+
async function getGatewayComposeStatus(host, spawn = defaultSpawn5) {
|
|
12237
12338
|
validateGatewayHost(host);
|
|
12238
12339
|
const knownHostsArgs = buildKnownHostsArgs();
|
|
12239
12340
|
const { args: identityArgs, cleanup } = buildIdentityArgs(process.env.GATEWAY_SSH_KEY);
|
|
@@ -12997,10 +13098,10 @@ function parseComposePs3(entries) {
|
|
|
12997
13098
|
function isAllRunning3(rows) {
|
|
12998
13099
|
return rows.every((row) => row.state === "running" && (row.health === "healthy" || row.health === "n-a"));
|
|
12999
13100
|
}
|
|
13000
|
-
function
|
|
13101
|
+
function defaultSpawn6(cmd, opts) {
|
|
13001
13102
|
return Bun.spawn(cmd, opts);
|
|
13002
13103
|
}
|
|
13003
|
-
async function getUmamiComposeStatus(host, spawn =
|
|
13104
|
+
async function getUmamiComposeStatus(host, spawn = defaultSpawn6) {
|
|
13004
13105
|
validateUmamiHost(host);
|
|
13005
13106
|
const knownHostsArgs = buildKnownHostsArgs();
|
|
13006
13107
|
const { args: identityArgs, cleanup } = buildIdentityArgs(process.env.UMAMI_SSH_KEY);
|
|
@@ -13660,10 +13761,10 @@ function parseWgShowOutput(output) {
|
|
|
13660
13761
|
peerCount
|
|
13661
13762
|
};
|
|
13662
13763
|
}
|
|
13663
|
-
function
|
|
13764
|
+
function defaultSpawn7(cmd, opts) {
|
|
13664
13765
|
return Bun.spawn(cmd, opts);
|
|
13665
13766
|
}
|
|
13666
|
-
async function getVpnWgStatus(host, spawn =
|
|
13767
|
+
async function getVpnWgStatus(host, spawn = defaultSpawn7) {
|
|
13667
13768
|
validateVpnHost(host);
|
|
13668
13769
|
const knownHostsArgs = buildKnownHostsArgs();
|
|
13669
13770
|
const { args: identityArgs, cleanup } = buildIdentityArgs(process.env.VPN_SSH_KEY);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marcusrbrown/infra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "Infrastructure management CLI — deploy automation, health checks, and MCP bridge",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"infra",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@clack/prompts": "^1.2.0",
|
|
39
|
-
"@goke/mcp": "^0.0.
|
|
39
|
+
"@goke/mcp": "^0.0.13",
|
|
40
40
|
"goke": "^6.3.2",
|
|
41
41
|
"string-dedent": "^3.0.2",
|
|
42
42
|
"zod": "^4.3.6"
|