@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
package/dist/tools/ast.js DELETED
@@ -1,200 +0,0 @@
1
- /**
2
- * Tool definitions for AST pattern search and replace using ast-grep.
3
- * Supports meta-variables ($VAR for single node, $$$ for multiple nodes).
4
- * Patterns must be complete AST nodes (valid code fragments).
5
- */
6
- import { tool } from "@opencode-ai/plugin";
7
- const z = tool.schema;
8
- import { askEditPermission, resolveAbsolutePath, resolveRelativePatterns, workspacePattern, } from "./permissions.js";
9
- /** Show output in opencode UI via metadata callback. */
10
- function showOutputToUser(context, output) {
11
- const ctx = context;
12
- ctx.metadata?.({ metadata: { output } });
13
- }
14
- /** Provide helpful hints when a pattern returns 0 matches. */
15
- function getEmptyResultHint(pattern, lang) {
16
- const src = pattern.trim();
17
- if (lang === "python") {
18
- if (src.startsWith("class ") && src.endsWith(":")) {
19
- return `Hint: Python class patterns need a body. Try: "${src.slice(0, -1)}" or "${src}\n $$$"`;
20
- }
21
- if ((src.startsWith("def ") || src.startsWith("async def ")) && src.endsWith(":")) {
22
- return `Hint: Python function patterns need a body. Try adding "\\n $$$" after the colon.`;
23
- }
24
- }
25
- if (["javascript", "typescript", "tsx"].includes(lang)) {
26
- if (/^(export\s+)?(async\s+)?function\s+\$[A-Z_]+\s*$/i.test(src)) {
27
- return `Hint: Function patterns need params and body. Try: "function $NAME($$$) { $$$ }"`;
28
- }
29
- }
30
- return null;
31
- }
32
- const SUPPORTED_LANGS = ["typescript", "tsx", "javascript", "python", "rust", "go"];
33
- export function astTools(ctx) {
34
- const searchTool = {
35
- description: "Search code patterns across filesystem using AST-aware matching. Supports 6 languages.\n\n" +
36
- "Use meta-variables: $VAR matches a single AST node, $$$ matches multiple nodes (variadic).\n" +
37
- "IMPORTANT: Patterns must be complete AST nodes (valid code fragments).\n" +
38
- "For functions, include params and body: 'export async function $NAME($$$) { $$$ }' not just 'export async function $NAME'.\n\n" +
39
- "Examples: pattern='console.log($MSG)' lang='typescript', pattern='async function $NAME($$$) { $$$ }' lang='javascript', pattern='def $FUNC($$$): $$$' lang='python'\n\n" +
40
- "Returns: Text summary — 'Found N match(es) across M file(s)' followed by file:line blocks with matched text and captured meta-variables.",
41
- args: {
42
- pattern: z
43
- .string()
44
- .describe("AST pattern with meta-variables ($VAR, $$$). Must be complete AST node."),
45
- lang: z.enum(SUPPORTED_LANGS).describe("Target language"),
46
- paths: z.array(z.string()).optional().describe("Paths to search (default: ['.'])"),
47
- globs: z.array(z.string()).optional().describe("Include/exclude globs (prefix ! to exclude)"),
48
- contextLines: z
49
- .number()
50
- .optional()
51
- .describe("Number of context lines to show around each match"),
52
- },
53
- execute: async (args, context) => {
54
- const bridge = ctx.pool.getBridge(context.directory, context.sessionID);
55
- const params = {
56
- pattern: args.pattern,
57
- lang: args.lang,
58
- };
59
- if (args.paths)
60
- params.paths = args.paths;
61
- if (args.globs)
62
- params.globs = args.globs;
63
- if (args.contextLines !== undefined)
64
- params.context = Number(args.contextLines);
65
- const response = await bridge.send("ast_search", params);
66
- // Error response (e.g. invalid pattern)
67
- if (response.success === false) {
68
- throw new Error(response.message || "ast_search failed");
69
- }
70
- // Format output for readability
71
- const data = response;
72
- const matchCount = data.total_matches ?? data.matches?.length ?? 0;
73
- const filesSearched = data.files_searched ?? 0;
74
- const filesWithMatches = data.files_with_matches ?? filesSearched;
75
- let output;
76
- if (matchCount === 0) {
77
- // Zero-match format is intentionally not documented in the description — it's
78
- // self-explanatory text and documenting it would bloat the Returns section.
79
- output = `No matches found (searched ${filesSearched} files)`;
80
- // Add hints for common pattern mistakes
81
- const hint = getEmptyResultHint(args.pattern, args.lang);
82
- if (hint) {
83
- output += `\n\n${hint}`;
84
- }
85
- }
86
- else {
87
- output = `Found ${matchCount} match(es) in ${filesWithMatches} file(s) (${filesSearched} searched)\n\n`;
88
- if (data.matches) {
89
- for (const m of data.matches) {
90
- const relFile = m.file ?? "unknown";
91
- const line = m.line ?? 0;
92
- output += `${relFile}:${line}\n`;
93
- if (m.text) {
94
- output += ` ${m.text.trim()}\n`;
95
- }
96
- if (m.meta_variables && Object.keys(m.meta_variables).length > 0) {
97
- for (const [k, v] of Object.entries(m.meta_variables)) {
98
- output += ` ${k}: ${v}\n`;
99
- }
100
- }
101
- output += "\n";
102
- }
103
- }
104
- }
105
- // Show output in UI
106
- showOutputToUser(context, output);
107
- return output;
108
- },
109
- };
110
- const replaceTool = {
111
- description: "Replace code patterns across filesystem with AST-aware rewriting. Applies changes by default — set dryRun=true to preview.\n\n" +
112
- "Use meta-variables in the rewrite pattern to preserve matched content from the pattern.\n" +
113
- "IMPORTANT: Patterns must be complete AST nodes (valid code fragments).\n\n" +
114
- "Example: pattern='console.log($MSG)' rewrite='logger.info($MSG)' lang='typescript' — replaces all console.log calls with logger.info across TypeScript files.\n\n" +
115
- "**Warning: This tool modifies files directly.** Use dryRun=true to preview. Consider creating an aft_safety checkpoint before bulk replacements.\n\n" +
116
- "Returns: Text summary — 'Replaced N match(es) across M file(s)' (or '[DRY RUN] Would replace...') followed by file:line blocks with before/after text.",
117
- args: {
118
- pattern: z
119
- .string()
120
- .describe("AST pattern with meta-variables ($VAR, $$$). Must be complete AST node."),
121
- rewrite: z.string().describe("Replacement pattern (can use $VAR from pattern)"),
122
- lang: z.enum(SUPPORTED_LANGS).describe("Target language"),
123
- paths: z.array(z.string()).optional().describe("Paths to search (default: ['.'])"),
124
- globs: z.array(z.string()).optional().describe("Include/exclude globs (prefix ! to exclude)"),
125
- dryRun: z.boolean().optional().describe("Preview changes without applying (default: false)"),
126
- },
127
- execute: async (args, context) => {
128
- const bridge = ctx.pool.getBridge(context.directory, context.sessionID);
129
- const isDryRun = args.dryRun === true;
130
- if (!isDryRun) {
131
- const explicitPaths = Array.isArray(args.paths)
132
- ? resolveRelativePatterns(context, args.paths)
133
- : [];
134
- const positiveGlobs = Array.isArray(args.globs)
135
- ? args.globs.filter((glob) => !glob.startsWith("!"))
136
- : [];
137
- const patterns = [...explicitPaths, ...positiveGlobs];
138
- const metadata = explicitPaths.length === 1 && positiveGlobs.length === 0 && Array.isArray(args.paths)
139
- ? { filepath: resolveAbsolutePath(context, args.paths[0]) }
140
- : {};
141
- const permissionError = await askEditPermission(context, patterns.length > 0 ? patterns : [workspacePattern(context)], metadata);
142
- if (permissionError) {
143
- const output = `Permission denied: ${permissionError}`;
144
- showOutputToUser(context, output);
145
- return output;
146
- }
147
- }
148
- const params = {
149
- pattern: args.pattern,
150
- rewrite: args.rewrite,
151
- lang: args.lang,
152
- };
153
- if (args.paths)
154
- params.paths = args.paths;
155
- if (args.globs)
156
- params.globs = args.globs;
157
- params.dry_run = args.dryRun === true;
158
- const response = await bridge.send("ast_replace", params);
159
- // Error response (e.g. invalid pattern)
160
- if (response.success === false) {
161
- throw new Error(response.message || "ast_replace failed");
162
- }
163
- const data = response;
164
- const matchCount = data.total_replacements ?? data.total_matches ?? data.matches?.length ?? 0;
165
- const filesSearched = data.files_searched ?? data.total_files ?? 0;
166
- const filesWithMatches = data.files_with_matches ?? data.total_files ?? filesSearched;
167
- let output;
168
- if (matchCount === 0) {
169
- output = `No matches found (searched ${filesSearched} files)`;
170
- }
171
- else {
172
- output = isDryRun
173
- ? `[DRY RUN] Would replace ${matchCount} match(es) in ${filesWithMatches} file(s) (${filesSearched} searched)\n\n`
174
- : `Replaced ${matchCount} match(es) in ${filesWithMatches} file(s) (${filesSearched} searched)\n\n`;
175
- if (data.matches) {
176
- for (const m of data.matches) {
177
- const relFile = m.file ?? "unknown";
178
- const line = m.line ?? 0;
179
- output += `${relFile}:${line}\n`;
180
- if (m.text && m.replacement) {
181
- output += ` - ${m.text.trim()}\n`;
182
- output += ` + ${m.replacement.trim()}\n`;
183
- }
184
- output += "\n";
185
- }
186
- }
187
- }
188
- showOutputToUser(context, output);
189
- return output;
190
- },
191
- };
192
- // When hoisting: register as ast_grep_search/ast_grep_replace (override oh-my-opencode's)
193
- // When not hoisting: register as aft_ast_search/aft_ast_replace
194
- const hoisting = ctx.config.hoist_builtin_tools !== false;
195
- return {
196
- [hoisting ? "ast_grep_search" : "aft_ast_search"]: searchTool,
197
- [hoisting ? "ast_grep_replace" : "aft_ast_replace"]: replaceTool,
198
- };
199
- }
200
- //# sourceMappingURL=ast.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/tools/ast.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Tool definition for the git conflict discovery and parsing tool.
3
- */
4
- export function conflictTools(ctx) {
5
- return {
6
- aft_conflicts: {
7
- description: "Show all git merge conflicts across the repository — returns line-numbered conflict regions with context for every conflicted file in a single call.",
8
- args: {},
9
- execute: async (_args, context) => {
10
- const bridge = ctx.pool.getBridge(context.directory, context.sessionID);
11
- const response = await bridge.send("git_conflicts", {});
12
- if (response.success === false) {
13
- throw new Error(response.message || "git_conflicts failed");
14
- }
15
- return response.text;
16
- },
17
- },
18
- };
19
- }
20
- //# sourceMappingURL=conflicts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../src/tools/conflicts.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAkB;IAC9C,OAAO;QACL,aAAa,EAAE;YACb,WAAW,EACT,sJAAsJ;YACxJ,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAmB,EAAE;gBACjD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBACxE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gBACxD,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CAAE,QAAQ,CAAC,OAAkB,IAAI,sBAAsB,CAAC,CAAC;gBAC1E,CAAC;gBACD,OAAO,QAAQ,CAAC,IAAc,CAAC;YACjC,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}