Documentation
¶
Index ¶
- Constants
- func Apply(patch *FilePatch) error
- func AutoCommit(path, toolName, description string) error
- func AutoFix(report *ValidationReport) []string
- func BackupFile(path string) (string, error)
- func DecodeFileContent(data []byte) (string, error)
- func DetectCommitType(diff string, files []string) string
- func DetectCredentials(content string) string
- func DetectScope(files []string) string
- func FormatAuditSummary() string
- func FormatComplianceResult(result *ComplianceResult) string
- func FormatConflicts(cf *ConflictFile) string
- func FormatForGitHub(pr *PRDescription) string
- func FormatLintResult(result *LintResult) string
- func FormatRefactoringResult(result *RefactoringResult) string
- func FormatReport(report *ValidationReport) string
- func FormatResult(path string, result *ReadResult) string
- func FormatResults(results []*BackgroundResult) string
- func GenerateBody(commitCtx CommitContext) string
- func GeneratePRBody(commits []CommitSummary, diffStat string, files []string) string
- func GenerateRuleBased(commitCtx CommitContext) string
- func GenerateSubject(commitType string, files []string, diff string) string
- func GenerateTestPlan(commits []CommitSummary, files []string) string
- func GenerateTitle(commits []CommitSummary) string
- func IsBinaryContent(data []byte) bool
- func IsBinaryData(data []byte) bool
- func IsDestructiveCommand(command string) bool
- func IsGitRepo() bool
- func IsPlanMode() bool
- func IsPowerShellAvailable() bool
- func IsSafeGitCommit(command string) bool
- func IsSensitivePath(path string) string
- func IsSuspicious(command string) bool
- func LastAutoCommitHash() string
- func ListBackups(path string) []string
- func LoadDescription(toolName, fallback string) string
- func RecordFileDelete(toolName, path string)
- func RecordFileEdit(toolName, path string, linesChanged int)
- func RecordFileWrite(toolName, path string, bytes int)
- func ResolveAdditive(ours, theirs, base string) string
- func ResolveImports(ours, theirs string) string
- func ResolvePath(path string) (string, error)
- func ResolveTrivial(ours, theirs string) (string, bool)
- func RestoreFromBackup(path string) error
- func RevertLastAutoCommit() error
- func SegmentCommand(cmd string) []string
- func ShouldBlock(report *ValidationReport) bool
- func StripBOM(data []byte) []byte
- func SuggestLabels(commits []CommitSummary) []string
- func SuggestReviewers(files []string, gitBlame map[string]string) []string
- func ToolTimeout(toolName string) time.Duration
- func TruncateOutput(s string) string
- func UndoLatest() (string, error)
- func ValidateMessage(msg string) []string
- func ValidateToolInput(toolName string, input json.RawMessage) error
- func WithContainerExecutor(ctx context.Context, ce ContainerExecutor) context.Context
- func WithToolContext(ctx context.Context, tc *ToolContext) context.Context
- type APICompatTool
- type APISnapshot
- type AgentTool
- type AgenticFetchTool
- func (AgenticFetchTool) Aliases() []string
- func (AgenticFetchTool) Description() string
- func (AgenticFetchTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
- func (AgenticFetchTool) Name() string
- func (AgenticFetchTool) Parameters() map[string]interface{}
- func (AgenticFetchTool) RiskLevel() string
- type AliasedTool
- type AskUserQuestionTool
- type AuditEntry
- type AuditLog
- type AutoImportTool
- type AutoImporter
- func (ai *AutoImporter) ApplyFixes(code string, fixes []ImportFix) string
- func (ai *AutoImporter) DetectMissing(code string) []string
- func (ai *AutoImporter) FormatFixes(fixes []ImportFix) string
- func (ai *AutoImporter) RegisterPackage(symbol, importPath string)
- func (ai *AutoImporter) Resolve(code string) []ImportFix
- func (ai *AutoImporter) SuggestImport(symbol string) []string
- type BackgroundAgent
- type BackgroundAgentManager
- func (m *BackgroundAgentManager) CollectResults() []*BackgroundResult
- func (m *BackgroundAgentManager) Elapsed(id string) time.Duration
- func (m *BackgroundAgentManager) GetResult(id string) (*BackgroundResult, bool)
- func (m *BackgroundAgentManager) HasPending() bool
- func (m *BackgroundAgentManager) IsRunning(id string) bool
- func (m *BackgroundAgentManager) Spawn(ctx context.Context, id, prompt string, ...)
- func (m *BackgroundAgentManager) WaitForResults(timeout time.Duration) []*BackgroundResult
- type BackgroundResult
- type BashTool
- type BreakingChange
- type BriefTool
- type ChangeValidator
- type CheckResult
- type CodeGenTool
- type CodeGenerator
- func (cg *CodeGenerator) Generate(templateName string, vars map[string]string) (string, error)
- func (cg *CodeGenerator) ListTemplates(language string) []*CodeTemplate
- func (cg *CodeGenerator) Preview(templateName string, vars map[string]string) string
- func (cg *CodeGenerator) Register(template *CodeTemplate)
- func (cg *CodeGenerator) SuggestTemplate(description string) string
- type CodeSearchResult
- type CodeSearchTool
- func (CodeSearchTool) Aliases() []string
- func (CodeSearchTool) Description() string
- func (CodeSearchTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
- func (CodeSearchTool) Name() string
- func (CodeSearchTool) Parameters() map[string]interface{}
- func (CodeSearchTool) RiskLevel() string
- type CodeTemplate
- type CommitContext
- type CommitLinter
- type CommitMessageGenerator
- type CommitRule
- type CommitSummary
- type CompatChecker
- func (c *CompatChecker) Compare(old, new *APISnapshot) []BreakingChange
- func (c *CompatChecker) FormatChanges(changes []BreakingChange) string
- func (c *CompatChecker) IsBackwardCompatible(old, new *APISnapshot) bool
- func (c *CompatChecker) LoadSnapshot(path string) (*APISnapshot, error)
- func (c *CompatChecker) SaveSnapshot(snapshot *APISnapshot, path string) error
- func (c *CompatChecker) Snapshot(path string) (*APISnapshot, error)
- type ComplianceResult
- type ConfigTool
- type Conflict
- type ConflictFile
- type ConflictResolver
- type ConflictResolverTool
- type ConstSig
- type ContainerExecutor
- type CoreMemoryAppendTool
- type CoreMemoryReplaceTool
- type CoreMemoryRethinkTool
- type CronCreateTool
- type CronDeleteTool
- type CronJob
- type CronListTool
- type CronScheduler
- type DebuggerTool
- type DevEnvTool
- type DiagnosticsTool
- type DownloadTool
- type EnterPlanModeTool
- type EnterWorktreeTool
- type ExitPlanModeTool
- type ExitWorktreeTool
- type FieldSig
- type FileEditTool
- type FileOperation
- type FilePatch
- type FileReadTool
- type FileTemplate
- type FileWriteTool
- func (FileWriteTool) Aliases() []string
- func (FileWriteTool) Description() string
- func (FileWriteTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
- func (FileWriteTool) Name() string
- func (FileWriteTool) Parameters() map[string]interface{}
- func (FileWriteTool) RiskLevel() string
- type Fixture
- type FixtureGenerator
- func (fg *FixtureGenerator) FormatFixture(fixture *Fixture) string
- func (fg *FixtureGenerator) GenerateEdgeCases(typeDef string) []FixtureVariant
- func (fg *FixtureGenerator) GenerateForType(typeDef string) *Fixture
- func (fg *FixtureGenerator) GenerateGoCode(fixture *Fixture) string
- func (fg *FixtureGenerator) GenerateTableTestData(funcSignature string) string
- type FixtureGeneratorTool
- func (t *FixtureGeneratorTool) Description() string
- func (t *FixtureGeneratorTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
- func (t *FixtureGeneratorTool) Generator() *FixtureGenerator
- func (t *FixtureGeneratorTool) Name() string
- func (t *FixtureGeneratorTool) Parameters() map[string]interface{}
- type FixtureVariant
- type FuncSig
- type GitConfig
- type GitHookInstaller
- func (g *GitHookInstaller) BackupExisting(hookName string) error
- func (g *GitHookInstaller) FormatStatus() string
- func (g *GitHookInstaller) GeneratePostCommit() string
- func (g *GitHookInstaller) GeneratePreCommit() string
- func (g *GitHookInstaller) GeneratePrePush() string
- func (g *GitHookInstaller) GeneratePrepareCommitMsg() string
- func (g *GitHookInstaller) Install(hook HookConfig) error
- func (g *GitHookInstaller) InstallAll() error
- func (g *GitHookInstaller) IsInstalled(hookName string) bool
- func (g *GitHookInstaller) ListInstalled() []string
- func (g *GitHookInstaller) Uninstall(hookName string) error
- type GitState
- type GitTool
- func (GitTool) Aliases() []string
- func (GitTool) Description() string
- func (t GitTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
- func (GitTool) Name() string
- func (GitTool) Parameters() map[string]interface{}
- func (t GitTool) RequiresApproval(input json.RawMessage) bool
- func (GitTool) RiskLevel() string
- type GlobTool
- type GrepTool
- type HookConfig
- type Hunk
- type ImportEntry
- type ImportFix
- type ImportGroup
- type ImportOrganizer
- func (o *ImportOrganizer) AddMissingImport(content, importPath string) (string, error)
- func (o *ImportOrganizer) DetectUnusedGo(content string, imports []ImportEntry) []ImportEntry
- func (o *ImportOrganizer) DetectUnusedTS(content string, imports []ImportEntry) []ImportEntry
- func (o *ImportOrganizer) FormatImportBlock(groups []ImportGroup, language string) string
- func (o *ImportOrganizer) OrganizeGo(content string) (string, error)
- func (o *ImportOrganizer) OrganizeTypeScript(content string) (string, error)
- func (o *ImportOrganizer) RemoveImport(content, importPath string) (string, error)
- type ImportOrganizerTool
- type InterfaceSig
- type LSPTool
- type LSTool
- type LintResult
- type ListMcpResourcesTool
- type MCPAuthManager
- type MCPAuthState
- type MCPTool
- type McpAuthTool
- type MultiAgentTool
- type MultiEditTool
- func (MultiEditTool) Aliases() []string
- func (MultiEditTool) Description() string
- func (MultiEditTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
- func (MultiEditTool) Name() string
- func (MultiEditTool) Parameters() map[string]interface{}
- func (MultiEditTool) RiskLevel() string
- type NotebookEditTool
- type OutlineTool
- type PRDescription
- type PRGenerator
- type PRGeneratorTool
- type ParsedCommit
- type PatchParser
- type PatchTool
- type PathProtector
- type PathResolver
- func (pr *PathResolver) FindByName(filename string) []string
- func (pr *PathResolver) FindByPattern(glob string) []string
- func (pr *PathResolver) FindSimilar(path string, limit int) []string
- func (pr *PathResolver) FormatResult(result *ResolveResult) string
- func (pr *PathResolver) IsValidPath(path string) bool
- func (pr *PathResolver) NormalizePath(path string) string
- func (pr *PathResolver) Resolve(path string) *ResolveResult
- func (pr *PathResolver) ScanProject() error
- func (pr *PathResolver) SuggestCorrection(wrongPath string) string
- type PowerShellTool
- func (PowerShellTool) Aliases() []string
- func (PowerShellTool) Description() string
- func (PowerShellTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
- func (PowerShellTool) Name() string
- func (PowerShellTool) Parameters() map[string]interface{}
- func (PowerShellTool) RiskLevel() string
- type ReadMcpResourceTool
- type ReadResult
- type ReadSection
- type RefactorTool
- type Refactorer
- func (r *Refactorer) AddErrorCheck(file string, line int) (*RefactoringResult, error)
- func (r *Refactorer) ConvertToTableTest(file, testFunc string) (*RefactoringResult, error)
- func (r *Refactorer) ExtractFunction(file string, startLine, endLine int, newName string) (*RefactoringResult, error)
- func (r *Refactorer) ExtractVariable(file string, line int, expr, varName string) (*RefactoringResult, error)
- func (r *Refactorer) InlineVariable(file string, line int) (*RefactoringResult, error)
- func (r *Refactorer) RemoveUnusedParams(file, funcName string) (*RefactoringResult, error)
- func (r *Refactorer) RenameSymbol(file, oldName, newName string) (*RefactoringResult, error)
- func (r *Refactorer) SortImports(file string) (*RefactoringResult, error)
- func (r *Refactorer) WrapWithContext(file string, line int, context string) (*RefactoringResult, error)
- type RefactoringResult
- type Registry
- type ResolveResult
- type RiskLevelProvider
- type SkillTool
- type SleepTool
- type SmartCreateTool
- type SmartCreator
- func (sc *SmartCreator) DetectCopyright(projectDir string) string
- func (sc *SmartCreator) DetectImportStyle(projectDir string, language string) string
- func (sc *SmartCreator) GenerateBoilerplate(path string) string
- func (sc *SmartCreator) GenerateInterface(functions []string) string
- func (sc *SmartCreator) GenerateTestFile(sourcePath string) string
- func (sc *SmartCreator) InferPackageName(filePath string) string
- type SmartReader
- func (sr *SmartReader) EstimateFileTokens(path string) (int, error)
- func (sr *SmartReader) ReadFile(path string, query string) (*ReadResult, error)
- func (sr *SmartReader) ReadRange(path string, startLine, endLine int) (*ReadResult, error)
- func (sr *SmartReader) ReadRelevant(path, query string, budget int) (*ReadResult, error)
- func (sr *SmartReader) ReadSymbolsOnly(path string) (*ReadResult, error)
- func (sr *SmartReader) ReadWithBudget(path string, budget int) (*ReadResult, error)
- type SmartReaderTool
- func (SmartReaderTool) Aliases() []string
- func (SmartReaderTool) Description() string
- func (t *SmartReaderTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
- func (SmartReaderTool) Name() string
- func (SmartReaderTool) Parameters() map[string]interface{}
- func (SmartReaderTool) RiskLevel() string
- type Task
- type TaskCreateTool
- type TaskDependency
- type TaskGetTool
- type TaskListTool
- type TaskOutputTool
- type TaskStatus
- type TaskStopTool
- type TaskStore
- func (s *TaskStore) CompactCompleted() string
- func (s *TaskStore) Create(subject, description, activeForm string, metadata map[string]any) *Task
- func (s *TaskStore) CreateWithParent(subject, description, activeForm string, metadata map[string]any, ...) *Task
- func (s *TaskStore) Delete(id string) bool
- func (s *TaskStore) Get(id string) (*Task, bool)
- func (s *TaskStore) GetReadyWork() []*Task
- func (s *TaskStore) List() []*Task
- func (s *TaskStore) Reset()
- func (s *TaskStore) Update(id string, fn func(*Task)) bool
- type TaskUpdateTool
- type TemplateVar
- type Ticket
- type TicketCompliance
- type TicketComplianceTool
- type TodoWriteTool
- type Tool
- type ToolContext
- type ToolSearchTool
- func (ToolSearchTool) Aliases() []string
- func (ToolSearchTool) Description() string
- func (ToolSearchTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
- func (ToolSearchTool) Name() string
- func (ToolSearchTool) Parameters() map[string]interface{}
- func (ToolSearchTool) RiskLevel() string
- type Transaction
- func (tx *Transaction) Add(op FileOperation) error
- func (tx *Transaction) AddCreate(path string, content []byte, mode os.FileMode) error
- func (tx *Transaction) AddDelete(path string) error
- func (tx *Transaction) AddModify(path string, newContent []byte) error
- func (tx *Transaction) AddRename(oldPath, newPath string) error
- func (tx *Transaction) Commit() error
- func (tx *Transaction) DryRun() []string
- func (tx *Transaction) FilesDiff() string
- func (tx *Transaction) Rollback() error
- func (tx *Transaction) Summary() string
- func (tx *Transaction) Validate() []string
- type TransactionTool
- func (TransactionTool) Aliases() []string
- func (TransactionTool) Description() string
- func (TransactionTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
- func (TransactionTool) Name() string
- func (TransactionTool) Parameters() map[string]interface{}
- func (TransactionTool) RiskLevel() string
- type TypeSig
- type ValidationCheck
- type ValidationReport
- type VarSig
- type VerifyPlanExecutionTool
- func (VerifyPlanExecutionTool) Aliases() []string
- func (VerifyPlanExecutionTool) Description() string
- func (VerifyPlanExecutionTool) Execute(_ context.Context, input json.RawMessage) (string, error)
- func (VerifyPlanExecutionTool) Name() string
- func (VerifyPlanExecutionTool) Parameters() map[string]interface{}
- type WebFetchTool
- type WebSearchTool
- func (WebSearchTool) Aliases() []string
- func (WebSearchTool) Description() string
- func (WebSearchTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
- func (WebSearchTool) Name() string
- func (WebSearchTool) Parameters() map[string]interface{}
- func (WebSearchTool) RiskLevel() string
- type WorkflowDef
- type WorkflowStep
- type WorkflowTool
Constants ¶
const BinaryIndicator = "[binary file — not displaying]"
BinaryIndicator is the message returned instead of binary content.
Variables ¶
This section is empty.
Functions ¶
func AutoCommit ¶
AutoCommit stages the file at path and creates a commit with a conventional hawk message. toolName and description are used to build the commit message.
func AutoFix ¶ added in v0.2.0
func AutoFix(report *ValidationReport) []string
AutoFix attempts to automatically fix issues found in the validation report. It returns a list of descriptions of fixes that were applied or suggested.
func BackupFile ¶
BackupFile creates a backup of a file before modification. Returns the backup path, or empty string if backup wasn't needed.
func DecodeFileContent ¶
DecodeFileContent reads file bytes and returns clean UTF-8 string. Strips BOM, detects binary (null bytes in first 8KB), handles common encodings.
func DetectCommitType ¶ added in v0.2.0
DetectCommitType analyzes the diff and file list to determine the commit type.
func DetectCredentials ¶
DetectCredentials returns a non-empty description of the first credential pattern found in content, or "" if none match.
func DetectScope ¶ added in v0.2.0
DetectScope determines the scope from file paths.
func FormatAuditSummary ¶
func FormatAuditSummary() string
FormatAuditSummary produces a human-readable summary of today's modifications.
func FormatComplianceResult ¶ added in v0.2.0
func FormatComplianceResult(result *ComplianceResult) string
FormatComplianceResult formats a ComplianceResult into a human-readable report.
func FormatConflicts ¶ added in v0.2.0
func FormatConflicts(cf *ConflictFile) string
FormatConflicts produces a human-readable summary of conflicts and their resolution status.
func FormatForGitHub ¶ added in v0.2.0
func FormatForGitHub(pr *PRDescription) string
FormatForGitHub formats the PRDescription into a string ready for gh pr create.
func FormatLintResult ¶ added in v0.2.0
func FormatLintResult(result *LintResult) string
FormatLintResult produces a human-readable lint report.
func FormatRefactoringResult ¶ added in v0.2.0
func FormatRefactoringResult(result *RefactoringResult) string
FormatRefactoringResult renders a RefactoringResult as a human-readable string.
func FormatReport ¶ added in v0.2.0
func FormatReport(report *ValidationReport) string
FormatReport produces a human-readable formatted report of validation results.
func FormatResult ¶ added in v0.2.0
func FormatResult(path string, result *ReadResult) string
FormatResult formats a ReadResult for display.
func FormatResults ¶ added in v0.2.0
func FormatResults(results []*BackgroundResult) string
FormatResults returns a human-readable summary of background results suitable for injection into the conversation.
func GenerateBody ¶ added in v0.2.0
func GenerateBody(commitCtx CommitContext) string
GenerateBody creates a commit body with file change descriptions.
func GeneratePRBody ¶ added in v0.2.0
func GeneratePRBody(commits []CommitSummary, diffStat string, files []string) string
GeneratePRBody creates a detailed PR body with sections.
func GenerateRuleBased ¶ added in v0.2.0
func GenerateRuleBased(commitCtx CommitContext) string
GenerateRuleBased produces a conventional commit message using heuristics.
func GenerateSubject ¶ added in v0.2.0
GenerateSubject creates a commit subject line based on the type, files, and diff.
func GenerateTestPlan ¶ added in v0.2.0
func GenerateTestPlan(commits []CommitSummary, files []string) string
GenerateTestPlan creates a test plan based on the commits and files changed.
func GenerateTitle ¶ added in v0.2.0
func GenerateTitle(commits []CommitSummary) string
GenerateTitle creates a PR title from the commit summaries.
func IsBinaryContent ¶
IsBinaryContent returns true when data contains at least one null byte in the first binaryProbeSize bytes, indicating likely binary content.
func IsBinaryData ¶
IsBinaryData checks for null bytes in the first 8KB.
func IsDestructiveCommand ¶
IsDestructiveCommand returns true when the command contains a pattern that is considered destructive. This is a superset intended for pre-execution gating — it catches broader patterns than bash.go's dangerousSubstrings (e.g. "rm -rf ." is already caught; this also catches bare "rm -rf").
func IsGitRepo ¶
func IsGitRepo() bool
IsGitRepo returns true when the current working directory is inside a git repository.
func IsPowerShellAvailable ¶
func IsPowerShellAvailable() bool
IsPowerShellAvailable returns whether a PowerShell runtime is available.
func IsSafeGitCommit ¶
IsSafeGitCommit checks if a git commit command is safe. Git commits with simple quoted messages are considered safe.
func IsSensitivePath ¶
IsSensitivePath returns a non-empty reason when path points to a file that should be blocked for security. The path is cleaned and, when possible, resolved through symlinks before checking.
func IsSuspicious ¶
IsSuspicious returns true if the command needs a permission prompt. This is fail-closed: anything we can't confidently classify as safe gets flagged.
func LastAutoCommitHash ¶
func LastAutoCommitHash() string
LastAutoCommitHash returns the hash of the most recent hawk auto-commit, or "" if none has been made in this process.
func ListBackups ¶
ListBackups returns all backups for a file.
func LoadDescription ¶ added in v0.2.0
LoadDescription loads a tool description from embedded markdown. Falls back to the provided default if no file exists.
func RecordFileDelete ¶
func RecordFileDelete(toolName, path string)
RecordFileDelete logs a file deletion.
func RecordFileEdit ¶
RecordFileEdit logs a file edit operation.
func RecordFileWrite ¶
RecordFileWrite logs a file write/create operation.
func ResolveAdditive ¶ added in v0.2.0
ResolveAdditive resolves conflicts where both sides add new lines relative to base.
func ResolveImports ¶ added in v0.2.0
ResolveImports merges import blocks, deduplicates, and sorts.
func ResolvePath ¶
ResolvePath returns the absolute, symlink-resolved path. If resolution fails it falls back to filepath.Abs.
func ResolveTrivial ¶ added in v0.2.0
ResolveTrivial handles trivial conflict cases. Returns the resolution and true if resolved, empty string and false otherwise.
func RestoreFromBackup ¶
RestoreFromBackup restores the most recent backup of a file.
func RevertLastAutoCommit ¶
func RevertLastAutoCommit() error
RevertLastAutoCommit reverts the most recent auto-commit, but only if the current HEAD message starts with "hawk:".
func SegmentCommand ¶
SegmentCommand splits a command string on &&, ||, ;, and | (respecting quotes) into individual segments for independent analysis.
func ShouldBlock ¶ added in v0.2.0
func ShouldBlock(report *ValidationReport) bool
ShouldBlock returns true if the validation report indicates the commit should not proceed due to required check failures.
func SuggestLabels ¶ added in v0.2.0
func SuggestLabels(commits []CommitSummary) []string
SuggestLabels suggests PR labels based on commit types.
func SuggestReviewers ¶ added in v0.2.0
SuggestReviewers suggests reviewers based on git blame data for changed files.
func ToolTimeout ¶
ToolTimeout returns the default timeout for a given tool name. Callers may still override with an explicit per-invocation value.
func TruncateOutput ¶
TruncateOutput trims output to maxOutputBytes and appends an indicator.
func UndoLatest ¶
UndoLatest finds the most recent backup across all files and restores it. Returns the restored file path for display, or an error if no backups exist.
func ValidateMessage ¶ added in v0.2.0
ValidateMessage checks a commit message for conventional commit compliance and returns a list of warnings.
func ValidateToolInput ¶
func ValidateToolInput(toolName string, input json.RawMessage) error
ValidateToolInput checks that required parameters are present and have correct types. It inspects the tool's Parameters() schema for "required" fields and verifies they exist in the provided input JSON.
func WithContainerExecutor ¶
func WithContainerExecutor(ctx context.Context, ce ContainerExecutor) context.Context
WithContainerExecutor injects a container executor into the context. When present, BashTool routes all commands through it instead of local shell.
func WithToolContext ¶
func WithToolContext(ctx context.Context, tc *ToolContext) context.Context
WithToolContext attaches a ToolContext to a context.
Types ¶
type APICompatTool ¶ added in v0.2.0
type APICompatTool struct {
// contains filtered or unexported fields
}
APICompatTool implements the Tool interface for API compatibility checking.
func NewAPICompatTool ¶ added in v0.2.0
func NewAPICompatTool() *APICompatTool
NewAPICompatTool creates a new APICompatTool.
func (*APICompatTool) Description ¶ added in v0.2.0
func (t *APICompatTool) Description() string
func (*APICompatTool) Execute ¶ added in v0.2.0
func (t *APICompatTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (*APICompatTool) Name ¶ added in v0.2.0
func (t *APICompatTool) Name() string
func (*APICompatTool) Parameters ¶ added in v0.2.0
func (t *APICompatTool) Parameters() map[string]interface{}
type APISnapshot ¶ added in v0.2.0
type APISnapshot struct {
Package string `json:"package"`
Functions []FuncSig `json:"functions"`
Types []TypeSig `json:"types"`
Interfaces []InterfaceSig `json:"interfaces"`
Constants []ConstSig `json:"constants"`
Variables []VarSig `json:"variables"`
GeneratedAt time.Time `json:"generated_at"`
}
APISnapshot captures the full public API surface of a Go package.
type AgentTool ¶
type AgentTool struct{}
func (AgentTool) Description ¶
func (AgentTool) Parameters ¶
type AgenticFetchTool ¶
type AgenticFetchTool struct{}
AgenticFetchTool spawns a sub-agent to fetch, process, and summarize web content.
func (AgenticFetchTool) Aliases ¶
func (AgenticFetchTool) Aliases() []string
func (AgenticFetchTool) Description ¶
func (AgenticFetchTool) Description() string
func (AgenticFetchTool) Execute ¶
func (AgenticFetchTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (AgenticFetchTool) Name ¶
func (AgenticFetchTool) Name() string
func (AgenticFetchTool) Parameters ¶
func (AgenticFetchTool) Parameters() map[string]interface{}
func (AgenticFetchTool) RiskLevel ¶
func (AgenticFetchTool) RiskLevel() string
type AliasedTool ¶
type AliasedTool interface {
Aliases() []string
}
AliasedTool can be implemented by tools that need backward-compatible wire names.
type AskUserQuestionTool ¶
type AskUserQuestionTool struct{}
func (AskUserQuestionTool) Aliases ¶
func (AskUserQuestionTool) Aliases() []string
func (AskUserQuestionTool) Description ¶
func (AskUserQuestionTool) Description() string
func (AskUserQuestionTool) Execute ¶
func (AskUserQuestionTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (AskUserQuestionTool) Name ¶
func (AskUserQuestionTool) Name() string
func (AskUserQuestionTool) Parameters ¶
func (AskUserQuestionTool) Parameters() map[string]interface{}
type AuditEntry ¶
type AuditEntry struct {
Timestamp time.Time `json:"timestamp"`
Tool string `json:"tool"`
Action string `json:"action"` // "create", "edit", "write", "delete"
Path string `json:"path"`
BackupRef string `json:"backup_ref,omitempty"`
LinesChanged int `json:"lines_changed,omitempty"`
BytesWritten int `json:"bytes_written,omitempty"`
}
AuditEntry records a file modification event.
func TodayEntries ¶
func TodayEntries() ([]AuditEntry, error)
TodayEntries reads today's audit entries.
type AuditLog ¶
type AuditLog struct {
// contains filtered or unexported fields
}
AuditLog tracks all file modifications for accountability.
func (*AuditLog) Record ¶
func (a *AuditLog) Record(entry AuditEntry)
Record logs a file modification event.
type AutoImportTool ¶ added in v0.2.0
type AutoImportTool struct {
// contains filtered or unexported fields
}
AutoImportTool resolves and adds missing imports in Go source files.
func NewAutoImportTool ¶ added in v0.2.0
func NewAutoImportTool() *AutoImportTool
NewAutoImportTool creates an AutoImportTool with a pre-configured AutoImporter.
func (AutoImportTool) Description ¶ added in v0.2.0
func (AutoImportTool) Description() string
func (AutoImportTool) Execute ¶ added in v0.2.0
func (t AutoImportTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (AutoImportTool) Name ¶ added in v0.2.0
func (AutoImportTool) Name() string
func (AutoImportTool) Parameters ¶ added in v0.2.0
func (AutoImportTool) Parameters() map[string]interface{}
type AutoImporter ¶ added in v0.2.0
type AutoImporter struct {
KnownPackages map[string]string // symbol (package name) → import path
// contains filtered or unexported fields
}
AutoImporter resolves missing imports in Go source code by matching package-qualified symbols against a database of known packages.
func NewAutoImporter ¶ added in v0.2.0
func NewAutoImporter() *AutoImporter
NewAutoImporter creates a new AutoImporter pre-loaded with 200+ common Go packages.
func (*AutoImporter) ApplyFixes ¶ added in v0.2.0
func (ai *AutoImporter) ApplyFixes(code string, fixes []ImportFix) string
ApplyFixes adds missing imports to the code, creating or extending the import block as needed. Imports are grouped: stdlib, external, internal.
func (*AutoImporter) DetectMissing ¶ added in v0.2.0
func (ai *AutoImporter) DetectMissing(code string) []string
DetectMissing finds package-qualified calls in code that don't have a corresponding import statement (e.g., fmt.Println without "fmt" imported).
func (*AutoImporter) FormatFixes ¶ added in v0.2.0
func (ai *AutoImporter) FormatFixes(fixes []ImportFix) string
FormatFixes renders a human-readable summary of the import fixes.
func (*AutoImporter) RegisterPackage ¶ added in v0.2.0
func (ai *AutoImporter) RegisterPackage(symbol, importPath string)
RegisterPackage adds a new symbol-to-import-path mapping.
func (*AutoImporter) Resolve ¶ added in v0.2.0
func (ai *AutoImporter) Resolve(code string) []ImportFix
Resolve finds undefined symbols in the given code and returns the import fixes needed to resolve them.
func (*AutoImporter) SuggestImport ¶ added in v0.2.0
func (ai *AutoImporter) SuggestImport(symbol string) []string
SuggestImport returns possible import paths for a given symbol (package name).
type BackgroundAgent ¶ added in v0.2.0
BackgroundAgent represents a running background sub-agent.
type BackgroundAgentManager ¶ added in v0.2.0
type BackgroundAgentManager struct {
// contains filtered or unexported fields
}
BackgroundAgentManager tracks background sub-agent goroutines so the engine can wait for them and collect their results after the main LLM turn completes. Inspired by herm's bgAgentState pattern.
func NewBackgroundAgentManager ¶ added in v0.2.0
func NewBackgroundAgentManager() *BackgroundAgentManager
NewBackgroundAgentManager creates a new manager.
func (*BackgroundAgentManager) CollectResults ¶ added in v0.2.0
func (m *BackgroundAgentManager) CollectResults() []*BackgroundResult
CollectResults returns and clears all completed results.
func (*BackgroundAgentManager) Elapsed ¶ added in v0.2.0
func (m *BackgroundAgentManager) Elapsed(id string) time.Duration
Elapsed returns the elapsed time for a running agent.
func (*BackgroundAgentManager) GetResult ¶ added in v0.2.0
func (m *BackgroundAgentManager) GetResult(id string) (*BackgroundResult, bool)
GetResult returns the result for a specific agent ID, if completed.
func (*BackgroundAgentManager) HasPending ¶ added in v0.2.0
func (m *BackgroundAgentManager) HasPending() bool
HasPending returns true if any background agents are still running.
func (*BackgroundAgentManager) IsRunning ¶ added in v0.2.0
func (m *BackgroundAgentManager) IsRunning(id string) bool
IsRunning returns true if the agent with the given ID is still running.
func (*BackgroundAgentManager) Spawn ¶ added in v0.2.0
func (m *BackgroundAgentManager) Spawn(ctx context.Context, id, prompt string, spawnFn func(ctx context.Context, prompt string) (string, error))
Spawn starts a background sub-agent goroutine. The agent runs the spawnFn asynchronously and stores the result when complete.
func (*BackgroundAgentManager) WaitForResults ¶ added in v0.2.0
func (m *BackgroundAgentManager) WaitForResults(timeout time.Duration) []*BackgroundResult
WaitForResults blocks until all pending agents complete or the timeout is reached. Returns all collected results (including any that completed before this call).
type BackgroundResult ¶ added in v0.2.0
BackgroundResult holds the outcome of a completed background sub-agent.
type BashTool ¶
type BashTool struct{}
func (BashTool) Description ¶
func (BashTool) Parameters ¶
type BreakingChange ¶ added in v0.2.0
type BreakingChange struct {
Type string `json:"type"` // "removed", "signature_changed", "type_changed", "field_removed", "method_added"
Symbol string `json:"symbol"`
Old string `json:"old"`
New string `json:"new"`
Severity string `json:"severity"` // "breaking", "deprecated", "compatible"
}
BreakingChange describes a single incompatible change between two API snapshots.
type BriefTool ¶
type BriefTool struct{}
BriefTool (SendUserMessage) sends a message the user will read. Text outside this tool is visible in the detail view; the answer lives here.
func (BriefTool) Description ¶
func (BriefTool) Parameters ¶
type ChangeValidator ¶ added in v0.2.0
type ChangeValidator struct {
Checks []ValidationCheck
StopOnFirst bool
// contains filtered or unexported fields
}
ChangeValidator runs a battery of validation checks before allowing changes to be committed. It supports parallel execution and configurable check sets.
func NewChangeValidator ¶ added in v0.2.0
func NewChangeValidator() *ChangeValidator
NewChangeValidator creates a ChangeValidator with built-in checks covering syntax, format, lint, test, security, and size categories.
func (*ChangeValidator) AddCheck ¶ added in v0.2.0
func (cv *ChangeValidator) AddCheck(check ValidationCheck)
AddCheck registers a new validation check to the validator.
func (*ChangeValidator) Validate ¶ added in v0.2.0
func (cv *ChangeValidator) Validate(changedFiles []string) *ValidationReport
Validate runs all configured checks against the given changed files, executing independent checks in parallel where possible. Returns a full validation report.
func (*ChangeValidator) ValidateQuick ¶ added in v0.2.0
func (cv *ChangeValidator) ValidateQuick(changedFiles []string) *ValidationReport
ValidateQuick runs only fast checks (syntax and format) for rapid feedback.
type CheckResult ¶ added in v0.2.0
type CheckResult struct {
Passed bool
CheckName string
Message string
Details []string
Duration time.Duration
Severity string // "error", "warning", "info"
}
CheckResult holds the outcome of a single validation check.
type CodeGenTool ¶ added in v0.2.0
type CodeGenTool struct {
// contains filtered or unexported fields
}
CodeGenTool implements the Tool interface for code generation.
func NewCodeGenTool ¶ added in v0.2.0
func NewCodeGenTool() *CodeGenTool
NewCodeGenTool creates a new CodeGenTool.
func (*CodeGenTool) Description ¶ added in v0.2.0
func (t *CodeGenTool) Description() string
func (*CodeGenTool) Execute ¶ added in v0.2.0
func (t *CodeGenTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (*CodeGenTool) Generator ¶ added in v0.2.0
func (t *CodeGenTool) Generator() *CodeGenerator
Generator returns the underlying CodeGenerator for direct use.
func (*CodeGenTool) Name ¶ added in v0.2.0
func (t *CodeGenTool) Name() string
func (*CodeGenTool) Parameters ¶ added in v0.2.0
func (t *CodeGenTool) Parameters() map[string]interface{}
type CodeGenerator ¶ added in v0.2.0
type CodeGenerator struct {
Templates map[string]*CodeTemplate
Language string
// contains filtered or unexported fields
}
CodeGenerator manages code generation templates and renders them on demand.
func NewCodeGenerator ¶ added in v0.2.0
func NewCodeGenerator() *CodeGenerator
NewCodeGenerator creates a CodeGenerator pre-loaded with built-in templates.
func (*CodeGenerator) Generate ¶ added in v0.2.0
Generate renders a template with the given variables.
func (*CodeGenerator) ListTemplates ¶ added in v0.2.0
func (cg *CodeGenerator) ListTemplates(language string) []*CodeTemplate
ListTemplates returns templates filtered by language. If language is empty, all templates are returned.
func (*CodeGenerator) Preview ¶ added in v0.2.0
func (cg *CodeGenerator) Preview(templateName string, vars map[string]string) string
Preview shows what would be generated without performing full rendering. It shows the template with variable placeholders highlighted.
func (*CodeGenerator) Register ¶ added in v0.2.0
func (cg *CodeGenerator) Register(template *CodeTemplate)
Register adds a custom template to the generator.
func (*CodeGenerator) SuggestTemplate ¶ added in v0.2.0
func (cg *CodeGenerator) SuggestTemplate(description string) string
SuggestTemplate suggests the best template given a natural language description.
type CodeSearchResult ¶
type CodeSearchResult struct {
Path string
StartLine int
EndLine int
Content string
Symbol string
Language string
Score float64
}
CodeSearchResult is returned by CodeSearchFn.
type CodeSearchTool ¶
type CodeSearchTool struct{}
CodeSearchTool searches the codebase semantically.
func (CodeSearchTool) Aliases ¶
func (CodeSearchTool) Aliases() []string
func (CodeSearchTool) Description ¶
func (CodeSearchTool) Description() string
func (CodeSearchTool) Execute ¶
func (CodeSearchTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (CodeSearchTool) Name ¶
func (CodeSearchTool) Name() string
func (CodeSearchTool) Parameters ¶
func (CodeSearchTool) Parameters() map[string]interface{}
func (CodeSearchTool) RiskLevel ¶
func (CodeSearchTool) RiskLevel() string
type CodeTemplate ¶ added in v0.2.0
type CodeTemplate struct {
Name string
Description string
Language string
Template string
Variables []TemplateVar
Output string
}
CodeTemplate defines a single code generation template.
type CommitContext ¶ added in v0.2.0
type CommitContext struct {
// Diff is the git diff content.
Diff string
// FilesChanged lists the paths of files that changed.
FilesChanged []string
// ConversationGoal describes what the user asked for.
ConversationGoal string
// PreviousCommits holds the last 3 commit messages for style matching.
PreviousCommits []string
}
CommitContext holds all the information needed to generate a commit message.
type CommitLinter ¶ added in v0.2.0
type CommitLinter struct {
Rules []CommitRule
// contains filtered or unexported fields
}
CommitLinter validates commit messages against configurable rules following the commitlint specification.
func NewCommitLinter ¶ added in v0.2.0
func NewCommitLinter() *CommitLinter
NewCommitLinter creates a CommitLinter with default conventional commit rules.
func (*CommitLinter) FixMessage ¶ added in v0.2.0
func (cl *CommitLinter) FixMessage(message string) string
FixMessage auto-fixes common issues in a commit message.
func (*CommitLinter) Lint ¶ added in v0.2.0
func (cl *CommitLinter) Lint(message string) *LintResult
Lint validates a commit message against the configured rules.
func (*CommitLinter) LoadFromProject ¶ added in v0.2.0
func (cl *CommitLinter) LoadFromProject(projectDir string) error
LoadFromProject reads commitlint configuration from a project directory. It looks for commitlint.config.js, .commitlintrc.json, and .commitlintrc.yml.
type CommitMessageGenerator ¶ added in v0.2.0
type CommitMessageGenerator struct {
// ChatFn calls the LLM with a prompt and returns the response.
ChatFn func(ctx context.Context, prompt string) (string, error)
// FallbackToConventional uses rule-based generation if LLM fails.
FallbackToConventional bool
// MaxLength is the maximum subject line length (default 72).
MaxLength int
// IncludeBody controls whether a body is appended (default true).
IncludeBody bool
// Style is one of "conventional", "descriptive", "concise".
Style string
}
CommitMessageGenerator produces high-quality commit messages using an LLM with a rule-based fallback.
func (*CommitMessageGenerator) GenerateMessage ¶ added in v0.2.0
func (g *CommitMessageGenerator) GenerateMessage(ctx context.Context, commitCtx CommitContext) (string, error)
GenerateMessage uses the LLM to produce a commit message, falling back to rule-based generation if the LLM is unavailable or fails.
type CommitRule ¶ added in v0.2.0
type CommitRule struct {
Name string
Level string // "error", "warning", "disabled"
Applicable string // "always", "never"
Value interface{} // rule-specific value (int, string, []string, etc.)
}
CommitRule represents a single linting rule.
type CommitSummary ¶ added in v0.2.0
type CommitSummary struct {
Hash string
Message string
Type string
Scope string
Files []string
Author string
}
CommitSummary represents a parsed commit from git log output.
func ParseCommits ¶ added in v0.2.0
func ParseCommits(gitLog string) []CommitSummary
ParseCommits parses git log output into CommitSummary slices. Expected format per line: hash|author|message
type CompatChecker ¶ added in v0.2.0
type CompatChecker struct {
// contains filtered or unexported fields
}
CompatChecker performs API compatibility analysis between snapshots.
func NewCompatChecker ¶ added in v0.2.0
func NewCompatChecker() *CompatChecker
NewCompatChecker creates a new CompatChecker instance.
func (*CompatChecker) Compare ¶ added in v0.2.0
func (c *CompatChecker) Compare(old, new *APISnapshot) []BreakingChange
Compare detects breaking changes between two API snapshots.
func (*CompatChecker) FormatChanges ¶ added in v0.2.0
func (c *CompatChecker) FormatChanges(changes []BreakingChange) string
FormatChanges produces a human-readable report of breaking changes.
func (*CompatChecker) IsBackwardCompatible ¶ added in v0.2.0
func (c *CompatChecker) IsBackwardCompatible(old, new *APISnapshot) bool
IsBackwardCompatible returns true if no breaking changes exist between old and new.
func (*CompatChecker) LoadSnapshot ¶ added in v0.2.0
func (c *CompatChecker) LoadSnapshot(path string) (*APISnapshot, error)
LoadSnapshot deserializes an APISnapshot from a JSON file.
func (*CompatChecker) SaveSnapshot ¶ added in v0.2.0
func (c *CompatChecker) SaveSnapshot(snapshot *APISnapshot, path string) error
SaveSnapshot serializes an APISnapshot to a JSON file.
func (*CompatChecker) Snapshot ¶ added in v0.2.0
func (c *CompatChecker) Snapshot(path string) (*APISnapshot, error)
Snapshot parses the Go package at the given directory path and extracts the public API.
type ComplianceResult ¶ added in v0.2.0
type ComplianceResult struct {
Ticket *Ticket
Satisfied []string
Unsatisfied []string
Score float64
Suggestions []string
}
ComplianceResult holds the outcome of checking a PR against a ticket.
type ConfigTool ¶
type ConfigTool struct{}
ConfigTool reads/writes hawk settings.
func (ConfigTool) Aliases ¶
func (ConfigTool) Aliases() []string
func (ConfigTool) Description ¶
func (ConfigTool) Description() string
func (ConfigTool) Execute ¶
func (ConfigTool) Execute(_ context.Context, input json.RawMessage) (string, error)
func (ConfigTool) Name ¶
func (ConfigTool) Name() string
func (ConfigTool) Parameters ¶
func (ConfigTool) Parameters() map[string]interface{}
type Conflict ¶ added in v0.2.0
type Conflict struct {
File string
StartLine int
EndLine int
OursContent string
TheirsContent string
BaseContent string
Resolved bool
Resolution string
}
Conflict represents a single conflict region within a file.
type ConflictFile ¶ added in v0.2.0
ConflictFile represents a file containing one or more merge conflicts.
type ConflictResolver ¶ added in v0.2.0
type ConflictResolver struct {
Strategy string // "ours", "theirs", "smart"
// contains filtered or unexported fields
}
ConflictResolver provides intelligent git merge conflict resolution.
func NewConflictResolver ¶ added in v0.2.0
func NewConflictResolver() *ConflictResolver
NewConflictResolver creates a ConflictResolver with the "smart" strategy.
func (*ConflictResolver) ApplyResolution ¶ added in v0.2.0
func (cr *ConflictResolver) ApplyResolution(cf *ConflictFile) error
ApplyResolution writes the resolved content back to the file.
func (*ConflictResolver) AutoResolve ¶ added in v0.2.0
func (cr *ConflictResolver) AutoResolve(cf *ConflictFile) (string, error)
AutoResolve attempts to automatically resolve all conflicts in a ConflictFile.
func (*ConflictResolver) ParseConflicts ¶ added in v0.2.0
func (cr *ConflictResolver) ParseConflicts(path string) (*ConflictFile, error)
ParseConflicts reads a file and extracts all conflict regions.
type ConflictResolverTool ¶ added in v0.2.0
type ConflictResolverTool struct{}
ConflictResolverTool resolves git merge conflicts in files.
func (ConflictResolverTool) Description ¶ added in v0.2.0
func (ConflictResolverTool) Description() string
func (ConflictResolverTool) Execute ¶ added in v0.2.0
func (ConflictResolverTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (ConflictResolverTool) Name ¶ added in v0.2.0
func (ConflictResolverTool) Name() string
func (ConflictResolverTool) Parameters ¶ added in v0.2.0
func (ConflictResolverTool) Parameters() map[string]interface{}
type ConstSig ¶ added in v0.2.0
type ConstSig struct {
Name string `json:"name"`
Type string `json:"type"`
Exported bool `json:"exported"`
}
ConstSig represents a constant declaration.
type ContainerExecutor ¶
type ContainerExecutor interface {
Exec(ctx context.Context, command string, timeout time.Duration) (string, error)
Running() bool
}
ContainerExecutor allows BashTool to route commands through a container instead of local execution. When set via context, all commands run inside the container (Docker-first mode, like herm).
func ContainerExecutorFromContext ¶
func ContainerExecutorFromContext(ctx context.Context) ContainerExecutor
ContainerExecutorFromContext extracts the container executor, if any.
type CoreMemoryAppendTool ¶
type CoreMemoryAppendTool struct{}
CoreMemoryAppendTool appends content to a memory block identified by label.
func (CoreMemoryAppendTool) Description ¶
func (CoreMemoryAppendTool) Description() string
func (CoreMemoryAppendTool) Execute ¶
func (CoreMemoryAppendTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (CoreMemoryAppendTool) Name ¶
func (CoreMemoryAppendTool) Name() string
func (CoreMemoryAppendTool) Parameters ¶
func (CoreMemoryAppendTool) Parameters() map[string]interface{}
type CoreMemoryReplaceTool ¶
type CoreMemoryReplaceTool struct{}
CoreMemoryReplaceTool finds and replaces content within a memory block.
func (CoreMemoryReplaceTool) Description ¶
func (CoreMemoryReplaceTool) Description() string
func (CoreMemoryReplaceTool) Execute ¶
func (CoreMemoryReplaceTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (CoreMemoryReplaceTool) Name ¶
func (CoreMemoryReplaceTool) Name() string
func (CoreMemoryReplaceTool) Parameters ¶
func (CoreMemoryReplaceTool) Parameters() map[string]interface{}
type CoreMemoryRethinkTool ¶
type CoreMemoryRethinkTool struct{}
CoreMemoryRethinkTool completely rewrites a memory block.
func (CoreMemoryRethinkTool) Description ¶
func (CoreMemoryRethinkTool) Description() string
func (CoreMemoryRethinkTool) Execute ¶
func (CoreMemoryRethinkTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (CoreMemoryRethinkTool) Name ¶
func (CoreMemoryRethinkTool) Name() string
func (CoreMemoryRethinkTool) Parameters ¶
func (CoreMemoryRethinkTool) Parameters() map[string]interface{}
type CronCreateTool ¶
type CronCreateTool struct{}
CronCreateTool schedules a prompt to run on a cron schedule.
func (CronCreateTool) Aliases ¶
func (CronCreateTool) Aliases() []string
func (CronCreateTool) Description ¶
func (CronCreateTool) Description() string
func (CronCreateTool) Execute ¶
func (CronCreateTool) Execute(_ context.Context, input json.RawMessage) (string, error)
func (CronCreateTool) Name ¶
func (CronCreateTool) Name() string
func (CronCreateTool) Parameters ¶
func (CronCreateTool) Parameters() map[string]interface{}
type CronDeleteTool ¶
type CronDeleteTool struct{}
CronDeleteTool removes a scheduled job.
func (CronDeleteTool) Aliases ¶
func (CronDeleteTool) Aliases() []string
func (CronDeleteTool) Description ¶
func (CronDeleteTool) Description() string
func (CronDeleteTool) Execute ¶
func (CronDeleteTool) Execute(_ context.Context, input json.RawMessage) (string, error)
func (CronDeleteTool) Name ¶
func (CronDeleteTool) Name() string
func (CronDeleteTool) Parameters ¶
func (CronDeleteTool) Parameters() map[string]interface{}
type CronJob ¶
type CronJob struct {
ID string `json:"id"`
Schedule string `json:"schedule"`
Prompt string `json:"prompt"`
Recurring bool `json:"recurring"`
Durable bool `json:"durable"`
CreatedAt time.Time `json:"createdAt"`
LastRun time.Time `json:"lastRun,omitempty"`
NextRun time.Time `json:"nextRun"`
Runs int `json:"runs"`
// contains filtered or unexported fields
}
CronJob represents a scheduled recurring or one-shot task.
type CronListTool ¶
type CronListTool struct{}
CronListTool lists all scheduled jobs.
func (CronListTool) Aliases ¶
func (CronListTool) Aliases() []string
func (CronListTool) Description ¶
func (CronListTool) Description() string
func (CronListTool) Execute ¶
func (CronListTool) Execute(_ context.Context, _ json.RawMessage) (string, error)
func (CronListTool) Name ¶
func (CronListTool) Name() string
func (CronListTool) Parameters ¶
func (CronListTool) Parameters() map[string]interface{}
type CronScheduler ¶
type CronScheduler struct {
// contains filtered or unexported fields
}
CronScheduler manages scheduled tasks.
func GetCronScheduler ¶
func GetCronScheduler() *CronScheduler
func (*CronScheduler) Create ¶
func (s *CronScheduler) Create(schedule, prompt string, recurring, durable bool) (*CronJob, error)
func (*CronScheduler) Delete ¶
func (s *CronScheduler) Delete(id string) bool
func (*CronScheduler) List ¶
func (s *CronScheduler) List() []*CronJob
type DebuggerTool ¶
type DebuggerTool struct{}
DebuggerTool provides debugging capabilities via language-specific debuggers (Delve for Go, pdb for Python, node --inspect for Node).
func (DebuggerTool) Aliases ¶
func (DebuggerTool) Aliases() []string
func (DebuggerTool) Description ¶
func (DebuggerTool) Description() string
func (DebuggerTool) Execute ¶
func (DebuggerTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (DebuggerTool) Name ¶
func (DebuggerTool) Name() string
func (DebuggerTool) Parameters ¶
func (DebuggerTool) Parameters() map[string]interface{}
type DevEnvTool ¶
type DevEnvTool struct {
// Manager is the DevEnvManager used for building and caching images.
// If nil, the build action will return an error.
Manager *sandbox.DevEnvManager
}
DevEnvTool allows the agent to read, write, and build Docker environments dynamically. When the agent needs a tool that isn't installed, it can modify the Dockerfile and rebuild the container on-the-fly (inspired by herm).
func (DevEnvTool) Aliases ¶
func (DevEnvTool) Aliases() []string
func (DevEnvTool) Description ¶
func (DevEnvTool) Description() string
func (DevEnvTool) Execute ¶
func (t DevEnvTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (DevEnvTool) Name ¶
func (DevEnvTool) Name() string
func (DevEnvTool) Parameters ¶
func (DevEnvTool) Parameters() map[string]interface{}
func (DevEnvTool) RiskLevel ¶
func (DevEnvTool) RiskLevel() string
type DiagnosticsTool ¶
type DiagnosticsTool struct{}
DiagnosticsTool runs lint/type/compile diagnostics for a file or project.
func (DiagnosticsTool) Aliases ¶
func (DiagnosticsTool) Aliases() []string
func (DiagnosticsTool) Description ¶
func (DiagnosticsTool) Description() string
func (DiagnosticsTool) Execute ¶
func (DiagnosticsTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (DiagnosticsTool) Name ¶
func (DiagnosticsTool) Name() string
func (DiagnosticsTool) Parameters ¶
func (DiagnosticsTool) Parameters() map[string]interface{}
type DownloadTool ¶
type DownloadTool struct{}
DownloadTool downloads a file from a URL to a local path.
func (DownloadTool) Aliases ¶
func (DownloadTool) Aliases() []string
func (DownloadTool) Description ¶
func (DownloadTool) Description() string
func (DownloadTool) Execute ¶
func (DownloadTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (DownloadTool) Name ¶
func (DownloadTool) Name() string
func (DownloadTool) Parameters ¶
func (DownloadTool) Parameters() map[string]interface{}
func (DownloadTool) RiskLevel ¶
func (DownloadTool) RiskLevel() string
type EnterPlanModeTool ¶
type EnterPlanModeTool struct{}
func (EnterPlanModeTool) Aliases ¶
func (EnterPlanModeTool) Aliases() []string
func (EnterPlanModeTool) Description ¶
func (EnterPlanModeTool) Description() string
func (EnterPlanModeTool) Execute ¶
func (EnterPlanModeTool) Execute(_ context.Context, _ json.RawMessage) (string, error)
func (EnterPlanModeTool) Name ¶
func (EnterPlanModeTool) Name() string
func (EnterPlanModeTool) Parameters ¶
func (EnterPlanModeTool) Parameters() map[string]interface{}
type EnterWorktreeTool ¶
type EnterWorktreeTool struct{}
EnterWorktreeTool switches to a git worktree.
func (EnterWorktreeTool) Aliases ¶
func (EnterWorktreeTool) Aliases() []string
func (EnterWorktreeTool) Description ¶
func (EnterWorktreeTool) Description() string
func (EnterWorktreeTool) Execute ¶
func (EnterWorktreeTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (EnterWorktreeTool) Name ¶
func (EnterWorktreeTool) Name() string
func (EnterWorktreeTool) Parameters ¶
func (EnterWorktreeTool) Parameters() map[string]interface{}
type ExitPlanModeTool ¶
type ExitPlanModeTool struct{}
func (ExitPlanModeTool) Aliases ¶
func (ExitPlanModeTool) Aliases() []string
func (ExitPlanModeTool) Description ¶
func (ExitPlanModeTool) Description() string
func (ExitPlanModeTool) Execute ¶
func (ExitPlanModeTool) Execute(_ context.Context, _ json.RawMessage) (string, error)
func (ExitPlanModeTool) Name ¶
func (ExitPlanModeTool) Name() string
func (ExitPlanModeTool) Parameters ¶
func (ExitPlanModeTool) Parameters() map[string]interface{}
type ExitWorktreeTool ¶
type ExitWorktreeTool struct{}
ExitWorktreeTool returns to the main repository from a worktree.
func (ExitWorktreeTool) Aliases ¶
func (ExitWorktreeTool) Aliases() []string
func (ExitWorktreeTool) Description ¶
func (ExitWorktreeTool) Description() string
func (ExitWorktreeTool) Execute ¶
func (ExitWorktreeTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (ExitWorktreeTool) Name ¶
func (ExitWorktreeTool) Name() string
func (ExitWorktreeTool) Parameters ¶
func (ExitWorktreeTool) Parameters() map[string]interface{}
type FieldSig ¶ added in v0.2.0
type FieldSig struct {
Name string `json:"name"`
Type string `json:"type"`
Tag string `json:"tag"`
Exported bool `json:"exported"`
}
FieldSig represents a struct field.
type FileEditTool ¶
type FileEditTool struct{}
func (FileEditTool) Aliases ¶
func (FileEditTool) Aliases() []string
func (FileEditTool) Description ¶
func (FileEditTool) Description() string
func (FileEditTool) Execute ¶
func (FileEditTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (FileEditTool) Name ¶
func (FileEditTool) Name() string
func (FileEditTool) Parameters ¶
func (FileEditTool) Parameters() map[string]interface{}
func (FileEditTool) RiskLevel ¶
func (FileEditTool) RiskLevel() string
type FileOperation ¶ added in v0.2.0
type FileOperation struct {
Type string // "create", "modify", "delete", "rename"
Path string // target path
OldPath string // source path for rename operations
Content []byte // new content (for create/modify)
OldContent []byte // original content (captured before modification)
Mode os.FileMode // file permissions
}
FileOperation represents a single file operation within a transaction.
type FilePatch ¶ added in v0.2.0
type FilePatch struct {
Path string
Hunks []Hunk
IsNew bool // true if creating a new file
IsDelete bool // true if deleting file
}
FilePatch represents modifications to a single file.
type FileReadTool ¶
type FileReadTool struct{}
func (FileReadTool) Aliases ¶
func (FileReadTool) Aliases() []string
func (FileReadTool) Description ¶
func (FileReadTool) Description() string
func (FileReadTool) Execute ¶
func (FileReadTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (FileReadTool) Name ¶
func (FileReadTool) Name() string
func (FileReadTool) Parameters ¶
func (FileReadTool) Parameters() map[string]interface{}
func (FileReadTool) RiskLevel ¶
func (FileReadTool) RiskLevel() string
type FileTemplate ¶ added in v0.2.0
type FileTemplate struct {
Extension string
Language string
Template string
RequiresPackageName bool
}
FileTemplate describes the boilerplate template for a given file type.
type FileWriteTool ¶
type FileWriteTool struct{}
func (FileWriteTool) Aliases ¶
func (FileWriteTool) Aliases() []string
func (FileWriteTool) Description ¶
func (FileWriteTool) Description() string
func (FileWriteTool) Execute ¶
func (FileWriteTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (FileWriteTool) Name ¶
func (FileWriteTool) Name() string
func (FileWriteTool) Parameters ¶
func (FileWriteTool) Parameters() map[string]interface{}
func (FileWriteTool) RiskLevel ¶
func (FileWriteTool) RiskLevel() string
type Fixture ¶ added in v0.2.0
type Fixture struct {
TypeName string
Fields map[string]interface{}
Variants []FixtureVariant
}
Fixture represents generated test data for a type.
type FixtureGenerator ¶ added in v0.2.0
type FixtureGenerator struct {
// contains filtered or unexported fields
}
FixtureGenerator generates test fixtures from type definitions.
func NewFixtureGenerator ¶ added in v0.2.0
func NewFixtureGenerator() *FixtureGenerator
NewFixtureGenerator creates a new FixtureGenerator.
func (*FixtureGenerator) FormatFixture ¶ added in v0.2.0
func (fg *FixtureGenerator) FormatFixture(fixture *Fixture) string
FormatFixture formats a fixture into a human-readable string representation.
func (*FixtureGenerator) GenerateEdgeCases ¶ added in v0.2.0
func (fg *FixtureGenerator) GenerateEdgeCases(typeDef string) []FixtureVariant
GenerateEdgeCases generates edge case fixture variants for a type definition.
func (*FixtureGenerator) GenerateForType ¶ added in v0.2.0
func (fg *FixtureGenerator) GenerateForType(typeDef string) *Fixture
GenerateForType parses a type definition and generates a Fixture with default values and variants.
func (*FixtureGenerator) GenerateGoCode ¶ added in v0.2.0
func (fg *FixtureGenerator) GenerateGoCode(fixture *Fixture) string
GenerateGoCode produces Go code that creates the fixture as a function.
func (*FixtureGenerator) GenerateTableTestData ¶ added in v0.2.0
func (fg *FixtureGenerator) GenerateTableTestData(funcSignature string) string
GenerateTableTestData generates a table-driven test structure for a function signature.
type FixtureGeneratorTool ¶ added in v0.2.0
type FixtureGeneratorTool struct {
// contains filtered or unexported fields
}
FixtureGeneratorTool implements the Tool interface for test fixture generation.
func NewFixtureGeneratorTool ¶ added in v0.2.0
func NewFixtureGeneratorTool() *FixtureGeneratorTool
NewFixtureGeneratorTool creates a new FixtureGeneratorTool.
func (*FixtureGeneratorTool) Description ¶ added in v0.2.0
func (t *FixtureGeneratorTool) Description() string
func (*FixtureGeneratorTool) Execute ¶ added in v0.2.0
func (t *FixtureGeneratorTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (*FixtureGeneratorTool) Generator ¶ added in v0.2.0
func (t *FixtureGeneratorTool) Generator() *FixtureGenerator
Generator returns the underlying FixtureGenerator for direct use.
func (*FixtureGeneratorTool) Name ¶ added in v0.2.0
func (t *FixtureGeneratorTool) Name() string
func (*FixtureGeneratorTool) Parameters ¶ added in v0.2.0
func (t *FixtureGeneratorTool) Parameters() map[string]interface{}
type FixtureVariant ¶ added in v0.2.0
FixtureVariant represents a named variant of a fixture with specific values.
type FuncSig ¶ added in v0.2.0
type FuncSig struct {
Name string `json:"name"`
Receiver string `json:"receiver"`
Params []string `json:"params"`
Returns []string `json:"returns"`
Exported bool `json:"exported"`
}
FuncSig represents a function or method signature.
type GitConfig ¶
GitConfig represents a parsed .git/config file. Keys are stored as "section.key" or "section.subsection.key".
func ParseGitConfig ¶
ParseGitConfig reads and parses a git config file without spawning git. It handles: [section], [section "subsection"], key = value, and comments.
type GitHookInstaller ¶ added in v0.2.0
type GitHookInstaller struct {
HooksDir string
Installed map[string]bool
// contains filtered or unexported fields
}
GitHookInstaller manages installation and lifecycle of git hooks for hawk agent integration.
func NewGitHookInstaller ¶ added in v0.2.0
func NewGitHookInstaller(projectDir string) *GitHookInstaller
NewGitHookInstaller creates a new installer rooted at the given project directory. It resolves .git/hooks relative to projectDir and probes which hooks are already installed.
func (*GitHookInstaller) BackupExisting ¶ added in v0.2.0
func (g *GitHookInstaller) BackupExisting(hookName string) error
BackupExisting saves the existing hook as .bak before overwriting.
func (*GitHookInstaller) FormatStatus ¶ added in v0.2.0
func (g *GitHookInstaller) FormatStatus() string
FormatStatus returns a human-readable summary of installed/missing hooks.
func (*GitHookInstaller) GeneratePostCommit ¶ added in v0.2.0
func (g *GitHookInstaller) GeneratePostCommit() string
GeneratePostCommit returns a shell script that notifies the hawk trace system for session capture after a commit.
func (*GitHookInstaller) GeneratePreCommit ¶ added in v0.2.0
func (g *GitHookInstaller) GeneratePreCommit() string
GeneratePreCommit returns a shell script that runs format check, lint, and secret scan before allowing a commit.
func (*GitHookInstaller) GeneratePrePush ¶ added in v0.2.0
func (g *GitHookInstaller) GeneratePrePush() string
GeneratePrePush returns a shell script that runs the test suite before allowing a push.
func (*GitHookInstaller) GeneratePrepareCommitMsg ¶ added in v0.2.0
func (g *GitHookInstaller) GeneratePrepareCommitMsg() string
GeneratePrepareCommitMsg returns a shell script that invokes hawk to generate an AI-powered commit message.
func (*GitHookInstaller) Install ¶ added in v0.2.0
func (g *GitHookInstaller) Install(hook HookConfig) error
Install writes a hook script to .git/hooks/, makes it executable, and preserves any existing hook by chaining it.
func (*GitHookInstaller) InstallAll ¶ added in v0.2.0
func (g *GitHookInstaller) InstallAll() error
InstallAll installs the default set of hawk hooks for agent integration.
func (*GitHookInstaller) IsInstalled ¶ added in v0.2.0
func (g *GitHookInstaller) IsInstalled(hookName string) bool
IsInstalled reports whether a hawk-managed hook is installed for the given name.
func (*GitHookInstaller) ListInstalled ¶ added in v0.2.0
func (g *GitHookInstaller) ListInstalled() []string
ListInstalled returns the names of all currently installed hawk-managed hooks.
func (*GitHookInstaller) Uninstall ¶ added in v0.2.0
func (g *GitHookInstaller) Uninstall(hookName string) error
Uninstall removes a hawk-managed hook. If a backup exists it is restored.
type GitState ¶
GitState holds parsed git repository state read directly from the filesystem without spawning a git subprocess.
func ReadGitState ¶
ReadGitState reads .git/HEAD and refs to determine the current branch and commit hash without spawning a git subprocess.
type GitTool ¶ added in v0.2.0
type GitTool struct {
// WorkDir is the git repository working directory. If empty, uses CWD.
WorkDir string
}
GitTool executes structured git commands. Inspired by herm's GitTool.
func (GitTool) Description ¶ added in v0.2.0
func (GitTool) Parameters ¶ added in v0.2.0
func (GitTool) RequiresApproval ¶ added in v0.2.0
func (t GitTool) RequiresApproval(input json.RawMessage) bool
type GlobTool ¶
type GlobTool struct{}
func (GlobTool) Description ¶
func (GlobTool) Parameters ¶
type GrepTool ¶
type GrepTool struct{}
func (GrepTool) Description ¶
func (GrepTool) Parameters ¶
type HookConfig ¶ added in v0.2.0
type HookConfig struct {
Name string // "pre-commit", "post-commit", "prepare-commit-msg", "pre-push"
Script string
Enabled bool
Priority int
}
HookConfig describes a single git hook to install.
type Hunk ¶ added in v0.2.0
type Hunk struct {
ContextBefore string // line(s) before the change for anchoring
ContextAfter string // line(s) after the change for anchoring
OldLines []string // lines to remove (without the leading "- ")
NewLines []string // lines to add (without the leading "+ ")
}
Hunk represents a single change within a file, anchored by context lines.
type ImportEntry ¶ added in v0.2.0
ImportEntry represents a single import statement.
type ImportFix ¶ added in v0.2.0
type ImportFix struct {
File string // file path where the fix applies
Package string // package name (e.g., "fmt")
Path string // import path (e.g., "fmt" or "encoding/json")
Symbol string // the full qualified symbol reference (e.g., "fmt.Println")
Line int // approximate line number where the symbol is used
}
ImportFix describes a single missing import that should be added.
type ImportGroup ¶ added in v0.2.0
type ImportGroup struct {
Name string
Imports []ImportEntry
Comment string
}
ImportGroup represents a logical grouping of imports.
type ImportOrganizer ¶ added in v0.2.0
ImportOrganizer organizes and manages imports for Go and TypeScript files.
func NewImportOrganizer ¶ added in v0.2.0
func NewImportOrganizer(language string) *ImportOrganizer
NewImportOrganizer creates a new ImportOrganizer for the given language.
func (*ImportOrganizer) AddMissingImport ¶ added in v0.2.0
func (o *ImportOrganizer) AddMissingImport(content, importPath string) (string, error)
AddMissingImport adds an import to the correct group in the content.
func (*ImportOrganizer) DetectUnusedGo ¶ added in v0.2.0
func (o *ImportOrganizer) DetectUnusedGo(content string, imports []ImportEntry) []ImportEntry
DetectUnusedGo checks each import against the file body to find unused ones.
func (*ImportOrganizer) DetectUnusedTS ¶ added in v0.2.0
func (o *ImportOrganizer) DetectUnusedTS(content string, imports []ImportEntry) []ImportEntry
DetectUnusedTS checks each TypeScript import for usage in the file.
func (*ImportOrganizer) FormatImportBlock ¶ added in v0.2.0
func (o *ImportOrganizer) FormatImportBlock(groups []ImportGroup, language string) string
FormatImportBlock renders properly formatted import block for the language.
func (*ImportOrganizer) OrganizeGo ¶ added in v0.2.0
func (o *ImportOrganizer) OrganizeGo(content string) (string, error)
OrganizeGo parses and reorganizes imports in Go source code.
func (*ImportOrganizer) OrganizeTypeScript ¶ added in v0.2.0
func (o *ImportOrganizer) OrganizeTypeScript(content string) (string, error)
OrganizeTypeScript parses and reorganizes imports in TypeScript source code.
func (*ImportOrganizer) RemoveImport ¶ added in v0.2.0
func (o *ImportOrganizer) RemoveImport(content, importPath string) (string, error)
RemoveImport removes a specific import from the content.
type ImportOrganizerTool ¶ added in v0.2.0
type ImportOrganizerTool struct{}
ImportOrganizerTool organizes imports in Go and TypeScript files.
func (ImportOrganizerTool) Description ¶ added in v0.2.0
func (ImportOrganizerTool) Description() string
func (ImportOrganizerTool) Execute ¶ added in v0.2.0
func (ImportOrganizerTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (ImportOrganizerTool) Name ¶ added in v0.2.0
func (ImportOrganizerTool) Name() string
func (ImportOrganizerTool) Parameters ¶ added in v0.2.0
func (ImportOrganizerTool) Parameters() map[string]interface{}
type InterfaceSig ¶ added in v0.2.0
type InterfaceSig struct {
Name string `json:"name"`
Methods []FuncSig `json:"methods"`
Exported bool `json:"exported"`
}
InterfaceSig represents an interface declaration.
type LSPTool ¶
type LSPTool struct{}
func (LSPTool) Description ¶
func (LSPTool) Parameters ¶
type LSTool ¶
type LSTool struct{}
func (LSTool) Description ¶
func (LSTool) Parameters ¶
type LintResult ¶ added in v0.2.0
LintResult contains the outcome of linting a commit message.
type ListMcpResourcesTool ¶
type ListMcpResourcesTool struct{}
func (ListMcpResourcesTool) Aliases ¶
func (ListMcpResourcesTool) Aliases() []string
func (ListMcpResourcesTool) Description ¶
func (ListMcpResourcesTool) Description() string
func (ListMcpResourcesTool) Execute ¶
func (ListMcpResourcesTool) Execute(_ context.Context, input json.RawMessage) (string, error)
func (ListMcpResourcesTool) Name ¶
func (ListMcpResourcesTool) Name() string
func (ListMcpResourcesTool) Parameters ¶
func (ListMcpResourcesTool) Parameters() map[string]interface{}
type MCPAuthManager ¶
type MCPAuthManager struct {
// contains filtered or unexported fields
}
MCPAuthManager handles OAuth flows for MCP servers.
func GetMCPAuthManager ¶
func GetMCPAuthManager() *MCPAuthManager
func (*MCPAuthManager) GetState ¶
func (m *MCPAuthManager) GetState(serverName string) (*MCPAuthState, bool)
func (*MCPAuthManager) SetAuthenticated ¶
func (m *MCPAuthManager) SetAuthenticated(serverName string)
func (*MCPAuthManager) StartAuth ¶
func (m *MCPAuthManager) StartAuth(serverName, serverURL string) (*MCPAuthState, error)
type MCPAuthState ¶
type MCPAuthState struct {
ServerName string `json:"serverName"`
AuthURL string `json:"authUrl,omitempty"`
Status string `json:"status"` // "pending", "authenticated", "error"
Error string `json:"error,omitempty"`
}
MCPAuthState tracks OAuth state for an MCP server.
type MCPTool ¶
type MCPTool struct {
// contains filtered or unexported fields
}
MCPTool wraps an MCP server tool as a hawk tool.
func (*MCPTool) Description ¶
func (*MCPTool) Parameters ¶
type McpAuthTool ¶
type McpAuthTool struct{}
McpAuthTool initiates OAuth authentication for an MCP server.
func (McpAuthTool) Aliases ¶
func (McpAuthTool) Aliases() []string
func (McpAuthTool) Description ¶
func (McpAuthTool) Description() string
func (McpAuthTool) Execute ¶
func (McpAuthTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (McpAuthTool) Name ¶
func (McpAuthTool) Name() string
func (McpAuthTool) Parameters ¶
func (McpAuthTool) Parameters() map[string]interface{}
type MultiAgentTool ¶
type MultiAgentTool struct{}
MultiAgentTool spawns multiple sub-agents in parallel.
func (MultiAgentTool) Aliases ¶
func (MultiAgentTool) Aliases() []string
func (MultiAgentTool) Description ¶
func (MultiAgentTool) Description() string
func (MultiAgentTool) Execute ¶
func (MultiAgentTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (MultiAgentTool) Name ¶
func (MultiAgentTool) Name() string
func (MultiAgentTool) Parameters ¶
func (MultiAgentTool) Parameters() map[string]interface{}
type MultiEditTool ¶
type MultiEditTool struct{}
MultiEditTool applies multiple edits to a single file in one call.
func (MultiEditTool) Aliases ¶
func (MultiEditTool) Aliases() []string
func (MultiEditTool) Description ¶
func (MultiEditTool) Description() string
func (MultiEditTool) Execute ¶
func (MultiEditTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (MultiEditTool) Name ¶
func (MultiEditTool) Name() string
func (MultiEditTool) Parameters ¶
func (MultiEditTool) Parameters() map[string]interface{}
func (MultiEditTool) RiskLevel ¶
func (MultiEditTool) RiskLevel() string
type NotebookEditTool ¶
type NotebookEditTool struct{}
NotebookEditTool edits Jupyter notebook cells.
func (NotebookEditTool) Aliases ¶
func (NotebookEditTool) Aliases() []string
func (NotebookEditTool) Description ¶
func (NotebookEditTool) Description() string
func (NotebookEditTool) Execute ¶
func (NotebookEditTool) Execute(_ context.Context, input json.RawMessage) (string, error)
func (NotebookEditTool) Name ¶
func (NotebookEditTool) Name() string
func (NotebookEditTool) Parameters ¶
func (NotebookEditTool) Parameters() map[string]interface{}
type OutlineTool ¶ added in v0.2.0
type OutlineTool struct{}
OutlineTool extracts function/type/class signatures from files without reading the full content. Returns a compact outline with line numbers. Inspired by herm's outline tool.
func (OutlineTool) Aliases ¶ added in v0.2.0
func (OutlineTool) Aliases() []string
func (OutlineTool) Description ¶ added in v0.2.0
func (OutlineTool) Description() string
func (OutlineTool) Execute ¶ added in v0.2.0
func (OutlineTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (OutlineTool) Name ¶ added in v0.2.0
func (OutlineTool) Name() string
func (OutlineTool) Parameters ¶ added in v0.2.0
func (OutlineTool) Parameters() map[string]interface{}
func (OutlineTool) RiskLevel ¶ added in v0.2.0
func (OutlineTool) RiskLevel() string
type PRDescription ¶ added in v0.2.0
type PRDescription struct {
Title string
Body string
Labels []string
Reviewers []string
Type string // "feat", "fix", "refactor", "docs", "chore"
Breaking bool
TestPlan string
}
PRDescription holds all the components of a generated pull request description.
type PRGenerator ¶ added in v0.2.0
type PRGenerator struct {
ProjectDir string
// contains filtered or unexported fields
}
PRGenerator generates pull request descriptions from commit history and diffs.
func NewPRGenerator ¶ added in v0.2.0
func NewPRGenerator(projectDir string) *PRGenerator
NewPRGenerator creates a new PRGenerator for the given project directory.
func (*PRGenerator) Generate ¶ added in v0.2.0
func (g *PRGenerator) Generate(baseBranch string) (*PRDescription, error)
Generate produces a PRDescription by analyzing commits since baseBranch.
type PRGeneratorTool ¶ added in v0.2.0
type PRGeneratorTool struct {
ProjectDir string
}
PRGeneratorTool implements the Tool interface for PR description generation.
func (*PRGeneratorTool) Description ¶ added in v0.2.0
func (t *PRGeneratorTool) Description() string
Description returns the tool description.
func (*PRGeneratorTool) Execute ¶ added in v0.2.0
func (t *PRGeneratorTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
Execute runs the PR generator tool.
func (*PRGeneratorTool) Name ¶ added in v0.2.0
func (t *PRGeneratorTool) Name() string
Name returns the tool name.
func (*PRGeneratorTool) Parameters ¶ added in v0.2.0
func (t *PRGeneratorTool) Parameters() map[string]interface{}
Parameters returns the JSON schema for the tool's input.
type ParsedCommit ¶ added in v0.2.0
ParsedCommit holds the parsed components of a conventional commit message.
func ParseCommitMessage ¶ added in v0.2.0
func ParseCommitMessage(msg string) *ParsedCommit
ParseCommitMessage parses a commit message into its constituent parts.
type PatchParser ¶ added in v0.2.0
type PatchParser struct {
// contains filtered or unexported fields
}
PatchParser holds parsed file patches from a structured patch input.
func ParsePatch ¶ added in v0.2.0
func ParsePatch(input string) (*PatchParser, error)
ParsePatch parses a structured patch in the *** Begin Patch format.
func (*PatchParser) ApplyAll ¶ added in v0.2.0
func (p *PatchParser) ApplyAll() ([]string, error)
ApplyAll applies all patches and returns the list of modified file paths.
func (*PatchParser) Patches ¶ added in v0.2.0
func (p *PatchParser) Patches() []FilePatch
Patches returns the parsed file patches.
type PatchTool ¶ added in v0.2.0
type PatchTool struct{}
PatchTool implements the Tool interface for applying structured patches.
func (PatchTool) Description ¶ added in v0.2.0
func (PatchTool) Parameters ¶ added in v0.2.0
type PathProtector ¶
PathProtector checks whether a file path is protected (read-only). engine.ProtectedPaths implements this interface.
type PathResolver ¶ added in v0.2.0
type PathResolver struct {
ProjectDir string
FileCache map[string]bool
LastScan time.Time
// contains filtered or unexported fields
}
PathResolver helps the agent find the correct file paths even when given partial or ambiguous paths.
func NewPathResolver ¶ added in v0.2.0
func NewPathResolver(projectDir string) *PathResolver
NewPathResolver creates a new PathResolver for the given project directory.
func (*PathResolver) FindByName ¶ added in v0.2.0
func (pr *PathResolver) FindByName(filename string) []string
FindByName finds all files with this exact name anywhere in the project.
func (*PathResolver) FindByPattern ¶ added in v0.2.0
func (pr *PathResolver) FindByPattern(glob string) []string
FindByPattern finds files matching a glob pattern across the project.
func (*PathResolver) FindSimilar ¶ added in v0.2.0
func (pr *PathResolver) FindSimilar(path string, limit int) []string
FindSimilar returns paths similar to the input based on Levenshtein distance.
func (*PathResolver) FormatResult ¶ added in v0.2.0
func (pr *PathResolver) FormatResult(result *ResolveResult) string
FormatResult formats a ResolveResult for display.
func (*PathResolver) IsValidPath ¶ added in v0.2.0
func (pr *PathResolver) IsValidPath(path string) bool
IsValidPath checks whether the given path points to an existing file.
func (*PathResolver) NormalizePath ¶ added in v0.2.0
func (pr *PathResolver) NormalizePath(path string) string
NormalizePath cleans a path, resolves .., and handles ~ expansion.
func (*PathResolver) Resolve ¶ added in v0.2.0
func (pr *PathResolver) Resolve(path string) *ResolveResult
Resolve attempts to find the correct file path given an exact, partial, or ambiguous input path. It tries multiple strategies in order of confidence.
func (*PathResolver) ScanProject ¶ added in v0.2.0
func (pr *PathResolver) ScanProject() error
ScanProject builds the file cache for fast lookups.
func (*PathResolver) SuggestCorrection ¶ added in v0.2.0
func (pr *PathResolver) SuggestCorrection(wrongPath string) string
SuggestCorrection returns the best single correction suggestion for a wrong path.
type PowerShellTool ¶
type PowerShellTool struct{}
PowerShellTool executes PowerShell commands (Windows/cross-platform pwsh).
func (PowerShellTool) Aliases ¶
func (PowerShellTool) Aliases() []string
func (PowerShellTool) Description ¶
func (PowerShellTool) Description() string
func (PowerShellTool) Execute ¶
func (PowerShellTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (PowerShellTool) Name ¶
func (PowerShellTool) Name() string
func (PowerShellTool) Parameters ¶
func (PowerShellTool) Parameters() map[string]interface{}
func (PowerShellTool) RiskLevel ¶
func (PowerShellTool) RiskLevel() string
type ReadMcpResourceTool ¶
type ReadMcpResourceTool struct{}
func (ReadMcpResourceTool) Aliases ¶
func (ReadMcpResourceTool) Aliases() []string
func (ReadMcpResourceTool) Description ¶
func (ReadMcpResourceTool) Description() string
func (ReadMcpResourceTool) Execute ¶
func (ReadMcpResourceTool) Execute(_ context.Context, input json.RawMessage) (string, error)
func (ReadMcpResourceTool) Name ¶
func (ReadMcpResourceTool) Name() string
func (ReadMcpResourceTool) Parameters ¶
func (ReadMcpResourceTool) Parameters() map[string]interface{}
type ReadResult ¶ added in v0.2.0
type ReadResult struct {
Content string
Tokens int
Truncated bool
Strategy string
Sections []ReadSection
TotalLines int
ShownLines int
}
ReadResult contains the result of a smart file read.
type ReadSection ¶ added in v0.2.0
type ReadSection struct {
StartLine int
EndLine int
Content string
Reason string // "head", "tail", "function", "relevant", "import"
}
ReadSection represents a contiguous section of a file that was read.
type RefactorTool ¶ added in v0.2.0
type RefactorTool struct {
// contains filtered or unexported fields
}
RefactorTool exposes refactoring operations as a hawk tool.
func NewRefactorTool ¶ added in v0.2.0
func NewRefactorTool() *RefactorTool
NewRefactorTool creates a RefactorTool with its own Refactorer instance.
func (RefactorTool) Description ¶ added in v0.2.0
func (RefactorTool) Description() string
func (RefactorTool) Execute ¶ added in v0.2.0
func (rt RefactorTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (RefactorTool) Name ¶ added in v0.2.0
func (RefactorTool) Name() string
func (RefactorTool) Parameters ¶ added in v0.2.0
func (RefactorTool) Parameters() map[string]interface{}
type Refactorer ¶ added in v0.2.0
type Refactorer struct {
// contains filtered or unexported fields
}
Refactorer applies common refactoring patterns using pure AST-based transformations without requiring LLM calls.
func NewRefactorer ¶ added in v0.2.0
func NewRefactorer() *Refactorer
NewRefactorer creates a new Refactorer.
func (*Refactorer) AddErrorCheck ¶ added in v0.2.0
func (r *Refactorer) AddErrorCheck(file string, line int) (*RefactoringResult, error)
AddErrorCheck inserts an `if err != nil { return err }` block after the given line, which should be a function call that returns an error.
func (*Refactorer) ConvertToTableTest ¶ added in v0.2.0
func (r *Refactorer) ConvertToTableTest(file, testFunc string) (*RefactoringResult, error)
ConvertToTableTest converts a simple test function into table-driven test format.
func (*Refactorer) ExtractFunction ¶ added in v0.2.0
func (r *Refactorer) ExtractFunction(file string, startLine, endLine int, newName string) (*RefactoringResult, error)
ExtractFunction extracts lines startLine..endLine (1-based, inclusive) from file into a new function named newName, replacing the original lines with a call. It detects needed parameters from variables used but not declared in the extracted block.
func (*Refactorer) ExtractVariable ¶ added in v0.2.0
func (r *Refactorer) ExtractVariable(file string, line int, expr, varName string) (*RefactoringResult, error)
ExtractVariable replaces an expression on the given line with a named variable, inserting the variable declaration before that line.
func (*Refactorer) InlineVariable ¶ added in v0.2.0
func (r *Refactorer) InlineVariable(file string, line int) (*RefactoringResult, error)
InlineVariable replaces a variable declaration on the given line with its value at all use sites within the file.
func (*Refactorer) RemoveUnusedParams ¶ added in v0.2.0
func (r *Refactorer) RemoveUnusedParams(file, funcName string) (*RefactoringResult, error)
RemoveUnusedParams detects and removes parameters not used in the specified function body.
func (*Refactorer) RenameSymbol ¶ added in v0.2.0
func (r *Refactorer) RenameSymbol(file, oldName, newName string) (*RefactoringResult, error)
RenameSymbol renames all occurrences of oldName to newName within the file, respecting word boundaries.
func (*Refactorer) SortImports ¶ added in v0.2.0
func (r *Refactorer) SortImports(file string) (*RefactoringResult, error)
SortImports groups and sorts imports in a Go file (stdlib, external, internal).
func (*Refactorer) WrapWithContext ¶ added in v0.2.0
func (r *Refactorer) WrapWithContext(file string, line int, context string) (*RefactoringResult, error)
WrapWithContext wraps a `return err` statement on the given line with `return fmt.Errorf("%s: %%w", context, err)`.
type RefactoringResult ¶ added in v0.2.0
type RefactoringResult struct {
File string
Changes int
Before string
After string
Type string
Description string
}
RefactoringResult describes the outcome of a single refactoring operation.
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry holds all registered tools.
func NewRegistry ¶
NewRegistry creates a registry with the given tools.
func (*Registry) EyrieTools ¶
EyrieTools converts all tools to eyrie tool definitions for the API.
func (*Registry) Filter ¶
Filter returns a new Registry containing only tools whose names are in the allowlist.
func (*Registry) PrimaryTools ¶
PrimaryTools returns the model-visible tools registered in this registry.
type ResolveResult ¶ added in v0.2.0
ResolveResult contains the outcome of a path resolution attempt.
type RiskLevelProvider ¶
type RiskLevelProvider interface {
RiskLevel() string // "low", "medium", "high"
}
RiskLevelProvider can be implemented by tools to declare their risk level. Tools that don't implement it default to "medium".
type SkillTool ¶
type SkillTool struct{}
func (SkillTool) Description ¶
func (SkillTool) Parameters ¶
type SleepTool ¶
type SleepTool struct{}
SleepTool pauses execution for a specified duration.
func (SleepTool) Description ¶
func (SleepTool) Parameters ¶
type SmartCreateTool ¶ added in v0.2.0
type SmartCreateTool struct {
Creator *SmartCreator
}
SmartCreateTool implements the Tool interface for smart file creation.
func (*SmartCreateTool) Description ¶ added in v0.2.0
func (t *SmartCreateTool) Description() string
func (*SmartCreateTool) Execute ¶ added in v0.2.0
func (t *SmartCreateTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (*SmartCreateTool) Name ¶ added in v0.2.0
func (t *SmartCreateTool) Name() string
func (*SmartCreateTool) Parameters ¶ added in v0.2.0
func (t *SmartCreateTool) Parameters() map[string]interface{}
type SmartCreator ¶ added in v0.2.0
SmartCreator generates boilerplate content when creating new files based on project conventions and file type.
func NewSmartCreator ¶ added in v0.2.0
func NewSmartCreator(projectDir string) *SmartCreator
NewSmartCreator creates a SmartCreator rooted at the given project directory.
func (*SmartCreator) DetectCopyright ¶ added in v0.2.0
func (sc *SmartCreator) DetectCopyright(projectDir string) string
DetectCopyright scans existing source files in the project for a copyright header and returns it if found.
func (*SmartCreator) DetectImportStyle ¶ added in v0.2.0
func (sc *SmartCreator) DetectImportStyle(projectDir string, language string) string
DetectImportStyle looks at existing files to determine import conventions for the given language.
func (*SmartCreator) GenerateBoilerplate ¶ added in v0.2.0
func (sc *SmartCreator) GenerateBoilerplate(path string) string
GenerateBoilerplate produces starter content for a new file based on its extension and path within the project.
func (*SmartCreator) GenerateInterface ¶ added in v0.2.0
func (sc *SmartCreator) GenerateInterface(functions []string) string
GenerateInterface produces a Go interface definition from function signatures.
func (*SmartCreator) GenerateTestFile ¶ added in v0.2.0
func (sc *SmartCreator) GenerateTestFile(sourcePath string) string
GenerateTestFile creates a test file corresponding to the given source file.
func (*SmartCreator) InferPackageName ¶ added in v0.2.0
func (sc *SmartCreator) InferPackageName(filePath string) string
InferPackageName determines the Go package name from a file path.
type SmartReader ¶ added in v0.2.0
type SmartReader struct {
MaxTokens int
Strategy string // "full", "head_tail", "symbols", "relevant"
// contains filtered or unexported fields
}
SmartReader reads files within a token budget using adaptive strategies.
func NewSmartReader ¶ added in v0.2.0
func NewSmartReader(maxTokens int) *SmartReader
NewSmartReader creates a SmartReader with the given token budget.
func (*SmartReader) EstimateFileTokens ¶ added in v0.2.0
func (sr *SmartReader) EstimateFileTokens(path string) (int, error)
EstimateFileTokens quickly estimates the token count without reading the full file. Uses file size / 4 as approximation.
func (*SmartReader) ReadFile ¶ added in v0.2.0
func (sr *SmartReader) ReadFile(path string, query string) (*ReadResult, error)
ReadFile reads a file intelligently within the token budget. If the file fits in budget, the full content is returned. Otherwise the configured strategy is applied.
func (*SmartReader) ReadRange ¶ added in v0.2.0
func (sr *SmartReader) ReadRange(path string, startLine, endLine int) (*ReadResult, error)
ReadRange reads a specific line range from a file.
func (*SmartReader) ReadRelevant ¶ added in v0.2.0
func (sr *SmartReader) ReadRelevant(path, query string, budget int) (*ReadResult, error)
ReadRelevant reads lines containing query keywords with surrounding context.
func (*SmartReader) ReadSymbolsOnly ¶ added in v0.2.0
func (sr *SmartReader) ReadSymbolsOnly(path string) (*ReadResult, error)
ReadSymbolsOnly extracts function signatures, type definitions, and exports.
func (*SmartReader) ReadWithBudget ¶ added in v0.2.0
func (sr *SmartReader) ReadWithBudget(path string, budget int) (*ReadResult, error)
ReadWithBudget reads a file within an exact token budget using adaptive strategy.
type SmartReaderTool ¶ added in v0.2.0
type SmartReaderTool struct {
// contains filtered or unexported fields
}
SmartReaderTool exposes SmartReader as a hawk tool.
func NewSmartReaderTool ¶ added in v0.2.0
func NewSmartReaderTool() *SmartReaderTool
func (SmartReaderTool) Aliases ¶ added in v0.2.0
func (SmartReaderTool) Aliases() []string
func (SmartReaderTool) Description ¶ added in v0.2.0
func (SmartReaderTool) Description() string
func (*SmartReaderTool) Execute ¶ added in v0.2.0
func (t *SmartReaderTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (SmartReaderTool) Name ¶ added in v0.2.0
func (SmartReaderTool) Name() string
func (SmartReaderTool) Parameters ¶ added in v0.2.0
func (SmartReaderTool) Parameters() map[string]interface{}
func (SmartReaderTool) RiskLevel ¶ added in v0.2.0
func (SmartReaderTool) RiskLevel() string
type Task ¶
type Task struct {
ID string `json:"id"`
ParentID string `json:"parentId,omitempty"`
Subject string `json:"subject"`
Description string `json:"description"`
ActiveForm string `json:"activeForm,omitempty"`
Status TaskStatus `json:"status"`
Owner string `json:"owner,omitempty"`
Dependencies []TaskDependency `json:"dependencies"`
Metadata map[string]any `json:"metadata,omitempty"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
Task represents a structured task in the task list.
type TaskCreateTool ¶
type TaskCreateTool struct{}
TaskCreateTool creates a new task in the task list.
func (TaskCreateTool) Aliases ¶
func (TaskCreateTool) Aliases() []string
func (TaskCreateTool) Description ¶
func (TaskCreateTool) Description() string
func (TaskCreateTool) Execute ¶
func (TaskCreateTool) Execute(_ context.Context, input json.RawMessage) (string, error)
func (TaskCreateTool) Name ¶
func (TaskCreateTool) Name() string
func (TaskCreateTool) Parameters ¶
func (TaskCreateTool) Parameters() map[string]interface{}
type TaskDependency ¶
type TaskDependency struct {
TargetID string `json:"targetId"`
Type string `json:"type"` // "blocks", "related", "parent-child"
}
TaskDependency represents a typed dependency between tasks.
type TaskGetTool ¶
type TaskGetTool struct{}
TaskGetTool retrieves a task by ID.
func (TaskGetTool) Aliases ¶
func (TaskGetTool) Aliases() []string
func (TaskGetTool) Description ¶
func (TaskGetTool) Description() string
func (TaskGetTool) Execute ¶
func (TaskGetTool) Execute(_ context.Context, input json.RawMessage) (string, error)
func (TaskGetTool) Name ¶
func (TaskGetTool) Name() string
func (TaskGetTool) Parameters ¶
func (TaskGetTool) Parameters() map[string]interface{}
type TaskListTool ¶
type TaskListTool struct{}
TaskListTool lists all tasks.
func (TaskListTool) Aliases ¶
func (TaskListTool) Aliases() []string
func (TaskListTool) Description ¶
func (TaskListTool) Description() string
func (TaskListTool) Execute ¶
func (TaskListTool) Execute(_ context.Context, input json.RawMessage) (string, error)
func (TaskListTool) Name ¶
func (TaskListTool) Name() string
func (TaskListTool) Parameters ¶
func (TaskListTool) Parameters() map[string]interface{}
type TaskOutputTool ¶
type TaskOutputTool struct{}
func (TaskOutputTool) Aliases ¶
func (TaskOutputTool) Aliases() []string
func (TaskOutputTool) Description ¶
func (TaskOutputTool) Description() string
func (TaskOutputTool) Execute ¶
func (TaskOutputTool) Execute(_ context.Context, input json.RawMessage) (string, error)
func (TaskOutputTool) Name ¶
func (TaskOutputTool) Name() string
func (TaskOutputTool) Parameters ¶
func (TaskOutputTool) Parameters() map[string]interface{}
type TaskStatus ¶
type TaskStatus string
TaskStatus represents the state of a task.
const ( TaskStatusPending TaskStatus = "pending" TaskStatusInProgress TaskStatus = "in_progress" TaskStatusCompleted TaskStatus = "completed" )
type TaskStopTool ¶
type TaskStopTool struct{}
func (TaskStopTool) Aliases ¶
func (TaskStopTool) Aliases() []string
func (TaskStopTool) Description ¶
func (TaskStopTool) Description() string
func (TaskStopTool) Execute ¶
func (TaskStopTool) Execute(_ context.Context, input json.RawMessage) (string, error)
func (TaskStopTool) Name ¶
func (TaskStopTool) Name() string
func (TaskStopTool) Parameters ¶
func (TaskStopTool) Parameters() map[string]interface{}
type TaskStore ¶
type TaskStore struct {
// contains filtered or unexported fields
}
TaskStore is a thread-safe in-memory store for tasks.
func (*TaskStore) CompactCompleted ¶
CompactCompleted removes completed tasks and returns a summary.
func (*TaskStore) CreateWithParent ¶
func (*TaskStore) GetReadyWork ¶
GetReadyWork returns pending tasks with no open blocking dependencies.
type TaskUpdateTool ¶
type TaskUpdateTool struct{}
TaskUpdateTool updates task fields.
func (TaskUpdateTool) Aliases ¶
func (TaskUpdateTool) Aliases() []string
func (TaskUpdateTool) Description ¶
func (TaskUpdateTool) Description() string
func (TaskUpdateTool) Execute ¶
func (TaskUpdateTool) Execute(_ context.Context, input json.RawMessage) (string, error)
func (TaskUpdateTool) Name ¶
func (TaskUpdateTool) Name() string
func (TaskUpdateTool) Parameters ¶
func (TaskUpdateTool) Parameters() map[string]interface{}
type TemplateVar ¶ added in v0.2.0
TemplateVar describes a variable used in a template.
type Ticket ¶ added in v0.2.0
type Ticket struct {
ID string
Title string
Description string
AcceptanceCriteria []string
Labels []string
Source string // "github", "jira", "linear"
}
Ticket represents a linked issue/ticket from any tracking system.
type TicketCompliance ¶ added in v0.2.0
type TicketCompliance struct {
// contains filtered or unexported fields
}
TicketCompliance verifies that PR changes satisfy linked issue requirements.
func NewTicketCompliance ¶ added in v0.2.0
func NewTicketCompliance() *TicketCompliance
NewTicketCompliance creates a new TicketCompliance checker.
func (*TicketCompliance) CheckCompliance ¶ added in v0.2.0
func (tc *TicketCompliance) CheckCompliance(ticket *Ticket, diff, commitMessages string) *ComplianceResult
CheckCompliance verifies whether the diff and commit messages satisfy ticket criteria. For each acceptance criterion, it checks if the diff or commits address it using keyword matching.
func (*TicketCompliance) ExtractTicketRef ¶ added in v0.2.0
func (tc *TicketCompliance) ExtractTicketRef(branchName, prDescription string) []string
ExtractTicketRef parses ticket references from branch names and PR descriptions. It recognizes patterns like: #123, PROJ-456, fixes #789, closes #101, feature/PROJ-123-description, "Fixes #42", "Resolves HAWK-99".
func (*TicketCompliance) ParseTicket ¶ added in v0.2.0
func (tc *TicketCompliance) ParseTicket(content string) *Ticket
ParseTicket extracts ticket information from raw content. It parses title, description, and acceptance criteria from issue body text. Acceptance criteria are extracted from:
- Checkboxes: "- [ ] criterion"
- Numbered lists: "1. criterion"
- "should" statements: "The system should ..."
type TicketComplianceTool ¶ added in v0.2.0
type TicketComplianceTool struct{}
TicketComplianceTool implements the Tool interface for ticket compliance checking.
func (*TicketComplianceTool) Description ¶ added in v0.2.0
func (t *TicketComplianceTool) Description() string
Description returns the tool description.
func (*TicketComplianceTool) Execute ¶ added in v0.2.0
func (t *TicketComplianceTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
Execute runs the ticket compliance tool.
func (*TicketComplianceTool) Name ¶ added in v0.2.0
func (t *TicketComplianceTool) Name() string
Name returns the tool name.
func (*TicketComplianceTool) Parameters ¶ added in v0.2.0
func (t *TicketComplianceTool) Parameters() map[string]interface{}
Parameters returns the JSON schema for the tool's input.
type TodoWriteTool ¶
type TodoWriteTool struct{}
func (TodoWriteTool) Aliases ¶
func (TodoWriteTool) Aliases() []string
func (TodoWriteTool) Description ¶
func (TodoWriteTool) Description() string
func (TodoWriteTool) Execute ¶
func (TodoWriteTool) Execute(_ context.Context, input json.RawMessage) (string, error)
func (TodoWriteTool) Name ¶
func (TodoWriteTool) Name() string
func (TodoWriteTool) Parameters ¶
func (TodoWriteTool) Parameters() map[string]interface{}
type Tool ¶
type Tool interface {
Name() string
Description() string
Parameters() map[string]interface{}
Execute(ctx context.Context, input json.RawMessage) (string, error)
}
Tool is the interface every hawk tool implements.
type ToolContext ¶
type ToolContext struct {
AgentSpawnFn func(ctx context.Context, prompt string) (string, error)
AskUserFn func(question string) (string, error)
CodeSearchFn func(ctx context.Context, query string, limit int) ([]CodeSearchResult, error)
RefreshCodeIndexFn func(ctx context.Context) error
AvailableTools []Tool
AllowedDirectories []string
SandboxMode sandbox.Mode
AutoCommit bool
Protected PathProtector
YaadBridge *memory.YaadBridge
// BackgroundManager tracks background sub-agents. If nil, background
// mode is not available.
BackgroundManager *BackgroundAgentManager
}
ToolContext carries session-level functions for tools that need them.
func GetToolContext ¶
func GetToolContext(ctx context.Context) *ToolContext
GetToolContext retrieves the ToolContext from a context.
type ToolSearchTool ¶
type ToolSearchTool struct{}
func (ToolSearchTool) Aliases ¶
func (ToolSearchTool) Aliases() []string
func (ToolSearchTool) Description ¶
func (ToolSearchTool) Description() string
func (ToolSearchTool) Execute ¶
func (ToolSearchTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (ToolSearchTool) Name ¶
func (ToolSearchTool) Name() string
func (ToolSearchTool) Parameters ¶
func (ToolSearchTool) Parameters() map[string]interface{}
func (ToolSearchTool) RiskLevel ¶
func (ToolSearchTool) RiskLevel() string
type Transaction ¶ added in v0.2.0
type Transaction struct {
ID string
Operations []FileOperation
Status string // "pending", "committed", "rolled_back"
CreatedAt time.Time
CommittedAt *time.Time
// contains filtered or unexported fields
}
Transaction groups multiple file operations into an atomic unit. Either all operations succeed or all are rolled back.
func NewTransaction ¶ added in v0.2.0
func NewTransaction() *Transaction
NewTransaction creates a new pending transaction with a unique ID.
func (*Transaction) Add ¶ added in v0.2.0
func (tx *Transaction) Add(op FileOperation) error
Add adds a file operation to the transaction after validating it and capturing the current file state for potential rollback.
func (*Transaction) AddCreate ¶ added in v0.2.0
AddCreate adds a file creation operation to the transaction.
func (*Transaction) AddDelete ¶ added in v0.2.0
func (tx *Transaction) AddDelete(path string) error
AddDelete adds a file deletion operation to the transaction. It reads and stores the original content for potential rollback.
func (*Transaction) AddModify ¶ added in v0.2.0
func (tx *Transaction) AddModify(path string, newContent []byte) error
AddModify adds a file modification operation to the transaction. It reads and stores the original content for potential rollback.
func (*Transaction) AddRename ¶ added in v0.2.0
func (tx *Transaction) AddRename(oldPath, newPath string) error
AddRename adds a file rename operation to the transaction.
func (*Transaction) Commit ¶ added in v0.2.0
func (tx *Transaction) Commit() error
Commit applies all operations in order. If any operation fails, all previously applied operations are automatically rolled back.
func (*Transaction) DryRun ¶ added in v0.2.0
func (tx *Transaction) DryRun() []string
DryRun returns descriptions of what each operation would do without applying them.
func (*Transaction) FilesDiff ¶ added in v0.2.0
func (tx *Transaction) FilesDiff() string
FilesDiff returns a unified diff representation of all modifications in the transaction.
func (*Transaction) Rollback ¶ added in v0.2.0
func (tx *Transaction) Rollback() error
Rollback reverses all applied operations, restoring original file states.
func (*Transaction) Summary ¶ added in v0.2.0
func (tx *Transaction) Summary() string
Summary returns a human-readable transaction summary.
func (*Transaction) Validate ¶ added in v0.2.0
func (tx *Transaction) Validate() []string
Validate pre-checks all operations for potential issues without applying them. Returns a list of warnings or an empty slice if everything looks good.
type TransactionTool ¶ added in v0.2.0
type TransactionTool struct{}
TransactionTool implements the Tool interface for atomic multi-file edits.
func (TransactionTool) Aliases ¶ added in v0.2.0
func (TransactionTool) Aliases() []string
func (TransactionTool) Description ¶ added in v0.2.0
func (TransactionTool) Description() string
func (TransactionTool) Execute ¶ added in v0.2.0
func (TransactionTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (TransactionTool) Name ¶ added in v0.2.0
func (TransactionTool) Name() string
func (TransactionTool) Parameters ¶ added in v0.2.0
func (TransactionTool) Parameters() map[string]interface{}
func (TransactionTool) RiskLevel ¶ added in v0.2.0
func (TransactionTool) RiskLevel() string
type TypeSig ¶ added in v0.2.0
type TypeSig struct {
Name string `json:"name"`
Kind string `json:"kind"`
Fields []FieldSig `json:"fields"`
Exported bool `json:"exported"`
}
TypeSig represents a type declaration.
type ValidationCheck ¶ added in v0.2.0
type ValidationCheck struct {
Name string
Category string // "syntax", "lint", "test", "security", "style", "size"
RunFn func(files []string) *CheckResult
Required bool
}
ValidationCheck represents a single validation step in the pre-commit pipeline.
type ValidationReport ¶ added in v0.2.0
type ValidationReport struct {
Checks []CheckResult
AllPassed bool
Duration time.Duration
BlockingFailures int
Warnings int
}
ValidationReport aggregates the results of all checks in a validation run.
type VarSig ¶ added in v0.2.0
type VarSig struct {
Name string `json:"name"`
Type string `json:"type"`
Exported bool `json:"exported"`
}
VarSig represents a variable declaration.
type VerifyPlanExecutionTool ¶
type VerifyPlanExecutionTool struct{}
VerifyPlanExecutionTool checks whether a plan's steps have been executed correctly.
func (VerifyPlanExecutionTool) Aliases ¶
func (VerifyPlanExecutionTool) Aliases() []string
func (VerifyPlanExecutionTool) Description ¶
func (VerifyPlanExecutionTool) Description() string
func (VerifyPlanExecutionTool) Execute ¶
func (VerifyPlanExecutionTool) Execute(_ context.Context, input json.RawMessage) (string, error)
func (VerifyPlanExecutionTool) Name ¶
func (VerifyPlanExecutionTool) Name() string
func (VerifyPlanExecutionTool) Parameters ¶
func (VerifyPlanExecutionTool) Parameters() map[string]interface{}
type WebFetchTool ¶
type WebFetchTool struct{}
func (WebFetchTool) Aliases ¶
func (WebFetchTool) Aliases() []string
func (WebFetchTool) Description ¶
func (WebFetchTool) Description() string
func (WebFetchTool) Execute ¶
func (WebFetchTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (WebFetchTool) Name ¶
func (WebFetchTool) Name() string
func (WebFetchTool) Parameters ¶
func (WebFetchTool) Parameters() map[string]interface{}
type WebSearchTool ¶
type WebSearchTool struct{}
func (WebSearchTool) Aliases ¶
func (WebSearchTool) Aliases() []string
func (WebSearchTool) Description ¶
func (WebSearchTool) Description() string
func (WebSearchTool) Execute ¶
func (WebSearchTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (WebSearchTool) Name ¶
func (WebSearchTool) Name() string
func (WebSearchTool) Parameters ¶
func (WebSearchTool) Parameters() map[string]interface{}
func (WebSearchTool) RiskLevel ¶
func (WebSearchTool) RiskLevel() string
type WorkflowDef ¶
type WorkflowDef struct {
Name string `yaml:"name" json:"name"`
Description string `yaml:"description" json:"description"`
Steps []WorkflowStep `yaml:"steps" json:"steps"`
}
WorkflowDef defines a scripted workflow loaded from .hawk/workflows/.
func ListWorkflows ¶
func ListWorkflows() []WorkflowDef
ListWorkflows discovers available workflows.
type WorkflowStep ¶
type WorkflowStep struct {
Name string `yaml:"name" json:"name"`
Prompt string `yaml:"prompt" json:"prompt"`
Tool string `yaml:"tool" json:"tool"`
Input string `yaml:"input" json:"input"`
OnError string `yaml:"on_error" json:"on_error"`
}
WorkflowStep is a single step in a workflow.
type WorkflowTool ¶
type WorkflowTool struct{}
WorkflowTool executes scripted workflows from .hawk/workflows/.
func (WorkflowTool) Aliases ¶
func (WorkflowTool) Aliases() []string
func (WorkflowTool) Description ¶
func (WorkflowTool) Description() string
func (WorkflowTool) Execute ¶
func (WorkflowTool) Execute(ctx context.Context, input json.RawMessage) (string, error)
func (WorkflowTool) Name ¶
func (WorkflowTool) Name() string
func (WorkflowTool) Parameters ¶
func (WorkflowTool) Parameters() map[string]interface{}
Source Files
¶
- agent.go
- agentic_fetch.go
- api_compat.go
- ask_user.go
- audit.go
- auto_import.go
- background.go
- backup.go
- bash.go
- change_validator.go
- code_search.go
- codegen.go
- commitlint.go
- conflict_resolver.go
- core_memory.go
- cron.go
- debugger.go
- descriptions.go
- devenv.go
- diagnostics.go
- download.go
- encoding.go
- extra.go
- file_edit.go
- file_read.go
- file_read_media.go
- file_write.go
- git.go
- git_commit.go
- git_config.go
- git_fs.go
- git_hooks.go
- glob.go
- grep.go
- import_organizer.go
- ls.go
- lsp.go
- mcp_auth.go
- mcp_resources.go
- mcp_tool.go
- multiedit.go
- outline.go
- patch.go
- path_guard.go
- path_resolver.go
- plan.go
- powershell.go
- pr_generator.go
- refactor.go
- safety.go
- skill.go
- sleep.go
- smart_commit.go
- smart_create.go
- smart_reader.go
- task_create.go
- task_tools.go
- test_fixtures.go
- ticket_compliance.go
- todo.go
- tool.go
- tool_search.go
- transaction.go
- validate_input.go
- verify_plan.go
- web_fetch.go
- web_search.go
- web_search_brave.go
- web_search_searxng.go
- workflow.go
- worktree.go