@snowyroad/braid 0.96.4 → 0.96.7
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/{chunk-4BKQMFLW.js → chunk-CLFXLKAW.js} +200 -7
- package/dist/cli.js +10 -125
- package/dist/{http-N3HN44KC.js → http-QDQGGG2I.js} +1 -1
- package/package.json +1 -1
- package/service-shrinkwrap.json +114 -114
|
@@ -205,9 +205,9 @@ function newBeyondFile(list) {
|
|
|
205
205
|
flag: list.flag.filter((x) => !file.has(x))
|
|
206
206
|
};
|
|
207
207
|
}
|
|
208
|
-
function seg(n, singular,
|
|
208
|
+
function seg(n, singular, plural2) {
|
|
209
209
|
if (n === 0) return null;
|
|
210
|
-
return `+${n} ${n === 1 ? singular :
|
|
210
|
+
return `+${n} ${n === 1 ? singular : plural2}`;
|
|
211
211
|
}
|
|
212
212
|
function computePostureWarnings(flags, env, stored) {
|
|
213
213
|
if (stored === void 0) return [];
|
|
@@ -400,7 +400,7 @@ var InviteExpiredError = class extends Error {
|
|
|
400
400
|
}
|
|
401
401
|
};
|
|
402
402
|
async function redeemInvite(relayHttpUrl, code) {
|
|
403
|
-
const { boundedJsonFetch: boundedJsonFetch2 } = await import("./http-
|
|
403
|
+
const { boundedJsonFetch: boundedJsonFetch2 } = await import("./http-QDQGGG2I.js");
|
|
404
404
|
const r = await boundedJsonFetch2(`${relayHttpUrl.replace(/\/$/, "")}/invites/redeem`, {
|
|
405
405
|
method: "POST",
|
|
406
406
|
headers: { "content-type": "application/json" },
|
|
@@ -492,7 +492,7 @@ function validateReplacementToken(newToken, currentToken, nowMs = Date.now()) {
|
|
|
492
492
|
return { ok: true };
|
|
493
493
|
}
|
|
494
494
|
async function mintAccessToken(relayHttpUrl, agentKey, fetchFn = fetch, dpopProof) {
|
|
495
|
-
const { boundedJsonFetch: boundedJsonFetch2 } = await import("./http-
|
|
495
|
+
const { boundedJsonFetch: boundedJsonFetch2 } = await import("./http-QDQGGG2I.js");
|
|
496
496
|
const r = await boundedJsonFetch2(`${relayHttpUrl.replace(/\/$/, "")}/agents/token`, {
|
|
497
497
|
method: "POST",
|
|
498
498
|
headers: {
|
|
@@ -543,6 +543,13 @@ function classifyFatal(codeOrError) {
|
|
|
543
543
|
}
|
|
544
544
|
|
|
545
545
|
// src/tty.ts
|
|
546
|
+
var verboseOutput = false;
|
|
547
|
+
function setVerboseOutput(v) {
|
|
548
|
+
verboseOutput = v;
|
|
549
|
+
}
|
|
550
|
+
function isVerboseOutput() {
|
|
551
|
+
return verboseOutput;
|
|
552
|
+
}
|
|
546
553
|
var ANSI_RE = /\u001b(?:\[[0-?]*[ -\/]*[@-~]|\][^\u0007\u001b]*(?:\u0007|\u001b\\)?|[@-Z\\-_])/g;
|
|
547
554
|
var CTRL_RE = /[\u0000-\u0008\u000b-\u001f\u007f-\u009f]/g;
|
|
548
555
|
function sanitizeForTty(s) {
|
|
@@ -1770,6 +1777,44 @@ function dropVendorNotifications(input) {
|
|
|
1770
1777
|
});
|
|
1771
1778
|
}
|
|
1772
1779
|
|
|
1780
|
+
// src/acp/stderrNoise.ts
|
|
1781
|
+
var TEARDOWN_HEAD = /cancellation failed during teardown/;
|
|
1782
|
+
var CONTINUATION = /^(\s+at\s|\s*[{}]\s*$|\s+(telemetryMessage|errorClass|exitCode)\s*:)/;
|
|
1783
|
+
function createTeardownNoiseFilter(isStopping) {
|
|
1784
|
+
let pending = "";
|
|
1785
|
+
let dropping = false;
|
|
1786
|
+
function line(l) {
|
|
1787
|
+
if (dropping) {
|
|
1788
|
+
if (CONTINUATION.test(l)) return "";
|
|
1789
|
+
dropping = false;
|
|
1790
|
+
}
|
|
1791
|
+
if (isStopping() && TEARDOWN_HEAD.test(l)) {
|
|
1792
|
+
dropping = true;
|
|
1793
|
+
return "";
|
|
1794
|
+
}
|
|
1795
|
+
return l + "\n";
|
|
1796
|
+
}
|
|
1797
|
+
return {
|
|
1798
|
+
push(chunk) {
|
|
1799
|
+
pending += chunk;
|
|
1800
|
+
let out = "";
|
|
1801
|
+
let nl;
|
|
1802
|
+
while ((nl = pending.indexOf("\n")) !== -1) {
|
|
1803
|
+
out += line(pending.slice(0, nl));
|
|
1804
|
+
pending = pending.slice(nl + 1);
|
|
1805
|
+
}
|
|
1806
|
+
return out;
|
|
1807
|
+
},
|
|
1808
|
+
flush() {
|
|
1809
|
+
const rest = pending;
|
|
1810
|
+
pending = "";
|
|
1811
|
+
if (!rest) return "";
|
|
1812
|
+
if (dropping && CONTINUATION.test(rest)) return "";
|
|
1813
|
+
return rest;
|
|
1814
|
+
}
|
|
1815
|
+
};
|
|
1816
|
+
}
|
|
1817
|
+
|
|
1773
1818
|
// src/acp/client.ts
|
|
1774
1819
|
import { randomUUID } from "crypto";
|
|
1775
1820
|
|
|
@@ -2106,7 +2151,19 @@ var AcpClient = class {
|
|
|
2106
2151
|
detached: true
|
|
2107
2152
|
});
|
|
2108
2153
|
this.child = child;
|
|
2109
|
-
|
|
2154
|
+
const noise = createTeardownNoiseFilter(() => this.stopping);
|
|
2155
|
+
pipeSanitizedToTty(child.stderr, {
|
|
2156
|
+
write: (s) => {
|
|
2157
|
+
if (!isVerboseOutput()) return;
|
|
2158
|
+
const kept = noise.push(s);
|
|
2159
|
+
if (kept) process.stderr.write(kept);
|
|
2160
|
+
}
|
|
2161
|
+
});
|
|
2162
|
+
child.on("close", () => {
|
|
2163
|
+
if (!isVerboseOutput()) return;
|
|
2164
|
+
const rest = noise.flush();
|
|
2165
|
+
if (rest) process.stderr.write(rest);
|
|
2166
|
+
});
|
|
2110
2167
|
child.on("error", (err) => {
|
|
2111
2168
|
this.failPending(new Error(`ACP agent subprocess error: ${err.message}`));
|
|
2112
2169
|
});
|
|
@@ -3437,6 +3494,137 @@ function classifyCatchUp(messages, agentName, nowMs, opts) {
|
|
|
3437
3494
|
return { context: inWindow, mentions: capped };
|
|
3438
3495
|
}
|
|
3439
3496
|
|
|
3497
|
+
// src/connStatus.ts
|
|
3498
|
+
var ESCALATE_FIRST_MS = 6e4;
|
|
3499
|
+
var ESCALATE_REPEAT_MS = 3e5;
|
|
3500
|
+
var CLOSE_TRY_AGAIN_LATER = 1013;
|
|
3501
|
+
function fmtDur(ms) {
|
|
3502
|
+
const s = Math.max(0, Math.floor(ms / 1e3));
|
|
3503
|
+
if (s < 60) return `${s}s`;
|
|
3504
|
+
const m = Math.floor(s / 60);
|
|
3505
|
+
if (m < 60) return `${m}m${String(s % 60).padStart(2, "0")}s`;
|
|
3506
|
+
return `${Math.floor(m / 60)}h${String(m % 60).padStart(2, "0")}m`;
|
|
3507
|
+
}
|
|
3508
|
+
function fmtClock(epochMs) {
|
|
3509
|
+
const d = new Date(epochMs);
|
|
3510
|
+
return `${String(d.getHours()).padStart(2, "0")}:${String(d.getMinutes()).padStart(2, "0")}`;
|
|
3511
|
+
}
|
|
3512
|
+
function plural(n, one, many) {
|
|
3513
|
+
return `${n} ${n === 1 ? one : many}`;
|
|
3514
|
+
}
|
|
3515
|
+
function createConnStatus(opts) {
|
|
3516
|
+
const now = opts.now ?? Date.now;
|
|
3517
|
+
const startedAt = now();
|
|
3518
|
+
let state = "starting";
|
|
3519
|
+
let connectedSince = null;
|
|
3520
|
+
let offlineSince = null;
|
|
3521
|
+
let attempts = 0;
|
|
3522
|
+
let reconnects = 0;
|
|
3523
|
+
let lastReconnectAt = null;
|
|
3524
|
+
let tokenExp = null;
|
|
3525
|
+
let lastCloseCode = null;
|
|
3526
|
+
let nextEscalateAt = null;
|
|
3527
|
+
let tryAgainLaterSaid = false;
|
|
3528
|
+
function noteDrop() {
|
|
3529
|
+
if (state !== "offline") {
|
|
3530
|
+
offlineSince = now();
|
|
3531
|
+
attempts = 0;
|
|
3532
|
+
nextEscalateAt = offlineSince + ESCALATE_FIRST_MS;
|
|
3533
|
+
}
|
|
3534
|
+
state = "offline";
|
|
3535
|
+
connectedSince = null;
|
|
3536
|
+
attempts++;
|
|
3537
|
+
}
|
|
3538
|
+
function closeEpisode(t) {
|
|
3539
|
+
if (offlineSince === null || attempts === 0) return null;
|
|
3540
|
+
const down = fmtDur(t - offlineSince);
|
|
3541
|
+
const suffix = attempts > 1 ? `${down}, ${plural(attempts, "attempt", "attempts")}` : down;
|
|
3542
|
+
offlineSince = null;
|
|
3543
|
+
nextEscalateAt = null;
|
|
3544
|
+
tryAgainLaterSaid = false;
|
|
3545
|
+
return suffix;
|
|
3546
|
+
}
|
|
3547
|
+
function adoptExp(exp) {
|
|
3548
|
+
if (exp !== void 0) tokenExp = exp;
|
|
3549
|
+
}
|
|
3550
|
+
function handle(e) {
|
|
3551
|
+
switch (e.kind) {
|
|
3552
|
+
case "connected": {
|
|
3553
|
+
const t = now();
|
|
3554
|
+
const hadRetries = offlineSince !== null && attempts > 0;
|
|
3555
|
+
const n = attempts;
|
|
3556
|
+
const since = offlineSince;
|
|
3557
|
+
const ep = closeEpisode(t);
|
|
3558
|
+
state = "connected";
|
|
3559
|
+
connectedSince = t;
|
|
3560
|
+
adoptExp(e.tokenExp);
|
|
3561
|
+
if (hadRetries && ep !== null && since !== null) {
|
|
3562
|
+
opts.log(`[braid] connected (after ${plural(n, "attempt", "attempts")}, ${fmtDur(t - since)})`);
|
|
3563
|
+
}
|
|
3564
|
+
break;
|
|
3565
|
+
}
|
|
3566
|
+
case "reconnected": {
|
|
3567
|
+
const t = now();
|
|
3568
|
+
const ep = closeEpisode(t);
|
|
3569
|
+
state = "connected";
|
|
3570
|
+
connectedSince = t;
|
|
3571
|
+
reconnects++;
|
|
3572
|
+
lastReconnectAt = t;
|
|
3573
|
+
adoptExp(e.tokenExp);
|
|
3574
|
+
if (opts.verbose) opts.log(`[braid] reconnected${ep !== null ? ` (offline ${ep})` : ""}`);
|
|
3575
|
+
break;
|
|
3576
|
+
}
|
|
3577
|
+
case "disconnected":
|
|
3578
|
+
lastCloseCode = e.code;
|
|
3579
|
+
noteDrop();
|
|
3580
|
+
if (e.code === CLOSE_TRY_AGAIN_LATER) {
|
|
3581
|
+
if (!tryAgainLaterSaid) {
|
|
3582
|
+
tryAgainLaterSaid = true;
|
|
3583
|
+
opts.warn(
|
|
3584
|
+
`[braid] relay asked us to try again later${e.reason ? ` (${e.reason})` : ""}; reconnecting automatically`
|
|
3585
|
+
);
|
|
3586
|
+
}
|
|
3587
|
+
} else if (opts.verbose) {
|
|
3588
|
+
opts.log(`[braid] disconnected (close ${e.code})${e.reason ? `: ${e.reason}` : ""}`);
|
|
3589
|
+
}
|
|
3590
|
+
break;
|
|
3591
|
+
case "connectTimeout":
|
|
3592
|
+
noteDrop();
|
|
3593
|
+
if (opts.verbose) {
|
|
3594
|
+
opts.log(
|
|
3595
|
+
`[braid] connect attempt timed out after ${e.timeoutSecs}s (socket accepted but the relay never completed the handshake); retrying`
|
|
3596
|
+
);
|
|
3597
|
+
}
|
|
3598
|
+
break;
|
|
3599
|
+
case "remintStarted":
|
|
3600
|
+
if (opts.verbose) opts.log("[braid] access token rejected; re-minting from agent key");
|
|
3601
|
+
break;
|
|
3602
|
+
case "tokenRefreshed":
|
|
3603
|
+
adoptExp(e.tokenExp);
|
|
3604
|
+
if (opts.verbose) opts.log("[braid] token refreshed");
|
|
3605
|
+
break;
|
|
3606
|
+
case "tokenReminted":
|
|
3607
|
+
adoptExp(e.tokenExp);
|
|
3608
|
+
if (opts.verbose) opts.log("[braid] token proactively re-minted before expiry");
|
|
3609
|
+
break;
|
|
3610
|
+
}
|
|
3611
|
+
}
|
|
3612
|
+
function tick() {
|
|
3613
|
+
if (state !== "offline" || offlineSince === null || nextEscalateAt === null) return;
|
|
3614
|
+
const t = now();
|
|
3615
|
+
if (t >= nextEscalateAt) {
|
|
3616
|
+
opts.warn(
|
|
3617
|
+
`[braid] still reconnecting: offline ${fmtDur(t - offlineSince)} (${plural(attempts, "attempt", "attempts")})`
|
|
3618
|
+
);
|
|
3619
|
+
nextEscalateAt = t + ESCALATE_REPEAT_MS;
|
|
3620
|
+
}
|
|
3621
|
+
}
|
|
3622
|
+
function snapshot() {
|
|
3623
|
+
return { state, startedAt, connectedSince, offlineSince, attempts, reconnects, lastReconnectAt, tokenExp, lastCloseCode };
|
|
3624
|
+
}
|
|
3625
|
+
return { handle, tick, snapshot };
|
|
3626
|
+
}
|
|
3627
|
+
|
|
3440
3628
|
// src/cardIdentity.ts
|
|
3441
3629
|
import { createRemoteJWKSet, jwtVerify } from "jose";
|
|
3442
3630
|
|
|
@@ -4160,7 +4348,7 @@ var RelayClient = class {
|
|
|
4160
4348
|
this.fatalCb?.(code, reason);
|
|
4161
4349
|
return;
|
|
4162
4350
|
}
|
|
4163
|
-
if (!this.helloReceived) {
|
|
4351
|
+
if (!this.helloReceived && code !== CLOSE_TRY_AGAIN_LATER) {
|
|
4164
4352
|
this.preHelloFailures++;
|
|
4165
4353
|
if (this.preHelloFailures >= PRE_HELLO_HINT_AFTER && !this.handshakeHintShown) {
|
|
4166
4354
|
this.handshakeHintShown = true;
|
|
@@ -4717,7 +4905,7 @@ var RelayClient = class {
|
|
|
4717
4905
|
} else if (decision === "downgrade") {
|
|
4718
4906
|
console.warn(`[braid] SECURITY: peer "${name}" downgraded from a previously identity-verified card; not trusted`);
|
|
4719
4907
|
} else if (decision === "verified") {
|
|
4720
|
-
console.log(`[braid] peer "${name}" identity-verified (Clerk-anchored)`);
|
|
4908
|
+
if (isVerboseOutput()) console.log(`[braid] peer "${name}" identity-verified (Clerk-anchored)`);
|
|
4721
4909
|
}
|
|
4722
4910
|
}).catch(() => {
|
|
4723
4911
|
});
|
|
@@ -7684,6 +7872,8 @@ export {
|
|
|
7684
7872
|
EXIT_CRASH,
|
|
7685
7873
|
KeystorePermsError,
|
|
7686
7874
|
classifyFatal,
|
|
7875
|
+
setVerboseOutput,
|
|
7876
|
+
isVerboseOutput,
|
|
7687
7877
|
sanitizeForTty,
|
|
7688
7878
|
restoreTerminal,
|
|
7689
7879
|
isShellSafeName,
|
|
@@ -7715,6 +7905,9 @@ export {
|
|
|
7715
7905
|
isAddressed,
|
|
7716
7906
|
isAddressedByReply,
|
|
7717
7907
|
classifyCatchUp,
|
|
7908
|
+
fmtDur,
|
|
7909
|
+
fmtClock,
|
|
7910
|
+
createConnStatus,
|
|
7718
7911
|
WS_MAX_PAYLOAD_BYTES,
|
|
7719
7912
|
RelayClient,
|
|
7720
7913
|
SourceBroker,
|
package/dist/cli.js
CHANGED
|
@@ -29,12 +29,15 @@ import {
|
|
|
29
29
|
classifyFatal,
|
|
30
30
|
configDir,
|
|
31
31
|
createAdapter,
|
|
32
|
+
createConnStatus,
|
|
32
33
|
createEphemeralLisaAdapter,
|
|
33
34
|
createWorkspaceNoticeGate,
|
|
34
35
|
decodeInvite,
|
|
35
36
|
describeClaudeBinary,
|
|
36
37
|
distinctWorkspaceNames,
|
|
37
38
|
effectiveAnthropicCredential,
|
|
39
|
+
fmtClock,
|
|
40
|
+
fmtDur,
|
|
38
41
|
handoffCwdFor,
|
|
39
42
|
hasSubscriptionLogin,
|
|
40
43
|
initScopeRuntime,
|
|
@@ -44,6 +47,7 @@ import {
|
|
|
44
47
|
isAddressedByReply,
|
|
45
48
|
isFilesystemRoot,
|
|
46
49
|
isShellSafeName,
|
|
50
|
+
isVerboseOutput,
|
|
47
51
|
legacyTwinPath,
|
|
48
52
|
listAgents,
|
|
49
53
|
loadAgent,
|
|
@@ -71,6 +75,7 @@ import {
|
|
|
71
75
|
sanitizeForTty,
|
|
72
76
|
saveAgent,
|
|
73
77
|
scopedLaunch,
|
|
78
|
+
setVerboseOutput,
|
|
74
79
|
snapshotHttpMetrics,
|
|
75
80
|
startingLines,
|
|
76
81
|
toolModeLabel,
|
|
@@ -78,7 +83,7 @@ import {
|
|
|
78
83
|
updateAgentWorkspace,
|
|
79
84
|
validateRelayWsUrl,
|
|
80
85
|
wsToHttp
|
|
81
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-CLFXLKAW.js";
|
|
82
87
|
import {
|
|
83
88
|
clampUntrusted,
|
|
84
89
|
externalSourceLabel,
|
|
@@ -2553,7 +2558,7 @@ async function startBridge(cfg, relay, deps) {
|
|
|
2553
2558
|
};
|
|
2554
2559
|
const cached = fingerprint ? cacheLoad(fingerprint) : null;
|
|
2555
2560
|
if (cached) {
|
|
2556
|
-
console.log("[braid] card cache hit
|
|
2561
|
+
if (isVerboseOutput()) console.log("[braid] card cache hit - skipping elicit subprocess");
|
|
2557
2562
|
onUnsigned(cached.unsignedCard);
|
|
2558
2563
|
let card = cached.unsignedCard;
|
|
2559
2564
|
if (cfg.signCard) card = await cfg.signCard(card);
|
|
@@ -2613,7 +2618,7 @@ async function startBridge(cfg, relay, deps) {
|
|
|
2613
2618
|
return inFlight;
|
|
2614
2619
|
}
|
|
2615
2620
|
const p = (async () => {
|
|
2616
|
-
console.log(`[braid] Warming up #${sanitizeForTty(channelId)}\u2026`);
|
|
2621
|
+
if (isVerboseOutput()) console.log(`[braid] Warming up #${sanitizeForTty(channelId)}\u2026`);
|
|
2617
2622
|
void (async () => {
|
|
2618
2623
|
const fetchName = relay.fetchChannelName;
|
|
2619
2624
|
if (!fetchName) return;
|
|
@@ -2727,7 +2732,7 @@ async function startBridge(cfg, relay, deps) {
|
|
|
2727
2732
|
sessions.set(channelId, session);
|
|
2728
2733
|
pending.delete(channelId);
|
|
2729
2734
|
health.noteStartSuccess();
|
|
2730
|
-
console.log(`[braid] \u2713 Ready in #${sanitizeForTty(channelId)}`);
|
|
2735
|
+
if (isVerboseOutput()) console.log(`[braid] \u2713 Ready in #${sanitizeForTty(channelId)}`);
|
|
2731
2736
|
const unsub = learnRoster(relay, channelId, session);
|
|
2732
2737
|
if (tornDownWhilePending.delete(channelId)) unsub();
|
|
2733
2738
|
else rosterUnsubs.set(channelId, unsub);
|
|
@@ -5714,127 +5719,6 @@ function installTee(outWriter, errWriter) {
|
|
|
5714
5719
|
// src/cli.ts
|
|
5715
5720
|
import { homedir as homedir6 } from "os";
|
|
5716
5721
|
|
|
5717
|
-
// src/connStatus.ts
|
|
5718
|
-
var ESCALATE_FIRST_MS = 6e4;
|
|
5719
|
-
var ESCALATE_REPEAT_MS = 3e5;
|
|
5720
|
-
function fmtDur(ms) {
|
|
5721
|
-
const s = Math.max(0, Math.floor(ms / 1e3));
|
|
5722
|
-
if (s < 60) return `${s}s`;
|
|
5723
|
-
const m = Math.floor(s / 60);
|
|
5724
|
-
if (m < 60) return `${m}m${String(s % 60).padStart(2, "0")}s`;
|
|
5725
|
-
return `${Math.floor(m / 60)}h${String(m % 60).padStart(2, "0")}m`;
|
|
5726
|
-
}
|
|
5727
|
-
function fmtClock(epochMs) {
|
|
5728
|
-
const d = new Date(epochMs);
|
|
5729
|
-
return `${String(d.getHours()).padStart(2, "0")}:${String(d.getMinutes()).padStart(2, "0")}`;
|
|
5730
|
-
}
|
|
5731
|
-
function plural(n, one, many) {
|
|
5732
|
-
return `${n} ${n === 1 ? one : many}`;
|
|
5733
|
-
}
|
|
5734
|
-
function createConnStatus(opts) {
|
|
5735
|
-
const now = opts.now ?? Date.now;
|
|
5736
|
-
const startedAt = now();
|
|
5737
|
-
let state = "starting";
|
|
5738
|
-
let connectedSince = null;
|
|
5739
|
-
let offlineSince = null;
|
|
5740
|
-
let attempts = 0;
|
|
5741
|
-
let reconnects = 0;
|
|
5742
|
-
let lastReconnectAt = null;
|
|
5743
|
-
let tokenExp = null;
|
|
5744
|
-
let lastCloseCode = null;
|
|
5745
|
-
let nextEscalateAt = null;
|
|
5746
|
-
function noteDrop() {
|
|
5747
|
-
if (state !== "offline") {
|
|
5748
|
-
offlineSince = now();
|
|
5749
|
-
attempts = 0;
|
|
5750
|
-
nextEscalateAt = offlineSince + ESCALATE_FIRST_MS;
|
|
5751
|
-
}
|
|
5752
|
-
state = "offline";
|
|
5753
|
-
connectedSince = null;
|
|
5754
|
-
attempts++;
|
|
5755
|
-
}
|
|
5756
|
-
function closeEpisode(t) {
|
|
5757
|
-
if (offlineSince === null || attempts === 0) return null;
|
|
5758
|
-
const down = fmtDur(t - offlineSince);
|
|
5759
|
-
const suffix = attempts > 1 ? `${down}, ${plural(attempts, "attempt", "attempts")}` : down;
|
|
5760
|
-
offlineSince = null;
|
|
5761
|
-
nextEscalateAt = null;
|
|
5762
|
-
return suffix;
|
|
5763
|
-
}
|
|
5764
|
-
function adoptExp(exp) {
|
|
5765
|
-
if (exp !== void 0) tokenExp = exp;
|
|
5766
|
-
}
|
|
5767
|
-
function handle(e) {
|
|
5768
|
-
switch (e.kind) {
|
|
5769
|
-
case "connected": {
|
|
5770
|
-
const t = now();
|
|
5771
|
-
const hadRetries = offlineSince !== null && attempts > 0;
|
|
5772
|
-
const n = attempts;
|
|
5773
|
-
const since = offlineSince;
|
|
5774
|
-
const ep = closeEpisode(t);
|
|
5775
|
-
state = "connected";
|
|
5776
|
-
connectedSince = t;
|
|
5777
|
-
adoptExp(e.tokenExp);
|
|
5778
|
-
if (hadRetries && ep !== null && since !== null) {
|
|
5779
|
-
opts.log(`[braid] connected (after ${plural(n, "attempt", "attempts")}, ${fmtDur(t - since)})`);
|
|
5780
|
-
}
|
|
5781
|
-
break;
|
|
5782
|
-
}
|
|
5783
|
-
case "reconnected": {
|
|
5784
|
-
const t = now();
|
|
5785
|
-
const ep = closeEpisode(t);
|
|
5786
|
-
state = "connected";
|
|
5787
|
-
connectedSince = t;
|
|
5788
|
-
reconnects++;
|
|
5789
|
-
lastReconnectAt = t;
|
|
5790
|
-
adoptExp(e.tokenExp);
|
|
5791
|
-
opts.log(`[braid] reconnected${ep !== null ? ` (offline ${ep})` : ""}`);
|
|
5792
|
-
break;
|
|
5793
|
-
}
|
|
5794
|
-
case "disconnected":
|
|
5795
|
-
lastCloseCode = e.code;
|
|
5796
|
-
noteDrop();
|
|
5797
|
-
if (opts.verbose) {
|
|
5798
|
-
opts.log(`[braid] disconnected (close ${e.code})${e.reason ? `: ${e.reason}` : ""}`);
|
|
5799
|
-
}
|
|
5800
|
-
break;
|
|
5801
|
-
case "connectTimeout":
|
|
5802
|
-
noteDrop();
|
|
5803
|
-
if (opts.verbose) {
|
|
5804
|
-
opts.log(
|
|
5805
|
-
`[braid] connect attempt timed out after ${e.timeoutSecs}s (socket accepted but the relay never completed the handshake); retrying`
|
|
5806
|
-
);
|
|
5807
|
-
}
|
|
5808
|
-
break;
|
|
5809
|
-
case "remintStarted":
|
|
5810
|
-
if (opts.verbose) opts.log("[braid] access token rejected; re-minting from agent key");
|
|
5811
|
-
break;
|
|
5812
|
-
case "tokenRefreshed":
|
|
5813
|
-
adoptExp(e.tokenExp);
|
|
5814
|
-
if (opts.verbose) opts.log("[braid] token refreshed");
|
|
5815
|
-
break;
|
|
5816
|
-
case "tokenReminted":
|
|
5817
|
-
adoptExp(e.tokenExp);
|
|
5818
|
-
if (opts.verbose) opts.log("[braid] token proactively re-minted before expiry");
|
|
5819
|
-
break;
|
|
5820
|
-
}
|
|
5821
|
-
}
|
|
5822
|
-
function tick() {
|
|
5823
|
-
if (state !== "offline" || offlineSince === null || nextEscalateAt === null) return;
|
|
5824
|
-
const t = now();
|
|
5825
|
-
if (t >= nextEscalateAt) {
|
|
5826
|
-
opts.warn(
|
|
5827
|
-
`[braid] still reconnecting: offline ${fmtDur(t - offlineSince)} (${plural(attempts, "attempt", "attempts")})`
|
|
5828
|
-
);
|
|
5829
|
-
nextEscalateAt = t + ESCALATE_REPEAT_MS;
|
|
5830
|
-
}
|
|
5831
|
-
}
|
|
5832
|
-
function snapshot() {
|
|
5833
|
-
return { state, startedAt, connectedSince, offlineSince, attempts, reconnects, lastReconnectAt, tokenExp, lastCloseCode };
|
|
5834
|
-
}
|
|
5835
|
-
return { handle, tick, snapshot };
|
|
5836
|
-
}
|
|
5837
|
-
|
|
5838
5722
|
// src/statusLine.ts
|
|
5839
5723
|
var ESC = String.fromCharCode(27);
|
|
5840
5724
|
var CLEAR = `\r${ESC}[2K`;
|
|
@@ -6495,6 +6379,7 @@ async function main() {
|
|
|
6495
6379
|
}
|
|
6496
6380
|
}
|
|
6497
6381
|
const runVerbose = invocation.argv.includes("--verbose");
|
|
6382
|
+
setVerboseOutput(runVerbose);
|
|
6498
6383
|
const sticky = createStickyLine(process.stdout);
|
|
6499
6384
|
const connStatus = createConnStatus({
|
|
6500
6385
|
verbose: runVerbose,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@snowyroad/braid",
|
|
3
|
-
"version": "0.96.
|
|
3
|
+
"version": "0.96.7",
|
|
4
4
|
"description": "Braid: connect your own coding agent (Claude Code, Codex, Gemini, Grok) to a Braid channel and collaborate with other agents and humans.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "SnowyRoad",
|
package/service-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@snowyroad/braid",
|
|
3
|
-
"version": "0.96.
|
|
3
|
+
"version": "0.96.7",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@snowyroad/braid",
|
|
9
|
-
"version": "0.96.
|
|
9
|
+
"version": "0.96.7",
|
|
10
10
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@agentclientprotocol/sdk": "0.25.1",
|
|
@@ -815,9 +815,9 @@
|
|
|
815
815
|
"license": "MIT"
|
|
816
816
|
},
|
|
817
817
|
"node_modules/@rollup/rollup-android-arm-eabi": {
|
|
818
|
-
"version": "4.63.
|
|
819
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.63.
|
|
820
|
-
"integrity": "sha512-
|
|
818
|
+
"version": "4.63.5",
|
|
819
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.63.5.tgz",
|
|
820
|
+
"integrity": "sha512-J25QJU+B78T4FhhBsNpLJyVWOi31mwtpcMwywHmOKH65Q9IWGA81gPj+dnwlhU8wktVriYE+tFAaQgrnJRzAZg==",
|
|
821
821
|
"cpu": [
|
|
822
822
|
"arm"
|
|
823
823
|
],
|
|
@@ -829,9 +829,9 @@
|
|
|
829
829
|
]
|
|
830
830
|
},
|
|
831
831
|
"node_modules/@rollup/rollup-android-arm64": {
|
|
832
|
-
"version": "4.63.
|
|
833
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.63.
|
|
834
|
-
"integrity": "sha512-
|
|
832
|
+
"version": "4.63.5",
|
|
833
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.63.5.tgz",
|
|
834
|
+
"integrity": "sha512-LDopB3zuZM5Ux9TT2luNEBJW/tYbGU2g1d+VpKk6I+gSKDb+/7sYE6M225gRQt4RbMX6MSwMsVR/phdjVUgRLg==",
|
|
835
835
|
"cpu": [
|
|
836
836
|
"arm64"
|
|
837
837
|
],
|
|
@@ -843,9 +843,9 @@
|
|
|
843
843
|
]
|
|
844
844
|
},
|
|
845
845
|
"node_modules/@rollup/rollup-darwin-arm64": {
|
|
846
|
-
"version": "4.63.
|
|
847
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.63.
|
|
848
|
-
"integrity": "sha512-
|
|
846
|
+
"version": "4.63.5",
|
|
847
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.63.5.tgz",
|
|
848
|
+
"integrity": "sha512-wlJEERGfeuHeBavCL2qVnNacOK43NDoZM4sjkeRPymd04OAE9T1zBqDJgmZ+CIsPTYKwdzpUC8vmOw84dwY4Tg==",
|
|
849
849
|
"cpu": [
|
|
850
850
|
"arm64"
|
|
851
851
|
],
|
|
@@ -857,9 +857,9 @@
|
|
|
857
857
|
]
|
|
858
858
|
},
|
|
859
859
|
"node_modules/@rollup/rollup-darwin-x64": {
|
|
860
|
-
"version": "4.63.
|
|
861
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.63.
|
|
862
|
-
"integrity": "sha512-
|
|
860
|
+
"version": "4.63.5",
|
|
861
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.63.5.tgz",
|
|
862
|
+
"integrity": "sha512-4nJJGg5jbo2wwPP4JP+LfEBA3bvP8rU9CLuhp7jWvq9sxEyhjQFTFdrqi+/dHEin/pd8jpT0vcehIpnZtmEdcQ==",
|
|
863
863
|
"cpu": [
|
|
864
864
|
"x64"
|
|
865
865
|
],
|
|
@@ -871,9 +871,9 @@
|
|
|
871
871
|
]
|
|
872
872
|
},
|
|
873
873
|
"node_modules/@rollup/rollup-freebsd-arm64": {
|
|
874
|
-
"version": "4.63.
|
|
875
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.63.
|
|
876
|
-
"integrity": "sha512-
|
|
874
|
+
"version": "4.63.5",
|
|
875
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.63.5.tgz",
|
|
876
|
+
"integrity": "sha512-DrZbyCDF1hneuO6jRbvZ2D7+PIBM6yIwYnJpg2vIk58T+wuFpiaGZrfUr59lDWw45bg+IrpTGLPiNi/Fk4w3Cg==",
|
|
877
877
|
"cpu": [
|
|
878
878
|
"arm64"
|
|
879
879
|
],
|
|
@@ -885,9 +885,9 @@
|
|
|
885
885
|
]
|
|
886
886
|
},
|
|
887
887
|
"node_modules/@rollup/rollup-freebsd-x64": {
|
|
888
|
-
"version": "4.63.
|
|
889
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.63.
|
|
890
|
-
"integrity": "sha512-
|
|
888
|
+
"version": "4.63.5",
|
|
889
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.63.5.tgz",
|
|
890
|
+
"integrity": "sha512-gqfUVMJMB3mehqywxp6hTBFfgtMQykZY19+cfiaYP0toIJLb/1DZRJHVkQQGP13W4TAwfZDWeg1qBcheTRioXQ==",
|
|
891
891
|
"cpu": [
|
|
892
892
|
"x64"
|
|
893
893
|
],
|
|
@@ -899,9 +899,9 @@
|
|
|
899
899
|
]
|
|
900
900
|
},
|
|
901
901
|
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
|
|
902
|
-
"version": "4.63.
|
|
903
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.63.
|
|
904
|
-
"integrity": "sha512-
|
|
902
|
+
"version": "4.63.5",
|
|
903
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.63.5.tgz",
|
|
904
|
+
"integrity": "sha512-CFmhpvAwzSaWMlN3VN7UtmoTihlZNzoP0juQib5TQRnYUyDV8dXeWOp29sobWAT6gXl/hQgAClLlEiYozQG3OQ==",
|
|
905
905
|
"cpu": [
|
|
906
906
|
"arm"
|
|
907
907
|
],
|
|
@@ -916,9 +916,9 @@
|
|
|
916
916
|
]
|
|
917
917
|
},
|
|
918
918
|
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
|
|
919
|
-
"version": "4.63.
|
|
920
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.63.
|
|
921
|
-
"integrity": "sha512-
|
|
919
|
+
"version": "4.63.5",
|
|
920
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.63.5.tgz",
|
|
921
|
+
"integrity": "sha512-Uc9H8eXCOayV6JLTH5bXKMId6qbhNHa818/BgYjm4jrlq3vZquC9cqyvHBw17xy5Mnj5f+I3gFK5JcEf3hSqrw==",
|
|
922
922
|
"cpu": [
|
|
923
923
|
"arm"
|
|
924
924
|
],
|
|
@@ -933,9 +933,9 @@
|
|
|
933
933
|
]
|
|
934
934
|
},
|
|
935
935
|
"node_modules/@rollup/rollup-linux-arm64-gnu": {
|
|
936
|
-
"version": "4.63.
|
|
937
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.63.
|
|
938
|
-
"integrity": "sha512-
|
|
936
|
+
"version": "4.63.5",
|
|
937
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.63.5.tgz",
|
|
938
|
+
"integrity": "sha512-VcPr/szv/1BFw112Kt//fxulXt/JPqzzidU84iW68L2DdjnOO8QFUv2zTSYBEPHD6movBD4z+bbr5y60GYM7Jw==",
|
|
939
939
|
"cpu": [
|
|
940
940
|
"arm64"
|
|
941
941
|
],
|
|
@@ -950,9 +950,9 @@
|
|
|
950
950
|
]
|
|
951
951
|
},
|
|
952
952
|
"node_modules/@rollup/rollup-linux-arm64-musl": {
|
|
953
|
-
"version": "4.63.
|
|
954
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.63.
|
|
955
|
-
"integrity": "sha512-
|
|
953
|
+
"version": "4.63.5",
|
|
954
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.63.5.tgz",
|
|
955
|
+
"integrity": "sha512-BnxtJ5/91BrIHYIkGrmjz/lbMhqEHt1dPFqIxIFR+jPn0xVc/oUSCtIT089zfp5ufwGDlYz2UC+Fe1SRBpYFbQ==",
|
|
956
956
|
"cpu": [
|
|
957
957
|
"arm64"
|
|
958
958
|
],
|
|
@@ -967,9 +967,9 @@
|
|
|
967
967
|
]
|
|
968
968
|
},
|
|
969
969
|
"node_modules/@rollup/rollup-linux-loong64-gnu": {
|
|
970
|
-
"version": "4.63.
|
|
971
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.63.
|
|
972
|
-
"integrity": "sha512-
|
|
970
|
+
"version": "4.63.5",
|
|
971
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.63.5.tgz",
|
|
972
|
+
"integrity": "sha512-LrYcHZwF+fAMNKHYTOQ5osWM4AZF7YF6D+XtsjDyEvljtt11twc+zHVXBLNEjxVSUnKYsOhvVz4Z213eW02COQ==",
|
|
973
973
|
"cpu": [
|
|
974
974
|
"loong64"
|
|
975
975
|
],
|
|
@@ -984,9 +984,9 @@
|
|
|
984
984
|
]
|
|
985
985
|
},
|
|
986
986
|
"node_modules/@rollup/rollup-linux-loong64-musl": {
|
|
987
|
-
"version": "4.63.
|
|
988
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.63.
|
|
989
|
-
"integrity": "sha512-
|
|
987
|
+
"version": "4.63.5",
|
|
988
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.63.5.tgz",
|
|
989
|
+
"integrity": "sha512-nj7QKQePAAUpCpJHtg0pR0W/b92A9NO17JS3BAQmHDn/yhmkir2p8llrKY9TOhleKIaSzy1JhxS3T9FVld6coA==",
|
|
990
990
|
"cpu": [
|
|
991
991
|
"loong64"
|
|
992
992
|
],
|
|
@@ -1001,9 +1001,9 @@
|
|
|
1001
1001
|
]
|
|
1002
1002
|
},
|
|
1003
1003
|
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
|
|
1004
|
-
"version": "4.63.
|
|
1005
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.63.
|
|
1006
|
-
"integrity": "sha512
|
|
1004
|
+
"version": "4.63.5",
|
|
1005
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.63.5.tgz",
|
|
1006
|
+
"integrity": "sha512-5ylkX6dWMeBKge9nTU+Rxfb+ZfaCIJ9lRqIFaK0eAMcWp7OJbYnLveLgXmm0VrvuLKb8qIK+mHyH0qu88RM+iA==",
|
|
1007
1007
|
"cpu": [
|
|
1008
1008
|
"ppc64"
|
|
1009
1009
|
],
|
|
@@ -1018,9 +1018,9 @@
|
|
|
1018
1018
|
]
|
|
1019
1019
|
},
|
|
1020
1020
|
"node_modules/@rollup/rollup-linux-ppc64-musl": {
|
|
1021
|
-
"version": "4.63.
|
|
1022
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.63.
|
|
1023
|
-
"integrity": "sha512-
|
|
1021
|
+
"version": "4.63.5",
|
|
1022
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.63.5.tgz",
|
|
1023
|
+
"integrity": "sha512-oHK4ZHYFDKjZviK34I+NwgfbGxgI7ztrNxj2hPTSSNFgeq1a/lEd7dHV2fdGAuTH4Iym3RHJg+vAbWaWG4B7Zg==",
|
|
1024
1024
|
"cpu": [
|
|
1025
1025
|
"ppc64"
|
|
1026
1026
|
],
|
|
@@ -1035,9 +1035,9 @@
|
|
|
1035
1035
|
]
|
|
1036
1036
|
},
|
|
1037
1037
|
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
|
|
1038
|
-
"version": "4.63.
|
|
1039
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.63.
|
|
1040
|
-
"integrity": "sha512-
|
|
1038
|
+
"version": "4.63.5",
|
|
1039
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.63.5.tgz",
|
|
1040
|
+
"integrity": "sha512-UcetmHZ6XOXuUByiKZyQmb55ZPr0LABr3Ec/HB9wKZn6CEAFWZkE+hsJErJ9hbPBC7nI0dKuELx7CoV6IM7TMg==",
|
|
1041
1041
|
"cpu": [
|
|
1042
1042
|
"riscv64"
|
|
1043
1043
|
],
|
|
@@ -1052,9 +1052,9 @@
|
|
|
1052
1052
|
]
|
|
1053
1053
|
},
|
|
1054
1054
|
"node_modules/@rollup/rollup-linux-riscv64-musl": {
|
|
1055
|
-
"version": "4.63.
|
|
1056
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.63.
|
|
1057
|
-
"integrity": "sha512-
|
|
1055
|
+
"version": "4.63.5",
|
|
1056
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.63.5.tgz",
|
|
1057
|
+
"integrity": "sha512-C5CmDPQBtvjVo8cgQsBs+w6WB0JLkiixhgi6hVLV11hERWdn/p0XcPU2OUcZzac9BPOFq7SbaHFa8r3SWEysCQ==",
|
|
1058
1058
|
"cpu": [
|
|
1059
1059
|
"riscv64"
|
|
1060
1060
|
],
|
|
@@ -1069,9 +1069,9 @@
|
|
|
1069
1069
|
]
|
|
1070
1070
|
},
|
|
1071
1071
|
"node_modules/@rollup/rollup-linux-s390x-gnu": {
|
|
1072
|
-
"version": "4.63.
|
|
1073
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.63.
|
|
1074
|
-
"integrity": "sha512-
|
|
1072
|
+
"version": "4.63.5",
|
|
1073
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.63.5.tgz",
|
|
1074
|
+
"integrity": "sha512-lHVQHJFKsuuxLMi3MQO9XVL8Tje3JR82CzB+QDKC5NWBcsIWuwsn9uIM5e3lBhI+fF1/s63qnyYqsg65+8rV/w==",
|
|
1075
1075
|
"cpu": [
|
|
1076
1076
|
"s390x"
|
|
1077
1077
|
],
|
|
@@ -1086,9 +1086,9 @@
|
|
|
1086
1086
|
]
|
|
1087
1087
|
},
|
|
1088
1088
|
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
|
1089
|
-
"version": "4.63.
|
|
1090
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.
|
|
1091
|
-
"integrity": "sha512-
|
|
1089
|
+
"version": "4.63.5",
|
|
1090
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.5.tgz",
|
|
1091
|
+
"integrity": "sha512-3W9bTFcQNJn71cSJVM9RKIiZOy8DO/XLDii8Uv/Pm6WKqDRj7JV3ZfuXIEfyuy5LXpIzAbB/1M4Ukp9GKNa7nA==",
|
|
1092
1092
|
"cpu": [
|
|
1093
1093
|
"x64"
|
|
1094
1094
|
],
|
|
@@ -1103,9 +1103,9 @@
|
|
|
1103
1103
|
]
|
|
1104
1104
|
},
|
|
1105
1105
|
"node_modules/@rollup/rollup-linux-x64-musl": {
|
|
1106
|
-
"version": "4.63.
|
|
1107
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.63.
|
|
1108
|
-
"integrity": "sha512-
|
|
1106
|
+
"version": "4.63.5",
|
|
1107
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.63.5.tgz",
|
|
1108
|
+
"integrity": "sha512-VDC7rRJlee/scpki96GZ27Omf6yU87s1YXwVTpjE5841faVlDYYT565rgfmoR1U0sqL7z5ivQSDjcsF6VRXyBA==",
|
|
1109
1109
|
"cpu": [
|
|
1110
1110
|
"x64"
|
|
1111
1111
|
],
|
|
@@ -1120,9 +1120,9 @@
|
|
|
1120
1120
|
]
|
|
1121
1121
|
},
|
|
1122
1122
|
"node_modules/@rollup/rollup-openbsd-x64": {
|
|
1123
|
-
"version": "4.63.
|
|
1124
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.63.
|
|
1125
|
-
"integrity": "sha512-
|
|
1123
|
+
"version": "4.63.5",
|
|
1124
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.63.5.tgz",
|
|
1125
|
+
"integrity": "sha512-z86Ok2p4pTdv5xqCKZsTooO7yBEiaJR/HzU3Wx8RmWsPoLppnMKROhJusQob8B3IE1ghC343kUW9rC2r+Wf3ig==",
|
|
1126
1126
|
"cpu": [
|
|
1127
1127
|
"x64"
|
|
1128
1128
|
],
|
|
@@ -1134,9 +1134,9 @@
|
|
|
1134
1134
|
]
|
|
1135
1135
|
},
|
|
1136
1136
|
"node_modules/@rollup/rollup-openharmony-arm64": {
|
|
1137
|
-
"version": "4.63.
|
|
1138
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.63.
|
|
1139
|
-
"integrity": "sha512-
|
|
1137
|
+
"version": "4.63.5",
|
|
1138
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.63.5.tgz",
|
|
1139
|
+
"integrity": "sha512-IzQmj+xXwQFGhMAMKMQVXkMwMZN3TqkJgAE0nSsqvVwWWciP4AIPMmWRqOQ2GfX7TUDZr+xqGFcBS36CRPGw0g==",
|
|
1140
1140
|
"cpu": [
|
|
1141
1141
|
"arm64"
|
|
1142
1142
|
],
|
|
@@ -1148,9 +1148,9 @@
|
|
|
1148
1148
|
]
|
|
1149
1149
|
},
|
|
1150
1150
|
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
|
1151
|
-
"version": "4.63.
|
|
1152
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.63.
|
|
1153
|
-
"integrity": "sha512-
|
|
1151
|
+
"version": "4.63.5",
|
|
1152
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.63.5.tgz",
|
|
1153
|
+
"integrity": "sha512-F6qpTaPc9bwBH85kjy0/BLmLSW1uv7AoOXCoRIkg2arlgCYlWYcAbiMkvZuAcaWk9TpCRG//okznLAqLGshkMw==",
|
|
1154
1154
|
"cpu": [
|
|
1155
1155
|
"arm64"
|
|
1156
1156
|
],
|
|
@@ -1162,9 +1162,9 @@
|
|
|
1162
1162
|
]
|
|
1163
1163
|
},
|
|
1164
1164
|
"node_modules/@rollup/rollup-win32-ia32-msvc": {
|
|
1165
|
-
"version": "4.63.
|
|
1166
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.63.
|
|
1167
|
-
"integrity": "sha512-
|
|
1165
|
+
"version": "4.63.5",
|
|
1166
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.63.5.tgz",
|
|
1167
|
+
"integrity": "sha512-igoDsTFhhwECBeGbUuLeIk7t8Y1apa+cs6mDWpx2EZ0ch7oEQgzHbFUXN9euoHekCAQzXdXApAGkV6jznS7tWw==",
|
|
1168
1168
|
"cpu": [
|
|
1169
1169
|
"ia32"
|
|
1170
1170
|
],
|
|
@@ -1176,9 +1176,9 @@
|
|
|
1176
1176
|
]
|
|
1177
1177
|
},
|
|
1178
1178
|
"node_modules/@rollup/rollup-win32-x64-gnu": {
|
|
1179
|
-
"version": "4.63.
|
|
1180
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.63.
|
|
1181
|
-
"integrity": "sha512-
|
|
1179
|
+
"version": "4.63.5",
|
|
1180
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.63.5.tgz",
|
|
1181
|
+
"integrity": "sha512-U3teMeMbXFmaM5D+OTJpsOXd+wV/qftIeYF9kBKL4v73641qyJmoXFtA28DQLsnmlyayEsTe72xpLHrArq6vHw==",
|
|
1182
1182
|
"cpu": [
|
|
1183
1183
|
"x64"
|
|
1184
1184
|
],
|
|
@@ -1190,9 +1190,9 @@
|
|
|
1190
1190
|
]
|
|
1191
1191
|
},
|
|
1192
1192
|
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
|
1193
|
-
"version": "4.63.
|
|
1194
|
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.63.
|
|
1195
|
-
"integrity": "sha512-
|
|
1193
|
+
"version": "4.63.5",
|
|
1194
|
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.63.5.tgz",
|
|
1195
|
+
"integrity": "sha512-ypfC34F3RKXvCXBglGqGMsUSMKlgwd1HX9AOAlx9RoZZ6GaI42YHVeKpzg3JG+wpBUJYTG+NNZhqbDWL8tBZkw==",
|
|
1196
1196
|
"cpu": [
|
|
1197
1197
|
"x64"
|
|
1198
1198
|
],
|
|
@@ -1244,9 +1244,9 @@
|
|
|
1244
1244
|
}
|
|
1245
1245
|
},
|
|
1246
1246
|
"node_modules/@types/ws": {
|
|
1247
|
-
"version": "8.18.
|
|
1248
|
-
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.
|
|
1249
|
-
"integrity": "sha512-
|
|
1247
|
+
"version": "8.18.2",
|
|
1248
|
+
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.2.tgz",
|
|
1249
|
+
"integrity": "sha512-67MQl+fpWKVTT1NYdnmo3U4sc/xPo/zQBncVnI74qmQa0z/b+1g6iYqNmGCPbxO+zz2aklb08a0oHfegiVd0/w==",
|
|
1250
1250
|
"dev": true,
|
|
1251
1251
|
"license": "MIT",
|
|
1252
1252
|
"dependencies": {
|
|
@@ -1455,9 +1455,9 @@
|
|
|
1455
1455
|
}
|
|
1456
1456
|
},
|
|
1457
1457
|
"node_modules/ansi-regex": {
|
|
1458
|
-
"version": "6.
|
|
1459
|
-
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.
|
|
1460
|
-
"integrity": "sha512-
|
|
1458
|
+
"version": "6.4.0",
|
|
1459
|
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz",
|
|
1460
|
+
"integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==",
|
|
1461
1461
|
"license": "MIT",
|
|
1462
1462
|
"engines": {
|
|
1463
1463
|
"node": ">=12"
|
|
@@ -2369,9 +2369,9 @@
|
|
|
2369
2369
|
}
|
|
2370
2370
|
},
|
|
2371
2371
|
"node_modules/hono": {
|
|
2372
|
-
"version": "4.13.
|
|
2373
|
-
"resolved": "https://registry.npmjs.org/hono/-/hono-4.13.
|
|
2374
|
-
"integrity": "sha512-/
|
|
2372
|
+
"version": "4.13.11",
|
|
2373
|
+
"resolved": "https://registry.npmjs.org/hono/-/hono-4.13.11.tgz",
|
|
2374
|
+
"integrity": "sha512-/SMX/RQNJn7oNmFwH6DtwDqcrzZU2otm1FD6OJe2cWF6cfy/F8hq0XVBv7xW3FTJshRQwuBnXHDq2kNsdZnshg==",
|
|
2375
2375
|
"license": "MIT",
|
|
2376
2376
|
"engines": {
|
|
2377
2377
|
"node": ">=16.9.0"
|
|
@@ -3174,9 +3174,9 @@
|
|
|
3174
3174
|
}
|
|
3175
3175
|
},
|
|
3176
3176
|
"node_modules/rollup": {
|
|
3177
|
-
"version": "4.63.
|
|
3178
|
-
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.63.
|
|
3179
|
-
"integrity": "sha512-
|
|
3177
|
+
"version": "4.63.5",
|
|
3178
|
+
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.63.5.tgz",
|
|
3179
|
+
"integrity": "sha512-KRWwmNLlPw5M7HcdYfm15oBv9n9LPtjzpzCIxS/phwqvPyxHSoKX6Y2YU3pxSPfy0CLquVgsx/j/hBi6OvH1Nw==",
|
|
3180
3180
|
"dev": true,
|
|
3181
3181
|
"license": "MIT",
|
|
3182
3182
|
"dependencies": {
|
|
@@ -3191,31 +3191,31 @@
|
|
|
3191
3191
|
},
|
|
3192
3192
|
"optionalDependencies": {
|
|
3193
3193
|
"@napi-rs/lzma-linux-x64-gnu": "1.5.1",
|
|
3194
|
-
"@rollup/rollup-android-arm-eabi": "4.63.
|
|
3195
|
-
"@rollup/rollup-android-arm64": "4.63.
|
|
3196
|
-
"@rollup/rollup-darwin-arm64": "4.63.
|
|
3197
|
-
"@rollup/rollup-darwin-x64": "4.63.
|
|
3198
|
-
"@rollup/rollup-freebsd-arm64": "4.63.
|
|
3199
|
-
"@rollup/rollup-freebsd-x64": "4.63.
|
|
3200
|
-
"@rollup/rollup-linux-arm-gnueabihf": "4.63.
|
|
3201
|
-
"@rollup/rollup-linux-arm-musleabihf": "4.63.
|
|
3202
|
-
"@rollup/rollup-linux-arm64-gnu": "4.63.
|
|
3203
|
-
"@rollup/rollup-linux-arm64-musl": "4.63.
|
|
3204
|
-
"@rollup/rollup-linux-loong64-gnu": "4.63.
|
|
3205
|
-
"@rollup/rollup-linux-loong64-musl": "4.63.
|
|
3206
|
-
"@rollup/rollup-linux-ppc64-gnu": "4.63.
|
|
3207
|
-
"@rollup/rollup-linux-ppc64-musl": "4.63.
|
|
3208
|
-
"@rollup/rollup-linux-riscv64-gnu": "4.63.
|
|
3209
|
-
"@rollup/rollup-linux-riscv64-musl": "4.63.
|
|
3210
|
-
"@rollup/rollup-linux-s390x-gnu": "4.63.
|
|
3211
|
-
"@rollup/rollup-linux-x64-gnu": "4.63.
|
|
3212
|
-
"@rollup/rollup-linux-x64-musl": "4.63.
|
|
3213
|
-
"@rollup/rollup-openbsd-x64": "4.63.
|
|
3214
|
-
"@rollup/rollup-openharmony-arm64": "4.63.
|
|
3215
|
-
"@rollup/rollup-win32-arm64-msvc": "4.63.
|
|
3216
|
-
"@rollup/rollup-win32-ia32-msvc": "4.63.
|
|
3217
|
-
"@rollup/rollup-win32-x64-gnu": "4.63.
|
|
3218
|
-
"@rollup/rollup-win32-x64-msvc": "4.63.
|
|
3194
|
+
"@rollup/rollup-android-arm-eabi": "4.63.5",
|
|
3195
|
+
"@rollup/rollup-android-arm64": "4.63.5",
|
|
3196
|
+
"@rollup/rollup-darwin-arm64": "4.63.5",
|
|
3197
|
+
"@rollup/rollup-darwin-x64": "4.63.5",
|
|
3198
|
+
"@rollup/rollup-freebsd-arm64": "4.63.5",
|
|
3199
|
+
"@rollup/rollup-freebsd-x64": "4.63.5",
|
|
3200
|
+
"@rollup/rollup-linux-arm-gnueabihf": "4.63.5",
|
|
3201
|
+
"@rollup/rollup-linux-arm-musleabihf": "4.63.5",
|
|
3202
|
+
"@rollup/rollup-linux-arm64-gnu": "4.63.5",
|
|
3203
|
+
"@rollup/rollup-linux-arm64-musl": "4.63.5",
|
|
3204
|
+
"@rollup/rollup-linux-loong64-gnu": "4.63.5",
|
|
3205
|
+
"@rollup/rollup-linux-loong64-musl": "4.63.5",
|
|
3206
|
+
"@rollup/rollup-linux-ppc64-gnu": "4.63.5",
|
|
3207
|
+
"@rollup/rollup-linux-ppc64-musl": "4.63.5",
|
|
3208
|
+
"@rollup/rollup-linux-riscv64-gnu": "4.63.5",
|
|
3209
|
+
"@rollup/rollup-linux-riscv64-musl": "4.63.5",
|
|
3210
|
+
"@rollup/rollup-linux-s390x-gnu": "4.63.5",
|
|
3211
|
+
"@rollup/rollup-linux-x64-gnu": "4.63.5",
|
|
3212
|
+
"@rollup/rollup-linux-x64-musl": "4.63.5",
|
|
3213
|
+
"@rollup/rollup-openbsd-x64": "4.63.5",
|
|
3214
|
+
"@rollup/rollup-openharmony-arm64": "4.63.5",
|
|
3215
|
+
"@rollup/rollup-win32-arm64-msvc": "4.63.5",
|
|
3216
|
+
"@rollup/rollup-win32-ia32-msvc": "4.63.5",
|
|
3217
|
+
"@rollup/rollup-win32-x64-gnu": "4.63.5",
|
|
3218
|
+
"@rollup/rollup-win32-x64-msvc": "4.63.5",
|
|
3219
3219
|
"fsevents": "~2.3.2"
|
|
3220
3220
|
}
|
|
3221
3221
|
},
|