@sma1lboy/rove 0.9.150 → 0.9.152
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/cli/chunk-04zz7j1j.js +2 -0
- package/dist/cli/chunk-08yqc66n.js +5 -0
- package/dist/cli/chunk-0dbz76mq.js +2 -0
- package/dist/cli/chunk-12458wct.js +2 -0
- package/dist/cli/chunk-1cjd7h8p.js +6 -0
- package/dist/cli/chunk-1t0xygy1.js +2 -0
- package/dist/cli/chunk-21eenkyj.js +8 -0
- package/dist/cli/{chunk-1gpx52qj.js → chunk-3737ysrb.js} +2 -2
- package/dist/cli/chunk-4ezfas24.js +3 -0
- package/dist/cli/chunk-4gaqhq8t.js +2 -0
- package/dist/cli/chunk-4nm1axc3.js +2 -0
- package/dist/cli/{chunk-1z9ae43v.js → chunk-4ppq1q86.js} +1 -1
- package/dist/cli/{chunk-6zwg6me2.js → chunk-51y7sjhe.js} +1 -1
- package/dist/cli/{chunk-5gn4chrm.js → chunk-5hs3w3xy.js} +1 -1
- package/dist/cli/{chunk-2w4zymkv.js → chunk-5w9bxd45.js} +1 -1
- package/dist/cli/{chunk-q6579rbz.js → chunk-5wzap7r2.js} +1 -1
- package/dist/cli/chunk-6kz81dkc.js +17 -0
- package/dist/cli/chunk-71tq5yn8.js +3 -0
- package/dist/cli/chunk-7jkf3tvr.js +3 -0
- package/dist/cli/{chunk-bjat0fyy.js → chunk-86aac2wh.js} +1 -1
- package/dist/cli/{chunk-nm6adny4.js → chunk-86bjqmg1.js} +1 -1
- package/dist/cli/{chunk-k3ksts6g.js → chunk-87y9qjcm.js} +1 -1
- package/dist/cli/{chunk-e1g9mvww.js → chunk-8gsqypg8.js} +1 -1
- package/dist/cli/{chunk-fbg4fkmg.js → chunk-9ejxh7a6.js} +1 -1
- package/dist/cli/{chunk-8x0h6rwa.js → chunk-9kyf6d1j.js} +1 -1
- package/dist/cli/{chunk-7j8zpeer.js → chunk-9nbg0nzh.js} +1 -1
- package/dist/cli/chunk-9twmp5m9.js +4 -0
- package/dist/cli/{chunk-2ffbcsm6.js → chunk-9yhr7fxf.js} +4 -4
- package/dist/cli/chunk-a3a9gdc4.js +3 -0
- package/dist/cli/chunk-a3zmjcbd.js +3 -0
- package/dist/cli/{chunk-g1ybdgad.js → chunk-a6sxg2gx.js} +2 -2
- package/dist/cli/{chunk-6xhtf9jx.js → chunk-adr88eqt.js} +1 -1
- package/dist/cli/{chunk-mrwee8sj.js → chunk-aeq5xmtq.js} +1 -1
- package/dist/cli/{chunk-nceh1q3d.js → chunk-bjcjrh1v.js} +1 -1
- package/dist/cli/chunk-bkba9c4n.js +4 -0
- package/dist/cli/{chunk-db57060b.js → chunk-bkpsjg6y.js} +1 -1
- package/dist/cli/chunk-bnxz5nha.js +2 -0
- package/dist/cli/{chunk-mfvy10ep.js → chunk-bqhq43zx.js} +1 -1
- package/dist/cli/chunk-cexxmfva.js +2 -0
- package/dist/cli/{chunk-6h9tc9vn.js → chunk-ch1jvgg1.js} +1 -1
- package/dist/cli/chunk-d393z1mj.js +4 -0
- package/dist/cli/chunk-e8493db0.js +4 -0
- package/dist/cli/chunk-ezty9a39.js +4 -0
- package/dist/cli/{chunk-k2gfqqmg.js → chunk-frp2wp3m.js} +1 -1
- package/dist/cli/{chunk-2hgt2esq.js → chunk-g226rgg2.js} +2 -2
- package/dist/cli/chunk-g2advs8t.js +3 -0
- package/dist/cli/{chunk-cjxwzzq7.js → chunk-gbd5dyhh.js} +1 -1
- package/dist/cli/{chunk-sm1vhrb6.js → chunk-gfh0ws3y.js} +1 -1
- package/dist/cli/chunk-gkskp5j9.js +2 -0
- package/dist/cli/{chunk-f6zsej8e.js → chunk-gvhq08an.js} +1 -1
- package/dist/cli/{chunk-5kkm6tjz.js → chunk-h5a7necv.js} +2 -2
- package/dist/cli/chunk-he0st4f1.js +2 -0
- package/dist/cli/chunk-hhvzpps8.js +9 -0
- package/dist/cli/chunk-j2j1kq3m.js +2 -0
- package/dist/cli/{chunk-yeytzg1x.js → chunk-kp85rcmt.js} +1 -1
- package/dist/cli/chunk-m57cv76y.js +3 -0
- package/dist/cli/{chunk-z3va3mt0.js → chunk-m7zq502q.js} +21 -19
- package/dist/cli/{chunk-r2w8qgyd.js → chunk-mewacahf.js} +3 -3
- package/dist/cli/{chunk-y34fff4t.js → chunk-mff9s59g.js} +1 -1
- package/dist/cli/{chunk-fhfqyfpf.js → chunk-mw20v2nd.js} +2 -2
- package/dist/cli/chunk-mwzyk91k.js +2 -0
- package/dist/cli/chunk-n4dmwkfa.js +4 -0
- package/dist/cli/chunk-n5sssj80.js +3 -0
- package/dist/cli/chunk-nw91q4x3.js +2 -0
- package/dist/cli/chunk-nywh3yb9.js +3 -0
- package/dist/cli/chunk-pxtx1gcf.js +3 -0
- package/dist/cli/chunk-r1p9bwja.js +7 -0
- package/dist/cli/{chunk-hg5x2wr0.js → chunk-r2pztgm6.js} +2 -2
- package/dist/cli/{chunk-vapjtyv9.js → chunk-rgh49bm3.js} +1 -1
- package/dist/cli/{chunk-khp1ga68.js → chunk-rhp5f301.js} +1 -1
- package/dist/cli/chunk-rz8zs7j8.js +3 -0
- package/dist/cli/{chunk-b24ykek8.js → chunk-rzvzcqvx.js} +1 -1
- package/dist/cli/chunk-s239r4nv.js +2 -0
- package/dist/cli/{chunk-zb56ck5f.js → chunk-s433recg.js} +1 -1
- package/dist/cli/{chunk-71m4ak4t.js → chunk-s8xyh1bt.js} +1 -1
- package/dist/cli/chunk-s9a974w9.js +2 -0
- package/dist/cli/{chunk-ppe5myr0.js → chunk-sexavazm.js} +1 -1
- package/dist/cli/{chunk-7sgtpyr0.js → chunk-svtpb8v2.js} +1 -1
- package/dist/cli/chunk-t2es32fg.js +2 -0
- package/dist/cli/{chunk-a0rxr20w.js → chunk-ty56f8fe.js} +1 -1
- package/dist/cli/{chunk-1ps9qzp1.js → chunk-w2denxak.js} +2 -2
- package/dist/cli/{chunk-jyv82gf0.js → chunk-w7zv47mp.js} +3 -4
- package/dist/cli/{chunk-jsss3ze7.js → chunk-xe62kmhp.js} +2 -2
- package/dist/cli/chunk-xkggb529.js +2 -0
- package/dist/cli/chunk-xtr7ks02.js +3 -0
- package/dist/cli/{chunk-13s8rnk5.js → chunk-y9ksfpbp.js} +1 -1
- package/dist/cli/{chunk-p7kztgsd.js → chunk-ybsdy2w8.js} +1 -1
- package/dist/cli/chunk-z7eavs6b.js +2 -0
- package/dist/cli/{chunk-0h4cfy44.js → chunk-z8khnqxg.js} +3 -3
- package/dist/cli/{chunk-tfdx5ve6.js → chunk-zaxdx0wd.js} +1 -1
- package/dist/cli/index.js +10 -10
- package/dist/cli/kobe.js +1 -1
- package/dist/cli/pty-host-node.mjs +25 -2
- package/dist/cli/rove.js +1 -1
- package/dist/web-ui/assets/{harness-CYGJ4uoR.js → harness-DvVhbIUb.js} +1 -1
- package/dist/web-ui/assets/{index-BTJ-X_4s.js → index-DrVCJr6C.js} +2 -2
- package/dist/web-ui/index.html +1 -1
- package/package.json +2 -1
- package/dist/cli/chunk-003tvywc.js +0 -3
- package/dist/cli/chunk-0kn7xxqm.js +0 -6
- package/dist/cli/chunk-0tw42ad1.js +0 -2
- package/dist/cli/chunk-1cqtm24j.js +0 -8
- package/dist/cli/chunk-1kktfmtg.js +0 -4
- package/dist/cli/chunk-1rkb0j1j.js +0 -3
- package/dist/cli/chunk-20pt9yqh.js +0 -4
- package/dist/cli/chunk-2jxdzw4r.js +0 -3
- package/dist/cli/chunk-2pqqvse3.js +0 -2
- package/dist/cli/chunk-2t62vct7.js +0 -2
- package/dist/cli/chunk-4d7bbh87.js +0 -2
- package/dist/cli/chunk-5b6940vk.js +0 -2
- package/dist/cli/chunk-5hhvrvgm.js +0 -8
- package/dist/cli/chunk-7nhdvr5v.js +0 -4
- package/dist/cli/chunk-84aks78e.js +0 -3
- package/dist/cli/chunk-99devyxr.js +0 -2
- package/dist/cli/chunk-awsawfrm.js +0 -2
- package/dist/cli/chunk-aynx3d2a.js +0 -2
- package/dist/cli/chunk-bzz4ta7g.js +0 -17
- package/dist/cli/chunk-dk3pvrw6.js +0 -2
- package/dist/cli/chunk-fyjj9ast.js +0 -2
- package/dist/cli/chunk-gjf604bb.js +0 -3
- package/dist/cli/chunk-gm3vj0fv.js +0 -5
- package/dist/cli/chunk-h79zfebh.js +0 -7
- package/dist/cli/chunk-h9xpeqn6.js +0 -2
- package/dist/cli/chunk-hpj8xjxb.js +0 -2
- package/dist/cli/chunk-k5k0ecka.js +0 -4
- package/dist/cli/chunk-mfqjdpd8.js +0 -2
- package/dist/cli/chunk-ncsgawg7.js +0 -2
- package/dist/cli/chunk-qtke4x42.js +0 -3
- package/dist/cli/chunk-r26g5ree.js +0 -2
- package/dist/cli/chunk-vwjec3m6.js +0 -3
- package/dist/cli/chunk-vws0j65e.js +0 -4
- package/dist/cli/chunk-vzvy1s1d.js +0 -2
- package/dist/cli/chunk-w5xy83ze.js +0 -2
- /package/dist/cli/{chunk-h82kzdsn.js → chunk-bq3fyc0p.js} +0 -0
|
@@ -594,6 +594,7 @@ function writeRecord(storeKey, record, path) {
|
|
|
594
594
|
}
|
|
595
595
|
|
|
596
596
|
// ../kobe-daemon/src/daemon/pty-freeze-store.ts
|
|
597
|
+
import { randomUUID as randomUUID2 } from "node:crypto";
|
|
597
598
|
import { chmodSync, mkdirSync as mkdirSync3, readFileSync as readFileSync3, readdirSync, renameSync as renameSync4, rmSync, statSync as statSync2, writeFileSync as writeFileSync2 } from "node:fs";
|
|
598
599
|
import { join as join4 } from "node:path";
|
|
599
600
|
import { StringDecoder } from "node:string_decoder";
|
|
@@ -681,6 +682,7 @@ function thawSession(record, cap) {
|
|
|
681
682
|
return null;
|
|
682
683
|
return {
|
|
683
684
|
key: record.key,
|
|
685
|
+
generation: randomUUID2(),
|
|
684
686
|
cwd: record.cwd,
|
|
685
687
|
proc: null,
|
|
686
688
|
alive: false,
|
|
@@ -830,6 +832,9 @@ function clearFrozenSessions(dir = defaultPtyFreezeDir()) {
|
|
|
830
832
|
} catch {}
|
|
831
833
|
}
|
|
832
834
|
|
|
835
|
+
// ../kobe-daemon/src/daemon/pty-child-controller.ts
|
|
836
|
+
import { randomUUID as randomUUID4 } from "node:crypto";
|
|
837
|
+
|
|
833
838
|
// ../kobe-daemon/src/daemon/platform-shell.js
|
|
834
839
|
import { existsSync as existsSync4 } from "node:fs";
|
|
835
840
|
function windowsBashCandidates(env) {
|
|
@@ -902,10 +907,12 @@ function embeddedTerminalEnv(base, overrides = {}) {
|
|
|
902
907
|
}
|
|
903
908
|
|
|
904
909
|
// ../kobe-daemon/src/daemon/pty-host-types.ts
|
|
910
|
+
import { randomUUID as randomUUID3 } from "node:crypto";
|
|
905
911
|
import { StringDecoder as StringDecoder2 } from "node:string_decoder";
|
|
906
912
|
function freshSessionState(key, spec, argv) {
|
|
907
913
|
return {
|
|
908
914
|
key,
|
|
915
|
+
generation: randomUUID3(),
|
|
909
916
|
cwd: spec.cwd,
|
|
910
917
|
proc: null,
|
|
911
918
|
alive: true,
|
|
@@ -935,6 +942,7 @@ function freshSessionState(key, spec, argv) {
|
|
|
935
942
|
function sessionInfo(s) {
|
|
936
943
|
return {
|
|
937
944
|
key: s.key,
|
|
945
|
+
generation: s.generation,
|
|
938
946
|
alive: s.alive,
|
|
939
947
|
pid: s.proc?.pid ?? null,
|
|
940
948
|
command: s.command,
|
|
@@ -1087,6 +1095,7 @@ class PtyChildController {
|
|
|
1087
1095
|
return session;
|
|
1088
1096
|
}
|
|
1089
1097
|
startChild(session) {
|
|
1098
|
+
session.generation = randomUUID4();
|
|
1090
1099
|
try {
|
|
1091
1100
|
session.proc = (this.deps.driver ?? bunTerminalDriver())({
|
|
1092
1101
|
argv: [...session.command],
|
|
@@ -1374,6 +1383,15 @@ class PtyHost {
|
|
|
1374
1383
|
session.proc?.resize(cols, rows);
|
|
1375
1384
|
} catch {}
|
|
1376
1385
|
}
|
|
1386
|
+
killIfGeneration(key, expectedGeneration) {
|
|
1387
|
+
const session = this.sessions.get(key);
|
|
1388
|
+
if (!session)
|
|
1389
|
+
return { killed: false, reason: "missing-session" };
|
|
1390
|
+
if (session.generation !== expectedGeneration)
|
|
1391
|
+
return { killed: false, reason: "generation-mismatch" };
|
|
1392
|
+
this.kill(key);
|
|
1393
|
+
return { killed: true };
|
|
1394
|
+
}
|
|
1377
1395
|
kill(key) {
|
|
1378
1396
|
const session = this.sessions.get(key);
|
|
1379
1397
|
if (!session)
|
|
@@ -1689,9 +1707,14 @@ async function startPtyHostServer(options = {}) {
|
|
|
1689
1707
|
ptys.resize(requireString(payload, "key"), typeof payload.cols === "number" ? payload.cols : 80, typeof payload.rows === "number" ? payload.rows : 24);
|
|
1690
1708
|
return {};
|
|
1691
1709
|
}
|
|
1692
|
-
case "pty.kill":
|
|
1693
|
-
|
|
1710
|
+
case "pty.kill": {
|
|
1711
|
+
const payload = objectPayload(req.payload);
|
|
1712
|
+
const key = requireString(payload, "key");
|
|
1713
|
+
if ("expectedGeneration" in payload)
|
|
1714
|
+
return ptys.killIfGeneration(key, requireString(payload, "expectedGeneration"));
|
|
1715
|
+
ptys.kill(key);
|
|
1694
1716
|
return {};
|
|
1717
|
+
}
|
|
1695
1718
|
case "pty.rename": {
|
|
1696
1719
|
const payload = objectPayload(req.payload);
|
|
1697
1720
|
return { renamed: ptys.rename(requireString(payload, "from"), requireString(payload, "to")) };
|
package/dist/cli/rove.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{join as z1}from"node:path";import{createInterface as $1}from"node:readline/promises";import{pathToFileURL as J1}from"node:url";import{spawnSync as L}from"node:child_process";import{constants as m,accessSync as u}from"node:fs";import{homedir as l}from"node:os";import{basename as t,delimiter as o,dirname as r,join as Y}from"node:path";import{fileURLToPath as T}from"node:url";var h={$schema:"https://json.schemastore.org/package.json",name:"@sma1lboy/rove",version:"0.9.
|
|
2
|
+
import{join as z1}from"node:path";import{createInterface as $1}from"node:readline/promises";import{pathToFileURL as J1}from"node:url";import{spawnSync as L}from"node:child_process";import{constants as m,accessSync as u}from"node:fs";import{homedir as l}from"node:os";import{basename as t,delimiter as o,dirname as r,join as Y}from"node:path";import{fileURLToPath as T}from"node:url";var h={$schema:"https://json.schemastore.org/package.json",name:"@sma1lboy/rove",version:"0.9.152",description:"Rove — the agent multiplexer for your terminal. Run coding agents on parallel tasks with isolated worktrees and persistent sessions.",keywords:["terminal","tui","cli","multiplexer","ai-agents","coding-agent","ai-coding-assistant","agentic-ai","parallel-agents","git-worktree","claude-code","codex","llm","developer-tools"],type:"module",packageManager:"bun@1.3.13",bin:{kobe:"dist/cli/kobe.js",rove:"dist/cli/rove.js"},files:["dist/cli","dist/web-ui","dist/skills","dist/*.wav","README.md","LICENSE"],publishConfig:{access:"public"},repository:{type:"git",url:"git+https://github.com/Sma1lboy/rove.git"},homepage:"https://rove.run",bugs:{url:"https://github.com/Sma1lboy/rove/issues"},engines:{bun:">=1.3.11"},scripts:{dev:"ROVE_DEV=1 bun --conditions=browser ./src/cli/rove.ts","dev:kobe":"KOBE_DEV=1 bun --conditions=browser ./src/cli/kobe.ts","dev:mock":"KOBE_DEV=1 bun ./src/tui-react/mock/host.tsx","dev:sandbox":"bun run scripts/dev-sandbox.ts run","dev:sandbox:reset":"bun run scripts/dev-sandbox.ts reset",build:"bun run scripts/build.ts",compile:"bun run scripts/compile.ts",typecheck:"tsc --noEmit","check-i18n":"bun run scripts/check-i18n.ts",test:"bun run test:fast && bun run test:socket","perf:golden":"bun scripts/perf-golden.ts","pty:soak":"bun scripts/pty-soak.ts","test:fast":"vitest run --passWithNoTests --minWorkers=1 --maxWorkers=8","test:socket":"KOBE_INCLUDE_SOCKET=1 vitest run test/daemon --pool forks --minWorkers=1 --maxWorkers=4 --passWithNoTests","test:socket:coverage":"KOBE_INCLUDE_SOCKET=1 KOBE_COVERAGE_DAEMON=1 vitest run test/daemon --coverage --pool forks --minWorkers=1 --maxWorkers=4 --passWithNoTests","test:behavior":"KOBE_INCLUDE_BEHAVIOR=1 vitest run test/behavior --pool forks --minWorkers=1 --maxWorkers=1 --retry=2 --passWithNoTests","test:render":"bun test test/render --coverage --coverage-reporter=text --coverage-reporter=lcov --coverage-dir=coverage-render",coverage:"vitest run --coverage --passWithNoTests",bench:"vitest bench --run",lint:"biome check .",knip:"knip-bun",postinstall:"bun run scripts/check-preview-deps.ts || true",prepublishOnly:"bun run typecheck && bun run build","plugin-sandbox":"bun run scripts/plugin-sandbox.ts"},"//":"biome.json + bunfig.toml live at the monorepo root since they apply repo-wide; bun.lock also lives at root (workspace-shared).",dependencies:{"@ansi-tools/parser":"^1.0.15","@opentui/core":"0.4.3","@opentui/react":"0.4.3","@xterm/addon-serialize":"^0.14.0","@xterm/addon-unicode11":"^0.9.0","@xterm/headless":"^6.0.0","node-pty":"^1.1.0",react:"^19.2.8","smol-toml":"^1.7.1",ws:"^8.18.0"},devDependencies:{"@biomejs/biome":"1.9.4","@sma1lboy/kobe-daemon":"0.7.19","@tsconfig/bun":"1.0.10","@types/bun":"1.3.14","@types/node":"25.6.2","@types/react":"^19.2.0","@vitest/coverage-v8":"2.1.9",knip:"^6.14.2","react-devtools-core":"^7.0.1",typescript:"5.8.2",vitest:"2.1.9"},trustedDependencies:[]};var U="rove",C="kobe";var V=C;var k=U;var E="ROVE_INVOKED_AS";function x(W=process.env){return W[E]===k?k:V}var F="ROVE_BUN",i="ROVE_NO_BUN_BOOTSTRAP",O="ROVE_SKIP_BUN_CHECK",G=h.engines.bun.match(/\d+\.\d+\.\d+/)?.[0]??"0.0.0",B=(W)=>{try{return u(W,m.X_OK),!0}catch{return!1}},a=(W)=>W==="win32"?"bun.exe":"bun",n=(W)=>{let b=L(W,["--version"],{encoding:"utf8",timeout:5000});if(b.error||b.status!==0)return null;return b.stdout?.split(`
|
|
3
3
|
`)[0]?.trim()??""};function K(W){return W.trim().match(/^v?(\d+\.\d+\.\d+)/)?.[1]??null}function j(W,b=G){let z=K(W),Q=K(b);if(!z||!Q)return!0;let J=z.split(".").map(Number),$=Q.split(".").map(Number);for(let X=0;X<3;X++){let q=J[X]??0,H=$[X]??0;if(q!==H)return q>H}return!0}function P(W=process.env){return W[O]==="1"}function p(W={}){let b=W.env??process.env,z=W.platform??process.platform,Q=W.home??b.HOME??b.USERPROFILE??l(),J=a(z),$=[],X=b[F]?.trim();if(X)$.push(X);for(let w of(b.PATH??b.Path??"").split(o))if(w)$.push(Y(w,J));let q=b.BUN_INSTALL?.trim();if(q)$.push(Y(q,"bin",J));if(Q)$.push(Y(Q,".bun","bin",J));let H=W.launcherDir;if(H)$.push(Y(H,"..","..","node_modules","bun","bin",J)),$.push(Y(H,"..","..","..","bun","bin",J));return $}function e(W={}){let b=W.isExecutable??B;return p(W).find((z)=>b(z))??null}function D(W={}){let b=W.isExecutable??B,z=W.bunVersionOf??n;if(P(W.env??process.env))return{bun:e(W),stale:null,unusable:null};let Q=null,J=null;for(let $ of p(W)){if(!b($))continue;let X=z($);if(X===null){J??=$;continue}if(j(X))return{bun:$,stale:Q,unusable:J};Q??={path:$,version:K(X)??X}}return{bun:null,stale:Q,unusable:J}}function A(W){return r(T(W))}function R(W){return t(T(W)).replace(/\.[cm]?[jt]s$/,"")}function W1(W=process.platform){return W==="win32"?["powershell","-NoProfile","-Command","irm bun.sh/install.ps1 | iex"]:["bash","-c","curl -fsSL https://bun.sh/install | bash"]}function y(W=x(),b=process.platform){let z=b==="win32"?'powershell -c "irm bun.sh/install.ps1 | iex"':"curl -fsSL https://bun.sh/install | bash";return[`${W}: Rove runs on the Bun runtime, and no Bun was found on this machine.`,"","Install Bun, then run this command again:",` ${z}`," npm install -g bun # any platform, if you already have npm","","Or install Bun and Rove together in one step:"," curl -fsSL https://rove.run/install.sh | sh","",`Already have Bun somewhere unusual? Point Rove at it: ${F}=/path/to/bun`,""].join(`
|
|
4
4
|
`)}function g(W,b,z=x()){return[`${z}: this machine's Bun is too old for Rove — found ${b} at ${W}, need ${G} or newer.`,"","Rove's terminals are built on Bun's PTY API. An older Bun ignores it silently,","so every terminal and engine tab would open empty and stay empty.","","Upgrade Bun, then run this command again:"," bun upgrade # Bun installed itself (~/.bun)"," brew upgrade bun # Homebrew"," npm install -g bun@latest # npm-managed Bun","",`Have a newer Bun elsewhere? Point Rove at it: ${F}=/path/to/bun`,`Run on this one anyway (unsupported, terminals will be blank): ${O}=1`,""].join(`
|
|
5
5
|
`)}function I(W,b=x()){return[`${b}: the Bun at ${W} could not be run — \`${W} --version\` failed or never returned.`,"","Rove skipped it rather than starting through it, which would hang or fail","with a message from that binary instead of this one.","","Reinstall Bun, then run this command again:"," curl -fsSL https://bun.sh/install | bash","",`Have a working Bun elsewhere? Point Rove at it: ${F}=/path/to/bun`,""].join(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e,n as t,r as n,t as r}from"./index-
|
|
1
|
+
import{i as e,n as t,r as n,t as r}from"./index-DrVCJr6C.js";var i=e(t()),a=`3.7.8`,o=a,s=typeof Buffer==`function`,c=typeof TextDecoder==`function`?new TextDecoder:void 0,l=typeof TextEncoder==`function`?new TextEncoder:void 0,u=Array.prototype.slice.call(`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`),d=(e=>{let t={};return e.forEach((e,n)=>t[e]=n),t})(u),f=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,p=String.fromCharCode.bind(String),m=typeof Uint8Array.from==`function`?Uint8Array.from.bind(Uint8Array):e=>new Uint8Array(Array.prototype.slice.call(e,0)),h=e=>e.replace(/=/g,``).replace(/[+\/]/g,e=>e==`+`?`-`:`_`),g=e=>e.replace(/[^A-Za-z0-9\+\/]/g,``),_=e=>{let t,n,r,i,a=``,o=e.length%3;for(let o=0;o<e.length;){if((n=e.charCodeAt(o++))>255||(r=e.charCodeAt(o++))>255||(i=e.charCodeAt(o++))>255)throw TypeError(`invalid character found`);t=n<<16|r<<8|i,a+=u[t>>18&63]+u[t>>12&63]+u[t>>6&63]+u[t&63]}return o?a.slice(0,o-3)+`===`.substring(o):a},v=typeof btoa==`function`?e=>btoa(e):s?e=>Buffer.from(e,`binary`).toString(`base64`):_,y=s?e=>Buffer.from(e).toString(`base64`):e=>{let t=[];for(let n=0,r=e.length;n<r;n+=4096)t.push(p.apply(null,e.subarray(n,n+4096)));return v(t.join(``))},b=(e,t=!1)=>t?h(y(e)):y(e),ee=e=>{if(e.length<2){var t=e.charCodeAt(0);return t<128?e:t<2048?p(192|t>>>6)+p(128|t&63):p(224|t>>>12&15)+p(128|t>>>6&63)+p(128|t&63)}var t=65536+(e.charCodeAt(0)-55296)*1024+(e.charCodeAt(1)-56320);return p(240|t>>>18&7)+p(128|t>>>12&63)+p(128|t>>>6&63)+p(128|t&63)},te=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,ne=e=>e.replace(te,ee),x=s?e=>Buffer.from(e,`utf8`).toString(`base64`):l?e=>y(l.encode(e)):e=>v(ne(e)),S=(e,t=!1)=>t?h(x(e)):x(e),re=e=>S(e,!0),C=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,ie=e=>{switch(e.length){case 4:var t=((7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3))-65536;return p((t>>>10)+55296)+p((t&1023)+56320);case 3:return p((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return p((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},w=e=>e.replace(C,ie),ae=e=>{if(e=e.replace(/\s+/g,``),!f.test(e))throw TypeError(`malformed base64.`);e+=`==`.slice(2-(e.length&3));let t,n,r,i=[];for(let a=0;a<e.length;)t=d[e.charAt(a++)]<<18|d[e.charAt(a++)]<<12|(n=d[e.charAt(a++)])<<6|(r=d[e.charAt(a++)]),n===64?i.push(p(t>>16&255)):r===64?i.push(p(t>>16&255,t>>8&255)):i.push(p(t>>16&255,t>>8&255,t&255));return i.join(``)},oe=typeof atob==`function`?e=>atob(g(e)):s?e=>Buffer.from(e,`base64`).toString(`binary`):ae,T=s?e=>m(Buffer.from(e,`base64`)):e=>m(oe(e).split(``).map(e=>e.charCodeAt(0))),E=e=>T(O(e)),D=s?e=>Buffer.from(e,`base64`).toString(`utf8`):c?e=>c.decode(T(e)):e=>w(oe(e)),O=e=>g(e.replace(/[-_]/g,e=>e==`-`?`+`:`/`)),se=e=>D(O(e)),ce=e=>{if(typeof e!=`string`)return!1;let t=e.replace(/\s+/g,``).replace(/={0,2}$/,``);return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},k=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),A=function(){let e=(e,t)=>Object.defineProperty(String.prototype,e,k(t));e(`fromBase64`,function(){return se(this)}),e(`toBase64`,function(e){return S(this,e)}),e(`toBase64URI`,function(){return S(this,!0)}),e(`toBase64URL`,function(){return S(this,!0)}),e(`toUint8Array`,function(){return E(this)})},j=function(){let e=(e,t)=>Object.defineProperty(Uint8Array.prototype,e,k(t));e(`toBase64`,function(e){return b(this,e)}),e(`toBase64URI`,function(){return b(this,!0)}),e(`toBase64URL`,function(){return b(this,!0)})},le={version:a,VERSION:o,atob:oe,atobPolyfill:ae,btoa:v,btoaPolyfill:_,fromBase64:se,toBase64:S,encode:S,encodeURI:re,encodeURL:re,utob:ne,btou:w,decode:se,isValid:ce,fromUint8Array:b,toUint8Array:E,extendString:A,extendUint8Array:j,extendBuiltins:()=>{A(),j()}},ue=class{constructor(e=new fe,t=new de){this._base64=e,this._provider=t}activate(e){this._terminal=e,this._disposable=e.parser.registerOscHandler(52,e=>this._setOrReportClipboard(e))}dispose(){return this._disposable?.dispose()}_readText(e,t){let n=this._base64.encodeText(t);this._terminal?.input(`\x1B]52;${e};${n}\x07`,!1)}_setOrReportClipboard(e){let t=e.split(`;`);if(t.length<2)return!0;let n=t[0],r=t[1];if(r===`?`){let e=this._provider.readText(n);return e instanceof Promise?e.then(e=>(this._readText(n,e),!0)):(this._readText(n,e),!0)}let i=``;try{i=this._base64.decodeText(r)}catch{}let a=this._provider.writeText(n,i);return a instanceof Promise?a.then(()=>!0):!0}},de=class{async readText(e){return e===`c`?navigator.clipboard.readText():Promise.resolve(``)}async writeText(e,t){return e===`c`?navigator.clipboard.writeText(t):Promise.resolve()}},fe=class{encodeText(e){return le.encode(e)}decodeText(e){let t=le.decode(e);return!le.isValid(e)||le.encode(t)!==e?``:t}},pe=2,me=1,he=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,n=window.getComputedStyle(this._terminal.element.parentElement),r=parseInt(n.getPropertyValue(`height`)),i=Math.max(0,parseInt(n.getPropertyValue(`width`))),a=window.getComputedStyle(this._terminal.element),o={top:parseInt(a.getPropertyValue(`padding-top`)),bottom:parseInt(a.getPropertyValue(`padding-bottom`)),right:parseInt(a.getPropertyValue(`padding-right`)),left:parseInt(a.getPropertyValue(`padding-left`))},s=o.top+o.bottom,c=o.right+o.left,l=r-s,u=i-c-t;return{cols:Math.max(pe,Math.floor(u/e.css.cell.width)),rows:Math.max(me,Math.floor(l/e.css.cell.height))}}},ge=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],_e=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],M;function ve(e,t){let n=0,r=t.length-1,i;if(e<t[0][0]||e>t[r][1])return!1;for(;r>=n;)if(i=n+r>>1,e>t[i][1])n=i+1;else if(e<t[i][0])r=i-1;else return!0;return!1}var ye=class{constructor(){if(this.version=`6`,!M){M=new Uint8Array(65536),M.fill(1),M[0]=0,M.fill(0,1,32),M.fill(0,127,160),M.fill(2,4352,4448),M[9001]=2,M[9002]=2,M.fill(2,11904,42192),M[12351]=1,M.fill(2,44032,55204),M.fill(2,63744,64256),M.fill(2,65040,65050),M.fill(2,65072,65136),M.fill(2,65280,65377),M.fill(2,65504,65511);for(let e=0;e<ge.length;++e)M.fill(0,ge[e][0],ge[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?M[e]:ve(e,_e)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let n=this.wcwidth(e),r=n===0&&t!==0;if(r){let e=rt.extractWidth(t);e===0?r=!1:e>n&&(n=e)}return rt.createPropertyValue(0,n,r)}},be=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?Te.isErrorNoTelemetry(e)?new Te(e.message+`
|
|
2
2
|
|
|
3
3
|
`+e.stack):Error(e.message+`
|
|
4
4
|
|