orbit-code-ai 0.1.12 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.mjs +831 -1002
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -83759,7 +83759,7 @@ async function printStartupScreen() {
83759
83759
  const sLen = ` ● ${sL} Ready — type /help to begin`.length;
83760
83760
  out.push(boxRow(sRow, W2, sLen));
83761
83761
  out.push(`${rgb(...BORDER)}╚${"═".repeat(W2 - 2)}╝${RESET}`);
83762
- out.push(` ${DIM}${rgb(...DIMCOL)}orbit-code ${RESET}${rgb(...ACCENT)}v${"0.1.12"}${RESET}`);
83762
+ out.push(` ${DIM}${rgb(...DIMCOL)}orbit-code ${RESET}${rgb(...ACCENT)}v${"0.1.13"}${RESET}`);
83763
83763
  out.push("");
83764
83764
  process.stdout.write(out.join(`
83765
83765
  `) + `
@@ -247284,7 +247284,7 @@ function printResumeHint() {
247284
247284
  }
247285
247285
  writeSync2(1, source_default.dim(`
247286
247286
  Resume this session with:
247287
- orbitcode --resume ${resumeArg}
247287
+ orbit --resume ${resumeArg}
247288
247288
  `));
247289
247289
  resumeHintPrinted = true;
247290
247290
  } catch {}
@@ -334230,7 +334230,7 @@ function getAnthropicEnvMetadata() {
334230
334230
  function getBuildAgeMinutes() {
334231
334231
  if (false)
334232
334232
  ;
334233
- const buildTime = new Date("2026-06-25T08:09:32.296Z").getTime();
334233
+ const buildTime = new Date("2026-06-25T08:54:00.773Z").getTime();
334234
334234
  if (isNaN(buildTime))
334235
334235
  return;
334236
334236
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -358647,7 +358647,7 @@ function buildPrimarySection() {
358647
358647
  }, undefined, false, undefined, this);
358648
358648
  return [{
358649
358649
  label: "Version",
358650
- value: "0.1.12"
358650
+ value: "0.1.13"
358651
358651
  }, {
358652
358652
  label: "Session name",
358653
358653
  value: nameValue
@@ -362598,16 +362598,6 @@ function isEligibleForOverageCreditGrant() {
362598
362598
  return false;
362599
362599
  return formatGrantAmount(info) !== null;
362600
362600
  }
362601
- function shouldShowOverageCreditUpsell() {
362602
- if (!isEligibleForOverageCreditGrant())
362603
- return false;
362604
- const config2 = getGlobalConfig();
362605
- if (config2.hasVisitedExtraUsage)
362606
- return false;
362607
- if ((config2.overageCreditUpsellSeenCount ?? 0) >= MAX_IMPRESSIONS)
362608
- return false;
362609
- return true;
362610
- }
362611
362601
  function getUsageText(amount) {
362612
362602
  return `${amount} in extra usage for third-party apps · /extra-usage`;
362613
362603
  }
@@ -362694,7 +362684,7 @@ function OverageCreditUpsell(t0) {
362694
362684
  }
362695
362685
  return t1;
362696
362686
  }
362697
- var import_react_compiler_runtime134, import_react106, jsx_dev_runtime172, MAX_IMPRESSIONS = 3, FEED_SUBTITLE = "On us. Works on third-party apps · /extra-usage";
362687
+ var import_react_compiler_runtime134, import_react106, jsx_dev_runtime172, FEED_SUBTITLE = "On us. Works on third-party apps · /extra-usage";
362698
362688
  var init_OverageCreditUpsell = __esm(() => {
362699
362689
  init_ink2();
362700
362690
  init_overageCreditGrant();
@@ -388375,7 +388365,7 @@ function SessionInfo(t0) {
388375
388365
  children: [
388376
388366
  /* @__PURE__ */ jsx_dev_runtime241.jsxDEV(ThemedText, {
388377
388367
  color: "warning",
388378
- children: "Not in remote mode. Start with `orbitcode --remote` to use this command."
388368
+ children: "Not in remote mode. Start with `orbit --remote` to use this command."
388379
388369
  }, undefined, false, undefined, this),
388380
388370
  /* @__PURE__ */ jsx_dev_runtime241.jsxDEV(ThemedText, {
388381
388371
  dimColor: true,
@@ -459799,725 +459789,6 @@ var init_tipHistory = __esm(() => {
459799
459789
  init_config();
459800
459790
  });
459801
459791
 
459802
- // src/utils/desktopDeepLink.ts
459803
- import { readdir as readdir26 } from "fs/promises";
459804
- import { join as join122 } from "path";
459805
- function isDevMode() {
459806
- if (true) {
459807
- return true;
459808
- }
459809
- const pathsToCheck = [process.argv[1] || "", process.execPath || ""];
459810
- const buildDirs = [
459811
- "/build-ant/",
459812
- "/build-ant-native/",
459813
- "/build-external/",
459814
- "/build-external-native/"
459815
- ];
459816
- return pathsToCheck.some((p) => buildDirs.some((dir) => p.includes(dir)));
459817
- }
459818
- function buildDesktopDeepLink(sessionId) {
459819
- const protocol = isDevMode() ? "orbit-dev" : "orbit";
459820
- const url3 = new URL(`${protocol}://resume`);
459821
- url3.searchParams.set("session", sessionId);
459822
- url3.searchParams.set("cwd", getCwd());
459823
- return url3.toString();
459824
- }
459825
- async function isDesktopInstalled() {
459826
- if (isDevMode()) {
459827
- return true;
459828
- }
459829
- const platform6 = process.platform;
459830
- if (platform6 === "darwin") {
459831
- return pathExists("/Applications/Orbit.app");
459832
- } else if (platform6 === "linux") {
459833
- const { code, stdout } = await execFileNoThrow("xdg-mime", [
459834
- "query",
459835
- "default",
459836
- "x-scheme-handler/orbit"
459837
- ]);
459838
- return code === 0 && stdout.trim().length > 0;
459839
- } else if (platform6 === "win32") {
459840
- const { code } = await execFileNoThrow("reg", [
459841
- "query",
459842
- "HKEY_CLASSES_ROOT\\orbit",
459843
- "/ve"
459844
- ]);
459845
- return code === 0;
459846
- }
459847
- return false;
459848
- }
459849
- async function getDesktopVersion() {
459850
- const platform6 = process.platform;
459851
- if (platform6 === "darwin") {
459852
- const { code, stdout } = await execFileNoThrow("defaults", [
459853
- "read",
459854
- "/Applications/Orbit.app/Contents/Info.plist",
459855
- "CFBundleShortVersionString"
459856
- ]);
459857
- if (code !== 0) {
459858
- return null;
459859
- }
459860
- const version2 = stdout.trim();
459861
- return version2.length > 0 ? version2 : null;
459862
- } else if (platform6 === "win32") {
459863
- const localAppData = process.env.LOCALAPPDATA;
459864
- if (!localAppData) {
459865
- return null;
459866
- }
459867
- const installDir = join122(localAppData, "AnthropicOrbit");
459868
- try {
459869
- const entries = await readdir26(installDir);
459870
- const versions2 = entries.filter((e2) => e2.startsWith("app-")).map((e2) => e2.slice(4)).filter((v) => import_semver11.coerce(v) !== null).sort((a2, b) => {
459871
- const ca = import_semver11.coerce(a2);
459872
- const cb = import_semver11.coerce(b);
459873
- return ca.compare(cb);
459874
- });
459875
- return versions2.length > 0 ? versions2[versions2.length - 1] : null;
459876
- } catch {
459877
- return null;
459878
- }
459879
- }
459880
- return null;
459881
- }
459882
- async function getDesktopInstallStatus() {
459883
- const installed = await isDesktopInstalled();
459884
- if (!installed) {
459885
- return { status: "not-installed" };
459886
- }
459887
- let version2;
459888
- try {
459889
- version2 = await getDesktopVersion();
459890
- } catch {
459891
- return { status: "ready", version: "unknown" };
459892
- }
459893
- if (!version2) {
459894
- return { status: "ready", version: "unknown" };
459895
- }
459896
- const coerced = import_semver11.coerce(version2);
459897
- if (!coerced || !gte(coerced.version, MIN_DESKTOP_VERSION)) {
459898
- return { status: "version-too-old", version: version2 };
459899
- }
459900
- return { status: "ready", version: version2 };
459901
- }
459902
- async function openDeepLink(deepLinkUrl) {
459903
- const platform6 = process.platform;
459904
- logForDebugging2(`Opening deep link: ${deepLinkUrl}`);
459905
- if (platform6 === "darwin") {
459906
- if (isDevMode()) {
459907
- const { code: code2 } = await execFileNoThrow("osascript", [
459908
- "-e",
459909
- `tell application "Electron" to open location "${deepLinkUrl}"`
459910
- ]);
459911
- return code2 === 0;
459912
- }
459913
- const { code } = await execFileNoThrow("open", [deepLinkUrl]);
459914
- return code === 0;
459915
- } else if (platform6 === "linux") {
459916
- const { code } = await execFileNoThrow("xdg-open", [deepLinkUrl]);
459917
- return code === 0;
459918
- } else if (platform6 === "win32") {
459919
- const { code } = await execFileNoThrow("cmd", [
459920
- "/c",
459921
- "start",
459922
- "",
459923
- deepLinkUrl
459924
- ]);
459925
- return code === 0;
459926
- }
459927
- return false;
459928
- }
459929
- async function openCurrentSessionInDesktop() {
459930
- const sessionId = getSessionId();
459931
- const installed = await isDesktopInstalled();
459932
- if (!installed) {
459933
- return {
459934
- success: false,
459935
- error: "Orbit Desktop is not installed. Install it from https://orbit.ai/download"
459936
- };
459937
- }
459938
- const deepLinkUrl = buildDesktopDeepLink(sessionId);
459939
- const opened = await openDeepLink(deepLinkUrl);
459940
- if (!opened) {
459941
- return {
459942
- success: false,
459943
- error: "Failed to open Orbit Desktop. Please try opening it manually.",
459944
- deepLinkUrl
459945
- };
459946
- }
459947
- return { success: true, deepLinkUrl };
459948
- }
459949
- var import_semver11, MIN_DESKTOP_VERSION = "1.1.2396";
459950
- var init_desktopDeepLink = __esm(() => {
459951
- init_state();
459952
- init_cwd();
459953
- init_debug();
459954
- init_execFileNoThrow();
459955
- init_file();
459956
- import_semver11 = __toESM(require_semver2(), 1);
459957
- });
459958
-
459959
- // src/components/DesktopHandoff.tsx
459960
- function getDownloadUrl() {
459961
- switch (process.platform) {
459962
- case "win32":
459963
- return "https://orbit.ai/api/desktop/win32/x64/exe/latest/redirect";
459964
- default:
459965
- return "https://orbit.ai/api/desktop/darwin/universal/dmg/latest/redirect";
459966
- }
459967
- }
459968
- function DesktopHandoff(t0) {
459969
- const $2 = import_react_compiler_runtime308.c(20);
459970
- const {
459971
- onDone
459972
- } = t0;
459973
- const [state2, setState] = import_react274.useState("checking");
459974
- const [error41, setError] = import_react274.useState(null);
459975
- const [downloadMessage, setDownloadMessage] = import_react274.useState("");
459976
- let t1;
459977
- if ($2[0] !== error41 || $2[1] !== onDone || $2[2] !== state2) {
459978
- t1 = (input) => {
459979
- if (state2 === "error") {
459980
- onDone(error41 ?? "Unknown error", {
459981
- display: "system"
459982
- });
459983
- return;
459984
- }
459985
- if (state2 === "prompt-download") {
459986
- if (input === "y" || input === "Y") {
459987
- openBrowser(getDownloadUrl()).catch(_temp180);
459988
- onDone(`Starting download. Re-run /desktop once you’ve installed the app.
459989
- Learn more at ${DESKTOP_DOCS_URL}`, {
459990
- display: "system"
459991
- });
459992
- } else {
459993
- if (input === "n" || input === "N") {
459994
- onDone(`The desktop app is required for /desktop. Learn more at ${DESKTOP_DOCS_URL}`, {
459995
- display: "system"
459996
- });
459997
- }
459998
- }
459999
- }
460000
- };
460001
- $2[0] = error41;
460002
- $2[1] = onDone;
460003
- $2[2] = state2;
460004
- $2[3] = t1;
460005
- } else {
460006
- t1 = $2[3];
460007
- }
460008
- use_input_default(t1);
460009
- let t2;
460010
- let t3;
460011
- if ($2[4] !== onDone) {
460012
- t2 = () => {
460013
- const performHandoff = async function performHandoff2() {
460014
- setState("checking");
460015
- const installStatus = await getDesktopInstallStatus();
460016
- if (installStatus.status === "not-installed") {
460017
- setDownloadMessage("Orbit Desktop is not installed.");
460018
- setState("prompt-download");
460019
- return;
460020
- }
460021
- if (installStatus.status === "version-too-old") {
460022
- setDownloadMessage(`Orbit Desktop needs to be updated (found v${installStatus.version}, need v1.1.2396+).`);
460023
- setState("prompt-download");
460024
- return;
460025
- }
460026
- setState("flushing");
460027
- await flushSessionStorage();
460028
- setState("opening");
460029
- const result = await openCurrentSessionInDesktop();
460030
- if (!result.success) {
460031
- setError(result.error ?? "Failed to open Orbit Desktop");
460032
- setState("error");
460033
- return;
460034
- }
460035
- setState("success");
460036
- setTimeout(_temp276, 500, onDone);
460037
- };
460038
- performHandoff().catch((err2) => {
460039
- setError(errorMessage(err2));
460040
- setState("error");
460041
- });
460042
- };
460043
- t3 = [onDone];
460044
- $2[4] = onDone;
460045
- $2[5] = t2;
460046
- $2[6] = t3;
460047
- } else {
460048
- t2 = $2[5];
460049
- t3 = $2[6];
460050
- }
460051
- import_react274.useEffect(t2, t3);
460052
- if (state2 === "error") {
460053
- let t42;
460054
- if ($2[7] !== error41) {
460055
- t42 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
460056
- color: "error",
460057
- children: [
460058
- "Error: ",
460059
- error41
460060
- ]
460061
- }, undefined, true, undefined, this);
460062
- $2[7] = error41;
460063
- $2[8] = t42;
460064
- } else {
460065
- t42 = $2[8];
460066
- }
460067
- let t52;
460068
- if ($2[9] === Symbol.for("react.memo_cache_sentinel")) {
460069
- t52 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
460070
- dimColor: true,
460071
- children: "Press any key to continue…"
460072
- }, undefined, false, undefined, this);
460073
- $2[9] = t52;
460074
- } else {
460075
- t52 = $2[9];
460076
- }
460077
- let t62;
460078
- if ($2[10] !== t42) {
460079
- t62 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedBox_default, {
460080
- flexDirection: "column",
460081
- paddingX: 2,
460082
- children: [
460083
- t42,
460084
- t52
460085
- ]
460086
- }, undefined, true, undefined, this);
460087
- $2[10] = t42;
460088
- $2[11] = t62;
460089
- } else {
460090
- t62 = $2[11];
460091
- }
460092
- return t62;
460093
- }
460094
- if (state2 === "prompt-download") {
460095
- let t42;
460096
- if ($2[12] !== downloadMessage) {
460097
- t42 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
460098
- children: downloadMessage
460099
- }, undefined, false, undefined, this);
460100
- $2[12] = downloadMessage;
460101
- $2[13] = t42;
460102
- } else {
460103
- t42 = $2[13];
460104
- }
460105
- let t52;
460106
- if ($2[14] === Symbol.for("react.memo_cache_sentinel")) {
460107
- t52 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
460108
- children: "Download now? (y/n)"
460109
- }, undefined, false, undefined, this);
460110
- $2[14] = t52;
460111
- } else {
460112
- t52 = $2[14];
460113
- }
460114
- let t62;
460115
- if ($2[15] !== t42) {
460116
- t62 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedBox_default, {
460117
- flexDirection: "column",
460118
- paddingX: 2,
460119
- children: [
460120
- t42,
460121
- t52
460122
- ]
460123
- }, undefined, true, undefined, this);
460124
- $2[15] = t42;
460125
- $2[16] = t62;
460126
- } else {
460127
- t62 = $2[16];
460128
- }
460129
- return t62;
460130
- }
460131
- let t4;
460132
- if ($2[17] === Symbol.for("react.memo_cache_sentinel")) {
460133
- t4 = {
460134
- checking: "Checking for Orbit Desktop…",
460135
- flushing: "Saving session…",
460136
- opening: "Opening Orbit Desktop…",
460137
- success: "Opening in Orbit Desktop…"
460138
- };
460139
- $2[17] = t4;
460140
- } else {
460141
- t4 = $2[17];
460142
- }
460143
- const messages = t4;
460144
- const t5 = messages[state2];
460145
- let t6;
460146
- if ($2[18] !== t5) {
460147
- t6 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(LoadingState, {
460148
- message: t5
460149
- }, undefined, false, undefined, this);
460150
- $2[18] = t5;
460151
- $2[19] = t6;
460152
- } else {
460153
- t6 = $2[19];
460154
- }
460155
- return t6;
460156
- }
460157
- async function _temp276(onDone_0) {
460158
- onDone_0("Session transferred to Orbit Desktop", {
460159
- display: "system"
460160
- });
460161
- await gracefulShutdown(0, "other");
460162
- }
460163
- function _temp180() {}
460164
- var import_react_compiler_runtime308, import_react274, jsx_dev_runtime395, DESKTOP_DOCS_URL = "https://clau.de/desktop";
460165
- var init_DesktopHandoff = __esm(() => {
460166
- init_ink2();
460167
- init_browser();
460168
- init_desktopDeepLink();
460169
- init_errors();
460170
- init_gracefulShutdown();
460171
- init_sessionStorage();
460172
- init_LoadingState();
460173
- import_react_compiler_runtime308 = __toESM(require_dist3(), 1);
460174
- import_react274 = __toESM(require_react(), 1);
460175
- jsx_dev_runtime395 = __toESM(require_jsx_dev_runtime(), 1);
460176
- });
460177
-
460178
- // src/components/DesktopUpsell/DesktopUpsellStartup.tsx
460179
- function getDesktopUpsellConfig() {
460180
- return getDynamicConfig_CACHED_MAY_BE_STALE("tengu_desktop_upsell", DESKTOP_UPSELL_DEFAULT);
460181
- }
460182
- function isSupportedPlatform2() {
460183
- return process.platform === "darwin" || process.platform === "win32" && process.arch === "x64";
460184
- }
460185
- function shouldShowDesktopUpsellStartup() {
460186
- if (!isSupportedPlatform2())
460187
- return false;
460188
- if (!getDesktopUpsellConfig().enable_startup_dialog)
460189
- return false;
460190
- const config3 = getGlobalConfig();
460191
- if (config3.desktopUpsellDismissed)
460192
- return false;
460193
- if ((config3.desktopUpsellSeenCount ?? 0) >= 3)
460194
- return false;
460195
- return true;
460196
- }
460197
- function DesktopUpsellStartup(t0) {
460198
- const $2 = import_react_compiler_runtime309.c(14);
460199
- const {
460200
- onDone
460201
- } = t0;
460202
- const [showHandoff, setShowHandoff] = import_react275.useState(false);
460203
- let t1;
460204
- if ($2[0] === Symbol.for("react.memo_cache_sentinel")) {
460205
- t1 = [];
460206
- $2[0] = t1;
460207
- } else {
460208
- t1 = $2[0];
460209
- }
460210
- import_react275.useEffect(_temp181, t1);
460211
- if (showHandoff) {
460212
- let t22;
460213
- if ($2[1] !== onDone) {
460214
- t22 = /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(DesktopHandoff, {
460215
- onDone: () => onDone()
460216
- }, undefined, false, undefined, this);
460217
- $2[1] = onDone;
460218
- $2[2] = t22;
460219
- } else {
460220
- t22 = $2[2];
460221
- }
460222
- return t22;
460223
- }
460224
- let t2;
460225
- if ($2[3] !== onDone) {
460226
- t2 = function handleSelect2(value) {
460227
- switch (value) {
460228
- case "try": {
460229
- setShowHandoff(true);
460230
- return;
460231
- }
460232
- case "never": {
460233
- saveGlobalConfig(_temp277);
460234
- onDone();
460235
- return;
460236
- }
460237
- case "not-now": {
460238
- onDone();
460239
- return;
460240
- }
460241
- }
460242
- };
460243
- $2[3] = onDone;
460244
- $2[4] = t2;
460245
- } else {
460246
- t2 = $2[4];
460247
- }
460248
- const handleSelect = t2;
460249
- let t3;
460250
- if ($2[5] === Symbol.for("react.memo_cache_sentinel")) {
460251
- t3 = {
460252
- label: "Open in Orbit AI Desktop",
460253
- value: "try"
460254
- };
460255
- $2[5] = t3;
460256
- } else {
460257
- t3 = $2[5];
460258
- }
460259
- let t4;
460260
- if ($2[6] === Symbol.for("react.memo_cache_sentinel")) {
460261
- t4 = {
460262
- label: "Not now",
460263
- value: "not-now"
460264
- };
460265
- $2[6] = t4;
460266
- } else {
460267
- t4 = $2[6];
460268
- }
460269
- let t5;
460270
- if ($2[7] === Symbol.for("react.memo_cache_sentinel")) {
460271
- t5 = [t3, t4, {
460272
- label: "Don't ask again",
460273
- value: "never"
460274
- }];
460275
- $2[7] = t5;
460276
- } else {
460277
- t5 = $2[7];
460278
- }
460279
- const options2 = t5;
460280
- let t6;
460281
- if ($2[8] === Symbol.for("react.memo_cache_sentinel")) {
460282
- t6 = /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(ThemedBox_default, {
460283
- marginBottom: 1,
460284
- children: /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(ThemedText, {
460285
- children: "Same Orbit AI with visual diffs, live app preview, parallel sessions, and more."
460286
- }, undefined, false, undefined, this)
460287
- }, undefined, false, undefined, this);
460288
- $2[8] = t6;
460289
- } else {
460290
- t6 = $2[8];
460291
- }
460292
- let t7;
460293
- if ($2[9] !== handleSelect) {
460294
- t7 = () => handleSelect("not-now");
460295
- $2[9] = handleSelect;
460296
- $2[10] = t7;
460297
- } else {
460298
- t7 = $2[10];
460299
- }
460300
- let t8;
460301
- if ($2[11] !== handleSelect || $2[12] !== t7) {
460302
- t8 = /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(PermissionDialog, {
460303
- title: "Try Orbit AI Desktop",
460304
- children: /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(ThemedBox_default, {
460305
- flexDirection: "column",
460306
- paddingX: 2,
460307
- paddingY: 1,
460308
- children: [
460309
- t6,
460310
- /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(Select, {
460311
- options: options2,
460312
- onChange: handleSelect,
460313
- onCancel: t7
460314
- }, undefined, false, undefined, this)
460315
- ]
460316
- }, undefined, true, undefined, this)
460317
- }, undefined, false, undefined, this);
460318
- $2[11] = handleSelect;
460319
- $2[12] = t7;
460320
- $2[13] = t8;
460321
- } else {
460322
- t8 = $2[13];
460323
- }
460324
- return t8;
460325
- }
460326
- function _temp277(prev_0) {
460327
- if (prev_0.desktopUpsellDismissed) {
460328
- return prev_0;
460329
- }
460330
- return {
460331
- ...prev_0,
460332
- desktopUpsellDismissed: true
460333
- };
460334
- }
460335
- function _temp181() {
460336
- const newCount = (getGlobalConfig().desktopUpsellSeenCount ?? 0) + 1;
460337
- saveGlobalConfig((prev) => {
460338
- if ((prev.desktopUpsellSeenCount ?? 0) >= newCount) {
460339
- return prev;
460340
- }
460341
- return {
460342
- ...prev,
460343
- desktopUpsellSeenCount: newCount
460344
- };
460345
- });
460346
- logEvent("tengu_desktop_upsell_shown", {
460347
- seen_count: newCount
460348
- });
460349
- }
460350
- var import_react_compiler_runtime309, import_react275, jsx_dev_runtime396, DESKTOP_UPSELL_DEFAULT;
460351
- var init_DesktopUpsellStartup = __esm(() => {
460352
- init_ink2();
460353
- init_config();
460354
- init_select();
460355
- init_DesktopHandoff();
460356
- init_PermissionDialog();
460357
- import_react_compiler_runtime309 = __toESM(require_dist3(), 1);
460358
- import_react275 = __toESM(require_react(), 1);
460359
- jsx_dev_runtime396 = __toESM(require_jsx_dev_runtime(), 1);
460360
- DESKTOP_UPSELL_DEFAULT = {
460361
- enable_shortcut_tip: false,
460362
- enable_startup_dialog: false
460363
- };
460364
- });
460365
-
460366
- // src/services/api/referral.ts
460367
- async function fetchReferralEligibility(campaign = "orbit_code_guest_pass") {
460368
- const { accessToken, orgUUID } = await prepareApiRequest();
460369
- const headers = {
460370
- ...getOAuthHeaders(accessToken),
460371
- "x-organization-uuid": orgUUID
460372
- };
460373
- const url3 = `${getOauthConfig().BASE_API_URL}/api/oauth/organizations/${orgUUID}/referral/eligibility`;
460374
- const response = await axios_default.get(url3, {
460375
- headers,
460376
- params: { campaign },
460377
- timeout: 5000
460378
- });
460379
- return response.data;
460380
- }
460381
- function shouldCheckForPasses() {
460382
- return !!(getOauthAccountInfo()?.organizationUuid && isOrbitAISubscriber() && getSubscriptionType() === "max");
460383
- }
460384
- function checkCachedPassesEligibility() {
460385
- if (!shouldCheckForPasses()) {
460386
- return {
460387
- eligible: false,
460388
- needsRefresh: false,
460389
- hasCache: false
460390
- };
460391
- }
460392
- const orgId = getOauthAccountInfo()?.organizationUuid;
460393
- if (!orgId) {
460394
- return {
460395
- eligible: false,
460396
- needsRefresh: false,
460397
- hasCache: false
460398
- };
460399
- }
460400
- const config3 = getGlobalConfig();
460401
- const cachedEntry = config3.passesEligibilityCache?.[orgId];
460402
- if (!cachedEntry) {
460403
- return {
460404
- eligible: false,
460405
- needsRefresh: true,
460406
- hasCache: false
460407
- };
460408
- }
460409
- const { eligible: eligible2, timestamp } = cachedEntry;
460410
- const now2 = Date.now();
460411
- const needsRefresh = now2 - timestamp > CACHE_EXPIRATION_MS;
460412
- return {
460413
- eligible: eligible2,
460414
- needsRefresh,
460415
- hasCache: true
460416
- };
460417
- }
460418
- function formatCreditAmount(reward) {
460419
- const symbol2 = CURRENCY_SYMBOLS[reward.currency] ?? `${reward.currency} `;
460420
- const amount = reward.amount_minor_units / 100;
460421
- const formatted = amount % 1 === 0 ? amount.toString() : amount.toFixed(2);
460422
- return `${symbol2}${formatted}`;
460423
- }
460424
- function getCachedReferrerReward() {
460425
- const orgId = getOauthAccountInfo()?.organizationUuid;
460426
- if (!orgId)
460427
- return null;
460428
- const config3 = getGlobalConfig();
460429
- const cachedEntry = config3.passesEligibilityCache?.[orgId];
460430
- return cachedEntry?.referrer_reward ?? null;
460431
- }
460432
- async function fetchAndStorePassesEligibility() {
460433
- if (fetchInProgress) {
460434
- logForDebugging2("Passes: Reusing in-flight eligibility fetch");
460435
- return fetchInProgress;
460436
- }
460437
- const orgId = getOauthAccountInfo()?.organizationUuid;
460438
- if (!orgId) {
460439
- return null;
460440
- }
460441
- fetchInProgress = (async () => {
460442
- try {
460443
- const response = await fetchReferralEligibility();
460444
- const cacheEntry = {
460445
- ...response,
460446
- timestamp: Date.now()
460447
- };
460448
- saveGlobalConfig((current) => ({
460449
- ...current,
460450
- passesEligibilityCache: {
460451
- ...current.passesEligibilityCache,
460452
- [orgId]: cacheEntry
460453
- }
460454
- }));
460455
- logForDebugging2(`Passes eligibility cached for org ${orgId}: ${response.eligible}`);
460456
- return response;
460457
- } catch (error41) {
460458
- logForDebugging2("Failed to fetch and cache passes eligibility");
460459
- logError(error41);
460460
- return null;
460461
- } finally {
460462
- fetchInProgress = null;
460463
- }
460464
- })();
460465
- return fetchInProgress;
460466
- }
460467
- async function getCachedOrFetchPassesEligibility() {
460468
- if (!shouldCheckForPasses()) {
460469
- return null;
460470
- }
460471
- const orgId = getOauthAccountInfo()?.organizationUuid;
460472
- if (!orgId) {
460473
- return null;
460474
- }
460475
- const config3 = getGlobalConfig();
460476
- const cachedEntry = config3.passesEligibilityCache?.[orgId];
460477
- const now2 = Date.now();
460478
- if (!cachedEntry) {
460479
- logForDebugging2("Passes: No cache, fetching eligibility in background (command unavailable this session)");
460480
- fetchAndStorePassesEligibility();
460481
- return null;
460482
- }
460483
- if (now2 - cachedEntry.timestamp > CACHE_EXPIRATION_MS) {
460484
- logForDebugging2("Passes: Cache stale, returning cached data and refreshing in background");
460485
- fetchAndStorePassesEligibility();
460486
- const { timestamp: timestamp2, ...response2 } = cachedEntry;
460487
- return response2;
460488
- }
460489
- logForDebugging2("Passes: Using fresh cached eligibility data");
460490
- const { timestamp, ...response } = cachedEntry;
460491
- return response;
460492
- }
460493
- async function prefetchPassesEligibility() {
460494
- if (isEssentialTrafficOnly()) {
460495
- return;
460496
- }
460497
- getCachedOrFetchPassesEligibility();
460498
- }
460499
- var CACHE_EXPIRATION_MS, fetchInProgress = null, CURRENCY_SYMBOLS;
460500
- var init_referral = __esm(() => {
460501
- init_axios2();
460502
- init_oauth();
460503
- init_auth();
460504
- init_config();
460505
- init_debug();
460506
- init_log2();
460507
- init_api2();
460508
- CACHE_EXPIRATION_MS = 24 * 60 * 60 * 1000;
460509
- CURRENCY_SYMBOLS = {
460510
- USD: "$",
460511
- EUR: "€",
460512
- GBP: "£",
460513
- BRL: "R$",
460514
- CAD: "CA$",
460515
- AUD: "A$",
460516
- NZD: "NZ$",
460517
- SGD: "S$"
460518
- };
460519
- });
460520
-
460521
459792
  // src/services/tips/tipRegistry.ts
