@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.
Files changed (134) hide show
  1. package/dist/cli/chunk-04zz7j1j.js +2 -0
  2. package/dist/cli/chunk-08yqc66n.js +5 -0
  3. package/dist/cli/chunk-0dbz76mq.js +2 -0
  4. package/dist/cli/chunk-12458wct.js +2 -0
  5. package/dist/cli/chunk-1cjd7h8p.js +6 -0
  6. package/dist/cli/chunk-1t0xygy1.js +2 -0
  7. package/dist/cli/chunk-21eenkyj.js +8 -0
  8. package/dist/cli/{chunk-1gpx52qj.js → chunk-3737ysrb.js} +2 -2
  9. package/dist/cli/chunk-4ezfas24.js +3 -0
  10. package/dist/cli/chunk-4gaqhq8t.js +2 -0
  11. package/dist/cli/chunk-4nm1axc3.js +2 -0
  12. package/dist/cli/{chunk-1z9ae43v.js → chunk-4ppq1q86.js} +1 -1
  13. package/dist/cli/{chunk-6zwg6me2.js → chunk-51y7sjhe.js} +1 -1
  14. package/dist/cli/{chunk-5gn4chrm.js → chunk-5hs3w3xy.js} +1 -1
  15. package/dist/cli/{chunk-2w4zymkv.js → chunk-5w9bxd45.js} +1 -1
  16. package/dist/cli/{chunk-q6579rbz.js → chunk-5wzap7r2.js} +1 -1
  17. package/dist/cli/chunk-6kz81dkc.js +17 -0
  18. package/dist/cli/chunk-71tq5yn8.js +3 -0
  19. package/dist/cli/chunk-7jkf3tvr.js +3 -0
  20. package/dist/cli/{chunk-bjat0fyy.js → chunk-86aac2wh.js} +1 -1
  21. package/dist/cli/{chunk-nm6adny4.js → chunk-86bjqmg1.js} +1 -1
  22. package/dist/cli/{chunk-k3ksts6g.js → chunk-87y9qjcm.js} +1 -1
  23. package/dist/cli/{chunk-e1g9mvww.js → chunk-8gsqypg8.js} +1 -1
  24. package/dist/cli/{chunk-fbg4fkmg.js → chunk-9ejxh7a6.js} +1 -1
  25. package/dist/cli/{chunk-8x0h6rwa.js → chunk-9kyf6d1j.js} +1 -1
  26. package/dist/cli/{chunk-7j8zpeer.js → chunk-9nbg0nzh.js} +1 -1
  27. package/dist/cli/chunk-9twmp5m9.js +4 -0
  28. package/dist/cli/{chunk-2ffbcsm6.js → chunk-9yhr7fxf.js} +4 -4
  29. package/dist/cli/chunk-a3a9gdc4.js +3 -0
  30. package/dist/cli/chunk-a3zmjcbd.js +3 -0
  31. package/dist/cli/{chunk-g1ybdgad.js → chunk-a6sxg2gx.js} +2 -2
  32. package/dist/cli/{chunk-6xhtf9jx.js → chunk-adr88eqt.js} +1 -1
  33. package/dist/cli/{chunk-mrwee8sj.js → chunk-aeq5xmtq.js} +1 -1
  34. package/dist/cli/{chunk-nceh1q3d.js → chunk-bjcjrh1v.js} +1 -1
  35. package/dist/cli/chunk-bkba9c4n.js +4 -0
  36. package/dist/cli/{chunk-db57060b.js → chunk-bkpsjg6y.js} +1 -1
  37. package/dist/cli/chunk-bnxz5nha.js +2 -0
  38. package/dist/cli/{chunk-mfvy10ep.js → chunk-bqhq43zx.js} +1 -1
  39. package/dist/cli/chunk-cexxmfva.js +2 -0
  40. package/dist/cli/{chunk-6h9tc9vn.js → chunk-ch1jvgg1.js} +1 -1
  41. package/dist/cli/chunk-d393z1mj.js +4 -0
  42. package/dist/cli/chunk-e8493db0.js +4 -0
  43. package/dist/cli/chunk-ezty9a39.js +4 -0
  44. package/dist/cli/{chunk-k2gfqqmg.js → chunk-frp2wp3m.js} +1 -1
  45. package/dist/cli/{chunk-2hgt2esq.js → chunk-g226rgg2.js} +2 -2
  46. package/dist/cli/chunk-g2advs8t.js +3 -0
  47. package/dist/cli/{chunk-cjxwzzq7.js → chunk-gbd5dyhh.js} +1 -1
  48. package/dist/cli/{chunk-sm1vhrb6.js → chunk-gfh0ws3y.js} +1 -1
  49. package/dist/cli/chunk-gkskp5j9.js +2 -0
  50. package/dist/cli/{chunk-f6zsej8e.js → chunk-gvhq08an.js} +1 -1
  51. package/dist/cli/{chunk-5kkm6tjz.js → chunk-h5a7necv.js} +2 -2
  52. package/dist/cli/chunk-he0st4f1.js +2 -0
  53. package/dist/cli/chunk-hhvzpps8.js +9 -0
  54. package/dist/cli/chunk-j2j1kq3m.js +2 -0
  55. package/dist/cli/{chunk-yeytzg1x.js → chunk-kp85rcmt.js} +1 -1
  56. package/dist/cli/chunk-m57cv76y.js +3 -0
  57. package/dist/cli/{chunk-z3va3mt0.js → chunk-m7zq502q.js} +21 -19
  58. package/dist/cli/{chunk-r2w8qgyd.js → chunk-mewacahf.js} +3 -3
  59. package/dist/cli/{chunk-y34fff4t.js → chunk-mff9s59g.js} +1 -1
  60. package/dist/cli/{chunk-fhfqyfpf.js → chunk-mw20v2nd.js} +2 -2
  61. package/dist/cli/chunk-mwzyk91k.js +2 -0
  62. package/dist/cli/chunk-n4dmwkfa.js +4 -0
  63. package/dist/cli/chunk-n5sssj80.js +3 -0
  64. package/dist/cli/chunk-nw91q4x3.js +2 -0
  65. package/dist/cli/chunk-nywh3yb9.js +3 -0
  66. package/dist/cli/chunk-pxtx1gcf.js +3 -0
  67. package/dist/cli/chunk-r1p9bwja.js +7 -0
  68. package/dist/cli/{chunk-hg5x2wr0.js → chunk-r2pztgm6.js} +2 -2
  69. package/dist/cli/{chunk-vapjtyv9.js → chunk-rgh49bm3.js} +1 -1
  70. package/dist/cli/{chunk-khp1ga68.js → chunk-rhp5f301.js} +1 -1
  71. package/dist/cli/chunk-rz8zs7j8.js +3 -0
  72. package/dist/cli/{chunk-b24ykek8.js → chunk-rzvzcqvx.js} +1 -1
  73. package/dist/cli/chunk-s239r4nv.js +2 -0
  74. package/dist/cli/{chunk-zb56ck5f.js → chunk-s433recg.js} +1 -1
  75. package/dist/cli/{chunk-71m4ak4t.js → chunk-s8xyh1bt.js} +1 -1
  76. package/dist/cli/chunk-s9a974w9.js +2 -0
  77. package/dist/cli/{chunk-ppe5myr0.js → chunk-sexavazm.js} +1 -1
  78. package/dist/cli/{chunk-7sgtpyr0.js → chunk-svtpb8v2.js} +1 -1
  79. package/dist/cli/chunk-t2es32fg.js +2 -0
  80. package/dist/cli/{chunk-a0rxr20w.js → chunk-ty56f8fe.js} +1 -1
  81. package/dist/cli/{chunk-1ps9qzp1.js → chunk-w2denxak.js} +2 -2
  82. package/dist/cli/{chunk-jyv82gf0.js → chunk-w7zv47mp.js} +3 -4
  83. package/dist/cli/{chunk-jsss3ze7.js → chunk-xe62kmhp.js} +2 -2
  84. package/dist/cli/chunk-xkggb529.js +2 -0
  85. package/dist/cli/chunk-xtr7ks02.js +3 -0
  86. package/dist/cli/{chunk-13s8rnk5.js → chunk-y9ksfpbp.js} +1 -1
  87. package/dist/cli/{chunk-p7kztgsd.js → chunk-ybsdy2w8.js} +1 -1
  88. package/dist/cli/chunk-z7eavs6b.js +2 -0
  89. package/dist/cli/{chunk-0h4cfy44.js → chunk-z8khnqxg.js} +3 -3
  90. package/dist/cli/{chunk-tfdx5ve6.js → chunk-zaxdx0wd.js} +1 -1
  91. package/dist/cli/index.js +10 -10
  92. package/dist/cli/kobe.js +1 -1
  93. package/dist/cli/pty-host-node.mjs +25 -2
  94. package/dist/cli/rove.js +1 -1
  95. package/dist/web-ui/assets/{harness-CYGJ4uoR.js → harness-DvVhbIUb.js} +1 -1
  96. package/dist/web-ui/assets/{index-BTJ-X_4s.js → index-DrVCJr6C.js} +2 -2
  97. package/dist/web-ui/index.html +1 -1
  98. package/package.json +2 -1
  99. package/dist/cli/chunk-003tvywc.js +0 -3
  100. package/dist/cli/chunk-0kn7xxqm.js +0 -6
  101. package/dist/cli/chunk-0tw42ad1.js +0 -2
  102. package/dist/cli/chunk-1cqtm24j.js +0 -8
  103. package/dist/cli/chunk-1kktfmtg.js +0 -4
  104. package/dist/cli/chunk-1rkb0j1j.js +0 -3
  105. package/dist/cli/chunk-20pt9yqh.js +0 -4
  106. package/dist/cli/chunk-2jxdzw4r.js +0 -3
  107. package/dist/cli/chunk-2pqqvse3.js +0 -2
  108. package/dist/cli/chunk-2t62vct7.js +0 -2
  109. package/dist/cli/chunk-4d7bbh87.js +0 -2
  110. package/dist/cli/chunk-5b6940vk.js +0 -2
  111. package/dist/cli/chunk-5hhvrvgm.js +0 -8
  112. package/dist/cli/chunk-7nhdvr5v.js +0 -4
  113. package/dist/cli/chunk-84aks78e.js +0 -3
  114. package/dist/cli/chunk-99devyxr.js +0 -2
  115. package/dist/cli/chunk-awsawfrm.js +0 -2
  116. package/dist/cli/chunk-aynx3d2a.js +0 -2
  117. package/dist/cli/chunk-bzz4ta7g.js +0 -17
  118. package/dist/cli/chunk-dk3pvrw6.js +0 -2
  119. package/dist/cli/chunk-fyjj9ast.js +0 -2
  120. package/dist/cli/chunk-gjf604bb.js +0 -3
  121. package/dist/cli/chunk-gm3vj0fv.js +0 -5
  122. package/dist/cli/chunk-h79zfebh.js +0 -7
  123. package/dist/cli/chunk-h9xpeqn6.js +0 -2
  124. package/dist/cli/chunk-hpj8xjxb.js +0 -2
  125. package/dist/cli/chunk-k5k0ecka.js +0 -4
  126. package/dist/cli/chunk-mfqjdpd8.js +0 -2
  127. package/dist/cli/chunk-ncsgawg7.js +0 -2
  128. package/dist/cli/chunk-qtke4x42.js +0 -3
  129. package/dist/cli/chunk-r26g5ree.js +0 -2
  130. package/dist/cli/chunk-vwjec3m6.js +0 -3
  131. package/dist/cli/chunk-vws0j65e.js +0 -4
  132. package/dist/cli/chunk-vzvy1s1d.js +0 -2
  133. package/dist/cli/chunk-w5xy83ze.js +0 -2
  134. /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
- ptys.kill(requireString(objectPayload(req.payload), "key"));
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.150",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",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(`
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-BTJ-X_4s.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+`
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