@cortexkit/aft-opencode 0.47.1 → 0.47.2

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/index.js CHANGED
@@ -34324,6 +34324,7 @@ function coerceAftStatus(response) {
34324
34324
  };
34325
34325
  const disk = asRecord(response.disk);
34326
34326
  const symbolCache = asRecord(response.symbol_cache);
34327
+ const runtime = asRecord(response.runtime);
34327
34328
  const session = asRecord(response.session);
34328
34329
  return {
34329
34330
  version: readString(response.version, "unknown"),
@@ -34363,6 +34364,11 @@ function coerceAftStatus(response) {
34363
34364
  semantic_disk_bytes: readNumber(disk.semantic_disk_bytes)
34364
34365
  },
34365
34366
  lsp_servers: readNumber(response.lsp_servers),
34367
+ runtime: {
34368
+ live_watchers: readNumber(runtime.live_watchers),
34369
+ live_actor_roots: readNumber(runtime.live_actor_roots),
34370
+ open_routes: readNumber(runtime.open_routes)
34371
+ },
34366
34372
  symbol_cache: {
34367
34373
  local_entries: readNumber(symbolCache.local_entries),
34368
34374
  warm_entries: readNumber(symbolCache.warm_entries)
@@ -35509,8 +35515,9 @@ function formatWatchResultText(taskId, data, waited) {
35509
35515
  let text = `Task ${taskId}: ${status}${exit}${dur}`;
35510
35516
  if (waited) {
35511
35517
  if (waited.reason === "matched") {
35518
+ const stream = waited.match_stream ? ` in ${waited.match_stream}` : "";
35512
35519
  text += `
35513
- Waited ${waited.elapsed_ms}ms; matched ${JSON.stringify(waited.match ?? "")} at offset ${waited.match_offset ?? 0}.`;
35520
+ Waited ${waited.elapsed_ms}ms; matched ${JSON.stringify(waited.match ?? "")}${stream} at offset ${waited.match_offset ?? 0}.`;
35514
35521
  } else if (waited.reason === "timeout") {
35515
35522
  text += `
35516
35523
  Waited ${waited.elapsed_ms}ms; timeout reached without match.`;
@@ -35540,9 +35547,11 @@ async function bashStatusSnapshot2(ctx, runtime, taskId, outputMode, options) {
35540
35547
  async function waitForBashStatus(ctx, runtime, taskId, outputMode, waitFor, effectiveWaitMs) {
35541
35548
  const startedAt = Date.now();
35542
35549
  const deadline = startedAt + effectiveWaitMs;
35543
- let spillCursor = { output: 0, stderr: 0, combined: 0 };
35544
- let scanText = "";
35545
- let scanBaseOffset = 0;
35550
+ let spillCursor = { output: 0, stderr: 0 };
35551
+ const scanState = {
35552
+ output: { text: "", baseOffset: 0 },
35553
+ stderr: { text: "", baseOffset: 0 }
35554
+ };
35546
35555
  const bridgeOptions = {};
35547
35556
  if (waitFor?.kind === "regex") {
35548
35557
  await validateWaitRegex(ctx, runtime, waitFor);
@@ -35580,32 +35589,37 @@ async function waitForBashStatus(ctx, runtime, taskId, outputMode, waitFor, effe
35580
35589
  const scan = await readNewTaskOutput(data, spillCursor);
35581
35590
  if (scan) {
35582
35591
  spillCursor = scan.nextCursor;
35583
- if (scanText.length === 0)
35584
- scanBaseOffset = scan.baseOffset;
35585
- scanText += scan.text;
35586
- if (waitFor.kind === "regex") {
35587
- const trimmed = trimWaitScanBuffer(scanText, scanBaseOffset, waitFor);
35588
- scanText = trimmed.text;
35589
- scanBaseOffset = trimmed.baseOffset;
35590
- }
35591
- const match = await findWaitMatch(ctx, runtime, scanText, waitFor);
35592
- if (match) {
35593
- if (terminal) {
35594
- sawTerminal = true;
35595
- consumeBgCompletion(runtime.sessionID, taskId);
35596
- await markBgCompletionDelivered({ ctx, directory: projectRootFor(runtime), sessionID: runtime.sessionID }, taskId);
35597
- }
35598
- return withWaited(data, {
35599
- reason: "matched",
35600
- elapsed_ms: Date.now() - startedAt,
35601
- match: match.text,
35602
- match_offset: scanBaseOffset + match.byteOffset
35603
- });
35604
- }
35605
- if (waitFor.kind === "substring") {
35606
- const trimmed = trimWaitScanBuffer(scanText, scanBaseOffset, waitFor);
35607
- scanText = trimmed.text;
35608
- scanBaseOffset = trimmed.baseOffset;
35592
+ for (const chunk of scan.chunks) {
35593
+ const state = scanState[chunk.stream];
35594
+ if (state.text.length === 0)
35595
+ state.baseOffset = chunk.baseOffset;
35596
+ state.text += chunk.text;
35597
+ if (waitFor.kind === "regex") {
35598
+ const trimmed = trimWaitScanBuffer(state.text, state.baseOffset, waitFor);
35599
+ state.text = trimmed.text;
35600
+ state.baseOffset = trimmed.baseOffset;
35601
+ }
35602
+ const match = await findWaitMatch(ctx, runtime, state.text, waitFor);
35603
+ if (match) {
35604
+ if (terminal) {
35605
+ sawTerminal = true;
35606
+ consumeBgCompletion(runtime.sessionID, taskId);
35607
+ await markBgCompletionDelivered({ ctx, directory: projectRootFor(runtime), sessionID: runtime.sessionID }, taskId);
35608
+ }
35609
+ const matchStream = data.mode === "pty" ? undefined : chunk.stream === "output" ? "stdout" : "stderr";
35610
+ return withWaited(data, {
35611
+ reason: "matched",
35612
+ elapsed_ms: Date.now() - startedAt,
35613
+ match: match.text,
35614
+ match_offset: state.baseOffset + match.byteOffset,
35615
+ match_stream: matchStream
35616
+ });
35617
+ }
35618
+ if (waitFor.kind === "substring") {
35619
+ const trimmed = trimWaitScanBuffer(state.text, state.baseOffset, waitFor);
35620
+ state.text = trimmed.text;
35621
+ state.baseOffset = trimmed.baseOffset;
35622
+ }
35609
35623
  }
35610
35624
  }
35611
35625
  }
@@ -35638,13 +35652,26 @@ async function readNewTaskOutput(data, cursor) {
35638
35652
  const bytesRead = stdoutBytes.length + stderrBytes.length;
35639
35653
  if (bytesRead === 0)
35640
35654
  return;
35655
+ const chunks = [];
35656
+ if (stdoutBytes.length > 0) {
35657
+ chunks.push({
35658
+ stream: "output",
35659
+ text: stdoutBytes.toString("utf8"),
35660
+ baseOffset: cursor.output
35661
+ });
35662
+ }
35663
+ if (stderrBytes.length > 0) {
35664
+ chunks.push({
35665
+ stream: "stderr",
35666
+ text: stderrBytes.toString("utf8"),
35667
+ baseOffset: cursor.stderr
35668
+ });
35669
+ }
35641
35670
  return {
35642
- text: Buffer.concat([stdoutBytes, stderrBytes]).toString("utf8"),
35643
- baseOffset: cursor.combined,
35671
+ chunks,
35644
35672
  nextCursor: {
35645
35673
  output: cursor.output + stdoutBytes.length,
35646
- stderr: cursor.stderr + stderrBytes.length,
35647
- combined: cursor.combined + bytesRead
35674
+ stderr: cursor.stderr + stderrBytes.length
35648
35675
  }
35649
35676
  };
35650
35677
  }
@@ -37675,14 +37702,14 @@ var PLUGIN_VERSION = (() => {
37675
37702
  return "0.0.0";
37676
37703
  }
37677
37704
  })();
37678
- var ANNOUNCEMENT_VERSION = "0.47.1";
37705
+ var ANNOUNCEMENT_VERSION = "0.47.2";
37679
37706
  var ANNOUNCEMENT_FEATURES = [
37680
- "Fixed: apply_patch could delete a file when a patch moved it to its own path same-path moves are now plain in-place updates.",
37681
- "Fixed: moving a symlink across filesystems turned it into a regular file; the link itself is now preserved.",
37682
- "Fixed: a failed delete could leave a phantom undo entry, so the next undo reverted the wrong operation.",
37683
- "Fixed: a crashed process could leave a stale lock that permanently disabled update checks.",
37684
- "Paths can be given as file: URLs (#162), and reading your own background task's output files no longer prompts for permission (#161).",
37685
- "Faster hot paths: warm symbol lookups skip re-hashing unchanged files, search reads each posting list once per query, snippets stream only the needed lines, and edits no longer copy the whole undo history per mutation."
37707
+ "Fixed: apply_patch wrote mixed line endings when editing CRLF (Windows) files; the file's dominant line ending is now preserved.",
37708
+ "Fixed: inlining a function argument like twice(1 + 2) could change operator precedence; non-atomic arguments are now parenthesized.",
37709
+ "Fixed: removing one name from a Python import with an aliased sibling (from m import a, b as c) could delete the whole line.",
37710
+ "Fixed: bash_watch could report a match that spanned the stdout/stderr seam; streams are now scanned independently.",
37711
+ "GitHub and GitLab file links (…/blob/…) now read raw file content in aft_outline/aft_zoom, and documentation heading lookups tolerate numeric prefixes, link labels, emoji, and anchor slugs.",
37712
+ "bash now finds tools on a PATH exported from your shell rc (e.g. zsh .zshrc), and several warm hot paths got faster."
37686
37713
  ];
37687
37714
  var ANNOUNCEMENT_FOOTER = "Join us on Discord: https://discord.gg/DSa65w8wuf";
37688
37715
  var plugin = async (input) => initializePluginForDirectory(input);
@@ -72,6 +72,11 @@ export interface AftStatusSnapshot {
72
72
  semantic_disk_bytes: number;
73
73
  };
74
74
  lsp_servers: number;
75
+ runtime: {
76
+ live_watchers: number;
77
+ live_actor_roots: number;
78
+ open_routes: number;
79
+ };
75
80
  symbol_cache: {
76
81
  local_entries: number;
77
82
  warm_entries: number;
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/shared/status.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,0BAA0B,CAAC;IACpC,OAAO,EAAE,0BAA0B,CAAC;CACrC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE;QACR,cAAc,EAAE,OAAO,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,wBAAwB,EAAE,OAAO,CAAC;QAClC,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;IACF,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,gBAAgB,EAAE,MAAM,CAAC;QACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;IACF,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iEAAiE;IACjE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,wEAAwE;IACxE,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAsED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAKvF;AAED,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI/E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAajD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAqEpF;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAyF3E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA4FtE"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/shared/status.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export type BashStatusWaited = {
12
12
  elapsed_ms: number;
13
13
  match?: string;
14
14
  match_offset?: number;
15
+ match_stream?: "stdout" | "stderr";
15
16
  };
16
17
  type BashStatusWithWait = Record<string, unknown> & {
17
18
  waited?: BashStatusWaited;
@@ -1 +1 @@
1
- {"version":3,"file":"bash_watch.d.ts","sourceRoot":"","sources":["../../src/tools/bash_watch.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAavE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AASjD,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACtC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,aAAa,CAAC;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAUF,KAAK,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAGlF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,CA0GtE;AAgHD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,eAAe,GAAG,SAAS,EACpC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAyG7B;AA8CD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAI5E;AAkGD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAEtC"}
1
+ {"version":3,"file":"bash_watch.d.ts","sourceRoot":"","sources":["../../src/tools/bash_watch.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAavE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AASjD,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACtC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,aAAa,CAAC;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACpC,CAAC;AAUF,KAAK,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAMlF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,CA0GtE;AAiHD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,eAAe,GAAG,SAAS,EACpC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAoH7B;AA2DD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAI5E;AAkGD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAEtC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cortexkit/aft-opencode",
3
- "version": "0.47.1",
3
+ "version": "0.47.2",
4
4
  "type": "module",
5
5
  "description": "OpenCode plugin for Agent File Tools (AFT) — tree-sitter and lsp powered code analysis",
6
6
  "main": "dist/index.js",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@clack/prompts": "^1.6.0",
37
- "@cortexkit/aft-bridge": "0.47.1",
37
+ "@cortexkit/aft-bridge": "0.47.2",
38
38
  "@opentui/core": "0.4.3",
39
39
  "@opentui/solid": "0.4.3",
40
40
  "comment-json": "^4.6.2",
@@ -43,12 +43,12 @@
43
43
  "zod": "^4.4.3"
44
44
  },
45
45
  "optionalDependencies": {
46
- "@cortexkit/aft-darwin-arm64": "0.47.1",
47
- "@cortexkit/aft-darwin-x64": "0.47.1",
48
- "@cortexkit/aft-linux-arm64": "0.47.1",
49
- "@cortexkit/aft-linux-x64": "0.47.1",
50
- "@cortexkit/aft-win32-arm64": "0.47.1",
51
- "@cortexkit/aft-win32-x64": "0.47.1"
46
+ "@cortexkit/aft-darwin-arm64": "0.47.2",
47
+ "@cortexkit/aft-darwin-x64": "0.47.2",
48
+ "@cortexkit/aft-linux-arm64": "0.47.2",
49
+ "@cortexkit/aft-linux-x64": "0.47.2",
50
+ "@cortexkit/aft-win32-arm64": "0.47.2",
51
+ "@cortexkit/aft-win32-x64": "0.47.2"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@opencode-ai/plugin": "^1.17.11",
@@ -75,6 +75,11 @@ export interface AftStatusSnapshot {
75
75
  semantic_disk_bytes: number;
76
76
  };
77
77
  lsp_servers: number;
78
+ runtime: {
79
+ live_watchers: number;
80
+ live_actor_roots: number;
81
+ open_routes: number;
82
+ };
78
83
  symbol_cache: {
79
84
  local_entries: number;
80
85
  warm_entries: number;
@@ -212,6 +217,7 @@ export function coerceAftStatus(response: Record<string, unknown>): AftStatusSna
212
217
  };
213
218
  const disk = asRecord(response.disk);
214
219
  const symbolCache = asRecord(response.symbol_cache);
220
+ const runtime = asRecord(response.runtime);
215
221
  const session = asRecord(response.session);
216
222
 
217
223
  return {
@@ -256,6 +262,11 @@ export function coerceAftStatus(response: Record<string, unknown>): AftStatusSna
256
262
  semantic_disk_bytes: readNumber(disk.semantic_disk_bytes),
257
263
  },
258
264
  lsp_servers: readNumber(response.lsp_servers),
265
+ runtime: {
266
+ live_watchers: readNumber(runtime.live_watchers),
267
+ live_actor_roots: readNumber(runtime.live_actor_roots),
268
+ open_routes: readNumber(runtime.open_routes),
269
+ },
259
270
  symbol_cache: {
260
271
  local_entries: readNumber(symbolCache.local_entries),
261
272
  warm_entries: readNumber(symbolCache.warm_entries),