460522
459793
  async function isOfficialMarketplaceInstalled() {
460523
459794
  if (_isOfficialMarketplaceInstalledCache !== undefined) {
@@ -460579,9 +459850,7 @@ var init_tipRegistry = __esm(() => {
460579
459850
  init_fileHistory();
460580
459851
  init_settings2();
460581
459852
  init_terminalSetup();
460582
- init_DesktopUpsellStartup();
460583
459853
  init_color();
460584
- init_OverageCreditUpsell();
460585
459854
  init_shortcutFormat();
460586
459855
  init_prompt10();
460587
459856
  init_auth();
@@ -460598,8 +459867,6 @@ var init_tipRegistry = __esm(() => {
460598
459867
  init_marketplaceManager();
460599
459868
  init_officialMarketplace();
460600
459869
  init_sessionStorage();
460601
- init_overageCreditGrant();
460602
- init_referral();
460603
459870
  init_tipHistory();
460604
459871
  externalTips = [
460605
459872
  {
@@ -460791,18 +460058,6 @@ var init_tipRegistry = __esm(() => {
460791
460058
  return runningIDEs.length > 0;
460792
460059
  }
460793
460060
  },
460794
- {
460795
- id: "install-github-app",
460796
- content: async () => "Run /install-github-app to tag @orbit right from your Github issues and PRs",
460797
- cooldownSessions: 10,
460798
- isRelevant: async () => !getGlobalConfig().githubActionSetupCount
460799
- },
460800
- {
460801
- id: "install-slack-app",
460802
- content: async () => "Run /install-slack-app to use Orbit in Slack",
460803
- cooldownSessions: 10,
460804
- isRelevant: async () => !getGlobalConfig().slackAppInstallCount
460805
- },
460806
460061
  {
460807
460062
  id: "permissions",
460808
460063
  content: async () => "Use /permissions to pre-approve and pre-deny bash, edit, and MCP tools",
@@ -460838,7 +460093,7 @@ var init_tipRegistry = __esm(() => {
460838
460093
  },
460839
460094
  {
460840
460095
  id: "continue",
460841
- content: async () => "Run orbitcode --continue or orbitcode --resume to resume a conversation",
460096
+ content: async () => "Run orbit --continue or orbit --resume to resume a conversation",
460842
460097
  cooldownSessions: 10,
460843
460098
  isRelevant: async () => true
460844
460099
  },
@@ -460887,51 +460142,6 @@ var init_tipRegistry = __esm(() => {
460887
460142
  return config3.numStartups > 5;
460888
460143
  }
460889
460144
  },
460890
- {
460891
- id: "desktop-app",
460892
- content: async () => "Run Orbit AI locally or remotely using the Orbit desktop app: clau.de/desktop",
460893
- cooldownSessions: 15,
460894
- isRelevant: async () => getPlatform() !== "linux"
460895
- },
460896
- {
460897
- id: "desktop-shortcut",
460898
- content: async (ctx) => {
460899
- const blue2 = color("suggestion", ctx.theme);
460900
- return `Continue your session in Orbit AI Desktop with ${blue2("/desktop")}`;
460901
- },
460902
- cooldownSessions: 15,
460903
- isRelevant: async () => {
460904
- if (!getDesktopUpsellConfig().enable_shortcut_tip)
460905
- return false;
460906
- return process.platform === "darwin" || process.platform === "win32" && process.arch === "x64";
460907
- }
460908
- },
460909
- {
460910
- id: "web-app",
460911
- content: async () => "Run tasks in the cloud while you keep coding locally · clau.de/web",
460912
- cooldownSessions: 15,
460913
- isRelevant: async () => true
460914
- },
460915
- {
460916
- id: "mobile-app",
460917
- content: async () => "/mobile to use Orbit AI from the Orbit app on your phone",
460918
- cooldownSessions: 15,
460919
- isRelevant: async () => true
460920
- },
460921
- {
460922
- id: "opusplan-mode-reminder",
460923
- content: async () => `Your default model setting is Opus Plan Mode. Press ${getShortcutDisplay("chat:cycleMode", "Chat", "shift+tab")} twice to activate Plan Mode and plan with Orbit Opus.`,
460924
- cooldownSessions: 2,
460925
- async isRelevant() {
460926
- if (process.env.USER_TYPE === "ant")
460927
- return false;
460928
- const config3 = getGlobalConfig();
460929
- const modelSetting = getUserSpecifiedModelSetting();
460930
- const hasOpusPlanMode = modelSetting === "opusplan";
460931
- const daysSinceLastUse = config3.lastPlanModeUse ? (Date.now() - config3.lastPlanModeUse) / (1000 * 60 * 60 * 24) : Infinity;
460932
- return hasOpusPlanMode && daysSinceLastUse > 3;
460933
- }
460934
- },
460935
460145
  {
460936
460146
  id: "frontend-design-plugin",
460937
460147
  content: async (ctx) => {
@@ -461011,48 +460221,6 @@ ${blue2(`/plugin install vercel@${OFFICIAL_MARKETPLACE_NAME}`)}`;
461011
460221
  return false;
461012
460222
  return getFeatureValue_CACHED_MAY_BE_STALE("tengu_timber_lark", "off") !== "off";
461013
460223
  }
461014
- },
461015
- {
461016
- id: "guest-passes",
461017
- content: async (ctx) => {
461018
- const orbit = color("orbit", ctx.theme);
461019
- const reward = getCachedReferrerReward();
461020
- return reward ? `Share Orbit AI and earn ${orbit(formatCreditAmount(reward))} of extra usage · ${orbit("/passes")}` : `You have free guest passes to share · ${orbit("/passes")}`;
461021
- },
461022
- cooldownSessions: 3,
461023
- isRelevant: async () => {
461024
- const config3 = getGlobalConfig();
461025
- if (config3.hasVisitedPasses) {
461026
- return false;
461027
- }
461028
- const { eligible: eligible2 } = checkCachedPassesEligibility();
461029
- return eligible2;
461030
- }
461031
- },
461032
- {
461033
- id: "overage-credit",
461034
- content: async (ctx) => {
461035
- const orbit = color("orbit", ctx.theme);
461036
- const info = getCachedOverageCreditGrant();
461037
- const amount = info ? formatGrantAmount(info) : null;
461038
- if (!amount)
461039
- return "";
461040
- return `${orbit(`${amount} in extra usage, on us`)} · third-party apps · ${orbit("/extra-usage")}`;
461041
- },
461042
- cooldownSessions: 3,
461043
- isRelevant: async () => shouldShowOverageCreditUpsell()
461044
- },
461045
- {
461046
- id: "feedback-command",
461047
- content: async () => "Use /feedback to help us improve!",
461048
- cooldownSessions: 15,
461049
- async isRelevant() {
461050
- if (process.env.USER_TYPE === "ant") {
461051
- return false;
461052
- }
461053
- const config3 = getGlobalConfig();
461054
- return config3.numStartups > 5;
461055
- }
461056
460224
  }
461057
460225
  ];
461058
460226
  internalOnlyTips = process.env.USER_TYPE === "ant" ? [
@@ -462017,8 +461185,8 @@ var init_structuredIO = __esm(() => {
462017
461185
 
462018
461186
  // src/hooks/useFileHistorySnapshotInit.ts
462019
461187
  function useFileHistorySnapshotInit(initialFileHistorySnapshots, fileHistoryState, onUpdateState) {
462020
- const initialized5 = import_react276.useRef(false);
462021
- import_react276.useEffect(() => {
461188
+ const initialized5 = import_react274.useRef(false);
461189
+ import_react274.useEffect(() => {
462022
461190
  if (!fileHistoryEnabled() || initialized5.current) {
462023
461191
  return;
462024
461192
  }
@@ -462028,15 +461196,15 @@ function useFileHistorySnapshotInit(initialFileHistorySnapshots, fileHistoryStat
462028
461196
  }
462029
461197
  }, [fileHistoryState, initialFileHistorySnapshots, onUpdateState]);
462030
461198
  }
462031
- var import_react276;
461199
+ var import_react274;
462032
461200
  var init_useFileHistorySnapshotInit = __esm(() => {
462033
461201
  init_fileHistory();
462034
- import_react276 = __toESM(require_react(), 1);
461202
+ import_react274 = __toESM(require_react(), 1);
462035
461203
  });
462036
461204
 
462037
461205
  // src/components/permissions/SandboxPermissionRequest.tsx
462038
461206
  function SandboxPermissionRequest(t0) {
462039
- const $2 = import_react_compiler_runtime310.c(22);
461207
+ const $2 = import_react_compiler_runtime308.c(22);
462040
461208
  const {
462041
461209
  hostPattern: t1,
462042
461210
  onUserResponse
@@ -462098,10 +461266,10 @@ function SandboxPermissionRequest(t0) {
462098
461266
  let t5;
462099
461267
  if ($2[4] !== host) {
462100
461268
  t5 = !managedDomainsOnly ? [{
462101
- label: /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
461269
+ label: /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
462102
461270
  children: [
462103
461271
  "Yes, and don't ask again for ",
462104
- /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
461272
+ /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
462105
461273
  bold: true,
462106
461274
  children: host
462107
461275
  }, undefined, false, undefined, this)
@@ -462117,10 +461285,10 @@ function SandboxPermissionRequest(t0) {
462117
461285
  let t6;
462118
461286
  if ($2[6] === Symbol.for("react.memo_cache_sentinel")) {
462119
461287
  t6 = {
462120
- label: /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
461288
+ label: /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
462121
461289
  children: [
462122
461290
  "No, and tell Orbit what to do differently ",
462123
- /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
461291
+ /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
462124
461292
  bold: true,
462125
461293
  children: "(esc)"
462126
461294
  }, undefined, false, undefined, this)
@@ -462143,7 +461311,7 @@ function SandboxPermissionRequest(t0) {
462143
461311
  const options2 = t7;
462144
461312
  let t8;
462145
461313
  if ($2[9] === Symbol.for("react.memo_cache_sentinel")) {
462146
- t8 = /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
461314
+ t8 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
462147
461315
  dimColor: true,
462148
461316
  children: "Host:"
462149
461317
  }, undefined, false, undefined, this);
@@ -462153,10 +461321,10 @@ function SandboxPermissionRequest(t0) {
462153
461321
  }
462154
461322
  let t9;
462155
461323
  if ($2[10] !== host) {
462156
- t9 = /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedBox_default, {
461324
+ t9 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedBox_default, {
462157
461325
  children: [
462158
461326
  t8,
462159
- /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
461327
+ /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
462160
461328
  children: [
462161
461329
  " ",
462162
461330
  host
@@ -462171,9 +461339,9 @@ function SandboxPermissionRequest(t0) {
462171
461339
  }
462172
461340
  let t10;
462173
461341
  if ($2[12] === Symbol.for("react.memo_cache_sentinel")) {
462174
- t10 = /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedBox_default, {
461342
+ t10 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedBox_default, {
462175
461343
  marginTop: 1,
462176
- children: /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
461344
+ children: /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
462177
461345
  children: "Do you want to allow this connection?"
462178
461346
  }, undefined, false, undefined, this)
462179
461347
  }, undefined, false, undefined, this);
@@ -462196,8 +461364,8 @@ function SandboxPermissionRequest(t0) {
462196
461364
  }
462197
461365
  let t12;
462198
461366
  if ($2[15] !== onSelect || $2[16] !== options2 || $2[17] !== t11) {
462199
- t12 = /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedBox_default, {
462200
- children: /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(Select, {
461367
+ t12 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedBox_default, {
461368
+ children: /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(Select, {
462201
461369
  options: options2,
462202
461370
  onChange: onSelect,
462203
461371
  onCancel: t11
@@ -462212,9 +461380,9 @@ function SandboxPermissionRequest(t0) {
462212
461380
  }
462213
461381
  let t13;
462214
461382
  if ($2[19] !== t12 || $2[20] !== t9) {
462215
- t13 = /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(PermissionDialog, {
461383
+ t13 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(PermissionDialog, {
462216
461384
  title: "Network request outside of sandbox",
462217
- children: /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedBox_default, {
461385
+ children: /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedBox_default, {
462218
461386
  flexDirection: "column",
462219
461387
  paddingX: 2,
462220
461388
  paddingY: 1,
@@ -462233,14 +461401,14 @@ function SandboxPermissionRequest(t0) {
462233
461401
  }
462234
461402
  return t13;
462235
461403
  }
462236
- var import_react_compiler_runtime310, jsx_dev_runtime397;
461404
+ var import_react_compiler_runtime308, jsx_dev_runtime395;
462237
461405
  var init_SandboxPermissionRequest = __esm(() => {
462238
461406
  init_ink2();
462239
461407
  init_sandbox_adapter();
462240
461408
  init_select();
462241
461409
  init_PermissionDialog();
462242
- import_react_compiler_runtime310 = __toESM(require_dist3(), 1);
462243
- jsx_dev_runtime397 = __toESM(require_jsx_dev_runtime(), 1);
461410
+ import_react_compiler_runtime308 = __toESM(require_dist3(), 1);
461411
+ jsx_dev_runtime395 = __toESM(require_jsx_dev_runtime(), 1);
462244
461412
  });
462245
461413
 
462246
461414
  // src/components/SandboxViolationExpandedView.tsx
@@ -462252,7 +461420,7 @@ function formatTime(date6) {
462252
461420
  return `${h2}:${m}:${s}${ampm}`;
462253
461421
  }
462254
461422
  function SandboxViolationExpandedView() {
462255
- const $2 = import_react_compiler_runtime311.c(15);
461423
+ const $2 = import_react_compiler_runtime309.c(15);
462256
461424
  let t0;
462257
461425
  if ($2[0] === Symbol.for("react.memo_cache_sentinel")) {
462258
461426
  t0 = [];
@@ -462260,8 +461428,8 @@ function SandboxViolationExpandedView() {
462260
461428
  } else {
462261
461429
  t0 = $2[0];
462262
461430
  }
462263
- const [violations, setViolations] = import_react277.useState(t0);
462264
- const [totalCount, setTotalCount] = import_react277.useState(0);
461431
+ const [violations, setViolations] = import_react275.useState(t0);
461432
+ const [totalCount, setTotalCount] = import_react275.useState(0);
462265
461433
  let t1;
462266
461434
  let t2;
462267
461435
  if ($2[1] === Symbol.for("react.memo_cache_sentinel")) {
@@ -462286,7 +461454,7 @@ function SandboxViolationExpandedView() {
462286
461454
  t1 = $2[1];
462287
461455
  t2 = $2[2];
462288
461456
  }
462289
- import_react277.useEffect(t1, t2);
461457
+ import_react275.useEffect(t1, t2);
462290
461458
  if (!SandboxManager6.isSandboxingEnabled() || getPlatform() === "linux") {
462291
461459
  return null;
462292
461460
  }
@@ -462296,9 +461464,9 @@ function SandboxViolationExpandedView() {
462296
461464
  const t3 = totalCount === 1 ? "operation" : "operations";
462297
461465
  let t4;
462298
461466
  if ($2[3] !== t3 || $2[4] !== totalCount) {
462299
- t4 = /* @__PURE__ */ jsx_dev_runtime398.jsxDEV(ThemedBox_default, {
461467
+ t4 = /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(ThemedBox_default, {
462300
461468
  marginLeft: 0,
462301
- children: /* @__PURE__ */ jsx_dev_runtime398.jsxDEV(ThemedText, {
461469
+ children: /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(ThemedText, {
462302
461470
  color: "permission",
462303
461471
  children: [
462304
461472
  "⧈ Sandbox blocked ",
@@ -462317,7 +461485,7 @@ function SandboxViolationExpandedView() {
462317
461485
  }
462318
461486
  let t5;
462319
461487
  if ($2[6] !== violations) {
462320
- t5 = violations.map(_temp183);
461488
+ t5 = violations.map(_temp180);
462321
461489
  $2[6] = violations;
462322
461490
  $2[7] = t5;
462323
461491
  } else {
@@ -462326,9 +461494,9 @@ function SandboxViolationExpandedView() {
462326
461494
  const t6 = Math.min(10, violations.length);
462327
461495
  let t7;
462328
461496
  if ($2[8] !== t6 || $2[9] !== totalCount) {
462329
- t7 = /* @__PURE__ */ jsx_dev_runtime398.jsxDEV(ThemedBox_default, {
461497
+ t7 = /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(ThemedBox_default, {
462330
461498
  paddingLeft: 2,
462331
- children: /* @__PURE__ */ jsx_dev_runtime398.jsxDEV(ThemedText, {
461499
+ children: /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(ThemedText, {
462332
461500
  dimColor: true,
462333
461501
  children: [
462334
461502
  "… showing last ",
@@ -462346,7 +461514,7 @@ function SandboxViolationExpandedView() {
462346
461514
  }
462347
461515
  let t8;
462348
461516
  if ($2[11] !== t4 || $2[12] !== t5 || $2[13] !== t7) {
462349
- t8 = /* @__PURE__ */ jsx_dev_runtime398.jsxDEV(ThemedBox_default, {
461517
+ t8 = /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(ThemedBox_default, {
462350
461518
  flexDirection: "column",
462351
461519
  marginTop: 1,
462352
461520
  children: [
@@ -462364,10 +461532,10 @@ function SandboxViolationExpandedView() {
462364
461532
  }
462365
461533
  return t8;
462366
461534
  }
462367
- function _temp183(v, i3) {
462368
- return /* @__PURE__ */ jsx_dev_runtime398.jsxDEV(ThemedBox_default, {
461535
+ function _temp180(v, i3) {
461536
+ return /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(ThemedBox_default, {
462369
461537
  paddingLeft: 2,
462370
- children: /* @__PURE__ */ jsx_dev_runtime398.jsxDEV(ThemedText, {
461538
+ children: /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(ThemedText, {
462371
461539
  dimColor: true,
462372
461540
  children: [
462373
461541
  formatTime(v.timestamp),
@@ -462378,19 +461546,19 @@ function _temp183(v, i3) {
462378
461546
  }, undefined, true, undefined, this)
462379
461547
  }, `${v.timestamp.getTime()}-${i3}`, false, undefined, this);
462380
461548
  }
462381
- var import_react_compiler_runtime311, import_react277, jsx_dev_runtime398;
461549
+ var import_react_compiler_runtime309, import_react275, jsx_dev_runtime396;
462382
461550
  var init_SandboxViolationExpandedView = __esm(() => {
462383
461551
  init_ink2();
462384
461552
  init_sandbox_adapter();
462385
461553
  init_platform();
462386
- import_react_compiler_runtime311 = __toESM(require_dist3(), 1);
462387
- import_react277 = __toESM(require_react(), 1);
462388
- jsx_dev_runtime398 = __toESM(require_jsx_dev_runtime(), 1);
461554
+ import_react_compiler_runtime309 = __toESM(require_dist3(), 1);
461555
+ import_react275 = __toESM(require_react(), 1);
461556
+ jsx_dev_runtime396 = __toESM(require_jsx_dev_runtime(), 1);
462389
461557
  });
462390
461558
 
462391
461559
  // src/hooks/notifs/useMcpConnectivityStatus.tsx
462392
461560
  function useMcpConnectivityStatus(t0) {
462393
- const $2 = import_react_compiler_runtime312.c(4);
461561
+ const $2 = import_react_compiler_runtime310.c(4);
462394
461562
  const {
462395
461563
  mcpClients: t1
462396
461564
  } = t0;
@@ -462406,8 +461574,8 @@ function useMcpConnectivityStatus(t0) {
462406
461574
  if (getIsRemoteMode()) {
462407
461575
  return;
462408
461576
  }
462409
- const failedLocalClients = mcpClients.filter(_temp185);
462410
- const failedOrbitAiClients = mcpClients.filter(_temp278);
461577
+ const failedLocalClients = mcpClients.filter(_temp181);
461578
+ const failedOrbitAiClients = mcpClients.filter(_temp276);
462411
461579
  const needsAuthLocalServers = mcpClients.filter(_temp349);
462412
461580
  const needsAuthOrbitAiServers = mcpClients.filter(_temp437);
462413
461581
  if (failedLocalClients.length === 0 && failedOrbitAiClients.length === 0 && needsAuthLocalServers.length === 0 && needsAuthOrbitAiServers.length === 0) {
@@ -462416,9 +461584,9 @@ function useMcpConnectivityStatus(t0) {
462416
461584
  if (failedLocalClients.length > 0) {
462417
461585
  addNotification({
462418
461586
  key: "mcp-failed",
462419
- jsx: /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(jsx_dev_runtime399.Fragment, {
461587
+ jsx: /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(jsx_dev_runtime397.Fragment, {
462420
461588
  children: [
462421
- /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedText, {
461589
+ /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
462422
461590
  color: "error",
462423
461591
  children: [
462424
461592
  failedLocalClients.length,
@@ -462428,7 +461596,7 @@ function useMcpConnectivityStatus(t0) {
462428
461596
  " failed"
462429
461597
  ]
462430
461598
  }, undefined, true, undefined, this),
462431
- /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedText, {
461599
+ /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
462432
461600
  dimColor: true,
462433
461601
  children: " · /mcp"
462434
461602
  }, undefined, false, undefined, this)
@@ -462440,9 +461608,9 @@ function useMcpConnectivityStatus(t0) {
462440
461608
  if (failedOrbitAiClients.length > 0) {
462441
461609
  addNotification({
462442
461610
  key: "mcp-orbitai-failed",
462443
- jsx: /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(jsx_dev_runtime399.Fragment, {
461611
+ jsx: /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(jsx_dev_runtime397.Fragment, {
462444
461612
  children: [
462445
- /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedText, {
461613
+ /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
462446
461614
  color: "error",
462447
461615
  children: [
462448
461616
  failedOrbitAiClients.length,
@@ -462453,7 +461621,7 @@ function useMcpConnectivityStatus(t0) {
462453
461621
  "unavailable"
462454
461622
  ]
462455
461623
  }, undefined, true, undefined, this),
462456
- /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedText, {
461624
+ /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
462457
461625
  dimColor: true,
462458
461626
  children: " · /mcp"
462459
461627
  }, undefined, false, undefined, this)
@@ -462465,9 +461633,9 @@ function useMcpConnectivityStatus(t0) {
462465
461633
  if (needsAuthLocalServers.length > 0) {
462466
461634
  addNotification({
462467
461635
  key: "mcp-needs-auth",
462468
- jsx: /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(jsx_dev_runtime399.Fragment, {
461636
+ jsx: /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(jsx_dev_runtime397.Fragment, {
462469
461637
  children: [
462470
- /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedText, {
461638
+ /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
462471
461639
  color: "warning",
462472
461640
  children: [
462473
461641
  needsAuthLocalServers.length,
@@ -462478,7 +461646,7 @@ function useMcpConnectivityStatus(t0) {
462478
461646
  "auth"
462479
461647
  ]
462480
461648
  }, undefined, true, undefined, this),
462481
- /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedText, {
461649
+ /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
462482
461650
  dimColor: true,
462483
461651
  children: " · /mcp"
462484
461652
  }, undefined, false, undefined, this)
@@ -462490,9 +461658,9 @@ function useMcpConnectivityStatus(t0) {
462490
461658
  if (needsAuthOrbitAiServers.length > 0) {
462491
461659
  addNotification({
462492
461660
  key: "mcp-orbitai-needs-auth",
462493
- jsx: /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(jsx_dev_runtime399.Fragment, {
461661
+ jsx: /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(jsx_dev_runtime397.Fragment, {
462494
461662
  children: [
462495
- /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedText, {
461663
+ /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
462496
461664
  color: "warning",
462497
461665
  children: [
462498
461666
  needsAuthOrbitAiServers.length,
@@ -462503,7 +461671,7 @@ function useMcpConnectivityStatus(t0) {
462503
461671
  "auth"
462504
461672
  ]
462505
461673
  }, undefined, true, undefined, this),
462506
- /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedText, {
461674
+ /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(ThemedText, {
462507
461675
  dimColor: true,
462508
461676
  children: " · /mcp"
462509
461677
  }, undefined, false, undefined, this)
@@ -462525,7 +461693,7 @@ function useMcpConnectivityStatus(t0) {
462525
461693
  t2 = $2[2];
462526
461694
  t3 = $2[3];
462527
461695
  }
462528
- import_react278.useEffect(t2, t3);
461696
+ import_react276.useEffect(t2, t3);
462529
461697
  }
462530
461698
  function _temp437(client_2) {
462531
461699
  return client_2.type === "needs-auth" && client_2.config.type === "orbitai-proxy" && hasOrbitAiMcpEverConnected(client_2.name);
@@ -462533,22 +461701,22 @@ function _temp437(client_2) {
462533
461701
  function _temp349(client_1) {
462534
461702
  return client_1.type === "needs-auth" && client_1.config.type !== "orbitai-proxy";
462535
461703
  }
462536
- function _temp278(client_0) {
461704
+ function _temp276(client_0) {
462537
461705
  return client_0.type === "failed" && client_0.config.type === "orbitai-proxy" && hasOrbitAiMcpEverConnected(client_0.name);
462538
461706
  }
462539
- function _temp185(client) {
461707
+ function _temp181(client) {
462540
461708
  return client.type === "failed" && client.config.type !== "sse-ide" && client.config.type !== "ws-ide" && client.config.type !== "orbitai-proxy";
462541
461709
  }
462542
- var import_react_compiler_runtime312, import_react278, jsx_dev_runtime399, EMPTY_MCP_CLIENTS;
461710
+ var import_react_compiler_runtime310, import_react276, jsx_dev_runtime397, EMPTY_MCP_CLIENTS;
462543
461711
  var init_useMcpConnectivityStatus = __esm(() => {
462544
461712
  init_log2();
462545
461713
  init_notifications();
462546
461714
  init_state();
462547
461715
  init_ink2();
462548
461716
  init_orbitai();
462549
- import_react_compiler_runtime312 = __toESM(require_dist3(), 1);
462550
- import_react278 = __toESM(require_react(), 1);
462551
- jsx_dev_runtime399 = __toESM(require_jsx_dev_runtime(), 1);
461717
+ import_react_compiler_runtime310 = __toESM(require_dist3(), 1);
461718
+ import_react276 = __toESM(require_react(), 1);
461719
+ jsx_dev_runtime397 = __toESM(require_jsx_dev_runtime(), 1);
462552
461720
  EMPTY_MCP_CLIENTS = [];
462553
461721
  });
462554
461722
 
@@ -462557,9 +461725,9 @@ function useAutoModeUnavailableNotification() {
462557
461725
  const { addNotification } = useNotifications();
462558
461726
  const mode = useAppState((s) => s.toolPermissionContext.mode);
462559
461727
  const isAutoModeAvailable = useAppState((s) => s.toolPermissionContext.isAutoModeAvailable);
462560
- const shownRef = import_react279.useRef(false);
462561
- const prevModeRef = import_react279.useRef(mode);
462562
- import_react279.useEffect(() => {
461728
+ const shownRef = import_react277.useRef(false);
461729
+ const prevModeRef = import_react277.useRef(mode);
461730
+ import_react277.useEffect(() => {
462563
461731
  const prevMode = prevModeRef.current;
462564
461732
  prevModeRef.current = mode;
462565
461733
  if (true)
@@ -462583,24 +461751,24 @@ function useAutoModeUnavailableNotification() {
462583
461751
  });
462584
461752
  }, [mode, isAutoModeAvailable, addNotification]);
462585
461753
  }
462586
- var import_react279;
461754
+ var import_react277;
462587
461755
  var init_useAutoModeUnavailableNotification = __esm(() => {
462588
461756
  init_notifications();
462589
461757
  init_state();
462590
461758
  init_AppState();
462591
461759
  init_permissionSetup();
462592
461760
  init_settings2();
462593
- import_react279 = __toESM(require_react(), 1);
461761
+ import_react277 = __toESM(require_react(), 1);
462594
461762
  });
462595
461763
 
462596
461764
  // src/hooks/notifs/useLspInitializationNotification.tsx
462597
461765
  function useLspInitializationNotification() {
462598
- const $2 = import_react_compiler_runtime313.c(10);
461766
+ const $2 = import_react_compiler_runtime311.c(10);
462599
461767
  const {
462600
461768
  addNotification
462601
461769
  } = useNotifications();
462602
461770
  const setAppState = useSetAppState();
462603
- const [shouldPoll, setShouldPoll] = React134.useState(_temp186);
461771
+ const [shouldPoll, setShouldPoll] = React133.useState(_temp183);
462604
461772
  let t0;
462605
461773
  if ($2[0] === Symbol.for("react.memo_cache_sentinel")) {
462606
461774
  t0 = new Set;
@@ -462608,7 +461776,7 @@ function useLspInitializationNotification() {
462608
461776
  } else {
462609
461777
  t0 = $2[0];
462610
461778
  }
462611
- const notifiedErrorsRef = React134.useRef(t0);
461779
+ const notifiedErrorsRef = React133.useRef(t0);
462612
461780
  let t1;
462613
461781
  if ($2[1] !== addNotification || $2[2] !== setAppState) {
462614
461782
  t1 = (source, errorMessage4) => {
@@ -462619,7 +461787,7 @@ function useLspInitializationNotification() {
462619
461787
  notifiedErrorsRef.current.add(errorKey);
462620
461788
  logForDebugging2(`LSP error: ${source} - ${errorMessage4}`);
462621
461789
  setAppState((prev) => {
462622
- const existingKeys = new Set(prev.plugins.errors.map(_temp279));
461790
+ const existingKeys = new Set(prev.plugins.errors.map(_temp277));
462623
461791
  const stateErrorKey = `generic-error:${source}:${errorMessage4}`;
462624
461792
  if (existingKeys.has(stateErrorKey)) {
462625
461793
  return prev;
@@ -462639,9 +461807,9 @@ function useLspInitializationNotification() {
462639
461807
  const displayName = source.startsWith("plugin:") ? source.split(":")[1] ?? source : source;
462640
461808
  addNotification({
462641
461809
  key: `lsp-error-${source}`,
462642
- jsx: /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(jsx_dev_runtime400.Fragment, {
461810
+ jsx: /* @__PURE__ */ jsx_dev_runtime398.jsxDEV(jsx_dev_runtime398.Fragment, {
462643
461811
  children: [
462644
- /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
461812
+ /* @__PURE__ */ jsx_dev_runtime398.jsxDEV(ThemedText, {
462645
461813
  color: "error",
462646
461814
  children: [
462647
461815
  "LSP for ",
@@ -462649,7 +461817,7 @@ function useLspInitializationNotification() {
462649
461817
  " failed"
462650
461818
  ]
462651
461819
  }, undefined, true, undefined, this),
462652
- /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
461820
+ /* @__PURE__ */ jsx_dev_runtime398.jsxDEV(ThemedText, {
462653
461821
  dimColor: true,
462654
461822
  children: " · /plugin for details"
462655
461823
  }, undefined, false, undefined, this)
@@ -462719,18 +461887,18 @@ function useLspInitializationNotification() {
462719
461887
  t3 = $2[8];
462720
461888
  t4 = $2[9];
462721
461889
  }
462722
- React134.useEffect(t3, t4);
461890
+ React133.useEffect(t3, t4);
462723
461891
  }
462724
- function _temp279(e2) {
461892
+ function _temp277(e2) {
462725
461893
  if (e2.type === "generic-error") {
462726
461894
  return `generic-error:${e2.source}:${e2.error}`;
462727
461895
  }
462728
461896
  return `${e2.type}:${e2.source}`;
462729
461897
  }
462730
- function _temp186() {
461898
+ function _temp183() {
462731
461899
  return isEnvTruthy("true");
462732
461900
  }
462733
- var import_react_compiler_runtime313, React134, jsx_dev_runtime400, LSP_POLL_INTERVAL_MS = 5000;
461901
+ var import_react_compiler_runtime311, React133, jsx_dev_runtime398, LSP_POLL_INTERVAL_MS = 5000;
462734
461902
  var init_useLspInitializationNotification = __esm(() => {
462735
461903
  init_dist();
462736
461904
  init_state();
@@ -462740,9 +461908,9 @@ var init_useLspInitializationNotification = __esm(() => {
462740
461908
  init_AppState();
462741
461909
  init_debug();
462742
461910
  init_envUtils();
462743
- import_react_compiler_runtime313 = __toESM(require_dist3(), 1);
462744
- React134 = __toESM(require_react(), 1);
462745
- jsx_dev_runtime400 = __toESM(require_jsx_dev_runtime(), 1);
461911
+ import_react_compiler_runtime311 = __toESM(require_dist3(), 1);
461912
+ React133 = __toESM(require_react(), 1);
461913
+ jsx_dev_runtime398 = __toESM(require_jsx_dev_runtime(), 1);
462746
461914
  });
462747
461915
 
462748
461916
  // src/utils/binaryCheck.ts
@@ -462953,9 +462121,9 @@ var init_lspRecommendation = __esm(() => {
462953
462121
 
462954
462122
  // src/hooks/usePluginRecommendationBase.tsx
462955
462123
  function usePluginRecommendationBase() {
462956
- const $2 = import_react_compiler_runtime314.c(6);
462957
- const [recommendation, setRecommendation] = React135.useState(null);
462958
- const isCheckingRef = React135.useRef(false);
462124
+ const $2 = import_react_compiler_runtime312.c(6);
462125
+ const [recommendation, setRecommendation] = React134.useState(null);
462126
+ const isCheckingRef = React134.useRef(false);
462959
462127
  let t0;
462960
462128
  if ($2[0] !== recommendation) {
462961
462129
  t0 = (resolve39) => {
@@ -463015,7 +462183,7 @@ async function installPluginAndNotify(pluginId, pluginName, keyPrefix, addNotifi
463015
462183
  await install(pluginData);
463016
462184
  addNotification({
463017
462185
  key: `${keyPrefix}-installed`,
463018
- jsx: /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
462186
+ jsx: /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedText, {
463019
462187
  color: "success",
463020
462188
  children: [
463021
462189
  figures_default.tick,
@@ -463031,7 +462199,7 @@ async function installPluginAndNotify(pluginId, pluginName, keyPrefix, addNotifi
463031
462199
  logError(error41);
463032
462200
  addNotification({
463033
462201
  key: `${keyPrefix}-install-failed`,
463034
- jsx: /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
462202
+ jsx: /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedText, {
463035
462203
  color: "error",
463036
462204
  children: [
463037
462205
  "Failed to install ",
@@ -463043,23 +462211,23 @@ async function installPluginAndNotify(pluginId, pluginName, keyPrefix, addNotifi
463043
462211
  });
463044
462212
  }
463045
462213
  }
463046
- var import_react_compiler_runtime314, React135, jsx_dev_runtime401;
462214
+ var import_react_compiler_runtime312, React134, jsx_dev_runtime399;
463047
462215
  var init_usePluginRecommendationBase = __esm(() => {
463048
462216
  init_figures();
463049
462217
  init_state();
463050
462218
  init_ink2();
463051
462219
  init_log2();
463052
462220
  init_marketplaceManager();
463053
- import_react_compiler_runtime314 = __toESM(require_dist3(), 1);
463054
- React135 = __toESM(require_react(), 1);
463055
- jsx_dev_runtime401 = __toESM(require_jsx_dev_runtime(), 1);
462221
+ import_react_compiler_runtime312 = __toESM(require_dist3(), 1);
462222
+ React134 = __toESM(require_react(), 1);
462223
+ jsx_dev_runtime399 = __toESM(require_jsx_dev_runtime(), 1);
463056
462224
  });
463057
462225
 
463058
462226
  // src/hooks/useLspPluginRecommendation.tsx
463059
- import { extname as extname13, join as join123 } from "path";
462227
+ import { extname as extname13, join as join122 } from "path";
463060
462228
  function useLspPluginRecommendation() {
463061
- const $2 = import_react_compiler_runtime315.c(12);
463062
- const trackedFiles = useAppState(_temp187);
462229
+ const $2 = import_react_compiler_runtime313.c(12);
462230
+ const trackedFiles = useAppState(_temp185);
463063
462231
  const {
463064
462232
  addNotification
463065
462233
  } = useNotifications();
@@ -463070,7 +462238,7 @@ function useLspPluginRecommendation() {
463070
462238
  } else {
463071
462239
  t0 = $2[0];
463072
462240
  }
463073
- const checkedFilesRef = React136.useRef(t0);
462241
+ const checkedFilesRef = React135.useRef(t0);
463074
462242
  const {
463075
462243
  recommendation,
463076
462244
  clearRecommendation,
@@ -463123,7 +462291,7 @@ function useLspPluginRecommendation() {
463123
462291
  t1 = $2[3];
463124
462292
  t2 = $2[4];
463125
462293
  }
463126
- React136.useEffect(t1, t2);
462294
+ React135.useEffect(t1, t2);
463127
462295
  let t3;
463128
462296
  if ($2[5] !== addNotification || $2[6] !== clearRecommendation || $2[7] !== recommendation) {
463129
462297
  t3 = (response) => {
@@ -463141,7 +462309,7 @@ function useLspPluginRecommendation() {
463141
462309
  case "yes": {
463142
462310
  installPluginAndNotify(pluginId, pluginName, "lsp-plugin", addNotification, async (pluginData) => {
463143
462311
  logForDebugging2(`[useLspPluginRecommendation] Installing plugin: ${pluginId}`);
463144
- const localSourcePath = typeof pluginData.entry.source === "string" ? join123(pluginData.marketplaceInstallLocation, pluginData.entry.source) : undefined;
462312
+ const localSourcePath = typeof pluginData.entry.source === "string" ? join122(pluginData.marketplaceInstallLocation, pluginData.entry.source) : undefined;
463145
462313
  await cacheAndRegisterPlugin(pluginId, pluginData.entry, "user", undefined, localSourcePath);
463146
462314
  const settings = getSettingsForSource("userSettings");
463147
462315
  updateSettingsForSource("userSettings", {
@@ -463167,7 +462335,7 @@ function useLspPluginRecommendation() {
463167
462335
  break bb60;
463168
462336
  }
463169
462337
  case "disable": {
463170
- saveGlobalConfig(_temp280);
462338
+ saveGlobalConfig(_temp278);
463171
462339
  }
463172
462340
  }
463173
462341
  clearRecommendation();
@@ -463194,7 +462362,7 @@ function useLspPluginRecommendation() {
463194
462362
  }
463195
462363
  return t4;
463196
462364
  }
463197
- function _temp280(current) {
462365
+ function _temp278(current) {
463198
462366
  if (current.lspRecommendationDisabled) {
463199
462367
  return current;
463200
462368
  }
@@ -463203,10 +462371,10 @@ function _temp280(current) {
463203
462371
  lspRecommendationDisabled: true
463204
462372
  };
463205
462373
  }
463206
- function _temp187(s) {
462374
+ function _temp185(s) {
463207
462375
  return s.fileHistory.trackedFiles;
463208
462376
  }
463209
- var import_react_compiler_runtime315, React136, TIMEOUT_THRESHOLD_MS = 28000;
462377
+ var import_react_compiler_runtime313, React135, TIMEOUT_THRESHOLD_MS = 28000;
463210
462378
  var init_useLspPluginRecommendation = __esm(() => {
463211
462379
  init_state();
463212
462380
  init_notifications();
@@ -463218,8 +462386,8 @@ var init_useLspPluginRecommendation = __esm(() => {
463218
462386
  init_pluginInstallationHelpers();
463219
462387
  init_settings2();
463220
462388
  init_usePluginRecommendationBase();
463221
- import_react_compiler_runtime315 = __toESM(require_dist3(), 1);
463222
- React136 = __toESM(require_react(), 1);
462389
+ import_react_compiler_runtime313 = __toESM(require_dist3(), 1);
462390
+ React135 = __toESM(require_react(), 1);
463223
462391
  });
463224
462392
 
463225
462393
  // src/components/LspRecommendation/LspRecommendationMenu.tsx
@@ -463229,9 +462397,9 @@ function LspRecommendationMenu({
463229
462397
  fileExtension: fileExtension2,
463230
462398
  onResponse
463231
462399
  }) {
463232
- const onResponseRef = React137.useRef(onResponse);
462400
+ const onResponseRef = React136.useRef(onResponse);
463233
462401
  onResponseRef.current = onResponse;
463234
- React137.useEffect(() => {
462402
+ React136.useEffect(() => {
463235
462403
  const timeoutId = setTimeout((ref) => ref.current("no"), AUTO_DISMISS_MS2, onResponseRef);
463236
462404
  return () => clearTimeout(timeoutId);
463237
462405
  }, []);
@@ -463252,10 +462420,10 @@ function LspRecommendationMenu({
463252
462420
  }
463253
462421
  }
463254
462422
  const options2 = [{
463255
- label: /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
462423
+ label: /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
463256
462424
  children: [
463257
462425
  "Yes, install ",
463258
- /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
462426
+ /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
463259
462427
  bold: true,
463260
462428
  children: pluginName
463261
462429
  }, undefined, false, undefined, this)
@@ -463266,10 +462434,10 @@ function LspRecommendationMenu({
463266
462434
  label: "No, not now",
463267
462435
  value: "no"
463268
462436
  }, {
463269
- label: /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
462437
+ label: /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
463270
462438
  children: [
463271
462439
  "Never for ",
463272
- /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
462440
+ /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
463273
462441
  bold: true,
463274
462442
  children: pluginName
463275
462443
  }, undefined, false, undefined, this)
@@ -463280,27 +462448,27 @@ function LspRecommendationMenu({
463280
462448
  label: "Disable all LSP recommendations",
463281
462449
  value: "disable"
463282
462450
  }];
463283
- return /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(PermissionDialog, {
462451
+ return /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(PermissionDialog, {
463284
462452
  title: "LSP Plugin Recommendation",
463285
- children: /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedBox_default, {
462453
+ children: /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedBox_default, {
463286
462454
  flexDirection: "column",
463287
462455
  paddingX: 2,
463288
462456
  paddingY: 1,
463289
462457
  children: [
463290
- /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedBox_default, {
462458
+ /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedBox_default, {
463291
462459
  marginBottom: 1,
463292
- children: /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
462460
+ children: /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
463293
462461
  dimColor: true,
463294
462462
  children: "LSP provides code intelligence like go-to-definition and error checking"
463295
462463
  }, undefined, false, undefined, this)
463296
462464
  }, undefined, false, undefined, this),
463297
- /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedBox_default, {
462465
+ /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedBox_default, {
463298
462466
  children: [
463299
- /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
462467
+ /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
463300
462468
  dimColor: true,
463301
462469
  children: "Plugin:"
463302
462470
  }, undefined, false, undefined, this),
463303
- /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
462471
+ /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
463304
462472
  children: [
463305
462473
  " ",
463306
462474
  pluginName
@@ -463308,19 +462476,19 @@ function LspRecommendationMenu({
463308
462476
  }, undefined, true, undefined, this)
463309
462477
  ]
463310
462478
  }, undefined, true, undefined, this),
463311
- pluginDescription && /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedBox_default, {
463312
- children: /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
462479
+ pluginDescription && /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedBox_default, {
462480
+ children: /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
463313
462481
  dimColor: true,
463314
462482
  children: pluginDescription
463315
462483
  }, undefined, false, undefined, this)
463316
462484
  }, undefined, false, undefined, this),
463317
- /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedBox_default, {
462485
+ /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedBox_default, {
463318
462486
  children: [
463319
- /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
462487
+ /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
463320
462488
  dimColor: true,
463321
462489
  children: "Triggered by:"
463322
462490
  }, undefined, false, undefined, this),
463323
- /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
462491
+ /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
463324
462492
  children: [
463325
462493
  " ",
463326
462494
  fileExtension2,
@@ -463329,14 +462497,14 @@ function LspRecommendationMenu({
463329
462497
  }, undefined, true, undefined, this)
463330
462498
  ]
463331
462499
  }, undefined, true, undefined, this),
463332
- /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedBox_default, {
462500
+ /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedBox_default, {
463333
462501
  marginTop: 1,
463334
- children: /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
462502
+ children: /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
463335
462503
  children: "Would you like to install this LSP plugin?"
463336
462504
  }, undefined, false, undefined, this)
463337
462505
  }, undefined, false, undefined, this),
463338
- /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedBox_default, {
463339
- children: /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(Select, {
462506
+ /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedBox_default, {
462507
+ children: /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(Select, {
463340
462508
  options: options2,
463341
462509
  onChange: onSelect,
463342
462510
  onCancel: () => onResponse("no")
@@ -463346,19 +462514,19 @@ function LspRecommendationMenu({
463346
462514
  }, undefined, true, undefined, this)
463347
462515
  }, undefined, false, undefined, this);
463348
462516
  }
463349
- var React137, jsx_dev_runtime402, AUTO_DISMISS_MS2 = 30000;
462517
+ var React136, jsx_dev_runtime400, AUTO_DISMISS_MS2 = 30000;
463350
462518
  var init_LspRecommendationMenu = __esm(() => {
463351
462519
  init_ink2();
463352
462520
  init_select();
463353
462521
  init_PermissionDialog();
463354
- React137 = __toESM(require_react(), 1);
463355
- jsx_dev_runtime402 = __toESM(require_jsx_dev_runtime(), 1);
462522
+ React136 = __toESM(require_react(), 1);
462523
+ jsx_dev_runtime400 = __toESM(require_jsx_dev_runtime(), 1);
463356
462524
  });
463357
462525
 
463358
462526
  // src/hooks/useOrbitCodeHintRecommendation.tsx
463359
462527
  function useOrbitCodeHintRecommendation() {
463360
- const $2 = import_react_compiler_runtime316.c(11);
463361
- const pendingHint2 = React138.useSyncExternalStore(subscribeToPendingHint, getPendingHintSnapshot);
462528
+ const $2 = import_react_compiler_runtime314.c(11);
462529
+ const pendingHint2 = React137.useSyncExternalStore(subscribeToPendingHint, getPendingHintSnapshot);
463362
462530
  const {
463363
462531
  addNotification
463364
462532
  } = useNotifications();
@@ -463395,7 +462563,7 @@ function useOrbitCodeHintRecommendation() {
463395
462563
  t0 = $2[2];
463396
462564
  t1 = $2[3];
463397
462565
  }
463398
- React138.useEffect(t0, t1);
462566
+ React137.useEffect(t0, t1);
463399
462567
  let t2;
463400
462568
  if ($2[4] !== addNotification || $2[5] !== clearRecommendation || $2[6] !== recommendation) {
463401
462569
  t2 = (response) => {
@@ -463460,7 +462628,7 @@ function useOrbitCodeHintRecommendation() {
463460
462628
  }
463461
462629
  return t3;
463462
462630
  }
463463
- var import_react_compiler_runtime316, React138;
462631
+ var import_react_compiler_runtime314, React137;
463464
462632
  var init_useOrbitCodeHintRecommendation = __esm(() => {
463465
462633
  init_notifications();
463466
462634
  init_orbitCodeHints();
@@ -463468,8 +462636,8 @@ var init_useOrbitCodeHintRecommendation = __esm(() => {
463468
462636
  init_hintRecommendation();
463469
462637
  init_pluginInstallationHelpers();
463470
462638
  init_usePluginRecommendationBase();
463471
- import_react_compiler_runtime316 = __toESM(require_dist3(), 1);
463472
- React138 = __toESM(require_react(), 1);
462639
+ import_react_compiler_runtime314 = __toESM(require_dist3(), 1);
462640
+ React137 = __toESM(require_react(), 1);
463473
462641
  });
463474
462642
 
463475
462643
  // src/components/OrbitCodeHint/PluginHintMenu.tsx
@@ -463480,9 +462648,9 @@ function PluginHintMenu({
463480
462648
  sourceCommand,
463481
462649
  onResponse
463482
462650
  }) {
463483
- const onResponseRef = React139.useRef(onResponse);
462651
+ const onResponseRef = React138.useRef(onResponse);
463484
462652
  onResponseRef.current = onResponse;
463485
- React139.useEffect(() => {
462653
+ React138.useEffect(() => {
463486
462654
  const timeoutId = setTimeout((ref) => ref.current("no"), AUTO_DISMISS_MS3, onResponseRef);
463487
462655
  return () => clearTimeout(timeoutId);
463488
462656
  }, []);
@@ -463499,10 +462667,10 @@ function PluginHintMenu({
463499
462667
  }
463500
462668
  }
463501
462669
  const options2 = [{
463502
- label: /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedText, {
462670
+ label: /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
463503
462671
  children: [
463504
462672
  "Yes, install ",
463505
- /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedText, {
462673
+ /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
463506
462674
  bold: true,
463507
462675
  children: pluginName
463508
462676
  }, undefined, false, undefined, this)
@@ -463516,20 +462684,20 @@ function PluginHintMenu({
463516
462684
  label: "No, and don't show plugin installation hints again",
463517
462685
  value: "disable"
463518
462686
  }];
463519
- return /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(PermissionDialog, {
462687
+ return /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(PermissionDialog, {
463520
462688
  title: "Plugin Recommendation",
463521
- children: /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedBox_default, {
462689
+ children: /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedBox_default, {
463522
462690
  flexDirection: "column",
463523
462691
  paddingX: 2,
463524
462692
  paddingY: 1,
463525
462693
  children: [
463526
- /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedBox_default, {
462694
+ /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedBox_default, {
463527
462695
  marginBottom: 1,
463528
- children: /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedText, {
462696
+ children: /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
463529
462697
  dimColor: true,
463530
462698
  children: [
463531
462699
  "The ",
463532
- /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedText, {
462700
+ /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
463533
462701
  bold: true,
463534
462702
  children: sourceCommand
463535
462703
  }, undefined, false, undefined, this),
@@ -463537,13 +462705,13 @@ function PluginHintMenu({
463537
462705
  ]
463538
462706
  }, undefined, true, undefined, this)
463539
462707
  }, undefined, false, undefined, this),
463540
- /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedBox_default, {
462708
+ /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedBox_default, {
463541
462709
  children: [
463542
- /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedText, {
462710
+ /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
463543
462711
  dimColor: true,
463544
462712
  children: "Plugin:"
463545
462713
  }, undefined, false, undefined, this),
463546
- /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedText, {
462714
+ /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
463547
462715
  children: [
463548
462716
  " ",
463549
462717
  pluginName
@@ -463551,13 +462719,13 @@ function PluginHintMenu({
463551
462719
  }, undefined, true, undefined, this)
463552
462720
  ]
463553
462721
  }, undefined, true, undefined, this),
463554
- /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedBox_default, {
462722
+ /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedBox_default, {
463555
462723
  children: [
463556
- /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedText, {
462724
+ /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
463557
462725
  dimColor: true,
463558
462726
  children: "Marketplace:"
463559
462727
  }, undefined, false, undefined, this),
463560
- /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedText, {
462728
+ /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
463561
462729
  children: [
463562
462730
  " ",
463563
462731
  marketplaceName
@@ -463565,20 +462733,20 @@ function PluginHintMenu({
463565
462733
  }, undefined, true, undefined, this)
463566
462734
  ]
463567
462735
  }, undefined, true, undefined, this),
463568
- pluginDescription && /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedBox_default, {
463569
- children: /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedText, {
462736
+ pluginDescription && /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedBox_default, {
462737
+ children: /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
463570
462738
  dimColor: true,
463571
462739
  children: pluginDescription
463572
462740
  }, undefined, false, undefined, this)
463573
462741
  }, undefined, false, undefined, this),
463574
- /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedBox_default, {
462742
+ /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedBox_default, {
463575
462743
  marginTop: 1,
463576
- children: /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedText, {
462744
+ children: /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
463577
462745
  children: "Would you like to install it?"
463578
462746
  }, undefined, false, undefined, this)
463579
462747
  }, undefined, false, undefined, this),
463580
- /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedBox_default, {
463581
- children: /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(Select, {
462748
+ /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedBox_default, {
462749
+ children: /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(Select, {
463582
462750
  options: options2,
463583
462751
  onChange: onSelect,
463584
462752
  onCancel: () => onResponse("no")
@@ -463588,13 +462756,577 @@ function PluginHintMenu({
463588
462756
  }, undefined, true, undefined, this)
463589
462757
  }, undefined, false, undefined, this);
463590
462758
  }
463591
- var React139, jsx_dev_runtime403, AUTO_DISMISS_MS3 = 30000;
462759
+ var React138, jsx_dev_runtime401, AUTO_DISMISS_MS3 = 30000;
463592
462760
  var init_PluginHintMenu = __esm(() => {
463593
462761
  init_ink2();
463594
462762
  init_select();
463595
462763
  init_PermissionDialog();
463596
- React139 = __toESM(require_react(), 1);
462764
+ React138 = __toESM(require_react(), 1);
462765
+ jsx_dev_runtime401 = __toESM(require_jsx_dev_runtime(), 1);
462766
+ });
462767
+
462768
+ // src/utils/desktopDeepLink.ts
462769
+ import { readdir as readdir26 } from "fs/promises";
462770
+ import { join as join123 } from "path";
462771
+ function isDevMode() {
462772
+ if (true) {
462773
+ return true;
462774
+ }
462775
+ const pathsToCheck = [process.argv[1] || "", process.execPath || ""];
462776
+ const buildDirs = [
462777
+ "/build-ant/",
462778
+ "/build-ant-native/",
462779
+ "/build-external/",
462780
+ "/build-external-native/"
462781
+ ];
462782
+ return pathsToCheck.some((p) => buildDirs.some((dir) => p.includes(dir)));
462783
+ }
462784
+ function buildDesktopDeepLink(sessionId) {
462785
+ const protocol = isDevMode() ? "orbit-dev" : "orbit";
462786
+ const url3 = new URL(`${protocol}://resume`);
462787
+ url3.searchParams.set("session", sessionId);
462788
+ url3.searchParams.set("cwd", getCwd());
462789
+ return url3.toString();
462790
+ }
462791
+ async function isDesktopInstalled() {
462792
+ if (isDevMode()) {
462793
+ return true;
462794
+ }
462795
+ const platform6 = process.platform;
462796
+ if (platform6 === "darwin") {
462797
+ return pathExists("/Applications/Orbit.app");
462798
+ } else if (platform6 === "linux") {
462799
+ const { code, stdout } = await execFileNoThrow("xdg-mime", [
462800
+ "query",
462801
+ "default",
462802
+ "x-scheme-handler/orbit"
462803
+ ]);
462804
+ return code === 0 && stdout.trim().length > 0;
462805
+ } else if (platform6 === "win32") {
462806
+ const { code } = await execFileNoThrow("reg", [
462807
+ "query",
462808
+ "HKEY_CLASSES_ROOT\\orbit",
462809
+ "/ve"
462810
+ ]);
462811
+ return code === 0;
462812
+ }
462813
+ return false;
462814
+ }
462815
+ async function getDesktopVersion() {
462816
+ const platform6 = process.platform;
462817
+ if (platform6 === "darwin") {
462818
+ const { code, stdout } = await execFileNoThrow("defaults", [
462819
+ "read",
462820
+ "/Applications/Orbit.app/Contents/Info.plist",
462821
+ "CFBundleShortVersionString"
462822
+ ]);
462823
+ if (code !== 0) {
462824
+ return null;
462825
+ }
462826
+ const version2 = stdout.trim();
462827
+ return version2.length > 0 ? version2 : null;
462828
+ } else if (platform6 === "win32") {
462829
+ const localAppData = process.env.LOCALAPPDATA;
462830
+ if (!localAppData) {
462831
+ return null;
462832
+ }
462833
+ const installDir = join123(localAppData, "AnthropicOrbit");
462834
+ try {
462835
+ const entries = await readdir26(installDir);
462836
+ const versions2 = entries.filter((e2) => e2.startsWith("app-")).map((e2) => e2.slice(4)).filter((v) => import_semver11.coerce(v) !== null).sort((a2, b) => {
462837
+ const ca = import_semver11.coerce(a2);
462838
+ const cb = import_semver11.coerce(b);
462839
+ return ca.compare(cb);
462840
+ });
462841
+ return versions2.length > 0 ? versions2[versions2.length - 1] : null;
462842
+ } catch {
462843
+ return null;
462844
+ }
462845
+ }
462846
+ return null;
462847
+ }
462848
+ async function getDesktopInstallStatus() {
462849
+ const installed = await isDesktopInstalled();
462850
+ if (!installed) {
462851
+ return { status: "not-installed" };
462852
+ }
462853
+ let version2;
462854
+ try {
462855
+ version2 = await getDesktopVersion();
462856
+ } catch {
462857
+ return { status: "ready", version: "unknown" };
462858
+ }
462859
+ if (!version2) {
462860
+ return { status: "ready", version: "unknown" };
462861
+ }
462862
+ const coerced = import_semver11.coerce(version2);
462863
+ if (!coerced || !gte(coerced.version, MIN_DESKTOP_VERSION)) {
462864
+ return { status: "version-too-old", version: version2 };
462865
+ }
462866
+ return { status: "ready", version: version2 };
462867
+ }
462868
+ async function openDeepLink(deepLinkUrl) {
462869
+ const platform6 = process.platform;
462870
+ logForDebugging2(`Opening deep link: ${deepLinkUrl}`);
462871
+ if (platform6 === "darwin") {
462872
+ if (isDevMode()) {
462873
+ const { code: code2 } = await execFileNoThrow("osascript", [
462874
+ "-e",
462875
+ `tell application "Electron" to open location "${deepLinkUrl}"`
462876
+ ]);
462877
+ return code2 === 0;
462878
+ }
462879
+ const { code } = await execFileNoThrow("open", [deepLinkUrl]);
462880
+ return code === 0;
462881
+ } else if (platform6 === "linux") {
462882
+ const { code } = await execFileNoThrow("xdg-open", [deepLinkUrl]);
462883
+ return code === 0;
462884
+ } else if (platform6 === "win32") {
462885
+ const { code } = await execFileNoThrow("cmd", [
462886
+ "/c",
462887
+ "start",
462888
+ "",
462889
+ deepLinkUrl
462890
+ ]);
462891
+ return code === 0;
462892
+ }
462893
+ return false;
462894
+ }
462895
+ async function openCurrentSessionInDesktop() {
462896
+ const sessionId = getSessionId();
462897
+ const installed = await isDesktopInstalled();
462898
+ if (!installed) {
462899
+ return {
462900
+ success: false,
462901
+ error: "Orbit Desktop is not installed. Install it from https://orbit.ai/download"
462902
+ };
462903
+ }
462904
+ const deepLinkUrl = buildDesktopDeepLink(sessionId);
462905
+ const opened = await openDeepLink(deepLinkUrl);
462906
+ if (!opened) {
462907
+ return {
462908
+ success: false,
462909
+ error: "Failed to open Orbit Desktop. Please try opening it manually.",
462910
+ deepLinkUrl
462911
+ };
462912
+ }
462913
+ return { success: true, deepLinkUrl };
462914
+ }
462915
+ var import_semver11, MIN_DESKTOP_VERSION = "1.1.2396";
462916
+ var init_desktopDeepLink = __esm(() => {
462917
+ init_state();
462918
+ init_cwd();
462919
+ init_debug();
462920
+ init_execFileNoThrow();
462921
+ init_file();
462922
+ import_semver11 = __toESM(require_semver2(), 1);
462923
+ });
462924
+
462925
+ // src/components/DesktopHandoff.tsx
462926
+ function getDownloadUrl() {
462927
+ switch (process.platform) {
462928
+ case "win32":
462929
+ return "https://orbit.ai/api/desktop/win32/x64/exe/latest/redirect";
462930
+ default:
462931
+ return "https://orbit.ai/api/desktop/darwin/universal/dmg/latest/redirect";
462932
+ }
462933
+ }
462934
+ function DesktopHandoff(t0) {
462935
+ const $2 = import_react_compiler_runtime315.c(20);
462936
+ const {
462937
+ onDone
462938
+ } = t0;
462939
+ const [state2, setState] = import_react278.useState("checking");
462940
+ const [error41, setError] = import_react278.useState(null);
462941
+ const [downloadMessage, setDownloadMessage] = import_react278.useState("");
462942
+ let t1;
462943
+ if ($2[0] !== error41 || $2[1] !== onDone || $2[2] !== state2) {
462944
+ t1 = (input) => {
462945
+ if (state2 === "error") {
462946
+ onDone(error41 ?? "Unknown error", {
462947
+ display: "system"
462948
+ });
462949
+ return;
462950
+ }
462951
+ if (state2 === "prompt-download") {
462952
+ if (input === "y" || input === "Y") {
462953
+ openBrowser(getDownloadUrl()).catch(_temp186);
462954
+ onDone(`Starting download. Re-run /desktop once you’ve installed the app.
462955
+ Learn more at ${DESKTOP_DOCS_URL}`, {
462956
+ display: "system"
462957
+ });
462958
+ } else {
462959
+ if (input === "n" || input === "N") {
462960
+ onDone(`The desktop app is required for /desktop. Learn more at ${DESKTOP_DOCS_URL}`, {
462961
+ display: "system"
462962
+ });
462963
+ }
462964
+ }
462965
+ }
462966
+ };
462967
+ $2[0] = error41;
462968
+ $2[1] = onDone;
462969
+ $2[2] = state2;
462970
+ $2[3] = t1;
462971
+ } else {
462972
+ t1 = $2[3];
462973
+ }
462974
+ use_input_default(t1);
462975
+ let t2;
462976
+ let t3;
462977
+ if ($2[4] !== onDone) {
462978
+ t2 = () => {
462979
+ const performHandoff = async function performHandoff2() {
462980
+ setState("checking");
462981
+ const installStatus = await getDesktopInstallStatus();
462982
+ if (installStatus.status === "not-installed") {
462983
+ setDownloadMessage("Orbit Desktop is not installed.");
462984
+ setState("prompt-download");
462985
+ return;
462986
+ }
462987
+ if (installStatus.status === "version-too-old") {
462988
+ setDownloadMessage(`Orbit Desktop needs to be updated (found v${installStatus.version}, need v1.1.2396+).`);
462989
+ setState("prompt-download");
462990
+ return;
462991
+ }
462992
+ setState("flushing");
462993
+ await flushSessionStorage();
462994
+ setState("opening");
462995
+ const result = await openCurrentSessionInDesktop();
462996
+ if (!result.success) {
462997
+ setError(result.error ?? "Failed to open Orbit Desktop");
462998
+ setState("error");
462999
+ return;
463000
+ }
463001
+ setState("success");
463002
+ setTimeout(_temp279, 500, onDone);
463003
+ };
463004
+ performHandoff().catch((err2) => {
463005
+ setError(errorMessage(err2));
463006
+ setState("error");
463007
+ });
463008
+ };
463009
+ t3 = [onDone];
463010
+ $2[4] = onDone;
463011
+ $2[5] = t2;
463012
+ $2[6] = t3;
463013
+ } else {
463014
+ t2 = $2[5];
463015
+ t3 = $2[6];
463016
+ }
463017
+ import_react278.useEffect(t2, t3);
463018
+ if (state2 === "error") {
463019
+ let t42;
463020
+ if ($2[7] !== error41) {
463021
+ t42 = /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
463022
+ color: "error",
463023
+ children: [
463024
+ "Error: ",
463025
+ error41
463026
+ ]
463027
+ }, undefined, true, undefined, this);
463028
+ $2[7] = error41;
463029
+ $2[8] = t42;
463030
+ } else {
463031
+ t42 = $2[8];
463032
+ }
463033
+ let t52;
463034
+ if ($2[9] === Symbol.for("react.memo_cache_sentinel")) {
463035
+ t52 = /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
463036
+ dimColor: true,
463037
+ children: "Press any key to continue…"
463038
+ }, undefined, false, undefined, this);
463039
+ $2[9] = t52;
463040
+ } else {
463041
+ t52 = $2[9];
463042
+ }
463043
+ let t62;
463044
+ if ($2[10] !== t42) {
463045
+ t62 = /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedBox_default, {
463046
+ flexDirection: "column",
463047
+ paddingX: 2,
463048
+ children: [
463049
+ t42,
463050
+ t52
463051
+ ]
463052
+ }, undefined, true, undefined, this);
463053
+ $2[10] = t42;
463054
+ $2[11] = t62;
463055
+ } else {
463056
+ t62 = $2[11];
463057
+ }
463058
+ return t62;
463059
+ }
463060
+ if (state2 === "prompt-download") {
463061
+ let t42;
463062
+ if ($2[12] !== downloadMessage) {
463063
+ t42 = /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
463064
+ children: downloadMessage
463065
+ }, undefined, false, undefined, this);
463066
+ $2[12] = downloadMessage;
463067
+ $2[13] = t42;
463068
+ } else {
463069
+ t42 = $2[13];
463070
+ }
463071
+ let t52;
463072
+ if ($2[14] === Symbol.for("react.memo_cache_sentinel")) {
463073
+ t52 = /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedText, {
463074
+ children: "Download now? (y/n)"
463075
+ }, undefined, false, undefined, this);
463076
+ $2[14] = t52;
463077
+ } else {
463078
+ t52 = $2[14];
463079
+ }
463080
+ let t62;
463081
+ if ($2[15] !== t42) {
463082
+ t62 = /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(ThemedBox_default, {
463083
+ flexDirection: "column",
463084
+ paddingX: 2,
463085
+ children: [
463086
+ t42,
463087
+ t52
463088
+ ]
463089
+ }, undefined, true, undefined, this);
463090
+ $2[15] = t42;
463091
+ $2[16] = t62;
463092
+ } else {
463093
+ t62 = $2[16];
463094
+ }
463095
+ return t62;
463096
+ }
463097
+ let t4;
463098
+ if ($2[17] === Symbol.for("react.memo_cache_sentinel")) {
463099
+ t4 = {
463100
+ checking: "Checking for Orbit Desktop…",
463101
+ flushing: "Saving session…",
463102
+ opening: "Opening Orbit Desktop…",
463103
+ success: "Opening in Orbit Desktop…"
463104
+ };
463105
+ $2[17] = t4;
463106
+ } else {
463107
+ t4 = $2[17];
463108
+ }
463109
+ const messages = t4;
463110
+ const t5 = messages[state2];
463111
+ let t6;
463112
+ if ($2[18] !== t5) {
463113
+ t6 = /* @__PURE__ */ jsx_dev_runtime402.jsxDEV(LoadingState, {
463114
+ message: t5
463115
+ }, undefined, false, undefined, this);
463116
+ $2[18] = t5;
463117
+ $2[19] = t6;
463118
+ } else {
463119
+ t6 = $2[19];
463120
+ }
463121
+ return t6;
463122
+ }
463123
+ async function _temp279(onDone_0) {
463124
+ onDone_0("Session transferred to Orbit Desktop", {
463125
+ display: "system"
463126
+ });
463127
+ await gracefulShutdown(0, "other");
463128
+ }
463129
+ function _temp186() {}
463130
+ var import_react_compiler_runtime315, import_react278, jsx_dev_runtime402, DESKTOP_DOCS_URL = "https://clau.de/desktop";
463131
+ var init_DesktopHandoff = __esm(() => {
463132
+ init_ink2();
463133
+ init_browser();
463134
+ init_desktopDeepLink();
463135
+ init_errors();
463136
+ init_gracefulShutdown();
463137
+ init_sessionStorage();
463138
+ init_LoadingState();
463139
+ import_react_compiler_runtime315 = __toESM(require_dist3(), 1);
463140
+ import_react278 = __toESM(require_react(), 1);
463141
+ jsx_dev_runtime402 = __toESM(require_jsx_dev_runtime(), 1);
463142
+ });
463143
+
463144
+ // src/components/DesktopUpsell/DesktopUpsellStartup.tsx
463145
+ function getDesktopUpsellConfig() {
463146
+ return getDynamicConfig_CACHED_MAY_BE_STALE("tengu_desktop_upsell", DESKTOP_UPSELL_DEFAULT);
463147
+ }
463148
+ function isSupportedPlatform2() {
463149
+ return process.platform === "darwin" || process.platform === "win32" && process.arch === "x64";
463150
+ }
463151
+ function shouldShowDesktopUpsellStartup() {
463152
+ if (!isSupportedPlatform2())
463153
+ return false;
463154
+ if (!getDesktopUpsellConfig().enable_startup_dialog)
463155
+ return false;
463156
+ const config3 = getGlobalConfig();
463157
+ if (config3.desktopUpsellDismissed)
463158
+ return false;
463159
+ if ((config3.desktopUpsellSeenCount ?? 0) >= 3)
463160
+ return false;
463161
+ return true;
463162
+ }
463163
+ function DesktopUpsellStartup(t0) {
463164
+ const $2 = import_react_compiler_runtime316.c(14);
463165
+ const {
463166
+ onDone
463167
+ } = t0;
463168
+ const [showHandoff, setShowHandoff] = import_react279.useState(false);
463169
+ let t1;
463170
+ if ($2[0] === Symbol.for("react.memo_cache_sentinel")) {
463171
+ t1 = [];
463172
+ $2[0] = t1;
463173
+ } else {
463174
+ t1 = $2[0];
463175
+ }
463176
+ import_react279.useEffect(_temp187, t1);
463177
+ if (showHandoff) {
463178
+ let t22;
463179
+ if ($2[1] !== onDone) {
463180
+ t22 = /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(DesktopHandoff, {
463181
+ onDone: () => onDone()
463182
+ }, undefined, false, undefined, this);
463183
+ $2[1] = onDone;
463184
+ $2[2] = t22;
463185
+ } else {
463186
+ t22 = $2[2];
463187
+ }
463188
+ return t22;
463189
+ }
463190
+ let t2;
463191
+ if ($2[3] !== onDone) {
463192
+ t2 = function handleSelect2(value) {
463193
+ switch (value) {
463194
+ case "try": {
463195
+ setShowHandoff(true);
463196
+ return;
463197
+ }
463198
+ case "never": {
463199
+ saveGlobalConfig(_temp280);
463200
+ onDone();
463201
+ return;
463202
+ }
463203
+ case "not-now": {
463204
+ onDone();
463205
+ return;
463206
+ }
463207
+ }
463208
+ };
463209
+ $2[3] = onDone;
463210
+ $2[4] = t2;
463211
+ } else {
463212
+ t2 = $2[4];
463213
+ }
463214
+ const handleSelect = t2;
463215
+ let t3;
463216
+ if ($2[5] === Symbol.for("react.memo_cache_sentinel")) {
463217
+ t3 = {
463218
+ label: "Open in Orbit AI Desktop",
463219
+ value: "try"
463220
+ };
463221
+ $2[5] = t3;
463222
+ } else {
463223
+ t3 = $2[5];
463224
+ }
463225
+ let t4;
463226
+ if ($2[6] === Symbol.for("react.memo_cache_sentinel")) {
463227
+ t4 = {
463228
+ label: "Not now",
463229
+ value: "not-now"
463230
+ };
463231
+ $2[6] = t4;
463232
+ } else {
463233
+ t4 = $2[6];
463234
+ }
463235
+ let t5;
463236
+ if ($2[7] === Symbol.for("react.memo_cache_sentinel")) {
463237
+ t5 = [t3, t4, {
463238
+ label: "Don't ask again",
463239
+ value: "never"
463240
+ }];
463241
+ $2[7] = t5;
463242
+ } else {
463243
+ t5 = $2[7];
463244
+ }
463245
+ const options2 = t5;
463246
+ let t6;
463247
+ if ($2[8] === Symbol.for("react.memo_cache_sentinel")) {
463248
+ t6 = /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedBox_default, {
463249
+ marginBottom: 1,
463250
+ children: /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedText, {
463251
+ children: "Same Orbit AI with visual diffs, live app preview, parallel sessions, and more."
463252
+ }, undefined, false, undefined, this)
463253
+ }, undefined, false, undefined, this);
463254
+ $2[8] = t6;
463255
+ } else {
463256
+ t6 = $2[8];
463257
+ }
463258
+ let t7;
463259
+ if ($2[9] !== handleSelect) {
463260
+ t7 = () => handleSelect("not-now");
463261
+ $2[9] = handleSelect;
463262
+ $2[10] = t7;
463263
+ } else {
463264
+ t7 = $2[10];
463265
+ }
463266
+ let t8;
463267
+ if ($2[11] !== handleSelect || $2[12] !== t7) {
463268
+ t8 = /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(PermissionDialog, {
463269
+ title: "Try Orbit AI Desktop",
463270
+ children: /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(ThemedBox_default, {
463271
+ flexDirection: "column",
463272
+ paddingX: 2,
463273
+ paddingY: 1,
463274
+ children: [
463275
+ t6,
463276
+ /* @__PURE__ */ jsx_dev_runtime403.jsxDEV(Select, {
463277
+ options: options2,
463278
+ onChange: handleSelect,
463279
+ onCancel: t7
463280
+ }, undefined, false, undefined, this)
463281
+ ]
463282
+ }, undefined, true, undefined, this)
463283
+ }, undefined, false, undefined, this);
463284
+ $2[11] = handleSelect;
463285
+ $2[12] = t7;
463286
+ $2[13] = t8;
463287
+ } else {
463288
+ t8 = $2[13];
463289
+ }
463290
+ return t8;
463291
+ }
463292
+ function _temp280(prev_0) {
463293
+ if (prev_0.desktopUpsellDismissed) {
463294
+ return prev_0;
463295
+ }
463296
+ return {
463297
+ ...prev_0,
463298
+ desktopUpsellDismissed: true
463299
+ };
463300
+ }
463301
+ function _temp187() {
463302
+ const newCount = (getGlobalConfig().desktopUpsellSeenCount ?? 0) + 1;
463303
+ saveGlobalConfig((prev) => {
463304
+ if ((prev.desktopUpsellSeenCount ?? 0) >= newCount) {
463305
+ return prev;
463306
+ }
463307
+ return {
463308
+ ...prev,
463309
+ desktopUpsellSeenCount: newCount
463310
+ };
463311
+ });
463312
+ logEvent("tengu_desktop_upsell_shown", {
463313
+ seen_count: newCount
463314
+ });
463315
+ }
463316
+ var import_react_compiler_runtime316, import_react279, jsx_dev_runtime403, DESKTOP_UPSELL_DEFAULT;
463317
+ var init_DesktopUpsellStartup = __esm(() => {
463318
+ init_ink2();
463319
+ init_config();
463320
+ init_select();
463321
+ init_DesktopHandoff();
463322
+ init_PermissionDialog();
463323
+ import_react_compiler_runtime316 = __toESM(require_dist3(), 1);
463324
+ import_react279 = __toESM(require_react(), 1);
463597
463325
  jsx_dev_runtime403 = __toESM(require_jsx_dev_runtime(), 1);
463326
+ DESKTOP_UPSELL_DEFAULT = {
463327
+ enable_shortcut_tip: false,
463328
+ enable_startup_dialog: false
463329
+ };
463598
463330
  });
463599
463331
 
463600
463332
  // src/hooks/notifs/usePluginInstallationStatus.tsx
@@ -469863,6 +469595,103 @@ var init_bootstrap = __esm(() => {
469863
469595
  }));
