SPB Git

Repository Public

index.ts 2.2 KB 46 lines typescript

1import { askOwnerTool, finishTool, proposeCriteriaTool, updateCriteriaTool } from './control.js';2import { editFileTool, listDirTool, readArtifactTool, readFileTool, searchTool, writeFileTool } from './files.js';3import { gitCommitTool, gitDiffTool, gitPushTool, gitStatusTool } from './git.js';4import { shellTool } from './shell.js';5import type { Tool } from './types.js';67export * from './types.js';8export * from './control.js';9export { PathError, protectedReason, resolveInWorkspace, ROOT_INSTRUCTION_FILES, SHELL_RC_FILES, type ResolvedPath } from './paths.js';10export { opt, strictSchemaProblems, toStrictJsonSchema } from './schema.js';11export { unifiedDiff } from './diff.js';12export {13  artifactNameFor, finalizeToolOutput, loadArtifact, sha256Hex, OUTPUT_HEAD_CHARS, OUTPUT_OFFLOAD_THRESHOLD, OUTPUT_TAIL_CHARS, type FinalizedOutput,14} from './output.js';15export {16  buildSeatbeltProfile, cleanupRunTmp, runSandboxed, runTmpDir, sandboxEnv, secretReadDenies, SandboxUnavailableError, DEFAULT_SANDBOX_EXEC,17  SHELL_OUTPUT_CAP_BYTES, type SandboxRunOptions, type SandboxRunResult, type SeatbeltSpec,18} from './sandbox.js';19export { GIT_SAFE_CONFIG, runGit, type GitResult } from './git.js';20export { MAX_FILE_BYTES } from './files.js';21export { SHELL_DEFAULT_TIMEOUT_SEC, SHELL_MAX_TIMEOUT_SEC } from './shell.js';2223// Each tool is typed on its own input; the registry erases it (the engine validates with `tool.input` first).24// eslint-disable-next-line @typescript-eslint/no-explicit-any -- heterogeneous registry: Tool<I> is invariant in I25const t = (tool: Tool<any>): Tool => tool as Tool;2627/** Registry, in the deterministic order the engine should present tools to the model. */28export const TOOLS: Record<string, Tool> = {29  read_file: t(readFileTool),30  list_dir: t(listDirTool),31  search: t(searchTool),32  edit_file: t(editFileTool),33  write_file: t(writeFileTool),34  shell: t(shellTool),35  git_status: t(gitStatusTool),36  git_diff: t(gitDiffTool),37  git_commit: t(gitCommitTool),38  git_push: t(gitPushTool),39  ask_owner: t(askOwnerTool),40  propose_criteria: t(proposeCriteriaTool),41  update_criteria: t(updateCriteriaTool),42  read_artifact: t(readArtifactTool),43  finish: t(finishTool),44};45export const TOOL_NAMES: readonly string[] = Object.keys(TOOLS);46
Files main
Menu

Theme