@cortexkit/aft-opencode 0.3.0 → 0.4.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 (70) hide show
  1. package/dist/bridge.d.ts +8 -0
  2. package/dist/bridge.d.ts.map +1 -1
  3. package/dist/bridge.js +45 -2
  4. package/dist/bridge.js.map +1 -1
  5. package/dist/config.d.ts +1 -0
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +11 -0
  8. package/dist/config.js.map +1 -1
  9. package/dist/downloader.d.ts.map +1 -1
  10. package/dist/downloader.js +51 -15
  11. package/dist/downloader.js.map +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +56 -16
  14. package/dist/index.js.map +1 -1
  15. package/dist/normalize-schemas.d.ts +16 -0
  16. package/dist/normalize-schemas.d.ts.map +1 -0
  17. package/dist/normalize-schemas.js +45 -0
  18. package/dist/normalize-schemas.js.map +1 -0
  19. package/dist/patch-parser.d.ts.map +1 -1
  20. package/dist/patch-parser.js +10 -0
  21. package/dist/patch-parser.js.map +1 -1
  22. package/dist/platform.d.ts +21 -0
  23. package/dist/platform.d.ts.map +1 -0
  24. package/dist/platform.js +31 -0
  25. package/dist/platform.js.map +1 -0
  26. package/dist/pool.d.ts.map +1 -1
  27. package/dist/pool.js +14 -5
  28. package/dist/pool.js.map +1 -1
  29. package/dist/resolver.d.ts.map +1 -1
  30. package/dist/resolver.js +6 -9
  31. package/dist/resolver.js.map +1 -1
  32. package/dist/tools/ast.d.ts.map +1 -1
  33. package/dist/tools/ast.js +52 -59
  34. package/dist/tools/ast.js.map +1 -1
  35. package/dist/tools/hoisted.d.ts +1 -1
  36. package/dist/tools/hoisted.d.ts.map +1 -1
  37. package/dist/tools/hoisted.js +333 -230
  38. package/dist/tools/hoisted.js.map +1 -1
  39. package/dist/tools/imports.d.ts.map +1 -1
  40. package/dist/tools/imports.js +40 -30
  41. package/dist/tools/imports.js.map +1 -1
  42. package/dist/tools/lsp.d.ts +1 -2
  43. package/dist/tools/lsp.d.ts.map +1 -1
  44. package/dist/tools/lsp.js +31 -13
  45. package/dist/tools/lsp.js.map +1 -1
  46. package/dist/tools/navigation.d.ts.map +1 -1
  47. package/dist/tools/navigation.js +23 -14
  48. package/dist/tools/navigation.js.map +1 -1
  49. package/dist/tools/permissions.d.ts +8 -0
  50. package/dist/tools/permissions.d.ts.map +1 -0
  51. package/dist/tools/permissions.js +50 -0
  52. package/dist/tools/permissions.js.map +1 -0
  53. package/dist/tools/reading.d.ts +1 -2
  54. package/dist/tools/reading.d.ts.map +1 -1
  55. package/dist/tools/reading.js +191 -12
  56. package/dist/tools/reading.js.map +1 -1
  57. package/dist/tools/refactoring.d.ts.map +1 -1
  58. package/dist/tools/refactoring.js +72 -34
  59. package/dist/tools/refactoring.js.map +1 -1
  60. package/dist/tools/safety.d.ts.map +1 -1
  61. package/dist/tools/safety.js +34 -12
  62. package/dist/tools/safety.js.map +1 -1
  63. package/dist/tools/structure.d.ts.map +1 -1
  64. package/dist/tools/structure.js +66 -31
  65. package/dist/tools/structure.js.map +1 -1
  66. package/package.json +7 -7
  67. package/dist/tools/editing.d.ts +0 -8
  68. package/dist/tools/editing.d.ts.map +0 -1
  69. package/dist/tools/editing.js +0 -8
  70. package/dist/tools/editing.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { tool } from "@opencode-ai/plugin";
2
+ import { askEditPermission, permissionDeniedResponse, resolveAbsolutePath, resolveRelativePattern, } from "./permissions.js";
2
3
  const z = tool.schema;
