@termaxjs/web-core 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/LICENSE +201 -0
  2. package/dist/block/blockRange.d.ts +11 -0
  3. package/dist/block/blockRange.d.ts.map +1 -0
  4. package/dist/block/blockRange.js +16 -0
  5. package/dist/block/blockRange.js.map +1 -0
  6. package/dist/block/modeMachine.d.ts +18 -0
  7. package/dist/block/modeMachine.d.ts.map +1 -0
  8. package/dist/block/modeMachine.js +21 -0
  9. package/dist/block/modeMachine.js.map +1 -0
  10. package/dist/cursorBlink.d.ts +2 -0
  11. package/dist/cursorBlink.d.ts.map +1 -0
  12. package/dist/cursorBlink.js +4 -0
  13. package/dist/cursorBlink.js.map +1 -0
  14. package/dist/explorer/HeadlessFileTree.d.ts +27 -0
  15. package/dist/explorer/HeadlessFileTree.d.ts.map +1 -0
  16. package/dist/explorer/HeadlessFileTree.js +147 -0
  17. package/dist/explorer/HeadlessFileTree.js.map +1 -0
  18. package/dist/explorer/expansionCache.d.ts +4 -0
  19. package/dist/explorer/expansionCache.d.ts.map +1 -0
  20. package/dist/explorer/expansionCache.js +26 -0
  21. package/dist/explorer/expansionCache.js.map +1 -0
  22. package/dist/explorer/index.d.ts +5 -0
  23. package/dist/explorer/index.d.ts.map +1 -0
  24. package/dist/explorer/index.js +5 -0
  25. package/dist/explorer/index.js.map +1 -0
  26. package/dist/explorer/pathUtils.d.ts +5 -0
  27. package/dist/explorer/pathUtils.d.ts.map +1 -0
  28. package/dist/explorer/pathUtils.js +19 -0
  29. package/dist/explorer/pathUtils.js.map +1 -0
  30. package/dist/explorer/types.d.ts +65 -0
  31. package/dist/explorer/types.d.ts.map +1 -0
  32. package/dist/explorer/types.js +2 -0
  33. package/dist/explorer/types.js.map +1 -0
  34. package/dist/git/HeadlessGitGraph.d.ts +39 -0
  35. package/dist/git/HeadlessGitGraph.d.ts.map +1 -0
  36. package/dist/git/HeadlessGitGraph.js +81 -0
  37. package/dist/git/HeadlessGitGraph.js.map +1 -0
  38. package/dist/images/KittyGraphicsParser.d.ts +24 -0
  39. package/dist/images/KittyGraphicsParser.d.ts.map +1 -0
  40. package/dist/images/KittyGraphicsParser.js +87 -0
  41. package/dist/images/KittyGraphicsParser.js.map +1 -0
  42. package/dist/images/SixelDecoder.d.ts +9 -0
  43. package/dist/images/SixelDecoder.d.ts.map +1 -0
  44. package/dist/images/SixelDecoder.js +110 -0
  45. package/dist/images/SixelDecoder.js.map +1 -0
  46. package/dist/index.d.ts +25 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +25 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/keymap.d.ts +9 -0
  51. package/dist/keymap.d.ts.map +1 -0
  52. package/dist/keymap.js +62 -0
  53. package/dist/keymap.js.map +1 -0
  54. package/dist/layout/HeadlessFloatingManager.d.ts +18 -0
  55. package/dist/layout/HeadlessFloatingManager.d.ts.map +1 -0
  56. package/dist/layout/HeadlessFloatingManager.js +41 -0
  57. package/dist/layout/HeadlessFloatingManager.js.map +1 -0
  58. package/dist/layout/HeadlessPaneTree.d.ts +27 -0
  59. package/dist/layout/HeadlessPaneTree.d.ts.map +1 -0
  60. package/dist/layout/HeadlessPaneTree.js +117 -0
  61. package/dist/layout/HeadlessPaneTree.js.map +1 -0
  62. package/dist/layout/PaneGeometry.d.ts +17 -0
  63. package/dist/layout/PaneGeometry.d.ts.map +1 -0
  64. package/dist/layout/PaneGeometry.js +27 -0
  65. package/dist/layout/PaneGeometry.js.map +1 -0
  66. package/dist/layout/index.d.ts +9 -0
  67. package/dist/layout/index.d.ts.map +1 -0
  68. package/dist/layout/index.js +12 -0
  69. package/dist/layout/index.js.map +1 -0
  70. package/dist/layout/paneTree.d.ts +39 -0
  71. package/dist/layout/paneTree.d.ts.map +1 -0
  72. package/dist/layout/paneTree.js +215 -0
  73. package/dist/layout/paneTree.js.map +1 -0
  74. package/dist/layout/storeUtils.d.ts +23 -0
  75. package/dist/layout/storeUtils.d.ts.map +1 -0
  76. package/dist/layout/storeUtils.js +9 -0
  77. package/dist/layout/storeUtils.js.map +1 -0
  78. package/dist/layout/tabsActions.d.ts +72 -0
  79. package/dist/layout/tabsActions.d.ts.map +1 -0
  80. package/dist/layout/tabsActions.js +975 -0
  81. package/dist/layout/tabsActions.js.map +1 -0
  82. package/dist/layout/tabsStore.d.ts +43 -0
  83. package/dist/layout/tabsStore.d.ts.map +1 -0
  84. package/dist/layout/tabsStore.js +69 -0
  85. package/dist/layout/tabsStore.js.map +1 -0
  86. package/dist/layout/types.d.ts +114 -0
  87. package/dist/layout/types.d.ts.map +1 -0
  88. package/dist/layout/types.js +2 -0
  89. package/dist/layout/types.js.map +1 -0
  90. package/dist/layout/useTabs.d.ts +55 -0
  91. package/dist/layout/useTabs.d.ts.map +1 -0
  92. package/dist/layout/useTabs.js +116 -0
  93. package/dist/layout/useTabs.js.map +1 -0
  94. package/dist/lsp/client.d.ts +16 -0
  95. package/dist/lsp/client.d.ts.map +1 -0
  96. package/dist/lsp/client.js +125 -0
  97. package/dist/lsp/client.js.map +1 -0
  98. package/dist/lsp/index.d.ts +3 -0
  99. package/dist/lsp/index.d.ts.map +1 -0
  100. package/dist/lsp/index.js +3 -0
  101. package/dist/lsp/index.js.map +1 -0
  102. package/dist/lsp/types.d.ts +44 -0
  103. package/dist/lsp/types.d.ts.map +1 -0
  104. package/dist/lsp/types.js +2 -0
  105. package/dist/lsp/types.js.map +1 -0
  106. package/dist/palette/HeadlessCommandPalette.d.ts +21 -0
  107. package/dist/palette/HeadlessCommandPalette.d.ts.map +1 -0
  108. package/dist/palette/HeadlessCommandPalette.js +48 -0
  109. package/dist/palette/HeadlessCommandPalette.js.map +1 -0
  110. package/dist/parser/VtEngine.d.ts +87 -0
  111. package/dist/parser/VtEngine.d.ts.map +1 -0
  112. package/dist/parser/VtEngine.js +1206 -0
  113. package/dist/parser/VtEngine.js.map +1 -0
  114. package/dist/parser/index.d.ts +2 -0
  115. package/dist/parser/index.d.ts.map +1 -0
  116. package/dist/parser/index.js +2 -0
  117. package/dist/parser/index.js.map +1 -0
  118. package/dist/protocol.d.ts +3 -0
  119. package/dist/protocol.d.ts.map +1 -0
  120. package/dist/protocol.js +94 -0
  121. package/dist/protocol.js.map +1 -0
  122. package/dist/settings/EditorSchema.d.ts +3 -0
  123. package/dist/settings/EditorSchema.d.ts.map +1 -0
  124. package/dist/settings/EditorSchema.js +78 -0
  125. package/dist/settings/EditorSchema.js.map +1 -0
  126. package/dist/settings/GeneralSchema.d.ts +3 -0
  127. package/dist/settings/GeneralSchema.d.ts.map +1 -0
  128. package/dist/settings/GeneralSchema.js +87 -0
  129. package/dist/settings/GeneralSchema.js.map +1 -0
  130. package/dist/settings/TerminalSchema.d.ts +3 -0
  131. package/dist/settings/TerminalSchema.d.ts.map +1 -0
  132. package/dist/settings/TerminalSchema.js +196 -0
  133. package/dist/settings/TerminalSchema.js.map +1 -0
  134. package/dist/settings/UiCustomizationSchema.d.ts +3 -0
  135. package/dist/settings/UiCustomizationSchema.d.ts.map +1 -0
  136. package/dist/settings/UiCustomizationSchema.js +85 -0
  137. package/dist/settings/UiCustomizationSchema.js.map +1 -0
  138. package/dist/settings/constants.d.ts +6 -0
  139. package/dist/settings/constants.d.ts.map +1 -0
  140. package/dist/settings/constants.js +27 -0
  141. package/dist/settings/constants.js.map +1 -0
  142. package/dist/settings/index.d.ts +7 -0
  143. package/dist/settings/index.d.ts.map +1 -0
  144. package/dist/settings/index.js +7 -0
  145. package/dist/settings/index.js.map +1 -0
  146. package/dist/settings/types.d.ts +34 -0
  147. package/dist/settings/types.d.ts.map +1 -0
  148. package/dist/settings/types.js +2 -0
  149. package/dist/settings/types.js.map +1 -0
  150. package/dist/spaces/HeadlessSpaces.d.ts +31 -0
  151. package/dist/spaces/HeadlessSpaces.d.ts.map +1 -0
  152. package/dist/spaces/HeadlessSpaces.js +48 -0
  153. package/dist/spaces/HeadlessSpaces.js.map +1 -0
  154. package/dist/theme/applyTheme.d.ts +4 -0
  155. package/dist/theme/applyTheme.d.ts.map +1 -0
  156. package/dist/theme/applyTheme.js +130 -0
  157. package/dist/theme/applyTheme.js.map +1 -0
  158. package/dist/theme/index.d.ts +3 -0
  159. package/dist/theme/index.d.ts.map +1 -0
  160. package/dist/theme/index.js +3 -0
  161. package/dist/theme/index.js.map +1 -0
  162. package/dist/theme/validateTheme.d.ts +10 -0
  163. package/dist/theme/validateTheme.d.ts.map +1 -0
  164. package/dist/theme/validateTheme.js +158 -0
  165. package/dist/theme/validateTheme.js.map +1 -0
  166. package/dist/theme.d.ts +12 -0
  167. package/dist/theme.d.ts.map +1 -0
  168. package/dist/theme.js +32 -0
  169. package/dist/theme.js.map +1 -0
  170. package/dist/themes/caffeine.d.ts +3 -0
  171. package/dist/themes/caffeine.d.ts.map +1 -0
  172. package/dist/themes/caffeine.js +121 -0
  173. package/dist/themes/caffeine.js.map +1 -0
  174. package/dist/themes/catppuccin.d.ts +3 -0
  175. package/dist/themes/catppuccin.d.ts.map +1 -0
  176. package/dist/themes/catppuccin.js +119 -0
  177. package/dist/themes/catppuccin.js.map +1 -0
  178. package/dist/themes/claude.d.ts +3 -0
  179. package/dist/themes/claude.d.ts.map +1 -0
  180. package/dist/themes/claude.js +121 -0
  181. package/dist/themes/claude.js.map +1 -0
  182. package/dist/themes/gruvbox.d.ts +3 -0
  183. package/dist/themes/gruvbox.d.ts.map +1 -0
  184. package/dist/themes/gruvbox.js +119 -0
  185. package/dist/themes/gruvbox.js.map +1 -0
  186. package/dist/themes/index.d.ts +16 -0
  187. package/dist/themes/index.d.ts.map +1 -0
  188. package/dist/themes/index.js +45 -0
  189. package/dist/themes/index.js.map +1 -0
  190. package/dist/themes/nord.d.ts +3 -0
  191. package/dist/themes/nord.d.ts.map +1 -0
  192. package/dist/themes/nord.js +103 -0
  193. package/dist/themes/nord.js.map +1 -0
  194. package/dist/themes/rose-pine.d.ts +3 -0
  195. package/dist/themes/rose-pine.d.ts.map +1 -0
  196. package/dist/themes/rose-pine.js +119 -0
  197. package/dist/themes/rose-pine.js.map +1 -0
  198. package/dist/themes/sage.d.ts +3 -0
  199. package/dist/themes/sage.d.ts.map +1 -0
  200. package/dist/themes/sage.js +121 -0
  201. package/dist/themes/sage.js.map +1 -0
  202. package/dist/themes/termax-default.d.ts +3 -0
  203. package/dist/themes/termax-default.d.ts.map +1 -0
  204. package/dist/themes/termax-default.js +119 -0
  205. package/dist/themes/termax-default.js.map +1 -0
  206. package/dist/themes/tide.d.ts +3 -0
  207. package/dist/themes/tide.d.ts.map +1 -0
  208. package/dist/themes/tide.js +121 -0
  209. package/dist/themes/tide.js.map +1 -0
  210. package/dist/themes/tokyo-night.d.ts +3 -0
  211. package/dist/themes/tokyo-night.d.ts.map +1 -0
  212. package/dist/themes/tokyo-night.js +64 -0
  213. package/dist/themes/tokyo-night.js.map +1 -0
  214. package/dist/themes/types.d.ts +75 -0
  215. package/dist/themes/types.d.ts.map +1 -0
  216. package/dist/themes/types.js +2 -0
  217. package/dist/themes/types.js.map +1 -0
  218. package/dist/types.d.ts +217 -0
  219. package/dist/types.d.ts.map +1 -0
  220. package/dist/types.js +16 -0
  221. package/dist/types.js.map +1 -0
  222. package/dist/utils/shellQuote.d.ts +3 -0
  223. package/dist/utils/shellQuote.d.ts.map +1 -0
  224. package/dist/utils/shellQuote.js +12 -0
  225. package/dist/utils/shellQuote.js.map +1 -0
  226. package/package.json +69 -0
