@phenx-inc/ctlsurf 0.14.0 → 0.14.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/README.md +36 -0
- package/out/headless/index.mjs +11 -2
- package/out/headless/index.mjs.map +2 -2
- package/out/renderer/assets/{cssMode-7adWSORr.js → cssMode-bQYoCKra.js} +3 -3
- package/out/renderer/assets/{freemarker2-BkLLWnzk.js → freemarker2-BS1ERQl_.js} +1 -1
- package/out/renderer/assets/{handlebars-Cinfm9fZ.js → handlebars-B-ZEHRLr.js} +1 -1
- package/out/renderer/assets/{html-vl9fkHKL.js → html-lk9e1Lkl.js} +1 -1
- package/out/renderer/assets/{htmlMode-BtGqkTNI.js → htmlMode-Ds1eMYgM.js} +3 -3
- package/out/renderer/assets/{index-BhrV6ld-.js → index-BJNR4hRK.js} +43 -22
- package/out/renderer/assets/{javascript-B7CCdfuW.js → javascript-D6OeziKX.js} +2 -2
- package/out/renderer/assets/{jsonMode-ut9LWBMJ.js → jsonMode-t5SESE75.js} +3 -3
- package/out/renderer/assets/{liquid-DVDJ0lKt.js → liquid-B5Wjh0p_.js} +1 -1
- package/out/renderer/assets/{lspLanguageFeatures-BbMj8Wsc.js → lspLanguageFeatures-BEgiDCIW.js} +1 -1
- package/out/renderer/assets/{mdx-CcQzYB0J.js → mdx-ByNAXh8t.js} +1 -1
- package/out/renderer/assets/{python-Byy7wKMv.js → python-CIFO0XQW.js} +1 -1
- package/out/renderer/assets/{razor-D1xi_wMM.js → razor-LXHhGcNO.js} +1 -1
- package/out/renderer/assets/{tsMode-DJPzbn5i.js → tsMode-WiO8CDaI.js} +1 -1
- package/out/renderer/assets/{typescript-BuVaU7i3.js → typescript-ZBQlq256.js} +1 -1
- package/out/renderer/assets/{xml-rzc91O3d.js → xml-DBaLJlQU.js} +1 -1
- package/out/renderer/assets/{yaml-fAOzQMge.js → yaml-CId9skah.js} +1 -1
- package/out/renderer/index.html +1 -1
- package/package.json +13 -4
- package/src/renderer/components/TerminalPanel.tsx +29 -0
|
@@ -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-BJNR4hRK.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-BEgiDCIW.js";
|
|
3
|
+
import { h, i, j, t, k } from "./lspLanguageFeatures-BEgiDCIW.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-BJNR4hRK.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-BEgiDCIW.js";
|
|
3
|
+
import { a, e, d, R, i, j, t, k } from "./lspLanguageFeatures-BEgiDCIW.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-bQYoCKra.js","./lspLanguageFeatures-BEgiDCIW.js","./htmlMode-Ds1eMYgM.js","./jsonMode-t5SESE75.js","./javascript-D6OeziKX.js","./typescript-ZBQlq256.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
|
}
|
|
@@ -19286,6 +19286,12 @@ function getOrCreateTerminal(tabId, onExit) {
|
|
|
19286
19286
|
// Off by default on macOS; without this a right-click would reselect the
|
|
19287
19287
|
// word under the cursor and clobber a multi-line table selection.
|
|
19288
19288
|
rightClickSelectsWord: false,
|
|
19289
|
+
// A mouse-tracking TUI (notably tmux with `set -g mouse on`) swallows plain
|
|
19290
|
+
// drags, so they yank into a remote tmux buffer instead of selecting here.
|
|
19291
|
+
// Option+drag is the only way back to a local selection on macOS, and xterm
|
|
19292
|
+
// gates it behind this flag. Elsewhere Shift+drag already does it. Costs us
|
|
19293
|
+
// Option+drag column-select on macOS, which nothing here relies on.
|
|
19294
|
+
macOptionClickForcesSelection: true,
|
|
19289
19295
|
fontSize: 14,
|
|
19290
19296
|
fontFamily: "'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'SF Mono', monospace",
|
|
19291
19297
|
theme: {
|
|
@@ -19317,6 +19323,21 @@ function getOrCreateTerminal(tabId, onExit) {
|
|
|
19317
19323
|
const fitAddon = new addonFitExports.FitAddon();
|
|
19318
19324
|
terminal.loadAddon(fitAddon);
|
|
19319
19325
|
terminal.loadAddon(new addonWebLinksExports.WebLinksAddon(handleTerminalLink));
|
|
19326
|
+
terminal.parser.registerOscHandler(52, (data) => {
|
|
19327
|
+
const payload = data.slice(data.indexOf(";") + 1);
|
|
19328
|
+
if (!payload || payload === "?") return false;
|
|
19329
|
+
if (payload.length > 14e5) return false;
|
|
19330
|
+
let text2;
|
|
19331
|
+
try {
|
|
19332
|
+
const bin = atob(payload);
|
|
19333
|
+
text2 = new TextDecoder().decode(Uint8Array.from(bin, (c) => c.charCodeAt(0)));
|
|
19334
|
+
} catch (err) {
|
|
19335
|
+
console.warn("[copy] OSC 52 payload was not valid base64", err);
|
|
19336
|
+
return false;
|
|
19337
|
+
}
|
|
19338
|
+
copyTextValue(text2);
|
|
19339
|
+
return true;
|
|
19340
|
+
});
|
|
19320
19341
|
terminal.attachCustomKeyEventHandler((e) => {
|
|
19321
19342
|
if (e.type !== "keydown") return true;
|
|
19322
19343
|
if (e.key === "PageUp" || e.key === "PageDown" || e.key === "Home" || e.key === "End") {
|
|
@@ -208167,7 +208188,7 @@ const lessDefaults = new LanguageServiceDefaultsImpl$3(
|
|
|
208167
208188
|
modeConfigurationDefault$2
|
|
208168
208189
|
);
|
|
208169
208190
|
function getMode$3() {
|
|
208170
|
-
return __vitePreload(() => import("./cssMode-
|
|
208191
|
+
return __vitePreload(() => import("./cssMode-bQYoCKra.js"), true ? __vite__mapDeps([0,1]) : void 0, import.meta.url);
|
|
208171
208192
|
}
|
|
208172
208193
|
languages.onLanguage("less", () => {
|
|
208173
208194
|
getMode$3().then((mode2) => mode2.setupMode(lessDefaults));
|
|
@@ -208272,7 +208293,7 @@ const razorLanguageService = registerHTMLLanguageService(
|
|
|
208272
208293
|
);
|
|
208273
208294
|
const razorDefaults = razorLanguageService.defaults;
|
|
208274
208295
|
function getMode$2() {
|
|
208275
|
-
return __vitePreload(() => import("./htmlMode-
|
|
208296
|
+
return __vitePreload(() => import("./htmlMode-Ds1eMYgM.js"), true ? __vite__mapDeps([2,1]) : void 0, import.meta.url);
|
|
208276
208297
|
}
|
|
208277
208298
|
function registerHTMLLanguageService(languageId, options = optionsDefault, modeConfiguration = getConfigurationDefault(languageId)) {
|
|
208278
208299
|
const defaults = new LanguageServiceDefaultsImpl$2(languageId, options, modeConfiguration);
|
|
@@ -208356,7 +208377,7 @@ const jsonDefaults = new LanguageServiceDefaultsImpl$1(
|
|
|
208356
208377
|
);
|
|
208357
208378
|
const getWorker$1 = () => getMode$1().then((mode2) => mode2.getWorker());
|
|
208358
208379
|
function getMode$1() {
|
|
208359
|
-
return __vitePreload(() => import("./jsonMode-
|
|
208380
|
+
return __vitePreload(() => import("./jsonMode-t5SESE75.js"), true ? __vite__mapDeps([3,1]) : void 0, import.meta.url);
|
|
208360
208381
|
}
|
|
208361
208382
|
languages.register({
|
|
208362
208383
|
id: "json",
|
|
@@ -208602,7 +208623,7 @@ const getJavaScriptWorker = () => {
|
|
|
208602
208623
|
return getMode().then((mode) => mode.getJavaScriptWorker());
|
|
208603
208624
|
};
|
|
208604
208625
|
function getMode() {
|
|
208605
|
-
return __vitePreload(() => import("./tsMode-
|
|
208626
|
+
return __vitePreload(() => import("./tsMode-WiO8CDaI.js"), true ? [] : void 0, import.meta.url);
|
|
208606
208627
|
}
|
|
208607
208628
|
languages.onLanguage("typescript", () => {
|
|
208608
208629
|
return getMode().then((mode) => mode.setupTypeScript(typescriptDefaults));
|
|
@@ -208797,49 +208818,49 @@ registerLanguage({
|
|
|
208797
208818
|
extensions: [".ftl", ".ftlh", ".ftlx"],
|
|
208798
208819
|
aliases: ["FreeMarker2", "Apache FreeMarker2"],
|
|
208799
208820
|
loader: () => {
|
|
208800
|
-
return __vitePreload(() => import("./freemarker2-
|
|
208821
|
+
return __vitePreload(() => import("./freemarker2-BS1ERQl_.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationDollar);
|
|
208801
208822
|
}
|
|
208802
208823
|
});
|
|
208803
208824
|
registerLanguage({
|
|
208804
208825
|
id: "freemarker2.tag-angle.interpolation-dollar",
|
|
208805
208826
|
aliases: ["FreeMarker2 (Angle/Dollar)", "Apache FreeMarker2 (Angle/Dollar)"],
|
|
208806
208827
|
loader: () => {
|
|
208807
|
-
return __vitePreload(() => import("./freemarker2-
|
|
208828
|
+
return __vitePreload(() => import("./freemarker2-BS1ERQl_.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAngleInterpolationDollar);
|
|
208808
208829
|
}
|
|
208809
208830
|
});
|
|
208810
208831
|
registerLanguage({
|
|
208811
208832
|
id: "freemarker2.tag-bracket.interpolation-dollar",
|
|
208812
208833
|
aliases: ["FreeMarker2 (Bracket/Dollar)", "Apache FreeMarker2 (Bracket/Dollar)"],
|
|
208813
208834
|
loader: () => {
|
|
208814
|
-
return __vitePreload(() => import("./freemarker2-
|
|
208835
|
+
return __vitePreload(() => import("./freemarker2-BS1ERQl_.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagBracketInterpolationDollar);
|
|
208815
208836
|
}
|
|
208816
208837
|
});
|
|
208817
208838
|
registerLanguage({
|
|
208818
208839
|
id: "freemarker2.tag-angle.interpolation-bracket",
|
|
208819
208840
|
aliases: ["FreeMarker2 (Angle/Bracket)", "Apache FreeMarker2 (Angle/Bracket)"],
|
|
208820
208841
|
loader: () => {
|
|
208821
|
-
return __vitePreload(() => import("./freemarker2-
|
|
208842
|
+
return __vitePreload(() => import("./freemarker2-BS1ERQl_.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAngleInterpolationBracket);
|
|
208822
208843
|
}
|
|
208823
208844
|
});
|
|
208824
208845
|
registerLanguage({
|
|
208825
208846
|
id: "freemarker2.tag-bracket.interpolation-bracket",
|
|
208826
208847
|
aliases: ["FreeMarker2 (Bracket/Bracket)", "Apache FreeMarker2 (Bracket/Bracket)"],
|
|
208827
208848
|
loader: () => {
|
|
208828
|
-
return __vitePreload(() => import("./freemarker2-
|
|
208849
|
+
return __vitePreload(() => import("./freemarker2-BS1ERQl_.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagBracketInterpolationBracket);
|
|
208829
208850
|
}
|
|
208830
208851
|
});
|
|
208831
208852
|
registerLanguage({
|
|
208832
208853
|
id: "freemarker2.tag-auto.interpolation-dollar",
|
|
208833
208854
|
aliases: ["FreeMarker2 (Auto/Dollar)", "Apache FreeMarker2 (Auto/Dollar)"],
|
|
208834
208855
|
loader: () => {
|
|
208835
|
-
return __vitePreload(() => import("./freemarker2-
|
|
208856
|
+
return __vitePreload(() => import("./freemarker2-BS1ERQl_.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationDollar);
|
|
208836
208857
|
}
|
|
208837
208858
|
});
|
|
208838
208859
|
registerLanguage({
|
|
208839
208860
|
id: "freemarker2.tag-auto.interpolation-bracket",
|
|
208840
208861
|
aliases: ["FreeMarker2 (Auto/Bracket)", "Apache FreeMarker2 (Auto/Bracket)"],
|
|
208841
208862
|
loader: () => {
|
|
208842
|
-
return __vitePreload(() => import("./freemarker2-
|
|
208863
|
+
return __vitePreload(() => import("./freemarker2-BS1ERQl_.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationBracket);
|
|
208843
208864
|
}
|
|
208844
208865
|
});
|
|
208845
208866
|
registerLanguage({
|
|
@@ -208860,7 +208881,7 @@ registerLanguage({
|
|
|
208860
208881
|
extensions: [".handlebars", ".hbs"],
|
|
208861
208882
|
aliases: ["Handlebars", "handlebars", "hbs"],
|
|
208862
208883
|
mimetypes: ["text/x-handlebars-template"],
|
|
208863
|
-
loader: () => __vitePreload(() => import("./handlebars-
|
|
208884
|
+
loader: () => __vitePreload(() => import("./handlebars-B-ZEHRLr.js"), true ? [] : void 0, import.meta.url)
|
|
208864
208885
|
});
|
|
208865
208886
|
registerLanguage({
|
|
208866
208887
|
id: "hcl",
|
|
@@ -208873,7 +208894,7 @@ registerLanguage({
|
|
|
208873
208894
|
extensions: [".html", ".htm", ".shtml", ".xhtml", ".mdoc", ".jsp", ".asp", ".aspx", ".jshtm"],
|
|
208874
208895
|
aliases: ["HTML", "htm", "html", "xhtml"],
|
|
208875
208896
|
mimetypes: ["text/html", "text/x-jshtm", "text/template", "text/ng-template"],
|
|
208876
|
-
loader: () => __vitePreload(() => import("./html-
|
|
208897
|
+
loader: () => __vitePreload(() => import("./html-lk9e1Lkl.js"), true ? [] : void 0, import.meta.url)
|
|
208877
208898
|
});
|
|
208878
208899
|
registerLanguage({
|
|
208879
208900
|
id: "ini",
|
|
@@ -208896,7 +208917,7 @@ registerLanguage({
|
|
|
208896
208917
|
filenames: ["jakefile"],
|
|
208897
208918
|
aliases: ["JavaScript", "javascript", "js"],
|
|
208898
208919
|
mimetypes: ["text/javascript"],
|
|
208899
|
-
loader: () => __vitePreload(() => import("./javascript-
|
|
208920
|
+
loader: () => __vitePreload(() => import("./javascript-D6OeziKX.js"), true ? __vite__mapDeps([4,5]) : void 0, import.meta.url)
|
|
208900
208921
|
});
|
|
208901
208922
|
registerLanguage({
|
|
208902
208923
|
id: "julia",
|
|
@@ -208935,7 +208956,7 @@ registerLanguage({
|
|
|
208935
208956
|
extensions: [".liquid", ".html.liquid"],
|
|
208936
208957
|
aliases: ["Liquid", "liquid"],
|
|
208937
208958
|
mimetypes: ["application/liquid"],
|
|
208938
|
-
loader: () => __vitePreload(() => import("./liquid-
|
|
208959
|
+
loader: () => __vitePreload(() => import("./liquid-B5Wjh0p_.js"), true ? [] : void 0, import.meta.url)
|
|
208939
208960
|
});
|
|
208940
208961
|
registerLanguage({
|
|
208941
208962
|
id: "m3",
|
|
@@ -208953,7 +208974,7 @@ registerLanguage({
|
|
|
208953
208974
|
id: "mdx",
|
|
208954
208975
|
extensions: [".mdx"],
|
|
208955
208976
|
aliases: ["MDX", "mdx"],
|
|
208956
|
-
loader: () => __vitePreload(() => import("./mdx-
|
|
208977
|
+
loader: () => __vitePreload(() => import("./mdx-ByNAXh8t.js"), true ? [] : void 0, import.meta.url)
|
|
208957
208978
|
});
|
|
208958
208979
|
registerLanguage({
|
|
208959
208980
|
id: "mips",
|
|
@@ -209052,7 +209073,7 @@ registerLanguage({
|
|
|
209052
209073
|
extensions: [".py", ".rpy", ".pyw", ".cpy", ".gyp", ".gypi"],
|
|
209053
209074
|
aliases: ["Python", "py"],
|
|
209054
209075
|
firstLine: "^#!/.*\\bpython[0-9.-]*\\b",
|
|
209055
|
-
loader: () => __vitePreload(() => import("./python-
|
|
209076
|
+
loader: () => __vitePreload(() => import("./python-CIFO0XQW.js"), true ? [] : void 0, import.meta.url)
|
|
209056
209077
|
});
|
|
209057
209078
|
registerLanguage({
|
|
209058
209079
|
id: "qsharp",
|
|
@@ -209071,7 +209092,7 @@ registerLanguage({
|
|
|
209071
209092
|
extensions: [".cshtml"],
|
|
209072
209093
|
aliases: ["Razor", "razor"],
|
|
209073
209094
|
mimetypes: ["text/x-cshtml"],
|
|
209074
|
-
loader: () => __vitePreload(() => import("./razor-
|
|
209095
|
+
loader: () => __vitePreload(() => import("./razor-LXHhGcNO.js"), true ? [] : void 0, import.meta.url)
|
|
209075
209096
|
});
|
|
209076
209097
|
registerLanguage({
|
|
209077
209098
|
id: "redis",
|
|
@@ -209204,7 +209225,7 @@ registerLanguage({
|
|
|
209204
209225
|
aliases: ["TypeScript", "ts", "typescript"],
|
|
209205
209226
|
mimetypes: ["text/typescript"],
|
|
209206
209227
|
loader: () => {
|
|
209207
|
-
return __vitePreload(() => import("./typescript-
|
|
209228
|
+
return __vitePreload(() => import("./typescript-ZBQlq256.js"), true ? [] : void 0, import.meta.url);
|
|
209208
209229
|
}
|
|
209209
209230
|
});
|
|
209210
209231
|
registerLanguage({
|
|
@@ -209249,14 +209270,14 @@ registerLanguage({
|
|
|
209249
209270
|
firstLine: "(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",
|
|
209250
209271
|
aliases: ["XML", "xml"],
|
|
209251
209272
|
mimetypes: ["text/xml", "application/xml", "application/xaml+xml", "application/xml-dtd"],
|
|
209252
|
-
loader: () => __vitePreload(() => import("./xml-
|
|
209273
|
+
loader: () => __vitePreload(() => import("./xml-DBaLJlQU.js"), true ? [] : void 0, import.meta.url)
|
|
209253
209274
|
});
|
|
209254
209275
|
registerLanguage({
|
|
209255
209276
|
id: "yaml",
|
|
209256
209277
|
extensions: [".yaml", ".yml"],
|
|
209257
209278
|
aliases: ["YAML", "yaml", "YML", "yml"],
|
|
209258
209279
|
mimetypes: ["application/x-yaml", "text/x-yaml"],
|
|
209259
|
-
loader: () => __vitePreload(() => import("./yaml-
|
|
209280
|
+
loader: () => __vitePreload(() => import("./yaml-CId9skah.js"), true ? [] : void 0, import.meta.url)
|
|
209260
209281
|
});
|
|
209261
209282
|
var __defProp = Object.defineProperty;
|
|
209262
209283
|
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-ZBQlq256.js";
|
|
2
|
+
import "./index-BJNR4hRK.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-BJNR4hRK.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-BEgiDCIW.js";
|
|
3
|
+
import { a, D, h, R, c, i, j, t, k } from "./lspLanguageFeatures-BEgiDCIW.js";
|
|
4
4
|
const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
|
|
5
5
|
class WorkerManager {
|
|
6
6
|
constructor(defaults) {
|
package/out/renderer/assets/{lspLanguageFeatures-BbMj8Wsc.js → lspLanguageFeatures-BEgiDCIW.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-BJNR4hRK.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-BJNR4hRK.js";
|
|
2
2
|
class WorkerManager {
|
|
3
3
|
constructor(_modeId, _defaults) {
|
|
4
4
|
this._modeId = _modeId;
|
package/out/renderer/index.html
CHANGED
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
color: #565f89;
|
|
50
50
|
}
|
|
51
51
|
</style>
|
|
52
|
-
<script type="module" crossorigin src="./assets/index-
|
|
52
|
+
<script type="module" crossorigin src="./assets/index-BJNR4hRK.js"></script>
|
|
53
53
|
<link rel="stylesheet" crossorigin href="./assets/index-BpCORklm.css">
|
|
54
54
|
</head>
|
|
55
55
|
<body>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@phenx-inc/ctlsurf",
|
|
3
|
-
"version": "0.14.
|
|
4
|
-
"description": "Agent-agnostic terminal and desktop app for ctlsurf
|
|
3
|
+
"version": "0.14.2",
|
|
4
|
+
"description": "Agent-agnostic terminal and desktop app for ctlsurf \u2014 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": {
|
|
7
7
|
"ctlsurf": "./bin/ctlsurf-worker.js",
|
|
@@ -36,7 +36,12 @@
|
|
|
36
36
|
"codex",
|
|
37
37
|
"electron",
|
|
38
38
|
"node-pty",
|
|
39
|
-
"xterm"
|
|
39
|
+
"xterm",
|
|
40
|
+
"ai-agent",
|
|
41
|
+
"mcp",
|
|
42
|
+
"agent-observability",
|
|
43
|
+
"provenance",
|
|
44
|
+
"time-tracking"
|
|
40
45
|
],
|
|
41
46
|
"license": "SEE LICENSE IN LICENSE",
|
|
42
47
|
"engines": {
|
|
@@ -74,5 +79,9 @@
|
|
|
74
79
|
"optionalDependencies": {
|
|
75
80
|
"bufferutil": "^4.1.0",
|
|
76
81
|
"utf-8-validate": "^6.0.6"
|
|
82
|
+
},
|
|
83
|
+
"homepage": "https://ctlsurf.com",
|
|
84
|
+
"bugs": {
|
|
85
|
+
"email": "phenx@phenx.io"
|
|
77
86
|
}
|
|
78
|
-
}
|
|
87
|
+
}
|
|
@@ -189,6 +189,12 @@ function getOrCreateTerminal(tabId: string, onExit: (tabId: string) => void): {
|
|
|
189
189
|
// Off by default on macOS; without this a right-click would reselect the
|
|
190
190
|
// word under the cursor and clobber a multi-line table selection.
|
|
191
191
|
rightClickSelectsWord: false,
|
|
192
|
+
// A mouse-tracking TUI (notably tmux with `set -g mouse on`) swallows plain
|
|
193
|
+
// drags, so they yank into a remote tmux buffer instead of selecting here.
|
|
194
|
+
// Option+drag is the only way back to a local selection on macOS, and xterm
|
|
195
|
+
// gates it behind this flag. Elsewhere Shift+drag already does it. Costs us
|
|
196
|
+
// Option+drag column-select on macOS, which nothing here relies on.
|
|
197
|
+
macOptionClickForcesSelection: true,
|
|
192
198
|
fontSize: 14,
|
|
193
199
|
fontFamily: "'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'SF Mono', monospace",
|
|
194
200
|
theme: {
|
|
@@ -222,6 +228,29 @@ function getOrCreateTerminal(tabId: string, onExit: (tabId: string) => void): {
|
|
|
222
228
|
terminal.loadAddon(fitAddon)
|
|
223
229
|
terminal.loadAddon(new WebLinksAddon(handleTerminalLink))
|
|
224
230
|
|
|
231
|
+
// OSC 52 — how a remote program (tmux's mouse-drag yank, vim, an agent TUI)
|
|
232
|
+
// asks the terminal it's attached to for a system-clipboard write. Real
|
|
233
|
+
// terminals honour it; xterm ships no handler, so those yanks used to vanish.
|
|
234
|
+
// Payload is `<targets>;<base64>`; `?` is a read-back request we decline
|
|
235
|
+
// rather than answer, so the remote can never exfiltrate the clipboard.
|
|
236
|
+
terminal.parser.registerOscHandler(52, (data) => {
|
|
237
|
+
const payload = data.slice(data.indexOf(';') + 1)
|
|
238
|
+
if (!payload || payload === '?') return false
|
|
239
|
+
// ~1MB of base64. A runaway program shouldn't be able to wedge the main
|
|
240
|
+
// process with an unbounded clipboard write.
|
|
241
|
+
if (payload.length > 1_400_000) return false
|
|
242
|
+
let text: string
|
|
243
|
+
try {
|
|
244
|
+
const bin = atob(payload)
|
|
245
|
+
text = new TextDecoder().decode(Uint8Array.from(bin, (c) => c.charCodeAt(0)))
|
|
246
|
+
} catch (err) {
|
|
247
|
+
console.warn('[copy] OSC 52 payload was not valid base64', err)
|
|
248
|
+
return false
|
|
249
|
+
}
|
|
250
|
+
copyTextValue(text)
|
|
251
|
+
return true
|
|
252
|
+
})
|
|
253
|
+
|
|
225
254
|
// Selection actions via ⌘/Ctrl+Shift+[C|E|S] → copy / convert-to-table /
|
|
226
255
|
// read-aloud. Handled here (not as DOM listeners) so they work even while a
|
|
227
256
|
// mouse-tracking TUI is running, where right-click and mouse selection are
|