469864
469596
  });
469865
469597
 
469598
+ // src/services/api/referral.ts
469599
+ async function fetchReferralEligibility(campaign = "orbit_code_guest_pass") {
469600
+ const { accessToken, orgUUID } = await prepareApiRequest();
469601
+ const headers = {
469602
+ ...getOAuthHeaders(accessToken),
469603
+ "x-organization-uuid": orgUUID
469604
+ };
469605
+ const url3 = `${getOauthConfig().BASE_API_URL}/api/oauth/organizations/${orgUUID}/referral/eligibility`;
469606
+ const response = await axios_default.get(url3, {
469607
+ headers,
469608
+ params: { campaign },
469609
+ timeout: 5000
469610
+ });
469611
+ return response.data;
469612
+ }
469613
+ function shouldCheckForPasses() {
469614
+ return !!(getOauthAccountInfo()?.organizationUuid && isOrbitAISubscriber() && getSubscriptionType() === "max");
469615
+ }
469616
+ async function fetchAndStorePassesEligibility() {
469617
+ if (fetchInProgress) {
469618
+ logForDebugging2("Passes: Reusing in-flight eligibility fetch");
469619
+ return fetchInProgress;
469620
+ }
469621
+ const orgId = getOauthAccountInfo()?.organizationUuid;
469622
+ if (!orgId) {
469623
+ return null;
469624
+ }
469625
+ fetchInProgress = (async () => {
469626
+ try {
469627
+ const response = await fetchReferralEligibility();
469628
+ const cacheEntry = {
469629
+ ...response,
469630
+ timestamp: Date.now()
469631
+ };
469632
+ saveGlobalConfig((current) => ({
469633
+ ...current,
469634
+ passesEligibilityCache: {
469635
+ ...current.passesEligibilityCache,
469636
+ [orgId]: cacheEntry
469637
+ }
469638
+ }));
469639
+ logForDebugging2(`Passes eligibility cached for org ${orgId}: ${response.eligible}`);
469640
+ return response;
469641
+ } catch (error41) {
469642
+ logForDebugging2("Failed to fetch and cache passes eligibility");
469643
+ logError(error41);
469644
+ return null;
469645
+ } finally {
469646
+ fetchInProgress = null;
469647
+ }
469648
+ })();
469649
+ return fetchInProgress;
469650
+ }
469651
+ async function getCachedOrFetchPassesEligibility() {
469652
+ if (!shouldCheckForPasses()) {
469653
+ return null;
469654
+ }
469655
+ const orgId = getOauthAccountInfo()?.organizationUuid;
469656
+ if (!orgId) {
469657
+ return null;
469658
+ }
469659
+ const config3 = getGlobalConfig();
469660
+ const cachedEntry = config3.passesEligibilityCache?.[orgId];
469661
+ const now2 = Date.now();
469662
+ if (!cachedEntry) {
469663
+ logForDebugging2("Passes: No cache, fetching eligibility in background (command unavailable this session)");
469664
+ fetchAndStorePassesEligibility();
469665
+ return null;
469666
+ }
469667
+ if (now2 - cachedEntry.timestamp > CACHE_EXPIRATION_MS) {
469668
+ logForDebugging2("Passes: Cache stale, returning cached data and refreshing in background");
469669
+ fetchAndStorePassesEligibility();
469670
+ const { timestamp: timestamp2, ...response2 } = cachedEntry;
469671
+ return response2;
469672
+ }
469673
+ logForDebugging2("Passes: Using fresh cached eligibility data");
469674
+ const { timestamp, ...response } = cachedEntry;
469675
+ return response;
469676
+ }
469677
+ async function prefetchPassesEligibility() {
469678
+ if (isEssentialTrafficOnly()) {
469679
+ return;
469680
+ }
469681
+ getCachedOrFetchPassesEligibility();
469682
+ }
469683
+ var CACHE_EXPIRATION_MS, fetchInProgress = null;
469684
+ var init_referral = __esm(() => {
469685
+ init_axios2();
469686
+ init_oauth();
469687
+ init_auth();
469688
+ init_config();
469689
+ init_debug();
469690
+ init_log2();
469691
+ init_api2();
469692
+ CACHE_EXPIRATION_MS = 24 * 60 * 60 * 1000;
469693
+ });
469694
+
469866
469695
  // src/services/mcp/officialRegistry.ts