@@ -0,0 +1,125 @@
1
+ export const BUILTIN_LSP_SERVERS = {
2
+ typescript: {
3
+ id: "typescript",
4
+ name: "TypeScript / JavaScript",
5
+ languages: ["typescript", "javascript", "typescriptreact", "javascriptreact"],
6
+ fileExtensions: [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"],
7
+ defaultCommand: "typescript-language-server",
8
+ defaultArgs: ["--stdio"],
9
+ },
10
+ rust: {
11
+ id: "rust",
12
+ name: "Rust Analyzer",
13
+ languages: ["rust"],
14
+ fileExtensions: [".rs"],
15
+ defaultCommand: "rust-analyzer",
16
+ },
17
+ python: {
18
+ id: "python",
19
+ name: "Pyright (Python)",
20
+ languages: ["python"],
21
+ fileExtensions: [".py", ".pyi"],
22
+ defaultCommand: "pyright-langserver",
23
+ defaultArgs: ["--stdio"],
24
+ },
25
+ go: {
26
+ id: "go",
27
+ name: "gopls (Go)",
28
+ languages: ["go"],
29
+ fileExtensions: [".go"],
30
+ defaultCommand: "gopls",
31
+ },
32
+ clangd: {
33
+ id: "clangd",
34
+ name: "Clangd (C / C++)",
35
+ languages: ["c", "cpp"],
36
+ fileExtensions: [".c", ".h", ".cpp", ".hpp", ".cc", ".cxx"],
37
+ defaultCommand: "clangd",
38
+ },
39
+ };
40
+ export class HeadlessLspClient {
41
+ transport;
42
+ activeServers = new Map(); // serverDefId -> serverInstanceId
43
+ diagnosticsByUri = new Map();
44
+ listeners = new Set();
45
+ constructor(transport) {
46
+ this.transport = transport;
47
+ }
48
+ async ensureServerForFile(filePath, rootUri) {
49
+ const ext = "." + filePath.split(".").pop();
50
+ const serverDef = Object.values(BUILTIN_LSP_SERVERS).find((s) => s.fileExtensions.includes(ext));
51
+ if (!serverDef)
52
+ return null;
53
+ if (this.activeServers.has(serverDef.id)) {
54
+ return this.activeServers.get(serverDef.id);
55
+ }
56
+ const instanceId = await this.transport.startServer(serverDef.defaultCommand, rootUri);
57
+ this.activeServers.set(serverDef.id, instanceId);
58
+ this.transport.onNotification(instanceId, (method, params) => {
59
+ if (method === "textDocument/publishDiagnostics" && params?.uri) {
60
+ const diagnostics = (params.diagnostics || []).map((d) => ({
61
+ range: d.range,
62
+ severity: d.severity === 1 ? "error" : d.severity === 2 ? "warning" : "info",
63
+ message: d.message,
64
+ source: d.source,
65
+ code: d.code,
66
+ }));
67
+ this.diagnosticsByUri.set(params.uri, diagnostics);
68
+ for (const cb of this.listeners)
69
+ cb(params.uri, diagnostics);
70
+ }
71
+ });
72
+ return instanceId;
73
+ }
74
+ getDiagnostics(uri) {
75
+ return this.diagnosticsByUri.get(uri) || [];
76
+ }
77
+ onDiagnostics(callback) {
78
+ this.listeners.add(callback);
79
+ return () => {
80
+ this.listeners.delete(callback);
81
+ };
82
+ }
83
+ async getHover(serverId, uri, position) {
84
+ try {
85
+ const res = await this.transport.sendRequest(serverId, "textDocument/hover", {
86
+ textDocument: { uri },
87
+ position,
88
+ });
89
+ if (!res || !res.contents)
90
+ return null;
91
+ const contents = typeof res.contents === "string" ? res.contents : res.contents.value || "";
92
+ return { contents, range: res.range };
93
+ }
94
+ catch {
95
+ return null;
96
+ }
97
+ }
98
+ async getCompletions(serverId, uri, position) {
99
+ try {
100
+ const res = await this.transport.sendRequest(serverId, "textDocument/completion", {
101
+ textDocument: { uri },
102
+ position,
103
+ });
104
+ const items = Array.isArray(res) ? res : res?.items || [];
105
+ return items.map((i) => ({
106
+ label: i.label,
107
+ kind: i.kind,
108
+ detail: i.detail,
109
+ documentation: typeof i.documentation === "string" ? i.documentation : i.documentation?.value,
110
+ insertText: i.insertText || i.label,
111
+ }));
112
+ }
113
+ catch {
114
+ return [];
115
+ }
116
+ }
117
+ async dispose() {
118
+ for (const id of this.activeServers.values()) {
119
+ await this.transport.stopServer(id).catch(() => { });
120
+ }
121
+ this.activeServers.clear();
122
+ this.diagnosticsByUri.clear();
123
+ }
124
+ }
125
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/lsp/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./types.js";
2
+ export * from "./client.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lsp/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./types.js";
2
+ export * from "./client.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lsp/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,44 @@
1
+ export type LspDiagnosticSeverity = "error" | "warning" | "info" | "hint";
2
+ export interface LspPosition {
3
+ line: number;
4
+ character: number;
5
+ }
6
+ export interface LspRange {
7
+ start: LspPosition;
8
+ end: LspPosition;
9
+ }
10
+ export interface LspDiagnostic {
11
+ range: LspRange;
12
+ severity: LspDiagnosticSeverity;
13
+ message: string;
14
+ source?: string;
15
+ code?: string | number;
16
+ }
17
+ export interface LspCompletionItem {
18
+ label: string;
19
+ kind?: string;
20
+ detail?: string;
21
+ documentation?: string;
22
+ insertText?: string;
23
+ sortText?: string;
24
+ }
25
+ export interface LspHoverResult {
26
+ contents: string;
27
+ range?: LspRange;
28
+ }
29
+ export interface LspServerDef {
30
+ id: string;
31
+ name: string;
32
+ languages: string[];
33
+ fileExtensions: string[];
34
+ defaultCommand: string;
35
+ defaultArgs?: string[];
36
+ }
37
+ export interface ILspTransport {
38
+ startServer(serverName: string, rootUri: string): Promise<string>;
39
+ stopServer(serverId: string): Promise<void>;
40
+ sendRequest(serverId: string, method: string, params: unknown): Promise<unknown>;
41
+ sendNotification(serverId: string, method: string, params: unknown): Promise<void>;
42
+ onNotification(serverId: string, callback: (method: string, params: unknown) => void): () => void;
43
+ }
44
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lsp/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,WAAW,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACnG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lsp/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ export interface PaletteAction {
2
+ id: string;
3
+ title: string;
4
+ category?: string;
5
+ keywords?: string[];
6
+ shortcut?: string;
7
+ run: () => void | Promise<void>;
8
+ }
9
+ export interface MatchResult {
10
+ action: PaletteAction;
11
+ score: number;
12
+ highlightIndices: number[];
13
+ }
14
+ export declare class HeadlessCommandPalette {
15
+ private actions;
16
+ register(action: PaletteAction): void;
17
+ registerAll(actions: PaletteAction[]): void;
18
+ unregister(id: string): void;
19
+ search(query: string): MatchResult[];
20
+ }
21
+ //# sourceMappingURL=HeadlessCommandPalette.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadlessCommandPalette.d.ts","sourceRoot":"","sources":["../../src/palette/HeadlessCommandPalette.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAoC;IAE5C,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAIrC,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI;IAI3C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI5B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE;CAsC5C"}
@@ -0,0 +1,48 @@
1
+ export class HeadlessCommandPalette {
2
+ actions = new Map();
3
+ register(action) {
4
+ this.actions.set(action.id, action);
5
+ }
6
+ registerAll(actions) {
7
+ for (const a of actions)
8
+ this.register(a);
9
+ }
10
+ unregister(id) {
11
+ this.actions.delete(id);
12
+ }
13
+ search(query) {
14
+ const q = query.toLowerCase().trim();
15
+ if (!q) {
16
+ return Array.from(this.actions.values()).map((action) => ({
17
+ action,
18
+ score: 1,
19
+ highlightIndices: [],
20
+ }));
21
+ }
22
+ const results = [];
23
+ for (const action of this.actions.values()) {
24
+ const titleLower = action.title.toLowerCase();
25
+ let score = 0;
26
+ const highlightIndices = [];
27
+ let qi = 0;
28
+ for (let ti = 0; ti < titleLower.length && qi < q.length; ti++) {
29
+ if (titleLower[ti] === q[qi]) {
30
+ highlightIndices.push(ti);
31
+ score += 10 + (ti === 0 ? 5 : 0);
32
+ qi++;
33
+ }
34
+ }
35
+ if (qi === q.length) {
36
+ results.push({ action, score, highlightIndices });
37
+ }
38
+ else if (action.keywords) {
39
+ const matchedKw = action.keywords.some((k) => k.toLowerCase().includes(q));
40
+ if (matchedKw) {
41
+ results.push({ action, score: 5, highlightIndices: [] });
42
+ }
43
+ }
44
+ }
45
+ return results.sort((a, b) => b.score - a.score);
46
+ }
47
+ }
48
+ //# sourceMappingURL=HeadlessCommandPalette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadlessCommandPalette.js","sourceRoot":"","sources":["../../src/palette/HeadlessCommandPalette.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,sBAAsB;IACzB,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE5C,QAAQ,CAAC,MAAqB;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAEM,WAAW,CAAC,OAAwB;QACzC,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAEM,UAAU,CAAC,EAAU;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,KAAa;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACxD,MAAM;gBACN,KAAK,EAAE,CAAC;gBACR,gBAAgB,EAAE,EAAE;aACrB,CAAC,CAAC,CAAC;QACN,CAAC;QAED,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,MAAM,gBAAgB,GAAa,EAAE,CAAC;YAEtC,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;gBAC/D,IAAI,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC7B,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC1B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjC,EAAE,EAAE,CAAC;gBACP,CAAC;YACH,CAAC;YAED,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;CACF"}
@@ -0,0 +1,87 @@
1
+ import { CursorState, CursorShape, TerminalCell, TerminalDiff } from '../types.js';
2
+ export interface VtEvents {
3
+ onPtyWrite?: (data: string) => void;
4
+ onUnhandledSequence?: (seq: string) => void;
5
+ onBell?: () => void;
6
+ onTitle?: (title: string) => void;
7
+ onCwd?: (cwd: string) => void;
8
+ onOsc?: (ident: number, content: string) => void;
9
+ onClipboard?: (text: string) => void;
10
+ onSyncOutput?: (active: boolean) => void;
11
+ }
12
+ export interface MouseModeState {
13
+ x10: boolean;
14
+ button: boolean;
15
+ any: boolean;
16
+ sgr: boolean;
17
+ }
18
+ export declare class VtEngine {
19
+ cols: number;
20
+ rows: number;
21
+ maxScrollback: number;
22
+ lines: TerminalCell[][];
23
+ scrollback: TerminalCell[][];
24
+ viewportY: number;
25
+ isAltBuffer: boolean;
26
+ private normalLines;
27
+ private normalScrollback;
28
+ private normalCursor;
29
+ private altLines;
30
+ private altCursor;
31
+ tabStops: boolean[];
32
+ private savedFlags;
33
+ private savedFg;
34
+ private savedBg;
35
+ saveCursor(): void;
36
+ restoreCursor(): void;
37
+ scrollDown(count?: number): void;
38
+ mouseMode: MouseModeState;
39
+ focusReporting: boolean;
40
+ bracketedPasteMode: boolean;
41
+ synchronizedOutput: boolean;
42
+ cursorShape: CursorShape;
43
+ cursorBlinking: boolean;
44
+ autowrap: boolean;
45
+ originMode: boolean;
46
+ private wrapPending;
47
+ private lastPrintedChar;
48
+ private currentHyperlink?;
49
+ cursor: CursorState;
50
+ private savedCursor;
51
+ private scrollTop;
52
+ private scrollBottom;
53
+ private currentFg;
54
+ private currentBg;
55
+ private currentFlags;
56
+ private currentUnderlineColor?;
57
+ private dirtyRowSet;
58
+ private events;
59
+ private state;
60
+ private csiParams;
61
+ private oscBuffer;
62
+ private utf8Decoder;
63
+ constructor(cols?: number, rows?: number, events?: VtEvents);
64
+ flushDiff(): TerminalDiff;
65
+ feed(input: string | Uint8Array): TerminalDiff;
66
+ resize(cols: number, rows: number): TerminalDiff;
67
+ scrollLines(delta: number): void;
68
+ scrollToBottom(): void;
69
+ scrollToTop(): void;
70
+ scrollToLine(line: number): void;
71
+ getVisibleLines(): TerminalCell[][];
72
+ private initGrid;
73
+ private createEmptyLine;
74
+ parse(input: string | Uint8Array): void;
75
+ private printChar;
76
+ private lineFeed;
77
+ private scrollUp;
78
+ private handleCsi;
79
+ private enterAltBuffer;
80
+ private exitAltBuffer;
81
+ private handleSgr;
82
+ private handleOsc;
83
+ private clearLine;
84
+ private clearLineRange;
85
+ reset(): void;
86
+ }
87
+ //# sourceMappingURL=VtEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VtEngine.d.ts","sourceRoot":"","sources":["../../src/parser/VtEngine.ts"],"names":[],"mappings":"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"}