@mushi-mushi/cli 0.35.3 → 0.35.4
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/LICENSE +1 -1
- package/dist/{chunk-WLX3HRNB.js → chunk-ED3OCCXS.js} +1 -1
- package/dist/{chunk-PCZRZE4Y.js → chunk-GZYBA5IS.js} +1 -1
- package/dist/{chunk-JHCDXD3S.js → chunk-IZAVMMI6.js} +2 -2
- package/dist/{chunk-QLR6ZPEQ.js → chunk-OXHAJNVK.js} +1 -1
- package/dist/{chunk-AWAWVAQN.js → chunk-VZIANKUF.js} +28 -3
- package/dist/{chunk-ZT67ZX2O.js → chunk-ZQV3NBK7.js} +1 -1
- package/dist/{connect-5UJIK6E4.js → connect-Q75QLGAB.js} +2 -2
- package/dist/{connect-XQCE4JKF.js → connect-XJHTZIHF.js} +3 -3
- package/dist/{daemon-LZWDEQ6D.js → daemon-EQPTR6IO.js} +7 -3
- package/dist/index.js +6 -6
- package/dist/init.js +3 -3
- package/dist/{version-M4YSUKSX.js → version-237BBW3V.js} +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/LICENSE
CHANGED
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
requireUuid,
|
|
10
10
|
saveConfig,
|
|
11
11
|
savedSdkKeyFor
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-ED3OCCXS.js";
|
|
13
13
|
import {
|
|
14
14
|
MUSHI_MCP_PIN_SPEC
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-OXHAJNVK.js";
|
|
16
16
|
import {
|
|
17
17
|
assertEndpoint,
|
|
18
18
|
normalizeEndpoint
|
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
requireConfig,
|
|
9
9
|
requireUuid,
|
|
10
10
|
tryLoadWorkerKey
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ED3OCCXS.js";
|
|
12
12
|
import {
|
|
13
13
|
MUSHI_CLI_VERSION
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-OXHAJNVK.js";
|
|
15
15
|
|
|
16
16
|
// src/worker/daemon.ts
|
|
17
17
|
import { existsSync as existsSync6, readFileSync as readFileSync5 } from "fs";
|
|
@@ -985,7 +985,7 @@ function registerWorkCommands(program) {
|
|
|
985
985
|
if (opts.repoDir || opts.report || opts.followups) {
|
|
986
986
|
throw new MushiCliError("E_INVALID_INPUT", "--daemon takes its lanes and clones from the worker config, not from --repo-dir, --report or --followups.", "mushi worker install");
|
|
987
987
|
}
|
|
988
|
-
const { runDaemon: runDaemon2 } = await import("./daemon-
|
|
988
|
+
const { runDaemon: runDaemon2 } = await import("./daemon-EQPTR6IO.js");
|
|
989
989
|
await runDaemon2({ configPath: opts.workerConfig });
|
|
990
990
|
return;
|
|
991
991
|
}
|
|
@@ -2128,8 +2128,17 @@ function loadWorkerConfig(path = WORKER_CONFIG_PATH) {
|
|
|
2128
2128
|
var HEARTBEAT_MS = 6e4;
|
|
2129
2129
|
var IDLE_MS = 15 * 6e4;
|
|
2130
2130
|
var BACKOFF_MS = 2 * 6e4;
|
|
2131
|
+
var INFRA_BACKOFF_MS = 6e4;
|
|
2132
|
+
var INFRA_BACKOFF_MAX_MS = 30 * 6e4;
|
|
2133
|
+
var AGENT_UNAVAILABLE = /ActionRequiredError|Increase limits|usage limit|out of (?:usage|credits)|Cannot use this model/i;
|
|
2131
2134
|
var GH_CHECK_MS = 5 * 6e4;
|
|
2132
2135
|
var CURSOR_CHECK_MS = 20 * 6e4;
|
|
2136
|
+
function infraBackoffMs(streak) {
|
|
2137
|
+
return streak <= 1 ? 0 : Math.min(INFRA_BACKOFF_MS * 2 ** (streak - 2), INFRA_BACKOFF_MAX_MS);
|
|
2138
|
+
}
|
|
2139
|
+
function machineFailed(result, failureKind, detail) {
|
|
2140
|
+
return result === "failed" && failureKind === "infra" || AGENT_UNAVAILABLE.test(detail);
|
|
2141
|
+
}
|
|
2133
2142
|
var KEY_REFUSALS_TO_STOP = 3;
|
|
2134
2143
|
function createDaemon(cfg, deps) {
|
|
2135
2144
|
const lanes = cfg.lanes.map((local) => ({
|
|
@@ -2140,6 +2149,7 @@ function createDaemon(cfg, deps) {
|
|
|
2140
2149
|
followup: false,
|
|
2141
2150
|
nextClaimAt: 0,
|
|
2142
2151
|
nextFollowupAt: 0,
|
|
2152
|
+
infraStreak: 0,
|
|
2143
2153
|
state: deps.notReady?.has(local.name) ? "not-ready" : "starting",
|
|
2144
2154
|
seenState: "",
|
|
2145
2155
|
stateAt: deps.now(),
|
|
@@ -2236,6 +2246,17 @@ function createDaemon(cfg, deps) {
|
|
|
2236
2246
|
claims: lanes.flatMap((l) => [...l.running.keys()])
|
|
2237
2247
|
};
|
|
2238
2248
|
}
|
|
2249
|
+
function afterRun(lane, failedOnMachine) {
|
|
2250
|
+
if (!failedOnMachine) {
|
|
2251
|
+
lane.infraStreak = 0;
|
|
2252
|
+
return;
|
|
2253
|
+
}
|
|
2254
|
+
lane.infraStreak++;
|
|
2255
|
+
const wait = infraBackoffMs(lane.infraStreak);
|
|
2256
|
+
if (wait === 0) return;
|
|
2257
|
+
lane.nextClaimAt = Math.max(lane.nextClaimAt, deps.now() + wait);
|
|
2258
|
+
say(lane, ` the machine or the agent account failed ${lane.infraStreak} time${lane.infraStreak === 1 ? "" : "s"} in a row: next claim in ${Math.round(wait / 6e4)} min`);
|
|
2259
|
+
}
|
|
2239
2260
|
function startRun(lane, claim) {
|
|
2240
2261
|
const ac = new AbortController();
|
|
2241
2262
|
lane.running.set(claim.id, ac);
|
|
@@ -2271,6 +2292,7 @@ function createDaemon(cfg, deps) {
|
|
|
2271
2292
|
if (out.result === "failed") lane.counters.errors++;
|
|
2272
2293
|
lane.last = `${claim.report.id.slice(0, 8)} \u2192 ${out.outcome}`.slice(0, 160);
|
|
2273
2294
|
say(lane, ` \u2192 ${out.outcome}${out.prUrl ? ` ${out.prUrl}` : ""}`);
|
|
2295
|
+
afterRun(lane, machineFailed(out.result, out.failureKind, out.outcome));
|
|
2274
2296
|
const done = await deps.call(`/v1/worker/claims/${claim.id}/done`, {
|
|
2275
2297
|
method: "POST",
|
|
2276
2298
|
body: JSON.stringify({
|
|
@@ -2317,6 +2339,7 @@ function createDaemon(cfg, deps) {
|
|
|
2317
2339
|
if (out.result === "failed") lane.counters.errors++;
|
|
2318
2340
|
lane.last = `${out.result}: ${out.detail}`.slice(0, 160);
|
|
2319
2341
|
say(lane, ` \u2192 ${out.result}: ${out.detail}`);
|
|
2342
|
+
afterRun(lane, machineFailed(out.result, out.failureKind, out.detail));
|
|
2320
2343
|
const done = await deps.call(`/v1/worker/claims/${claimId}/done`, {
|
|
2321
2344
|
method: "POST",
|
|
2322
2345
|
body: JSON.stringify({
|
|
@@ -2777,6 +2800,8 @@ export {
|
|
|
2777
2800
|
WORKER_KEY_PATH,
|
|
2778
2801
|
validateWorkerConfig,
|
|
2779
2802
|
loadWorkerConfig,
|
|
2803
|
+
infraBackoffMs,
|
|
2804
|
+
machineFailed,
|
|
2780
2805
|
createDaemon,
|
|
2781
2806
|
workerHostId,
|
|
2782
2807
|
readWorkerKey,
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
saveConfig,
|
|
7
7
|
savedSdkKeyFor,
|
|
8
8
|
waitForIngestReady
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-ZQV3NBK7.js";
|
|
10
10
|
import {
|
|
11
11
|
MUSHI_MCP_PIN_SPEC
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-GZYBA5IS.js";
|
|
13
13
|
import {
|
|
14
14
|
detectFramework,
|
|
15
15
|
envVarsToWrite,
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
resolveSdkEnvKey,
|
|
4
4
|
runConnect
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-IZAVMMI6.js";
|
|
6
6
|
import "./chunk-KOBEOGNF.js";
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-ED3OCCXS.js";
|
|
8
|
+
import "./chunk-OXHAJNVK.js";
|
|
9
9
|
import "./chunk-LGGE3LH7.js";
|
|
10
10
|
export {
|
|
11
11
|
resolveSdkEnvKey,
|
|
@@ -4,18 +4,22 @@ import {
|
|
|
4
4
|
createDaemon,
|
|
5
5
|
createHostReadings,
|
|
6
6
|
cursorStateFor,
|
|
7
|
+
infraBackoffMs,
|
|
8
|
+
machineFailed,
|
|
7
9
|
readWorkerKey,
|
|
8
10
|
runDaemon,
|
|
9
11
|
workerHostId
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-VZIANKUF.js";
|
|
13
|
+
import "./chunk-ED3OCCXS.js";
|
|
14
|
+
import "./chunk-OXHAJNVK.js";
|
|
13
15
|
import "./chunk-LGGE3LH7.js";
|
|
14
16
|
export {
|
|
15
17
|
assertWorkerKey,
|
|
16
18
|
createDaemon,
|
|
17
19
|
createHostReadings,
|
|
18
20
|
cursorStateFor,
|
|
21
|
+
infraBackoffMs,
|
|
22
|
+
machineFailed,
|
|
19
23
|
readWorkerKey,
|
|
20
24
|
runDaemon,
|
|
21
25
|
workerHostId
|
package/dist/index.js
CHANGED
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
sanitizeEndpoint,
|
|
23
23
|
sanitizeProjectId,
|
|
24
24
|
writeMcpServerEntry
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-IZAVMMI6.js";
|
|
26
26
|
import {
|
|
27
27
|
FRAMEWORKS,
|
|
28
28
|
detectFramework,
|
|
@@ -49,7 +49,7 @@ import {
|
|
|
49
49
|
registerUxCommands,
|
|
50
50
|
registerWorkCommands,
|
|
51
51
|
validateWorkerConfig
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-VZIANKUF.js";
|
|
53
53
|
import {
|
|
54
54
|
CONFIG_PATH,
|
|
55
55
|
MushiCliError,
|
|
@@ -87,11 +87,11 @@ import {
|
|
|
87
87
|
tryDeleteWorkerKey,
|
|
88
88
|
trySaveKeyToKeychain,
|
|
89
89
|
trySaveWorkerKey
|
|
90
|
-
} from "./chunk-
|
|
90
|
+
} from "./chunk-ED3OCCXS.js";
|
|
91
91
|
import {
|
|
92
92
|
MUSHI_CLI_VERSION,
|
|
93
93
|
MUSHI_MCP_PIN_SPEC
|
|
94
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-OXHAJNVK.js";
|
|
95
95
|
import {
|
|
96
96
|
CLOUD_API_ENDPOINT,
|
|
97
97
|
CLOUD_MCP_OAUTH_URL,
|
|
@@ -1594,7 +1594,7 @@ async function checkOnboardingStatus(config, _consoleBase, cwd, doFetch = global
|
|
|
1594
1594
|
}
|
|
1595
1595
|
async function checkVersionDrift(cwd, doFetch) {
|
|
1596
1596
|
const checks = [];
|
|
1597
|
-
const { MUSHI_CLI_VERSION: MUSHI_CLI_VERSION2 } = await import("./version-
|
|
1597
|
+
const { MUSHI_CLI_VERSION: MUSHI_CLI_VERSION2 } = await import("./version-237BBW3V.js");
|
|
1598
1598
|
if (MUSHI_CLI_VERSION2 === "0.0.0-dev") return checks;
|
|
1599
1599
|
const parse2 = (v) => {
|
|
1600
1600
|
const m = v.replace(/^[~^]/, "").match(/^(\d+)\.(\d+)\.(\d+)/);
|
|
@@ -2567,7 +2567,7 @@ async function maybeOfferConnect(credentials, options, _consoleBase) {
|
|
|
2567
2567
|
if (p.isCancel(answer) || !answer) return;
|
|
2568
2568
|
const endpoint = resolveCloudEndpoint(options.endpoint);
|
|
2569
2569
|
try {
|
|
2570
|
-
const { runConnect: runConnect2 } = await import("./connect-
|
|
2570
|
+
const { runConnect: runConnect2 } = await import("./connect-XJHTZIHF.js");
|
|
2571
2571
|
const saved = loadConfig();
|
|
2572
2572
|
const result = await runConnect2(
|
|
2573
2573
|
{
|
package/dist/init.js
CHANGED
|
@@ -25,10 +25,10 @@ import {
|
|
|
25
25
|
saveConfig,
|
|
26
26
|
savedSdkKeyFor,
|
|
27
27
|
trySaveKeyToKeychain
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-ZQV3NBK7.js";
|
|
29
29
|
import {
|
|
30
30
|
MUSHI_CLI_VERSION
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-GZYBA5IS.js";
|
|
32
32
|
import {
|
|
33
33
|
FRAMEWORKS,
|
|
34
34
|
detectFramework,
|
|
@@ -2127,7 +2127,7 @@ async function maybeOfferConnect(credentials, options, _consoleBase) {
|
|
|
2127
2127
|
if (p.isCancel(answer) || !answer) return;
|
|
2128
2128
|
const endpoint = resolveCloudEndpoint(options.endpoint);
|
|
2129
2129
|
try {
|
|
2130
|
-
const { runConnect } = await import("./connect-
|
|
2130
|
+
const { runConnect } = await import("./connect-Q75QLGAB.js");
|
|
2131
2131
|
const saved = loadConfig();
|
|
2132
2132
|
const result = await runConnect(
|
|
2133
2133
|
{
|
package/dist/version.js
CHANGED
package/package.json
CHANGED