469867
469696
  function normalizeUrl2(url3) {
469868
469697
  try {
@@ -470889,7 +470718,7 @@ function WelcomeV2() {
470889
470718
  dimColor: true,
470890
470719
  children: [
470891
470720
  "v",
470892
- "0.1.12",
470721
+ "0.1.13",
470893
470722
  " "
470894
470723
  ]
470895
470724
  }, undefined, true, undefined, this)
@@ -471089,7 +470918,7 @@ function WelcomeV2() {
471089
470918
  dimColor: true,
471090
470919
  children: [
471091
470920
  "v",
471092
- "0.1.12",
470921
+ "0.1.13",
471093
470922
  " "
471094
470923
  ]
471095
470924
  }, undefined, true, undefined, this)
@@ -471315,7 +471144,7 @@ function AppleTerminalWelcomeV2(t0) {
471315
471144
  dimColor: true,
471316
471145
  children: [
471317
471146
  "v",
471318
- "0.1.12",
471147
+ "0.1.13",
471319
471148
  " "
471320
471149
  ]
471321
471150
  }, undefined, true, undefined, this);
@@ -471569,7 +471398,7 @@ function AppleTerminalWelcomeV2(t0) {
471569
471398
  dimColor: true,
471570
471399
  children: [
471571
471400
  "v",
471572
- "0.1.12",
471401
+ "0.1.13",
471573
471402
  " "
471574
471403
  ]
471575
471404
  }, undefined, true, undefined, this);
