open-azdo 0.3.2 → 0.3.3
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 +14 -0
- package/dist/open-azdo.js +689 -256
- package/dist/open-azdo.js.map +12 -12
- package/examples/azure-pipelines.review.debug.yml +1 -1
- package/examples/azure-pipelines.review.pnpm.yml +2 -2
- package/package.json +1 -1
package/dist/open-azdo.js
CHANGED
|
@@ -6779,18 +6779,18 @@ var require_set = __commonJS((exports) => {
|
|
|
6779
6779
|
}
|
|
6780
6780
|
static from(schema2, iterable, ctx) {
|
|
6781
6781
|
const { replacer } = ctx;
|
|
6782
|
-
const
|
|
6782
|
+
const set8 = new this(schema2);
|
|
6783
6783
|
if (iterable && Symbol.iterator in Object(iterable))
|
|
6784
6784
|
for (let value3 of iterable) {
|
|
6785
6785
|
if (typeof replacer === "function")
|
|
6786
6786
|
value3 = replacer.call(iterable, value3, value3);
|
|
6787
|
-
|
|
6787
|
+
set8.items.push(Pair.createPair(value3, null, ctx));
|
|
6788
6788
|
}
|
|
6789
|
-
return
|
|
6789
|
+
return set8;
|
|
6790
6790
|
}
|
|
6791
6791
|
}
|
|
6792
6792
|
YAMLSet.tag = "tag:yaml.org,2002:set";
|
|
6793
|
-
var
|
|
6793
|
+
var set7 = {
|
|
6794
6794
|
collection: "map",
|
|
6795
6795
|
identify: (value3) => value3 instanceof Set,
|
|
6796
6796
|
nodeClass: YAMLSet,
|
|
@@ -6809,7 +6809,7 @@ var require_set = __commonJS((exports) => {
|
|
|
6809
6809
|
}
|
|
6810
6810
|
};
|
|
6811
6811
|
exports.YAMLSet = YAMLSet;
|
|
6812
|
-
exports.set =
|
|
6812
|
+
exports.set = set7;
|
|
6813
6813
|
});
|
|
6814
6814
|
|
|
6815
6815
|
// ../../node_modules/.bun/yaml@2.8.2/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
|
|
@@ -6907,7 +6907,7 @@ var require_schema3 = __commonJS((exports) => {
|
|
|
6907
6907
|
var merge6 = require_merge();
|
|
6908
6908
|
var omap = require_omap();
|
|
6909
6909
|
var pairs = require_pairs();
|
|
6910
|
-
var
|
|
6910
|
+
var set7 = require_set();
|
|
6911
6911
|
var timestamp = require_timestamp();
|
|
6912
6912
|
var schema2 = [
|
|
6913
6913
|
map15.map,
|
|
@@ -6927,7 +6927,7 @@ var require_schema3 = __commonJS((exports) => {
|
|
|
6927
6927
|
merge6.merge,
|
|
6928
6928
|
omap.omap,
|
|
6929
6929
|
pairs.pairs,
|
|
6930
|
-
|
|
6930
|
+
set7.set,
|
|
6931
6931
|
timestamp.intTime,
|
|
6932
6932
|
timestamp.floatTime,
|
|
6933
6933
|
timestamp.timestamp
|
|
@@ -6951,7 +6951,7 @@ var require_tags = __commonJS((exports) => {
|
|
|
6951
6951
|
var omap = require_omap();
|
|
6952
6952
|
var pairs = require_pairs();
|
|
6953
6953
|
var schema$2 = require_schema3();
|
|
6954
|
-
var
|
|
6954
|
+
var set7 = require_set();
|
|
6955
6955
|
var timestamp = require_timestamp();
|
|
6956
6956
|
var schemas = new Map([
|
|
6957
6957
|
["core", schema2.schema],
|
|
@@ -6977,7 +6977,7 @@ var require_tags = __commonJS((exports) => {
|
|
|
6977
6977
|
omap: omap.omap,
|
|
6978
6978
|
pairs: pairs.pairs,
|
|
6979
6979
|
seq: seq.seq,
|
|
6980
|
-
set:
|
|
6980
|
+
set: set7.set,
|
|
6981
6981
|
timestamp: timestamp.timestamp
|
|
6982
6982
|
};
|
|
6983
6983
|
var coreKnownTags = {
|
|
@@ -6985,7 +6985,7 @@ var require_tags = __commonJS((exports) => {
|
|
|
6985
6985
|
"tag:yaml.org,2002:merge": merge6.merge,
|
|
6986
6986
|
"tag:yaml.org,2002:omap": omap.omap,
|
|
6987
6987
|
"tag:yaml.org,2002:pairs": pairs.pairs,
|
|
6988
|
-
"tag:yaml.org,2002:set":
|
|
6988
|
+
"tag:yaml.org,2002:set": set7.set,
|
|
6989
6989
|
"tag:yaml.org,2002:timestamp": timestamp.timestamp
|
|
6990
6990
|
};
|
|
6991
6991
|
function getTags(customTags, schemaName, addMergeTag) {
|
|
@@ -21105,11 +21105,11 @@ var require_HTMLParser = __commonJS((exports, module) => {
|
|
|
21105
21105
|
}
|
|
21106
21106
|
return result4;
|
|
21107
21107
|
}
|
|
21108
|
-
function isA(elt,
|
|
21109
|
-
if (typeof
|
|
21110
|
-
return elt.namespaceURI === NAMESPACE.HTML && elt.localName ===
|
|
21108
|
+
function isA(elt, set10) {
|
|
21109
|
+
if (typeof set10 === "string") {
|
|
21110
|
+
return elt.namespaceURI === NAMESPACE.HTML && elt.localName === set10;
|
|
21111
21111
|
}
|
|
21112
|
-
var tagnames =
|
|
21112
|
+
var tagnames = set10[elt.namespaceURI];
|
|
21113
21113
|
return tagnames && tagnames[elt.localName];
|
|
21114
21114
|
}
|
|
21115
21115
|
function isMathmlTextIntegrationPoint(n) {
|
|
@@ -21209,9 +21209,9 @@ var require_HTMLParser = __commonJS((exports, module) => {
|
|
|
21209
21209
|
this.elements.splice(idx, 1);
|
|
21210
21210
|
}
|
|
21211
21211
|
};
|
|
21212
|
-
HTMLParser.ElementStack.prototype.clearToContext = function(
|
|
21212
|
+
HTMLParser.ElementStack.prototype.clearToContext = function(set10) {
|
|
21213
21213
|
for (var i = this.elements.length - 1;i > 0; i--) {
|
|
21214
|
-
if (isA(this.elements[i],
|
|
21214
|
+
if (isA(this.elements[i], set10))
|
|
21215
21215
|
break;
|
|
21216
21216
|
}
|
|
21217
21217
|
this.elements.length = i + 1;
|
|
@@ -21220,32 +21220,32 @@ var require_HTMLParser = __commonJS((exports, module) => {
|
|
|
21220
21220
|
HTMLParser.ElementStack.prototype.contains = function(tag2) {
|
|
21221
21221
|
return this.inSpecificScope(tag2, Object.create(null));
|
|
21222
21222
|
};
|
|
21223
|
-
HTMLParser.ElementStack.prototype.inSpecificScope = function(tag2,
|
|
21223
|
+
HTMLParser.ElementStack.prototype.inSpecificScope = function(tag2, set10) {
|
|
21224
21224
|
for (var i = this.elements.length - 1;i >= 0; i--) {
|
|
21225
21225
|
var elt = this.elements[i];
|
|
21226
21226
|
if (isA(elt, tag2))
|
|
21227
21227
|
return true;
|
|
21228
|
-
if (isA(elt,
|
|
21228
|
+
if (isA(elt, set10))
|
|
21229
21229
|
return false;
|
|
21230
21230
|
}
|
|
21231
21231
|
return false;
|
|
21232
21232
|
};
|
|
21233
|
-
HTMLParser.ElementStack.prototype.elementInSpecificScope = function(target,
|
|
21233
|
+
HTMLParser.ElementStack.prototype.elementInSpecificScope = function(target, set10) {
|
|
21234
21234
|
for (var i = this.elements.length - 1;i >= 0; i--) {
|
|
21235
21235
|
var elt = this.elements[i];
|
|
21236
21236
|
if (elt === target)
|
|
21237
21237
|
return true;
|
|
21238
|
-
if (isA(elt,
|
|
21238
|
+
if (isA(elt, set10))
|
|
21239
21239
|
return false;
|
|
21240
21240
|
}
|
|
21241
21241
|
return false;
|
|
21242
21242
|
};
|
|
21243
|
-
HTMLParser.ElementStack.prototype.elementTypeInSpecificScope = function(target,
|
|
21243
|
+
HTMLParser.ElementStack.prototype.elementTypeInSpecificScope = function(target, set10) {
|
|
21244
21244
|
for (var i = this.elements.length - 1;i >= 0; i--) {
|
|
21245
21245
|
var elt = this.elements[i];
|
|
21246
21246
|
if (elt instanceof target)
|
|
21247
21247
|
return true;
|
|
21248
|
-
if (isA(elt,
|
|
21248
|
+
if (isA(elt, set10))
|
|
21249
21249
|
return false;
|
|
21250
21250
|
}
|
|
21251
21251
|
return false;
|
|
@@ -30300,6 +30300,12 @@ var fiberInterruptAll = (fibers) => withFiber((parent) => {
|
|
|
30300
30300
|
}
|
|
30301
30301
|
return asVoid2(fiberAwaitAll(fibers));
|
|
30302
30302
|
});
|
|
30303
|
+
var fiberInterruptAllAs = /* @__PURE__ */ dual(2, (fibers, fiberId) => withFiber((parent) => {
|
|
30304
|
+
const annotations = fiberStackAnnotations(parent);
|
|
30305
|
+
for (const fiber of fibers)
|
|
30306
|
+
fiber.interruptUnsafe(fiberId, annotations);
|
|
30307
|
+
return asVoid2(fiberAwaitAll(fibers));
|
|
30308
|
+
}));
|
|
30303
30309
|
var succeed3 = exitSucceed;
|
|
30304
30310
|
var failCause = exitFailCause;
|
|
30305
30311
|
var fail3 = exitFail;
|
|
@@ -32047,6 +32053,14 @@ var logWithLevel = (level) => (...message) => {
|
|
|
32047
32053
|
return void_2;
|
|
32048
32054
|
});
|
|
32049
32055
|
};
|
|
32056
|
+
var withColor = (text, ...colors) => {
|
|
32057
|
+
let out = "";
|
|
32058
|
+
for (let i = 0;i < colors.length; i++) {
|
|
32059
|
+
out += `\x1B[${colors[i]}m`;
|
|
32060
|
+
}
|
|
32061
|
+
return out + text + "\x1B[0m";
|
|
32062
|
+
};
|
|
32063
|
+
var withColorNoop = (text, ..._colors) => text;
|
|
32050
32064
|
var colors = {
|
|
32051
32065
|
bold: "1",
|
|
32052
32066
|
red: "31",
|
|
@@ -32069,10 +32083,139 @@ var logLevelColors = {
|
|
|
32069
32083
|
Error: [colors.red],
|
|
32070
32084
|
Fatal: [colors.bgBrightRed, colors.black]
|
|
32071
32085
|
};
|
|
32086
|
+
var logLevelStyle = {
|
|
32087
|
+
None: "",
|
|
32088
|
+
All: "",
|
|
32089
|
+
Trace: "color:gray",
|
|
32090
|
+
Debug: "color:blue",
|
|
32091
|
+
Info: "color:green",
|
|
32092
|
+
Warn: "color:orange",
|
|
32093
|
+
Error: "color:red",
|
|
32094
|
+
Fatal: "background-color:red;color:white"
|
|
32095
|
+
};
|
|
32072
32096
|
var defaultDateFormat = (date) => `${date.getHours().toString().padStart(2, "0")}:${date.getMinutes().toString().padStart(2, "0")}:${date.getSeconds().toString().padStart(2, "0")}.${date.getMilliseconds().toString().padStart(3, "0")}`;
|
|
32073
32097
|
var hasProcessStdout = typeof process === "object" && process !== null && typeof process.stdout === "object" && process.stdout !== null;
|
|
32074
32098
|
var processStdoutIsTTY = hasProcessStdout && process.stdout.isTTY === true;
|
|
32075
32099
|
var hasProcessStdoutOrDeno = hasProcessStdout || "Deno" in globalThis;
|
|
32100
|
+
var consolePretty = (options) => {
|
|
32101
|
+
const mode_ = options?.mode ?? "auto";
|
|
32102
|
+
const mode = mode_ === "auto" ? hasProcessStdoutOrDeno ? "tty" : "browser" : mode_;
|
|
32103
|
+
const isBrowser = mode === "browser";
|
|
32104
|
+
const showColors = typeof options?.colors === "boolean" ? options.colors : processStdoutIsTTY || isBrowser;
|
|
32105
|
+
const formatDate2 = options?.formatDate ?? defaultDateFormat;
|
|
32106
|
+
return isBrowser ? prettyLoggerBrowser({
|
|
32107
|
+
colors: showColors,
|
|
32108
|
+
formatDate: formatDate2
|
|
32109
|
+
}) : prettyLoggerTty({
|
|
32110
|
+
colors: showColors,
|
|
32111
|
+
formatDate: formatDate2
|
|
32112
|
+
});
|
|
32113
|
+
};
|
|
32114
|
+
var prettyLoggerTty = (options) => {
|
|
32115
|
+
const processIsBun = typeof process === "object" && "isBun" in process && process.isBun === true;
|
|
32116
|
+
const color = options.colors ? withColor : withColorNoop;
|
|
32117
|
+
return loggerMake(({
|
|
32118
|
+
cause,
|
|
32119
|
+
date,
|
|
32120
|
+
fiber: fiber2,
|
|
32121
|
+
logLevel,
|
|
32122
|
+
message: message_
|
|
32123
|
+
}) => {
|
|
32124
|
+
const console2 = fiber2.getRef(ConsoleRef);
|
|
32125
|
+
const log = fiber2.getRef(LogToStderr) ? console2.error : console2.log;
|
|
32126
|
+
const message = Array.isArray(message_) ? message_.slice() : [message_];
|
|
32127
|
+
let firstLine = color(`[${options.formatDate(date)}]`, colors.white) + ` ${color(logLevel.toUpperCase(), ...logLevelColors[logLevel])}` + ` (#${fiber2.id})`;
|
|
32128
|
+
const now = date.getTime();
|
|
32129
|
+
const spans = fiber2.getRef(CurrentLogSpans);
|
|
32130
|
+
for (const span of spans) {
|
|
32131
|
+
firstLine += " " + formatLogSpan(span, now);
|
|
32132
|
+
}
|
|
32133
|
+
firstLine += ":";
|
|
32134
|
+
let messageIndex = 0;
|
|
32135
|
+
if (message.length > 0) {
|
|
32136
|
+
const firstMaybeString = structuredMessage(message[0]);
|
|
32137
|
+
if (typeof firstMaybeString === "string") {
|
|
32138
|
+
firstLine += " " + color(firstMaybeString, colors.bold, colors.cyan);
|
|
32139
|
+
messageIndex++;
|
|
32140
|
+
}
|
|
32141
|
+
}
|
|
32142
|
+
log(firstLine);
|
|
32143
|
+
if (!processIsBun)
|
|
32144
|
+
console2.group();
|
|
32145
|
+
if (cause.reasons.length > 0) {
|
|
32146
|
+
log(causePretty(cause));
|
|
32147
|
+
}
|
|
32148
|
+
if (messageIndex < message.length) {
|
|
32149
|
+
for (;messageIndex < message.length; messageIndex++) {
|
|
32150
|
+
log(redact(message[messageIndex]));
|
|
32151
|
+
}
|
|
32152
|
+
}
|
|
32153
|
+
const annotations = fiber2.getRef(CurrentLogAnnotations);
|
|
32154
|
+
for (const [key, value] of Object.entries(annotations)) {
|
|
32155
|
+
log(color(`${key}:`, colors.bold, colors.white), redact(value));
|
|
32156
|
+
}
|
|
32157
|
+
if (!processIsBun)
|
|
32158
|
+
console2.groupEnd();
|
|
32159
|
+
});
|
|
32160
|
+
};
|
|
32161
|
+
var prettyLoggerBrowser = (options) => {
|
|
32162
|
+
const color = options.colors ? "%c" : "";
|
|
32163
|
+
return loggerMake(({
|
|
32164
|
+
cause,
|
|
32165
|
+
date,
|
|
32166
|
+
fiber: fiber2,
|
|
32167
|
+
logLevel,
|
|
32168
|
+
message: message_
|
|
32169
|
+
}) => {
|
|
32170
|
+
const console2 = fiber2.getRef(ConsoleRef);
|
|
32171
|
+
const message = Array.isArray(message_) ? message_.slice() : [message_];
|
|
32172
|
+
let firstLine = `${color}[${options.formatDate(date)}]`;
|
|
32173
|
+
const firstParams = [];
|
|
32174
|
+
if (options.colors) {
|
|
32175
|
+
firstParams.push("color:gray");
|
|
32176
|
+
}
|
|
32177
|
+
firstLine += ` ${color}${logLevel.toUpperCase()}${color} (#${fiber2.id})`;
|
|
32178
|
+
if (options.colors) {
|
|
32179
|
+
firstParams.push(logLevelStyle[logLevel], "");
|
|
32180
|
+
}
|
|
32181
|
+
const now = date.getTime();
|
|
32182
|
+
const spans = fiber2.getRef(CurrentLogSpans);
|
|
32183
|
+
for (const span of spans) {
|
|
32184
|
+
firstLine += " " + formatLogSpan(span, now);
|
|
32185
|
+
}
|
|
32186
|
+
firstLine += ":";
|
|
32187
|
+
let messageIndex = 0;
|
|
32188
|
+
if (message.length > 0) {
|
|
32189
|
+
const firstMaybeString = structuredMessage(message[0]);
|
|
32190
|
+
if (typeof firstMaybeString === "string") {
|
|
32191
|
+
firstLine += ` ${color}${firstMaybeString}`;
|
|
32192
|
+
if (options.colors) {
|
|
32193
|
+
firstParams.push("color:deepskyblue");
|
|
32194
|
+
}
|
|
32195
|
+
messageIndex++;
|
|
32196
|
+
}
|
|
32197
|
+
}
|
|
32198
|
+
console2.groupCollapsed(firstLine, ...firstParams);
|
|
32199
|
+
if (cause.reasons.length > 0) {
|
|
32200
|
+
console2.error(causePretty(cause));
|
|
32201
|
+
}
|
|
32202
|
+
if (messageIndex < message.length) {
|
|
32203
|
+
for (;messageIndex < message.length; messageIndex++) {
|
|
32204
|
+
console2.log(redact(message[messageIndex]));
|
|
32205
|
+
}
|
|
32206
|
+
}
|
|
32207
|
+
const annotations = fiber2.getRef(CurrentLogAnnotations);
|
|
32208
|
+
for (const [key, value] of Object.entries(annotations)) {
|
|
32209
|
+
const redacted = redact(value);
|
|
32210
|
+
if (options.colors) {
|
|
32211
|
+
console2.log(`%c${key}:`, "color:gray", redacted);
|
|
32212
|
+
} else {
|
|
32213
|
+
console2.log(`${key}:`, redacted);
|
|
32214
|
+
}
|
|
32215
|
+
}
|
|
32216
|
+
console2.groupEnd();
|
|
32217
|
+
});
|
|
32218
|
+
};
|
|
32076
32219
|
var defaultLogger = /* @__PURE__ */ loggerMake(({
|
|
32077
32220
|
cause,
|
|
32078
32221
|
date,
|
|
@@ -37505,10 +37648,30 @@ var getUnsafe3 = /* @__PURE__ */ dual(2, (self, index) => {
|
|
|
37505
37648
|
var size = (self) => self.length;
|
|
37506
37649
|
|
|
37507
37650
|
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/Fiber.js
|
|
37651
|
+
var exports_Fiber = {};
|
|
37652
|
+
__export(exports_Fiber, {
|
|
37653
|
+
runIn: () => runIn,
|
|
37654
|
+
joinAll: () => joinAll,
|
|
37655
|
+
join: () => join2,
|
|
37656
|
+
isFiber: () => isFiber,
|
|
37657
|
+
interruptAs: () => interruptAs,
|
|
37658
|
+
interruptAllAs: () => interruptAllAs,
|
|
37659
|
+
interruptAll: () => interruptAll,
|
|
37660
|
+
interrupt: () => interrupt5,
|
|
37661
|
+
getCurrent: () => getCurrent,
|
|
37662
|
+
awaitAll: () => awaitAll,
|
|
37663
|
+
await: () => await_
|
|
37664
|
+
});
|
|
37508
37665
|
var TypeId21 = `~effect/Fiber/${version}`;
|
|
37666
|
+
var await_ = fiberAwait;
|
|
37667
|
+
var awaitAll = fiberAwaitAll;
|
|
37509
37668
|
var join2 = fiberJoin;
|
|
37510
37669
|
var joinAll = fiberJoinAll;
|
|
37511
37670
|
var interrupt5 = fiberInterrupt;
|
|
37671
|
+
var interruptAs = fiberInterruptAs;
|
|
37672
|
+
var interruptAll = fiberInterruptAll;
|
|
37673
|
+
var interruptAllAs = fiberInterruptAllAs;
|
|
37674
|
+
var isFiber = (u) => hasProperty(u, FiberTypeId);
|
|
37512
37675
|
var getCurrent = getCurrentFiber;
|
|
37513
37676
|
var runIn = fiberRunIn;
|
|
37514
37677
|
|
|
@@ -58923,6 +59086,92 @@ function date2(name) {
|
|
|
58923
59086
|
return schema(DateValid, name);
|
|
58924
59087
|
}
|
|
58925
59088
|
var nested2 = /* @__PURE__ */ dual(2, (self, name) => make30((provider) => self.parse(nested(provider, name))));
|
|
59089
|
+
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/Ref.js
|
|
59090
|
+
var exports_Ref = {};
|
|
59091
|
+
__export(exports_Ref, {
|
|
59092
|
+
updateSomeAndGet: () => updateSomeAndGet,
|
|
59093
|
+
updateSome: () => updateSome,
|
|
59094
|
+
updateAndGet: () => updateAndGet,
|
|
59095
|
+
update: () => update2,
|
|
59096
|
+
setAndGet: () => setAndGet,
|
|
59097
|
+
set: () => set6,
|
|
59098
|
+
modifySome: () => modifySome,
|
|
59099
|
+
modify: () => modify3,
|
|
59100
|
+
makeUnsafe: () => makeUnsafe9,
|
|
59101
|
+
make: () => make31,
|
|
59102
|
+
getUnsafe: () => getUnsafe5,
|
|
59103
|
+
getAndUpdateSome: () => getAndUpdateSome,
|
|
59104
|
+
getAndUpdate: () => getAndUpdate,
|
|
59105
|
+
getAndSet: () => getAndSet,
|
|
59106
|
+
get: () => get9
|
|
59107
|
+
});
|
|
59108
|
+
var TypeId37 = "~effect/Ref";
|
|
59109
|
+
var RefProto = {
|
|
59110
|
+
[TypeId37]: {
|
|
59111
|
+
_A: identity
|
|
59112
|
+
},
|
|
59113
|
+
...PipeInspectableProto,
|
|
59114
|
+
toJSON() {
|
|
59115
|
+
return {
|
|
59116
|
+
_id: "Ref",
|
|
59117
|
+
ref: this.ref
|
|
59118
|
+
};
|
|
59119
|
+
}
|
|
59120
|
+
};
|
|
59121
|
+
var makeUnsafe9 = (value3) => {
|
|
59122
|
+
const self = Object.create(RefProto);
|
|
59123
|
+
self.ref = make16(value3);
|
|
59124
|
+
return self;
|
|
59125
|
+
};
|
|
59126
|
+
var make31 = (value3) => sync3(() => makeUnsafe9(value3));
|
|
59127
|
+
var get9 = (self) => sync3(() => self.ref.current);
|
|
59128
|
+
var set6 = /* @__PURE__ */ dual(2, (self, value3) => sync3(() => set2(self.ref, value3)));
|
|
59129
|
+
var getAndSet = /* @__PURE__ */ dual(2, (self, value3) => sync3(() => {
|
|
59130
|
+
const current = self.ref.current;
|
|
59131
|
+
self.ref.current = value3;
|
|
59132
|
+
return current;
|
|
59133
|
+
}));
|
|
59134
|
+
var getAndUpdate = /* @__PURE__ */ dual(2, (self, f) => sync3(() => {
|
|
59135
|
+
const current = self.ref.current;
|
|
59136
|
+
self.ref.current = f(current);
|
|
59137
|
+
return current;
|
|
59138
|
+
}));
|
|
59139
|
+
var getAndUpdateSome = /* @__PURE__ */ dual(2, (self, pf) => sync3(() => {
|
|
59140
|
+
const current = self.ref.current;
|
|
59141
|
+
const option5 = pf(current);
|
|
59142
|
+
if (option5._tag === "Some") {
|
|
59143
|
+
self.ref.current = option5.value;
|
|
59144
|
+
}
|
|
59145
|
+
return current;
|
|
59146
|
+
}));
|
|
59147
|
+
var setAndGet = /* @__PURE__ */ dual(2, (self, value3) => sync3(() => self.ref.current = value3));
|
|
59148
|
+
var modify3 = /* @__PURE__ */ dual(2, (self, f) => sync3(() => {
|
|
59149
|
+
const [b, a] = f(self.ref.current);
|
|
59150
|
+
self.ref.current = a;
|
|
59151
|
+
return b;
|
|
59152
|
+
}));
|
|
59153
|
+
var modifySome = /* @__PURE__ */ dual(2, (self, pf) => modify3(self, (value3) => {
|
|
59154
|
+
const [b, option5] = pf(value3);
|
|
59155
|
+
return [b, option5._tag === "None" ? value3 : option5.value];
|
|
59156
|
+
}));
|
|
59157
|
+
var update2 = /* @__PURE__ */ dual(2, (self, f) => sync3(() => {
|
|
59158
|
+
self.ref.current = f(self.ref.current);
|
|
59159
|
+
}));
|
|
59160
|
+
var updateAndGet = /* @__PURE__ */ dual(2, (self, f) => sync3(() => self.ref.current = f(self.ref.current)));
|
|
59161
|
+
var updateSome = /* @__PURE__ */ dual(2, (self, f) => sync3(() => {
|
|
59162
|
+
const option5 = f(self.ref.current);
|
|
59163
|
+
if (option5._tag === "Some") {
|
|
59164
|
+
self.ref.current = option5.value;
|
|
59165
|
+
}
|
|
59166
|
+
}));
|
|
59167
|
+
var updateSomeAndGet = /* @__PURE__ */ dual(2, (self, pf) => sync3(() => {
|
|
59168
|
+
const option5 = pf(self.ref.current);
|
|
59169
|
+
if (option5._tag === "Some") {
|
|
59170
|
+
self.ref.current = option5.value;
|
|
59171
|
+
}
|
|
59172
|
+
return self.ref.current;
|
|
59173
|
+
}));
|
|
59174
|
+
var getUnsafe5 = (self) => self.ref.current;
|
|
58926
59175
|
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/Console.js
|
|
58927
59176
|
var Console2 = ConsoleRef;
|
|
58928
59177
|
var consoleWith = (f) => withFiber((fiber3) => f(fiber3.getRef(Console2)));
|
|
@@ -58934,34 +59183,34 @@ var log2 = (...args2) => consoleWith((console2) => sync(() => {
|
|
|
58934
59183
|
}));
|
|
58935
59184
|
|
|
58936
59185
|
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/Stdio.js
|
|
58937
|
-
var
|
|
58938
|
-
var Stdio2 = /* @__PURE__ */ Service(
|
|
58939
|
-
var
|
|
58940
|
-
[
|
|
59186
|
+
var TypeId38 = "~effect/Stdio";
|
|
59187
|
+
var Stdio2 = /* @__PURE__ */ Service(TypeId38);
|
|
59188
|
+
var make32 = (options) => ({
|
|
59189
|
+
[TypeId38]: TypeId38,
|
|
58941
59190
|
...options
|
|
58942
59191
|
});
|
|
58943
59192
|
|
|
58944
59193
|
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/Terminal.js
|
|
58945
|
-
var
|
|
59194
|
+
var TypeId39 = "~effect/platform/Terminal";
|
|
58946
59195
|
var QuitErrorTypeId = "effect/platform/Terminal/QuitError";
|
|
58947
59196
|
var isQuitError = (u) => hasProperty(u, QuitErrorTypeId);
|
|
58948
59197
|
var Terminal2 = /* @__PURE__ */ Service("effect/platform/Terminal");
|
|
58949
|
-
var
|
|
59198
|
+
var make33 = (impl) => Terminal2.of({
|
|
58950
59199
|
...impl,
|
|
58951
|
-
[
|
|
59200
|
+
[TypeId39]: TypeId39
|
|
58952
59201
|
});
|
|
58953
59202
|
|
|
58954
59203
|
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/unstable/cli/CliError.js
|
|
58955
|
-
var
|
|
58956
|
-
var isCliError = (u) => hasProperty(u,
|
|
59204
|
+
var TypeId40 = "~effect/cli/CliError";
|
|
59205
|
+
var isCliError = (u) => hasProperty(u, TypeId40);
|
|
58957
59206
|
|
|
58958
|
-
class UnrecognizedOption extends (/* @__PURE__ */ ErrorClass(`${
|
|
59207
|
+
class UnrecognizedOption extends (/* @__PURE__ */ ErrorClass(`${TypeId40}/UnrecognizedOption`)({
|
|
58959
59208
|
_tag: /* @__PURE__ */ tag("UnrecognizedOption"),
|
|
58960
59209
|
option: String5,
|
|
58961
59210
|
command: /* @__PURE__ */ optional(/* @__PURE__ */ Array4(String5)),
|
|
58962
59211
|
suggestions: /* @__PURE__ */ Array4(String5)
|
|
58963
59212
|
})) {
|
|
58964
|
-
[
|
|
59213
|
+
[TypeId40] = TypeId40;
|
|
58965
59214
|
get message() {
|
|
58966
59215
|
const suggestionText = this.suggestions.length > 0 ? `
|
|
58967
59216
|
|
|
@@ -58973,46 +59222,46 @@ class UnrecognizedOption extends (/* @__PURE__ */ ErrorClass(`${TypeId39}/Unreco
|
|
|
58973
59222
|
}
|
|
58974
59223
|
}
|
|
58975
59224
|
|
|
58976
|
-
class DuplicateOption extends (/* @__PURE__ */ ErrorClass(`${
|
|
59225
|
+
class DuplicateOption extends (/* @__PURE__ */ ErrorClass(`${TypeId40}/DuplicateOption`)({
|
|
58977
59226
|
_tag: /* @__PURE__ */ tag("DuplicateOption"),
|
|
58978
59227
|
option: String5,
|
|
58979
59228
|
parentCommand: String5,
|
|
58980
59229
|
childCommand: String5
|
|
58981
59230
|
})) {
|
|
58982
|
-
[
|
|
59231
|
+
[TypeId40] = TypeId40;
|
|
58983
59232
|
get message() {
|
|
58984
59233
|
return `Duplicate flag name "${this.option}" in parent command "${this.parentCommand}" and subcommand "${this.childCommand}". ` + `Parent will always claim this flag (Mode A semantics). Consider renaming one of them to avoid confusion.`;
|
|
58985
59234
|
}
|
|
58986
59235
|
}
|
|
58987
59236
|
|
|
58988
|
-
class MissingOption extends (/* @__PURE__ */ ErrorClass(`${
|
|
59237
|
+
class MissingOption extends (/* @__PURE__ */ ErrorClass(`${TypeId40}/MissingOption`)({
|
|
58989
59238
|
_tag: /* @__PURE__ */ tag("MissingOption"),
|
|
58990
59239
|
option: String5
|
|
58991
59240
|
})) {
|
|
58992
|
-
[
|
|
59241
|
+
[TypeId40] = TypeId40;
|
|
58993
59242
|
get message() {
|
|
58994
59243
|
return `Missing required flag: --${this.option}`;
|
|
58995
59244
|
}
|
|
58996
59245
|
}
|
|
58997
59246
|
|
|
58998
|
-
class MissingArgument extends (/* @__PURE__ */ ErrorClass(`${
|
|
59247
|
+
class MissingArgument extends (/* @__PURE__ */ ErrorClass(`${TypeId40}/MissingArgument`)({
|
|
58999
59248
|
_tag: /* @__PURE__ */ tag("MissingArgument"),
|
|
59000
59249
|
argument: String5
|
|
59001
59250
|
})) {
|
|
59002
|
-
[
|
|
59251
|
+
[TypeId40] = TypeId40;
|
|
59003
59252
|
get message() {
|
|
59004
59253
|
return `Missing required argument: ${this.argument}`;
|
|
59005
59254
|
}
|
|
59006
59255
|
}
|
|
59007
59256
|
|
|
59008
|
-
class InvalidValue2 extends (/* @__PURE__ */ ErrorClass(`${
|
|
59257
|
+
class InvalidValue2 extends (/* @__PURE__ */ ErrorClass(`${TypeId40}/InvalidValue`)({
|
|
59009
59258
|
_tag: /* @__PURE__ */ tag("InvalidValue"),
|
|
59010
59259
|
option: String5,
|
|
59011
59260
|
value: String5,
|
|
59012
59261
|
expected: String5,
|
|
59013
59262
|
kind: /* @__PURE__ */ Union2([/* @__PURE__ */ Literal2("flag"), /* @__PURE__ */ Literal2("argument")])
|
|
59014
59263
|
})) {
|
|
59015
|
-
[
|
|
59264
|
+
[TypeId40] = TypeId40;
|
|
59016
59265
|
get message() {
|
|
59017
59266
|
if (this.kind === "argument") {
|
|
59018
59267
|
return `Invalid value for argument <${this.option}>: "${this.value}". Expected: ${this.expected}`;
|
|
@@ -59021,13 +59270,13 @@ class InvalidValue2 extends (/* @__PURE__ */ ErrorClass(`${TypeId39}/InvalidValu
|
|
|
59021
59270
|
}
|
|
59022
59271
|
}
|
|
59023
59272
|
|
|
59024
|
-
class UnknownSubcommand extends (/* @__PURE__ */ ErrorClass(`${
|
|
59273
|
+
class UnknownSubcommand extends (/* @__PURE__ */ ErrorClass(`${TypeId40}/UnknownSubcommand`)({
|
|
59025
59274
|
_tag: /* @__PURE__ */ tag("UnknownSubcommand"),
|
|
59026
59275
|
subcommand: String5,
|
|
59027
59276
|
parent: /* @__PURE__ */ optional(/* @__PURE__ */ Array4(String5)),
|
|
59028
59277
|
suggestions: /* @__PURE__ */ Array4(String5)
|
|
59029
59278
|
})) {
|
|
59030
|
-
[
|
|
59279
|
+
[TypeId40] = TypeId40;
|
|
59031
59280
|
get message() {
|
|
59032
59281
|
const suggestionText = this.suggestions.length > 0 ? `
|
|
59033
59282
|
|
|
@@ -59038,20 +59287,20 @@ class UnknownSubcommand extends (/* @__PURE__ */ ErrorClass(`${TypeId39}/Unknown
|
|
|
59038
59287
|
}
|
|
59039
59288
|
}
|
|
59040
59289
|
|
|
59041
|
-
class UserError extends (/* @__PURE__ */ ErrorClass(`${
|
|
59290
|
+
class UserError extends (/* @__PURE__ */ ErrorClass(`${TypeId40}/UserError`)({
|
|
59042
59291
|
_tag: /* @__PURE__ */ tag("UserError"),
|
|
59043
59292
|
cause: Defect
|
|
59044
59293
|
})) {
|
|
59045
|
-
[
|
|
59294
|
+
[TypeId40] = TypeId40;
|
|
59046
59295
|
}
|
|
59047
59296
|
var NonShowHelpErrors = /* @__PURE__ */ Union2([UnrecognizedOption, DuplicateOption, MissingOption, MissingArgument, InvalidValue2, UnknownSubcommand, UserError]);
|
|
59048
59297
|
|
|
59049
|
-
class ShowHelp extends (/* @__PURE__ */ ErrorClass(`${
|
|
59298
|
+
class ShowHelp extends (/* @__PURE__ */ ErrorClass(`${TypeId40}/ShowHelp`)({
|
|
59050
59299
|
_tag: /* @__PURE__ */ tag("ShowHelp"),
|
|
59051
59300
|
commandPath: /* @__PURE__ */ Array4(String5),
|
|
59052
59301
|
errors: /* @__PURE__ */ Array4(NonShowHelpErrors)
|
|
59053
59302
|
})) {
|
|
59054
|
-
[
|
|
59303
|
+
[TypeId40] = TypeId40;
|
|
59055
59304
|
[errorExitCode] = this.errors.length ? 1 : 0;
|
|
59056
59305
|
[errorReported] = false;
|
|
59057
59306
|
get message() {
|
|
@@ -59819,9 +60068,9 @@ var $visit = visit.visit;
|
|
|
59819
60068
|
var $visitAsync = visit.visitAsync;
|
|
59820
60069
|
|
|
59821
60070
|
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/unstable/cli/Primitive.js
|
|
59822
|
-
var
|
|
60071
|
+
var TypeId41 = "~effect/cli/Primitive";
|
|
59823
60072
|
var Proto7 = {
|
|
59824
|
-
[
|
|
60073
|
+
[TypeId41]: {
|
|
59825
60074
|
_A: identity
|
|
59826
60075
|
}
|
|
59827
60076
|
};
|
|
@@ -59888,18 +60137,18 @@ var getTypeName = (primitive) => {
|
|
|
59888
60137
|
var getChoiceKeys = (primitive) => primitive._tag === "Choice" ? primitive.choiceKeys : undefined;
|
|
59889
60138
|
|
|
59890
60139
|
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/unstable/cli/Param.js
|
|
59891
|
-
var
|
|
60140
|
+
var TypeId42 = "~effect/cli/Param";
|
|
59892
60141
|
var argumentKind = "argument";
|
|
59893
60142
|
var flagKind = "flag";
|
|
59894
60143
|
var Proto8 = {
|
|
59895
|
-
[
|
|
60144
|
+
[TypeId42]: {
|
|
59896
60145
|
_A: identity
|
|
59897
60146
|
},
|
|
59898
60147
|
pipe() {
|
|
59899
60148
|
return pipeArguments(this, arguments);
|
|
59900
60149
|
}
|
|
59901
60150
|
};
|
|
59902
|
-
var isParam = (u) => hasProperty(u,
|
|
60151
|
+
var isParam = (u) => hasProperty(u, TypeId42);
|
|
59903
60152
|
var isFlagParam = (single) => single.kind === "flag";
|
|
59904
60153
|
var makeSingle = (params) => {
|
|
59905
60154
|
const parse3 = (args2) => params.kind === argumentKind ? parsePositional(params.name, params.primitiveType, args2) : parseFlag(params.name, params.primitiveType, args2);
|
|
@@ -60252,7 +60501,7 @@ var reconstructTree = (tree, results) => {
|
|
|
60252
60501
|
};
|
|
60253
60502
|
|
|
60254
60503
|
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/unstable/cli/internal/command.js
|
|
60255
|
-
var
|
|
60504
|
+
var TypeId43 = "~effect/cli/Command";
|
|
60256
60505
|
var toImpl = (self) => self;
|
|
60257
60506
|
var Proto9 = {
|
|
60258
60507
|
...YieldableProto,
|
|
@@ -60266,7 +60515,7 @@ var Proto9 = {
|
|
|
60266
60515
|
var makeCommand = (options) => {
|
|
60267
60516
|
const config = options.config;
|
|
60268
60517
|
const contextConfig = options.contextConfig ?? emptyConfig;
|
|
60269
|
-
const service3 = options.service ?? Service(`${
|
|
60518
|
+
const service3 = options.service ?? Service(`${TypeId43}/${options.name}`);
|
|
60270
60519
|
const annotations2 = options.annotations ?? empty3();
|
|
60271
60520
|
const globalFlags = options.globalFlags ?? [];
|
|
60272
60521
|
const subcommands = options.subcommands ?? [];
|
|
@@ -60337,7 +60586,7 @@ var makeCommand = (options) => {
|
|
|
60337
60586
|
};
|
|
60338
60587
|
};
|
|
60339
60588
|
return Object.assign(Object.create(Proto9), {
|
|
60340
|
-
[
|
|
60589
|
+
[TypeId43]: TypeId43,
|
|
60341
60590
|
name: options.name,
|
|
60342
60591
|
examples: options.examples ?? [],
|
|
60343
60592
|
annotations: annotations2,
|
|
@@ -61074,8 +61323,8 @@ var scanCommandLevel = (tokens, context2) => {
|
|
|
61074
61323
|
};
|
|
61075
61324
|
|
|
61076
61325
|
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/unstable/cli/Command.js
|
|
61077
|
-
var isCommand = (u) => hasProperty(u,
|
|
61078
|
-
var
|
|
61326
|
+
var isCommand = (u) => hasProperty(u, TypeId43);
|
|
61327
|
+
var make34 = (name, config, handler) => {
|
|
61079
61328
|
const parsedConfig = parseConfig(config ?? {});
|
|
61080
61329
|
return makeCommand({
|
|
61081
61330
|
name,
|
|
@@ -61331,7 +61580,7 @@ var HandleProto = {
|
|
|
61331
61580
|
}
|
|
61332
61581
|
};
|
|
61333
61582
|
var makeHandle = (params) => Object.assign(Object.create(HandleProto), params);
|
|
61334
|
-
var
|
|
61583
|
+
var make35 = (spawn) => {
|
|
61335
61584
|
const streamString = (command, options) => spawn(command).pipe(map8((handle) => decodeText(options?.includeStderr === true ? handle.all : handle.stdout)), unwrap4);
|
|
61336
61585
|
const streamLines = (command, options) => splitLines2(streamString(command, options));
|
|
61337
61586
|
return ChildProcessSpawner.of({
|
|
@@ -61348,11 +61597,11 @@ class ChildProcessSpawner extends (/* @__PURE__ */ Service()("effect/process/Chi
|
|
|
61348
61597
|
}
|
|
61349
61598
|
|
|
61350
61599
|
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/unstable/process/ChildProcess.js
|
|
61351
|
-
var
|
|
61600
|
+
var TypeId44 = "~effect/unstable/process/ChildProcess";
|
|
61352
61601
|
var Proto10 = {
|
|
61353
61602
|
...PipeInspectableProto,
|
|
61354
61603
|
...YieldableProto,
|
|
61355
|
-
[
|
|
61604
|
+
[TypeId44]: TypeId44,
|
|
61356
61605
|
asEffect() {
|
|
61357
61606
|
return ChildProcessSpawner.use((_) => _.spawn(this));
|
|
61358
61607
|
}
|
|
@@ -61363,7 +61612,7 @@ var makeStandardCommand = (command, args2, options) => Object.assign(Object.crea
|
|
|
61363
61612
|
args: args2,
|
|
61364
61613
|
options
|
|
61365
61614
|
});
|
|
61366
|
-
var
|
|
61615
|
+
var make36 = function make37(...args2) {
|
|
61367
61616
|
if (isTemplateString(args2[0])) {
|
|
61368
61617
|
const [templates, ...expressions] = args2;
|
|
61369
61618
|
const tokens = parseTemplates(templates, expressions);
|
|
@@ -61623,7 +61872,7 @@ var toPlatformError = (method, error2, command) => {
|
|
|
61623
61872
|
}, "");
|
|
61624
61873
|
return handleErrnoException("ChildProcess", method)(error2, [commandStr]);
|
|
61625
61874
|
};
|
|
61626
|
-
var
|
|
61875
|
+
var make38 = /* @__PURE__ */ gen3(function* () {
|
|
61627
61876
|
const fs = yield* FileSystem;
|
|
61628
61877
|
const path3 = yield* Path;
|
|
61629
61878
|
const resolveWorkingDirectory = fnUntraced2(function* (options) {
|
|
@@ -61955,7 +62204,7 @@ var make37 = /* @__PURE__ */ gen3(function* () {
|
|
|
61955
62204
|
const sourceStream = unwrap4(map8(handle, (h2) => getSourceStream(h2, options.from)));
|
|
61956
62205
|
const toOption2 = options.to ?? "stdin";
|
|
61957
62206
|
if (toOption2 === "stdin") {
|
|
61958
|
-
handle = spawnCommand(
|
|
62207
|
+
handle = spawnCommand(make36(command.command, command.args, {
|
|
61959
62208
|
...command.options,
|
|
61960
62209
|
stdin: {
|
|
61961
62210
|
...stdinConfig,
|
|
@@ -61967,7 +62216,7 @@ var make37 = /* @__PURE__ */ gen3(function* () {
|
|
|
61967
62216
|
if (isNotUndefined(fd)) {
|
|
61968
62217
|
const fdName2 = fdName(fd);
|
|
61969
62218
|
const existingFds = command.options.additionalFds ?? {};
|
|
61970
|
-
handle = spawnCommand(
|
|
62219
|
+
handle = spawnCommand(make36(command.command, command.args, {
|
|
61971
62220
|
...command.options,
|
|
61972
62221
|
additionalFds: {
|
|
61973
62222
|
...existingFds,
|
|
@@ -61978,7 +62227,7 @@ var make37 = /* @__PURE__ */ gen3(function* () {
|
|
|
61978
62227
|
}
|
|
61979
62228
|
}));
|
|
61980
62229
|
} else {
|
|
61981
|
-
handle = spawnCommand(
|
|
62230
|
+
handle = spawnCommand(make36(command.command, command.args, {
|
|
61982
62231
|
...command.options,
|
|
61983
62232
|
stdin: {
|
|
61984
62233
|
...stdinConfig,
|
|
@@ -61992,9 +62241,9 @@ var make37 = /* @__PURE__ */ gen3(function* () {
|
|
|
61992
62241
|
}
|
|
61993
62242
|
}
|
|
61994
62243
|
});
|
|
61995
|
-
return
|
|
62244
|
+
return make35(spawnCommand);
|
|
61996
62245
|
});
|
|
61997
|
-
var layer = /* @__PURE__ */ effect(ChildProcessSpawner,
|
|
62246
|
+
var layer = /* @__PURE__ */ effect(ChildProcessSpawner, make38);
|
|
61998
62247
|
var flattenCommand = (command) => {
|
|
61999
62248
|
const commands2 = [];
|
|
62000
62249
|
const pipeOptions = [];
|
|
@@ -62446,7 +62695,7 @@ var layer4 = /* @__PURE__ */ succeed5(Path)({
|
|
|
62446
62695
|
var layer5 = layer4;
|
|
62447
62696
|
|
|
62448
62697
|
// ../../node_modules/.bun/@effect+platform-node-shared@4.0.0-beta.33+af2afa6dfab141e3/node_modules/@effect/platform-node-shared/dist/NodeStdio.js
|
|
62449
|
-
var layer6 = /* @__PURE__ */ succeed5(Stdio2, /* @__PURE__ */
|
|
62698
|
+
var layer6 = /* @__PURE__ */ succeed5(Stdio2, /* @__PURE__ */ make32({
|
|
62450
62699
|
args: /* @__PURE__ */ sync3(() => process.argv.slice(2)),
|
|
62451
62700
|
stdout: (options) => fromWritable({
|
|
62452
62701
|
evaluate: () => process.stdout,
|
|
@@ -62485,7 +62734,7 @@ var layer7 = layer6;
|
|
|
62485
62734
|
|
|
62486
62735
|
// ../../node_modules/.bun/@effect+platform-node-shared@4.0.0-beta.33+af2afa6dfab141e3/node_modules/@effect/platform-node-shared/dist/NodeTerminal.js
|
|
62487
62736
|
import * as readline from "readline";
|
|
62488
|
-
var
|
|
62737
|
+
var make39 = /* @__PURE__ */ fnUntraced2(function* (shouldQuit = defaultShouldQuit) {
|
|
62489
62738
|
const stdin = process.stdin;
|
|
62490
62739
|
const stdout = process.stdout;
|
|
62491
62740
|
const rlRef = yield* make21({
|
|
@@ -62542,14 +62791,14 @@ var make38 = /* @__PURE__ */ fnUntraced2(function* (shouldQuit = defaultShouldQu
|
|
|
62542
62791
|
cause: err
|
|
62543
62792
|
}))));
|
|
62544
62793
|
}));
|
|
62545
|
-
return
|
|
62794
|
+
return make33({
|
|
62546
62795
|
columns,
|
|
62547
62796
|
readInput,
|
|
62548
62797
|
readLine,
|
|
62549
62798
|
display
|
|
62550
62799
|
});
|
|
62551
62800
|
});
|
|
62552
|
-
var layer8 = /* @__PURE__ */ effect(Terminal2, /* @__PURE__ */
|
|
62801
|
+
var layer8 = /* @__PURE__ */ effect(Terminal2, /* @__PURE__ */ make39(defaultShouldQuit));
|
|
62553
62802
|
function defaultShouldQuit(input) {
|
|
62554
62803
|
return input.key.ctrl && (input.key.name === "c" || input.key.name === "d");
|
|
62555
62804
|
}
|
|
@@ -62561,10 +62810,11 @@ var layer9 = layer8;
|
|
|
62561
62810
|
var layer10 = /* @__PURE__ */ layer.pipe(/* @__PURE__ */ provideMerge(/* @__PURE__ */ mergeAll2(layer3, layer5, layer7, layer9)));
|
|
62562
62811
|
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/Logger.js
|
|
62563
62812
|
var CurrentLoggers2 = CurrentLoggers;
|
|
62813
|
+
var LogToStderr2 = LogToStderr;
|
|
62564
62814
|
var map17 = /* @__PURE__ */ dual(2, (self, f) => loggerMake((options) => f(self.log(options))));
|
|
62565
|
-
var
|
|
62815
|
+
var withConsoleError = (self) => loggerMake((options) => {
|
|
62566
62816
|
const console2 = options.fiber.getRef(ConsoleRef);
|
|
62567
|
-
return console2.
|
|
62817
|
+
return console2.error(self.log(options));
|
|
62568
62818
|
});
|
|
62569
62819
|
var formatFiberId = (fiberId3) => `#${fiberId3}`;
|
|
62570
62820
|
var formatStructured = /* @__PURE__ */ loggerMake(({
|
|
@@ -62597,7 +62847,7 @@ var formatStructured = /* @__PURE__ */ loggerMake(({
|
|
|
62597
62847
|
};
|
|
62598
62848
|
});
|
|
62599
62849
|
var formatJson2 = /* @__PURE__ */ map17(formatStructured, formatJson);
|
|
62600
|
-
var
|
|
62850
|
+
var consolePretty2 = consolePretty;
|
|
62601
62851
|
var layer11 = (loggers, options) => effect(CurrentLoggers2, withFiber(fnUntraced(function* (fiber3) {
|
|
62602
62852
|
const currentLoggers = new Set(options?.mergeWithExisting === true ? fiber3.getRef(CurrentLoggers) : []);
|
|
62603
62853
|
for (const logger of loggers) {
|
|
@@ -62606,9 +62856,6 @@ var layer11 = (loggers, options) => effect(CurrentLoggers2, withFiber(fnUntraced
|
|
|
62606
62856
|
return currentLoggers;
|
|
62607
62857
|
})));
|
|
62608
62858
|
|
|
62609
|
-
// ../../packages/core/src/BaseRuntimeLayer.ts
|
|
62610
|
-
var BaseRuntimeLayer = exports_Layer.mergeAll(exports_BunServices.layer, layer11([consoleJson]));
|
|
62611
|
-
|
|
62612
62859
|
// ../../packages/core/src/Logging.ts
|
|
62613
62860
|
var REDACTED = "<redacted>";
|
|
62614
62861
|
var DEFAULT_PREVIEW_LENGTH = 400;
|
|
@@ -62653,15 +62900,23 @@ var truncateForLog = (value3, maxLength = DEFAULT_PREVIEW_LENGTH) => {
|
|
|
62653
62900
|
}
|
|
62654
62901
|
return `${value3.slice(0, maxLength)}... [truncated ${value3.length - maxLength} chars]`;
|
|
62655
62902
|
};
|
|
62903
|
+
var makeRuntimeLogger = (jsonLogs) => jsonLogs ? withConsoleError(formatJson2) : consolePretty2({ colors: true, mode: "tty" });
|
|
62656
62904
|
var withSanitizedAnnotations = (effect2, fields) => {
|
|
62657
62905
|
if (!fields || Object.keys(fields).length === 0) {
|
|
62658
62906
|
return effect2;
|
|
62659
62907
|
}
|
|
62660
62908
|
return effect2.pipe(exports_Effect.annotateLogs(sanitizeForLog(fields)));
|
|
62661
62909
|
};
|
|
62662
|
-
var withLogAnnotations = (fields) => (effect2) => withSanitizedAnnotations(effect2, fields);
|
|
62663
62910
|
var logInfo2 = (message, fields) => withSanitizedAnnotations(exports_Effect.logInfo(message), fields);
|
|
62664
62911
|
var logError2 = (message, fields) => withSanitizedAnnotations(exports_Effect.logError(message), fields);
|
|
62912
|
+
var logWarning2 = (message, fields) => withSanitizedAnnotations(exports_Effect.logWarning(message), fields);
|
|
62913
|
+
var logDebug2 = (message, fields) => withSanitizedAnnotations(exports_Effect.logDebug(message), fields);
|
|
62914
|
+
|
|
62915
|
+
// ../../packages/core/src/BaseRuntimeLayer.ts
|
|
62916
|
+
var makeBaseRuntimeLayer = ({ jsonLogs }) => exports_Layer.mergeAll(exports_BunServices.layer, layer11([makeRuntimeLogger(jsonLogs)]), exports_Layer.succeed(LogToStderr2)(true));
|
|
62917
|
+
var BaseRuntimeLayer = makeBaseRuntimeLayer({
|
|
62918
|
+
jsonLogs: false
|
|
62919
|
+
});
|
|
62665
62920
|
|
|
62666
62921
|
// ../../node_modules/.bun/jsonrepair@3.13.3/node_modules/jsonrepair/lib/esm/utils/JSONRepairError.js
|
|
62667
62922
|
class JSONRepairError extends Error {
|
|
@@ -63362,11 +63617,11 @@ __export(exports_FetchHttpClient, {
|
|
|
63362
63617
|
});
|
|
63363
63618
|
|
|
63364
63619
|
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/unstable/http/Headers.js
|
|
63365
|
-
var
|
|
63620
|
+
var TypeId45 = /* @__PURE__ */ Symbol.for("~effect/http/Headers");
|
|
63366
63621
|
var Proto11 = /* @__PURE__ */ Object.create(null);
|
|
63367
63622
|
Object.defineProperties(Proto11, {
|
|
63368
|
-
[
|
|
63369
|
-
value:
|
|
63623
|
+
[TypeId45]: {
|
|
63624
|
+
value: TypeId45
|
|
63370
63625
|
},
|
|
63371
63626
|
[symbolRedactable]: {
|
|
63372
63627
|
value(context2) {
|
|
@@ -63395,7 +63650,7 @@ Object.defineProperties(Proto11, {
|
|
|
63395
63650
|
value: BaseProto[NodeInspectSymbol]
|
|
63396
63651
|
}
|
|
63397
63652
|
});
|
|
63398
|
-
var
|
|
63653
|
+
var make40 = (input) => Object.assign(Object.create(Proto11), input);
|
|
63399
63654
|
var Equivalence6 = /* @__PURE__ */ makeEquivalence4(/* @__PURE__ */ strictEqual());
|
|
63400
63655
|
var empty12 = /* @__PURE__ */ Object.create(Proto11);
|
|
63401
63656
|
var fromInput2 = (input) => {
|
|
@@ -63419,22 +63674,22 @@ var fromInput2 = (input) => {
|
|
|
63419
63674
|
return out;
|
|
63420
63675
|
};
|
|
63421
63676
|
var fromRecordUnsafe = (input) => Object.setPrototypeOf(input, Proto11);
|
|
63422
|
-
var
|
|
63423
|
-
const out =
|
|
63677
|
+
var set7 = /* @__PURE__ */ dual(3, (self, key, value3) => {
|
|
63678
|
+
const out = make40(self);
|
|
63424
63679
|
out[key.toLowerCase()] = value3;
|
|
63425
63680
|
return out;
|
|
63426
63681
|
});
|
|
63427
|
-
var setAll = /* @__PURE__ */ dual(2, (self, headers) =>
|
|
63682
|
+
var setAll = /* @__PURE__ */ dual(2, (self, headers) => make40({
|
|
63428
63683
|
...self,
|
|
63429
63684
|
...fromInput2(headers)
|
|
63430
63685
|
}));
|
|
63431
63686
|
var merge6 = /* @__PURE__ */ dual(2, (self, headers) => {
|
|
63432
|
-
const out =
|
|
63687
|
+
const out = make40(self);
|
|
63433
63688
|
Object.assign(out, headers);
|
|
63434
63689
|
return out;
|
|
63435
63690
|
});
|
|
63436
63691
|
var remove7 = /* @__PURE__ */ dual(2, (self, key) => {
|
|
63437
|
-
const out =
|
|
63692
|
+
const out = make40(self);
|
|
63438
63693
|
delete out[key.toLowerCase()];
|
|
63439
63694
|
return out;
|
|
63440
63695
|
});
|
|
@@ -63442,7 +63697,7 @@ var redact4 = /* @__PURE__ */ dual(2, (self, key) => {
|
|
|
63442
63697
|
const out = {
|
|
63443
63698
|
...self
|
|
63444
63699
|
};
|
|
63445
|
-
const
|
|
63700
|
+
const modify4 = (key2) => {
|
|
63446
63701
|
if (typeof key2 === "string") {
|
|
63447
63702
|
const k = key2.toLowerCase();
|
|
63448
63703
|
if (k in self) {
|
|
@@ -63458,10 +63713,10 @@ var redact4 = /* @__PURE__ */ dual(2, (self, key) => {
|
|
|
63458
63713
|
};
|
|
63459
63714
|
if (Array.isArray(key)) {
|
|
63460
63715
|
for (let i = 0;i < key.length; i++) {
|
|
63461
|
-
|
|
63716
|
+
modify4(key[i]);
|
|
63462
63717
|
}
|
|
63463
63718
|
} else {
|
|
63464
|
-
|
|
63719
|
+
modify4(key);
|
|
63465
63720
|
}
|
|
63466
63721
|
return out;
|
|
63467
63722
|
});
|
|
@@ -63491,7 +63746,7 @@ __export(exports_HttpClient, {
|
|
|
63491
63746
|
mapRequestEffect: () => mapRequestEffect,
|
|
63492
63747
|
mapRequest: () => mapRequest,
|
|
63493
63748
|
makeWith: () => makeWith2,
|
|
63494
|
-
make: () =>
|
|
63749
|
+
make: () => make43,
|
|
63495
63750
|
layerMergedServices: () => layerMergedServices,
|
|
63496
63751
|
isHttpClient: () => isHttpClient,
|
|
63497
63752
|
head: () => head2,
|
|
@@ -63512,25 +63767,6 @@ __export(exports_HttpClient, {
|
|
|
63512
63767
|
HttpClient: () => HttpClient
|
|
63513
63768
|
});
|
|
63514
63769
|
|
|
63515
|
-
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/Ref.js
|
|
63516
|
-
var TypeId45 = "~effect/Ref";
|
|
63517
|
-
var RefProto = {
|
|
63518
|
-
[TypeId45]: {
|
|
63519
|
-
_A: identity
|
|
63520
|
-
},
|
|
63521
|
-
...PipeInspectableProto,
|
|
63522
|
-
toJSON() {
|
|
63523
|
-
return {
|
|
63524
|
-
_id: "Ref",
|
|
63525
|
-
ref: this.ref
|
|
63526
|
-
};
|
|
63527
|
-
}
|
|
63528
|
-
};
|
|
63529
|
-
var get9 = (self) => sync3(() => self.ref.current);
|
|
63530
|
-
var update2 = /* @__PURE__ */ dual(2, (self, f) => sync3(() => {
|
|
63531
|
-
self.ref.current = f(self.ref.current);
|
|
63532
|
-
}));
|
|
63533
|
-
|
|
63534
63770
|
// ../../node_modules/.bun/effect@4.0.0-beta.33/node_modules/effect/dist/unstable/http/Cookies.js
|
|
63535
63771
|
var TypeId46 = "~effect/http/Cookies";
|
|
63536
63772
|
var CookieTypeId = "~effect/http/Cookies/Cookie";
|
|
@@ -63853,9 +64089,9 @@ __export(exports_HttpClientRequest, {
|
|
|
63853
64089
|
post: () => post,
|
|
63854
64090
|
patch: () => patch,
|
|
63855
64091
|
options: () => options,
|
|
63856
|
-
modify: () =>
|
|
64092
|
+
modify: () => modify4,
|
|
63857
64093
|
makeWith: () => makeWith,
|
|
63858
|
-
make: () =>
|
|
64094
|
+
make: () => make42,
|
|
63859
64095
|
isHttpClientRequest: () => isHttpClientRequest,
|
|
63860
64096
|
head: () => head,
|
|
63861
64097
|
get: () => get10,
|
|
@@ -63901,7 +64137,7 @@ var Proto13 = {
|
|
|
63901
64137
|
return array(this.params.flat());
|
|
63902
64138
|
}
|
|
63903
64139
|
};
|
|
63904
|
-
var
|
|
64140
|
+
var make41 = (params) => {
|
|
63905
64141
|
const self = Object.create(Proto13);
|
|
63906
64142
|
self.params = params;
|
|
63907
64143
|
return self;
|
|
@@ -63917,7 +64153,7 @@ var fromInput3 = (input) => {
|
|
|
63917
64153
|
out.push(parsed[i]);
|
|
63918
64154
|
}
|
|
63919
64155
|
}
|
|
63920
|
-
return
|
|
64156
|
+
return make41(out);
|
|
63921
64157
|
};
|
|
63922
64158
|
var fromInputNested = (input) => {
|
|
63923
64159
|
const entries3 = typeof input[Symbol.iterator] === "function" ? fromIterable2(input) : Object.entries(input);
|
|
@@ -63955,13 +64191,13 @@ var UrlParamsSchema = /* @__PURE__ */ declare(isUrlParams, {
|
|
|
63955
64191
|
expected: "UrlParams",
|
|
63956
64192
|
toEquivalence: () => Equivalence7,
|
|
63957
64193
|
toCodec: () => link()(Array4(Tuple2([String5, String5])), transform2({
|
|
63958
|
-
decode:
|
|
64194
|
+
decode: make41,
|
|
63959
64195
|
encode: (self) => self.params
|
|
63960
64196
|
}))
|
|
63961
64197
|
});
|
|
63962
|
-
var empty13 = /* @__PURE__ */
|
|
63963
|
-
var
|
|
63964
|
-
var transform4 = /* @__PURE__ */ dual(2, (self, f) =>
|
|
64198
|
+
var empty13 = /* @__PURE__ */ make41([]);
|
|
64199
|
+
var set9 = /* @__PURE__ */ dual(3, (self, key, value3) => make41(append(filter4(self.params, ([k]) => k !== key), [key, String(value3)])));
|
|
64200
|
+
var transform4 = /* @__PURE__ */ dual(2, (self, f) => make41(f(self.params)));
|
|
63965
64201
|
var setAll2 = /* @__PURE__ */ dual(2, (self, input) => {
|
|
63966
64202
|
const out = fromInput3(input);
|
|
63967
64203
|
const params = out.params;
|
|
@@ -63976,7 +64212,7 @@ var setAll2 = /* @__PURE__ */ dual(2, (self, input) => {
|
|
|
63976
64212
|
}
|
|
63977
64213
|
return out;
|
|
63978
64214
|
});
|
|
63979
|
-
var append3 = /* @__PURE__ */ dual(3, (self, key, value3) =>
|
|
64215
|
+
var append3 = /* @__PURE__ */ dual(3, (self, key, value3) => make41(append(self.params, [key, String(value3)])));
|
|
63980
64216
|
var appendAll3 = /* @__PURE__ */ dual(2, (self, input) => transform4(self, appendAll(fromInput3(input).params)));
|
|
63981
64217
|
class UrlParamsError extends (/* @__PURE__ */ TaggedError2("UrlParamsError")) {
|
|
63982
64218
|
}
|
|
@@ -64203,20 +64439,20 @@ function makeWith(method, url2, urlParams2, hash3, headers, body) {
|
|
|
64203
64439
|
return self;
|
|
64204
64440
|
}
|
|
64205
64441
|
var empty15 = /* @__PURE__ */ makeWith("GET", "", empty13, /* @__PURE__ */ none2(), empty12, empty14);
|
|
64206
|
-
var
|
|
64442
|
+
var make42 = (method) => (url2, options) => modify4(empty15, {
|
|
64207
64443
|
method,
|
|
64208
64444
|
url: url2,
|
|
64209
64445
|
...options ?? undefined
|
|
64210
64446
|
});
|
|
64211
|
-
var get10 = /* @__PURE__ */
|
|
64212
|
-
var post = /* @__PURE__ */
|
|
64213
|
-
var patch = /* @__PURE__ */
|
|
64214
|
-
var put = /* @__PURE__ */
|
|
64215
|
-
var del = /* @__PURE__ */
|
|
64216
|
-
var head = /* @__PURE__ */
|
|
64217
|
-
var options = /* @__PURE__ */
|
|
64218
|
-
var trace = /* @__PURE__ */
|
|
64219
|
-
var
|
|
64447
|
+
var get10 = /* @__PURE__ */ make42("GET");
|
|
64448
|
+
var post = /* @__PURE__ */ make42("POST");
|
|
64449
|
+
var patch = /* @__PURE__ */ make42("PATCH");
|
|
64450
|
+
var put = /* @__PURE__ */ make42("PUT");
|
|
64451
|
+
var del = /* @__PURE__ */ make42("DELETE");
|
|
64452
|
+
var head = /* @__PURE__ */ make42("HEAD");
|
|
64453
|
+
var options = /* @__PURE__ */ make42("OPTIONS");
|
|
64454
|
+
var trace = /* @__PURE__ */ make42("TRACE");
|
|
64455
|
+
var modify4 = /* @__PURE__ */ dual(2, (self, options2) => {
|
|
64220
64456
|
let result4 = self;
|
|
64221
64457
|
if (options2.method) {
|
|
64222
64458
|
result4 = setMethod(result4, options2.method);
|
|
@@ -64245,7 +64481,7 @@ var modify3 = /* @__PURE__ */ dual(2, (self, options2) => {
|
|
|
64245
64481
|
return result4;
|
|
64246
64482
|
});
|
|
64247
64483
|
var setMethod = /* @__PURE__ */ dual(2, (self, method) => makeWith(method, self.url, self.urlParams, self.hash, self.headers, self.body));
|
|
64248
|
-
var setHeader = /* @__PURE__ */ dual(3, (self, key, value3) => makeWith(self.method, self.url, self.urlParams, self.hash,
|
|
64484
|
+
var setHeader = /* @__PURE__ */ dual(3, (self, key, value3) => makeWith(self.method, self.url, self.urlParams, self.hash, set7(self.headers, key, value3), self.body));
|
|
64249
64485
|
var setHeaders = /* @__PURE__ */ dual(2, (self, input) => makeWith(self.method, self.url, self.urlParams, self.hash, setAll(self.headers, input), self.body));
|
|
64250
64486
|
var basicAuth = /* @__PURE__ */ dual(3, (self, username, password) => setHeader(self, "Authorization", `Basic ${btoa(`${stringOrRedacted(username)}:${stringOrRedacted(password)}`)}`));
|
|
64251
64487
|
var bearerToken = /* @__PURE__ */ dual(2, (self, token) => setHeader(self, "Authorization", `Bearer ${stringOrRedacted(token)}`));
|
|
@@ -64280,7 +64516,7 @@ var joinSegments = (first, second) => {
|
|
|
64280
64516
|
return needsTrim ? first + second.slice(1) : needsSlash ? first + "/" + second : first + second;
|
|
64281
64517
|
};
|
|
64282
64518
|
var updateUrl = /* @__PURE__ */ dual(2, (self, f) => makeWith(self.method, f(self.url), self.urlParams, self.hash, self.headers, self.body));
|
|
64283
|
-
var setUrlParam = /* @__PURE__ */ dual(3, (self, key, value3) => makeWith(self.method, self.url,
|
|
64519
|
+
var setUrlParam = /* @__PURE__ */ dual(3, (self, key, value3) => makeWith(self.method, self.url, set9(self.urlParams, key, value3), self.hash, self.headers, self.body));
|
|
64284
64520
|
var setUrlParams = /* @__PURE__ */ dual(2, (self, input) => makeWith(self.method, self.url, setAll2(self.urlParams, input), self.hash, self.headers, self.body));
|
|
64285
64521
|
var appendUrlParam = /* @__PURE__ */ dual(3, (self, key, value3) => makeWith(self.method, self.url, append3(self.urlParams, key, value3), self.hash, self.headers, self.body));
|
|
64286
64522
|
var appendUrlParams = /* @__PURE__ */ dual(2, (self, input) => makeWith(self.method, self.url, appendAll3(self.urlParams, input), self.hash, self.headers, self.body));
|
|
@@ -64292,10 +64528,10 @@ var setBody = /* @__PURE__ */ dual(2, (self, body) => {
|
|
|
64292
64528
|
headers = remove7(remove7(headers, "Content-Type"), "Content-length");
|
|
64293
64529
|
} else {
|
|
64294
64530
|
if (body.contentType) {
|
|
64295
|
-
headers =
|
|
64531
|
+
headers = set7(headers, "content-type", body.contentType);
|
|
64296
64532
|
}
|
|
64297
64533
|
if (body.contentLength !== undefined) {
|
|
64298
|
-
headers =
|
|
64534
|
+
headers = set7(headers, "content-length", body.contentLength.toString());
|
|
64299
64535
|
}
|
|
64300
64536
|
}
|
|
64301
64537
|
return makeWith(self.method, self.url, self.urlParams, self.hash, headers, body);
|
|
@@ -64607,10 +64843,10 @@ var Proto16 = {
|
|
|
64607
64843
|
};
|
|
64608
64844
|
},
|
|
64609
64845
|
.../* @__PURE__ */ Object.fromEntries(/* @__PURE__ */ allShort.map(([fullMethod, method]) => [method, function(url2, options3) {
|
|
64610
|
-
return this.execute(
|
|
64846
|
+
return this.execute(make42(fullMethod)(url2, options3));
|
|
64611
64847
|
}]))
|
|
64612
64848
|
};
|
|
64613
|
-
var
|
|
64849
|
+
var make43 = (f) => makeWith2((effect2) => flatMap5(effect2, (request3) => withFiber2((fiber3) => {
|
|
64614
64850
|
const scopedController = scopedRequests.get(request3);
|
|
64615
64851
|
const controller = scopedController ?? new AbortController;
|
|
64616
64852
|
const urlResult = makeUrl(request3.url, request3.urlParams, getOrUndefined(request3.hash));
|
|
@@ -65002,7 +65238,7 @@ var Fetch = /* @__PURE__ */ Reference("effect/http/FetchHttpClient/Fetch", {
|
|
|
65002
65238
|
|
|
65003
65239
|
class RequestInit extends (/* @__PURE__ */ Service()("effect/http/FetchHttpClient/RequestInit")) {
|
|
65004
65240
|
}
|
|
65005
|
-
var fetch2 = /* @__PURE__ */
|
|
65241
|
+
var fetch2 = /* @__PURE__ */ make43((request3, url2, signal, fiber3) => {
|
|
65006
65242
|
const fetch3 = fiber3.getRef(Fetch);
|
|
65007
65243
|
const options3 = fiber3.services.mapUnsafe.get(RequestInit.key) ?? {};
|
|
65008
65244
|
const headers = options3.headers ? merge6(fromInput2(options3.headers), request3.headers) : request3.headers;
|
|
@@ -66801,8 +67037,8 @@ var makeProcessRunner = exports_Effect.gen(function* () {
|
|
|
66801
67037
|
const timeout4 = input.timeout ?? DEFAULT_TIMEOUT;
|
|
66802
67038
|
const maxOutputBytes = input.maxOutputBytes ?? DEFAULT_MAX_OUTPUT_BYTES;
|
|
66803
67039
|
const encodedStdin = input.stdin === undefined ? "ignore" : exports_Stream.fromIterable([new TextEncoder().encode(input.stdin)]);
|
|
66804
|
-
yield*
|
|
66805
|
-
const command =
|
|
67040
|
+
yield* logDebug2("Starting command.", commandLogFields(input, timeout4, maxOutputBytes));
|
|
67041
|
+
const command = make36(input.command, [...input.args], {
|
|
66806
67042
|
...input.cwd ? { cwd: input.cwd } : {},
|
|
66807
67043
|
...input.env ? { env: input.env, extendEnv: false } : {},
|
|
66808
67044
|
stdin: encodedStdin,
|
|
@@ -66827,7 +67063,7 @@ var makeProcessRunner = exports_Effect.gen(function* () {
|
|
|
66827
67063
|
}).pipe(exports_Effect.scoped, exports_Effect.timeoutOption(timeout4), exports_Effect.flatMap((maybeResult) => exports_Option.match(maybeResult, {
|
|
66828
67064
|
onNone: () => exports_Effect.fail(toCommandExecutionError(input, `${commandLabel(input)} timed out after ${format2(timeout4)}.`)),
|
|
66829
67065
|
onSome: exports_Effect.succeed
|
|
66830
|
-
})), exports_Effect.tap((result4) =>
|
|
67066
|
+
})), exports_Effect.tap((result4) => logDebug2("Command completed.", commandResultLogFields(input, timeout4, maxOutputBytes, result4))), exports_Effect.tapError((error2) => logError2("Command failed.", {
|
|
66831
67067
|
...commandLogFields(input, timeout4, maxOutputBytes),
|
|
66832
67068
|
detail: error2.detail,
|
|
66833
67069
|
exitCode: error2.exitCode,
|
|
@@ -69906,6 +70142,238 @@ var ignoreFailure = (effect2) => effect2.pipe(exports_Effect.match({
|
|
|
69906
70142
|
return;
|
|
69907
70143
|
}
|
|
69908
70144
|
}));
|
|
70145
|
+
var initialOpenCodeProgressState = {
|
|
70146
|
+
toolStatesByCallId: {},
|
|
70147
|
+
seenRetryAttempts: [],
|
|
70148
|
+
eventStreamFailed: false
|
|
70149
|
+
};
|
|
70150
|
+
var isAbortError = (error2) => error2 instanceof Error && (error2.name === "AbortError" || error2.message.includes("abort") || error2.message.includes("aborted") || error2.message.includes("The operation was aborted"));
|
|
70151
|
+
var emitProgressLog = (entry) => entry.level === "warning" ? logWarning2(entry.message, entry.fields) : logInfo2(entry.message, entry.fields);
|
|
70152
|
+
var mergeAbortSignals = (signal, lifetime) => signal === undefined || signal === null ? lifetime : AbortSignal.any([signal, lifetime]);
|
|
70153
|
+
var withSubscriptionLifetime = (client2, lifetime) => ({
|
|
70154
|
+
event: Object.assign(Object.create(client2.event), {
|
|
70155
|
+
subscribe: (input, options3) => client2.event.subscribe(input, {
|
|
70156
|
+
...options3,
|
|
70157
|
+
signal: mergeAbortSignals(options3?.signal, lifetime)
|
|
70158
|
+
})
|
|
70159
|
+
})
|
|
70160
|
+
});
|
|
70161
|
+
var sessionStatusKey = (status) => status.type === "retry" ? `${status.type}:${status.attempt}` : status.type;
|
|
70162
|
+
var TOOL_TITLE_INPUT_KEYS = ["title", "filePath", "path", "command", "query", "url"];
|
|
70163
|
+
var titleFromToolInput = (input) => {
|
|
70164
|
+
for (const key of TOOL_TITLE_INPUT_KEYS) {
|
|
70165
|
+
const candidate = input[key];
|
|
70166
|
+
if (typeof candidate === "string" && candidate.trim().length > 0) {
|
|
70167
|
+
return candidate.trim();
|
|
70168
|
+
}
|
|
70169
|
+
}
|
|
70170
|
+
return;
|
|
70171
|
+
};
|
|
70172
|
+
var getToolTitle = (part) => {
|
|
70173
|
+
switch (part.state.status) {
|
|
70174
|
+
case "running":
|
|
70175
|
+
case "completed":
|
|
70176
|
+
return titleFromToolInput(part.state.input) || part.state.title;
|
|
70177
|
+
case "pending":
|
|
70178
|
+
case "error":
|
|
70179
|
+
return titleFromToolInput(part.state.input);
|
|
70180
|
+
}
|
|
70181
|
+
};
|
|
70182
|
+
var getToolDurationMs = (part) => {
|
|
70183
|
+
switch (part.state.status) {
|
|
70184
|
+
case "completed":
|
|
70185
|
+
case "error":
|
|
70186
|
+
return Math.max(0, part.state.time.end - part.state.time.start);
|
|
70187
|
+
case "pending":
|
|
70188
|
+
case "running":
|
|
70189
|
+
return;
|
|
70190
|
+
}
|
|
70191
|
+
};
|
|
70192
|
+
var getToolProgressFields = (part) => {
|
|
70193
|
+
const title = getToolTitle(part);
|
|
70194
|
+
const durationMs = getToolDurationMs(part);
|
|
70195
|
+
return {
|
|
70196
|
+
tool: part.tool,
|
|
70197
|
+
callId: part.callID,
|
|
70198
|
+
...title ? { title } : {},
|
|
70199
|
+
...durationMs !== undefined ? { durationMs } : {}
|
|
70200
|
+
};
|
|
70201
|
+
};
|
|
70202
|
+
var getToolProgressMessage = (phase, part, fields) => {
|
|
70203
|
+
const title = fields.title ? truncateForLog(String(fields.title), 160) : undefined;
|
|
70204
|
+
const icon = part.tool === "bash" ? "\uD83D\uDD27" : part.tool === "read" ? "\uD83D\uDCD6" : part.tool === "edit" ? "\u270F\uFE0F" : part.tool === "grep" ? "\uD83D\uDD0E" : part.tool === "list" ? "\uD83D\uDCC2" : part.tool === "webfetch" ? "\uD83C\uDF10" : "\u2699\uFE0F";
|
|
70205
|
+
switch (phase) {
|
|
70206
|
+
case "started":
|
|
70207
|
+
return title ? `${icon} ${title}` : `${icon} ${part.tool}`;
|
|
70208
|
+
case "completed":
|
|
70209
|
+
return title ? `${icon} done: ${title}` : `${icon} done`;
|
|
70210
|
+
case "failed":
|
|
70211
|
+
return title ? `\u26A0\uFE0F ${part.tool}: ${title}` : `\u26A0\uFE0F ${part.tool}`;
|
|
70212
|
+
}
|
|
70213
|
+
};
|
|
70214
|
+
var getAssistantRunMessage = (request3) => request3.variant ? `Starting OpenCode assistant run with ${request3.model.modelID} (${request3.variant}).` : "Starting OpenCode assistant run.";
|
|
70215
|
+
var summarizeTodoCounts = (todos) => {
|
|
70216
|
+
const counts = {};
|
|
70217
|
+
for (const todo of todos) {
|
|
70218
|
+
counts[todo.status] = (counts[todo.status] ?? 0) + 1;
|
|
70219
|
+
}
|
|
70220
|
+
return counts;
|
|
70221
|
+
};
|
|
70222
|
+
var todoFingerprint = (counts) => Object.entries(counts).sort(([left], [right]) => left.localeCompare(right)).map(([status, count]) => `${status}:${count}`).join("|");
|
|
70223
|
+
var getEventSessionId = (event) => {
|
|
70224
|
+
switch (event.type) {
|
|
70225
|
+
case "message.part.delta":
|
|
70226
|
+
case "message.part.updated":
|
|
70227
|
+
case "session.idle":
|
|
70228
|
+
case "session.status":
|
|
70229
|
+
case "todo.updated":
|
|
70230
|
+
return event.properties.sessionID;
|
|
70231
|
+
case "message.updated":
|
|
70232
|
+
return event.properties.info.sessionID;
|
|
70233
|
+
case "session.error":
|
|
70234
|
+
return event.properties.sessionID;
|
|
70235
|
+
default:
|
|
70236
|
+
return;
|
|
70237
|
+
}
|
|
70238
|
+
};
|
|
70239
|
+
var isOpenCodeProgressEventForSession = (event, sessionId) => getEventSessionId(event) === sessionId;
|
|
70240
|
+
var reduceOpenCodeProgressBatch = (state, events) => {
|
|
70241
|
+
const logs = [];
|
|
70242
|
+
const seenRetryAttempts = new Set(state.seenRetryAttempts);
|
|
70243
|
+
const toolStatesByCallId = {
|
|
70244
|
+
...state.toolStatesByCallId
|
|
70245
|
+
};
|
|
70246
|
+
let lastStatusKey = state.lastStatusKey;
|
|
70247
|
+
let nextTodoFingerprint = state.todoFingerprint;
|
|
70248
|
+
for (const event of events) {
|
|
70249
|
+
switch (event.type) {
|
|
70250
|
+
case "session.status": {
|
|
70251
|
+
const statusKey = sessionStatusKey(event.properties.status);
|
|
70252
|
+
if (event.properties.status.type === "retry") {
|
|
70253
|
+
if (!seenRetryAttempts.has(event.properties.status.attempt)) {
|
|
70254
|
+
seenRetryAttempts.add(event.properties.status.attempt);
|
|
70255
|
+
logs.push({
|
|
70256
|
+
level: "info",
|
|
70257
|
+
message: "OpenCode is retrying the assistant response.",
|
|
70258
|
+
fields: {
|
|
70259
|
+
attempt: event.properties.status.attempt,
|
|
70260
|
+
nextDelayMs: event.properties.status.next,
|
|
70261
|
+
retryMessage: truncateForLog(event.properties.status.message, 160)
|
|
70262
|
+
}
|
|
70263
|
+
});
|
|
70264
|
+
}
|
|
70265
|
+
} else if (statusKey !== lastStatusKey) {
|
|
70266
|
+
logs.push({
|
|
70267
|
+
level: "info",
|
|
70268
|
+
message: event.properties.status.type === "busy" ? "OpenCode assistant is working." : "OpenCode assistant is idle."
|
|
70269
|
+
});
|
|
70270
|
+
}
|
|
70271
|
+
lastStatusKey = statusKey;
|
|
70272
|
+
break;
|
|
70273
|
+
}
|
|
70274
|
+
case "message.part.updated": {
|
|
70275
|
+
if (event.properties.part.type !== "tool") {
|
|
70276
|
+
break;
|
|
70277
|
+
}
|
|
70278
|
+
const part = event.properties.part;
|
|
70279
|
+
const previous = toolStatesByCallId[part.callID];
|
|
70280
|
+
const baseFields = getToolProgressFields(part);
|
|
70281
|
+
switch (part.state.status) {
|
|
70282
|
+
case "running":
|
|
70283
|
+
if (previous?.status !== "running") {
|
|
70284
|
+
logs.push({
|
|
70285
|
+
level: "info",
|
|
70286
|
+
message: getToolProgressMessage("started", part, baseFields)
|
|
70287
|
+
});
|
|
70288
|
+
}
|
|
70289
|
+
break;
|
|
70290
|
+
case "completed":
|
|
70291
|
+
break;
|
|
70292
|
+
case "error":
|
|
70293
|
+
if (previous?.status !== "error") {
|
|
70294
|
+
logs.push({
|
|
70295
|
+
level: "warning",
|
|
70296
|
+
message: getToolProgressMessage("failed", part, baseFields),
|
|
70297
|
+
fields: {
|
|
70298
|
+
...baseFields,
|
|
70299
|
+
error: truncateForLog(part.state.error, 200)
|
|
70300
|
+
}
|
|
70301
|
+
});
|
|
70302
|
+
}
|
|
70303
|
+
break;
|
|
70304
|
+
case "pending":
|
|
70305
|
+
break;
|
|
70306
|
+
}
|
|
70307
|
+
toolStatesByCallId[part.callID] = {
|
|
70308
|
+
status: part.state.status
|
|
70309
|
+
};
|
|
70310
|
+
break;
|
|
70311
|
+
}
|
|
70312
|
+
case "todo.updated": {
|
|
70313
|
+
const counts = summarizeTodoCounts(event.properties.todos);
|
|
70314
|
+
const fingerprint = todoFingerprint(counts);
|
|
70315
|
+
if (fingerprint !== nextTodoFingerprint) {
|
|
70316
|
+
logs.push({
|
|
70317
|
+
level: "info",
|
|
70318
|
+
message: "OpenCode updated its task plan.",
|
|
70319
|
+
fields: {
|
|
70320
|
+
total: event.properties.todos.length,
|
|
70321
|
+
counts
|
|
70322
|
+
}
|
|
70323
|
+
});
|
|
70324
|
+
nextTodoFingerprint = fingerprint;
|
|
70325
|
+
}
|
|
70326
|
+
break;
|
|
70327
|
+
}
|
|
70328
|
+
case "session.error": {
|
|
70329
|
+
const error2 = event.properties.error;
|
|
70330
|
+
logs.push({
|
|
70331
|
+
level: "warning",
|
|
70332
|
+
message: "OpenCode reported a session error.",
|
|
70333
|
+
fields: {
|
|
70334
|
+
...error2?.name ? { name: error2.name } : {},
|
|
70335
|
+
...error2?.data && typeof error2.data === "object" && "message" in error2.data ? { errorMessage: truncateForLog(String(error2.data.message), 200) } : {}
|
|
70336
|
+
}
|
|
70337
|
+
});
|
|
70338
|
+
break;
|
|
70339
|
+
}
|
|
70340
|
+
}
|
|
70341
|
+
}
|
|
70342
|
+
return {
|
|
70343
|
+
state: {
|
|
70344
|
+
lastStatusKey,
|
|
70345
|
+
toolStatesByCallId,
|
|
70346
|
+
seenRetryAttempts: [...seenRetryAttempts],
|
|
70347
|
+
todoFingerprint: nextTodoFingerprint,
|
|
70348
|
+
eventStreamFailed: state.eventStreamFailed
|
|
70349
|
+
},
|
|
70350
|
+
logs
|
|
70351
|
+
};
|
|
70352
|
+
};
|
|
70353
|
+
var runOpenCodeProgressLogger = ({
|
|
70354
|
+
events,
|
|
70355
|
+
sessionId
|
|
70356
|
+
}) => exports_Effect.gen(function* () {
|
|
70357
|
+
const stateRef = yield* exports_Ref.make(initialOpenCodeProgressState);
|
|
70358
|
+
yield* exports_Stream.fromAsyncIterable(events, (error2) => error2).pipe(exports_Stream.filter((event) => isOpenCodeProgressEventForSession(event, sessionId)), exports_Stream.groupedWithin(32, "16 millis"), exports_Stream.runForEach((batch) => exports_Ref.modify(stateRef, (state) => {
|
|
70359
|
+
const reduced = reduceOpenCodeProgressBatch(state, batch);
|
|
70360
|
+
return [reduced.logs, reduced.state];
|
|
70361
|
+
}).pipe(exports_Effect.flatMap((logs) => exports_Effect.forEach(logs, emitProgressLog, { discard: true })))), exports_Effect.catch((error2) => exports_Ref.modify(stateRef, (state) => {
|
|
70362
|
+
if (state.eventStreamFailed || isAbortError(error2)) {
|
|
70363
|
+
return [false, state];
|
|
70364
|
+
}
|
|
70365
|
+
return [
|
|
70366
|
+
true,
|
|
70367
|
+
{
|
|
70368
|
+
...state,
|
|
70369
|
+
eventStreamFailed: true
|
|
70370
|
+
}
|
|
70371
|
+
];
|
|
70372
|
+
}).pipe(exports_Effect.flatMap((shouldLog) => shouldLog ? logWarning2("OpenCode event stream failed. Continuing without live progress updates.", {
|
|
70373
|
+
detail: formatUnknownDetail(error2),
|
|
70374
|
+
sessionId
|
|
70375
|
+
}) : exports_Effect.void))));
|
|
70376
|
+
});
|
|
69909
70377
|
var findAvailablePort = exports_Effect.tryPromise({
|
|
69910
70378
|
try: () => new Promise((resolve4, reject) => {
|
|
69911
70379
|
const server = createServer();
|
|
@@ -70040,7 +70508,7 @@ var decodePromptResult = ({
|
|
|
70040
70508
|
};
|
|
70041
70509
|
var spawnServer = (request3, spawner) => exports_Effect.gen(function* () {
|
|
70042
70510
|
const port2 = yield* findAvailablePort;
|
|
70043
|
-
const command =
|
|
70511
|
+
const command = make36("opencode", ["serve", `--hostname=${SERVER_HOST}`, `--port=${port2}`], {
|
|
70044
70512
|
cwd: request3.workspace,
|
|
70045
70513
|
env: {
|
|
70046
70514
|
...request3.inheritedEnv,
|
|
@@ -70076,6 +70544,40 @@ var createSession = (client2, timeout4) => exports_Effect.tryPromise({
|
|
|
70076
70544
|
}).pipe((effect2) => awaitWithin(effect2, timeout4, () => toInvocationError({
|
|
70077
70545
|
message: `Timed out creating the OpenCode session after ${exports_Duration.format(timeout4)}.`
|
|
70078
70546
|
})));
|
|
70547
|
+
var subscribeToOpenCodeEvents = ({ client: client2 }) => exports_Effect.tryPromise({
|
|
70548
|
+
try: (signal) => client2.event.subscribe({}, { signal }),
|
|
70549
|
+
catch: (error2) => toInvocationError({
|
|
70550
|
+
message: "Failed to subscribe to the OpenCode event stream.",
|
|
70551
|
+
detail: formatUnknownDetail(error2)
|
|
70552
|
+
})
|
|
70553
|
+
});
|
|
70554
|
+
var withOpenCodeProgressSubscription = ({
|
|
70555
|
+
client: client2,
|
|
70556
|
+
sessionId
|
|
70557
|
+
}, effect2) => exports_Effect.acquireRelease(exports_Effect.gen(function* () {
|
|
70558
|
+
const streamLifetime = new AbortController;
|
|
70559
|
+
const subscription = yield* subscribeToOpenCodeEvents({
|
|
70560
|
+
client: withSubscriptionLifetime(client2, streamLifetime.signal)
|
|
70561
|
+
}).pipe(exports_Effect.catch((error2) => logWarning2("OpenCode progress streaming is unavailable. Continuing without live milestones.", {
|
|
70562
|
+
detail: error2.message,
|
|
70563
|
+
...error2.stderr ? { stderr: truncateForLog(error2.stderr, 200) } : {},
|
|
70564
|
+
sessionId
|
|
70565
|
+
}).pipe(exports_Effect.as(undefined))));
|
|
70566
|
+
if (!subscription) {
|
|
70567
|
+
return;
|
|
70568
|
+
}
|
|
70569
|
+
const fiber3 = yield* runOpenCodeProgressLogger({
|
|
70570
|
+
events: subscription.stream,
|
|
70571
|
+
sessionId
|
|
70572
|
+
}).pipe(exports_Effect.forkScoped);
|
|
70573
|
+
return {
|
|
70574
|
+
stop: () => streamLifetime.abort(),
|
|
70575
|
+
fiber: fiber3
|
|
70576
|
+
};
|
|
70577
|
+
}), (resource) => resource ? exports_Effect.gen(function* () {
|
|
70578
|
+
yield* exports_Effect.sync(() => resource.stop()).pipe(ignoreFailure);
|
|
70579
|
+
yield* exports_Fiber.interrupt(resource.fiber).pipe(ignoreFailure);
|
|
70580
|
+
}) : exports_Effect.void).pipe(exports_Effect.flatMap(() => effect2), exports_Effect.scoped);
|
|
70079
70581
|
var validatePromptModel = ({
|
|
70080
70582
|
client: client2,
|
|
70081
70583
|
request: request3
|
|
@@ -70117,7 +70619,10 @@ var promptSession = ({
|
|
|
70117
70619
|
}) => validatePromptModel({
|
|
70118
70620
|
client: client2,
|
|
70119
70621
|
request: request3
|
|
70120
|
-
}).pipe(exports_Effect.flatMap(() =>
|
|
70622
|
+
}).pipe(exports_Effect.flatMap(() => withOpenCodeProgressSubscription({
|
|
70623
|
+
client: client2,
|
|
70624
|
+
sessionId
|
|
70625
|
+
}, exports_Effect.tryPromise({
|
|
70121
70626
|
try: async () => {
|
|
70122
70627
|
const result4 = await client2.session.prompt({
|
|
70123
70628
|
sessionID: sessionId,
|
|
@@ -70141,7 +70646,7 @@ var promptSession = ({
|
|
|
70141
70646
|
message: "Failed while prompting OpenCode.",
|
|
70142
70647
|
detail: formatUnknownDetail(error2)
|
|
70143
70648
|
})
|
|
70144
|
-
})), (effect2) => awaitWithin(effect2, request3.timeout, () => toInvocationError({
|
|
70649
|
+
}))), (effect2) => awaitWithin(effect2, request3.timeout, () => toInvocationError({
|
|
70145
70650
|
message: `Timed out waiting for the OpenCode prompt after ${exports_Duration.format(request3.timeout)}.`
|
|
70146
70651
|
})), exports_Effect.flatMap((response) => resolveAssistantReply({
|
|
70147
70652
|
client: client2,
|
|
@@ -70160,6 +70665,8 @@ var makeOpenCodeSdkRuntime = exports_Effect.gen(function* () {
|
|
|
70160
70665
|
directory: request3.workspace
|
|
70161
70666
|
});
|
|
70162
70667
|
const session = yield* createSession(client2, request3.timeout);
|
|
70668
|
+
yield* logInfo2("Created OpenCode session.");
|
|
70669
|
+
yield* logInfo2(getAssistantRunMessage(request3));
|
|
70163
70670
|
return yield* promptSession({
|
|
70164
70671
|
client: client2,
|
|
70165
70672
|
sessionId: session.id,
|
|
@@ -70237,14 +70744,7 @@ var makeOpenCodeRunner = exports_Effect.gen(function* () {
|
|
|
70237
70744
|
const run4 = exports_Effect.fn("OpenCodeRunner.run")(function* (request3) {
|
|
70238
70745
|
const model = yield* parseModel(request3.model);
|
|
70239
70746
|
const config = buildOpenCodeConfig(request3.agent);
|
|
70240
|
-
yield* logInfo2(
|
|
70241
|
-
agent: request3.agent,
|
|
70242
|
-
model: request3.model,
|
|
70243
|
-
workspace: request3.workspace,
|
|
70244
|
-
variant: request3.variant,
|
|
70245
|
-
promptChars: request3.prompt.length,
|
|
70246
|
-
structuredRequested: request3.format?.type === "json_schema"
|
|
70247
|
-
});
|
|
70747
|
+
yield* logInfo2(`Preparing OpenCode execution for ${request3.model}.`);
|
|
70248
70748
|
const result4 = yield* sdkRuntime.prompt({
|
|
70249
70749
|
workspace: request3.workspace,
|
|
70250
70750
|
model,
|
|
@@ -70256,17 +70756,6 @@ var makeOpenCodeRunner = exports_Effect.gen(function* () {
|
|
|
70256
70756
|
format: request3.format,
|
|
70257
70757
|
config
|
|
70258
70758
|
});
|
|
70259
|
-
yield* logInfo2("Received OpenCode response.", {
|
|
70260
|
-
responseChars: result4.response.length,
|
|
70261
|
-
responsePreview: truncateForLog(result4.response),
|
|
70262
|
-
sessionId: result4.sessionId,
|
|
70263
|
-
costUsd: result4.usage?.costUsd,
|
|
70264
|
-
inputTokens: result4.usage?.tokens?.input,
|
|
70265
|
-
outputTokens: result4.usage?.tokens?.output,
|
|
70266
|
-
structuredDelivered: result4.structured !== undefined,
|
|
70267
|
-
structuredErrorName: result4.modelError?.name,
|
|
70268
|
-
structuredErrorRetries: result4.modelError?.retries
|
|
70269
|
-
});
|
|
70270
70759
|
return {
|
|
70271
70760
|
response: result4.response,
|
|
70272
70761
|
...result4.structured !== undefined ? { structured: result4.structured } : {},
|
|
@@ -71216,22 +71705,6 @@ var writeStdout = exports_Effect.fn("ReviewWorkflow.writeStdout")(function* (tex
|
|
|
71216
71705
|
const stdio = yield* Stdio2;
|
|
71217
71706
|
yield* make22(text2).pipe(run(stdio.stdout()));
|
|
71218
71707
|
});
|
|
71219
|
-
var reviewLogFields = (config) => ({
|
|
71220
|
-
command: "review",
|
|
71221
|
-
model: config.model,
|
|
71222
|
-
opencodeVariant: config.opencodeVariant,
|
|
71223
|
-
opencodeTimeout: format2(config.opencodeTimeout),
|
|
71224
|
-
opencodeTimeoutMs: toMillis(config.opencodeTimeout),
|
|
71225
|
-
workspace: config.workspace,
|
|
71226
|
-
organization: config.organization,
|
|
71227
|
-
project: config.project,
|
|
71228
|
-
repositoryId: config.repositoryId,
|
|
71229
|
-
pullRequestId: config.pullRequestId,
|
|
71230
|
-
collectionUrl: config.collectionUrl,
|
|
71231
|
-
agent: config.agent,
|
|
71232
|
-
dryRun: config.dryRun,
|
|
71233
|
-
json: config.json
|
|
71234
|
-
});
|
|
71235
71708
|
var resolveReviewScope = ({
|
|
71236
71709
|
config,
|
|
71237
71710
|
fullPullRequestDiff,
|
|
@@ -71356,11 +71829,6 @@ var decodeStructuredReviewResult = ({
|
|
|
71356
71829
|
source: "fallback"
|
|
71357
71830
|
};
|
|
71358
71831
|
});
|
|
71359
|
-
var reviewResultSourceLogFields = (source) => ({
|
|
71360
|
-
structuredDelivered: source === "structured",
|
|
71361
|
-
structuredRecovered: source === "repaired",
|
|
71362
|
-
structuredFallback: source === "fallback"
|
|
71363
|
-
});
|
|
71364
71832
|
var mapUsageTokens = (usage) => usage?.tokens ? {
|
|
71365
71833
|
input: usage.tokens.input,
|
|
71366
71834
|
output: usage.tokens.output,
|
|
@@ -71435,7 +71903,7 @@ var writeReviewWorkflowOutput = (config, output) => {
|
|
|
71435
71903
|
var planReviewWorkflow = (config, azureContext, buildLink) => exports_Effect.gen(function* () {
|
|
71436
71904
|
const azureClient = yield* AzureDevOpsClient;
|
|
71437
71905
|
const openCodeRunner = yield* OpenCodeRunner;
|
|
71438
|
-
yield* logInfo2(
|
|
71906
|
+
yield* logInfo2(`Resolved review configuration for ${config.model}.`);
|
|
71439
71907
|
yield* logInfo2("Loading pull request metadata, git diff, source commit, and existing threads.");
|
|
71440
71908
|
const [metadata, fullPullRequestDiff, reviewedSourceCommit, existingThreads] = yield* exports_Effect.all([
|
|
71441
71909
|
azureClient.getPullRequestMetadata({
|
|
@@ -71455,15 +71923,7 @@ var planReviewWorkflow = (config, azureContext, buildLink) => exports_Effect.gen
|
|
|
71455
71923
|
token: config.systemAccessToken
|
|
71456
71924
|
})
|
|
71457
71925
|
], { concurrency: "unbounded" });
|
|
71458
|
-
yield* logInfo2(
|
|
71459
|
-
pullRequestTitle: metadata.title,
|
|
71460
|
-
changedFiles: fullPullRequestDiff.changedFiles.length,
|
|
71461
|
-
diffBytes: fullPullRequestDiff.diffText.length,
|
|
71462
|
-
baseRef: fullPullRequestDiff.baseRef,
|
|
71463
|
-
headRef: fullPullRequestDiff.headRef,
|
|
71464
|
-
existingThreads: existingThreads.length,
|
|
71465
|
-
reviewedSourceCommit
|
|
71466
|
-
});
|
|
71926
|
+
yield* logInfo2(`Loaded review inputs for ${fullPullRequestDiff.changedFiles.length} changed file(s).`);
|
|
71467
71927
|
const previousSummaryState = findManagedSummaryThread(existingThreads)?.reviewState;
|
|
71468
71928
|
const { reviewMode, scopedDiff, previousReviewedCommit } = yield* resolveReviewScope({
|
|
71469
71929
|
config,
|
|
@@ -71488,10 +71948,7 @@ var planReviewWorkflow = (config, azureContext, buildLink) => exports_Effect.gen
|
|
|
71488
71948
|
scopedChangedLinesByFile: scopedDiff.changedLinesByFile,
|
|
71489
71949
|
scopedDeletedLinesByFile: scopedDiff.deletedLinesByFile
|
|
71490
71950
|
});
|
|
71491
|
-
yield* logInfo2("Skipped review because no new commits were added since the last managed review."
|
|
71492
|
-
reviewedSourceCommit,
|
|
71493
|
-
actions: actions2.length
|
|
71494
|
-
});
|
|
71951
|
+
yield* logInfo2("Skipped review because no new commits were added since the last managed review.");
|
|
71495
71952
|
return {
|
|
71496
71953
|
metadata,
|
|
71497
71954
|
connectedWorkItems: [],
|
|
@@ -71527,11 +71984,7 @@ var planReviewWorkflow = (config, azureContext, buildLink) => exports_Effect.gen
|
|
|
71527
71984
|
context: azureContext,
|
|
71528
71985
|
token: config.systemAccessToken,
|
|
71529
71986
|
workItemRefs: metadata.workItemRefs
|
|
71530
|
-
}).pipe(exports_Effect.tap((workItems) => logInfo2(
|
|
71531
|
-
workItemRefs: metadata.workItemRefs.length,
|
|
71532
|
-
connectedWorkItems: workItems.length,
|
|
71533
|
-
omittedConnectedWorkItems: Math.max(metadata.workItemRefs.length - workItems.length, 0)
|
|
71534
|
-
})), exports_Effect.catchTags({
|
|
71987
|
+
}).pipe(exports_Effect.tap((workItems) => logInfo2(workItems.length > 0 ? `Loaded ${workItems.length} connected work item(s).` : "No connected work items found.")), exports_Effect.catchTags({
|
|
71535
71988
|
AzureDevOpsHttpError: (error2) => logInfo2("Failed to load connected work item context. Continuing without work item enrichment.", {
|
|
71536
71989
|
workItemRefs: metadata.workItemRefs.length,
|
|
71537
71990
|
status: error2.status,
|
|
@@ -71551,17 +72004,9 @@ var planReviewWorkflow = (config, azureContext, buildLink) => exports_Effect.gen
|
|
|
71551
72004
|
existingThreads,
|
|
71552
72005
|
...connectedWorkItems ? { connectedWorkItems } : {}
|
|
71553
72006
|
});
|
|
71554
|
-
yield* logInfo2(
|
|
71555
|
-
reviewMode,
|
|
71556
|
-
changedFiles: reviewContext.changedFiles.length,
|
|
71557
|
-
pullRequestThreads: reviewContext.pullRequestThreads?.items.length ?? 0,
|
|
71558
|
-
omittedPullRequestThreads: reviewContext.pullRequestThreads?.omittedCount ?? 0,
|
|
71559
|
-
manifestChars: stringifyJson2(reviewContext).length
|
|
71560
|
-
});
|
|
72007
|
+
yield* logInfo2(`Built ${reviewMode} review context.`);
|
|
71561
72008
|
const prompt = yield* buildReviewPrompt(config.promptFile, reviewContext);
|
|
71562
|
-
yield* logInfo2("Built review prompt."
|
|
71563
|
-
promptChars: prompt.length
|
|
71564
|
-
});
|
|
72009
|
+
yield* logInfo2("Built review prompt.");
|
|
71565
72010
|
const openCodeResult = yield* openCodeRunner.run({
|
|
71566
72011
|
workspace: config.workspace,
|
|
71567
72012
|
model: config.model,
|
|
@@ -71572,30 +72017,12 @@ var planReviewWorkflow = (config, azureContext, buildLink) => exports_Effect.gen
|
|
|
71572
72017
|
inheritedEnv: config.inheritedEnv,
|
|
71573
72018
|
format: REVIEW_OUTPUT_FORMAT
|
|
71574
72019
|
});
|
|
71575
|
-
yield* logInfo2("Received OpenCode response."
|
|
71576
|
-
responseChars: openCodeResult.response.length,
|
|
71577
|
-
sessionId: openCodeResult.sessionId,
|
|
71578
|
-
costUsd: openCodeResult.usage?.costUsd,
|
|
71579
|
-
inputTokens: openCodeResult.usage?.tokens?.input,
|
|
71580
|
-
outputTokens: openCodeResult.usage?.tokens?.output,
|
|
71581
|
-
structuredRequested: true,
|
|
71582
|
-
structuredDelivered: openCodeResult.structured !== undefined,
|
|
71583
|
-
structuredErrorName: openCodeResult.modelError?.name,
|
|
71584
|
-
structuredErrorRetries: openCodeResult.modelError?.retries
|
|
71585
|
-
});
|
|
72020
|
+
yield* logInfo2("Received OpenCode response.");
|
|
71586
72021
|
const { reviewResult, source } = yield* decodeStructuredReviewResult({
|
|
71587
72022
|
openCodeResult,
|
|
71588
72023
|
changedLinesByFile: scopedDiff.changedLinesByFile
|
|
71589
72024
|
});
|
|
71590
|
-
yield* logInfo2(
|
|
71591
|
-
reviewMode,
|
|
71592
|
-
verdict: reviewResult.verdict,
|
|
71593
|
-
findings: reviewResult.findings.length,
|
|
71594
|
-
inlineFindings: reviewResult.inlineFindings.length,
|
|
71595
|
-
summaryOnlyFindings: reviewResult.summaryOnlyFindings.length,
|
|
71596
|
-
unmappedNotes: reviewResult.unmappedNotes.length,
|
|
71597
|
-
...reviewResultSourceLogFields(source)
|
|
71598
|
-
});
|
|
72025
|
+
yield* logInfo2(`Decoded review result: ${reviewResult.verdict} with ${reviewResult.findings.length} finding(s).`);
|
|
71599
72026
|
const outstandingReviewResult = reviewMode === "follow-up" ? mergeFollowUpReviewResult({
|
|
71600
72027
|
existingThreads,
|
|
71601
72028
|
scopedChangedLinesByFile: scopedDiff.changedLinesByFile,
|
|
@@ -71632,10 +72059,7 @@ var planReviewWorkflow = (config, azureContext, buildLink) => exports_Effect.gen
|
|
|
71632
72059
|
scopedChangedLinesByFile: scopedDiff.changedLinesByFile,
|
|
71633
72060
|
scopedDeletedLinesByFile: scopedDiff.deletedLinesByFile
|
|
71634
72061
|
});
|
|
71635
|
-
yield* logInfo2(
|
|
71636
|
-
actions: actions.length,
|
|
71637
|
-
reviewMode
|
|
71638
|
-
});
|
|
72062
|
+
yield* logInfo2(`Prepared ${actions.length} review action(s).`);
|
|
71639
72063
|
return {
|
|
71640
72064
|
metadata,
|
|
71641
72065
|
connectedWorkItems: connectedWorkItems ?? [],
|
|
@@ -71663,7 +72087,7 @@ var planReviewWorkflow = (config, azureContext, buildLink) => exports_Effect.gen
|
|
|
71663
72087
|
skipped: false
|
|
71664
72088
|
}
|
|
71665
72089
|
};
|
|
71666
|
-
}).pipe(
|
|
72090
|
+
}).pipe(exports_Effect.withLogSpan("open-azdo.review"));
|
|
71667
72091
|
var runReviewWorkflow = (config) => exports_Effect.gen(function* () {
|
|
71668
72092
|
const azureContext = createAzureContext(config);
|
|
71669
72093
|
const buildLink = buildBuildLink(config);
|
|
@@ -72546,25 +72970,34 @@ var executeSandboxCapture = exports_Effect.scoped(exports_Effect.gen(function* (
|
|
|
72546
72970
|
}));
|
|
72547
72971
|
|
|
72548
72972
|
// src/Runtime.ts
|
|
72549
|
-
var
|
|
72550
|
-
const
|
|
72551
|
-
|
|
72552
|
-
|
|
72973
|
+
var makePlatformRuntimeLayers = (jsonLogs) => {
|
|
72974
|
+
const baseRuntimeLayer = makeBaseRuntimeLayer({
|
|
72975
|
+
jsonLogs
|
|
72976
|
+
});
|
|
72977
|
+
const processRunnerLayer = ProcessRunnerLive.pipe(exports_Layer.provide(baseRuntimeLayer));
|
|
72978
|
+
const platformLayer = exports_Layer.mergeAll(baseRuntimeLayer, processRunnerLayer);
|
|
72553
72979
|
const gitExecLayer = GitExecLive.pipe(exports_Layer.provide(processRunnerLayer));
|
|
72554
72980
|
const openCodeRunnerLayer = OpenCodeRunnerLive.pipe(exports_Layer.provide(platformLayer));
|
|
72555
|
-
return
|
|
72981
|
+
return {
|
|
72982
|
+
appRuntimeLayer: exports_Layer.mergeAll(platformLayer, gitExecLayer, AzureDevOpsClientLive, openCodeRunnerLayer)
|
|
72983
|
+
};
|
|
72984
|
+
};
|
|
72985
|
+
var makeRuntimeLayer = (cliInput) => {
|
|
72986
|
+
const appConfigLayer = makeAppConfigLayer(cliInput);
|
|
72987
|
+
const { appRuntimeLayer } = makePlatformRuntimeLayers(cliInput.json);
|
|
72988
|
+
return exports_Layer.mergeAll(appRuntimeLayer, appConfigLayer);
|
|
72556
72989
|
};
|
|
72557
72990
|
var makeSandboxCaptureRuntimeLayer = (cliInput) => {
|
|
72558
72991
|
const appConfigLayer = makeSandboxCaptureConfigLayer(cliInput);
|
|
72559
|
-
const
|
|
72560
|
-
|
|
72561
|
-
const gitExecLayer = GitExecLive.pipe(exports_Layer.provide(processRunnerLayer));
|
|
72562
|
-
const openCodeRunnerLayer = OpenCodeRunnerLive.pipe(exports_Layer.provide(platformLayer));
|
|
72563
|
-
return exports_Layer.mergeAll(platformLayer, appConfigLayer, gitExecLayer, AzureDevOpsClientLive, openCodeRunnerLayer);
|
|
72992
|
+
const { appRuntimeLayer } = makePlatformRuntimeLayers(cliInput.json);
|
|
72993
|
+
return exports_Layer.mergeAll(appRuntimeLayer, appConfigLayer);
|
|
72564
72994
|
};
|
|
72565
72995
|
|
|
72566
72996
|
// src/Cli.ts
|
|
72567
72997
|
var PositiveIntSchema = exports_Schema.Int.check(exports_Schema.isGreaterThan(0));
|
|
72998
|
+
var withCliLogger = (effect2, jsonLogs) => effect2.pipe(exports_Effect.provide(makeBaseRuntimeLayer({
|
|
72999
|
+
jsonLogs
|
|
73000
|
+
})));
|
|
72568
73001
|
var executeReview = exports_Effect.gen(function* () {
|
|
72569
73002
|
const config = yield* AppConfig;
|
|
72570
73003
|
return yield* runReviewWorkflow({
|
|
@@ -72578,9 +73011,9 @@ var runReviewCommand = (input) => exports_Effect.gen(function* () {
|
|
|
72578
73011
|
const exit3 = yield* exports_Effect.exit(executeReviewWithInput(input));
|
|
72579
73012
|
if (!exports_Exit.isSuccess(exit3)) {
|
|
72580
73013
|
const failureReason = exports_Cause.pretty(exit3.cause);
|
|
72581
|
-
yield* logError2("open-azdo failed during startup.", {
|
|
73014
|
+
yield* withCliLogger(logError2("open-azdo failed during startup.", {
|
|
72582
73015
|
cause: failureReason
|
|
72583
|
-
}).
|
|
73016
|
+
}), input.json);
|
|
72584
73017
|
return yield* new OperationalError({
|
|
72585
73018
|
message: "open-azdo failed during startup."
|
|
72586
73019
|
});
|
|
@@ -72596,9 +73029,9 @@ var runSandboxCaptureCommand = (input) => exports_Effect.gen(function* () {
|
|
|
72596
73029
|
const exit3 = yield* exports_Effect.exit(executeSandboxCaptureWithInput(input));
|
|
72597
73030
|
if (!exports_Exit.isSuccess(exit3)) {
|
|
72598
73031
|
const failureReason = exports_Cause.pretty(exit3.cause);
|
|
72599
|
-
yield* logError2("open-azdo failed during sandbox capture.", {
|
|
73032
|
+
yield* withCliLogger(logError2("open-azdo failed during sandbox capture.", {
|
|
72600
73033
|
cause: failureReason
|
|
72601
|
-
}).
|
|
73034
|
+
}), input.json);
|
|
72602
73035
|
return yield* new OperationalError({
|
|
72603
73036
|
message: "open-azdo failed during sandbox capture."
|
|
72604
73037
|
});
|
|
@@ -72625,7 +73058,7 @@ var reviewCommandConfig = {
|
|
|
72625
73058
|
dryRun: boolean6("dry-run").pipe(withDefault4(false), withDescription2("Do not publish comments.")),
|
|
72626
73059
|
json: boolean6("json").pipe(withDefault4(false), withDescription2("Emit machine-readable JSON."))
|
|
72627
73060
|
};
|
|
72628
|
-
var reviewCommand =
|
|
73061
|
+
var reviewCommand = make34("review", reviewCommandConfig).pipe(withDescription3("Review an Azure DevOps pull request with OpenCode."), withHandler((input) => runReviewCommand(input)));
|
|
72629
73062
|
var sandboxCaptureCommandConfig = {
|
|
72630
73063
|
model: string7("model").pipe(optional3, withDescription2("Model id, for example openai/gpt-5.4.")),
|
|
72631
73064
|
opencodeVariant: string7("opencode-variant").pipe(optional3, withDescription2("Provider-specific variant or reasoning level.")),
|
|
@@ -72639,11 +73072,11 @@ var sandboxCaptureCommandConfig = {
|
|
|
72639
73072
|
output: string7("output").pipe(optional3, withDescription2("Output path for the sandbox capture JSON.")),
|
|
72640
73073
|
json: boolean6("json").pipe(withDefault4(false), withDescription2("Emit machine-readable JSON."))
|
|
72641
73074
|
};
|
|
72642
|
-
var sandboxCaptureCommand =
|
|
72643
|
-
var sandboxCommand =
|
|
72644
|
-
var openAzdoCli =
|
|
73075
|
+
var sandboxCaptureCommand = make34("capture", sandboxCaptureCommandConfig).pipe(withDescription3("Capture a real Azure DevOps PR review run into a local sandbox artifact."), withHandler((input) => runSandboxCaptureCommand(input)));
|
|
73076
|
+
var sandboxCommand = make34("sandbox").pipe(withDescription3("Sandbox tooling for live capture and local preview."), withSubcommands([sandboxCaptureCommand]));
|
|
73077
|
+
var openAzdoCli = make34("open-azdo").pipe(withDescription3("Secure Azure DevOps pull-request review CLI powered by OpenCode."), withSubcommands([reviewCommand, sandboxCommand]));
|
|
72645
73078
|
// package.json
|
|
72646
|
-
var version2 = "0.3.
|
|
73079
|
+
var version2 = "0.3.3";
|
|
72647
73080
|
|
|
72648
73081
|
// src/Main.ts
|
|
72649
73082
|
var cliProgram = run3(openAzdoCli, { version: version2 }).pipe(exports_Effect.scoped, exports_Effect.provide(BaseRuntimeLayer));
|
|
@@ -72652,4 +73085,4 @@ var main = () => runMain2(cliProgram, { disableErrorReporting: true });
|
|
|
72652
73085
|
// bin/open-azdo.ts
|
|
72653
73086
|
main();
|
|
72654
73087
|
|
|
72655
|
-
//# debugId=
|
|
73088
|
+
//# debugId=19FF78D0D39C785464756E2164756E21
|