opencode-codeindex 0.1.2 → 0.1.5

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.
@@ -10,7 +10,7 @@ Index the current working directory and show:
10
10
 
11
11
  Use the tree_indexer tool with:
12
12
 
13
- - path: the current working directory (or '.' if not specified)
13
+ - path: {{directory}}
14
14
  - maxFileSize: 102400 (100KB)
15
15
 
16
16
  Show the user the formatted markdown output.
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ interface IndexArgs {
3
3
  path: string;
4
4
  maxFileSize?: number;
5
5
  }
6
- export declare function indexDirectory(args: IndexArgs): Promise<string>;
6
+ export declare function indexDirectory(args?: IndexArgs): Promise<string>;
7
7
  export declare const CodeIndexPlugin: Plugin;
8
8
  export {};
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAqBlD,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAmDD,wBAAsB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBrE;AAED,eAAO,MAAM,eAAe,EAAE,MAkC7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAqBlD,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAmDD,wBAAsB,cAAc,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBtE;AAED,eAAO,MAAM,eAAe,EAAE,MAsC7B,CAAC"}
package/dist/index.js CHANGED
@@ -47,7 +47,7 @@ async function loadCommands() {
47
47
  return commands;
48
48
  }
49
49
  export async function indexDirectory(args) {
50
- const targetPath = path.resolve(args.path);
50
+ const targetPath = path.resolve(args?.path ?? process.cwd());
51
51
  const stat = await fs.stat(targetPath);
52
52
  if (!stat.isDirectory()) {
53
53
  throw new Error(`Path is not a directory: ${targetPath}`);
@@ -55,7 +55,7 @@ export async function indexDirectory(args) {
55
55
  const tree = await buildTree(targetPath);
56
56
  const rootFiles = (tree.children ?? []).filter((node) => node.type === 'file');
57
57
  for (const file of rootFiles) {
58
- const result = await readFileContent(file.path, args.maxFileSize);
58
+ const result = await readFileContent(file.path, args?.maxFileSize);
59
59
  file.content = result.content;
60
60
  if (result.error)
61
61
  file.error = result.error;
@@ -63,17 +63,21 @@ export async function indexDirectory(args) {
63
63
  }
64
64
  return formatOutput(tree, targetPath);
65
65
  }
66
- export const CodeIndexPlugin = async () => {
66
+ export const CodeIndexPlugin = async (ctx) => {
67
67
  const commands = await loadCommands();
68
+ const currentDir = ctx.directory ?? process.cwd();
68
69
  const treeIndexerTool = tool({
69
70
  description: 'Generate a directory tree with root file contents',
70
71
  args: {
71
- path: tool.schema.string().describe('Root path to index'),
72
+ path: tool.schema
73
+ .string()
74
+ .optional()
75
+ .describe('Root path to index (defaults to current directory)'),
72
76
  maxFileSize: tool.schema.number().optional().describe('Max file size in bytes'),
73
77
  },
74
78
  async execute(args) {
75
79
  return indexDirectory({
76
- path: args.path,
80
+ path: args.path ?? currentDir,
77
81
  maxFileSize: args.maxFileSize,
78
82
  });
79
83
  },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-codeindex",
3
- "version": "0.1.2",
3
+ "version": "0.1.5",
4
4
  "description": "OpenCode plugin that indexes directories with root file contents.",
5
5
  "author": {
6
6
  "name": "OpenCode",
@@ -10,7 +10,7 @@ Index the current working directory and show:
10
10
 
11
11
  Use the tree_indexer tool with:
12
12
 
13
- - path: the current working directory (or '.' if not specified)
13
+ - path: {{directory}}
14
14
  - maxFileSize: 102400 (100KB)
15
15
 
16
16
  Show the user the formatted markdown output.
package/src/index.ts CHANGED
@@ -73,8 +73,8 @@ async function loadCommands(): Promise<ParsedCommand[]> {
73
73
  return commands;
74
74
  }
75
75
 
76
- export async function indexDirectory(args: IndexArgs): Promise<string> {
77
- const targetPath = path.resolve(args.path);
76
+ export async function indexDirectory(args?: IndexArgs): Promise<string> {
77
+ const targetPath = path.resolve(args?.path ?? process.cwd());
78
78
  const stat = await fs.stat(targetPath);
79
79
  if (!stat.isDirectory()) {
80
80
  throw new Error(`Path is not a directory: ${targetPath}`);
@@ -84,7 +84,7 @@ export async function indexDirectory(args: IndexArgs): Promise<string> {
84
84
  const rootFiles = (tree.children ?? []).filter((node) => node.type === 'file');
85
85
 
86
86
  for (const file of rootFiles) {
87
- const result = await readFileContent(file.path, args.maxFileSize);
87
+ const result = await readFileContent(file.path, args?.maxFileSize);
88
88
  file.content = result.content;
89
89
  if (result.error) file.error = result.error;
90
90
  file.size = result.size;
@@ -93,18 +93,22 @@ export async function indexDirectory(args: IndexArgs): Promise<string> {
93
93
  return formatOutput(tree, targetPath);
94
94
  }
95
95
 
96
- export const CodeIndexPlugin: Plugin = async () => {
96
+ export const CodeIndexPlugin: Plugin = async (ctx) => {
97
97
  const commands = await loadCommands();
98
+ const currentDir = ctx.directory ?? process.cwd();
98
99
 
99
100
  const treeIndexerTool = tool({
100
101
  description: 'Generate a directory tree with root file contents',
101
102
  args: {
102
- path: tool.schema.string().describe('Root path to index'),
103
+ path: tool.schema
104
+ .string()
105
+ .optional()
106
+ .describe('Root path to index (defaults to current directory)'),
103
107
  maxFileSize: tool.schema.number().optional().describe('Max file size in bytes'),
104
108
  },
105
109
  async execute(args) {
106
110
  return indexDirectory({
107
- path: args.path,
111
+ path: args.path ?? currentDir,
108
112
  maxFileSize: args.maxFileSize,
109
113
  });
110
114
  },