orbit-code-ai 0.1.12 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.mjs +838 -1004
- 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.
|
|
83762
|
+
out.push(` ${DIM}${rgb(...DIMCOL)}orbit-code ${RESET}${rgb(...ACCENT)}v${"0.1.14"}${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
|
-
|
|
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-
|
|
334233
|
+
const buildTime = new Date("2026-06-25T11:31:35.945Z").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.
|
|
358650
|
+
value: "0.1.14"
|
|
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,
|
|
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 `
|
|
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
|
|
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 =
|
|
462021
|
-
|
|
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
|
|
461199
|
+
var import_react274;
|
|
462032
461200
|
var init_useFileHistorySnapshotInit = __esm(() => {
|
|
462033
461201
|
init_fileHistory();
|
|
462034
|
-
|
|
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 =
|
|
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__ */
|
|
461269
|
+
label: /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
|
|
462102
461270
|
children: [
|
|
462103
461271
|
"Yes, and don't ask again for ",
|
|
462104
|
-
/* @__PURE__ */
|
|
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__ */
|
|
461288
|
+
label: /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedText, {
|
|
462121
461289
|
children: [
|
|
462122
461290
|
"No, and tell Orbit what to do differently ",
|
|
462123
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
461324
|
+
t9 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedBox_default, {
|
|
462157
461325
|
children: [
|
|
462158
461326
|
t8,
|
|
462159
|
-
/* @__PURE__ */
|
|
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__ */
|
|
461342
|
+
t10 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(ThemedBox_default, {
|
|
462175
461343
|
marginTop: 1,
|
|
462176
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
462200
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
461383
|
+
t13 = /* @__PURE__ */ jsx_dev_runtime395.jsxDEV(PermissionDialog, {
|
|
462216
461384
|
title: "Network request outside of sandbox",
|
|
462217
|
-
children: /* @__PURE__ */
|
|
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
|
|
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
|
-
|
|
462243
|
-
|
|
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 =
|
|
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] =
|
|
462264
|
-
const [totalCount, setTotalCount] =
|
|
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
|
-
|
|
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__ */
|
|
461467
|
+
t4 = /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(ThemedBox_default, {
|
|
462300
461468
|
marginLeft: 0,
|
|
462301
|
-
children: /* @__PURE__ */
|
|
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(
|
|
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__ */
|
|
461497
|
+
t7 = /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(ThemedBox_default, {
|
|
462330
461498
|
paddingLeft: 2,
|
|
462331
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
462368
|
-
return /* @__PURE__ */
|
|
461535
|
+
function _temp180(v, i3) {
|
|
461536
|
+
return /* @__PURE__ */ jsx_dev_runtime396.jsxDEV(ThemedBox_default, {
|
|
462369
461537
|
paddingLeft: 2,
|
|
462370
|
-
children: /* @__PURE__ */
|
|
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
|
|
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
|
-
|
|
462387
|
-
|
|
462388
|
-
|
|
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 =
|
|
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(
|
|
462410
|
-
const failedOrbitAiClients = mcpClients.filter(
|
|
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__ */
|
|
461587
|
+
jsx: /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(jsx_dev_runtime397.Fragment, {
|
|
462420
461588
|
children: [
|
|
462421
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
461611
|
+
jsx: /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(jsx_dev_runtime397.Fragment, {
|
|
462444
461612
|
children: [
|
|
462445
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
461636
|
+
jsx: /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(jsx_dev_runtime397.Fragment, {
|
|
462469
461637
|
children: [
|
|
462470
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
461661
|
+
jsx: /* @__PURE__ */ jsx_dev_runtime397.jsxDEV(jsx_dev_runtime397.Fragment, {
|
|
462494
461662
|
children: [
|
|
462495
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
462550
|
-
|
|
462551
|
-
|
|
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 =
|
|
462561
|
-
const prevModeRef =
|
|
462562
|
-
|
|
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
|
|
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
|
-
|
|
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 =
|
|
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] =
|
|
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 =
|
|
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(
|
|
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__ */
|
|
461810
|
+
jsx: /* @__PURE__ */ jsx_dev_runtime398.jsxDEV(jsx_dev_runtime398.Fragment, {
|
|
462643
461811
|
children: [
|
|
462644
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
-
|
|
461890
|
+
React133.useEffect(t3, t4);
|
|
462723
461891
|
}
|
|
462724
|
-
function
|
|
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
|
|
461898
|
+
function _temp183() {
|
|
462731
461899
|
return isEnvTruthy("true");
|
|
462732
461900
|
}
|
|
462733
|
-
var
|
|
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
|
-
|
|
462744
|
-
|
|
462745
|
-
|
|
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 =
|
|
462957
|
-
const [recommendation, setRecommendation] =
|
|
462958
|
-
const isCheckingRef =
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
-
|
|
463054
|
-
|
|
463055
|
-
|
|
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
|
|
462227
|
+
import { extname as extname13, join as join122 } from "path";
|
|
463060
462228
|
function useLspPluginRecommendation() {
|
|
463061
|
-
const $2 =
|
|
463062
|
-
const trackedFiles = useAppState(
|
|
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 =
|
|
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
|
-
|
|
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" ?
|
|
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(
|
|
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
|
|
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
|
|
462374
|
+
function _temp185(s) {
|
|
463207
462375
|
return s.fileHistory.trackedFiles;
|
|
463208
462376
|
}
|
|
463209
|
-
var
|
|
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
|
-
|
|
463222
|
-
|
|
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 =
|
|
462400
|
+
const onResponseRef = React136.useRef(onResponse);
|
|
463233
462401
|
onResponseRef.current = onResponse;
|
|
463234
|
-
|
|
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__ */
|
|
462423
|
+
label: /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
|
|
463256
462424
|
children: [
|
|
463257
462425
|
"Yes, install ",
|
|
463258
|
-
/* @__PURE__ */
|
|
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__ */
|
|
462437
|
+
label: /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
|
|
463270
462438
|
children: [
|
|
463271
462439
|
"Never for ",
|
|
463272
|
-
/* @__PURE__ */
|
|
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__ */
|
|
462451
|
+
return /* @__PURE__ */ jsx_dev_runtime400.jsxDEV(PermissionDialog, {
|
|
463284
462452
|
title: "LSP Plugin Recommendation",
|
|
463285
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
462458
|
+
/* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedBox_default, {
|
|
463291
462459
|
marginBottom: 1,
|
|
463292
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
462465
|
+
/* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedBox_default, {
|
|
463298
462466
|
children: [
|
|
463299
|
-
/* @__PURE__ */
|
|
462467
|
+
/* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
|
|
463300
462468
|
dimColor: true,
|
|
463301
462469
|
children: "Plugin:"
|
|
463302
462470
|
}, undefined, false, undefined, this),
|
|
463303
|
-
/* @__PURE__ */
|
|
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__ */
|
|
463312
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
462485
|
+
/* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedBox_default, {
|
|
463318
462486
|
children: [
|
|
463319
|
-
/* @__PURE__ */
|
|
462487
|
+
/* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedText, {
|
|
463320
462488
|
dimColor: true,
|
|
463321
462489
|
children: "Triggered by:"
|
|
463322
462490
|
}, undefined, false, undefined, this),
|
|
463323
|
-
/* @__PURE__ */
|
|
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__ */
|
|
462500
|
+
/* @__PURE__ */ jsx_dev_runtime400.jsxDEV(ThemedBox_default, {
|
|
463333
462501
|
marginTop: 1,
|
|
463334
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
463339
|
-
children: /* @__PURE__ */
|
|
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
|
|
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
|
-
|
|
463355
|
-
|
|
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 =
|
|
463361
|
-
const pendingHint2 =
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
463472
|
-
|
|
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 =
|
|
462651
|
+
const onResponseRef = React138.useRef(onResponse);
|
|
463484
462652
|
onResponseRef.current = onResponse;
|
|
463485
|
-
|
|
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__ */
|
|
462670
|
+
label: /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
|
|
463503
462671
|
children: [
|
|
463504
462672
|
"Yes, install ",
|
|
463505
|
-
/* @__PURE__ */
|
|
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__ */
|
|
462687
|
+
return /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(PermissionDialog, {
|
|
463520
462688
|
title: "Plugin Recommendation",
|
|
463521
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
462694
|
+
/* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedBox_default, {
|
|
463527
462695
|
marginBottom: 1,
|
|
463528
|
-
children: /* @__PURE__ */
|
|
462696
|
+
children: /* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
|
|
463529
462697
|
dimColor: true,
|
|
463530
462698
|
children: [
|
|
463531
462699
|
"The ",
|
|
463532
|
-
/* @__PURE__ */
|
|
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__ */
|
|
462708
|
+
/* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedBox_default, {
|
|
463541
462709
|
children: [
|
|
463542
|
-
/* @__PURE__ */
|
|
462710
|
+
/* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
|
|
463543
462711
|
dimColor: true,
|
|
463544
462712
|
children: "Plugin:"
|
|
463545
462713
|
}, undefined, false, undefined, this),
|
|
463546
|
-
/* @__PURE__ */
|
|
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__ */
|
|
462722
|
+
/* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedBox_default, {
|
|
463555
462723
|
children: [
|
|
463556
|
-
/* @__PURE__ */
|
|
462724
|
+
/* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedText, {
|
|
463557
462725
|
dimColor: true,
|
|
463558
462726
|
children: "Marketplace:"
|
|
463559
462727
|
}, undefined, false, undefined, this),
|
|
463560
|
-
/* @__PURE__ */
|
|
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__ */
|
|
463569
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
462742
|
+
/* @__PURE__ */ jsx_dev_runtime401.jsxDEV(ThemedBox_default, {
|
|
463575
462743
|
marginTop: 1,
|
|
463576
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
463581
|
-
children: /* @__PURE__ */
|
|
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
|
|
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
|
-
|
|
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.
|
|
470721
|
+
"0.1.14",
|
|
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.
|
|
470921
|
+
"0.1.14",
|
|
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.
|
|
471147
|
+
"0.1.14",
|
|
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.
|
|
471401
|
+
"0.1.14",
|
|
471573
471402
|
" "
|
|
471574
471403
|
]
|
|
471575
471404
|
}, undefined, true, undefined, this);
|
|
@@ -475280,7 +475109,7 @@ ${args || "No description provided. Ask the user what flow they want to create."
|
|
|
475280
475109
|
name: "ace-fix",
|
|
475281
475110
|
description: "Diagnose and fix bugs in IBM ACE ESQL code or message flows",
|
|
475282
475111
|
aliases: ["ace-debug"],
|
|
475283
|
-
model: "gemini-3.
|
|
475112
|
+
model: "gemini-3.5-flash",
|
|
475284
475113
|
whenToUse: "When the user reports a bug, error, BIP message, or unexpected behavior in their ACE flows or ESQL code and wants it diagnosed and fixed",
|
|
475285
475114
|
argumentHint: "<file or error description>",
|
|
475286
475115
|
allowedTools: ["Read", "Write", "Edit", "Glob", "Grep", "Bash"],
|
|
@@ -475293,7 +475122,12 @@ ${readInstructions([
|
|
|
475293
475122
|
"components/common-utils.md"
|
|
475294
475123
|
])}
|
|
475295
475124
|
|
|
475296
|
-
Diagnose and fix the bug or error described by the user. Read
|
|
475125
|
+
Diagnose and fix the bug or error described by the user. Read the user's file(s) and only the
|
|
475126
|
+
directly-related files in THIS application (e.g. the \`.msgflow\` that wires a broken \`.esql\`, or
|
|
475127
|
+
the \`.esql\` a flow points at). **Do NOT read shared libraries or other projects** — anything under
|
|
475128
|
+
\`Framework/\`, \`Utils/\`, \`Qiwa/Framework/Lib\`, or \`lib/\` is shared infrastructure and is OUT OF
|
|
475129
|
+
SCOPE. Use the error-handling and common-utils references above to understand framework error
|
|
475130
|
+
patterns and functions instead of opening the library source. Write complete corrected versions.
|
|
475297
475131
|
|
|
475298
475132
|
## Common ACE Bugs to Check
|
|
475299
475133
|
|
|
@@ -476081,7 +475915,7 @@ If a hook isn't running:
|
|
|
476081
475915
|
3. **Check the matcher** - Does it match the tool name? (e.g., "Bash", "Write", "Edit")
|
|
476082
475916
|
4. **Check hook type** - Is it "command", "prompt", or "agent"?
|
|
476083
475917
|
5. **Test the command** - Run the hook command manually to see if it works
|
|
476084
|
-
6. **Use --debug** - Run \`
|
|
475918
|
+
6. **Use --debug** - Run \`orbit --debug\` to see hook execution logs
|
|
476085
475919
|
`;
|
|
476086
475920
|
});
|
|
476087
475921
|
|
|
@@ -491951,7 +491785,7 @@ ${customInstructions}` : customInstructions;
|
|
|
491951
491785
|
const isRemoteTuiEnabled = getFeatureValue_CACHED_MAY_BE_STALE("tengu_remote_backend", false);
|
|
491952
491786
|
if (!isRemoteTuiEnabled && !hasInitialPrompt) {
|
|
491953
491787
|
return await exitWithError2(root2, `Error: --remote requires a description.
|
|
491954
|
-
Usage:
|
|
491788
|
+
Usage: orbit --remote "your task description"`, () => gracefulShutdown(1));
|
|
491955
491789
|
}
|
|
491956
491790
|
logEvent("tengu_remote_create_session", {
|
|
491957
491791
|
has_initial_prompt: String(hasInitialPrompt)
|
|
@@ -492190,7 +492024,7 @@ Usage: orbitcode --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
492190
492024
|
pendingHookMessages
|
|
492191
492025
|
}, renderAndRun);
|
|
492192
492026
|
}
|
|
492193
|
-
}).version("0.1.
|
|
492027
|
+
}).version("0.1.14 (Orbit AI)", "-v, --version", "Output the version number");
|
|
492194
492028
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
492195
492029
|
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
492030
|
if (canUserConfigureAdvisor()) {
|
|
@@ -492712,7 +492546,7 @@ if (false) {}
|
|
|
492712
492546
|
async function main2() {
|
|
492713
492547
|
const args = process.argv.slice(2);
|
|
492714
492548
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
492715
|
-
console.log(`${"0.1.
|
|
492549
|
+
console.log(`${"0.1.14"} (Orbit AI)`);
|
|
492716
492550
|
return;
|
|
492717
492551
|
}
|
|
492718
492552
|
if (args.includes("--provider")) {
|
|
@@ -492816,4 +492650,4 @@ async function main2() {
|
|
|
492816
492650
|
}
|
|
492817
492651
|
main2();
|
|
492818
492652
|
|
|
492819
|
-
//# debugId=
|
|
492653
|
+
//# debugId=30D59ED016DAFE4964756E2164756E21
|