@cortexkit/aft-opencode 0.10.1 → 0.11.0

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 (83) hide show
  1. package/dist/config.d.ts.map +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +25395 -345
  4. package/dist/pool.d.ts +1 -1
  5. package/dist/pool.d.ts.map +1 -1
  6. package/dist/shared/tui-config.d.ts.map +1 -1
  7. package/dist/shared/url-fetch.d.ts +11 -0
  8. package/dist/shared/url-fetch.d.ts.map +1 -0
  9. package/dist/tools/reading.d.ts.map +1 -1
  10. package/dist/types.d.ts +2 -0
  11. package/dist/types.d.ts.map +1 -1
  12. package/package.json +9 -9
  13. package/src/shared/tui-config.ts +3 -100
  14. package/src/shared/url-fetch.ts +237 -0
  15. package/dist/bridge.js +0 -325
  16. package/dist/bridge.js.map +0 -1
  17. package/dist/config.js +0 -304
  18. package/dist/config.js.map +0 -1
  19. package/dist/downloader.js +0 -198
  20. package/dist/downloader.js.map +0 -1
  21. package/dist/index.js.map +0 -1
  22. package/dist/logger.js +0 -78
  23. package/dist/logger.js.map +0 -1
  24. package/dist/lsp.js +0 -79
  25. package/dist/lsp.js.map +0 -1
  26. package/dist/metadata-store.js +0 -53
  27. package/dist/metadata-store.js.map +0 -1
  28. package/dist/normalize-schemas.js +0 -45
  29. package/dist/normalize-schemas.js.map +0 -1
  30. package/dist/notifications.js +0 -307
  31. package/dist/notifications.js.map +0 -1
  32. package/dist/onnx-runtime.js +0 -203
  33. package/dist/onnx-runtime.js.map +0 -1
  34. package/dist/patch-parser.js +0 -247
  35. package/dist/patch-parser.js.map +0 -1
  36. package/dist/platform.js +0 -31
  37. package/dist/platform.js.map +0 -1
  38. package/dist/pool.js +0 -130
  39. package/dist/pool.js.map +0 -1
  40. package/dist/resolver.js +0 -179
  41. package/dist/resolver.js.map +0 -1
  42. package/dist/shared/opencode-config-dir.js +0 -26
  43. package/dist/shared/opencode-config-dir.js.map +0 -1
  44. package/dist/shared/rpc-client.js +0 -108
  45. package/dist/shared/rpc-client.js.map +0 -1
  46. package/dist/shared/rpc-server.js +0 -120
  47. package/dist/shared/rpc-server.js.map +0 -1
  48. package/dist/shared/rpc-utils.js +0 -20
  49. package/dist/shared/rpc-utils.js.map +0 -1
  50. package/dist/shared/runtime.js +0 -14
  51. package/dist/shared/runtime.js.map +0 -1
  52. package/dist/shared/status.js +0 -135
  53. package/dist/shared/status.js.map +0 -1
  54. package/dist/shared/tui-config.js +0 -134
  55. package/dist/shared/tui-config.js.map +0 -1
  56. package/dist/tools/ast.js +0 -200
  57. package/dist/tools/ast.js.map +0 -1
  58. package/dist/tools/conflicts.js +0 -20
  59. package/dist/tools/conflicts.js.map +0 -1
  60. package/dist/tools/hoisted.js +0 -870
  61. package/dist/tools/hoisted.js.map +0 -1
  62. package/dist/tools/imports.js +0 -90
  63. package/dist/tools/imports.js.map +0 -1
  64. package/dist/tools/lsp.js +0 -58
  65. package/dist/tools/lsp.js.map +0 -1
  66. package/dist/tools/navigation.js +0 -58
  67. package/dist/tools/navigation.js.map +0 -1
  68. package/dist/tools/permissions.js +0 -50
  69. package/dist/tools/permissions.js.map +0 -1
  70. package/dist/tools/reading.js +0 -229
  71. package/dist/tools/reading.js.map +0 -1
  72. package/dist/tools/refactoring.js +0 -129
  73. package/dist/tools/refactoring.js.map +0 -1
  74. package/dist/tools/safety.js +0 -83
  75. package/dist/tools/safety.js.map +0 -1
  76. package/dist/tools/search.js +0 -108
  77. package/dist/tools/search.js.map +0 -1
  78. package/dist/tools/semantic.js +0 -35
  79. package/dist/tools/semantic.js.map +0 -1
  80. package/dist/tools/structure.js +0 -157
  81. package/dist/tools/structure.js.map +0 -1
  82. package/dist/types.js +0 -2
  83. package/dist/types.js.map +0 -1
