refactor: codebase audit cleanup — dead code, dedup, module splits
Multi-agent audit + aggressive cleanup across server/web/coder/booterm, delivered behind a DEFER discipline so none of the in-flight files were touched. Removes dead code/deps/columns, dedups server + coder helpers, and splits the oversized modules (tools.ts, opencode-server.ts, sentinel-summaries, turn.ts, TerminalPane.tsx) behind stable contracts. Adds 78 parity/unit tests (server 587, coder 323); fixes two latent bugs (ChatPane queue keys, FileViewerOverlay blank-line parity). Intended tag: v2.7.12-audit-cleanup.
This commit is contained in:
@@ -1,8 +1,5 @@
|
||||
// v1.12 Track B.2: codecontext wrapper — search_symbols.
|
||||
|
||||
import { z } from 'zod';
|
||||
import type { ToolDef } from '../../tools.js';
|
||||
import { callCodecontext, type CodecontextResponse } from '../../codecontext_client.js';
|
||||
import { makeCodecontextTool } from './factory.js';
|
||||
|
||||
export const SearchSymbolsInput = z.object({
|
||||
query: z.string().min(1),
|
||||
@@ -21,57 +18,45 @@ const DESCRIPTION =
|
||||
|
||||
const DEFAULT_LIMIT = 20;
|
||||
|
||||
export async function executeSearchSymbols(
|
||||
input: SearchSymbolsInputT,
|
||||
projectPath: string,
|
||||
fetcher: typeof fetch = fetch,
|
||||
): Promise<CodecontextResponse> {
|
||||
const args: Record<string, unknown> = {
|
||||
query: input.query,
|
||||
limit: input.limit ?? DEFAULT_LIMIT,
|
||||
};
|
||||
if (input.file_type) args['file_type'] = input.file_type;
|
||||
if (input.symbol_type) args['symbol_type'] = input.symbol_type;
|
||||
if (input.framework_type) args['framework_type'] = input.framework_type;
|
||||
return callCodecontext({ toolName: 'search_symbols', args, projectPath }, fetcher);
|
||||
}
|
||||
|
||||
export const searchSymbols: ToolDef<SearchSymbolsInputT> = {
|
||||
name: 'search_symbols',
|
||||
description: DESCRIPTION,
|
||||
inputSchema: SearchSymbolsInput,
|
||||
jsonSchema: {
|
||||
type: 'function',
|
||||
function: {
|
||||
name: 'search_symbols',
|
||||
description: DESCRIPTION,
|
||||
parameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
query: { type: 'string', description: 'Substring or name fragment to match.' },
|
||||
file_type: {
|
||||
type: 'string',
|
||||
description: 'Filter by file extension or language (e.g. "ts", "py", "go").',
|
||||
},
|
||||
symbol_type: {
|
||||
type: 'string',
|
||||
description: 'Filter by kind: function|class|method|variable|type|interface.',
|
||||
},
|
||||
framework_type: {
|
||||
type: 'string',
|
||||
description: 'Filter by framework context (react|vue|svelte|…).',
|
||||
},
|
||||
limit: {
|
||||
type: 'integer',
|
||||
description: `Max matches to return. Defaults to ${DEFAULT_LIMIT}.`,
|
||||
},
|
||||
const { toolDef: searchSymbols, execute: executeSearchSymbols } =
|
||||
makeCodecontextTool<SearchSymbolsInputT>({
|
||||
name: 'search_symbols',
|
||||
schema: SearchSymbolsInput,
|
||||
description: DESCRIPTION,
|
||||
jsonParameters: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
query: { type: 'string', description: 'Substring or name fragment to match.' },
|
||||
file_type: {
|
||||
type: 'string',
|
||||
description: 'Filter by file extension or language (e.g. "ts", "py", "go").',
|
||||
},
|
||||
symbol_type: {
|
||||
type: 'string',
|
||||
description: 'Filter by kind: function|class|method|variable|type|interface.',
|
||||
},
|
||||
framework_type: {
|
||||
type: 'string',
|
||||
description: 'Filter by framework context (react|vue|svelte|…).',
|
||||
},
|
||||
limit: {
|
||||
type: 'integer',
|
||||
description: `Max matches to return. Defaults to ${DEFAULT_LIMIT}.`,
|
||||
},
|
||||
required: ['query'],
|
||||
additionalProperties: false,
|
||||
},
|
||||
required: ['query'],
|
||||
additionalProperties: false,
|
||||
},
|
||||
},
|
||||
async execute(input, projectRoot) {
|
||||
return await executeSearchSymbols(input, projectRoot);
|
||||
},
|
||||
};
|
||||
mapArgs: (input) => {
|
||||
const args: Record<string, unknown> = {
|
||||
query: input.query,
|
||||
limit: input.limit ?? DEFAULT_LIMIT,
|
||||
};
|
||||
if (input.file_type) args['file_type'] = input.file_type;
|
||||
if (input.symbol_type) args['symbol_type'] = input.symbol_type;
|
||||
if (input.framework_type) args['framework_type'] = input.framework_type;
|
||||
return args;
|
||||
},
|
||||
});
|
||||
|
||||
export { searchSymbols, executeSearchSymbols };
|
||||
|
||||
Reference in New Issue
Block a user