3
4
  /**
4
5
  * Tool definitions for scope-aware structure commands:
@@ -8,43 +9,40 @@ export function structureTools(ctx) {
8
9
  return {
9
10
  aft_transform: {
10
11
  description: "Scope-aware structural code transformations with correct indentation.\n\n" +
12
+ "Language-specific: add_derive (Rust), add_struct_tags (Go), add_decorator (Python), wrap_try_catch (TS/JS), add_member (any language).\n\n" +
11
13
  "Ops:\n" +
12
- "- 'add_member': Insert method/field into class, struct, or impl block. Requires 'scope' (container name) and 'code'. Optional 'position'.\n" +
14
+ "- 'add_member': Insert method/field into class, struct, or impl block. Requires 'container' (container name) and 'code'. Optional 'position'.\n" +
13
15
  "- 'add_derive': Add Rust derive macros to a struct/enum. Requires 'target' and 'derives' array. Deduplicates existing derives.\n" +
14
- "- 'wrap_try_catch': Wrap a TS/JS function body in try/catch. Requires 'target' (function name). Optional 'catch_body'.\n" +
16
+ "- 'wrap_try_catch': Wrap a TS/JS function body in try/catch. Requires 'target' (function name). Optional 'catchBody'.\n" +
15
17
  "- 'add_decorator': Add Python decorator to function/class. Requires 'target' and 'decorator' (without @). Optional 'position'.\n" +
16
18
  "- 'add_struct_tags': Add/update Go struct field tags. Requires 'target' (struct name), 'field', 'tag', 'value'.\n\n" +
17
- "Parameters:\n" +
18
- "- op (enum, required): 'add_member' | 'add_derive' | 'wrap_try_catch' | 'add_decorator' | 'add_struct_tags'\n" +
19
- "- file (string, required): Path to the source file\n" +
20
- "- scope (string, optional): Container name for add_member — the class, struct, or impl block to insert into\n" +
21
- "- code (string, optional): Member code to insert for add_member\n" +
22
- "- position (string, optional): Insertion point for add_member/add_decorator 'first', 'last' (default), 'before:name', 'after:name'\n" +
23
- "- target (string, optional): Target symbol name for add_derive (struct/enum), wrap_try_catch (function), add_decorator (function/class), add_struct_tags (struct)\n" +
24
- "- derives (string[], optional): Derive macro names for add_derive (e.g. ['Debug', 'Clone'])\n" +
25
- "- catch_body (string, optional): Custom catch block body for wrap_try_catch (default: 'throw error;')\n" +
26
- "- decorator (string, optional): Decorator name without @ for add_decorator (e.g. 'staticmethod', 'property')\n" +
27
- "- field (string, optional): Struct field name for add_struct_tags\n" +
28
- "- tag (string, optional): Tag key for add_struct_tags (e.g. 'json', 'yaml', 'db')\n" +
29
- "- value (string, optional): Tag value for add_struct_tags (e.g. 'user_name,omitempty')\n" +
30
- "- dry_run (boolean, optional): Preview changes without modifying the file\n" +
31
- "- validate (enum, optional): Validation level — 'syntax' (default) or 'full'\n\n" +
32
- "Returns: { formatted (string), validation_errors (string[]) }",
19
+ "Each op requires specific parameters — see parameter descriptions for requirements.\n\n" +
20
+ "Returns:\n" +
21
+ "- Dry run (any op): { ok, dry_run, diff, syntax_valid? }\n" +
22
+ "- add_member: { file, scope, position, formatted, syntax_valid?, format_skipped_reason?, validation_errors?, validate_skipped_reason?, backup_id?, lsp_diagnostics? }\n" +
23
+ "- add_derive: { file, target, derives, formatted, syntax_valid?, format_skipped_reason?, validation_errors?, validate_skipped_reason?, backup_id?, lsp_diagnostics? }\n" +
24
+ "- wrap_try_catch: { file, target, formatted, syntax_valid?, format_skipped_reason?, validation_errors?, validate_skipped_reason?, backup_id?, lsp_diagnostics? }\n" +
25
+ "- add_decorator: { file, target, decorator, formatted, syntax_valid?, format_skipped_reason?, validation_errors?, validate_skipped_reason?, backup_id?, lsp_diagnostics? }\n" +
26
+ "- add_struct_tags: { file, target, field, tag_string, formatted, syntax_valid?, format_skipped_reason?, validation_errors?, validate_skipped_reason?, backup_id?, lsp_diagnostics? }",
27
+ // Parameters are Zod-optional because different ops need different subsets.
28
+ // Runtime guards below validate per-op requirements and give clear errors.
33
29
  args: {
34
30
  op: z
35
31
  .enum(["add_member", "add_derive", "wrap_try_catch", "add_decorator", "add_struct_tags"])
36
32
  .describe("Transformation operation"),
37
- file: z.string().describe("Path to the source file"),
33
+ filePath: z
34
+ .string()
35
+ .describe("Path to the source file (absolute or relative to project root)"),
38
36
  // add_member
39
- scope: z
37
+ container: z
40
38
  .string()
41
39
  .optional()
42
- .describe("Container name to insert into (add_member — class, struct, or impl block)"),
40
+ .describe("Container name for add_member — the class, struct, or impl block to insert into. Appears as 'scope' in the response."),
43
41
  code: z.string().optional().describe("Member code to insert (add_member)"),
44
42
  position: z
45
43
  .string()
46
44
  .optional()
47
- .describe("Insert position: 'first', 'last' (default), 'before:name', 'after:name' (add_member, add_decorator)"),
45
+ .describe("For add_member: 'first', 'last' (default), 'before:name', 'after:name'. For add_decorator: 'first' (default) or 'last' only."),
48
46
  // add_derive, wrap_try_catch, add_decorator, add_struct_tags
49
47
  target: z
50
48
  .string()
@@ -54,7 +52,7 @@ export function structureTools(ctx) {
54
52
  .array(z.string())
55
53
  .optional()
56
54
  .describe("Derive macro names (add_derive — e.g. ['Clone', 'Debug'])"),
57
- catch_body: z
55
+ catchBody: z
58
56
  .string()
59
57
  .optional()
60
58
  .describe("Catch block body (wrap_try_catch — default: 'throw error;')"),
@@ -73,20 +71,57 @@ export function structureTools(ctx) {
73
71
  validate: z
74
72
  .enum(["syntax", "full"])
75
73
  .optional()
76
- .describe("Validation level: 'syntax' (default) or 'full'"),
77
- dry_run: z.boolean().optional().describe("Preview without modifying the file"),
74
+ .describe("Validation level: 'syntax' (default) or 'full'. Syntax = tree-sitter parse check only. Full = also runs LSP type-checking (slower, catches more errors)"),
75
+ dryRun: z
76
+ .boolean()
77
+ .optional()
78
+ .describe("Preview without modifying the file (default: false)"),
78
79
  },
79
80
  execute: async (args, context) => {
80
81
  const bridge = ctx.pool.getBridge(context.directory);
81
82
  const op = args.op;
82
- const params = { file: args.file };
83
+ const isDryRun = args.dryRun === true;
84
+ if (op === "add_member") {
85
+ if (typeof args.container !== "string")
86
+ throw new Error("'container' is required for 'add_member' op");
87
+ if (typeof args.code !== "string")
88
+ throw new Error("'code' is required for 'add_member' op");
89
+ }
90
+ if (op === "add_derive" ||
91
+ op === "wrap_try_catch" ||
92
+ op === "add_decorator" ||
93
+ op === "add_struct_tags") {
94
+ if (typeof args.target !== "string")
95
+ throw new Error(`'target' is required for '${op}' op`);
96
+ }
97
+ if (op === "add_derive" && !Array.isArray(args.derives)) {
98
+ throw new Error("'derives' array is required for 'add_derive' op");
99
+ }
100
+ if (op === "add_decorator" && typeof args.decorator !== "string") {
101
+ throw new Error("'decorator' is required for 'add_decorator' op");
102
+ }
103
+ if (op === "add_struct_tags") {
104
+ if (typeof args.field !== "string")
105
+ throw new Error("'field' is required for 'add_struct_tags' op");
106
+ if (typeof args.tag !== "string")
107
+ throw new Error("'tag' is required for 'add_struct_tags' op");
108
+ if (typeof args.value !== "string")
109
+ throw new Error("'value' is required for 'add_struct_tags' op");
110
+ }
111
+ if (!isDryRun) {
112
+ const filePath = resolveAbsolutePath(context, args.filePath);
113
+ const permissionError = await askEditPermission(context, [resolveRelativePattern(context, args.filePath)], { filepath: filePath });
114
+ if (permissionError)
115
+ return permissionDeniedResponse(permissionError);
116
+ }
117
+ const params = { file: args.filePath };
83
118
  if (args.validate !== undefined)
84
119
  params.validate = args.validate;
85
- if (args.dry_run !== undefined)
86
- params.dry_run = args.dry_run;
120
+ if (args.dryRun !== undefined)
121
+ params.dry_run = args.dryRun;
87
122
  switch (op) {
88
123
  case "add_member":
89
- params.scope = args.scope;
124
+ params.scope = args.container;
90
125
  params.code = args.code;
91
126
  if (args.position !== undefined)
92
127
  params.position = args.position;
@@ -97,8 +132,8 @@ export function structureTools(ctx) {
97
132
  break;
98
133
  case "wrap_try_catch":
99
134
  params.target = args.target;
100
- if (args.catch_body !== undefined)
101
- params.catch_body = args.catch_body;
135
+ if (args.catchBody !== undefined)
136
+ params.catch_body = args.catchBody;
102
137
  break;
103
138
  case "add_decorator":
104
139
  params.target = args.target;
@@ -1 +1 @@
1
- {"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/tools/structure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/tools/structure.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@cortexkit/aft-opencode",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "type": "module",
5
- "description": "OpenCode plugin for Agent File Tools (AFT) — tree-sitter powered code analysis",
5
+ "description": "OpenCode plugin for Agent File Tools (AFT) — tree-sitter and lsp powered code analysis",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "license": "MIT",
@@ -27,11 +27,11 @@
27
27
  "zod": "^4.1.8"
28
28
  },
29
29
  "optionalDependencies": {
30
- "@cortexkit/aft-darwin-arm64": "0.3.0",
31
- "@cortexkit/aft-darwin-x64": "0.3.0",
32
- "@cortexkit/aft-linux-arm64": "0.3.0",
33
- "@cortexkit/aft-linux-x64": "0.3.0",
34
- "@cortexkit/aft-win32-x64": "0.3.0"
30
+ "@cortexkit/aft-darwin-arm64": "0.4.1",
31
+ "@cortexkit/aft-darwin-x64": "0.4.1",
32
+ "@cortexkit/aft-linux-arm64": "0.4.1",
33
+ "@cortexkit/aft-linux-x64": "0.4.1",
34
+ "@cortexkit/aft-win32-x64": "0.4.1"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/node": "^22.0.0",
@@ -1,8 +0,0 @@
1
- import type { ToolDefinition } from "@opencode-ai/plugin";
2
- import type { PluginContext } from "../types.js";
3
- /**
4
- * Editing tools (aft_edit) have been merged into the hoisted `edit` tool.
5
- * This file is kept for future editing-specific tools that don't overlap.
6
- */
7
- export declare function editingTools(_ctx: PluginContext): Record<string, ToolDefinition>;
8
- //# sourceMappingURL=editing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"editing.d.ts","sourceRoot":"","sources":["../../src/tools/editing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAEhF"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Editing tools (aft_edit) have been merged into the hoisted `edit` tool.
3
- * This file is kept for future editing-specific tools that don't overlap.
4
- */
5
- export function editingTools(_ctx) {
6
- return {};
7
- }
8
- //# sourceMappingURL=editing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"editing.js","sourceRoot":"","sources":["../../src/tools/editing.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAmB;IAC9C,OAAO,EAAE,CAAC;AACZ,CAAC"}