@phenx-inc/ctlsurf 0.15.1 → 0.15.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/headless/index.mjs +1 -1
- package/out/headless/index.mjs.map +1 -1
- package/out/renderer/assets/{cssMode-B77M9HlN.js → cssMode-CPfLk04b.js} +3 -3
- package/out/renderer/assets/{freemarker2-oUT2zvyQ.js → freemarker2-CDHpuFqv.js} +1 -1
- package/out/renderer/assets/{handlebars-jCckoi5j.js → handlebars-CgX9Jz36.js} +1 -1
- package/out/renderer/assets/{html-kAgrAaKW.js → html-DdgFccDG.js} +1 -1
- package/out/renderer/assets/{htmlMode-DIWkIawy.js → htmlMode-CRHIwtvP.js} +3 -3
- package/out/renderer/assets/{index-CN3UN7Tm.js → index-DVdWgw7p.js} +40 -33
- package/out/renderer/assets/{javascript-B9GYUE-I.js → javascript-CHhxL0s7.js} +2 -2
- package/out/renderer/assets/{jsonMode-BzFKTZjJ.js → jsonMode-Cy7-eWai.js} +3 -3
- package/out/renderer/assets/{liquid-Ccw-S_Y6.js → liquid-vMkF9pfk.js} +1 -1
- package/out/renderer/assets/{lspLanguageFeatures-BE0g7ubH.js → lspLanguageFeatures-nAygNzuG.js} +1 -1
- package/out/renderer/assets/{mdx-oXeAA0qU.js → mdx-C4UVz5dW.js} +1 -1
- package/out/renderer/assets/{python-DlSX3TvA.js → python-BHemzN9g.js} +1 -1
- package/out/renderer/assets/{razor-ButO9S7r.js → razor-DH6NPzbo.js} +1 -1
- package/out/renderer/assets/{tsMode-CTCpE-67.js → tsMode-DxBdlGZB.js} +1 -1
- package/out/renderer/assets/{typescript-9o62WOnS.js → typescript-BRCOaBQ5.js} +1 -1
- package/out/renderer/assets/{xml-C4nOH2_D.js → xml-DVv9gDP1.js} +1 -1
- package/out/renderer/assets/{yaml-mXYgKoWW.js → yaml-jB-C3CdS.js} +1 -1
- package/out/renderer/index.html +1 -1
- package/package.json +1 -1
- package/src/renderer/components/FloatingMic.tsx +15 -11
- package/src/renderer/components/TerminalPanel.tsx +11 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as createWebWorker, l as languages } from "./index-
|
|
2
|
-
import { C as CompletionAdapter, H as HoverAdapter, D as DocumentHighlightAdapter, a as DefinitionAdapter, R as ReferenceAdapter, b as DocumentSymbolAdapter, c as RenameAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, e as DiagnosticsAdapter, S as SelectionRangeAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider } from "./lspLanguageFeatures-
|
|
3
|
-
import { h, i, j, t, k } from "./lspLanguageFeatures-
|
|
1
|
+
import { c as createWebWorker, l as languages } from "./index-DVdWgw7p.js";
|
|
2
|
+
import { C as CompletionAdapter, H as HoverAdapter, D as DocumentHighlightAdapter, a as DefinitionAdapter, R as ReferenceAdapter, b as DocumentSymbolAdapter, c as RenameAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, e as DiagnosticsAdapter, S as SelectionRangeAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider } from "./lspLanguageFeatures-nAygNzuG.js";
|
|
3
|
+
import { h, i, j, t, k } from "./lspLanguageFeatures-nAygNzuG.js";
|
|
4
4
|
const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
|
|
5
5
|
class WorkerManager {
|
|
6
6
|
constructor(defaults) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as createWebWorker, l as languages } from "./index-
|
|
2
|
-
import { H as HoverAdapter, D as DocumentHighlightAdapter, h as DocumentLinkAdapter, F as FoldingRangeAdapter, b as DocumentSymbolAdapter, S as SelectionRangeAdapter, c as RenameAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter } from "./lspLanguageFeatures-
|
|
3
|
-
import { a, e, d, R, i, j, t, k } from "./lspLanguageFeatures-
|
|
1
|
+
import { c as createWebWorker, l as languages } from "./index-DVdWgw7p.js";
|
|
2
|
+
import { H as HoverAdapter, D as DocumentHighlightAdapter, h as DocumentLinkAdapter, F as FoldingRangeAdapter, b as DocumentSymbolAdapter, S as SelectionRangeAdapter, c as RenameAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter } from "./lspLanguageFeatures-nAygNzuG.js";
|
|
3
|
+
import { a, e, d, R, i, j, t, k } from "./lspLanguageFeatures-nAygNzuG.js";
|
|
4
4
|
const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
|
|
5
5
|
class WorkerManager {
|
|
6
6
|
constructor(defaults) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./cssMode-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./cssMode-CPfLk04b.js","./lspLanguageFeatures-nAygNzuG.js","./htmlMode-CRHIwtvP.js","./jsonMode-Cy7-eWai.js","./javascript-CHhxL0s7.js","./typescript-BRCOaBQ5.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
function getDefaultExportFromCjs(x) {
|
|
3
3
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
4
4
|
}
|
|
@@ -19532,6 +19532,11 @@ function getOrCreateTerminal(tabId, onExit) {
|
|
|
19532
19532
|
}
|
|
19533
19533
|
const terminal = new xtermExports.Terminal({
|
|
19534
19534
|
cursorBlink: true,
|
|
19535
|
+
// Codex and other modern CLIs often render links as OSC 8 hyperlinks
|
|
19536
|
+
// instead of plain URL text. OSC 8 links are handled by xterm core (not
|
|
19537
|
+
// WebLinksAddon), whose default activation calls window.open(). Route them
|
|
19538
|
+
// through the same embedded-panel handler as detected plain-text URLs.
|
|
19539
|
+
linkHandler: { activate: handleTerminalLink },
|
|
19535
19540
|
// Off by default on macOS; without this a right-click would reselect the
|
|
19536
19541
|
// word under the cursor and clobber a multi-line table selection.
|
|
19537
19542
|
rightClickSelectsWord: false,
|
|
@@ -19736,7 +19741,7 @@ function TerminalPanel({ tabId, agent, onSpawn, onExit, isActive }) {
|
|
|
19736
19741
|
const attached = _terminals.get(tabId);
|
|
19737
19742
|
if (attached) reassert(attached);
|
|
19738
19743
|
const onWheel = () => markGesture(tabId);
|
|
19739
|
-
terminal.element?.addEventListener("wheel", onWheel, { passive: true });
|
|
19744
|
+
terminal.element?.addEventListener("wheel", onWheel, { capture: true, passive: true });
|
|
19740
19745
|
let resizeTimeout;
|
|
19741
19746
|
const handleResize = () => {
|
|
19742
19747
|
clearTimeout(resizeTimeout);
|
|
@@ -19759,7 +19764,7 @@ function TerminalPanel({ tabId, agent, onSpawn, onExit, isActive }) {
|
|
|
19759
19764
|
clearTimeout(resizeTimeout);
|
|
19760
19765
|
window.removeEventListener("resize", handleResize);
|
|
19761
19766
|
observer.disconnect();
|
|
19762
|
-
terminal.element?.removeEventListener("wheel", onWheel);
|
|
19767
|
+
terminal.element?.removeEventListener("wheel", onWheel, true);
|
|
19763
19768
|
};
|
|
19764
19769
|
}, [tabId, onExit]);
|
|
19765
19770
|
reactExports.useEffect(() => {
|
|
@@ -20318,7 +20323,7 @@ function VoiceInput({ onTranscript, variant = "titlebar" }) {
|
|
|
20318
20323
|
const POS_KEY = "ctlsurf.floatingMicPos";
|
|
20319
20324
|
const EDGE = 20;
|
|
20320
20325
|
const TOP_MIN = 46;
|
|
20321
|
-
const BOTTOM_GAP =
|
|
20326
|
+
const BOTTOM_GAP = 72;
|
|
20322
20327
|
function loadPos() {
|
|
20323
20328
|
try {
|
|
20324
20329
|
const raw = localStorage.getItem(POS_KEY);
|
|
@@ -20366,15 +20371,17 @@ function FloatingMic({ onTranscript, onHide }) {
|
|
|
20366
20371
|
};
|
|
20367
20372
|
}, []);
|
|
20368
20373
|
reactExports.useEffect(() => {
|
|
20369
|
-
|
|
20370
|
-
|
|
20371
|
-
|
|
20372
|
-
|
|
20373
|
-
|
|
20374
|
-
|
|
20375
|
-
|
|
20374
|
+
setPos((current) => {
|
|
20375
|
+
if (current) return clamp2(current.x, current.y);
|
|
20376
|
+
const el = elRef.current;
|
|
20377
|
+
const w = el?.offsetWidth ?? 64;
|
|
20378
|
+
const h2 = el?.offsetHeight ?? 90;
|
|
20379
|
+
return clamp2(
|
|
20380
|
+
window.innerWidth - w - EDGE,
|
|
20381
|
+
window.innerHeight - h2 - BOTTOM_GAP
|
|
20382
|
+
);
|
|
20376
20383
|
});
|
|
20377
|
-
}, [
|
|
20384
|
+
}, [clamp2]);
|
|
20378
20385
|
reactExports.useEffect(() => {
|
|
20379
20386
|
const onResize = () => setPos((p) => p ? clamp2(p.x, p.y) : p);
|
|
20380
20387
|
window.addEventListener("resize", onResize);
|
|
@@ -208416,7 +208423,7 @@ const lessDefaults = new LanguageServiceDefaultsImpl$3(
|
|
|
208416
208423
|
modeConfigurationDefault$2
|
|
208417
208424
|
);
|
|
208418
208425
|
function getMode$3() {
|
|
208419
|
-
return __vitePreload(() => import("./cssMode-
|
|
208426
|
+
return __vitePreload(() => import("./cssMode-CPfLk04b.js"), true ? __vite__mapDeps([0,1]) : void 0, import.meta.url);
|
|
208420
208427
|
}
|
|
208421
208428
|
languages.onLanguage("less", () => {
|
|
208422
208429
|
getMode$3().then((mode2) => mode2.setupMode(lessDefaults));
|
|
@@ -208521,7 +208528,7 @@ const razorLanguageService = registerHTMLLanguageService(
|
|
|
208521
208528
|
);
|
|
208522
208529
|
const razorDefaults = razorLanguageService.defaults;
|
|
208523
208530
|
function getMode$2() {
|
|
208524
|
-
return __vitePreload(() => import("./htmlMode-
|
|
208531
|
+
return __vitePreload(() => import("./htmlMode-CRHIwtvP.js"), true ? __vite__mapDeps([2,1]) : void 0, import.meta.url);
|
|
208525
208532
|
}
|
|
208526
208533
|
function registerHTMLLanguageService(languageId, options = optionsDefault, modeConfiguration = getConfigurationDefault(languageId)) {
|
|
208527
208534
|
const defaults = new LanguageServiceDefaultsImpl$2(languageId, options, modeConfiguration);
|
|
@@ -208605,7 +208612,7 @@ const jsonDefaults = new LanguageServiceDefaultsImpl$1(
|
|
|
208605
208612
|
);
|
|
208606
208613
|
const getWorker$1 = () => getMode$1().then((mode2) => mode2.getWorker());
|
|
208607
208614
|
function getMode$1() {
|
|
208608
|
-
return __vitePreload(() => import("./jsonMode-
|
|
208615
|
+
return __vitePreload(() => import("./jsonMode-Cy7-eWai.js"), true ? __vite__mapDeps([3,1]) : void 0, import.meta.url);
|
|
208609
208616
|
}
|
|
208610
208617
|
languages.register({
|
|
208611
208618
|
id: "json",
|
|
@@ -208851,7 +208858,7 @@ const getJavaScriptWorker = () => {
|
|
|
208851
208858
|
return getMode().then((mode) => mode.getJavaScriptWorker());
|
|
208852
208859
|
};
|
|
208853
208860
|
function getMode() {
|
|
208854
|
-
return __vitePreload(() => import("./tsMode-
|
|
208861
|
+
return __vitePreload(() => import("./tsMode-DxBdlGZB.js"), true ? [] : void 0, import.meta.url);
|
|
208855
208862
|
}
|
|
208856
208863
|
languages.onLanguage("typescript", () => {
|
|
208857
208864
|
return getMode().then((mode) => mode.setupTypeScript(typescriptDefaults));
|
|
@@ -209046,49 +209053,49 @@ registerLanguage({
|
|
|
209046
209053
|
extensions: [".ftl", ".ftlh", ".ftlx"],
|
|
209047
209054
|
aliases: ["FreeMarker2", "Apache FreeMarker2"],
|
|
209048
209055
|
loader: () => {
|
|
209049
|
-
return __vitePreload(() => import("./freemarker2-
|
|
209056
|
+
return __vitePreload(() => import("./freemarker2-CDHpuFqv.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationDollar);
|
|
209050
209057
|
}
|
|
209051
209058
|
});
|
|
209052
209059
|
registerLanguage({
|
|
209053
209060
|
id: "freemarker2.tag-angle.interpolation-dollar",
|
|
209054
209061
|
aliases: ["FreeMarker2 (Angle/Dollar)", "Apache FreeMarker2 (Angle/Dollar)"],
|
|
209055
209062
|
loader: () => {
|
|
209056
|
-
return __vitePreload(() => import("./freemarker2-
|
|
209063
|
+
return __vitePreload(() => import("./freemarker2-CDHpuFqv.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAngleInterpolationDollar);
|
|
209057
209064
|
}
|
|
209058
209065
|
});
|
|
209059
209066
|
registerLanguage({
|
|
209060
209067
|
id: "freemarker2.tag-bracket.interpolation-dollar",
|
|
209061
209068
|
aliases: ["FreeMarker2 (Bracket/Dollar)", "Apache FreeMarker2 (Bracket/Dollar)"],
|
|
209062
209069
|
loader: () => {
|
|
209063
|
-
return __vitePreload(() => import("./freemarker2-
|
|
209070
|
+
return __vitePreload(() => import("./freemarker2-CDHpuFqv.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagBracketInterpolationDollar);
|
|
209064
209071
|
}
|
|
209065
209072
|
});
|
|
209066
209073
|
registerLanguage({
|
|
209067
209074
|
id: "freemarker2.tag-angle.interpolation-bracket",
|
|
209068
209075
|
aliases: ["FreeMarker2 (Angle/Bracket)", "Apache FreeMarker2 (Angle/Bracket)"],
|
|
209069
209076
|
loader: () => {
|
|
209070
|
-
return __vitePreload(() => import("./freemarker2-
|
|
209077
|
+
return __vitePreload(() => import("./freemarker2-CDHpuFqv.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAngleInterpolationBracket);
|
|
209071
209078
|
}
|
|
209072
209079
|
});
|
|
209073
209080
|
registerLanguage({
|
|
209074
209081
|
id: "freemarker2.tag-bracket.interpolation-bracket",
|
|
209075
209082
|
aliases: ["FreeMarker2 (Bracket/Bracket)", "Apache FreeMarker2 (Bracket/Bracket)"],
|
|
209076
209083
|
loader: () => {
|
|
209077
|
-
return __vitePreload(() => import("./freemarker2-
|
|
209084
|
+
return __vitePreload(() => import("./freemarker2-CDHpuFqv.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagBracketInterpolationBracket);
|
|
209078
209085
|
}
|
|
209079
209086
|
});
|
|
209080
209087
|
registerLanguage({
|
|
209081
209088
|
id: "freemarker2.tag-auto.interpolation-dollar",
|
|
209082
209089
|
aliases: ["FreeMarker2 (Auto/Dollar)", "Apache FreeMarker2 (Auto/Dollar)"],
|
|
209083
209090
|
loader: () => {
|
|
209084
|
-
return __vitePreload(() => import("./freemarker2-
|
|
209091
|
+
return __vitePreload(() => import("./freemarker2-CDHpuFqv.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationDollar);
|
|
209085
209092
|
}
|
|
209086
209093
|
});
|
|
209087
209094
|
registerLanguage({
|
|
209088
209095
|
id: "freemarker2.tag-auto.interpolation-bracket",
|
|
209089
209096
|
aliases: ["FreeMarker2 (Auto/Bracket)", "Apache FreeMarker2 (Auto/Bracket)"],
|
|
209090
209097
|
loader: () => {
|
|
209091
|
-
return __vitePreload(() => import("./freemarker2-
|
|
209098
|
+
return __vitePreload(() => import("./freemarker2-CDHpuFqv.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationBracket);
|
|
209092
209099
|
}
|
|
209093
209100
|
});
|
|
209094
209101
|
registerLanguage({
|
|
@@ -209109,7 +209116,7 @@ registerLanguage({
|
|
|
209109
209116
|
extensions: [".handlebars", ".hbs"],
|
|
209110
209117
|
aliases: ["Handlebars", "handlebars", "hbs"],
|
|
209111
209118
|
mimetypes: ["text/x-handlebars-template"],
|
|
209112
|
-
loader: () => __vitePreload(() => import("./handlebars-
|
|
209119
|
+
loader: () => __vitePreload(() => import("./handlebars-CgX9Jz36.js"), true ? [] : void 0, import.meta.url)
|
|
209113
209120
|
});
|
|
209114
209121
|
registerLanguage({
|
|
209115
209122
|
id: "hcl",
|
|
@@ -209122,7 +209129,7 @@ registerLanguage({
|
|
|
209122
209129
|
extensions: [".html", ".htm", ".shtml", ".xhtml", ".mdoc", ".jsp", ".asp", ".aspx", ".jshtm"],
|
|
209123
209130
|
aliases: ["HTML", "htm", "html", "xhtml"],
|
|
209124
209131
|
mimetypes: ["text/html", "text/x-jshtm", "text/template", "text/ng-template"],
|
|
209125
|
-
loader: () => __vitePreload(() => import("./html-
|
|
209132
|
+
loader: () => __vitePreload(() => import("./html-DdgFccDG.js"), true ? [] : void 0, import.meta.url)
|
|
209126
209133
|
});
|
|
209127
209134
|
registerLanguage({
|
|
209128
209135
|
id: "ini",
|
|
@@ -209145,7 +209152,7 @@ registerLanguage({
|
|
|
209145
209152
|
filenames: ["jakefile"],
|
|
209146
209153
|
aliases: ["JavaScript", "javascript", "js"],
|
|
209147
209154
|
mimetypes: ["text/javascript"],
|
|
209148
|
-
loader: () => __vitePreload(() => import("./javascript-
|
|
209155
|
+
loader: () => __vitePreload(() => import("./javascript-CHhxL0s7.js"), true ? __vite__mapDeps([4,5]) : void 0, import.meta.url)
|
|
209149
209156
|
});
|
|
209150
209157
|
registerLanguage({
|
|
209151
209158
|
id: "julia",
|
|
@@ -209184,7 +209191,7 @@ registerLanguage({
|
|
|
209184
209191
|
extensions: [".liquid", ".html.liquid"],
|
|
209185
209192
|
aliases: ["Liquid", "liquid"],
|
|
209186
209193
|
mimetypes: ["application/liquid"],
|
|
209187
|
-
loader: () => __vitePreload(() => import("./liquid-
|
|
209194
|
+
loader: () => __vitePreload(() => import("./liquid-vMkF9pfk.js"), true ? [] : void 0, import.meta.url)
|
|
209188
209195
|
});
|
|
209189
209196
|
registerLanguage({
|
|
209190
209197
|
id: "m3",
|
|
@@ -209202,7 +209209,7 @@ registerLanguage({
|
|
|
209202
209209
|
id: "mdx",
|
|
209203
209210
|
extensions: [".mdx"],
|
|
209204
209211
|
aliases: ["MDX", "mdx"],
|
|
209205
|
-
loader: () => __vitePreload(() => import("./mdx-
|
|
209212
|
+
loader: () => __vitePreload(() => import("./mdx-C4UVz5dW.js"), true ? [] : void 0, import.meta.url)
|
|
209206
209213
|
});
|
|
209207
209214
|
registerLanguage({
|
|
209208
209215
|
id: "mips",
|
|
@@ -209301,7 +209308,7 @@ registerLanguage({
|
|
|
209301
209308
|
extensions: [".py", ".rpy", ".pyw", ".cpy", ".gyp", ".gypi"],
|
|
209302
209309
|
aliases: ["Python", "py"],
|
|
209303
209310
|
firstLine: "^#!/.*\\bpython[0-9.-]*\\b",
|
|
209304
|
-
loader: () => __vitePreload(() => import("./python-
|
|
209311
|
+
loader: () => __vitePreload(() => import("./python-BHemzN9g.js"), true ? [] : void 0, import.meta.url)
|
|
209305
209312
|
});
|
|
209306
209313
|
registerLanguage({
|
|
209307
209314
|
id: "qsharp",
|
|
@@ -209320,7 +209327,7 @@ registerLanguage({
|
|
|
209320
209327
|
extensions: [".cshtml"],
|
|
209321
209328
|
aliases: ["Razor", "razor"],
|
|
209322
209329
|
mimetypes: ["text/x-cshtml"],
|
|
209323
|
-
loader: () => __vitePreload(() => import("./razor-
|
|
209330
|
+
loader: () => __vitePreload(() => import("./razor-DH6NPzbo.js"), true ? [] : void 0, import.meta.url)
|
|
209324
209331
|
});
|
|
209325
209332
|
registerLanguage({
|
|
209326
209333
|
id: "redis",
|
|
@@ -209453,7 +209460,7 @@ registerLanguage({
|
|
|
209453
209460
|
aliases: ["TypeScript", "ts", "typescript"],
|
|
209454
209461
|
mimetypes: ["text/typescript"],
|
|
209455
209462
|
loader: () => {
|
|
209456
|
-
return __vitePreload(() => import("./typescript-
|
|
209463
|
+
return __vitePreload(() => import("./typescript-BRCOaBQ5.js"), true ? [] : void 0, import.meta.url);
|
|
209457
209464
|
}
|
|
209458
209465
|
});
|
|
209459
209466
|
registerLanguage({
|
|
@@ -209498,14 +209505,14 @@ registerLanguage({
|
|
|
209498
209505
|
firstLine: "(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",
|
|
209499
209506
|
aliases: ["XML", "xml"],
|
|
209500
209507
|
mimetypes: ["text/xml", "application/xml", "application/xaml+xml", "application/xml-dtd"],
|
|
209501
|
-
loader: () => __vitePreload(() => import("./xml-
|
|
209508
|
+
loader: () => __vitePreload(() => import("./xml-DVv9gDP1.js"), true ? [] : void 0, import.meta.url)
|
|
209502
209509
|
});
|
|
209503
209510
|
registerLanguage({
|
|
209504
209511
|
id: "yaml",
|
|
209505
209512
|
extensions: [".yaml", ".yml"],
|
|
209506
209513
|
aliases: ["YAML", "yaml", "YML", "yml"],
|
|
209507
209514
|
mimetypes: ["application/x-yaml", "text/x-yaml"],
|
|
209508
|
-
loader: () => __vitePreload(() => import("./yaml-
|
|
209515
|
+
loader: () => __vitePreload(() => import("./yaml-jB-C3CdS.js"), true ? [] : void 0, import.meta.url)
|
|
209509
209516
|
});
|
|
209510
209517
|
var __defProp = Object.defineProperty;
|
|
209511
209518
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { conf as conf$1, language as language$1 } from "./typescript-
|
|
2
|
-
import "./index-
|
|
1
|
+
import { conf as conf$1, language as language$1 } from "./typescript-BRCOaBQ5.js";
|
|
2
|
+
import "./index-DVdWgw7p.js";
|
|
3
3
|
const conf = conf$1;
|
|
4
4
|
const language = {
|
|
5
5
|
// Set defaultToken to invalid to see what you do not tokenize yet
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as createWebWorker, l as languages, e as editor } from "./index-
|
|
2
|
-
import { f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter, H as HoverAdapter, b as DocumentSymbolAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, S as SelectionRangeAdapter, e as DiagnosticsAdapter } from "./lspLanguageFeatures-
|
|
3
|
-
import { a, D, h, R, c, i, j, t, k } from "./lspLanguageFeatures-
|
|
1
|
+
import { c as createWebWorker, l as languages, e as editor } from "./index-DVdWgw7p.js";
|
|
2
|
+
import { f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter, H as HoverAdapter, b as DocumentSymbolAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, S as SelectionRangeAdapter, e as DiagnosticsAdapter } from "./lspLanguageFeatures-nAygNzuG.js";
|
|
3
|
+
import { a, D, h, R, c, i, j, t, k } from "./lspLanguageFeatures-nAygNzuG.js";
|
|
4
4
|
const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
|
|
5
5
|
class WorkerManager {
|
|
6
6
|
constructor(defaults) {
|
package/out/renderer/assets/{lspLanguageFeatures-BE0g7ubH.js → lspLanguageFeatures-nAygNzuG.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as Range$1, l as languages, e as editor, U as Uri, M as MarkerSeverity } from "./index-
|
|
1
|
+
import { R as Range$1, l as languages, e as editor, U as Uri, M as MarkerSeverity } from "./index-DVdWgw7p.js";
|
|
2
2
|
var DocumentUri;
|
|
3
3
|
(function(DocumentUri2) {
|
|
4
4
|
function is(value) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as createWebWorker, e as editor, U as Uri, a as MarkerTag, M as MarkerSeverity, l as languages, t as typescriptDefaults, R as Range } from "./index-
|
|
1
|
+
import { c as createWebWorker, e as editor, U as Uri, a as MarkerTag, M as MarkerSeverity, l as languages, t as typescriptDefaults, R as Range } from "./index-DVdWgw7p.js";
|
|
2
2
|
class WorkerManager {
|
|
3
3
|
constructor(_modeId, _defaults) {
|
|
4
4
|
this._modeId = _modeId;
|
package/out/renderer/index.html
CHANGED
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
:root[data-theme='catppuccin-latte'] .boot-splash-title { color: #2f3145; }
|
|
107
107
|
:root[data-theme='catppuccin-latte'] .boot-splash-label { color: #7c7f93; }
|
|
108
108
|
</style>
|
|
109
|
-
<script type="module" crossorigin src="./assets/index-
|
|
109
|
+
<script type="module" crossorigin src="./assets/index-DVdWgw7p.js"></script>
|
|
110
110
|
<link rel="stylesheet" crossorigin href="./assets/index-3sFJEz7i.css">
|
|
111
111
|
</head>
|
|
112
112
|
<body>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@phenx-inc/ctlsurf",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.2",
|
|
4
4
|
"description": "Agent-agnostic terminal and desktop app for ctlsurf — run Claude Code, Codex, or any coding agent with live session logging and remote control",
|
|
5
5
|
"main": "out/main/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -15,10 +15,11 @@ interface FloatingMicProps {
|
|
|
15
15
|
onHide: () => void
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
// Keep the
|
|
18
|
+
// Keep the toolbar clear of the 38px titlebar, 24px status bar, and the
|
|
19
|
+
// terminal's bottom input line.
|
|
19
20
|
const EDGE = 20
|
|
20
21
|
const TOP_MIN = 46
|
|
21
|
-
const BOTTOM_GAP =
|
|
22
|
+
const BOTTOM_GAP = 72
|
|
22
23
|
|
|
23
24
|
function loadPos(): Pos | null {
|
|
24
25
|
try {
|
|
@@ -71,17 +72,20 @@ export function FloatingMic({ onTranscript, onHide }: FloatingMicProps) {
|
|
|
71
72
|
}
|
|
72
73
|
}, [])
|
|
73
74
|
|
|
74
|
-
//
|
|
75
|
+
// Default to bottom-right, and clamp saved positions on first mount too so
|
|
76
|
+
// increased chrome/input clearance applies to existing installations.
|
|
75
77
|
useEffect(() => {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
setPos((current) => {
|
|
79
|
+
if (current) return clamp(current.x, current.y)
|
|
80
|
+
const el = elRef.current
|
|
81
|
+
const w = el?.offsetWidth ?? 64
|
|
82
|
+
const h = el?.offsetHeight ?? 90
|
|
83
|
+
return clamp(
|
|
84
|
+
window.innerWidth - w - EDGE,
|
|
85
|
+
window.innerHeight - h - BOTTOM_GAP,
|
|
86
|
+
)
|
|
83
87
|
})
|
|
84
|
-
}, [
|
|
88
|
+
}, [clamp])
|
|
85
89
|
|
|
86
90
|
// Keep it reachable if the window shrinks.
|
|
87
91
|
useEffect(() => {
|
|
@@ -197,6 +197,11 @@ function getOrCreateTerminal(tabId: string, onExit: (tabId: string) => void): {
|
|
|
197
197
|
|
|
198
198
|
const terminal = new Terminal({
|
|
199
199
|
cursorBlink: true,
|
|
200
|
+
// Codex and other modern CLIs often render links as OSC 8 hyperlinks
|
|
201
|
+
// instead of plain URL text. OSC 8 links are handled by xterm core (not
|
|
202
|
+
// WebLinksAddon), whose default activation calls window.open(). Route them
|
|
203
|
+
// through the same embedded-panel handler as detected plain-text URLs.
|
|
204
|
+
linkHandler: { activate: handleTerminalLink },
|
|
200
205
|
// Off by default on macOS; without this a right-click would reselect the
|
|
201
206
|
// word under the cursor and clobber a multi-line table selection.
|
|
202
207
|
rightClickSelectsWord: false,
|
|
@@ -469,8 +474,12 @@ export function TerminalPanel({ tabId, agent, onSpawn, onExit, isActive }: Termi
|
|
|
469
474
|
|
|
470
475
|
// Wheel over the terminal is an explicit user scroll — stamp it so onScroll
|
|
471
476
|
// treats the resulting move as intentional (not an involuntary redraw jump).
|
|
477
|
+
// Capture is important: xterm handles wheel events on a descendant and
|
|
478
|
+
// emits onScroll synchronously. A bubbling listener runs too late, causing
|
|
479
|
+
// streamed Codex output to mistake the wheel scroll for a redraw and snap
|
|
480
|
+
// the viewport straight back to the bottom.
|
|
472
481
|
const onWheel = () => markGesture(tabId)
|
|
473
|
-
terminal.element?.addEventListener('wheel', onWheel, { passive: true })
|
|
482
|
+
terminal.element?.addEventListener('wheel', onWheel, { capture: true, passive: true })
|
|
474
483
|
|
|
475
484
|
// Resize handling — skip when the container is hidden (display:none → 0x0),
|
|
476
485
|
// otherwise fit() reports a tiny size and the PTY gets stuck at ~4 cols
|
|
@@ -499,7 +508,7 @@ export function TerminalPanel({ tabId, agent, onSpawn, onExit, isActive }: Termi
|
|
|
499
508
|
clearTimeout(resizeTimeout)
|
|
500
509
|
window.removeEventListener('resize', handleResize)
|
|
501
510
|
observer.disconnect()
|
|
502
|
-
terminal.element?.removeEventListener('wheel', onWheel)
|
|
511
|
+
terminal.element?.removeEventListener('wheel', onWheel, true)
|
|
503
512
|
// Do NOT dispose terminal or unsub PTY listeners — they persist across remounts
|
|
504
513
|
}
|
|
505
514
|
}, [tabId, onExit])
|