@sleds/cli 0.1.62 → 0.1.63
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/sleds.mjs +38 -18
- package/package.json +1 -1
package/dist/sleds.mjs
CHANGED
|
@@ -6821,10 +6821,19 @@ var init_deploys = __esm(() => {
|
|
|
6821
6821
|
SERVICE_RE = /^[A-Za-z0-9][A-Za-z0-9_.-]{0,39}$/;
|
|
6822
6822
|
});
|
|
6823
6823
|
|
|
6824
|
+
// ../../packages/shared/src/deploys/series.ts
|
|
6825
|
+
var DAY_MS4, WEEK_MS2;
|
|
6826
|
+
var init_series = __esm(() => {
|
|
6827
|
+
init_metrics();
|
|
6828
|
+
DAY_MS4 = 24 * 60 * 60 * 1000;
|
|
6829
|
+
WEEK_MS2 = 7 * DAY_MS4;
|
|
6830
|
+
});
|
|
6831
|
+
|
|
6824
6832
|
// ../../packages/shared/src/deploys/stability.ts
|
|
6825
6833
|
var init_stability = __esm(() => {
|
|
6826
6834
|
init_outcome();
|
|
6827
6835
|
init_metrics();
|
|
6836
|
+
init_series();
|
|
6828
6837
|
});
|
|
6829
6838
|
|
|
6830
6839
|
// ../../packages/shared/src/newrelic/newrelic.ts
|
|
@@ -8343,6 +8352,7 @@ var init_src = __esm(() => {
|
|
|
8343
8352
|
init_stability();
|
|
8344
8353
|
init_batchSize();
|
|
8345
8354
|
init_report();
|
|
8355
|
+
init_series();
|
|
8346
8356
|
init_sentry();
|
|
8347
8357
|
init_newrelic();
|
|
8348
8358
|
init_musher();
|
|
@@ -8806,6 +8816,7 @@ function parseRun(v) {
|
|
|
8806
8816
|
} : {},
|
|
8807
8817
|
...v.pr.clear === true ? { clear: true } : {},
|
|
8808
8818
|
...v.pr.queued === true ? { queued: true } : {},
|
|
8819
|
+
...v.pr.autoMerge === true ? { autoMerge: true } : {},
|
|
8809
8820
|
...typeof v.pr.ci === "string" ? { ci: v.pr.ci } : {},
|
|
8810
8821
|
...typeof v.pr.review === "string" ? { review: v.pr.review } : {},
|
|
8811
8822
|
...typeof v.pr.posted === "string" ? { posted: v.pr.posted } : {},
|
|
@@ -9112,6 +9123,7 @@ init_period();
|
|
|
9112
9123
|
init_stability();
|
|
9113
9124
|
init_batchSize();
|
|
9114
9125
|
init_report();
|
|
9126
|
+
init_series();
|
|
9115
9127
|
init_sentry();
|
|
9116
9128
|
init_newrelic();
|
|
9117
9129
|
init_musher();
|
|
@@ -11781,7 +11793,7 @@ function beatBody(state, flags, host = {}, cap = {}) {
|
|
|
11781
11793
|
name: flags.name,
|
|
11782
11794
|
os: host.os ?? process.platform,
|
|
11783
11795
|
runner: flags.runner,
|
|
11784
|
-
version: host.version ?? "0.1.
|
|
11796
|
+
version: host.version ?? "0.1.63" ?? "dev",
|
|
11785
11797
|
running: live.length,
|
|
11786
11798
|
items: live.slice(0, BEAT_ITEMS).map((r) => `${r.item}/${r.node}`),
|
|
11787
11799
|
...cap.atOnce !== undefined ? { atOnce: cap.atOnce } : {},
|
|
@@ -12252,7 +12264,8 @@ function parsePrView(stdout) {
|
|
|
12252
12264
|
authorFeedback: 0,
|
|
12253
12265
|
draft: o.isDraft === true,
|
|
12254
12266
|
updatedAt: typeof o.updatedAt === "string" ? o.updatedAt : "",
|
|
12255
|
-
|
|
12267
|
+
autoMerge: typeof o.autoMergeRequest === "object" && o.autoMergeRequest !== null,
|
|
12268
|
+
queued: false,
|
|
12256
12269
|
...mock ? { mock } : {},
|
|
12257
12270
|
...typeof o.headRefOid === "string" && o.headRefOid ? { head: o.headRefOid } : {},
|
|
12258
12271
|
...typeof mergeCommit === "string" && mergeCommit ? { mergeCommit } : {}
|
|
@@ -12365,8 +12378,8 @@ function prView(exec, repoPath, url, last) {
|
|
|
12365
12378
|
const parsed = r.status === 0 ? parsePrView(r.stdout) : null;
|
|
12366
12379
|
if (!parsed || parsed.state !== "OPEN")
|
|
12367
12380
|
return parsed;
|
|
12368
|
-
const ready =
|
|
12369
|
-
const view = ready && prInMergeQueue(exec, repoPath, url) === true ? { ...parsed, queued: true } : parsed;
|
|
12381
|
+
const ready = parsed.failing.length === 0 && parsed.pending === 0 && parsed.reviewDecision === "APPROVED";
|
|
12382
|
+
const view = (parsed.autoMerge || ready) && prInMergeQueue(exec, repoPath, url) === true ? { ...parsed, queued: true } : parsed;
|
|
12370
12383
|
let read = view.updatedAt && last?.updatedAt === view.updatedAt ? last : undefined;
|
|
12371
12384
|
let findings = null;
|
|
12372
12385
|
if (!read) {
|
|
@@ -16495,21 +16508,27 @@ async function follow(d, state, run, claim, runner, finished, attention, changes
|
|
|
16495
16508
|
pr.feedback = Math.max(pr.feedback, view.feedback);
|
|
16496
16509
|
pr.authorFeedback = Math.max(pr.authorFeedback ?? 0, view.authorFeedback) || undefined;
|
|
16497
16510
|
const queued = view.queued;
|
|
16511
|
+
const autoMerge = view.autoMerge;
|
|
16498
16512
|
if (queued && !pr.queued)
|
|
16499
16513
|
d.log(`${ref(run)}: ${pr.url} is queued to merge`);
|
|
16500
16514
|
else if (!queued && pr.queued)
|
|
16501
16515
|
d.log(`${ref(run)}: ${pr.url} left the merge queue`);
|
|
16516
|
+
if (autoMerge && !pr.autoMerge)
|
|
16517
|
+
d.log(`${ref(run)}: ${pr.url} is set to merge when ready`);
|
|
16518
|
+
else if (!autoMerge && pr.autoMerge)
|
|
16519
|
+
d.log(`${ref(run)}: ${pr.url} is no longer set to merge`);
|
|
16502
16520
|
pr.queued = queued || undefined;
|
|
16503
|
-
|
|
16521
|
+
pr.autoMerge = autoMerge || undefined;
|
|
16522
|
+
const clear = view.failing.length === 0 && view.pending === 0 && view.reviewDecision === "APPROVED" && !queued && !autoMerge;
|
|
16504
16523
|
if (clear && !pr.clear) {
|
|
16505
16524
|
d.log(`${ref(run)}: ${pr.url} is green and approved — ready for your merge call`);
|
|
16506
16525
|
attention.push({ ...at, what: "green and approved: ready for a merge" });
|
|
16507
16526
|
}
|
|
16508
16527
|
pr.clear = clear;
|
|
16509
16528
|
const prRead = d.source.prRead;
|
|
16510
|
-
const posted = `${ci}|${review}|${clear}|${queued}`;
|
|
16529
|
+
const posted = `${ci}|${review}|${clear}|${queued}|${autoMerge}`;
|
|
16511
16530
|
if (prRead && posted !== pr.posted) {
|
|
16512
|
-
const read = { ci, ...review ? { review } : {}, clear, queued };
|
|
16531
|
+
const read = { ci, ...review ? { review } : {}, clear, queued, autoMerge };
|
|
16513
16532
|
if (await prRead.call(d.source, run.item, run.node, read))
|
|
16514
16533
|
pr.posted = posted;
|
|
16515
16534
|
}
|
|
@@ -18592,7 +18611,7 @@ async function fetchVersion(o) {
|
|
|
18592
18611
|
const platform = o.platform ?? process.platform;
|
|
18593
18612
|
const arch = o.arch ?? process.arch;
|
|
18594
18613
|
const publicKey = o.publicKey ?? RELEASE_PUBLIC_KEY;
|
|
18595
|
-
const running = o.running ?? "0.1.
|
|
18614
|
+
const running = o.running ?? "0.1.63";
|
|
18596
18615
|
if (!publicKey)
|
|
18597
18616
|
return { ok: false, why: "no release key yet" };
|
|
18598
18617
|
if (!VERSION_RE2.test(o.version))
|
|
@@ -19818,7 +19837,7 @@ function engineUpdater(o) {
|
|
|
19818
19837
|
|
|
19819
19838
|
// src/version.ts
|
|
19820
19839
|
function cliVersion(env) {
|
|
19821
|
-
return "0.1.
|
|
19840
|
+
return "0.1.63";
|
|
19822
19841
|
}
|
|
19823
19842
|
|
|
19824
19843
|
// src/commands/update.ts
|
|
@@ -20204,7 +20223,7 @@ function engineClient(o, org, breaker) {
|
|
|
20204
20223
|
...src,
|
|
20205
20224
|
...breaker ? { fetchFn: breaker.fetch } : {},
|
|
20206
20225
|
timeoutMs: ENGINE_TIMEOUT_MS,
|
|
20207
|
-
version: "0.1.
|
|
20226
|
+
version: "0.1.63"
|
|
20208
20227
|
});
|
|
20209
20228
|
const asked = org?.trim() || env.SLEDS_ORG?.trim();
|
|
20210
20229
|
if (asked && !selectOrg(readConfig(o.home), org, env).seat)
|
|
@@ -20510,7 +20529,7 @@ async function driveEngine(o, flags, deps, until = {}) {
|
|
|
20510
20529
|
runner: deps.runner.name,
|
|
20511
20530
|
atOnce: flags.atOnce,
|
|
20512
20531
|
interval: flags.interval,
|
|
20513
|
-
cliVersion: "0.1.
|
|
20532
|
+
cliVersion: "0.1.63"
|
|
20514
20533
|
};
|
|
20515
20534
|
const beat = (checkedAt) => {
|
|
20516
20535
|
const m = deps.machine;
|
|
@@ -22379,7 +22398,7 @@ function engineClient2(o, org, breaker) {
|
|
|
22379
22398
|
...src,
|
|
22380
22399
|
...breaker ? { fetchFn: breaker.fetch } : {},
|
|
22381
22400
|
timeoutMs: ENGINE_TIMEOUT_MS2,
|
|
22382
|
-
version: "0.1.
|
|
22401
|
+
version: "0.1.63"
|
|
22383
22402
|
});
|
|
22384
22403
|
const asked = org?.trim() || env.SLEDS_ORG?.trim();
|
|
22385
22404
|
if (asked && !selectOrg(readConfig(o.home), org, env).seat)
|
|
@@ -22720,7 +22739,7 @@ async function driveEngine2(o, flags, deps, until = {}) {
|
|
|
22720
22739
|
runner: deps.runner.name,
|
|
22721
22740
|
atOnce: flags.atOnce,
|
|
22722
22741
|
interval: flags.interval,
|
|
22723
|
-
cliVersion: "0.1.
|
|
22742
|
+
cliVersion: "0.1.63"
|
|
22724
22743
|
};
|
|
22725
22744
|
const beat = (checkedAt) => {
|
|
22726
22745
|
const m = deps.machine;
|
|
@@ -23920,6 +23939,7 @@ function engineStatus(i) {
|
|
|
23920
23939
|
...opt("review", r.pr.review || undefined),
|
|
23921
23940
|
mergeable: r.pr.clear === true,
|
|
23922
23941
|
queued: r.pr.queued === true,
|
|
23942
|
+
autoMerge: r.pr.autoMerge === true,
|
|
23923
23943
|
...opt("conflict", conflictOf(r, i.state.decisions, i.watchOf)),
|
|
23924
23944
|
runner: r.handle.runner,
|
|
23925
23945
|
...r.pr.live ? { watch: i.watchOf(r), watchTarget: watchTarget(r.handle) } : {},
|
|
@@ -24000,7 +24020,7 @@ function statusLines(s, now) {
|
|
|
24000
24020
|
lines.push(` ${r.item}/${r.node} ${r.title} · ${r.answerer ? `parked, the decider answers${r.answerer.model ? ` on ${r.answerer.model}` : ""}${r.answerer.effort ? ` · ${r.answerer.effort}` : ""}` : r.parked ? "parked, waiting for your answer" : `${r.kind === "mock" ? "drawing a mock · " : ""}${ago(r.startedAt)}`} · watch: ${r.watch}`);
|
|
24001
24021
|
lines.push(`following ${s.following.length}`);
|
|
24002
24022
|
for (const f of s.following) {
|
|
24003
|
-
lines.push(` ${f.item}/${f.node} ${f.pr}${f.checks ? ` checks ${f.checks}` : ""}${f.review ? ` · ${f.review}` : ""}${f.mergeable ? " · ready for your merge" : ""}${f.queued ? " · queued to merge" : ""}`);
|
|
24023
|
+
lines.push(` ${f.item}/${f.node} ${f.pr}${f.checks ? ` checks ${f.checks}` : ""}${f.review ? ` · ${f.review}` : ""}${f.mergeable ? " · ready for your merge" : ""}${f.queued ? " · queued to merge" : f.autoMerge ? " · merge when ready" : ""}`);
|
|
24004
24024
|
if (f.watch)
|
|
24005
24025
|
lines.push(` watch: ${f.watch}`);
|
|
24006
24026
|
else if (f.worktree)
|
|
@@ -24830,7 +24850,7 @@ function contextFor(deps) {
|
|
|
24830
24850
|
...src,
|
|
24831
24851
|
fetchFn: deps.fetchFn,
|
|
24832
24852
|
timeoutMs: deps.timeoutMs,
|
|
24833
|
-
version: "0.1.
|
|
24853
|
+
version: "0.1.63"
|
|
24834
24854
|
}), deps.home, now) : null;
|
|
24835
24855
|
return {
|
|
24836
24856
|
channel: "code",
|
|
@@ -29091,7 +29111,7 @@ var realPidAlive4 = (pid) => {
|
|
|
29091
29111
|
};
|
|
29092
29112
|
function machineClient(home, env) {
|
|
29093
29113
|
const src = meterSource(home, undefined, { env });
|
|
29094
|
-
return src ? fetchClient({ ...src, version: "0.1.
|
|
29114
|
+
return src ? fetchClient({ ...src, version: "0.1.63" }) : null;
|
|
29095
29115
|
}
|
|
29096
29116
|
async function noteAnswer2(home, a, now) {
|
|
29097
29117
|
try {
|
|
@@ -29961,7 +29981,7 @@ var main = async (argv) => {
|
|
|
29961
29981
|
now: Date.now(),
|
|
29962
29982
|
stderr: (line) => console.error(line),
|
|
29963
29983
|
isTTY: !!process.stderr.isTTY,
|
|
29964
|
-
version: "0.1.
|
|
29984
|
+
version: "0.1.63"
|
|
29965
29985
|
});
|
|
29966
29986
|
switch (cmd) {
|
|
29967
29987
|
case "update":
|
|
@@ -30194,7 +30214,7 @@ ${renderHelpText(argv[1])}`);
|
|
|
30194
30214
|
case "version":
|
|
30195
30215
|
case "--version":
|
|
30196
30216
|
case "-v":
|
|
30197
|
-
console.log("sleds 0.1.
|
|
30217
|
+
console.log("sleds 0.1.63");
|
|
30198
30218
|
return 0;
|
|
30199
30219
|
default:
|
|
30200
30220
|
console.error(`unknown command: ${cmd}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sleds/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.63",
|
|
4
4
|
"description": "SLEDS CLI — the cost and limits of AI agent work, decided at the wall. Point Claude Code at a SLEDS proxy; estimate before you run; hold, switch model, or run overnight when you hit a limit.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|