mthds 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/commands/update-check.d.ts +14 -1
- package/dist/agent/commands/update-check.js +238 -16
- package/dist/agent/commands/update-check.js.map +1 -1
- package/dist/agent/plugin-version.d.ts +1 -1
- package/dist/agent/plugin-version.js +1 -1
- package/dist/agent/remote-version.d.ts +31 -0
- package/dist/agent/remote-version.js +74 -0
- package/dist/agent/remote-version.js.map +1 -0
- package/dist/agent/update-cache.d.ts +41 -0
- package/dist/agent/update-cache.js +129 -0
- package/dist/agent/update-cache.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,9 +2,22 @@
|
|
|
2
2
|
* mthds-agent update-check — check if binary dependencies need updating.
|
|
3
3
|
*
|
|
4
4
|
* Stdout protocol (consumed by skill preamble bash block):
|
|
5
|
-
* -
|
|
5
|
+
* - UP_TO_DATE k=v ... → explicit "all current" line; preamble proceeds.
|
|
6
|
+
* Two "quiet" variants share the same prefix so
|
|
7
|
+
* the preamble's split rule treats them all as
|
|
8
|
+
* clean env-checks:
|
|
9
|
+
* `UP_TO_DATE update-check=disabled` — user
|
|
10
|
+
* turned update-check off via config.
|
|
11
|
+
* `UP_TO_DATE update-check=snoozed` — user
|
|
12
|
+
* has an active snooze on the current
|
|
13
|
+
* version key (would-be UPGRADE_AVAILABLE
|
|
14
|
+
* suppressed for this run).
|
|
6
15
|
* - UPGRADE_AVAILABLE <json> → trigger upgrade flow (read shared/upgrade-flow.md)
|
|
7
16
|
* - JUST_UPGRADED <json> → announce what was upgraded, then continue
|
|
17
|
+
* - No output → script bug. Preamble treats empty stdout as
|
|
18
|
+
* a degraded env-check; every legitimate
|
|
19
|
+
* branch (including snooze) emits one of the
|
|
20
|
+
* signals above.
|
|
8
21
|
*
|
|
9
22
|
* The preamble captures stdout via: mthds-agent update-check 2>/dev/null || true
|
|
10
23
|
* and checks for the presence of these keywords. Plain text, not agentSuccess JSON.
|
|
@@ -2,22 +2,37 @@
|
|
|
2
2
|
* mthds-agent update-check — check if binary dependencies need updating.
|
|
3
3
|
*
|
|
4
4
|
* Stdout protocol (consumed by skill preamble bash block):
|
|
5
|
-
* -
|
|
5
|
+
* - UP_TO_DATE k=v ... → explicit "all current" line; preamble proceeds.
|
|
6
|
+
* Two "quiet" variants share the same prefix so
|
|
7
|
+
* the preamble's split rule treats them all as
|
|
8
|
+
* clean env-checks:
|
|
9
|
+
* `UP_TO_DATE update-check=disabled` — user
|
|
10
|
+
* turned update-check off via config.
|
|
11
|
+
* `UP_TO_DATE update-check=snoozed` — user
|
|
12
|
+
* has an active snooze on the current
|
|
13
|
+
* version key (would-be UPGRADE_AVAILABLE
|
|
14
|
+
* suppressed for this run).
|
|
6
15
|
* - UPGRADE_AVAILABLE <json> → trigger upgrade flow (read shared/upgrade-flow.md)
|
|
7
16
|
* - JUST_UPGRADED <json> → announce what was upgraded, then continue
|
|
17
|
+
* - No output → script bug. Preamble treats empty stdout as
|
|
18
|
+
* a degraded env-check; every legitimate
|
|
19
|
+
* branch (including snooze) emits one of the
|
|
20
|
+
* signals above.
|
|
8
21
|
*
|
|
9
22
|
* The preamble captures stdout via: mthds-agent update-check 2>/dev/null || true
|
|
10
23
|
* and checks for the presence of these keywords. Plain text, not agentSuccess JSON.
|
|
11
24
|
*/
|
|
12
25
|
import { createRequire } from "node:module";
|
|
26
|
+
import semver from "semver";
|
|
13
27
|
import { agentSuccess } from "../output.js";
|
|
14
28
|
import { BINARY_RECOVERY } from "../binaries.js";
|
|
15
29
|
import { checkBinaryVersion } from "../../installer/runtime/version-check.js";
|
|
16
30
|
import { loadConfig } from "../../config/config.js";
|
|
17
31
|
import { Runners } from "../../runners/types.js";
|
|
18
|
-
import { readCache, writeCache, clearCache, computeAggregate, readAndClearUpgradeMarker, } from "../update-cache.js";
|
|
32
|
+
import { readCache, writeCache, clearCache, computeAggregate, readAndClearUpgradeMarker, readRemoteCache, readRemoteCacheRaw, writeRemoteCache, clearRemoteCache, } from "../update-cache.js";
|
|
19
33
|
import { isSnoozed, writeSnooze, clearSnooze, computeVersionKey, } from "../snooze.js";
|
|
20
34
|
import { checkPluginVersion, detectHost } from "../plugin-version.js";
|
|
35
|
+
import { fetchLatestMthdsAgentNpm, fetchLatestPluginMarketplace, } from "../remote-version.js";
|
|
21
36
|
const require = createRequire(import.meta.url);
|
|
22
37
|
const pkg = require("../../../package.json");
|
|
23
38
|
// ── Main ───────────────────────────────────────────────────────────
|
|
@@ -30,13 +45,25 @@ export async function agentUpdateCheck(options) {
|
|
|
30
45
|
async function agentUpdateCheckInner(options) {
|
|
31
46
|
// 1. Check if update-check is disabled
|
|
32
47
|
const cfg = loadConfig();
|
|
33
|
-
if (!cfg.updateCheck)
|
|
48
|
+
if (!cfg.updateCheck) {
|
|
49
|
+
// Explicit signal so the preamble's "no output → WARN" rule does NOT
|
|
50
|
+
// fire on every run for users who deliberately disabled update-check
|
|
51
|
+
// (otherwise their config choice silently turns into a perpetual warning).
|
|
52
|
+
process.stdout.write("UP_TO_DATE update-check=disabled\n");
|
|
34
53
|
return;
|
|
54
|
+
}
|
|
35
55
|
// 2. Check for just-upgraded-from marker
|
|
36
56
|
const upgradeMarker = readAndClearUpgradeMarker();
|
|
37
57
|
if (upgradeMarker) {
|
|
38
58
|
clearCache();
|
|
39
|
-
|
|
59
|
+
// When --force is also set the user has explicitly asked for a
|
|
60
|
+
// clean-slate check; drop snooze + remote cache too so this path
|
|
61
|
+
// honors --force the same way the standalone branch below does.
|
|
62
|
+
if (options.force) {
|
|
63
|
+
clearSnooze();
|
|
64
|
+
clearRemoteCache();
|
|
65
|
+
}
|
|
66
|
+
const payload = await runFreshChecks(cfg.runner);
|
|
40
67
|
const aggregate = computeAggregate(payload);
|
|
41
68
|
writeCache({ aggregate, payload });
|
|
42
69
|
const output = { previous: upgradeMarker, current: payloadVersions(payload) };
|
|
@@ -49,16 +76,21 @@ async function agentUpdateCheckInner(options) {
|
|
|
49
76
|
process.stdout.write("UPGRADE_AVAILABLE " + JSON.stringify(payload) + "\n");
|
|
50
77
|
}
|
|
51
78
|
}
|
|
79
|
+
// JUST_UPGRADED carries the informational versions already — no UP_TO_DATE
|
|
80
|
+
// chaser needed on this path.
|
|
52
81
|
return;
|
|
53
82
|
}
|
|
54
83
|
// 3. Handle --force
|
|
55
84
|
if (options.force) {
|
|
56
85
|
clearCache();
|
|
57
86
|
clearSnooze();
|
|
87
|
+
// Remote cache has its own 24h TTL independent of the binary checks; a
|
|
88
|
+
// user running --force expects to bypass every cache, including this one.
|
|
89
|
+
clearRemoteCache();
|
|
58
90
|
}
|
|
59
91
|
// 4. Handle --snooze
|
|
60
92
|
if (options.snooze) {
|
|
61
|
-
const payload = getOrRefreshPayload(cfg.runner);
|
|
93
|
+
const payload = await getOrRefreshPayload(cfg.runner);
|
|
62
94
|
const versionKey = computeVersionKey(payload);
|
|
63
95
|
writeSnooze(versionKey);
|
|
64
96
|
agentSuccess({ snoozed: true, version_key: versionKey });
|
|
@@ -67,39 +99,85 @@ async function agentUpdateCheckInner(options) {
|
|
|
67
99
|
// 5. Try cache
|
|
68
100
|
const cached = readCache();
|
|
69
101
|
if (cached) {
|
|
70
|
-
if (cached.aggregate === "UP_TO_DATE")
|
|
102
|
+
if (cached.aggregate === "UP_TO_DATE") {
|
|
103
|
+
// Re-run fresh checks on cache-UP_TO_DATE rather than trusting the
|
|
104
|
+
// cached versions. Why: when the user manually upgrades a binary outside
|
|
105
|
+
// the upgrade-flow (npm install -g mthds@latest, uv tool upgrade plxt),
|
|
106
|
+
// no JUST_UPGRADED marker is written, so within the 60-min cache TTL
|
|
107
|
+
// the cached versions are stale — and the explicit UP_TO_DATE line we
|
|
108
|
+
// emit would report versions that no longer exist on the host.
|
|
109
|
+
// runFreshChecks internally re-applies the remote overlay, so a sibling
|
|
110
|
+
// --force or independent worker that refreshed the upstream cache still
|
|
111
|
+
// flips us to UPGRADE_AVAILABLE on this path. Cost: ~150ms of binary
|
|
112
|
+
// spawns per invocation; symmetric with the cache-UPGRADE_AVAILABLE
|
|
113
|
+
// branch which already pays this. The cache's remaining role on this
|
|
114
|
+
// branch is just the "we were UP_TO_DATE recently" signal — no payload
|
|
115
|
+
// values are actually trusted.
|
|
116
|
+
const freshPayload = await runFreshChecks(cfg.runner);
|
|
117
|
+
const freshAggregate = computeAggregate(freshPayload);
|
|
118
|
+
writeCache({ aggregate: freshAggregate, payload: freshPayload });
|
|
119
|
+
if (freshAggregate === "UP_TO_DATE") {
|
|
120
|
+
emitUpToDate(freshPayload);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
// Local state or remote overlay flipped us to UPGRADE_AVAILABLE — emit
|
|
124
|
+
// through the same snooze gate as the cache-UPGRADE_AVAILABLE branch.
|
|
125
|
+
const freshKey = computeVersionKey(freshPayload);
|
|
126
|
+
if (isSnoozed(freshKey)) {
|
|
127
|
+
emitSnoozedSentinel();
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
process.stdout.write("UPGRADE_AVAILABLE " + JSON.stringify(freshPayload) + "\n");
|
|
71
131
|
return;
|
|
72
|
-
|
|
132
|
+
}
|
|
133
|
+
// UPGRADE_AVAILABLE — check snooze first to avoid unnecessary subprocess spawns.
|
|
134
|
+
// Snooze means "user explicitly asked for quiet"; emit the snoozed sentinel
|
|
135
|
+
// so the preamble's "no output → WARN" rule does not fire on every run.
|
|
73
136
|
const cachedKey = computeVersionKey(cached.payload);
|
|
74
|
-
if (isSnoozed(cachedKey))
|
|
137
|
+
if (isSnoozed(cachedKey)) {
|
|
138
|
+
emitSnoozedSentinel();
|
|
75
139
|
return;
|
|
140
|
+
}
|
|
76
141
|
// Re-verify to catch manual upgrades (e.g. uv tool install --upgrade)
|
|
77
|
-
const freshPayload = runFreshChecks(cfg.runner);
|
|
142
|
+
const freshPayload = await runFreshChecks(cfg.runner);
|
|
78
143
|
const freshAggregate = computeAggregate(freshPayload);
|
|
79
144
|
writeCache({ aggregate: freshAggregate, payload: freshPayload });
|
|
80
|
-
if (freshAggregate === "UP_TO_DATE")
|
|
145
|
+
if (freshAggregate === "UP_TO_DATE") {
|
|
146
|
+
emitUpToDate(freshPayload);
|
|
81
147
|
return;
|
|
148
|
+
}
|
|
82
149
|
const freshKey = computeVersionKey(freshPayload);
|
|
83
|
-
if (isSnoozed(freshKey))
|
|
150
|
+
if (isSnoozed(freshKey)) {
|
|
151
|
+
emitSnoozedSentinel();
|
|
84
152
|
return;
|
|
153
|
+
}
|
|
85
154
|
process.stdout.write("UPGRADE_AVAILABLE " + JSON.stringify(freshPayload) + "\n");
|
|
86
155
|
return;
|
|
87
156
|
}
|
|
88
157
|
// 6. Cache miss — run fresh checks
|
|
89
|
-
const payload = runFreshChecks(cfg.runner);
|
|
158
|
+
const payload = await runFreshChecks(cfg.runner);
|
|
90
159
|
const aggregate = computeAggregate(payload);
|
|
91
160
|
// 7. Emit result BEFORE writing cache — if writeCache throws (e.g. state dir
|
|
92
161
|
// not creatable), the preamble still gets the signal.
|
|
93
162
|
if (aggregate !== "UP_TO_DATE") {
|
|
94
163
|
const versionKey = computeVersionKey(payload);
|
|
95
|
-
if (
|
|
164
|
+
if (isSnoozed(versionKey)) {
|
|
165
|
+
// Fresh outdated payload but the user has snoozed this version key —
|
|
166
|
+
// emit the snoozed sentinel rather than staying silent, so the preamble
|
|
167
|
+
// can tell a quiet-by-choice run apart from a broken env-check.
|
|
168
|
+
emitSnoozedSentinel();
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
96
171
|
process.stdout.write("UPGRADE_AVAILABLE " + JSON.stringify(payload) + "\n");
|
|
97
172
|
}
|
|
98
173
|
}
|
|
174
|
+
else {
|
|
175
|
+
emitUpToDate(payload);
|
|
176
|
+
}
|
|
99
177
|
writeCache({ aggregate, payload });
|
|
100
178
|
}
|
|
101
179
|
// ── Helpers ─────────────────────────────────────────────────────────
|
|
102
|
-
function runFreshChecks(runner) {
|
|
180
|
+
async function runFreshChecks(runner) {
|
|
103
181
|
const plxtRecovery = BINARY_RECOVERY["plxt"];
|
|
104
182
|
if (!plxtRecovery) {
|
|
105
183
|
throw new Error("Missing binary recovery info for plxt");
|
|
@@ -129,6 +207,15 @@ function runFreshChecks(runner) {
|
|
|
129
207
|
catch (err) {
|
|
130
208
|
process.stderr.write(`Warning: plugin version check failed (${err instanceof Error ? err.message : String(err)}). Skipping plugin check.\n`);
|
|
131
209
|
}
|
|
210
|
+
// Overlay remote upstream probes (npm + GitHub marketplace.json). Same
|
|
211
|
+
// try/catch isolation as the local plugin check above — a remote-layer
|
|
212
|
+
// failure must never crash update-check; we degrade to local-only.
|
|
213
|
+
try {
|
|
214
|
+
await applyRemoteOverlay(payload);
|
|
215
|
+
}
|
|
216
|
+
catch (err) {
|
|
217
|
+
process.stderr.write(`Warning: remote upstream check failed (${err instanceof Error ? err.message : String(err)}). Skipping upstream overlay.\n`);
|
|
218
|
+
}
|
|
132
219
|
return payload;
|
|
133
220
|
}
|
|
134
221
|
function toBinaryEntry(check) {
|
|
@@ -141,11 +228,11 @@ function toBinaryEntry(check) {
|
|
|
141
228
|
}
|
|
142
229
|
return entry;
|
|
143
230
|
}
|
|
144
|
-
function getOrRefreshPayload(runner) {
|
|
231
|
+
async function getOrRefreshPayload(runner) {
|
|
145
232
|
const cached = readCache();
|
|
146
233
|
if (cached)
|
|
147
234
|
return cached.payload;
|
|
148
|
-
const payload = runFreshChecks(runner);
|
|
235
|
+
const payload = await runFreshChecks(runner);
|
|
149
236
|
const aggregate = computeAggregate(payload);
|
|
150
237
|
writeCache({ aggregate, payload });
|
|
151
238
|
return payload;
|
|
@@ -163,4 +250,139 @@ function payloadVersions(payload) {
|
|
|
163
250
|
}
|
|
164
251
|
return result;
|
|
165
252
|
}
|
|
253
|
+
// ── UP_TO_DATE emission ─────────────────────────────────────────────
|
|
254
|
+
/**
|
|
255
|
+
* Emit the terse UP_TO_DATE line listing the verified installed versions
|
|
256
|
+
* (e.g. `UP_TO_DATE mthds-agent=0.8.1 plxt=0.4.0 plugin=0.11.3`). Replaces
|
|
257
|
+
* the prior "silent success" so the preamble can distinguish a clean
|
|
258
|
+
* env-check from a broken one (truly empty stdout now means a script bug).
|
|
259
|
+
*
|
|
260
|
+
* Optional fields (`pipelex_agent` when runner !== pipelex, `plugin` when
|
|
261
|
+
* no host detected) are omitted entirely rather than written as `=null`.
|
|
262
|
+
*/
|
|
263
|
+
function emitUpToDate(payload) {
|
|
264
|
+
const parts = [`mthds-agent=${payload.mthds_agent.v ?? "?"}`];
|
|
265
|
+
parts.push(`plxt=${payload.plxt.v ?? "?"}`);
|
|
266
|
+
if (payload.pipelex_agent) {
|
|
267
|
+
parts.push(`pipelex-agent=${payload.pipelex_agent.v ?? "?"}`);
|
|
268
|
+
}
|
|
269
|
+
if (payload.plugin) {
|
|
270
|
+
parts.push(`plugin=${payload.plugin.v ?? "?"}`);
|
|
271
|
+
}
|
|
272
|
+
process.stdout.write("UP_TO_DATE " + parts.join(" ") + "\n");
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Emit the "quiet by snooze" sentinel. Shares the `UP_TO_DATE` prefix so the
|
|
276
|
+
* preamble's split rule treats it as a clean env-check — same shape as
|
|
277
|
+
* `UP_TO_DATE update-check=disabled`. Without this, every snoozed run would
|
|
278
|
+
* trip the preamble's "no output → WARN" rule and the user's explicit "quiet
|
|
279
|
+
* me" choice would silently turn into a perpetual warning.
|
|
280
|
+
*/
|
|
281
|
+
function emitSnoozedSentinel() {
|
|
282
|
+
process.stdout.write("UP_TO_DATE update-check=snoozed\n");
|
|
283
|
+
}
|
|
284
|
+
// ── Remote upstream overlay ─────────────────────────────────────────
|
|
285
|
+
/**
|
|
286
|
+
* Mutate `payload` in place to reflect upstream-newer versions. The local
|
|
287
|
+
* payload's `mthds_agent` / `plugin` entries get flipped to `s: "outdated"`
|
|
288
|
+
* when the installed version is older than what's published upstream — npm
|
|
289
|
+
* for the agent, marketplace.json for the plugin. Each comparison is
|
|
290
|
+
* gated on the corresponding remote value being a valid semver string;
|
|
291
|
+
* anything else degrades silently.
|
|
292
|
+
*
|
|
293
|
+
* The local floor check (checkPluginVersion → MIN_PLUGIN_VERSION) runs
|
|
294
|
+
* first and may already have marked plugin outdated. When both signals
|
|
295
|
+
* fire, the larger of the two thresholds wins so the user-facing `r` is
|
|
296
|
+
* always the more demanding requirement.
|
|
297
|
+
*/
|
|
298
|
+
async function applyRemoteOverlay(payload) {
|
|
299
|
+
const remote = await getOrRefreshRemoteCache();
|
|
300
|
+
if (!remote)
|
|
301
|
+
return;
|
|
302
|
+
// mthds-agent: own pkg.version vs upstream npm.
|
|
303
|
+
if (remote.mthds_agent_latest) {
|
|
304
|
+
const upstream = semver.coerce(remote.mthds_agent_latest);
|
|
305
|
+
const own = semver.coerce(pkg.version);
|
|
306
|
+
if (upstream && own && semver.gt(upstream.version, own.version)) {
|
|
307
|
+
payload.mthds_agent = {
|
|
308
|
+
s: "outdated",
|
|
309
|
+
v: pkg.version,
|
|
310
|
+
r: `>=${upstream.version}`,
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
// Plugin: only when a host was detected (payload.plugin present).
|
|
315
|
+
if (payload.plugin && remote.plugin_latest) {
|
|
316
|
+
const upstream = semver.coerce(remote.plugin_latest);
|
|
317
|
+
if (upstream) {
|
|
318
|
+
if (payload.plugin.s === "ok" && payload.plugin.v) {
|
|
319
|
+
const installed = semver.coerce(payload.plugin.v);
|
|
320
|
+
if (installed && semver.gt(upstream.version, installed.version)) {
|
|
321
|
+
payload.plugin = {
|
|
322
|
+
s: "outdated",
|
|
323
|
+
v: payload.plugin.v,
|
|
324
|
+
r: `>=${upstream.version}`,
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
else if (payload.plugin.s === "outdated" && payload.plugin.r) {
|
|
329
|
+
// Floor already flagged — keep the higher of floor.r vs upstream.
|
|
330
|
+
// semver.minVersion(">=0.11.3") returns "0.11.3"; bump payload.r when
|
|
331
|
+
// upstream demands more.
|
|
332
|
+
let floorMin = null;
|
|
333
|
+
try {
|
|
334
|
+
floorMin = semver.minVersion(payload.plugin.r);
|
|
335
|
+
}
|
|
336
|
+
catch {
|
|
337
|
+
floorMin = null;
|
|
338
|
+
}
|
|
339
|
+
if (floorMin && semver.gt(upstream.version, floorMin.version)) {
|
|
340
|
+
payload.plugin = {
|
|
341
|
+
...payload.plugin,
|
|
342
|
+
r: `>=${upstream.version}`,
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Return cached remote-version data when fresh, otherwise probe both
|
|
351
|
+
* upstream sources in parallel and persist a new cache entry. Returns null
|
|
352
|
+
* only when there's nothing to overlay (no fresh cache and no probe
|
|
353
|
+
* succeeded — common in offline / sandboxed-no-network environments).
|
|
354
|
+
*
|
|
355
|
+
* Partial probe failures preserve the prior raw value for the failing
|
|
356
|
+
* field, so a brief network blip doesn't blank out a previously-known
|
|
357
|
+
* upstream version for up to 24h.
|
|
358
|
+
*/
|
|
359
|
+
async function getOrRefreshRemoteCache() {
|
|
360
|
+
const fresh = readRemoteCache();
|
|
361
|
+
if (fresh)
|
|
362
|
+
return fresh;
|
|
363
|
+
const [npmLatest, marketLatest] = await Promise.all([
|
|
364
|
+
fetchLatestMthdsAgentNpm(),
|
|
365
|
+
fetchLatestPluginMarketplace(),
|
|
366
|
+
]);
|
|
367
|
+
// Preserve prior values for whichever probe(s) failed this round —
|
|
368
|
+
// an old upstream value is more useful than no overlay at all.
|
|
369
|
+
const prior = readRemoteCacheRaw();
|
|
370
|
+
const merged = {
|
|
371
|
+
mthds_agent_latest: npmLatest ?? prior?.mthds_agent_latest ?? null,
|
|
372
|
+
plugin_latest: marketLatest ?? prior?.plugin_latest ?? null,
|
|
373
|
+
};
|
|
374
|
+
// If we have nothing — neither a fresh probe nor a prior — skip the write
|
|
375
|
+
// entirely. A null/null cache entry would just expire the same way 24h
|
|
376
|
+
// later, and writing it suppresses the next attempt unnecessarily.
|
|
377
|
+
if (merged.mthds_agent_latest === null && merged.plugin_latest === null) {
|
|
378
|
+
return null;
|
|
379
|
+
}
|
|
380
|
+
// Only write when at least one probe actually succeeded this round —
|
|
381
|
+
// otherwise we'd be refreshing the cache mtime with stale data and
|
|
382
|
+
// delaying the next real probe by 24h.
|
|
383
|
+
if (npmLatest !== null || marketLatest !== null) {
|
|
384
|
+
writeRemoteCache(merged);
|
|
385
|
+
}
|
|
386
|
+
return merged;
|
|
387
|
+
}
|
|
166
388
|
//# sourceMappingURL=update-check.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../../src/agent/commands/update-check.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../../src/agent/commands/update-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import type { BinaryCheckEntry } from "./update-cache.js";
|
|
13
13
|
/** Minimum plugin version this mthds-agent release requires. */
|
|
14
|
-
export declare const MIN_PLUGIN_VERSION = ">=0.
|
|
14
|
+
export declare const MIN_PLUGIN_VERSION = ">=0.12.0";
|
|
15
15
|
/** Keys in installed_plugins.json for the mthds plugin (prod and dev targets). */
|
|
16
16
|
export declare const PLUGIN_KEYS: readonly ["mthds@mthds-plugins", "mthds-dev@mthds-plugins"];
|
|
17
17
|
/** Path to Claude Code's installed plugins registry. */
|
|
@@ -15,7 +15,7 @@ import { homedir } from "node:os";
|
|
|
15
15
|
import semver from "semver";
|
|
16
16
|
// ── Constants ──────────────────────────────────────────────────────
|
|
17
17
|
/** Minimum plugin version this mthds-agent release requires. */
|
|
18
|
-
export const MIN_PLUGIN_VERSION = ">=0.
|
|
18
|
+
export const MIN_PLUGIN_VERSION = ">=0.12.0";
|
|
19
19
|
/** Keys in installed_plugins.json for the mthds plugin (prod and dev targets). */
|
|
20
20
|
export const PLUGIN_KEYS = [
|
|
21
21
|
"mthds@mthds-plugins",
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Remote upstream version probes for mthds-agent and the mthds plugin.
|
|
3
|
+
*
|
|
4
|
+
* Closes the "silent when both stale" blind spot in the env-check: the
|
|
5
|
+
* existing local floor checks (plugin's `min_mthds_version` and the agent's
|
|
6
|
+
* `MIN_PLUGIN_VERSION`) compare two artifacts that are already on disk and
|
|
7
|
+
* agree with each other when both are equally behind. These probes ask the
|
|
8
|
+
* authoritative upstream sources directly — npm for `mthds`, GitHub raw for
|
|
9
|
+
* the published `marketplace.json` — so a "user lags on both" scenario still
|
|
10
|
+
* produces an UPGRADE_AVAILABLE signal.
|
|
11
|
+
*
|
|
12
|
+
* Both functions are infallible from the caller's perspective: any network
|
|
13
|
+
* error, timeout, non-2xx, parse error, or missing field returns null. The
|
|
14
|
+
* caller treats null as "no upstream information available, leave the local
|
|
15
|
+
* payload alone".
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Probe npm for the latest published `mthds` version. Returns the version
|
|
19
|
+
* string (e.g. `"0.8.1"`) or null on any failure.
|
|
20
|
+
*/
|
|
21
|
+
export declare function fetchLatestMthdsAgentNpm(): Promise<string | null>;
|
|
22
|
+
/**
|
|
23
|
+
* Probe the published `marketplace.json` on the mthds-plugins repo for the
|
|
24
|
+
* latest plugin version. Returns the version string (e.g. `"0.11.3"`) or
|
|
25
|
+
* null on any failure.
|
|
26
|
+
*
|
|
27
|
+
* The marketplace.json carries one global `metadata.version` for the whole
|
|
28
|
+
* marketplace; all plugins inside it (mthds, mthds-dev) move together, so a
|
|
29
|
+
* single version is enough to drive the upstream check.
|
|
30
|
+
*/
|
|
31
|
+
export declare function fetchLatestPluginMarketplace(): Promise<string | null>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Remote upstream version probes for mthds-agent and the mthds plugin.
|
|
3
|
+
*
|
|
4
|
+
* Closes the "silent when both stale" blind spot in the env-check: the
|
|
5
|
+
* existing local floor checks (plugin's `min_mthds_version` and the agent's
|
|
6
|
+
* `MIN_PLUGIN_VERSION`) compare two artifacts that are already on disk and
|
|
7
|
+
* agree with each other when both are equally behind. These probes ask the
|
|
8
|
+
* authoritative upstream sources directly — npm for `mthds`, GitHub raw for
|
|
9
|
+
* the published `marketplace.json` — so a "user lags on both" scenario still
|
|
10
|
+
* produces an UPGRADE_AVAILABLE signal.
|
|
11
|
+
*
|
|
12
|
+
* Both functions are infallible from the caller's perspective: any network
|
|
13
|
+
* error, timeout, non-2xx, parse error, or missing field returns null. The
|
|
14
|
+
* caller treats null as "no upstream information available, leave the local
|
|
15
|
+
* payload alone".
|
|
16
|
+
*/
|
|
17
|
+
const FETCH_TIMEOUT_MS = 2_000;
|
|
18
|
+
const NPM_LATEST_URL = "https://registry.npmjs.org/mthds/latest";
|
|
19
|
+
const MARKETPLACE_URL = "https://raw.githubusercontent.com/mthds-ai/mthds-plugins/main/.claude-plugin/marketplace.json";
|
|
20
|
+
/**
|
|
21
|
+
* Fetch JSON from `url` with a hard 2s timeout. Returns the parsed body on
|
|
22
|
+
* 2xx, or null on any failure (timeout, network, non-2xx, malformed JSON).
|
|
23
|
+
* Never throws.
|
|
24
|
+
*/
|
|
25
|
+
async function fetchJson(url) {
|
|
26
|
+
const controller = new AbortController();
|
|
27
|
+
const timeoutId = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
|
|
28
|
+
try {
|
|
29
|
+
const res = await fetch(url, {
|
|
30
|
+
signal: controller.signal,
|
|
31
|
+
headers: { accept: "application/json" },
|
|
32
|
+
});
|
|
33
|
+
if (!res.ok)
|
|
34
|
+
return null;
|
|
35
|
+
return (await res.json());
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
clearTimeout(timeoutId);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Probe npm for the latest published `mthds` version. Returns the version
|
|
46
|
+
* string (e.g. `"0.8.1"`) or null on any failure.
|
|
47
|
+
*/
|
|
48
|
+
export async function fetchLatestMthdsAgentNpm() {
|
|
49
|
+
const body = await fetchJson(NPM_LATEST_URL);
|
|
50
|
+
if (!body || typeof body !== "object")
|
|
51
|
+
return null;
|
|
52
|
+
const version = body.version;
|
|
53
|
+
return typeof version === "string" && version.length > 0 ? version : null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Probe the published `marketplace.json` on the mthds-plugins repo for the
|
|
57
|
+
* latest plugin version. Returns the version string (e.g. `"0.11.3"`) or
|
|
58
|
+
* null on any failure.
|
|
59
|
+
*
|
|
60
|
+
* The marketplace.json carries one global `metadata.version` for the whole
|
|
61
|
+
* marketplace; all plugins inside it (mthds, mthds-dev) move together, so a
|
|
62
|
+
* single version is enough to drive the upstream check.
|
|
63
|
+
*/
|
|
64
|
+
export async function fetchLatestPluginMarketplace() {
|
|
65
|
+
const body = await fetchJson(MARKETPLACE_URL);
|
|
66
|
+
if (!body || typeof body !== "object")
|
|
67
|
+
return null;
|
|
68
|
+
const metadata = body.metadata;
|
|
69
|
+
if (!metadata || typeof metadata !== "object")
|
|
70
|
+
return null;
|
|
71
|
+
const version = metadata.version;
|
|
72
|
+
return typeof version === "string" && version.length > 0 ? version : null;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=remote-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-version.js","sourceRoot":"","sources":["../../src/agent/remote-version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAE/B,MAAM,cAAc,GAAG,yCAAyC,CAAC;AACjE,MAAM,eAAe,GACnB,+FAA+F,CAAC;AAElG;;;;GAIG;AACH,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACzE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;SACxC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAY,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,OAAO,GAAI,IAAgC,CAAC,OAAO,CAAC;IAC1D,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAChD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,QAAQ,GAAI,IAAgC,CAAC,QAAQ,CAAC;IAC5D,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,OAAO,GAAI,QAAoC,CAAC,OAAO,CAAC;IAC9D,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC"}
|
|
@@ -63,6 +63,17 @@ export declare const STATE_DIR: string;
|
|
|
63
63
|
* created by user A would fail user B's ownership check and permanently deny
|
|
64
64
|
* them the fallback. Exported for snooze.ts. */
|
|
65
65
|
export declare const FALLBACK_DIR: string;
|
|
66
|
+
/** Remote upstream probes (npm + GitHub marketplace.json) are cached for 24h.
|
|
67
|
+
* Distinct from the local-binary cache above because the invalidation
|
|
68
|
+
* semantics differ — local binaries change on install; remote upstreams move
|
|
69
|
+
* on someone else's release schedule, so a TTL is the only signal. */
|
|
70
|
+
export declare const TTL_REMOTE_FETCH_MS: number;
|
|
71
|
+
/** Shorter TTL applied when the cached entry has any null field (a previous
|
|
72
|
+
* probe failed and we wrote the merged-with-prior partial). Without this, a
|
|
73
|
+
* single transient probe failure would lock the null for 24h — exactly the
|
|
74
|
+
* signal the remote overlay was built to surface. 1h gives us a reasonable
|
|
75
|
+
* retry cadence without hot-looping on every preamble invocation. */
|
|
76
|
+
export declare const TTL_REMOTE_FETCH_PARTIAL_MS: number;
|
|
66
77
|
export declare const SANDBOX_WRITE_ERRORS: ReadonlySet<string>;
|
|
67
78
|
/** Compute aggregate status from a payload. */
|
|
68
79
|
export declare function computeAggregate(payload: CachePayload): AggregateStatus;
|
|
@@ -147,3 +158,33 @@ export declare function invalidateFileAt(path: string): boolean;
|
|
|
147
158
|
* regain write access to its directory.
|
|
148
159
|
*/
|
|
149
160
|
export declare function readAndClearUpgradeMarker(): Record<string, unknown> | null;
|
|
161
|
+
export interface RemoteCachePayload {
|
|
162
|
+
/** Latest mthds-agent version observed on npm, or null if the last probe
|
|
163
|
+
* failed (network/timeout/parse). Null is kept distinct from absent so a
|
|
164
|
+
* partial success (e.g. plugin probe worked, npm probe didn't) can
|
|
165
|
+
* preserve the working half across cache writes. */
|
|
166
|
+
mthds_agent_latest: string | null;
|
|
167
|
+
/** Latest mthds plugin version observed in marketplace.json (the global
|
|
168
|
+
* `metadata.version`), or null on probe failure. */
|
|
169
|
+
plugin_latest: string | null;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Read the remote-version cache. Returns null when neither path holds an
|
|
173
|
+
* unexpired entry — the caller then knows to re-probe upstream. When both
|
|
174
|
+
* paths hold valid entries, the newer one wins (same policy as readCache).
|
|
175
|
+
*/
|
|
176
|
+
export declare function readRemoteCache(): RemoteCachePayload | null;
|
|
177
|
+
/**
|
|
178
|
+
* Read the remote-version cache, ignoring the TTL. Used by the refresh path
|
|
179
|
+
* to preserve a previously-fetched value when the current probe for one of
|
|
180
|
+
* the fields fails — better an old upstream value than no overlay at all.
|
|
181
|
+
*/
|
|
182
|
+
export declare function readRemoteCacheRaw(): RemoteCachePayload | null;
|
|
183
|
+
/**
|
|
184
|
+
* Write the remote-version cache. Same primary→fallback policy as writeCache.
|
|
185
|
+
* Best-effort: a write failure emits one warning per process and is otherwise
|
|
186
|
+
* absorbed — the next run will simply re-probe.
|
|
187
|
+
*/
|
|
188
|
+
export declare function writeRemoteCache(payload: RemoteCachePayload): void;
|
|
189
|
+
/** Delete the remote cache files. Used by `--force`. */
|
|
190
|
+
export declare function clearRemoteCache(): void;
|
|
@@ -52,10 +52,23 @@ const O_NOFOLLOW = fsConstants.O_NOFOLLOW ?? 0;
|
|
|
52
52
|
const WRITE_FLAGS = fsConstants.O_WRONLY | fsConstants.O_CREAT | fsConstants.O_TRUNC | O_NOFOLLOW;
|
|
53
53
|
const PRIMARY_CACHE_PATH = join(STATE_DIR, "last-update-check");
|
|
54
54
|
const PRIMARY_MARKER_PATH = join(STATE_DIR, "just-upgraded-from");
|
|
55
|
+
const PRIMARY_REMOTE_PATH = join(STATE_DIR, "last-remote-fetch");
|
|
55
56
|
const FALLBACK_CACHE_PATH = join(FALLBACK_DIR, "last-update-check");
|
|
56
57
|
const FALLBACK_MARKER_PATH = join(FALLBACK_DIR, "just-upgraded-from");
|
|
58
|
+
const FALLBACK_REMOTE_PATH = join(FALLBACK_DIR, "last-remote-fetch");
|
|
57
59
|
const TTL_UP_TO_DATE_MS = 60 * MS_PER_MINUTE; // 60 min
|
|
58
60
|
const TTL_UPGRADE_AVAILABLE_MS = 720 * MS_PER_MINUTE; // 720 min (12 hours)
|
|
61
|
+
/** Remote upstream probes (npm + GitHub marketplace.json) are cached for 24h.
|
|
62
|
+
* Distinct from the local-binary cache above because the invalidation
|
|
63
|
+
* semantics differ — local binaries change on install; remote upstreams move
|
|
64
|
+
* on someone else's release schedule, so a TTL is the only signal. */
|
|
65
|
+
export const TTL_REMOTE_FETCH_MS = 24 * 60 * MS_PER_MINUTE; // 24h
|
|
66
|
+
/** Shorter TTL applied when the cached entry has any null field (a previous
|
|
67
|
+
* probe failed and we wrote the merged-with-prior partial). Without this, a
|
|
68
|
+
* single transient probe failure would lock the null for 24h — exactly the
|
|
69
|
+
* signal the remote overlay was built to surface. 1h gives us a reasonable
|
|
70
|
+
* retry cadence without hot-looping on every preamble invocation. */
|
|
71
|
+
export const TTL_REMOTE_FETCH_PARTIAL_MS = 60 * MS_PER_MINUTE; // 1h
|
|
59
72
|
// Real markers are consumed within seconds (skill flow re-runs preamble
|
|
60
73
|
// immediately after upgrade). Anything markedly older is almost certainly
|
|
61
74
|
// stuck because the sandbox blocked cleanup last time — ignore it instead of
|
|
@@ -115,6 +128,7 @@ let warnedAboutCacheWrite = false;
|
|
|
115
128
|
let warnedAboutMarkerWrite = false;
|
|
116
129
|
let warnedAboutMarkerClear = false;
|
|
117
130
|
let warnedAboutFallbackUnsafe = false;
|
|
131
|
+
let warnedAboutRemoteWrite = false;
|
|
118
132
|
// ── Functions ──────────────────────────────────────────────────────
|
|
119
133
|
/** Compute aggregate status from a payload. */
|
|
120
134
|
export function computeAggregate(payload) {
|
|
@@ -560,4 +574,119 @@ export function readAndClearUpgradeMarker() {
|
|
|
560
574
|
return null;
|
|
561
575
|
return chosen.data;
|
|
562
576
|
}
|
|
577
|
+
function isValidRemotePayload(p) {
|
|
578
|
+
if (!p || typeof p !== "object")
|
|
579
|
+
return false;
|
|
580
|
+
const obj = p;
|
|
581
|
+
for (const key of ["mthds_agent_latest", "plugin_latest"]) {
|
|
582
|
+
const v = obj[key];
|
|
583
|
+
if (v !== null && typeof v !== "string")
|
|
584
|
+
return false;
|
|
585
|
+
}
|
|
586
|
+
return true;
|
|
587
|
+
}
|
|
588
|
+
function readRemoteAt(path, enforceTtl) {
|
|
589
|
+
let mtimeMs;
|
|
590
|
+
let content;
|
|
591
|
+
try {
|
|
592
|
+
mtimeMs = statSync(path).mtimeMs;
|
|
593
|
+
content = readFileSync(path, "utf-8");
|
|
594
|
+
}
|
|
595
|
+
catch {
|
|
596
|
+
return null;
|
|
597
|
+
}
|
|
598
|
+
let parsed;
|
|
599
|
+
try {
|
|
600
|
+
parsed = JSON.parse(content);
|
|
601
|
+
}
|
|
602
|
+
catch {
|
|
603
|
+
return null;
|
|
604
|
+
}
|
|
605
|
+
if (!isValidRemotePayload(parsed))
|
|
606
|
+
return null;
|
|
607
|
+
if (enforceTtl) {
|
|
608
|
+
const age = Date.now() - mtimeMs;
|
|
609
|
+
// Negative age beyond 1 minute means clock skew — treat as expired.
|
|
610
|
+
if (age < -MS_PER_MINUTE)
|
|
611
|
+
return null;
|
|
612
|
+
// A partial entry (any null field) uses the shorter TTL so a previously
|
|
613
|
+
// failed probe gets retried within 1h instead of being locked for 24h.
|
|
614
|
+
// The complete path keeps the full 24h TTL — successful upstream data is
|
|
615
|
+
// long-lived. The raw reader (enforceTtl=false) ignores both TTLs because
|
|
616
|
+
// its caller only wants the prior payload to preserve working halves.
|
|
617
|
+
const isPartial = parsed.mthds_agent_latest === null || parsed.plugin_latest === null;
|
|
618
|
+
const ttl = isPartial ? TTL_REMOTE_FETCH_PARTIAL_MS : TTL_REMOTE_FETCH_MS;
|
|
619
|
+
if (age > ttl)
|
|
620
|
+
return null;
|
|
621
|
+
}
|
|
622
|
+
return { payload: parsed, mtimeMs };
|
|
623
|
+
}
|
|
624
|
+
/** Pick the newer of the two paths' payloads when both have valid contents,
|
|
625
|
+
* honoring the dual-path discipline. `enforceTtl` toggles between the
|
|
626
|
+
* user-facing 24h-gated reader and the preservation-only raw reader. */
|
|
627
|
+
function readRemoteEither(enforceTtl) {
|
|
628
|
+
const primary = readRemoteAt(PRIMARY_REMOTE_PATH, enforceTtl);
|
|
629
|
+
const fallback = ensureFallbackDir(false).usable
|
|
630
|
+
? readRemoteAt(FALLBACK_REMOTE_PATH, enforceTtl)
|
|
631
|
+
: null;
|
|
632
|
+
if (!primary)
|
|
633
|
+
return fallback?.payload ?? null;
|
|
634
|
+
if (!fallback)
|
|
635
|
+
return primary.payload;
|
|
636
|
+
return fallback.mtimeMs > primary.mtimeMs
|
|
637
|
+
? fallback.payload
|
|
638
|
+
: primary.payload;
|
|
639
|
+
}
|
|
640
|
+
/**
|
|
641
|
+
* Read the remote-version cache. Returns null when neither path holds an
|
|
642
|
+
* unexpired entry — the caller then knows to re-probe upstream. When both
|
|
643
|
+
* paths hold valid entries, the newer one wins (same policy as readCache).
|
|
644
|
+
*/
|
|
645
|
+
export function readRemoteCache() {
|
|
646
|
+
return readRemoteEither(true);
|
|
647
|
+
}
|
|
648
|
+
/**
|
|
649
|
+
* Read the remote-version cache, ignoring the TTL. Used by the refresh path
|
|
650
|
+
* to preserve a previously-fetched value when the current probe for one of
|
|
651
|
+
* the fields fails — better an old upstream value than no overlay at all.
|
|
652
|
+
*/
|
|
653
|
+
export function readRemoteCacheRaw() {
|
|
654
|
+
return readRemoteEither(false);
|
|
655
|
+
}
|
|
656
|
+
/**
|
|
657
|
+
* Write the remote-version cache. Same primary→fallback policy as writeCache.
|
|
658
|
+
* Best-effort: a write failure emits one warning per process and is otherwise
|
|
659
|
+
* absorbed — the next run will simply re-probe.
|
|
660
|
+
*/
|
|
661
|
+
export function writeRemoteCache(payload) {
|
|
662
|
+
const content = JSON.stringify(payload) + "\n";
|
|
663
|
+
const res = writeWithFallback(STATE_DIR, PRIMARY_REMOTE_PATH, FALLBACK_REMOTE_PATH, content);
|
|
664
|
+
if (res.ok)
|
|
665
|
+
return;
|
|
666
|
+
emitRemoteWriteWarning(res.code, res.fallbackCode);
|
|
667
|
+
}
|
|
668
|
+
function emitRemoteWriteWarning(primaryCode, fallbackCode) {
|
|
669
|
+
if (warnedAboutRemoteWrite)
|
|
670
|
+
return;
|
|
671
|
+
warnedAboutRemoteWrite = true;
|
|
672
|
+
const detail = fallbackCode
|
|
673
|
+
? `primary=${primaryCode ?? "?"}, fallback=${fallbackCode}`
|
|
674
|
+
: (primaryCode ?? "?");
|
|
675
|
+
process.stderr.write(`Warning: could not write remote-version cache (${detail}). Upstream check will run again next time.\n`);
|
|
676
|
+
}
|
|
677
|
+
/** Delete the remote cache files. Used by `--force`. */
|
|
678
|
+
export function clearRemoteCache() {
|
|
679
|
+
const paths = [PRIMARY_REMOTE_PATH];
|
|
680
|
+
if (ensureFallbackDir(false).usable)
|
|
681
|
+
paths.push(FALLBACK_REMOTE_PATH);
|
|
682
|
+
for (const p of paths) {
|
|
683
|
+
try {
|
|
684
|
+
unlinkSync(p);
|
|
685
|
+
}
|
|
686
|
+
catch {
|
|
687
|
+
// Same rationale as clearCache: missing or sandbox-blocked unlink is
|
|
688
|
+
// not a problem — writeRemoteCache also can't have written there.
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
}
|
|
563
692
|
//# sourceMappingURL=update-cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-cache.js","sourceRoot":"","sources":["../../src/agent/update-cache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"update-cache.js","sourceRoot":"","sources":["../../src/agent/update-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,IAAI,WAAW,GACzB,MAAM,SAAS,CAAC;AA8CjB,sEAAsE;AAEtE;iFACiF;AACjF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC;AAEpC;2DAC2D;AAC3D,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAE5D;;6EAE6E;AAC7E,MAAM,YAAY,GAChB,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAEjE;;;;iDAIiD;AACjD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAC9B,MAAM,EAAE,EACR,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,YAAY,EAAE,CACtE,CAAC;AAEF;;8BAE8B;AAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC;AAC/C;;oCAEoC;AACpC,MAAM,WAAW,GACf,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,UAAU,CAAC;AAEhF,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAChE,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAClE,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AACjE,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;AACpE,MAAM,oBAAoB,GAAG,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;AACtE,MAAM,oBAAoB,GAAG,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;AAErE,MAAM,iBAAiB,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC,SAAS;AACvD,MAAM,wBAAwB,GAAG,GAAG,GAAG,aAAa,CAAC,CAAC,qBAAqB;AAC3E;;;uEAGuE;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC,MAAM;AAClE;;;;sEAIsE;AACtE,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC,KAAK;AACpE,wEAAwE;AACxE,0EAA0E;AAC1E,6EAA6E;AAC7E,oDAAoD;AACpD,MAAM,aAAa,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC,SAAS;AAEnD,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC;IACpD,YAAY;IACZ,mBAAmB;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,OAAO;IACP,QAAQ;IACR,OAAO;CACR,CAAC,CAAC;AAEH;;kEAEkE;AAClE,MAAM,kBAAkB,GAAmC,IAAI,GAAG,CAAC;IACjE,SAAS;IACT,eAAe;IACf,WAAW;IACX,cAAc;CACf,CAAC,CAAC;AAEH,uEAAuE;AAEvE,SAAS,cAAc,CAAC,CAAU;IAChC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,GAAG,GAAG,CAA4B,CAAC;IACzC,2CAA2C;IAC3C,KAAK,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACtD,IAAI,OAAQ,KAAiC,CAAC,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IAC7E,CAAC;IACD,0DAA0D;IAC1D,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACtD,IAAI,OAAQ,KAAiC,CAAC,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IAC7E,CAAC;IACD,mDAAmD;IACnD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACtD,IAAI,OAAQ,KAAiC,CAAC,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sEAAsE;AAEtE,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAClC,IAAI,sBAAsB,GAAG,KAAK,CAAC;AACnC,IAAI,sBAAsB,GAAG,KAAK,CAAC;AACnC,IAAI,yBAAyB,GAAG,KAAK,CAAC;AACtC,IAAI,sBAAsB,GAAG,KAAK,CAAC;AAEnC,sEAAsE;AAEtE,+CAA+C;AAC/C,MAAM,UAAU,gBAAgB,CAAC,OAAqB;IACpD,MAAM,OAAO,GAAuB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,aAAa;QAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/D,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,4EAA4E;IAC5E,8EAA8E;IAC9E,0EAA0E;IAC1E,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC;QAChE,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,mBAAmB,CAAC;AAC1B,CAAC;AAED,uEAAuE;AACvE,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,+EAA+E;AAC/E,+EAA+E;AAC/E,0EAA0E;AAC1E,sEAAsE;AACtE,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,4EAA4E;AAE5E;;2EAE2E;AAC3E,IAAI,eAAe,GAA6B,IAAI,CAAC;AAErD,SAAS,eAAe,CAAC,MAAyB;IAChD,eAAe,GAAG,MAAM,CAAC;IACzB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,MAAyB;IAC/C,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAyB;IAC1D,IAAI,yBAAyB;QAAE,OAAO;IACtC,yBAAyB,GAAG,IAAI,CAAC;IACjC,MAAM,GAAG,GAA+C;QACtD,OAAO,EAAE,sCAAsC;QAC/C,eAAe,EAAE,kDAAkD;QACnE,WAAW,EAAE,kCAAkC;QAC/C,cAAc,EAAE,cAAc,MAAM,EAAE,2CAA2C;KAClF,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8CAA8C,YAAY,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,+CAA+C,CACrI,CAAC;AACJ,CAAC;AAED;;kDAEkD;AAClD,SAAS,2BAA2B;IAClC,IAAI,EAAE,CAAC;IACP,IAAI,CAAC;QACH,EAAE,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0EAA0E;QAC1E,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,EAAE,CAAC,cAAc,EAAE;QAAE,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;IAC1D,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;QAAE,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC;IAC1D,IAAI,EAAE,CAAC,GAAG,KAAK,YAAY;QAAE,OAAO,cAAc,CAAC,eAAe,CAAC,CAAC;IAEpE,4EAA4E;IAC5E,uEAAuE;IACvE,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC5C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAe;IAC/C,IAAI,eAAe;QAAE,OAAO,eAAe,CAAC;IAE5C,4EAA4E;IAC5E,4EAA4E;IAC5E,wEAAwE;IACxE,iEAAiE;IACjE,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC1D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YACH,SAAS,CAAC,YAAY,CAAC,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,6EAA6E;IAC7E,wEAAwE;IACxE,kDAAkD;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YACrD,OAAO,cAAc,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,aAAa,IAAI,CAAC,MAAM;YAAE,OAAO,cAAc,CAAC,cAAc,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,4EAA4E;IAC5E,6EAA6E;IAC7E,4DAA4D;IAC5D,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,SAAS,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzC,OAAO,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC5C,CAAC;YACD,2DAA2D;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,2BAA2B,EAAE,CAAC;AACvC,CAAC;AAOD,wEAAwE;AACxE,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,OAAe,CAAC;IACpB,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QACjC,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAElD,IAAI,OAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GACP,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,wBAAwB,CAAC;IAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACjC,mEAAmE;IACnE,IAAI,GAAG,GAAG,CAAC,aAAa,IAAI,GAAG,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IAEnD,OAAO;QACL,MAAM,EAAE,EAAE,SAAS,EAAE,SAA4B,EAAE,OAAO,EAAE;QAC5D,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM;QAC9C,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC;QAClC,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC;IAC9C,IAAI,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC;IACrC,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;QACvC,CAAC,CAAC,QAAQ,CAAC,MAAM;QACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AACrB,CAAC;AAOD;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,IAAY,EAAE,OAAe;IACtD,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,IAAY,EAAE,OAAe;IACpE,IAAI,CAAC;QACH,sEAAsE;QACtE,uEAAuE;QACvE,6BAA6B;QAC7B,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtB,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAChE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,WAAmB,EACnB,YAAoB,EACpB,OAAe;IAEf,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAEpC,IAAI,OAAO,CAAC,IAAI,IAAI,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;gBACrD,CAAC,CAAC,UAAU,GAAG,CAAC,MAAM,EAAE;gBACxB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QACzD,CAAC;QACD,IAAI,CAAC;YACH,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,GAAI,GAA6B,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;YACxE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QACzD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,MAAM,OAAO,GACX,MAAM,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAElE,MAAM,GAAG,GAAG,iBAAiB,CAC3B,SAAS,EACT,kBAAkB,EAClB,mBAAmB,EACnB,OAAO,CACR,CAAC;IACF,IAAI,GAAG,CAAC,EAAE;QAAE,OAAO;IACnB,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAoB,EAAE,YAAqB;IACnE,IAAI,qBAAqB;QAAE,OAAO;IAClC,qBAAqB,GAAG,IAAI,CAAC;IAC7B,MAAM,MAAM,GAAG,YAAY;QACzB,CAAC,CAAC,WAAW,WAAW,IAAI,GAAG,cAAc,YAAY,EAAE;QAC3D,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;IACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gDAAgD,MAAM,sCAAsC,CAC7F,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,UAAU;IACxB,MAAM,KAAK,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACnC,uEAAuE;IACvE,uEAAuE;IACvE,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACrE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,UAAU,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,iEAAiE;YACjE,qEAAqE;YACrE,qBAAqB;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,0EAA0E;AAC1E,4EAA4E;AAC5E,wEAAwE;AACxE,4EAA4E;AAC5E,2EAA2E;AAC3E,sBAAsB;AAEtB;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA6B;IAC9D,MAAM,GAAG,GAAG,iBAAiB,CAC3B,SAAS,EACT,mBAAmB,EACnB,oBAAoB,EACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CACrB,CAAC;IACF,IAAI,GAAG,CAAC,EAAE;QAAE,OAAO;IACnB,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAoB,EAAE,YAAqB;IACzE,IAAI,sBAAsB;QAAE,OAAO;IACnC,sBAAsB,GAAG,IAAI,CAAC;IAC9B,MAAM,MAAM,GAAG,YAAY;QACzB,CAAC,CAAC,WAAW,WAAW,IAAI,GAAG,cAAc,YAAY,EAAE;QAC3D,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;IACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4CAA4C,MAAM,0DAA0D,CAC7G,CAAC;AACJ,CAAC;AAOD,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,OAAe,CAAC;IACpB,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QACjC,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAiC,EAAE,OAAO,EAAE,CAAC;AAC9D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,CAAC;QACH,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,IAAI,CAAC;QACH,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB;IACvC,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACvD,MAAM,OAAO,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5E,IAAI,MAAgC,CAAC;IACrC,IAAI,CAAC,OAAO;QAAE,MAAM,GAAG,QAAQ,CAAC;SAC3B,IAAI,CAAC,QAAQ;QAAE,MAAM,GAAG,OAAO,CAAC;;QAChC,MAAM,GAAG,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAEtE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,sEAAsE;IACtE,6DAA6D;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1C,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,aAAa,IAAI,KAAK,GAAG,aAAa,CAAC;IAEhE,0EAA0E;IAC1E,4EAA4E;IAC5E,sEAAsE;IACtE,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjF,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACrE,sBAAsB,GAAG,IAAI,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oDAAoD,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,cAAc,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,+BAA+B,aAAa,GAAG,aAAa,QAAQ,CAC1M,CAAC;IACJ,CAAC;IAED,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAqBD,SAAS,oBAAoB,CAAC,CAAU;IACtC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,GAAG,GAAG,CAA4B,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,CAAC,oBAAoB,EAAE,eAAe,CAAC,EAAE,CAAC;QAC1D,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,SAAS,YAAY,CACnB,IAAY,EACZ,UAAmB;IAEnB,IAAI,OAAe,CAAC;IACpB,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QACjC,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/C,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;QACjC,oEAAoE;QACpE,IAAI,GAAG,GAAG,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC;QACtC,wEAAwE;QACxE,uEAAuE;QACvE,yEAAyE;QACzE,0EAA0E;QAC1E,sEAAsE;QACtE,MAAM,SAAS,GACb,MAAM,CAAC,kBAAkB,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC;QACtE,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC1E,IAAI,GAAG,GAAG,GAAG;YAAE,OAAO,IAAI,CAAC;IAC7B,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED;;yEAEyE;AACzE,SAAS,gBAAgB,CAAC,UAAmB;IAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM;QAC9C,CAAC,CAAC,YAAY,CAAC,oBAAoB,EAAE,UAAU,CAAC;QAChD,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IACtC,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;QACvC,CAAC,CAAC,QAAQ,CAAC,OAAO;QAClB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA2B;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,MAAM,GAAG,GAAG,iBAAiB,CAC3B,SAAS,EACT,mBAAmB,EACnB,oBAAoB,EACpB,OAAO,CACR,CAAC;IACF,IAAI,GAAG,CAAC,EAAE;QAAE,OAAO;IACnB,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAoB,EAAE,YAAqB;IACzE,IAAI,sBAAsB;QAAE,OAAO;IACnC,sBAAsB,GAAG,IAAI,CAAC;IAC9B,MAAM,MAAM,GAAG,YAAY;QACzB,CAAC,CAAC,WAAW,WAAW,IAAI,GAAG,cAAc,YAAY,EAAE;QAC3D,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;IACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kDAAkD,MAAM,+CAA+C,CACxG,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,gBAAgB;IAC9B,MAAM,KAAK,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACpC,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACtE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,UAAU,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,kEAAkE;QACpE,CAAC;IACH,CAAC;AACH,CAAC"}
|