@@ -476081,7 +475910,7 @@ If a hook isn't running:
476081
475910
  3. **Check the matcher** - Does it match the tool name? (e.g., "Bash", "Write", "Edit")
476082
475911
  4. **Check hook type** - Is it "command", "prompt", or "agent"?
476083
475912
  5. **Test the command** - Run the hook command manually to see if it works
476084
- 6. **Use --debug** - Run \`orbitcode --debug\` to see hook execution logs
475913
+ 6. **Use --debug** - Run \`orbit --debug\` to see hook execution logs
476085
475914
  `;
476086
475915
  });
476087
475916
 
@@ -491951,7 +491780,7 @@ ${customInstructions}` : customInstructions;
491951
491780
  const isRemoteTuiEnabled = getFeatureValue_CACHED_MAY_BE_STALE("tengu_remote_backend", false);
491952
491781
  if (!isRemoteTuiEnabled && !hasInitialPrompt) {
491953
491782
  return await exitWithError2(root2, `Error: --remote requires a description.
491954
- Usage: orbitcode --remote "your task description"`, () => gracefulShutdown(1));
491783
+ Usage: orbit --remote "your task description"`, () => gracefulShutdown(1));
491955
491784
  }
491956
491785
  logEvent("tengu_remote_create_session", {
491957
491786
  has_initial_prompt: String(hasInitialPrompt)
@@ -492190,7 +492019,7 @@ Usage: orbitcode --remote "your task description"`, () => gracefulShutdown(1));
492190
492019
  pendingHookMessages
492191
492020
  }, renderAndRun);
492192
492021
  }
492193
- }).version("0.1.12 (Orbit AI)", "-v, --version", "Output the version number");
492022
+ }).version("0.1.13 (Orbit AI)", "-v, --version", "Output the version number");
492194
492023
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
492195
492024
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
492196
492025
  if (canUserConfigureAdvisor()) {
@@ -492712,7 +492541,7 @@ if (false) {}
492712
492541
  async function main2() {
492713
492542
  const args = process.argv.slice(2);
492714
492543
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
492715
- console.log(`${"0.1.12"} (Orbit AI)`);
492544
+ console.log(`${"0.1.13"} (Orbit AI)`);
492716
492545
  return;
492717
492546
  }
492718
492547
  if (args.includes("--provider")) {
@@ -492816,4 +492645,4 @@ async function main2() {
492816
492645
  }
492817
492646
  main2();
492818
492647
 
492819
- //# debugId=F40BD992B27CA4F464756E2164756E21
492648
+ //# debugId=B28F8D0C30A17B0164756E2164756E21