@@ -1,108 +0,0 @@
1
- import { readFileSync } from "node:fs";
2
- import { rpcPortFilePath } from "./rpc-utils.js";
3
- const MAX_RETRIES = 10;
4
- const RETRY_DELAY_MS = 500;
5
- const REQUEST_TIMEOUT_MS = 5000;
6
- export class AftRpcClient {
7
- port = null;
8
- portFilePath;
9
- healthChecked = false;
10
- constructor(storageDir, directory) {
11
- this.portFilePath = rpcPortFilePath(storageDir, directory);
12
- }
13
- /** Call an RPC method. Retries port resolution if the server isn't ready yet. */
14
- async call(method, params = {}) {
15
- const port = await this.resolvePort();
16
- if (!port) {
17
- throw new Error("AFT RPC server not available");
18
- }
19
- const response = await this.fetchWithTimeout(`http://127.0.0.1:${port}/rpc/${method}`, {
20
- method: "POST",
21
- headers: { "Content-Type": "application/json" },
22
- body: JSON.stringify(params),
23
- });
24
- if (!response.ok) {
25
- const text = await response.text();
26
- throw new Error(`RPC ${method} failed (${response.status}): ${text}`);
27
- }
28
- return (await response.json());
29
- }
30
- /** Check if the RPC server is reachable. */
31
- async isAvailable() {
32
- try {
33
- const port = await this.resolvePort();
34
- return port !== null;
35
- }
36
- catch {
37
- return false;
38
- }
39
- }
40
- async resolvePort() {
41
- if (this.port && this.healthChecked) {
42
- return this.port;
43
- }
44
- if (this.port) {
45
- const alive = await this.healthCheck(this.port);
46
- if (alive) {
47
- this.healthChecked = true;
48
- return this.port;
49
- }
50
- this.port = null;
51
- this.healthChecked = false;
52
- }
53
- for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
54
- const port = this.readPortFile();
55
- if (port) {
56
- const alive = await this.healthCheck(port);
57
- if (alive) {
58
- this.port = port;
59
- this.healthChecked = true;
60
- return port;
61
- }
62
- }
63
- if (attempt < MAX_RETRIES - 1) {
64
- await new Promise((r) => setTimeout(r, RETRY_DELAY_MS));
65
- }
66
- }
67
- return null;
68
- }
69
- readPortFile() {
70
- try {
71
- const content = readFileSync(this.portFilePath, "utf-8").trim();
72
- const port = Number.parseInt(content, 10);
73
- if (Number.isNaN(port) || port <= 0 || port > 65535) {
74
- return null;
75
- }
76
- return port;
77
- }
78
- catch {
79
- return null;
80
- }
81
- }
82
- async healthCheck(port) {
83
- try {
84
- const response = await this.fetchWithTimeout(`http://127.0.0.1:${port}/health`, {
85
- method: "GET",
86
- });
87
- return response.ok;
88
- }
89
- catch {
90
- return false;
91
- }
92
- }
93
- async fetchWithTimeout(url, options) {
94
- const controller = new AbortController();
95
- const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
96
- try {
97
- return await fetch(url, { ...options, signal: controller.signal });
98
- }
99
- finally {
100
- clearTimeout(timeout);
101
- }
102
- }
103
- reset() {
104
- this.port = null;
105
- this.healthChecked = false;
106
- }
107
- }
108
- //# sourceMappingURL=rpc-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-client.js","sourceRoot":"","sources":["../../src/shared/rpc-client.ts"],"names":[],"mappings":"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"}
@@ -1,120 +0,0 @@
1
- import { mkdirSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
2
- import { createServer } from "node:http";
3
- import { dirname } from "node:path";
4
- import { log, warn } from "../logger.js";
5
- import { rpcPortFilePath } from "./rpc-utils.js";
6
- export class AftRpcServer {
7
- server = null;
8
- port = 0;
9
- handlers = new Map();
10
- portFilePath;
11
- constructor(storageDir, directory) {
12
- this.portFilePath = rpcPortFilePath(storageDir, directory);
13
- }
14
- /** Register an RPC method handler. */
15
- handle(method, handler) {
16
- this.handlers.set(method, handler);
17
- }
18
- /** Start the server on a random port, write port to disk. */
19
- async start() {
20
- return new Promise((resolve, reject) => {
21
- const server = createServer((req, res) => this.dispatch(req, res));
22
- server.on("error", (err) => {
23
- warn(`RPC server error: ${err.message}`);
24
- reject(err);
25
- });
26
- server.listen(0, "127.0.0.1", () => {
27
- const addr = server.address();
28
- if (!addr || typeof addr === "string") {
29
- reject(new Error("Failed to get server address"));
30
- return;
31
- }
32
- this.port = addr.port;
33
- this.server = server;
34
- // Write port file atomically
35
- try {
36
- const dir = dirname(this.portFilePath);
37
- mkdirSync(dir, { recursive: true });
38
- const tmpPath = `${this.portFilePath}.tmp`;
39
- writeFileSync(tmpPath, String(this.port), "utf-8");
40
- renameSync(tmpPath, this.portFilePath);
41
- log(`RPC server listening on 127.0.0.1:${this.port}`);
42
- }
43
- catch (err) {
44
- warn(`Failed to write RPC port file: ${err}`);
45
- }
46
- resolve(this.port);
47
- });
48
- // Don't keep the process alive just for the RPC server
49
- server.unref();
50
- });
51
- }
52
- /** Stop the server and clean up port file. */
53
- stop() {
54
- if (this.server) {
55
- this.server.close();
56
- this.server = null;
57
- }
58
- try {
59
- unlinkSync(this.portFilePath);
60
- }
61
- catch {
62
- // ignore
63
- }
64
- }
65
- dispatch(req, res) {
66
- const url = req.url ?? "";
67
- if (req.method === "GET" && url === "/health") {
68
- res.writeHead(200, { "Content-Type": "application/json" });
69
- res.end(JSON.stringify({ ok: true, pid: process.pid }));
70
- return;
71
- }
72
- if (req.method !== "POST" || !url.startsWith("/rpc/")) {
73
- res.writeHead(404);
74
- res.end("Not Found");
75
- return;
76
- }
77
- const method = url.slice(5);
78
- const handler = this.handlers.get(method);
79
- if (!handler) {
80
- res.writeHead(404, { "Content-Type": "application/json" });
81
- res.end(JSON.stringify({ error: `Unknown method: ${method}` }));
82
- return;
83
- }
84
- let body = "";
85
- req.on("data", (chunk) => {
86
- body += chunk.toString();
87
- if (body.length > 1_048_576) {
88
- res.writeHead(413);
89
- res.end("Request too large");
90
- req.destroy();
91
- }
92
- });
93
- req.on("end", () => {
94
- let params = {};
95
- try {
96
- if (body.length > 0) {
97
- params = JSON.parse(body);
98
- }
99
- }
100
- catch {
101
- res.writeHead(400, { "Content-Type": "application/json" });
102
- res.end(JSON.stringify({ error: "Invalid JSON" }));
103
- return;
104
- }
105
- log(`RPC call: ${method} params=${JSON.stringify(params).slice(0, 200)}`);
106
- handler(params)
107
- .then((result) => {
108
- log(`RPC result: ${method} => ${JSON.stringify(result).slice(0, 200)}`);
109
- res.writeHead(200, { "Content-Type": "application/json" });
110
- res.end(JSON.stringify(result));
111
- })
112
- .catch((err) => {
113
- log(`RPC error: ${method} => ${err}`);
114
- res.writeHead(500, { "Content-Type": "application/json" });
115
- res.end(JSON.stringify({ error: String(err) }));
116
- });
117
- });
118
- }
119
- }
120
- //# sourceMappingURL=rpc-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-server.js","sourceRoot":"","sources":["../../src/shared/rpc-server.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- import { join } from "node:path";
3
- /**
4
- * Compute a stable hash for a project directory.
5
- * Used to scope RPC port files per-project so multiple
6
- * OpenCode Desktop instances don't overwrite each other.
7
- */
8
- export function projectHash(directory) {
9
- // Normalize: strip trailing slashes
10
- const normalized = directory.replace(/\/+$/, "");
11
- return createHash("sha256").update(normalized).digest("hex").slice(0, 16);
12
- }
13
- /**
14
- * Get the per-project RPC port file path.
15
- */
16
- export function rpcPortFilePath(storageDir, directory) {
17
- const hash = projectHash(directory);
18
- return join(storageDir, "rpc", hash, "port");
19
- }
20
- //# sourceMappingURL=rpc-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-utils.js","sourceRoot":"","sources":["../../src/shared/rpc-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,oCAAoC;IACpC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAE,SAAiB;IACnE,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC"}
@@ -1,14 +0,0 @@
1
- const GLOBAL_KEY = "__AFT_SHARED_BRIDGE_POOL__";
2
- function getGlobalState() {
3
- return globalThis;
4
- }
5
- export function setSharedBridgePool(pool) {
6
- getGlobalState()[GLOBAL_KEY] = pool;
7
- }
8
- export function getSharedBridgePool() {
9
- return getGlobalState()[GLOBAL_KEY] ?? null;
10
- }
11
- export function clearSharedBridgePool() {
12
- getGlobalState()[GLOBAL_KEY] = null;
13
- }
14
- //# sourceMappingURL=runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/shared/runtime.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,GAAG,4BAA4B,CAAC;AAEhD,SAAS,cAAc;IACrB,OAAO,UAAkD,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IAClD,cAAc,EAAE,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,cAAc,EAAE,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,cAAc,EAAE,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;AACtC,CAAC"}
@@ -1,135 +0,0 @@
1
- function asRecord(value) {
2
- return typeof value === "object" && value !== null ? value : {};
3
- }
4
- function readString(value, fallback = "") {
5
- return typeof value === "string" ? value : fallback;
6
- }
7
- function readNullableString(value) {
8
- return typeof value === "string" ? value : null;
9
- }
10
- function readBoolean(value, fallback = false) {
11
- return typeof value === "boolean" ? value : fallback;
12
- }
13
- function readNumber(value, fallback = 0) {
14
- return typeof value === "number" && Number.isFinite(value) ? value : fallback;
15
- }
16
- function readOptionalNumber(value) {
17
- return typeof value === "number" && Number.isFinite(value) ? value : null;
18
- }
19
- function formatFlag(enabled) {
20
- return enabled ? "enabled" : "disabled";
21
- }
22
- function formatCount(value) {
23
- return value == null ? "—" : value.toLocaleString("en-US");
24
- }
25
- export function formatBytes(bytes) {
26
- if (!Number.isFinite(bytes) || bytes <= 0)
27
- return "0 B";
28
- const units = ["B", "KB", "MB", "GB", "TB"];
29
- let value = bytes;
30
- let unitIndex = 0;
31
- while (value >= 1024 && unitIndex < units.length - 1) {
32
- value /= 1024;
33
- unitIndex++;
34
- }
35
- const decimals = value >= 10 || unitIndex === 0 ? 0 : 1;
36
- return `${value.toFixed(decimals)} ${units[unitIndex]}`;
37
- }
38
- export function coerceAftStatus(response) {
39
- const features = asRecord(response.features);
40
- const searchIndex = asRecord(response.search_index);
41
- const semanticIndex = asRecord(response.semantic_index);
42
- const disk = asRecord(response.disk);
43
- const symbolCache = asRecord(response.symbol_cache);
44
- return {
45
- version: readString(response.version, "unknown"),
46
- project_root: readNullableString(response.project_root),
47
- features: {
48
- format_on_edit: readBoolean(features.format_on_edit),
49
- validate_on_edit: readString(features.validate_on_edit, "off"),
50
- restrict_to_project_root: readBoolean(features.restrict_to_project_root),
51
- experimental_search_index: readBoolean(features.experimental_search_index),
52
- experimental_semantic_search: readBoolean(features.experimental_semantic_search),
53
- },
54
- search_index: {
55
- status: readString(searchIndex.status, "unknown"),
56
- files: readOptionalNumber(searchIndex.files),
57
- trigrams: readOptionalNumber(searchIndex.trigrams),
58
- },
59
- semantic_index: {
60
- status: readString(semanticIndex.status, "unknown"),
61
- entries: readOptionalNumber(semanticIndex.entries),
62
- dimension: readOptionalNumber(semanticIndex.dimension),
63
- },
64
- disk: {
65
- storage_dir: readNullableString(disk.storage_dir),
66
- trigram_disk_bytes: readNumber(disk.trigram_disk_bytes),
67
- semantic_disk_bytes: readNumber(disk.semantic_disk_bytes),
68
- },
69
- lsp_servers: readNumber(response.lsp_servers),
70
- symbol_cache: {
71
- local_entries: readNumber(symbolCache.local_entries),
72
- warm_entries: readNumber(symbolCache.warm_entries),
73
- },
74
- storage_dir: readNullableString(response.storage_dir),
75
- };
76
- }
77
- export function formatStatusDialogMessage(status) {
78
- const lines = [
79
- `AFT version: ${status.version}`,
80
- `Project root: ${status.project_root ?? "(not configured)"}`,
81
- "",
82
- "Enabled features",
83
- `- format_on_edit: ${formatFlag(status.features.format_on_edit)}`,
84
- `- experimental_search_index: ${formatFlag(status.features.experimental_search_index)}`,
85
- `- experimental_semantic_search: ${formatFlag(status.features.experimental_semantic_search)}`,
86
- "",
87
- "Search index",
88
- `- status: ${status.search_index.status}`,
89
- `- files: ${formatCount(status.search_index.files)}`,
90
- `- trigrams: ${formatCount(status.search_index.trigrams)}`,
91
- "",
92
- "Semantic index",
93
- `- status: ${status.semantic_index.status}`,
94
- `- entries: ${formatCount(status.semantic_index.entries)}`,
95
- ];
96
- if (status.semantic_index.dimension != null) {
97
- lines.push(`- dimension: ${formatCount(status.semantic_index.dimension)}`);
98
- }
99
- lines.push("", "Disk usage", `- trigram index: ${formatBytes(status.disk.trigram_disk_bytes)}`, `- semantic index: ${formatBytes(status.disk.semantic_disk_bytes)}`, "", "Runtime", `- LSP servers: ${formatCount(status.lsp_servers)}`, `- symbol cache: ${formatCount(status.symbol_cache.local_entries)} local / ${formatCount(status.symbol_cache.warm_entries)} warm`);
100
- if (status.storage_dir ?? status.disk.storage_dir) {
101
- lines.push(`- storage dir: ${status.storage_dir ?? status.disk.storage_dir}`);
102
- }
103
- return lines.join("\n");
104
- }
105
- export function formatStatusMarkdown(status) {
106
- const lines = [
107
- "## AFT Status",
108
- "",
109
- `- **Version:** \`${status.version}\``,
110
- `- **Project root:** \`${status.project_root ?? "(not configured)"}\``,
111
- "",
112
- "### Enabled features",
113
- `- \`format_on_edit\`: ${formatFlag(status.features.format_on_edit)}`,
114
- `- \`experimental_search_index\`: ${formatFlag(status.features.experimental_search_index)}`,
115
- `- \`experimental_semantic_search\`: ${formatFlag(status.features.experimental_semantic_search)}`,
116
- "",
117
- "### Search index",
118
- `- **Status:** \`${status.search_index.status}\``,
119
- `- **Files:** ${formatCount(status.search_index.files)}`,
120
- `- **Trigrams:** ${formatCount(status.search_index.trigrams)}`,
121
- "",
122
- "### Semantic index",
123
- `- **Status:** \`${status.semantic_index.status}\``,
124
- `- **Entries:** ${formatCount(status.semantic_index.entries)}`,
125
- ];
126
- if (status.semantic_index.dimension != null) {
127
- lines.push(`- **Dimension:** ${formatCount(status.semantic_index.dimension)}`);
128
- }
129
- lines.push("", "### Disk usage", `- **Trigram index:** ${formatBytes(status.disk.trigram_disk_bytes)}`, `- **Semantic index:** ${formatBytes(status.disk.semantic_disk_bytes)}`, "", "### Runtime", `- **LSP servers:** ${formatCount(status.lsp_servers)}`, `- **Symbol cache:** ${formatCount(status.symbol_cache.local_entries)} local / ${formatCount(status.symbol_cache.warm_entries)} warm`);
130
- if (status.storage_dir ?? status.disk.storage_dir) {
131
- lines.push(`- **Storage dir:** \`${status.storage_dir ?? status.disk.storage_dir}\``);
132
- }
133
- return lines.join("\n");
134
- }
135
- //# sourceMappingURL=status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/shared/status.ts"],"names":[],"mappings":"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"}
@@ -1,134 +0,0 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
- import { dirname, join } from "node:path";
3
- import { log } from "../logger.js";
4
- import { getOpenCodeConfigPaths } from "./opencode-config-dir.js";
5
- const PLUGIN_NAME = "@cortexkit/aft-opencode";
6
- const PLUGIN_ENTRY = `${PLUGIN_NAME}@latest`;
7
- function stripJsoncComments(text) {
8
- let result = "";
9
- let i = 0;
10
- let inString = false;
11
- let escaped = false;
12
- while (i < text.length) {
13
- const ch = text[i];
14
- if (inString) {
15
- result += ch;
16
- if (escaped) {
17
- escaped = false;
18
- }
19
- else if (ch === "\\") {
20
- escaped = true;
21
- }
22
- else if (ch === '"') {
23
- inString = false;
24
- }
25
- i++;
26
- continue;
27
- }
28
- if (ch === '"') {
29
- inString = true;
30
- result += ch;
31
- i++;
32
- continue;
33
- }
34
- if (ch === "/" && text[i + 1] === "/") {
35
- i += 2;
36
- while (i < text.length && text[i] !== "\n")
37
- i++;
38
- continue;
39
- }
40
- if (ch === "/" && text[i + 1] === "*") {
41
- i += 2;
42
- while (i < text.length && !(text[i] === "*" && text[i + 1] === "/"))
43
- i++;
44
- i += 2;
45
- continue;
46
- }
47
- result += ch;
48
- i++;
49
- }
50
- return result;
51
- }
52
- function stripTrailingCommas(text) {
53
- let result = "";
54
- let i = 0;
55
- let inString = false;
56
- let escaped = false;
57
- while (i < text.length) {
58
- const ch = text[i];
59
- if (inString) {
60
- result += ch;
61
- if (escaped) {
62
- escaped = false;
63
- }
64
- else if (ch === "\\") {
65
- escaped = true;
66
- }
67
- else if (ch === '"') {
68
- inString = false;
69
- }
70
- i++;
71
- continue;
72
- }
73
- if (ch === '"') {
74
- inString = true;
75
- result += ch;
76
- i++;
77
- continue;
78
- }
79
- if (ch === ",") {
80
- let j = i + 1;
81
- while (j < text.length && /\s/.test(text[j]))
82
- j++;
83
- if (text[j] === "}" || text[j] === "]") {
84
- i++;
85
- continue;
86
- }
87
- }
88
- result += ch;
89
- i++;
90
- }
91
- return result;
92
- }
93
- function parseJsonc(content) {
94
- return JSON.parse(stripTrailingCommas(stripJsoncComments(content)));
95
- }
96
- function resolveTuiConfigPath() {
97
- const configDir = getOpenCodeConfigPaths({ binary: "opencode" }).configDir;
98
- const jsoncPath = join(configDir, "tui.jsonc");
99
- const jsonPath = join(configDir, "tui.json");
100
- if (existsSync(jsoncPath))
101
- return jsoncPath;
102
- if (existsSync(jsonPath))
103
- return jsonPath;
104
- return jsonPath;
105
- }
106
- export function ensureTuiPluginEntry() {
107
- try {
108
- const configPath = resolveTuiConfigPath();
109
- let config = {};
110
- if (existsSync(configPath)) {
111
- config = parseJsonc(readFileSync(configPath, "utf-8")) ?? {};
112
- }
113
- const plugins = Array.isArray(config.plugin)
114
- ? config.plugin.filter((value) => typeof value === "string")
115
- : [];
116
- if (plugins.some((plugin) => plugin === PLUGIN_NAME ||
117
- plugin.startsWith(`${PLUGIN_NAME}@`) ||
118
- plugin.includes("opencode-plugin") ||
119
- plugin.includes("aft-opencode"))) {
120
- return false;
121
- }
122
- plugins.push(PLUGIN_ENTRY);
123
- config.plugin = plugins;
124
- mkdirSync(dirname(configPath), { recursive: true });
125
- writeFileSync(configPath, `${JSON.stringify(config, null, 2)}\n`);
126
- log(`[aft-plugin] added TUI plugin entry to ${configPath}`);
127
- return true;
128
- }
129
- catch (error) {
130
- log(`[aft-plugin] failed to update tui.json: ${error instanceof Error ? error.message : String(error)}`);
131
- return false;
132
- }
133
- }
134
- //# sourceMappingURL=tui-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tui-config.js","sourceRoot":"","sources":["../../src/shared/tui-config.ts"],"names":[],"mappings":"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"}