spb/khaelor Public
KHAELOR — a terminal-native autonomous engineering agent powered by Anthropic.
TypeScript 82.9%
HTML 14.9%
CSS 1.1%
JavaScript 0.7%
1/**2 * KHAELOR3 * File: src/tools/index.ts4 * Description: Public barrel for the tools module (Layer 2 — imports workspace and shared only).5 *6 * Author: Simon-Pierre Boucher7 * Contact: contact@spboucher.ai8 */910export type {11 ToolCapabilityHint,12 ToolContext,13 ToolEmittedEvent,14 ToolName,15 ToolResult,16 ToolResultMetadata,17 TruncationInfo,18} from "./types.js";19export { CANCELLED_RESULT_CONTENT } from "./types.js";20export type { ParsedInput, ToolJsonSchema, ToolPropertySchema } from "./schema.js";21export { missingConditionalParam, validateToolInput } from "./schema.js";22export type { AnthropicToolParam, ToolDefinition } from "./registry.js";23export { ToolRegistry, parseToolInput } from "./registry.js";24export type { TruncateLimits, TruncatedText } from "./truncate.js";25export { needsTruncation, omissionMarker, truncateMiddleOut } from "./truncate.js";26export type { UnifiedDiff } from "./diff.js";27export { capDiff, unifiedDiff } from "./diff.js";28export type { CascadeResult, MatchSpan, NearMiss, ReplacerStrategy } from "./replacers.js";29export { STRATEGY_PHRASES, runCascade, runMultiOccurrence } from "./replacers.js";30export type { ReadInput } from "./read.js";31export { createReadTool } from "./read.js";32export type { WriteInput } from "./write.js";33export { createWriteTool } from "./write.js";34export type { EditInput } from "./edit.js";35export { createEditTool } from "./edit.js";36export type { GrepInput, GrepToolOptions } from "./grep.js";37export { createGrepTool } from "./grep.js";38export type { GlobInput } from "./glob.js";39export { createGlobTool } from "./glob.js";40export type { BashInput } from "./bash.js";41export { createBashTool } from "./bash.js";42export type { ProcessAction, ProcessInput } from "./process.js";43export { createProcessTool } from "./process.js";44export type { DesignInput } from "./design.js";45export { createDesignTool, parseDesignInput } from "./design.js";46export type { RememberInput } from "./remember.js";47export { createRememberTool } from "./remember.js";48export type { SymbolsInput } from "./symbols.js";49export { createSymbolsTool } from "./symbols.js";50export type { RefsInput } from "./refs.js";51export { createRefsTool } from "./refs.js";52export type {53 PhaseToolFacet,54 RefHit,55 RepoGraphFacet,56 SymbolHit,57 ToolDesignArtifact,58} from "./types.js";5960import { createBashTool } from "./bash.js";61import { createDesignTool } from "./design.js";62import { createEditTool } from "./edit.js";63import { createGlobTool } from "./glob.js";64import type { GrepToolOptions } from "./grep.js";65import { createGrepTool } from "./grep.js";66import { createProcessTool } from "./process.js";67import { createReadTool } from "./read.js";68import { ToolRegistry } from "./registry.js";69import { createRefsTool } from "./refs.js";70import { createRememberTool } from "./remember.js";71import { createSymbolsTool } from "./symbols.js";72import { createWriteTool } from "./write.js";7374/**75 * Build the default registry: the seven V1 tools (ADR-8) plus the v2 tools —76 * design (phase gates), remember (project memory), symbols/refs (RepoGraph).77 */78export function createDefaultToolRegistry(options: { grep?: GrepToolOptions } = {}): ToolRegistry {79 const registry = new ToolRegistry();80 registry.register(createReadTool());81 registry.register(createWriteTool());82 registry.register(createEditTool());83 registry.register(createGrepTool(options.grep ?? {}));84 registry.register(createGlobTool());85 registry.register(createBashTool());86 registry.register(createProcessTool());87 registry.register(createDesignTool());88 registry.register(createRememberTool());89 registry.register(createSymbolsTool());90 registry.register(createRefsTool());91 return registry;92}93