orion-super-agent-dev 0.1.14 → 0.1.15

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/out/main.js CHANGED
@@ -19,8 +19,8 @@ var __require = /* @__PURE__ */ ((x2) => typeof require !== "undefined" ? requir
19
19
  var __esm = (fn, res) => function __init() {
20
20
  return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
21
21
  };
22
- var __commonJS = (cb, mod) => function __require2() {
23
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
22
+ var __commonJS = (cb, mod2) => function __require2() {
23
+ return mod2 || (0, cb[__getOwnPropNames(cb)[0]])((mod2 = { exports: {} }).exports, mod2), mod2.exports;
24
24
  };
25
25
  var __copyProps = (to, from, except, desc) => {
26
26
  if (from && typeof from === "object" || typeof from === "function") {
@@ -30,13 +30,13 @@ var __copyProps = (to, from, except, desc) => {
30
30
  }
31
31
  return to;
32
32
  };
33
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
33
+ var __toESM = (mod2, isNodeMode, target) => (target = mod2 != null ? __create(__getProtoOf(mod2)) : {}, __copyProps(
34
34
  // If the importer is in node compatibility mode or this is not an ESM
35
35
  // file that has been converted to a CommonJS file using a Babel-
36
36
  // compatible transform (i.e. "__esModule" has not been set), then set
37
37
  // "default" to the CommonJS "module.exports" for node compatibility.
38
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
39
- mod
38
+ isNodeMode || !mod2 || !mod2.__esModule ? __defProp(target, "default", { value: mod2, enumerable: true }) : target,
39
+ mod2
40
40
  ));
41
41
 
42
42
  // ../node_modules/react/cjs/react.production.min.js
@@ -2230,7 +2230,7 @@ var require_react_jsx_runtime_development = __commonJS({
2230
2230
  if (process.env.NODE_ENV !== "production") {
2231
2231
  (function() {
2232
2232
  "use strict";
2233
- var React29 = require_react();
2233
+ var React30 = require_react();
2234
2234
  var REACT_ELEMENT_TYPE = Symbol.for("react.element");
2235
2235
  var REACT_PORTAL_TYPE = Symbol.for("react.portal");
2236
2236
  var REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
@@ -2256,7 +2256,7 @@ var require_react_jsx_runtime_development = __commonJS({
2256
2256
  }
2257
2257
  return null;
2258
2258
  }
2259
- var ReactSharedInternals = React29.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
2259
+ var ReactSharedInternals = React30.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
2260
2260
  function error(format2) {
2261
2261
  {
2262
2262
  {
@@ -3106,10 +3106,10 @@ var require_react_jsx_runtime_development = __commonJS({
3106
3106
  return jsxWithValidation(type, props, key, false);
3107
3107
  }
3108
3108
  }
3109
- var jsx72 = jsxWithValidationDynamic;
3109
+ var jsx73 = jsxWithValidationDynamic;
3110
3110
  var jsxs51 = jsxWithValidationStatic;
3111
3111
  exports2.Fragment = REACT_FRAGMENT_TYPE;
3112
- exports2.jsx = jsx72;
3112
+ exports2.jsx = jsx73;
3113
3113
  exports2.jsxs = jsxs51;
3114
3114
  })();
3115
3115
  }
@@ -4224,7 +4224,7 @@ var require_ansi_styles = __commonJS({
4224
4224
  });
4225
4225
  };
4226
4226
  var colorConvert;
4227
- var makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {
4227
+ var makeDynamicStyles = (wrap2, targetSpace, identity, isBackground) => {
4228
4228
  if (colorConvert === void 0) {
4229
4229
  colorConvert = require_color_convert();
4230
4230
  }
@@ -4233,9 +4233,9 @@ var require_ansi_styles = __commonJS({
4233
4233
  for (const [sourceSpace, suite] of Object.entries(colorConvert)) {
4234
4234
  const name2 = sourceSpace === "ansi16" ? "ansi" : sourceSpace;
4235
4235
  if (sourceSpace === targetSpace) {
4236
- styles3[name2] = wrap(identity, offset);
4236
+ styles3[name2] = wrap2(identity, offset);
4237
4237
  } else if (typeof suite === "object") {
4238
- styles3[name2] = wrap(suite[targetSpace], offset);
4238
+ styles3[name2] = wrap2(suite[targetSpace], offset);
4239
4239
  }
4240
4240
  }
4241
4241
  return styles3;
@@ -9963,9 +9963,9 @@ var require_react_reconciler_development = __commonJS({
9963
9963
  module2.exports = function $$$reconciler($$$hostConfig) {
9964
9964
  var exports3 = {};
9965
9965
  "use strict";
9966
- var React29 = require_react();
9966
+ var React30 = require_react();
9967
9967
  var Scheduler = require_scheduler();
9968
- var ReactSharedInternals = React29.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
9968
+ var ReactSharedInternals = React30.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
9969
9969
  var suppressWarning = false;
9970
9970
  function setSuppressWarning(newSuppressWarning) {
9971
9971
  {
@@ -27159,7 +27159,7 @@ var require_stack_utils = __commonJS({
27159
27159
  if (ignoredPackages.length === 0) {
27160
27160
  return [];
27161
27161
  }
27162
- const packages = ignoredPackages.map((mod) => escapeStringRegexp(mod));
27162
+ const packages = ignoredPackages.map((mod2) => escapeStringRegexp(mod2));
27163
27163
  return new RegExp(`[/\\\\]node_modules[/\\\\](?:${packages.join("|")})[/\\\\][^:]+:\\d+:\\d+`);
27164
27164
  }
27165
27165
  var re = new RegExp(
@@ -28808,10 +28808,30 @@ var require_atomicWrite = __commonJS({
28808
28808
  "../packages/orion-client-core/dist/atomicWrite.js"(exports2) {
28809
28809
  "use strict";
28810
28810
  Object.defineProperty(exports2, "__esModule", { value: true });
28811
+ exports2.retriesRenameContention = retriesRenameContention;
28811
28812
  exports2.atomicWriteFile = atomicWriteFile;
28812
28813
  var fs_1 = __require("fs");
28813
28814
  var path_1 = __require("path");
28814
28815
  var tmpSeq2 = 0;
28816
+ var RENAME_CONTENTION = /* @__PURE__ */ new Set(["EPERM", "EACCES", "EBUSY"]);
28817
+ function retriesRenameContention(code, platform2 = process.platform) {
28818
+ return platform2 === "win32" && code !== void 0 && RENAME_CONTENTION.has(code);
28819
+ }
28820
+ async function renameWhenUnlocked(tmp, target) {
28821
+ const ATTEMPTS = 20;
28822
+ const DELAY_MS = 5;
28823
+ for (let attempt = 1; ; attempt++) {
28824
+ try {
28825
+ await fs_1.promises.rename(tmp, target);
28826
+ return;
28827
+ } catch (err2) {
28828
+ const code = err2.code;
28829
+ if (attempt >= ATTEMPTS || !retriesRenameContention(code))
28830
+ throw err2;
28831
+ await new Promise((resolve5) => setTimeout(resolve5, DELAY_MS));
28832
+ }
28833
+ }
28834
+ }
28815
28835
  async function atomicWriteFile(targetPath, content, options = {}) {
28816
28836
  const encoding = options.encoding ?? "utf8";
28817
28837
  let target = targetPath;
@@ -28838,7 +28858,7 @@ var require_atomicWrite = __commonJS({
28838
28858
  }
28839
28859
  if (targetExists && targetMode !== void 0)
28840
28860
  await fs_1.promises.chmod(tmp, targetMode);
28841
- await fs_1.promises.rename(tmp, target);
28861
+ await renameWhenUnlocked(tmp, target);
28842
28862
  } catch {
28843
28863
  await fs_1.promises.unlink(tmp).catch(() => {
28844
28864
  });
@@ -28882,13 +28902,13 @@ var require_settingsPaths = __commonJS({
28882
28902
  };
28883
28903
  return ownKeys(o);
28884
28904
  };
28885
- return function(mod) {
28886
- if (mod && mod.__esModule) return mod;
28905
+ return function(mod2) {
28906
+ if (mod2 && mod2.__esModule) return mod2;
28887
28907
  var result = {};
28888
- if (mod != null) {
28889
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
28908
+ if (mod2 != null) {
28909
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
28890
28910
  }
28891
- __setModuleDefault(result, mod);
28911
+ __setModuleDefault(result, mod2);
28892
28912
  return result;
28893
28913
  };
28894
28914
  }();
@@ -28940,13 +28960,13 @@ var require_interimModels = __commonJS({
28940
28960
  };
28941
28961
  return ownKeys(o);
28942
28962
  };
28943
- return function(mod) {
28944
- if (mod && mod.__esModule) return mod;
28963
+ return function(mod2) {
28964
+ if (mod2 && mod2.__esModule) return mod2;
28945
28965
  var result = {};
28946
- if (mod != null) {
28947
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
28966
+ if (mod2 != null) {
28967
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
28948
28968
  }
28949
- __setModuleDefault(result, mod);
28969
+ __setModuleDefault(result, mod2);
28950
28970
  return result;
28951
28971
  };
28952
28972
  }();
@@ -29550,13 +29570,13 @@ var require_workspaceRootSafety = __commonJS({
29550
29570
  };
29551
29571
  return ownKeys(o);
29552
29572
  };
29553
- return function(mod) {
29554
- if (mod && mod.__esModule) return mod;
29573
+ return function(mod2) {
29574
+ if (mod2 && mod2.__esModule) return mod2;
29555
29575
  var result = {};
29556
- if (mod != null) {
29557
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
29576
+ if (mod2 != null) {
29577
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
29558
29578
  }
29559
- __setModuleDefault(result, mod);
29579
+ __setModuleDefault(result, mod2);
29560
29580
  return result;
29561
29581
  };
29562
29582
  }();
@@ -30851,13 +30871,13 @@ var require_pathResolution = __commonJS({
30851
30871
  };
30852
30872
  return ownKeys(o);
30853
30873
  };
30854
- return function(mod) {
30855
- if (mod && mod.__esModule) return mod;
30874
+ return function(mod2) {
30875
+ if (mod2 && mod2.__esModule) return mod2;
30856
30876
  var result = {};
30857
- if (mod != null) {
30858
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
30877
+ if (mod2 != null) {
30878
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
30859
30879
  }
30860
- __setModuleDefault(result, mod);
30880
+ __setModuleDefault(result, mod2);
30861
30881
  return result;
30862
30882
  };
30863
30883
  }();
@@ -31074,13 +31094,13 @@ var require_scratchpad = __commonJS({
31074
31094
  };
31075
31095
  return ownKeys(o);
31076
31096
  };
31077
- return function(mod) {
31078
- if (mod && mod.__esModule) return mod;
31097
+ return function(mod2) {
31098
+ if (mod2 && mod2.__esModule) return mod2;
31079
31099
  var result = {};
31080
- if (mod != null) {
31081
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
31100
+ if (mod2 != null) {
31101
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
31082
31102
  }
31083
- __setModuleDefault(result, mod);
31103
+ __setModuleDefault(result, mod2);
31084
31104
  return result;
31085
31105
  };
31086
31106
  }();
@@ -31323,13 +31343,13 @@ var require_segmentDriver = __commonJS({
31323
31343
  };
31324
31344
  return ownKeys(o);
31325
31345
  };
31326
- return function(mod) {
31327
- if (mod && mod.__esModule) return mod;
31346
+ return function(mod2) {
31347
+ if (mod2 && mod2.__esModule) return mod2;
31328
31348
  var result = {};
31329
- if (mod != null) {
31330
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
31349
+ if (mod2 != null) {
31350
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
31331
31351
  }
31332
- __setModuleDefault(result, mod);
31352
+ __setModuleDefault(result, mod2);
31333
31353
  return result;
31334
31354
  };
31335
31355
  }();
@@ -31932,18 +31952,18 @@ var require_bridge = __commonJS({
31932
31952
  };
31933
31953
  return ownKeys(o);
31934
31954
  };
31935
- return function(mod) {
31936
- if (mod && mod.__esModule) return mod;
31955
+ return function(mod2) {
31956
+ if (mod2 && mod2.__esModule) return mod2;
31937
31957
  var result = {};
31938
- if (mod != null) {
31939
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
31958
+ if (mod2 != null) {
31959
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
31940
31960
  }
31941
- __setModuleDefault(result, mod);
31961
+ __setModuleDefault(result, mod2);
31942
31962
  return result;
31943
31963
  };
31944
31964
  }();
31945
- var __importDefault = exports2 && exports2.__importDefault || function(mod) {
31946
- return mod && mod.__esModule ? mod : { "default": mod };
31965
+ var __importDefault = exports2 && exports2.__importDefault || function(mod2) {
31966
+ return mod2 && mod2.__esModule ? mod2 : { "default": mod2 };
31947
31967
  };
31948
31968
  Object.defineProperty(exports2, "__esModule", { value: true });
31949
31969
  exports2.OrionBridge = void 0;
@@ -32474,8 +32494,8 @@ var require_bridge = __commonJS({
32474
32494
  params.set("since", String(lastSeq));
32475
32495
  if (generation !== null)
32476
32496
  params.set("generation", generation);
32477
- const sinceParam = params.toString() ? `?${params.toString()}` : "";
32478
- const url = `${this.apiUrl()}/events/${sessionId}${sinceParam}`;
32497
+ params.set("role", "host");
32498
+ const url = `${this.apiUrl()}/events/${sessionId}?${params.toString()}`;
32479
32499
  const token = await this.authToken();
32480
32500
  if (existing && !this.sessions.has(sessionId)) {
32481
32501
  return;
@@ -33109,13 +33129,13 @@ var require_bashResolver = __commonJS({
33109
33129
  };
33110
33130
  return ownKeys(o);
33111
33131
  };
33112
- return function(mod) {
33113
- if (mod && mod.__esModule) return mod;
33132
+ return function(mod2) {
33133
+ if (mod2 && mod2.__esModule) return mod2;
33114
33134
  var result = {};
33115
- if (mod != null) {
33116
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
33135
+ if (mod2 != null) {
33136
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
33117
33137
  }
33118
- __setModuleDefault(result, mod);
33138
+ __setModuleDefault(result, mod2);
33119
33139
  return result;
33120
33140
  };
33121
33141
  }();
@@ -33248,13 +33268,13 @@ var require_powershellResolver = __commonJS({
33248
33268
  };
33249
33269
  return ownKeys(o);
33250
33270
  };
33251
- return function(mod) {
33252
- if (mod && mod.__esModule) return mod;
33271
+ return function(mod2) {
33272
+ if (mod2 && mod2.__esModule) return mod2;
33253
33273
  var result = {};
33254
- if (mod != null) {
33255
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
33274
+ if (mod2 != null) {
33275
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
33256
33276
  }
33257
- __setModuleDefault(result, mod);
33277
+ __setModuleDefault(result, mod2);
33258
33278
  return result;
33259
33279
  };
33260
33280
  }();
@@ -33366,13 +33386,13 @@ var require_pathing = __commonJS({
33366
33386
  };
33367
33387
  return ownKeys(o);
33368
33388
  };
33369
- return function(mod) {
33370
- if (mod && mod.__esModule) return mod;
33389
+ return function(mod2) {
33390
+ if (mod2 && mod2.__esModule) return mod2;
33371
33391
  var result = {};
33372
- if (mod != null) {
33373
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
33392
+ if (mod2 != null) {
33393
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
33374
33394
  }
33375
- __setModuleDefault(result, mod);
33395
+ __setModuleDefault(result, mod2);
33376
33396
  return result;
33377
33397
  };
33378
33398
  }();
@@ -33403,7 +33423,7 @@ var require_pathing = __commonJS({
33403
33423
  return `\\\\.\\pipe\\orion-brain-${key}`;
33404
33424
  }
33405
33425
  const home = deps2.homedir?.() ?? os8.homedir();
33406
- return path13.join(home, ".orion", "run", `brain-${key}.sock`);
33426
+ return path13.posix.join(home, ".orion", "run", `brain-${key}.sock`);
33407
33427
  }
33408
33428
  function isPipePath(socketPath) {
33409
33429
  return socketPath.startsWith("\\\\.\\pipe\\");
@@ -33534,13 +33554,13 @@ var require_settingsFile = __commonJS({
33534
33554
  };
33535
33555
  return ownKeys(o);
33536
33556
  };
33537
- return function(mod) {
33538
- if (mod && mod.__esModule) return mod;
33557
+ return function(mod2) {
33558
+ if (mod2 && mod2.__esModule) return mod2;
33539
33559
  var result = {};
33540
- if (mod != null) {
33541
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
33560
+ if (mod2 != null) {
33561
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
33542
33562
  }
33543
- __setModuleDefault(result, mod);
33563
+ __setModuleDefault(result, mod2);
33544
33564
  return result;
33545
33565
  };
33546
33566
  }();
@@ -33600,13 +33620,13 @@ var require_customProviders = __commonJS({
33600
33620
  };
33601
33621
  return ownKeys(o);
33602
33622
  };
33603
- return function(mod) {
33604
- if (mod && mod.__esModule) return mod;
33623
+ return function(mod2) {
33624
+ if (mod2 && mod2.__esModule) return mod2;
33605
33625
  var result = {};
33606
- if (mod != null) {
33607
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
33626
+ if (mod2 != null) {
33627
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
33608
33628
  }
33609
- __setModuleDefault(result, mod);
33629
+ __setModuleDefault(result, mod2);
33610
33630
  return result;
33611
33631
  };
33612
33632
  }();
@@ -34093,13 +34113,13 @@ var require_customProviderModels = __commonJS({
34093
34113
  };
34094
34114
  return ownKeys(o);
34095
34115
  };
34096
- return function(mod) {
34097
- if (mod && mod.__esModule) return mod;
34116
+ return function(mod2) {
34117
+ if (mod2 && mod2.__esModule) return mod2;
34098
34118
  var result = {};
34099
- if (mod != null) {
34100
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
34119
+ if (mod2 != null) {
34120
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
34101
34121
  }
34102
- __setModuleDefault(result, mod);
34122
+ __setModuleDefault(result, mod2);
34103
34123
  return result;
34104
34124
  };
34105
34125
  }();
@@ -34986,7 +35006,7 @@ var require_cronController = __commonJS({
34986
35006
  const jobs = await this.list(agentId);
34987
35007
  if (jobs.length === 0)
34988
35008
  return "No scheduled jobs.";
34989
- return jobs.map((j2) => `${j2.id} \u2014 ${j2.humanSchedule}${j2.recurring ? " (recurring)" : " (one-shot)"}${j2.durable ? "" : " [session-only]"}: ${truncate3(j2.prompt, 80)}`).join("\n");
35009
+ return jobs.map((j2) => `${j2.id} \u2014 ${j2.humanSchedule}${j2.recurring ? " (recurring)" : " (one-shot)"}${j2.durable ? "" : " [session-only]"}: ${truncate4(j2.prompt, 80)}`).join("\n");
34990
35010
  }
34991
35011
  /** Cancel a job by id, enforcing ownership. A sub-agent (`agentId` set) may
34992
35012
  * only cancel a job it owns; the main agent (undefined) may cancel any.
@@ -35070,7 +35090,7 @@ var require_cronController = __commonJS({
35070
35090
  }
35071
35091
  return runs;
35072
35092
  }
35073
- function truncate3(s, max) {
35093
+ function truncate4(s, max) {
35074
35094
  return s.length <= max ? s : s.slice(0, max - 1) + "\u2026";
35075
35095
  }
35076
35096
  }
@@ -35477,13 +35497,13 @@ var require_agentDefs = __commonJS({
35477
35497
  };
35478
35498
  return ownKeys(o);
35479
35499
  };
35480
- return function(mod) {
35481
- if (mod && mod.__esModule) return mod;
35500
+ return function(mod2) {
35501
+ if (mod2 && mod2.__esModule) return mod2;
35482
35502
  var result = {};
35483
- if (mod != null) {
35484
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
35503
+ if (mod2 != null) {
35504
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
35485
35505
  }
35486
- __setModuleDefault(result, mod);
35506
+ __setModuleDefault(result, mod2);
35487
35507
  return result;
35488
35508
  };
35489
35509
  }();
@@ -35770,6 +35790,7 @@ var require_agentManager = __commonJS({
35770
35790
  "use strict";
35771
35791
  Object.defineProperty(exports2, "__esModule", { value: true });
35772
35792
  exports2.AgentManager = exports2.SUBAGENT_WAKE_PROMPT = exports2.AWAIT_MAX_TIMEOUT_S = exports2.AWAIT_DEFAULT_TIMEOUT_S = exports2.MAX_CONCURRENT_CHILDREN = exports2.describeChildActivity = exports2.buildReportText = void 0;
35793
+ exports2.contextTokens = contextTokens;
35773
35794
  var agentNarration_1 = require_agentNarration();
35774
35795
  Object.defineProperty(exports2, "buildReportText", { enumerable: true, get: function() {
35775
35796
  return agentNarration_1.buildReportText;
@@ -35996,6 +36017,7 @@ var require_agentManager = __commonJS({
35996
36017
  status: "running",
35997
36018
  outputTokens: 0,
35998
36019
  inputTokens: 0,
36020
+ contextTokens: 0,
35999
36021
  costUsd: 0,
36000
36022
  toolUses: 0,
36001
36023
  partialText: "",
@@ -36316,8 +36338,9 @@ When done, reply with your findings \u2014 your FINAL MESSAGE is your report and
36316
36338
  break;
36317
36339
  case "usage_recorded": {
36318
36340
  const usage = ev.data.record?.usage ?? {};
36319
- entry.outputTokens += usage.output_tokens ?? 0;
36320
- entry.inputTokens += usage.input_tokens ?? 0;
36341
+ entry.outputTokens += usageCount(usage, "output_tokens");
36342
+ entry.inputTokens += usageCount(usage, "input_tokens");
36343
+ entry.contextTokens = contextTokens(usage);
36321
36344
  this.lifecycle(entry, "running");
36322
36345
  break;
36323
36346
  }
@@ -36418,6 +36441,7 @@ ${entry.partialText.trim()}` : error;
36418
36441
  success,
36419
36442
  costUsd: entry.costUsd,
36420
36443
  outputTokens: entry.outputTokens,
36444
+ inputTokens: entry.inputTokens,
36421
36445
  ...entry.worktree ? {
36422
36446
  worktree: {
36423
36447
  path: entry.worktree.path,
@@ -36573,7 +36597,10 @@ Worktree kept (it has changes): ${wt.path} on branch ${wt.branch}. Apply or disc
36573
36597
  background: true,
36574
36598
  color: entry.color ?? null,
36575
36599
  parent_agent_id: null,
36576
- tokens: entry.outputTokens,
36600
+ // The row's one number: how full this child's context is. Sibling-turn children are
36601
+ // metered HERE (their `usage_recorded` events land on this manager, never on the parent's
36602
+ // frame), so this is the only place the fleet's context truth is published.
36603
+ context_tokens: entry.contextTokens,
36577
36604
  started_at: entry.startedAt,
36578
36605
  ordinal: entry.ordinal,
36579
36606
  activity: entry.activity.length > 0 ? [...entry.activity] : void 0,
@@ -36584,6 +36611,13 @@ Worktree kept (it has changes): ${wt.path} on branch ${wt.branch}. Apply or disc
36584
36611
  };
36585
36612
  exports2.AgentManager = AgentManager2;
36586
36613
  var PROGRESS_ACK = "(noted \u2014 keep going)";
36614
+ function usageCount(usage, key) {
36615
+ const raw = usage[key];
36616
+ return typeof raw === "number" && Number.isFinite(raw) && raw > 0 ? raw : 0;
36617
+ }
36618
+ function contextTokens(usage) {
36619
+ return usageCount(usage, "input_tokens") + usageCount(usage, "cache_read_tokens") + usageCount(usage, "cache_creation_tokens") + usageCount(usage, "output_tokens");
36620
+ }
36587
36621
  function resolveModelPreference(pref, sessionModel) {
36588
36622
  if (!pref || ["inherit", "default", "fast", ""].includes(pref))
36589
36623
  return sessionModel;
@@ -36982,13 +37016,13 @@ var require_scan = __commonJS({
36982
37016
  };
36983
37017
  return ownKeys(o);
36984
37018
  };
36985
- return function(mod) {
36986
- if (mod && mod.__esModule) return mod;
37019
+ return function(mod2) {
37020
+ if (mod2 && mod2.__esModule) return mod2;
36987
37021
  var result = {};
36988
- if (mod != null) {
36989
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
37022
+ if (mod2 != null) {
37023
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
36990
37024
  }
36991
- __setModuleDefault(result, mod);
37025
+ __setModuleDefault(result, mod2);
36992
37026
  return result;
36993
37027
  };
36994
37028
  }();
@@ -37290,13 +37324,13 @@ var require_validate = __commonJS({
37290
37324
  };
37291
37325
  return ownKeys(o);
37292
37326
  };
37293
- return function(mod) {
37294
- if (mod && mod.__esModule) return mod;
37327
+ return function(mod2) {
37328
+ if (mod2 && mod2.__esModule) return mod2;
37295
37329
  var result = {};
37296
- if (mod != null) {
37297
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
37330
+ if (mod2 != null) {
37331
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
37298
37332
  }
37299
- __setModuleDefault(result, mod);
37333
+ __setModuleDefault(result, mod2);
37300
37334
  return result;
37301
37335
  };
37302
37336
  }();
@@ -37625,13 +37659,13 @@ var require_manifest = __commonJS({
37625
37659
  };
37626
37660
  return ownKeys(o);
37627
37661
  };
37628
- return function(mod) {
37629
- if (mod && mod.__esModule) return mod;
37662
+ return function(mod2) {
37663
+ if (mod2 && mod2.__esModule) return mod2;
37630
37664
  var result = {};
37631
- if (mod != null) {
37632
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
37665
+ if (mod2 != null) {
37666
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
37633
37667
  }
37634
- __setModuleDefault(result, mod);
37668
+ __setModuleDefault(result, mod2);
37635
37669
  return result;
37636
37670
  };
37637
37671
  }();
@@ -37853,13 +37887,13 @@ var require_applyPlan = __commonJS({
37853
37887
  };
37854
37888
  return ownKeys(o);
37855
37889
  };
37856
- return function(mod) {
37857
- if (mod && mod.__esModule) return mod;
37890
+ return function(mod2) {
37891
+ if (mod2 && mod2.__esModule) return mod2;
37858
37892
  var result = {};
37859
- if (mod != null) {
37860
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
37893
+ if (mod2 != null) {
37894
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
37861
37895
  }
37862
- __setModuleDefault(result, mod);
37896
+ __setModuleDefault(result, mod2);
37863
37897
  return result;
37864
37898
  };
37865
37899
  }();
@@ -38191,12 +38225,50 @@ var require_migration = __commonJS({
38191
38225
  var require_gitExec = __commonJS({
38192
38226
  "../packages/orion-client-core/dist/gitExec.js"(exports2) {
38193
38227
  "use strict";
38228
+ var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m2, k, k2) {
38229
+ if (k2 === void 0) k2 = k;
38230
+ var desc = Object.getOwnPropertyDescriptor(m2, k);
38231
+ if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
38232
+ desc = { enumerable: true, get: function() {
38233
+ return m2[k];
38234
+ } };
38235
+ }
38236
+ Object.defineProperty(o, k2, desc);
38237
+ } : function(o, m2, k, k2) {
38238
+ if (k2 === void 0) k2 = k;
38239
+ o[k2] = m2[k];
38240
+ });
38241
+ var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v2) {
38242
+ Object.defineProperty(o, "default", { enumerable: true, value: v2 });
38243
+ } : function(o, v2) {
38244
+ o["default"] = v2;
38245
+ });
38246
+ var __importStar = exports2 && exports2.__importStar || /* @__PURE__ */ function() {
38247
+ var ownKeys = function(o) {
38248
+ ownKeys = Object.getOwnPropertyNames || function(o2) {
38249
+ var ar = [];
38250
+ for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k;
38251
+ return ar;
38252
+ };
38253
+ return ownKeys(o);
38254
+ };
38255
+ return function(mod2) {
38256
+ if (mod2 && mod2.__esModule) return mod2;
38257
+ var result = {};
38258
+ if (mod2 != null) {
38259
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
38260
+ }
38261
+ __setModuleDefault(result, mod2);
38262
+ return result;
38263
+ };
38264
+ }();
38194
38265
  Object.defineProperty(exports2, "__esModule", { value: true });
38195
38266
  exports2.GIT_TIMEOUT_MS = void 0;
38196
38267
  exports2.execGit = execGit;
38197
38268
  exports2.gitToplevel = gitToplevel;
38198
38269
  exports2.getGitInfo = getGitInfo2;
38199
38270
  var child_process_1 = __require("child_process");
38271
+ var path13 = __importStar(__require("path"));
38200
38272
  exports2.GIT_TIMEOUT_MS = 1e4;
38201
38273
  function execGit(args2, cwd, maxBytes = 16 * 1024 * 1024) {
38202
38274
  return new Promise((resolve5) => {
@@ -38238,7 +38310,8 @@ var require_gitExec = __commonJS({
38238
38310
  }
38239
38311
  async function gitToplevel(cwd) {
38240
38312
  const r2 = await execGit(["rev-parse", "--show-toplevel"], cwd);
38241
- return r2.code === 0 ? r2.stdout.trim() || null : null;
38313
+ const out2 = r2.code === 0 ? r2.stdout.trim() : "";
38314
+ return out2 ? path13.resolve(out2) : null;
38242
38315
  }
38243
38316
  async function getGitInfo2(cwd) {
38244
38317
  const gitRoot = await gitToplevel(cwd);
@@ -38284,13 +38357,13 @@ var require_presenceRecord = __commonJS({
38284
38357
  };
38285
38358
  return ownKeys(o);
38286
38359
  };
38287
- return function(mod) {
38288
- if (mod && mod.__esModule) return mod;
38360
+ return function(mod2) {
38361
+ if (mod2 && mod2.__esModule) return mod2;
38289
38362
  var result = {};
38290
- if (mod != null) {
38291
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
38363
+ if (mod2 != null) {
38364
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
38292
38365
  }
38293
- __setModuleDefault(result, mod);
38366
+ __setModuleDefault(result, mod2);
38294
38367
  return result;
38295
38368
  };
38296
38369
  }();
@@ -38488,13 +38561,13 @@ var require_presenceStore = __commonJS({
38488
38561
  };
38489
38562
  return ownKeys(o);
38490
38563
  };
38491
- return function(mod) {
38492
- if (mod && mod.__esModule) return mod;
38564
+ return function(mod2) {
38565
+ if (mod2 && mod2.__esModule) return mod2;
38493
38566
  var result = {};
38494
- if (mod != null) {
38495
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
38567
+ if (mod2 != null) {
38568
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
38496
38569
  }
38497
- __setModuleDefault(result, mod);
38570
+ __setModuleDefault(result, mod2);
38498
38571
  return result;
38499
38572
  };
38500
38573
  }();
@@ -39047,13 +39120,13 @@ var require_claims = __commonJS({
39047
39120
  };
39048
39121
  return ownKeys(o);
39049
39122
  };
39050
- return function(mod) {
39051
- if (mod && mod.__esModule) return mod;
39123
+ return function(mod2) {
39124
+ if (mod2 && mod2.__esModule) return mod2;
39052
39125
  var result = {};
39053
- if (mod != null) {
39054
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
39126
+ if (mod2 != null) {
39127
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
39055
39128
  }
39056
- __setModuleDefault(result, mod);
39129
+ __setModuleDefault(result, mod2);
39057
39130
  return result;
39058
39131
  };
39059
39132
  }();
@@ -40009,13 +40082,13 @@ var require_rcSettings = __commonJS({
40009
40082
  };
40010
40083
  return ownKeys(o);
40011
40084
  };
40012
- return function(mod) {
40013
- if (mod && mod.__esModule) return mod;
40085
+ return function(mod2) {
40086
+ if (mod2 && mod2.__esModule) return mod2;
40014
40087
  var result = {};
40015
- if (mod != null) {
40016
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
40088
+ if (mod2 != null) {
40089
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
40017
40090
  }
40018
- __setModuleDefault(result, mod);
40091
+ __setModuleDefault(result, mod2);
40019
40092
  return result;
40020
40093
  };
40021
40094
  }();
@@ -41001,13 +41074,13 @@ var require_fileHistory = __commonJS({
41001
41074
  };
41002
41075
  return ownKeys(o);
41003
41076
  };
41004
- return function(mod) {
41005
- if (mod && mod.__esModule) return mod;
41077
+ return function(mod2) {
41078
+ if (mod2 && mod2.__esModule) return mod2;
41006
41079
  var result = {};
41007
- if (mod != null) {
41008
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
41080
+ if (mod2 != null) {
41081
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
41009
41082
  }
41010
- __setModuleDefault(result, mod);
41083
+ __setModuleDefault(result, mod2);
41011
41084
  return result;
41012
41085
  };
41013
41086
  }();
@@ -41308,13 +41381,13 @@ var require_fileCodec = __commonJS({
41308
41381
  };
41309
41382
  return ownKeys(o);
41310
41383
  };
41311
- return function(mod) {
41312
- if (mod && mod.__esModule) return mod;
41384
+ return function(mod2) {
41385
+ if (mod2 && mod2.__esModule) return mod2;
41313
41386
  var result = {};
41314
- if (mod != null) {
41315
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
41387
+ if (mod2 != null) {
41388
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
41316
41389
  }
41317
- __setModuleDefault(result, mod);
41390
+ __setModuleDefault(result, mod2);
41318
41391
  return result;
41319
41392
  };
41320
41393
  }();
@@ -41688,13 +41761,13 @@ var require_bashFileChanges = __commonJS({
41688
41761
  };
41689
41762
  return ownKeys(o);
41690
41763
  };
41691
- return function(mod) {
41692
- if (mod && mod.__esModule) return mod;
41764
+ return function(mod2) {
41765
+ if (mod2 && mod2.__esModule) return mod2;
41693
41766
  var result = {};
41694
- if (mod != null) {
41695
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
41767
+ if (mod2 != null) {
41768
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
41696
41769
  }
41697
- __setModuleDefault(result, mod);
41770
+ __setModuleDefault(result, mod2);
41698
41771
  return result;
41699
41772
  };
41700
41773
  }();
@@ -41966,13 +42039,13 @@ var require_multimodalRead = __commonJS({
41966
42039
  };
41967
42040
  return ownKeys(o);
41968
42041
  };
41969
- return function(mod) {
41970
- if (mod && mod.__esModule) return mod;
42042
+ return function(mod2) {
42043
+ if (mod2 && mod2.__esModule) return mod2;
41971
42044
  var result = {};
41972
- if (mod != null) {
41973
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
42045
+ if (mod2 != null) {
42046
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
41974
42047
  }
41975
- __setModuleDefault(result, mod);
42048
+ __setModuleDefault(result, mod2);
41976
42049
  return result;
41977
42050
  };
41978
42051
  }();
@@ -42239,13 +42312,13 @@ var require_types3 = __commonJS({
42239
42312
  };
42240
42313
  return ownKeys(o);
42241
42314
  };
42242
- return function(mod) {
42243
- if (mod && mod.__esModule) return mod;
42315
+ return function(mod2) {
42316
+ if (mod2 && mod2.__esModule) return mod2;
42244
42317
  var result = {};
42245
- if (mod != null) {
42246
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
42318
+ if (mod2 != null) {
42319
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
42247
42320
  }
42248
- __setModuleDefault(result, mod);
42321
+ __setModuleDefault(result, mod2);
42249
42322
  return result;
42250
42323
  };
42251
42324
  }();
@@ -42561,13 +42634,13 @@ var require_frames2 = __commonJS({
42561
42634
  };
42562
42635
  return ownKeys(o);
42563
42636
  };
42564
- return function(mod) {
42565
- if (mod && mod.__esModule) return mod;
42637
+ return function(mod2) {
42638
+ if (mod2 && mod2.__esModule) return mod2;
42566
42639
  var result = {};
42567
- if (mod != null) {
42568
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
42640
+ if (mod2 != null) {
42641
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
42569
42642
  }
42570
- __setModuleDefault(result, mod);
42643
+ __setModuleDefault(result, mod2);
42571
42644
  return result;
42572
42645
  };
42573
42646
  }();
@@ -42668,13 +42741,13 @@ var require_transcriptSource = __commonJS({
42668
42741
  };
42669
42742
  return ownKeys(o);
42670
42743
  };
42671
- return function(mod) {
42672
- if (mod && mod.__esModule) return mod;
42744
+ return function(mod2) {
42745
+ if (mod2 && mod2.__esModule) return mod2;
42673
42746
  var result = {};
42674
- if (mod != null) {
42675
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
42747
+ if (mod2 != null) {
42748
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
42676
42749
  }
42677
- __setModuleDefault(result, mod);
42750
+ __setModuleDefault(result, mod2);
42678
42751
  return result;
42679
42752
  };
42680
42753
  }();
@@ -42826,13 +42899,13 @@ var require_exec = __commonJS({
42826
42899
  };
42827
42900
  return ownKeys(o);
42828
42901
  };
42829
- return function(mod) {
42830
- if (mod && mod.__esModule) return mod;
42902
+ return function(mod2) {
42903
+ if (mod2 && mod2.__esModule) return mod2;
42831
42904
  var result = {};
42832
- if (mod != null) {
42833
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
42905
+ if (mod2 != null) {
42906
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
42834
42907
  }
42835
- __setModuleDefault(result, mod);
42908
+ __setModuleDefault(result, mod2);
42836
42909
  return result;
42837
42910
  };
42838
42911
  }();
@@ -42939,13 +43012,13 @@ var require_watchVideo = __commonJS({
42939
43012
  };
42940
43013
  return ownKeys(o);
42941
43014
  };
42942
- return function(mod) {
42943
- if (mod && mod.__esModule) return mod;
43015
+ return function(mod2) {
43016
+ if (mod2 && mod2.__esModule) return mod2;
42944
43017
  var result = {};
42945
- if (mod != null) {
42946
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
43018
+ if (mod2 != null) {
43019
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
42947
43020
  }
42948
- __setModuleDefault(result, mod);
43021
+ __setModuleDefault(result, mod2);
42949
43022
  return result;
42950
43023
  };
42951
43024
  }();
@@ -45179,13 +45252,13 @@ var require_metricsStorage = __commonJS({
45179
45252
  };
45180
45253
  return ownKeys(o);
45181
45254
  };
45182
- return function(mod) {
45183
- if (mod && mod.__esModule) return mod;
45255
+ return function(mod2) {
45256
+ if (mod2 && mod2.__esModule) return mod2;
45184
45257
  var result = {};
45185
- if (mod != null) {
45186
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
45258
+ if (mod2 != null) {
45259
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
45187
45260
  }
45188
- __setModuleDefault(result, mod);
45261
+ __setModuleDefault(result, mod2);
45189
45262
  return result;
45190
45263
  };
45191
45264
  }();
@@ -49720,13 +49793,13 @@ var require_workerPool = __commonJS({
49720
49793
  };
49721
49794
  return ownKeys(o);
49722
49795
  };
49723
- return function(mod) {
49724
- if (mod && mod.__esModule) return mod;
49796
+ return function(mod2) {
49797
+ if (mod2 && mod2.__esModule) return mod2;
49725
49798
  var result = {};
49726
- if (mod != null) {
49727
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
49799
+ if (mod2 != null) {
49800
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
49728
49801
  }
49729
- __setModuleDefault(result, mod);
49802
+ __setModuleDefault(result, mod2);
49730
49803
  return result;
49731
49804
  };
49732
49805
  }();
@@ -51311,13 +51384,13 @@ var require_loader = __commonJS({
51311
51384
  };
51312
51385
  return ownKeys(o);
51313
51386
  };
51314
- return function(mod) {
51315
- if (mod && mod.__esModule) return mod;
51387
+ return function(mod2) {
51388
+ if (mod2 && mod2.__esModule) return mod2;
51316
51389
  var result = {};
51317
- if (mod != null) {
51318
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
51390
+ if (mod2 != null) {
51391
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
51319
51392
  }
51320
- __setModuleDefault(result, mod);
51393
+ __setModuleDefault(result, mod2);
51321
51394
  return result;
51322
51395
  };
51323
51396
  }();
@@ -51401,13 +51474,13 @@ var require_loader = __commonJS({
51401
51474
  if (!fs14.existsSync(runtimeWasm)) {
51402
51475
  return null;
51403
51476
  }
51404
- let mod;
51477
+ let mod2;
51405
51478
  try {
51406
- mod = require_tree_sitter();
51479
+ mod2 = require_tree_sitter();
51407
51480
  } catch {
51408
51481
  return null;
51409
51482
  }
51410
- const Parser3 = mod.Parser ?? mod.default ?? mod;
51483
+ const Parser3 = mod2.Parser ?? mod2.default ?? mod2;
51411
51484
  try {
51412
51485
  await Parser3.init({
51413
51486
  locateFile: (name2) => `${grammarDir}/${name2}`
@@ -51524,13 +51597,13 @@ var require_indexDiskCache = __commonJS({
51524
51597
  };
51525
51598
  return ownKeys(o);
51526
51599
  };
51527
- return function(mod) {
51528
- if (mod && mod.__esModule) return mod;
51600
+ return function(mod2) {
51601
+ if (mod2 && mod2.__esModule) return mod2;
51529
51602
  var result = {};
51530
- if (mod != null) {
51531
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
51603
+ if (mod2 != null) {
51604
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
51532
51605
  }
51533
- __setModuleDefault(result, mod);
51606
+ __setModuleDefault(result, mod2);
51534
51607
  return result;
51535
51608
  };
51536
51609
  }();
@@ -54103,13 +54176,13 @@ var require_nodeFileSource = __commonJS({
54103
54176
  };
54104
54177
  return ownKeys(o);
54105
54178
  };
54106
- return function(mod) {
54107
- if (mod && mod.__esModule) return mod;
54179
+ return function(mod2) {
54180
+ if (mod2 && mod2.__esModule) return mod2;
54108
54181
  var result = {};
54109
- if (mod != null) {
54110
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
54182
+ if (mod2 != null) {
54183
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
54111
54184
  }
54112
- __setModuleDefault(result, mod);
54185
+ __setModuleDefault(result, mod2);
54113
54186
  return result;
54114
54187
  };
54115
54188
  }();
@@ -54341,13 +54414,13 @@ var require_nodeShims = __commonJS({
54341
54414
  };
54342
54415
  return ownKeys(o);
54343
54416
  };
54344
- return function(mod) {
54345
- if (mod && mod.__esModule) return mod;
54417
+ return function(mod2) {
54418
+ if (mod2 && mod2.__esModule) return mod2;
54346
54419
  var result = {};
54347
- if (mod != null) {
54348
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
54420
+ if (mod2 != null) {
54421
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
54349
54422
  }
54350
- __setModuleDefault(result, mod);
54423
+ __setModuleDefault(result, mod2);
54351
54424
  return result;
54352
54425
  };
54353
54426
  }();
@@ -54505,13 +54578,13 @@ var require_bashSandbox = __commonJS({
54505
54578
  };
54506
54579
  return ownKeys(o);
54507
54580
  };
54508
- return function(mod) {
54509
- if (mod && mod.__esModule) return mod;
54581
+ return function(mod2) {
54582
+ if (mod2 && mod2.__esModule) return mod2;
54510
54583
  var result = {};
54511
- if (mod != null) {
54512
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
54584
+ if (mod2 != null) {
54585
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
54513
54586
  }
54514
- __setModuleDefault(result, mod);
54587
+ __setModuleDefault(result, mod2);
54515
54588
  return result;
54516
54589
  };
54517
54590
  }();
@@ -54664,13 +54737,13 @@ var require_workingDirectories = __commonJS({
54664
54737
  };
54665
54738
  return ownKeys(o);
54666
54739
  };
54667
- return function(mod) {
54668
- if (mod && mod.__esModule) return mod;
54740
+ return function(mod2) {
54741
+ if (mod2 && mod2.__esModule) return mod2;
54669
54742
  var result = {};
54670
- if (mod != null) {
54671
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
54743
+ if (mod2 != null) {
54744
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
54672
54745
  }
54673
- __setModuleDefault(result, mod);
54746
+ __setModuleDefault(result, mod2);
54674
54747
  return result;
54675
54748
  };
54676
54749
  }();
@@ -54883,6 +54956,9 @@ var require_ruleMatcher = __commonJS({
54883
54956
  }
54884
54957
  return out2;
54885
54958
  }
54959
+ function rootAsPathSpelling(root2) {
54960
+ return root2.replace(/\\/g, "/").replace(/\/+$/, "");
54961
+ }
54886
54962
  function compilePathPattern(pattern, roots) {
54887
54963
  let pat = pattern;
54888
54964
  while (pat.startsWith("./"))
@@ -54892,10 +54968,10 @@ var require_ruleMatcher = __commonJS({
54892
54968
  rootPrefix = "";
54893
54969
  pat = pat.slice(2);
54894
54970
  } else if (pat === "~" || pat.startsWith("~/")) {
54895
- rootPrefix = roots.home.replace(/\/+$/, "");
54971
+ rootPrefix = rootAsPathSpelling(roots.home);
54896
54972
  pat = pat === "~" ? "" : pat.slice(2);
54897
54973
  } else if (pat.startsWith("/")) {
54898
- rootPrefix = roots.base.replace(/\/+$/, "");
54974
+ rootPrefix = rootAsPathSpelling(roots.base);
54899
54975
  pat = pat.slice(1);
54900
54976
  } else {
54901
54977
  rootPrefix = null;
@@ -55031,13 +55107,13 @@ var require_settingsStore = __commonJS({
55031
55107
  };
55032
55108
  return ownKeys(o);
55033
55109
  };
55034
- return function(mod) {
55035
- if (mod && mod.__esModule) return mod;
55110
+ return function(mod2) {
55111
+ if (mod2 && mod2.__esModule) return mod2;
55036
55112
  var result = {};
55037
- if (mod != null) {
55038
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
55113
+ if (mod2 != null) {
55114
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
55039
55115
  }
55040
- __setModuleDefault(result, mod);
55116
+ __setModuleDefault(result, mod2);
55041
55117
  return result;
55042
55118
  };
55043
55119
  }();
@@ -55860,13 +55936,13 @@ var require_browserController = __commonJS({
55860
55936
  };
55861
55937
  return ownKeys(o);
55862
55938
  };
55863
- return function(mod) {
55864
- if (mod && mod.__esModule) return mod;
55939
+ return function(mod2) {
55940
+ if (mod2 && mod2.__esModule) return mod2;
55865
55941
  var result = {};
55866
- if (mod != null) {
55867
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
55942
+ if (mod2 != null) {
55943
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
55868
55944
  }
55869
- __setModuleDefault(result, mod);
55945
+ __setModuleDefault(result, mod2);
55870
55946
  return result;
55871
55947
  };
55872
55948
  }();
@@ -56271,13 +56347,13 @@ var require_toolExecutor = __commonJS({
56271
56347
  };
56272
56348
  return ownKeys(o);
56273
56349
  };
56274
- return function(mod) {
56275
- if (mod && mod.__esModule) return mod;
56350
+ return function(mod2) {
56351
+ if (mod2 && mod2.__esModule) return mod2;
56276
56352
  var result = {};
56277
- if (mod != null) {
56278
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
56353
+ if (mod2 != null) {
56354
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
56279
56355
  }
56280
- __setModuleDefault(result, mod);
56356
+ __setModuleDefault(result, mod2);
56281
56357
  return result;
56282
56358
  };
56283
56359
  }();
@@ -58440,13 +58516,13 @@ var require_processWorkspaceIndex = __commonJS({
58440
58516
  };
58441
58517
  return ownKeys(o);
58442
58518
  };
58443
- return function(mod) {
58444
- if (mod && mod.__esModule) return mod;
58519
+ return function(mod2) {
58520
+ if (mod2 && mod2.__esModule) return mod2;
58445
58521
  var result = {};
58446
- if (mod != null) {
58447
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
58522
+ if (mod2 != null) {
58523
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
58448
58524
  }
58449
- __setModuleDefault(result, mod);
58525
+ __setModuleDefault(result, mod2);
58450
58526
  return result;
58451
58527
  };
58452
58528
  }();
@@ -59343,13 +59419,13 @@ var require_loopbackReceiver = __commonJS({
59343
59419
  };
59344
59420
  return ownKeys(o);
59345
59421
  };
59346
- return function(mod) {
59347
- if (mod && mod.__esModule) return mod;
59422
+ return function(mod2) {
59423
+ if (mod2 && mod2.__esModule) return mod2;
59348
59424
  var result = {};
59349
- if (mod != null) {
59350
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
59425
+ if (mod2 != null) {
59426
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
59351
59427
  }
59352
- __setModuleDefault(result, mod);
59428
+ __setModuleDefault(result, mod2);
59353
59429
  return result;
59354
59430
  };
59355
59431
  }();
@@ -59595,13 +59671,13 @@ var require_encryptedFileStore = __commonJS({
59595
59671
  };
59596
59672
  return ownKeys(o);
59597
59673
  };
59598
- return function(mod) {
59599
- if (mod && mod.__esModule) return mod;
59674
+ return function(mod2) {
59675
+ if (mod2 && mod2.__esModule) return mod2;
59600
59676
  var result = {};
59601
- if (mod != null) {
59602
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
59677
+ if (mod2 != null) {
59678
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
59603
59679
  }
59604
- __setModuleDefault(result, mod);
59680
+ __setModuleDefault(result, mod2);
59605
59681
  return result;
59606
59682
  };
59607
59683
  }();
@@ -63039,13 +63115,13 @@ var require_loopDecl = __commonJS({
63039
63115
  };
63040
63116
  return ownKeys(o);
63041
63117
  };
63042
- return function(mod) {
63043
- if (mod && mod.__esModule) return mod;
63118
+ return function(mod2) {
63119
+ if (mod2 && mod2.__esModule) return mod2;
63044
63120
  var result = {};
63045
- if (mod != null) {
63046
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
63121
+ if (mod2 != null) {
63122
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
63047
63123
  }
63048
- __setModuleDefault(result, mod);
63124
+ __setModuleDefault(result, mod2);
63049
63125
  return result;
63050
63126
  };
63051
63127
  }();
@@ -64751,13 +64827,13 @@ var require_socketClient = __commonJS({
64751
64827
  };
64752
64828
  return ownKeys(o);
64753
64829
  };
64754
- return function(mod) {
64755
- if (mod && mod.__esModule) return mod;
64830
+ return function(mod2) {
64831
+ if (mod2 && mod2.__esModule) return mod2;
64756
64832
  var result = {};
64757
- if (mod != null) {
64758
- for (var k = ownKeys(mod), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod, k[i2]);
64833
+ if (mod2 != null) {
64834
+ for (var k = ownKeys(mod2), i2 = 0; i2 < k.length; i2++) if (k[i2] !== "default") __createBinding(result, mod2, k[i2]);
64759
64835
  }
64760
- __setModuleDefault(result, mod);
64836
+ __setModuleDefault(result, mod2);
64761
64837
  return result;
64762
64838
  };
64763
64839
  }();
@@ -65736,6 +65812,40 @@ var require_modelLabel = __commonJS({
65736
65812
  }
65737
65813
  });
65738
65814
 
65815
+ // ../packages/orion-client-ui-core/dist/subagentRow.js
65816
+ var require_subagentRow = __commonJS({
65817
+ "../packages/orion-client-ui-core/dist/subagentRow.js"(exports2) {
65818
+ "use strict";
65819
+ Object.defineProperty(exports2, "__esModule", { value: true });
65820
+ exports2.formatContextTokens = formatContextTokens;
65821
+ exports2.subagentTokenLabel = subagentTokenLabel2;
65822
+ exports2.subagentRowMeta = subagentRowMeta2;
65823
+ function formatContextTokens(n) {
65824
+ if (typeof n !== "number" || !Number.isFinite(n) || n <= 0)
65825
+ return "";
65826
+ if (n < 1e3)
65827
+ return String(Math.round(n));
65828
+ if (n < 1e6)
65829
+ return `${(n / 1e3).toFixed(1).replace(/\.0$/, "")}k`;
65830
+ return `${(n / 1e6).toFixed(1).replace(/\.0$/, "")}M`;
65831
+ }
65832
+ function subagentTokenLabel2(contextTokens) {
65833
+ const count = formatContextTokens(contextTokens);
65834
+ return count ? `${count} tokens` : "";
65835
+ }
65836
+ function subagentRowMeta2(agent) {
65837
+ const parts2 = [];
65838
+ const tools = typeof agent.toolCount === "number" && Number.isFinite(agent.toolCount) && agent.toolCount > 0 ? agent.toolCount : 0;
65839
+ if (tools > 0)
65840
+ parts2.push(`${tools} tool ${tools === 1 ? "use" : "uses"}`);
65841
+ const tokens = subagentTokenLabel2(agent.contextTokens);
65842
+ if (tokens)
65843
+ parts2.push(tokens);
65844
+ return parts2.join(" \xB7 ");
65845
+ }
65846
+ }
65847
+ });
65848
+
65739
65849
  // ../packages/orion-client-ui-core/dist/index.js
65740
65850
  var require_dist2 = __commonJS({
65741
65851
  "../packages/orion-client-ui-core/dist/index.js"(exports2) {
@@ -65764,6 +65874,7 @@ var require_dist2 = __commonJS({
65764
65874
  __exportStar(require_askCard(), exports2);
65765
65875
  __exportStar(require_planCard(), exports2);
65766
65876
  __exportStar(require_modelLabel(), exports2);
65877
+ __exportStar(require_subagentRow(), exports2);
65767
65878
  var client_core_1 = require_dist();
65768
65879
  Object.defineProperty(exports2, "parseTrust", { enumerable: true, get: function() {
65769
65880
  return client_core_1.parseTrust;
@@ -68144,8 +68255,8 @@ var Node2 = class {
68144
68255
  this.style.flexBasis = AUTO_VALUE;
68145
68256
  this.markDirty();
68146
68257
  }
68147
- setFlexWrap(wrap) {
68148
- this.style.flexWrap = wrap;
68258
+ setFlexWrap(wrap2) {
68259
+ this.style.flexWrap = wrap2;
68149
68260
  this.markDirty();
68150
68261
  }
68151
68262
  // -- Style setters: alignment
@@ -69599,13 +69710,13 @@ var YogaLayoutNode = class _YogaLayoutNode {
69599
69710
  setFlexBasisPercent(value) {
69600
69711
  this.yoga.setFlexBasisPercent(value);
69601
69712
  }
69602
- setFlexWrap(wrap) {
69713
+ setFlexWrap(wrap2) {
69603
69714
  const map = {
69604
69715
  nowrap: Wrap.NoWrap,
69605
69716
  wrap: Wrap.Wrap,
69606
69717
  "wrap-reverse": Wrap.WrapReverse
69607
69718
  };
69608
- this.yoga.setFlexWrap(map[wrap]);
69719
+ this.yoga.setFlexWrap(map[wrap2]);
69609
69720
  }
69610
69721
  setAlignItems(align) {
69611
69722
  const map = {
@@ -72431,7 +72542,7 @@ function Text(t0) {
72431
72542
  const underline = t2 === void 0 ? false : t2;
72432
72543
  const strikethrough = t3 === void 0 ? false : t3;
72433
72544
  const inverse = t4 === void 0 ? false : t4;
72434
- const wrap = t5 === void 0 ? "wrap" : t5;
72545
+ const wrap2 = t5 === void 0 ? "wrap" : t5;
72435
72546
  if (children === void 0 || children === null) {
72436
72547
  return null;
72437
72548
  }
@@ -72540,7 +72651,7 @@ function Text(t0) {
72540
72651
  t14 = $2[24];
72541
72652
  }
72542
72653
  const textStyles = t14;
72543
- const t15 = memoizedStylesForWrap[wrap];
72654
+ const t15 = memoizedStylesForWrap[wrap2];
72544
72655
  let t16;
72545
72656
  if ($2[25] !== children || $2[26] !== t15 || $2[27] !== textStyles) {
72546
72657
  t16 = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("ink-text", { style: t15, textStyles, children });
@@ -81635,8 +81746,8 @@ var darkTheme = {
81635
81746
  userBg: "#4a4a4a",
81636
81747
  assistant: "#b496f2",
81637
81748
  thinking: "#808080",
81638
- // Tool activity reads as PRIMARY text (white): the "» name(args)" header —
81639
- // shell commands included ("» bash(command)") — is what the agent is doing.
81749
+ // Tool activity reads as PRIMARY text (white): the rail-marked "name(args)"
81750
+ // header — shell commands included ("bash(command)") — is what the agent is doing.
81640
81751
  // Only the secondary affordance layer stays gray — collapsed summaries, ⎿
81641
81752
  // result previews, and the (ctrl+o to reveal) hints, which render via `dim`.
81642
81753
  toolName: "#ffffff",
@@ -81647,7 +81758,7 @@ var darkTheme = {
81647
81758
  warning: "ansi:yellow",
81648
81759
  info: "ansi:blue",
81649
81760
  dim: "#808080",
81650
- // The chat's rail markers ("»" down the left edge) read as PRIMARY text, like
81761
+ // The chat's rail markers (the dots down the left edge) read as PRIMARY text, like
81651
81762
  // toolName above — the rail carries STATE, not brand: a settled tool's marker
81652
81763
  // is repainted green/red by outcome (ToolLogLine/TerminalCard) and a running
81653
81764
  // tool's marker breathes (runningMarkerColorKey below). Magenta stays on the
@@ -81755,15 +81866,16 @@ function getTheme(name2) {
81755
81866
  function themeNames() {
81756
81867
  return Object.keys(THEMES);
81757
81868
  }
81869
+ var rail = process.platform === "darwin" ? "\u23FA" : "\u25CF";
81758
81870
  var glyphs = {
81759
81871
  user: "\u203A",
81760
- assistant: "\xBB",
81761
- tool: "\xBB",
81872
+ assistant: rail,
81873
+ tool: rail,
81762
81874
  /** Sub-agent rows use the SAME rail marker as the agent's own lines: a child's work is the
81763
81875
  * agent's work, just delegated. This was a hardcoded "○" in SubAgentCard, which put those
81764
81876
  * rows outside the vocabulary — and outside the rail's breathing animation — by accident
81765
81877
  * rather than by decision. */
81766
- subagent: "\xBB",
81878
+ subagent: rail,
81767
81879
  toolResult: "\u23BF",
81768
81880
  success: "\u2713",
81769
81881
  error: "\u2717",
@@ -81805,7 +81917,7 @@ function ThemedText({
81805
81917
  bold,
81806
81918
  italic,
81807
81919
  underline,
81808
- wrap,
81920
+ wrap: wrap2,
81809
81921
  children
81810
81922
  }) {
81811
81923
  const theme = useTheme();
@@ -81817,7 +81929,7 @@ function ThemedText({
81817
81929
  bold,
81818
81930
  italic,
81819
81931
  underline,
81820
- wrap,
81932
+ wrap: wrap2,
81821
81933
  children
81822
81934
  }
81823
81935
  );
@@ -85870,10 +85982,10 @@ var RICH_CARD_TOOLS = /* @__PURE__ */ new Set([
85870
85982
  "multi_edit",
85871
85983
  "update_plan",
85872
85984
  // exit_plan_mode is represented by the plan card + the approval prompt, so its
85873
- // raw "» exit_plan_mode(plan=…)" log line (truncated plan arg) is suppressed.
85985
+ // raw rail-marked "exit_plan_mode(plan=…)" log line (truncated plan arg) is suppressed.
85874
85986
  "exit_plan_mode",
85875
85987
  // ask_user is represented by the question card, which shows the question and every
85876
- // choice verbatim. A "» ask_user(questions=…)" line above it would dump the same JSON
85988
+ // choice verbatim. A rail-marked "ask_user(questions=…)" line above it would dump the same JSON
85877
85989
  // the card renders properly — and would linger in the transcript after the card is gone,
85878
85990
  // reading as a question the user was never actually asked.
85879
85991
  "ask_user",
@@ -86015,7 +86127,10 @@ function renderLane(transcript, app, ev) {
86015
86127
  agentType: String(d2.agent_type ?? ev.agent_type ?? prev?.agentType ?? "agent"),
86016
86128
  phase,
86017
86129
  brief: String(d2.brief ?? prev?.brief ?? ""),
86018
- tokens: typeof d2.tokens === "number" ? d2.tokens : prev?.tokens,
86130
+ // The row's context level. A tick that omits it keeps the row's prior value rather
86131
+ // than zeroing it — a settle carries no usage, and blanking the meter at the exact
86132
+ // moment the user reads the finished row would erase what it just showed.
86133
+ contextTokens: typeof d2.context_tokens === "number" ? d2.context_tokens : prev?.contextTokens,
86019
86134
  toolCount: typeof d2.tool_count === "number" ? d2.tool_count : prev?.toolCount,
86020
86135
  ordinal: typeof d2.ordinal === "number" ? d2.ordinal : prev?.ordinal,
86021
86136
  activity: Array.isArray(d2.activity) ? d2.activity.filter((a) => typeof a === "string") : prev?.activity,
@@ -86172,6 +86287,13 @@ function renderLane(transcript, app, ev) {
86172
86287
  }
86173
86288
  }
86174
86289
 
86290
+ // src/events/sessionStream.ts
86291
+ var OUT_OF_BAND_EVENTS = /* @__PURE__ */ new Set(["file_edited_by_other_session"]);
86292
+ function isOutOfBandEvent(event) {
86293
+ const kind = event?.event;
86294
+ return typeof kind === "string" && OUT_OF_BAND_EVENTS.has(kind);
86295
+ }
86296
+
86175
86297
  // src/state/steerLifecycle.ts
86176
86298
  var import_client_core20 = __toESM(require_dist(), 1);
86177
86299
  function drainSteersForSegment(app, transcript) {
@@ -86608,7 +86730,7 @@ var WorkPlanApprovalBridge = class {
86608
86730
  };
86609
86731
 
86610
86732
  // src/main.tsx
86611
- var import_client_ui_core8 = __toESM(require_dist2(), 1);
86733
+ var import_client_ui_core10 = __toESM(require_dist2(), 1);
86612
86734
 
86613
86735
  // src/components/layout/Transcript.tsx
86614
86736
  var import_react27 = __toESM(require_react(), 1);
@@ -101757,11 +101879,11 @@ function gradientAt(t) {
101757
101879
  }
101758
101880
  function GradientText({
101759
101881
  text,
101760
- wrap
101882
+ wrap: wrap2
101761
101883
  }) {
101762
101884
  const chars = [...text];
101763
101885
  const last = Math.max(1, chars.length - 1);
101764
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text2, { wrap, children: chars.map((ch, i2) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text2, { color: gradientAt(i2 / last), children: ch }, i2)) });
101886
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text2, { wrap: wrap2, children: chars.map((ch, i2) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text2, { color: gradientAt(i2 / last), children: ch }, i2)) });
101765
101887
  }
101766
101888
 
101767
101889
  // src/components/markdown/format.ts
@@ -102043,7 +102165,7 @@ function AssistantText({ text }) {
102043
102165
  const { columns } = useTerminalSize();
102044
102166
  if (!text.trim()) return null;
102045
102167
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box2, { flexDirection: "row", marginTop: 1, children: [
102046
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box2, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ThemedText, { colorKey: "chatMarker", bold: true, children: glyphs.assistant }) }),
102168
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box2, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ThemedText, { colorKey: "chatMarker", children: glyphs.assistant }) }),
102047
102169
  /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box2, { width: Math.max(20, columns - 2), children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Markdown, { text, width: Math.max(20, columns - 2) }) })
102048
102170
  ] });
102049
102171
  }
@@ -102131,16 +102253,13 @@ function ToolLogLine({
102131
102253
  const { preview: preview2, more } = detail ? detailPreview(detail) : { preview: "", more: false };
102132
102254
  return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box2, { flexDirection: "column", marginTop: 1, children: [
102133
102255
  /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box2, { flexDirection: "row", children: [
102134
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box2, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ThemedText, { colorKey: toolMarkerColorKey(status), bold: true, children: glyphs.tool }) }),
102256
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box2, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ThemedText, { colorKey: toolMarkerColorKey(status), children: glyphs.tool }) }),
102135
102257
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box2, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ThemedText, { colorKey: "toolName", bold: true, children: name2 }) }),
102136
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box2, { flexGrow: 1, flexShrink: 1, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Text2, { wrap: "wrap", children: [
102137
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(ThemedText, { colorKey: "toolArgs", children: [
102138
- "(",
102139
- verbose ? args2 : truncate2(args2, 80),
102140
- ")"
102141
- ] }),
102142
- !ok2 ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ThemedText, { colorKey: "error", children: ` ${glyphs.error}` }) : null
102143
- ] }) })
102258
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box2, { flexGrow: 1, flexShrink: 1, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Text2, { wrap: "wrap", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(ThemedText, { colorKey: "toolArgs", children: [
102259
+ "(",
102260
+ verbose ? args2 : truncate2(args2, 80),
102261
+ ")"
102262
+ ] }) }) })
102144
102263
  ] }),
102145
102264
  preview2 ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ResultRow, { children: verbose && detail ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ThemedText, { colorKey: ok2 ? "dim" : "error", wrap: "wrap", children: detail.trimEnd() }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(ThemedText, { colorKey: ok2 ? "dim" : "error", wrap: "truncate-end", children: [
102146
102265
  preview2,
@@ -102483,7 +102602,7 @@ function DiffCard({
102483
102602
  const depCount = affectedFiles?.length ?? 0;
102484
102603
  return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box2, { flexDirection: "column", marginTop: 1, children: [
102485
102604
  /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box2, { flexDirection: "row", children: [
102486
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box2, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ThemedText, { colorKey: "chatMarker", bold: true, children: glyphs.tool }) }),
102605
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box2, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ThemedText, { colorKey: "chatMarker", children: glyphs.tool }) }),
102487
102606
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box2, { flexGrow: 1, flexShrink: 1, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text2, { wrap: "wrap", children: [
102488
102607
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text2, { children: deleted ? "Deleted " : "Updated " }),
102489
102608
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text2, { bold: true, children: path13 }),
@@ -102537,7 +102656,7 @@ function terminalMarkerColorKey(exitCode) {
102537
102656
  }
102538
102657
  function RunningMarker() {
102539
102658
  const frame = useSpinnerFrame(true);
102540
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ThemedText, { colorKey: runningMarkerColorKey(frame), bold: true, children: glyphs.tool });
102659
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ThemedText, { colorKey: runningMarkerColorKey(frame), children: glyphs.tool });
102541
102660
  }
102542
102661
  function TerminalCard({
102543
102662
  command,
@@ -102555,7 +102674,7 @@ function TerminalCard({
102555
102674
  const hidden = lineCount - previewCount;
102556
102675
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Box2, { flexDirection: "column", marginTop: 1, children: [
102557
102676
  /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Box2, { flexDirection: "row", children: [
102558
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box2, { minWidth: 2, flexShrink: 0, children: running ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RunningMarker, {}) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ThemedText, { colorKey: terminalMarkerColorKey(exitCode), bold: true, children: glyphs.tool }) }),
102677
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box2, { minWidth: 2, flexShrink: 0, children: running ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RunningMarker, {}) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ThemedText, { colorKey: terminalMarkerColorKey(exitCode), children: glyphs.tool }) }),
102559
102678
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box2, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ThemedText, { colorKey: "toolName", bold: true, children: "bash" }) }),
102560
102679
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box2, { flexGrow: 1, flexShrink: 1, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(ThemedText, { colorKey: "toolArgs", wrap: "wrap", children: [
102561
102680
  "(",
@@ -102597,7 +102716,7 @@ function WebSearchCard({
102597
102716
  }) {
102598
102717
  return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box2, { flexDirection: "column", marginTop: 1, children: [
102599
102718
  /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box2, { flexDirection: "row", children: [
102600
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box2, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ThemedText, { colorKey: "chatMarker", bold: true, children: glyphs.tool }) }),
102719
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box2, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ThemedText, { colorKey: "chatMarker", children: glyphs.tool }) }),
102601
102720
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box2, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ThemedText, { colorKey: "toolName", bold: true, children: "web search" }) }),
102602
102721
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box2, { flexGrow: 1, flexShrink: 1, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(ThemedText, { colorKey: "toolArgs", wrap: "wrap", children: [
102603
102722
  "(",
@@ -102653,22 +102772,14 @@ function QuotaWarning({ refusal }) {
102653
102772
  // src/components/tools/SubAgentTree.tsx
102654
102773
  var import_react22 = __toESM(require_react(), 1);
102655
102774
  var import_client_core23 = __toESM(require_dist(), 1);
102775
+ var import_client_ui_core3 = __toESM(require_dist2(), 1);
102656
102776
  var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
102657
102777
  function agentLabel(agent) {
102658
102778
  const type = agent.agentType.trim();
102659
102779
  if (type && type !== "general" && type !== "agent") return type;
102660
102780
  return typeof agent.ordinal === "number" ? `subagent ${agent.ordinal}` : "subagent";
102661
102781
  }
102662
- function rowMeta(agent) {
102663
- const parts2 = [];
102664
- if (typeof agent.toolCount === "number" && agent.toolCount > 0) {
102665
- parts2.push(`${agent.toolCount} tool ${agent.toolCount === 1 ? "use" : "uses"}`);
102666
- }
102667
- if (agent.tokens && agent.tokens > 0) {
102668
- parts2.push(agent.tokens >= 1e3 ? `${(agent.tokens / 1e3).toFixed(1)}k tokens` : `${agent.tokens} tokens`);
102669
- }
102670
- return parts2.join(" \xB7 ");
102671
- }
102782
+ var rowMeta = import_client_ui_core3.subagentRowMeta;
102672
102783
  function rowStatus(agent) {
102673
102784
  if (agent.phase === "finished") {
102674
102785
  if (agent.status === "failed") return "Failed";
@@ -102740,10 +102851,10 @@ function SubAgentTree({
102740
102851
  return ao !== bo ? ao - bo : a.startedAt - b2.startedAt;
102741
102852
  });
102742
102853
  const anyFailed = agents.some((a) => a.status === "failed");
102743
- const marker = anyRunning ? spinner || glyphs.subagent : anyFailed ? glyphs.error : glyphs.subagent;
102854
+ const marker = anyRunning && spinner || glyphs.subagent;
102744
102855
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box2, { flexDirection: "column", marginTop: 1, children: [
102745
102856
  /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box2, { flexDirection: "row", children: [
102746
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box2, { flexShrink: 0, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ThemedText, { colorKey: anyRunning ? "spinner" : anyFailed ? "error" : "success", bold: true, children: marker }) }),
102857
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box2, { flexShrink: 0, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ThemedText, { colorKey: anyRunning ? "spinner" : anyFailed ? "error" : "success", children: marker }) }),
102747
102858
  /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ThemedText, { bold: true, children: treeHeader(agents, awaiting) })
102748
102859
  ] }),
102749
102860
  ordered.map((agent, i2) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SubAgentRow, { agent, isLast: i2 === ordered.length - 1 }, agent.agentId))
@@ -102782,8 +102893,8 @@ function toneKey(tone) {
102782
102893
  function railToneKey(tone) {
102783
102894
  return toneKey(tone) ?? "accent";
102784
102895
  }
102785
- function Cell({ cell: cell2, wrap }) {
102786
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ThemedText, { colorKey: toneKey(cell2.tone), dim: cell2.tone === "dim", bold: cell2.bold, wrap, children: cell2.text });
102896
+ function Cell({ cell: cell2, wrap: wrap2 }) {
102897
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ThemedText, { colorKey: toneKey(cell2.tone), dim: cell2.tone === "dim", bold: cell2.bold, wrap: wrap2, children: cell2.text });
102787
102898
  }
102788
102899
  function InfoCard({ item }) {
102789
102900
  const widths = columnWidths(item.rows);
@@ -102901,7 +103012,7 @@ function OrionRing() {
102901
103012
 
102902
103013
  // src/services/version.ts
102903
103014
  function tuiVersion() {
102904
- return "0.1.14".length > 0 ? "0.1.14" : null;
103015
+ return "0.1.15".length > 0 ? "0.1.15" : null;
102905
103016
  }
102906
103017
 
102907
103018
  // src/components/layout/WelcomeCard.tsx
@@ -102976,7 +103087,7 @@ function LiveTurn({
102976
103087
  live.thinking.trim() ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Thinking, { text: live.thinking, spinner }) : null,
102977
103088
  live.assistantText.trim() ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(AssistantText, { text: live.assistantText }) : null,
102978
103089
  showRunningTool && live.runningTool ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box2, { flexDirection: "row", marginTop: 1, children: [
102979
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box2, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ThemedText, { colorKey: runningMarkerColorKey(spinner), bold: true, children: glyphs.tool }) }),
103090
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box2, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ThemedText, { colorKey: runningMarkerColorKey(spinner), children: glyphs.tool }) }),
102980
103091
  /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box2, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ThemedText, { colorKey: "toolName", bold: true, children: live.runningTool.name }) }),
102981
103092
  /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box2, { flexGrow: 1, flexShrink: 1, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Text2, { wrap: "wrap", children: [
102982
103093
  /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(ThemedText, { colorKey: "toolArgs", children: [
@@ -103015,7 +103126,7 @@ function LiveCode({
103015
103126
  const tail = code.code.split("\n").slice(-12);
103016
103127
  return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box2, { flexDirection: "column", marginTop: 1, children: [
103017
103128
  /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box2, { flexDirection: "row", children: [
103018
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box2, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ThemedText, { colorKey: runningMarkerColorKey(spinner), bold: true, children: glyphs.tool }) }),
103129
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box2, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ThemedText, { colorKey: runningMarkerColorKey(spinner), children: glyphs.tool }) }),
103019
103130
  /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box2, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ThemedText, { colorKey: "toolName", bold: true, children: code.name }) }),
103020
103131
  /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box2, { flexGrow: 1, flexShrink: 1, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Text2, { wrap: "wrap", children: [
103021
103132
  /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(ThemedText, { colorKey: "toolArgs", children: [
@@ -103235,14 +103346,11 @@ function PlanCard({ plan }) {
103235
103346
  // src/components/tools/SubAgentCard.tsx
103236
103347
  var import_react29 = __toESM(require_react(), 1);
103237
103348
  var import_client_core24 = __toESM(require_dist(), 1);
103349
+ var import_client_ui_core4 = __toESM(require_dist2(), 1);
103238
103350
  var import_jsx_runtime40 = __toESM(require_jsx_runtime(), 1);
103239
- function tokenLabel(tokens) {
103240
- if (!tokens || tokens <= 0) return "";
103241
- return tokens >= 1e3 ? `\u2193 ${(tokens / 1e3).toFixed(1)}k tokens` : `\u2193 ${tokens} tokens`;
103242
- }
103243
103351
  function SubAgentCard({ agent, now: now2 }) {
103244
103352
  const elapsed = (0, import_client_core24.formatElapsed)((now2 ?? Date.now()) - agent.startedAt);
103245
- const metrics = [elapsed, tokenLabel(agent.tokens)].filter(Boolean).join(" \xB7 ");
103353
+ const metrics = [elapsed, (0, import_client_ui_core4.subagentTokenLabel)(agent.contextTokens)].filter(Boolean).join(" \xB7 ");
103246
103354
  return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box2, { flexDirection: "row", children: [
103247
103355
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Box2, { flexShrink: 0, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ThemedText, { colorKey: "dim", children: glyphs.subagent }) }),
103248
103356
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Box2, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ThemedText, { colorKey: rowColorKey(agent), bold: true, wrap: "truncate", children: agentLabel(agent) }) }),
@@ -103264,7 +103372,10 @@ function SubAgentList({
103264
103372
  }, [visible]);
103265
103373
  if (!visible) return null;
103266
103374
  return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box2, { flexDirection: "column", marginTop: 1, children: [
103267
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ThemedText, { bold: true, children: `${glyphs.subagent} main` }),
103375
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box2, { flexDirection: "row", children: [
103376
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Box2, { flexShrink: 0, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ThemedText, { children: glyphs.subagent }) }),
103377
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ThemedText, { bold: true, children: "main" })
103378
+ ] }),
103268
103379
  running.map((a) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(SubAgentCard, { agent: a, now: now2 }, a.agentId))
103269
103380
  ] });
103270
103381
  }
@@ -103516,9 +103627,9 @@ function parseKeystroke(spec) {
103516
103627
  const ks = { ctrl: false, shift: false, meta: false, alt: false, key: "" };
103517
103628
  const parts2 = spec.trim().toLowerCase().split("+").map((p) => p.trim()).filter(Boolean);
103518
103629
  for (const part of parts2) {
103519
- const mod = MOD_ALIASES[part];
103520
- if (mod) {
103521
- ks[mod] = true;
103630
+ const mod2 = MOD_ALIASES[part];
103631
+ if (mod2) {
103632
+ ks[mod2] = true;
103522
103633
  continue;
103523
103634
  }
103524
103635
  ks.key = KEY_ALIASES[part] ?? part;
@@ -104533,7 +104644,7 @@ function StatusBar({
104533
104644
 
104534
104645
  // src/components/dialogs/AskUserPrompt.tsx
104535
104646
  var import_react32 = __toESM(require_react(), 1);
104536
- var import_client_ui_core3 = __toESM(require_dist2(), 1);
104647
+ var import_client_ui_core5 = __toESM(require_dist2(), 1);
104537
104648
 
104538
104649
  // src/components/dialogs/LineEditor.tsx
104539
104650
  var import_jsx_runtime47 = __toESM(require_jsx_runtime(), 1);
@@ -104572,7 +104683,7 @@ function QuestionChips({
104572
104683
  selections
104573
104684
  }) {
104574
104685
  return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Box2, { flexDirection: "row", children: questions.map((question, i2) => {
104575
- const mark = (0, import_client_ui_core3.isAnswered)(selections[i2] ?? import_client_ui_core3.EMPTY_SELECTION) ? "\u2713 " : "";
104686
+ const mark = (0, import_client_ui_core5.isAnswered)(selections[i2] ?? import_client_ui_core5.EMPTY_SELECTION) ? "\u2713 " : "";
104576
104687
  const label = `${mark}${question.header}`;
104577
104688
  return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Box2, { marginRight: 2, children: i2 === index ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(GradientText, { text: `[${label}]` }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ThemedText, { dim: true, children: ` ${label} ` }) }, `${question.header}-${i2}`);
104578
104689
  }) });
@@ -104584,10 +104695,10 @@ function AskUserPrompt({
104584
104695
  guardMs = 250
104585
104696
  }) {
104586
104697
  const { requestId, sessionId } = pending;
104587
- const card = (0, import_react32.useMemo)(() => (0, import_client_ui_core3.buildAskCard)(pending.request), [pending.request]);
104698
+ const card = (0, import_react32.useMemo)(() => (0, import_client_ui_core5.buildAskCard)(pending.request), [pending.request]);
104588
104699
  const questions = card.questions;
104589
104700
  const [selections, setSelections] = (0, import_react32.useState)(
104590
- () => questions.map(() => import_client_ui_core3.EMPTY_SELECTION)
104701
+ () => questions.map(() => import_client_ui_core5.EMPTY_SELECTION)
104591
104702
  );
104592
104703
  const [index, setIndex] = (0, import_react32.useState)(0);
104593
104704
  const [cursor, setCursor] = (0, import_react32.useState)(0);
@@ -104601,7 +104712,7 @@ function AskUserPrompt({
104601
104712
  const theme = useTheme();
104602
104713
  const ruleWidth = Math.max(20, Math.min(MAX_RULE, columns - 8));
104603
104714
  const question = questions[index];
104604
- const submit = (finalSelections) => onRespond(requestId, (0, import_client_ui_core3.buildAnswers)(card, finalSelections), sessionId);
104715
+ const submit = (finalSelections) => onRespond(requestId, (0, import_client_ui_core5.buildAnswers)(card, finalSelections), sessionId);
104605
104716
  const commit = (next) => {
104606
104717
  const updated = selections.map((s, i2) => i2 === index ? next : s);
104607
104718
  setSelections(updated);
@@ -104627,7 +104738,7 @@ function AskUserPrompt({
104627
104738
  setDraft(selections[index]?.writeIn ?? "");
104628
104739
  return;
104629
104740
  }
104630
- const next = (0, import_client_ui_core3.toggleChoice)(selections[index] ?? import_client_ui_core3.EMPTY_SELECTION, choice, question.multiSelect);
104741
+ const next = (0, import_client_ui_core5.toggleChoice)(selections[index] ?? import_client_ui_core5.EMPTY_SELECTION, choice, question.multiSelect);
104631
104742
  if (question.multiSelect) {
104632
104743
  setSelections(selections.map((s, i2) => i2 === index ? next : s));
104633
104744
  return;
@@ -104649,8 +104760,8 @@ function AskUserPrompt({
104649
104760
  if (input === " " && question.multiSelect) return activate(cursor);
104650
104761
  if (key.return) {
104651
104762
  if (question.multiSelect) {
104652
- const current2 = selections[index] ?? import_client_ui_core3.EMPTY_SELECTION;
104653
- if ((0, import_client_ui_core3.isAnswered)(current2)) return commit(current2);
104763
+ const current2 = selections[index] ?? import_client_ui_core5.EMPTY_SELECTION;
104764
+ if ((0, import_client_ui_core5.isAnswered)(current2)) return commit(current2);
104654
104765
  if (question.choices[cursor]?.isWriteIn) return activate(cursor);
104655
104766
  return;
104656
104767
  }
@@ -104660,7 +104771,7 @@ function AskUserPrompt({
104660
104771
  if (!question) {
104661
104772
  return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Box2, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ThemedText, { dim: true, children: "(no question to answer \u2014 press esc)" }) });
104662
104773
  }
104663
- const answeredHere = (0, import_client_ui_core3.isAnswered)(selections[index] ?? import_client_ui_core3.EMPTY_SELECTION);
104774
+ const answeredHere = (0, import_client_ui_core5.isAnswered)(selections[index] ?? import_client_ui_core5.EMPTY_SELECTION);
104664
104775
  const step = questions.length > 1 ? `${index + 1} of ${questions.length}` : "";
104665
104776
  const hint = question.multiSelect ? `space toggle \xB7 enter confirm${questions.length > 1 ? " \xB7 tab next" : ""} \xB7 esc dismiss` : `enter select \xB7 \u2191\u2193 move${questions.length > 1 ? " \xB7 tab next" : ""} \xB7 esc dismiss`;
104666
104777
  return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
@@ -104679,8 +104790,8 @@ function AskUserPrompt({
104679
104790
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ThemedText, { bold: true, wrap: "wrap", children: question.question }),
104680
104791
  draft === null ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Box2, { flexDirection: "column", marginTop: 1, children: [
104681
104792
  question.choices.map((choice, i2) => {
104682
- const picked = (selections[index] ?? import_client_ui_core3.EMPTY_SELECTION).picked.includes(choice.value);
104683
- const writtenIn = choice.isWriteIn && (selections[index] ?? import_client_ui_core3.EMPTY_SELECTION).writeIn !== "";
104793
+ const picked = (selections[index] ?? import_client_ui_core5.EMPTY_SELECTION).picked.includes(choice.value);
104794
+ const writtenIn = choice.isWriteIn && (selections[index] ?? import_client_ui_core5.EMPTY_SELECTION).writeIn !== "";
104684
104795
  const box = question.multiSelect ? picked ? "[x] " : "[ ] " : "";
104685
104796
  const mark = !question.multiSelect && (picked || writtenIn) ? "\u2713 " : "";
104686
104797
  const label = `${box}${mark}${i2 + 1}. ${choice.label}`;
@@ -104703,12 +104814,12 @@ function AskUserPrompt({
104703
104814
  hint: "enter save \xB7 esc back",
104704
104815
  onChange: setDraft,
104705
104816
  onSubmit: () => {
104706
- const next = (0, import_client_ui_core3.setWriteIn)(
104707
- selections[index] ?? import_client_ui_core3.EMPTY_SELECTION,
104817
+ const next = (0, import_client_ui_core5.setWriteIn)(
104818
+ selections[index] ?? import_client_ui_core5.EMPTY_SELECTION,
104708
104819
  draft,
104709
104820
  question.multiSelect
104710
104821
  );
104711
- if (!(0, import_client_ui_core3.isAnswered)(next)) return setDraft(null);
104822
+ if (!(0, import_client_ui_core5.isAnswered)(next)) return setDraft(null);
104712
104823
  if (question.multiSelect) {
104713
104824
  setSelections(selections.map((s, i2) => i2 === index ? next : s));
104714
104825
  setDraft(null);
@@ -104739,8 +104850,8 @@ function writtenInPreview(selection) {
104739
104850
 
104740
104851
  // src/components/dialogs/PermissionPrompt.tsx
104741
104852
  var import_react34 = __toESM(require_react(), 1);
104742
- var import_client_ui_core4 = __toESM(require_dist2(), 1);
104743
- var import_client_ui_core5 = __toESM(require_dist2(), 1);
104853
+ var import_client_ui_core6 = __toESM(require_dist2(), 1);
104854
+ var import_client_ui_core7 = __toESM(require_dist2(), 1);
104744
104855
  var import_client_core26 = __toESM(require_dist(), 1);
104745
104856
 
104746
104857
  // src/components/dialogs/SelectList.tsx
@@ -104862,7 +104973,7 @@ function PermissionPrompt({
104862
104973
  }) {
104863
104974
  const { data, sessionId } = pending;
104864
104975
  const model = (0, import_react34.useMemo)(
104865
- () => (0, import_client_ui_core4.buildPermissionCard)(data, { agentLabel: pending.agentLabel ?? null }),
104976
+ () => (0, import_client_ui_core6.buildPermissionCard)(data, { agentLabel: pending.agentLabel ?? null }),
104866
104977
  [data, pending.agentLabel]
104867
104978
  );
104868
104979
  const [stage, setStage] = (0, import_react34.useState)({ kind: "choose" });
@@ -104920,7 +105031,7 @@ function PermissionPrompt({
104920
105031
  ] });
104921
105032
  }
104922
105033
  if (body2.kind === "edit") {
104923
- const { shown, more } = cap((0, import_client_ui_core5.editDiffLines)(body2, 60));
105034
+ const { shown, more } = cap((0, import_client_ui_core7.editDiffLines)(body2, 60));
104924
105035
  return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box2, { flexDirection: "column", children: [
104925
105036
  /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ThemedText, { dim: true, wrap: "truncate-middle", children: body2.path }),
104926
105037
  shown.map((line2, i2) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
@@ -105009,7 +105120,7 @@ function PermissionPrompt({
105009
105120
  SelectList,
105010
105121
  {
105011
105122
  title: `Save "${stage.rule}" to\u2026`,
105012
- options: import_client_ui_core4.DESTINATIONS.map((d2) => ({
105123
+ options: import_client_ui_core6.DESTINATIONS.map((d2) => ({
105013
105124
  value: d2.source,
105014
105125
  label: d2.source === stage.defaultDestination ? `${d2.label} (default)` : d2.label
105015
105126
  })),
@@ -105585,7 +105696,7 @@ function EndpointsPanel({
105585
105696
  // src/components/dialogs/PermissionRulesPanel.tsx
105586
105697
  var import_react36 = __toESM(require_react(), 1);
105587
105698
  var import_client_core27 = __toESM(require_dist(), 1);
105588
- var import_client_ui_core6 = __toESM(require_dist2(), 1);
105699
+ var import_client_ui_core8 = __toESM(require_dist2(), 1);
105589
105700
  var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1);
105590
105701
  function PermissionRulesPanel({
105591
105702
  rules,
@@ -105645,7 +105756,7 @@ function PermissionRulesPanel({
105645
105756
  SelectList,
105646
105757
  {
105647
105758
  title: `Save "${stage.rule}" to\u2026`,
105648
- options: import_client_ui_core6.DESTINATIONS.map((d2) => ({ value: d2.source, label: d2.label })),
105759
+ options: import_client_ui_core8.DESTINATIONS.map((d2) => ({ value: d2.source, label: d2.label })),
105649
105760
  onSelect: (value) => {
105650
105761
  if (value === null) return setStage({ kind: "list" });
105651
105762
  void add(stage.rule, stage.behavior, value).then(
@@ -107717,9 +107828,368 @@ function Root({
107717
107828
  }
107718
107829
 
107719
107830
  // src/components/layout/SignInScreen.tsx
107720
- var import_react48 = __toESM(require_react(), 1);
107831
+ var import_react49 = __toESM(require_react(), 1);
107721
107832
  var import_client_core32 = __toESM(require_dist(), 1);
107833
+
107834
+ // src/components/layout/splash/Splash.tsx
107835
+ var import_react48 = __toESM(require_react(), 1);
107836
+
107837
+ // src/components/layout/splash/halfblock.ts
107838
+ var BLOCK = [" ", "\u2580", "\u2584", "\u2588"];
107839
+ var Bitmap = class {
107840
+ /** Width in columns (one pixel per column). */
107841
+ width;
107842
+ /** Height in HALF-cells — always 2x the row count. */
107843
+ height;
107844
+ px;
107845
+ constructor(columns, rows) {
107846
+ this.width = Math.max(0, Math.floor(columns));
107847
+ this.height = Math.max(0, Math.floor(rows)) * 2;
107848
+ this.px = new Uint8Array(this.width * this.height);
107849
+ }
107850
+ set(x2, y2, on = true) {
107851
+ const ix = Math.round(x2);
107852
+ const iy = Math.round(y2);
107853
+ if (ix < 0 || iy < 0 || ix >= this.width || iy >= this.height) return;
107854
+ this.px[iy * this.width + ix] = on ? 1 : 0;
107855
+ }
107856
+ get(x2, y2) {
107857
+ const ix = Math.round(x2);
107858
+ const iy = Math.round(y2);
107859
+ if (ix < 0 || iy < 0 || ix >= this.width || iy >= this.height) return false;
107860
+ return this.px[iy * this.width + ix] === 1;
107861
+ }
107862
+ rect(x2, y2, w2, h) {
107863
+ for (let j2 = 0; j2 < Math.floor(h); j2++) {
107864
+ for (let i2 = 0; i2 < Math.floor(w2); i2++) this.set(x2 + i2, y2 + j2);
107865
+ }
107866
+ }
107867
+ /** A filled circle. Pass `on = false` to PUNCH one out of what is already
107868
+ * drawn — an off-centre punch is what turns a plain annulus into a letter O
107869
+ * with a thick and a thin side. */
107870
+ disc(cx, cy, r2, on = true) {
107871
+ for (let y2 = Math.floor(cy - r2); y2 <= Math.ceil(cy + r2); y2++) {
107872
+ for (let x2 = Math.floor(cx - r2); x2 <= Math.ceil(cx + r2); x2++) {
107873
+ if ((x2 - cx) ** 2 + (y2 - cy) ** 2 <= r2 * r2) this.set(x2, y2, on);
107874
+ }
107875
+ }
107876
+ }
107877
+ /** An annulus: filled between `r - stroke` and `r`. */
107878
+ ring(cx, cy, r2, stroke) {
107879
+ const inner = Math.max(0, r2 - stroke);
107880
+ for (let y2 = Math.floor(cy - r2); y2 <= Math.ceil(cy + r2); y2++) {
107881
+ for (let x2 = Math.floor(cx - r2); x2 <= Math.ceil(cx + r2); x2++) {
107882
+ const d2 = (x2 - cx) ** 2 + (y2 - cy) ** 2;
107883
+ if (d2 >= inner * inner && d2 <= r2 * r2) this.set(x2, y2);
107884
+ }
107885
+ }
107886
+ }
107887
+ /** A line of the given stroke width, sampled densely enough not to gap. The
107888
+ * stroke is CENTRED on the path — offsetting it only in +x/+y (the obvious
107889
+ * implementation) shifts every limb down-right by half its width and quietly
107890
+ * throws the whole figure off its axis. */
107891
+ line(x0, y0, x1, y1, stroke = 1) {
107892
+ const steps = Math.ceil(Math.max(Math.abs(x1 - x0), Math.abs(y1 - y0)) * 3) + 1;
107893
+ const off = Math.floor(stroke / 2);
107894
+ for (let i2 = 0; i2 <= steps; i2++) {
107895
+ const t = i2 / steps;
107896
+ const x2 = x0 + (x1 - x0) * t;
107897
+ const y2 = y0 + (y1 - y0) * t;
107898
+ for (let dy = 0; dy < stroke; dy++) {
107899
+ for (let dx = 0; dx < stroke; dx++) this.set(x2 + dx - off, y2 + dy - off);
107900
+ }
107901
+ }
107902
+ }
107903
+ /** Pack to glyph rows. Every row is exactly `width` characters, so callers can
107904
+ * address a packed cell by its bitmap column without re-deriving an offset. */
107905
+ pack() {
107906
+ const out2 = [];
107907
+ for (let r2 = 0; r2 < this.height; r2 += 2) {
107908
+ let line = "";
107909
+ for (let c3 = 0; c3 < this.width; c3++) {
107910
+ const upper = this.px[r2 * this.width + c3] === 1 ? 1 : 0;
107911
+ const lower = r2 + 1 < this.height && this.px[(r2 + 1) * this.width + c3] === 1 ? 2 : 0;
107912
+ line += BLOCK[upper | lower];
107913
+ }
107914
+ out2.push(line);
107915
+ }
107916
+ return out2;
107917
+ }
107918
+ };
107919
+
107920
+ // src/components/layout/splash/orb.ts
107921
+ var ORBIT_FRAMES = 88;
107922
+ var SHIMMER_ARC = 0.52;
107923
+ var BASE_RADIUS = 11;
107924
+ var BASE_MAJOR = 20;
107925
+ var BASE_MINOR = 9;
107926
+ var TILT = -30;
107927
+ function orbitPoint(shell2, t) {
107928
+ const X2 = shell2.major * Math.cos(t);
107929
+ const Y2 = shell2.minor * Math.sin(t);
107930
+ return {
107931
+ x: Math.round(shell2.cx + X2 * Math.cos(shell2.tilt) - Y2 * Math.sin(shell2.tilt)),
107932
+ y: Math.round(shell2.cy + X2 * Math.sin(shell2.tilt) + Y2 * Math.cos(shell2.tilt)),
107933
+ /** Positive on the half of the orbit nearer the viewer. */
107934
+ depth: Math.sin(t)
107935
+ };
107936
+ }
107937
+ function orbHeight() {
107938
+ const tilt = TILT * Math.PI / 180;
107939
+ const halfH = Math.hypot(BASE_MAJOR * Math.sin(tilt), BASE_MINOR * Math.cos(tilt));
107940
+ return Math.ceil(Math.max(halfH, BASE_RADIUS)) + 1;
107941
+ }
107942
+ function orbShell() {
107943
+ const radius = BASE_RADIUS;
107944
+ const major = BASE_MAJOR;
107945
+ const minor = BASE_MINOR;
107946
+ const tilt = TILT * Math.PI / 180;
107947
+ const halfW = Math.hypot(major * Math.cos(tilt), minor * Math.sin(tilt));
107948
+ const halfH = Math.hypot(major * Math.sin(tilt), minor * Math.cos(tilt));
107949
+ const width = Math.ceil(Math.max(halfW, radius)) * 2 + 4;
107950
+ const height = Math.ceil(Math.max(halfH, radius)) + 1;
107951
+ const cx = width / 2;
107952
+ const cy = height;
107953
+ const geom = { cx, cy, major, minor, tilt };
107954
+ const o = new Bitmap(width, height);
107955
+ o.ring(cx, cy, radius - 0.4, 2);
107956
+ o.disc(cx, cy, 1.6);
107957
+ const near = new Bitmap(width, height);
107958
+ const far = new Bitmap(width, height);
107959
+ const steps = Math.max(600, major * 120);
107960
+ for (let i2 = 0; i2 < steps; i2++) {
107961
+ const p = orbitPoint(geom, i2 * Math.PI * 2 / steps);
107962
+ if (p.depth > 0) near.set(p.x, p.y);
107963
+ else if ((p.x - cx) ** 2 + (p.y - cy) ** 2 > (radius + 0.5) ** 2) far.set(p.x, p.y);
107964
+ }
107965
+ return {
107966
+ rows: o.pack(),
107967
+ near: near.pack(),
107968
+ far: far.pack(),
107969
+ width,
107970
+ height,
107971
+ cx,
107972
+ cy,
107973
+ radius,
107974
+ major,
107975
+ minor,
107976
+ tilt
107977
+ };
107978
+ }
107979
+ function orbitShimmer(shell2, frame) {
107980
+ const centre = frame % ORBIT_FRAMES / ORBIT_FRAMES * Math.PI * 2;
107981
+ const brightest = /* @__PURE__ */ new Map();
107982
+ const STEPS = 90;
107983
+ for (let i2 = -STEPS; i2 <= STEPS; i2++) {
107984
+ const offset = i2 / STEPS * SHIMMER_ARC;
107985
+ const p = orbitPoint(shell2, centre + offset);
107986
+ const behind = p.depth <= 0 && (p.x - shell2.cx) ** 2 + (p.y - shell2.cy) ** 2 <= (shell2.radius + 0.5) ** 2;
107987
+ if (behind) continue;
107988
+ const d2 = Math.abs(offset);
107989
+ const tier = d2 < SHIMMER_ARC * 0.3 ? "core" : d2 < SHIMMER_ARC * 0.65 ? "warm" : "edge";
107990
+ const y2 = Math.floor(p.y / 2);
107991
+ const key = `${p.x},${y2}`;
107992
+ const held = brightest.get(key);
107993
+ if (!held || d2 < held.d) brightest.set(key, { x: p.x, y: y2, tier, d: d2 });
107994
+ }
107995
+ return [...brightest.values()].map(({ x: x2, y: y2, tier }) => ({ x: x2, y: y2, tier }));
107996
+ }
107997
+
107998
+ // src/components/layout/splash/sky.ts
107999
+ var COMET_PERIOD = 200;
108000
+ var COMET_SPAN = 28;
108001
+ var mod = (v2, d2) => (v2 % d2 + d2) % d2;
108002
+ function hash2(x2, y2) {
108003
+ let h = Math.imul(x2, 374761393) + Math.imul(y2, 668265263) >>> 0;
108004
+ h = Math.imul(h ^ h >>> 13, 1274126177) >>> 0;
108005
+ return (h ^ h >>> 16) >>> 0;
108006
+ }
108007
+ function skyCell(x2, y2, frame, rows) {
108008
+ const ridge = 0.7 * rows - 0.28 * x2;
108009
+ const band = 1 - Math.min(1, Math.abs((y2 - ridge) / (rows * 0.5)));
108010
+ const density = 22 + 66 * band * band;
108011
+ const dx = x2 + Math.floor(frame / 7);
108012
+ const h = hash2(dx, y2) % 1e3;
108013
+ if (h > density) return null;
108014
+ const twinkle = mod(frame + hash2(dx, y2 * 7) % 13, 13);
108015
+ if (h < 3 && twinkle < 4) return { ch: "\u2726", tone: "starBright" };
108016
+ if (h < 10) return { ch: twinkle < 5 ? "\u2727" : "\xB7", tone: "starMid" };
108017
+ if (twinkle < 5) return { ch: "\xB7", tone: "starFaint" };
108018
+ return { ch: "\u02D9", tone: "starDust" };
108019
+ }
108020
+ var COMET_TRAIL = [
108021
+ { ch: "\u2501", tone: "cometHead" },
108022
+ { ch: "\u2501", tone: "cometHead" },
108023
+ { ch: "\u2500", tone: "cometWake" },
108024
+ { ch: "\u2500", tone: "cometWake" },
108025
+ { ch: "\xB7", tone: "cometFragment" },
108026
+ { ch: "\xB7", tone: "cometFragment" },
108027
+ { ch: "\u02D9", tone: "cometDust" }
108028
+ ];
108029
+ function cometCells(frame, width) {
108030
+ const t = mod(frame, COMET_PERIOD);
108031
+ if (t > COMET_SPAN) return [];
108032
+ const head = Math.round(-12 + (width + 24) * (t / COMET_SPAN));
108033
+ const y2 = Math.round(2 + t * 0.3);
108034
+ return COMET_TRAIL.map((step, i2) => ({ x: head - i2 * 2, y: y2 - i2, ...step }));
108035
+ }
108036
+
108037
+ // src/components/layout/splash/frame.ts
108038
+ var SPLASH_MIN_COLUMNS = 56;
108039
+ var SPLASH_MIN_ROWS = 21;
108040
+ function splashHeight(terminalRows) {
108041
+ return Math.max(1, terminalRows - 1);
108042
+ }
108043
+ var SPLASH_GAP = 2;
108044
+ function splashFits(columns, terminalRows, copyLines) {
108045
+ if (columns < SPLASH_MIN_COLUMNS) return false;
108046
+ const drawable = splashHeight(terminalRows);
108047
+ if (drawable < SPLASH_MIN_ROWS) return false;
108048
+ return orbHeight() + SPLASH_GAP + copyLines <= drawable;
108049
+ }
108050
+ var SHIMMER_TONE = {
108051
+ core: "shimmerCore",
108052
+ warm: "shimmerWarm",
108053
+ edge: "shimmerEdge"
108054
+ };
108055
+ function splashFrame(input) {
108056
+ const { width, rows, frame, shell: shell2, copy } = input;
108057
+ const gap = input.gap ?? SPLASH_GAP;
108058
+ const grid = Array.from(
108059
+ { length: rows },
108060
+ () => Array.from({ length: width }, () => ({ ch: " ", pri: 0 }))
108061
+ );
108062
+ const quiet = [];
108063
+ const hushed = (x2, y2) => quiet.some((z2) => x2 >= z2.x0 && x2 <= z2.x1 && y2 >= z2.y0 && y2 <= z2.y1);
108064
+ const put = (x2, y2, cell2, pri) => {
108065
+ if (y2 < 0 || y2 >= rows || x2 < 0 || x2 >= width) return;
108066
+ if (grid[y2][x2].pri > pri) return;
108067
+ grid[y2][x2] = { ...cell2, pri };
108068
+ };
108069
+ const block = shell2.height + gap + copy.length;
108070
+ const top = Math.max(0, Math.floor((rows - block) / 2));
108071
+ const left = Math.floor((width - shell2.width) / 2);
108072
+ quiet.push({ x0: left - 2, x1: left + shell2.width + 1, y0: top - 1, y1: top + shell2.height });
108073
+ const layer = (art, tone, pri) => {
108074
+ art.forEach((line, j2) => {
108075
+ for (let i2 = 0; i2 < line.length; i2++) {
108076
+ if (line[i2] !== " ") put(left + i2, top + j2, { ch: line[i2], tone }, pri);
108077
+ }
108078
+ });
108079
+ };
108080
+ layer(shell2.far, "orbit", 8);
108081
+ layer(shell2.rows, "mark", 9);
108082
+ layer(shell2.near, "orbit", 10);
108083
+ for (const cell2 of orbitShimmer(shell2, frame)) {
108084
+ const glyph = shell2.near[cell2.y]?.[cell2.x] ?? " ";
108085
+ const behind = shell2.far[cell2.y]?.[cell2.x] ?? " ";
108086
+ const ch = glyph !== " " ? glyph : behind;
108087
+ if (ch === " ") continue;
108088
+ put(left + cell2.x, top + cell2.y, { ch, tone: SHIMMER_TONE[cell2.tier], bold: cell2.tier === "core" }, 11);
108089
+ }
108090
+ copy.forEach((line, i2) => {
108091
+ const y2 = top + shell2.height + gap + i2;
108092
+ if (!line.text) return;
108093
+ const x0 = Math.floor((width - line.text.length) / 2);
108094
+ quiet.push({ x0: x0 - 2, x1: x0 + line.text.length + 1, y0: y2, y1: y2 });
108095
+ for (let col = 0; col < line.text.length; col++) {
108096
+ put(x0 + col, y2, { ch: line.text[col], tone: line.tone, bold: line.bold }, 8);
108097
+ }
108098
+ });
108099
+ for (let y2 = 0; y2 < rows; y2++) {
108100
+ for (let x2 = 0; x2 < width; x2++) {
108101
+ if (hushed(x2, y2)) continue;
108102
+ const star = skyCell(x2, y2, frame, rows);
108103
+ if (star) put(x2, y2, { ch: star.ch, tone: star.tone }, 1);
108104
+ }
108105
+ }
108106
+ for (const c3 of cometCells(frame, width)) {
108107
+ if (!hushed(c3.x, c3.y)) put(c3.x, c3.y, { ch: c3.ch, tone: c3.tone }, 6);
108108
+ }
108109
+ return grid.map(toSpans);
108110
+ }
108111
+ function toSpans(row) {
108112
+ const spans = [];
108113
+ for (const cell2 of row) {
108114
+ const last = spans[spans.length - 1];
108115
+ if (last && last.tone === cell2.tone && (last.bold ?? false) === (cell2.bold ?? false)) {
108116
+ last.text += cell2.ch;
108117
+ } else {
108118
+ spans.push({ text: cell2.ch, ...cell2.tone ? { tone: cell2.tone } : {}, ...cell2.bold ? { bold: true } : {} });
108119
+ }
108120
+ }
108121
+ const tail = spans[spans.length - 1];
108122
+ if (tail && tail.tone === void 0 && tail.text.trim() === "") spans.pop();
108123
+ return spans;
108124
+ }
108125
+
108126
+ // src/components/layout/splash/Splash.tsx
107722
108127
  var import_jsx_runtime72 = __toESM(require_jsx_runtime(), 1);
108128
+ var TONE = {
108129
+ starBright: "welcomeBanner",
108130
+ starMid: "accent",
108131
+ starFaint: "dim",
108132
+ starDust: "contextCometDust",
108133
+ cometHead: "contextCometHead",
108134
+ cometWake: "contextCometWake",
108135
+ cometFragment: "contextCometFragment",
108136
+ cometDust: "contextCometDust",
108137
+ // The O carries the brand violet; the orbit sits a shade back from it so the
108138
+ // two read apart where they cross. The glint travelling that ring runs the
108139
+ // gauge's own cooling ramp — white-hot at its centre, back down to the ring.
108140
+ mark: "logo",
108141
+ orbit: "contextCometFragment",
108142
+ shimmerCore: "contextCometHead",
108143
+ shimmerWarm: "contextCometWake",
108144
+ shimmerEdge: "accent",
108145
+ title: "welcomeBanner",
108146
+ tagline: "accent",
108147
+ action: "accent",
108148
+ meta: "dim",
108149
+ error: "error"
108150
+ };
108151
+ function Splash({ columns, rows, frame, copy }) {
108152
+ const theme = useTheme();
108153
+ const height = splashHeight(rows);
108154
+ const shell2 = import_react48.default.useMemo(() => orbShell(), []);
108155
+ const grid = splashFrame({ width: columns, rows: height, frame, shell: shell2, copy });
108156
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Box2, { flexDirection: "column", children: grid.map((spans, y2) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Text2, { wrap: "truncate", children: spans.length === 0 ? " " : spans.map((span, i2) => renderSpan(span, i2, theme)) }, y2)) });
108157
+ }
108158
+ function renderSpan(span, key, theme) {
108159
+ if (span.tone === void 0) return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Text2, { children: span.text }, key);
108160
+ if (span.tone === "tagline") {
108161
+ const chars = [...span.text];
108162
+ const last = Math.max(1, chars.length - 1);
108163
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Text2, { children: chars.map((ch, i2) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Text2, { color: gradientAt(i2 / last), children: ch }, i2)) }, key);
108164
+ }
108165
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Text2, { color: theme[TONE[span.tone]], bold: span.bold, children: span.text }, key);
108166
+ }
108167
+
108168
+ // src/services/terminal.ts
108169
+ function supportsUnicode(env3, platform2) {
108170
+ if (platform2 === "darwin" || platform2 === "win32") return true;
108171
+ const locale = `${env3.LANG ?? ""}${env3.LC_ALL ?? ""}${env3.LC_CTYPE ?? ""}`;
108172
+ return /utf-?8/i.test(locale);
108173
+ }
108174
+ function detectTerminal2(env3 = process.env, platform2 = process.platform) {
108175
+ const columns = process.stdout.columns ?? 80;
108176
+ const rows = process.stdout.rows ?? 24;
108177
+ let colorLevel = 2;
108178
+ if (env3.NO_COLOR || env3.TERM === "dumb") {
108179
+ colorLevel = 0;
108180
+ } else if (env3.COLORTERM === "truecolor" || env3.COLORTERM === "24bit") {
108181
+ colorLevel = 3;
108182
+ }
108183
+ return { columns, rows, colorLevel, unicode: supportsUnicode(env3, platform2) };
108184
+ }
108185
+
108186
+ // src/components/layout/SignInScreen.tsx
108187
+ var import_jsx_runtime73 = __toESM(require_jsx_runtime(), 1);
108188
+ var TICK_MS = 150;
108189
+ function splashDisabled() {
108190
+ const v2 = (process.env.ORION_SPLASH ?? "").toLowerCase();
108191
+ return v2 === "0" || v2 === "off" || v2 === "false" || v2 === "no";
108192
+ }
107723
108193
  function SignInScreen({
107724
108194
  session,
107725
108195
  accountsUrl,
@@ -107727,9 +108197,19 @@ function SignInScreen({
107727
108197
  onSignedIn
107728
108198
  }) {
107729
108199
  const { exit } = use_app_default();
107730
- const [phase, setPhase] = import_react48.default.useState("idle");
107731
- const [url, setUrl] = import_react48.default.useState(null);
107732
- const [error, setError] = import_react48.default.useState(null);
108200
+ const [phase, setPhase] = import_react49.default.useState("idle");
108201
+ const [url, setUrl] = import_react49.default.useState(null);
108202
+ const [error, setError] = import_react49.default.useState(null);
108203
+ const [frame, setFrame] = import_react49.default.useState(0);
108204
+ const { columns, rows } = useTerminalSize();
108205
+ const caps = import_react49.default.useMemo(() => detectTerminal2(), []);
108206
+ const copy = splashCopy(phase, error, url, columns);
108207
+ const useSplash = !splashDisabled() && caps.unicode && splashFits(columns, rows, copy.length);
108208
+ import_react49.default.useEffect(() => {
108209
+ if (!useSplash || phase !== "idle") return;
108210
+ const t = setInterval(() => setFrame((f) => f + 1), TICK_MS);
108211
+ return () => clearInterval(t);
108212
+ }, [useSplash, phase]);
107733
108213
  const start2 = async () => {
107734
108214
  setPhase("signing");
107735
108215
  setUrl(null);
@@ -107756,39 +108236,91 @@ function SignInScreen({
107756
108236
  else if (key.escape && phase === "signing") exit();
107757
108237
  if (key.ctrl && input === "c") exit();
107758
108238
  });
107759
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ThemeProvider, { value: darkTheme, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(Box2, { flexDirection: "column", marginTop: 1, marginBottom: 1, children: [
107760
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(Box2, { flexDirection: "row", children: [
107761
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Box2, { marginRight: 2, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(OrionRing, {}) }),
107762
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(Box2, { flexDirection: "column", justifyContent: "center", children: [
107763
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ThemedText, { colorKey: "welcomeBanner", bold: true, children: CHANNEL.displayName }),
107764
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(GradientText, { text: "Your engineering team all in one" })
108239
+ if (useSplash) {
108240
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ThemeProvider, { value: darkTheme, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Splash, { columns, rows, frame, copy }) });
108241
+ }
108242
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ThemeProvider, { value: darkTheme, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(SignInCard, { phase, url, error }) });
108243
+ }
108244
+ function splashCopy(phase, error, url, columns) {
108245
+ const version = tuiVersion();
108246
+ const head = [
108247
+ { text: CHANNEL.displayName, tone: "title", bold: true },
108248
+ { text: "Your engineering team all in one", tone: "tagline" },
108249
+ { text: "", tone: "meta" }
108250
+ ];
108251
+ if (phase === "signing") {
108252
+ const body2 = url ? [
108253
+ { text: "Finish signing in in your browser.", tone: "meta" },
108254
+ { text: "", tone: "meta" },
108255
+ { text: "If it didn't open, use this link:", tone: "meta" },
108256
+ ...wrap(url, Math.max(20, columns - 8)).map((line) => ({ text: line, tone: "action" }))
108257
+ ] : [{ text: "Opening your browser\u2026", tone: "meta" }];
108258
+ return [...head, ...body2, { text: "", tone: "meta" }, { text: "Press Esc to cancel", tone: "meta" }];
108259
+ }
108260
+ if (phase === "error") {
108261
+ return [
108262
+ ...head,
108263
+ { text: truncate3(`Sign-in failed: ${error ?? "unknown error"}`, Math.max(20, columns - 8)), tone: "error" },
108264
+ { text: "", tone: "meta" },
108265
+ { text: "\u203A Press Enter to try again", tone: "action", bold: true }
108266
+ ];
108267
+ }
108268
+ return [
108269
+ ...head,
108270
+ { text: "\u203A Press Enter to sign in with your Orion account", tone: "action", bold: true },
108271
+ { text: version ? `v${version}` : "", tone: "meta" }
108272
+ ];
108273
+ }
108274
+ function wrap(s, width) {
108275
+ const out2 = [];
108276
+ for (let i2 = 0; i2 < s.length; i2 += width) out2.push(s.slice(i2, i2 + width));
108277
+ return out2;
108278
+ }
108279
+ function truncate3(s, n) {
108280
+ return s.length <= n ? s : `${s.slice(0, n - 1)}\u2026`;
108281
+ }
108282
+ function SignInCard({
108283
+ phase,
108284
+ url,
108285
+ error
108286
+ }) {
108287
+ const version = tuiVersion();
108288
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Box2, { flexDirection: "column", marginTop: 1, marginBottom: 1, children: [
108289
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Box2, { flexDirection: "row", children: [
108290
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Box2, { marginRight: 2, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(OrionRing, {}) }),
108291
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Box2, { flexDirection: "column", justifyContent: "center", children: [
108292
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(ThemedText, { colorKey: "welcomeBanner", bold: true, children: [
108293
+ CHANNEL.displayName,
108294
+ version ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ThemedText, { dim: true, children: ` v${version}` }) : null
108295
+ ] }),
108296
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(GradientText, { text: "Your engineering team all in one" })
107765
108297
  ] })
107766
108298
  ] }),
107767
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(Box2, { flexDirection: "column", marginTop: 1, children: [
107768
- phase === "idle" ? /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
107769
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ThemedText, { children: "Sign in with your Orion account to start." }),
107770
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(Box2, { flexDirection: "row", marginTop: 1, children: [
107771
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ThemedText, { colorKey: "accent", bold: true, children: "\u203A Press Enter" }),
107772
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ThemedText, { dim: true, children: " to sign in via your browser" })
108299
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Box2, { flexDirection: "column", marginTop: 1, children: [
108300
+ phase === "idle" ? /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
108301
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ThemedText, { children: "Sign in with your Orion account to start." }),
108302
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Box2, { flexDirection: "row", marginTop: 1, children: [
108303
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ThemedText, { colorKey: "accent", bold: true, children: "\u203A Press Enter" }),
108304
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ThemedText, { dim: true, children: " to sign in via your browser" })
107773
108305
  ] })
107774
108306
  ] }) : null,
107775
- phase === "signing" ? /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
107776
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ThemedText, { children: "Opening your browser\u2026" }),
107777
- url ? /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(Box2, { flexDirection: "column", marginTop: 1, children: [
107778
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ThemedText, { dim: true, children: "If it didn't open, open this link to finish signing in:" }),
107779
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ThemedText, { colorKey: "accent", children: url })
108307
+ phase === "signing" ? /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
108308
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ThemedText, { children: "Opening your browser\u2026" }),
108309
+ url ? /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Box2, { flexDirection: "column", marginTop: 1, children: [
108310
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ThemedText, { dim: true, children: "If it didn't open, open this link to finish signing in:" }),
108311
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ThemedText, { colorKey: "accent", children: url })
107780
108312
  ] }) : null,
107781
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Box2, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ThemedText, { dim: true, children: "Press Esc to cancel." }) })
108313
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Box2, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ThemedText, { dim: true, children: "Press Esc to cancel." }) })
107782
108314
  ] }) : null,
107783
- phase === "error" ? /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
107784
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(ThemedText, { colorKey: "error", children: [
108315
+ phase === "error" ? /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
108316
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(ThemedText, { colorKey: "error", children: [
107785
108317
  "Sign-in failed: ",
107786
108318
  error
107787
108319
  ] }),
107788
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Box2, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ThemedText, { dim: true, children: "\u203A Press Enter to try again." }) })
108320
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Box2, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ThemedText, { dim: true, children: "\u203A Press Enter to try again." }) })
107789
108321
  ] }) : null
107790
108322
  ] })
107791
- ] }) });
108323
+ ] });
107792
108324
  }
107793
108325
 
107794
108326
  // src/services/persistence.ts
@@ -108402,7 +108934,7 @@ function shouldAutoApprove(fullyAutomatic, configAutoApprove) {
108402
108934
 
108403
108935
  // src/headless/runHeadless.ts
108404
108936
  var import_client_core37 = __toESM(require_dist(), 1);
108405
- var import_client_ui_core7 = __toESM(require_dist2(), 1);
108937
+ var import_client_ui_core9 = __toESM(require_dist2(), 1);
108406
108938
  import * as os6 from "os";
108407
108939
  import { randomUUID } from "crypto";
108408
108940
  var HEADLESS_RESULT_PREFIX = "ORION_HEADLESS_RESULT ";
@@ -108583,7 +109115,7 @@ async function runHeadless(flags2) {
108583
109115
  };
108584
109116
  const sessionId = randomUUID();
108585
109117
  let messages = [];
108586
- const clientState = (0, import_client_ui_core7.emptyClientState)();
109118
+ const clientState = (0, import_client_ui_core9.emptyClientState)();
108587
109119
  const runTurn = async (prompt) => {
108588
109120
  const ac = new AbortController();
108589
109121
  const snapshot = [...messages];
@@ -108633,7 +109165,7 @@ async function runHeadless(flags2) {
108633
109165
  }
108634
109166
 
108635
109167
  // src/main.tsx
108636
- var import_jsx_runtime73 = __toESM(require_jsx_runtime(), 1);
109168
+ var import_jsx_runtime74 = __toESM(require_jsx_runtime(), 1);
108637
109169
  var SANDBOX_AVAILABLE = (0, import_client_core38.probeSandboxAvailable)();
108638
109170
  async function main() {
108639
109171
  let headlessFlags = null;
@@ -108801,7 +109333,7 @@ async function main() {
108801
109333
  // the store's referential stability: unchanged state returns the same object.
108802
109334
  (relPath) => transcriptStore.setState((s) => {
108803
109335
  const clientState = { ...s.clientState };
108804
- if (!(0, import_client_ui_core8.dropSeenPath)(clientState, relPath)) return s;
109336
+ if (!(0, import_client_ui_core10.dropSeenPath)(clientState, relPath)) return s;
108805
109337
  return { ...s, clientState };
108806
109338
  }),
108807
109339
  { rgPath: ripgrep.locate(), mode: config.indexMode }
@@ -108963,10 +109495,13 @@ async function main() {
108963
109495
  activeMetricsTurnId = void 0;
108964
109496
  }
108965
109497
  };
108966
- let sessionSub = bridge.onSessionEvent(sessionId, onRenderEvent);
109498
+ const onSessionStreamEvent = (ev) => {
109499
+ if (isOutOfBandEvent(ev)) onRenderEvent(ev);
109500
+ };
109501
+ let sessionSub = bridge.onSessionEvent(sessionId, onSessionStreamEvent);
108967
109502
  const subscribeSession = (sid) => {
108968
109503
  sessionSub.dispose();
108969
- sessionSub = bridge.onSessionEvent(sid, onRenderEvent);
109504
+ sessionSub = bridge.onSessionEvent(sid, onSessionStreamEvent);
108970
109505
  };
108971
109506
  let goalRunner = null;
108972
109507
  const cronController = new import_client_core39.CronController({
@@ -110045,11 +110580,11 @@ async function main() {
110045
110580
  };
110046
110581
  altScreen = enterAltScreen();
110047
110582
  app = await root_default2(
110048
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
110583
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
110049
110584
  Root,
110050
110585
  {
110051
110586
  appStore,
110052
- app: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
110587
+ app: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
110053
110588
  App2,
110054
110589
  {
110055
110590
  appStore,
@@ -110074,7 +110609,7 @@ async function main() {
110074
110609
  onScroll
110075
110610
  }
110076
110611
  ),
110077
- signInScreen: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
110612
+ signInScreen: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
110078
110613
  SignInScreen,
110079
110614
  {
110080
110615
  session,