Norma Agent Harness 현재 시스템 문서
전체 문서
이 페이지 목차

도구와 권한 공개 API

이 페이지는 고정 소스 리비전의 production(non-test) Go 파일을 AST로 열거한 공개 계약 색인이다. 테스트 선언, 비공개 식별자, 비공개 receiver 메서드는 제외했다. 각 행의 근거는 선언이 있는 파일 자체이며, 자세한 기본값과 실패 의미는 설정 참조, 도구 계약, 저장 스키마에서 보완한다.

다른 묶음: 실행 코어 · 도구/권한 · 컨텍스트/지속성 · 확장/조정

tool

tool · 관계

이 대상을 사용하는 기능·모듈·계약 · 1개

전체 관계 1개 · 종류 선택·관계도
종류 식별자 선언/시그니처 근거
const ExecuteExtraToolName <code>const ExecuteExtraToolName = "ExecuteExtraTool"</code> tool/deferred.go
const KindBash <code>const KindBash TaskKind = "bash"</code> tool/task.go
const KindMonitor <code>const KindMonitor TaskKind = "monitor"</code> tool/task.go
const SearchExtraToolsName <code>const SearchExtraToolsName = "SearchExtraTools"</code> tool/deferred.go
const TaskCompleted <code>const TaskCompleted TaskStatus = "completed"</code> tool/task.go
const TaskFailed <code>const TaskFailed TaskStatus = "failed"</code> tool/task.go
const TaskKilled <code>const TaskKilled TaskStatus = "killed"</code> tool/task.go
const TaskRunning <code>const TaskRunning TaskStatus = "running"</code> tool/task.go
const TodoCompleted <code>const TodoCompleted TodoStatus = "completed"</code> tool/todo.go
const TodoInProgress <code>const TodoInProgress TodoStatus = "in_progress"</code> tool/todo.go
const TodoPending <code>const TodoPending TodoStatus = "pending"</code> tool/todo.go
field Answer.Selected <code>Selected []string</code> tool/ask.go
field Notification.Kind <code>Kind TaskKind</code> tool/task.go
field Notification.OutputPath <code>OutputPath string</code> tool/task.go
field Notification.Status <code>Status TaskStatus</code> tool/task.go
field Notification.Summary <code>Summary string</code> tool/task.go
field Notification.TaskID <code>TaskID string</code> tool/task.go
field Option.Description <code>Description string</code> tool/ask.go
field Option.Label <code>Label string</code> tool/ask.go
field ProgressInfo.Message <code>Message string</code> tool/tool.go
field Question.Header <code>Header string</code> tool/ask.go
field Question.MultiSelect <code>MultiSelect bool</code> tool/ask.go
field Question.Options <code>Options []Option</code> tool/ask.go
field Question.Question <code>Question string</code> tool/ask.go
field Result.Content <code>Content []llm.ContentBlock</code> tool/tool.go
field Result.Extra <code>Extra []llm.Message</code> tool/tool.go
field Result.IsError <code>IsError bool</code> tool/tool.go
field SearchResult.Description <code>Description string json:&#34;description&#34;</code> tool/websearch.go
field SearchResult.Position <code>Position int json:&#34;position&#34;</code> tool/websearch.go
field SearchResult.Title <code>Title string json:&#34;title&#34;</code> tool/websearch.go
field SearchResult.URL <code>URL string json:&#34;url&#34;</code> tool/websearch.go
field SpawnSpec.Command <code>Command string</code> tool/task.go
field SpawnSpec.Description <code>Description string</code> tool/task.go
field SpawnSpec.Env <code>Env []string</code> tool/task.go
field SpawnSpec.Kind <code>Kind TaskKind</code> tool/task.go
field SpawnSpec.WorkingDir <code>WorkingDir string</code> tool/task.go
field Spec.Concurrent <code>Concurrent func(json.RawMessage) bool</code> tool/tool.go
field Spec.Description <code>Description string</code> tool/tool.go
field Spec.Name <code>Name string</code> tool/tool.go
field Spec.Permissions <code>Permissions func(ctx context.Context, input json.RawMessage, pc permission.Context) permission.Decision</code> tool/tool.go
field Spec.Prompt <code>Prompt string</code> tool/tool.go
field Spec.RawInput <code>RawInput bool</code> tool/tool.go
field Spec.ReadOnly <code>ReadOnly func(json.RawMessage) bool</code> tool/tool.go
field Spec.Run <code>Run func(ctx context.Context, input json.RawMessage, tc *ToolContext) (Result, error)</code> tool/tool.go
field Spec.Schema <code>Schema map[string]any</code> tool/tool.go
field Task.Command <code>Command string</code> tool/task.go
field Task.Description <code>Description string</code> tool/task.go
field Task.EndTime <code>EndTime time.Time</code> tool/task.go
field Task.ExitCode <code>ExitCode int</code> tool/task.go
field Task.ID <code>ID string</code> tool/task.go
field Task.Kind <code>Kind TaskKind</code> tool/task.go
field Task.OutputPath <code>OutputPath string</code> tool/task.go
field Task.StartTime <code>StartTime time.Time</code> tool/task.go
field Task.Status <code>Status TaskStatus</code> tool/task.go
field TaskInfo.Backgrounded <code>Backgrounded bool</code> tool/task.go
field TaskInfo.Command <code>Command string</code> tool/task.go
field TaskInfo.Description <code>Description string</code> tool/task.go
field TaskInfo.EndTime <code>EndTime time.Time</code> tool/task.go
field TaskInfo.ExitCode <code>ExitCode int</code> tool/task.go
field TaskInfo.ID <code>ID string</code> tool/task.go
field TaskInfo.Kind <code>Kind TaskKind</code> tool/task.go
field TaskInfo.OutputPath <code>OutputPath string</code> tool/task.go
field TaskInfo.StartTime <code>StartTime time.Time</code> tool/task.go
field TaskInfo.Status <code>Status TaskStatus</code> tool/task.go
field Todo.Content <code>Content string json:&#34;content&#34;</code> tool/todo.go
field Todo.Status <code>Status TodoStatus json:&#34;status&#34;</code> tool/todo.go
field ToolContext.AgentID <code>AgentID string</code> tool/tool.go
field ToolContext.Emit <code>Emit func(ProgressInfo)</code> tool/tool.go
field ToolContext.Env <code>Env []string</code> tool/tool.go
field ToolContext.MaxOutputChars <code>MaxOutputChars int</code> tool/tool.go
field ToolContext.OutputDir <code>OutputDir string</code> tool/tool.go
field ToolContext.Tasks <code>Tasks *Manager</code> tool/tool.go
field ToolContext.ToolUseID <code>ToolUseID string</code> tool/tool.go
field ToolContext.WorkingDir <code>WorkingDir string</code> tool/tool.go
field WebFetchConfig.CACert <code>CACert string</code> tool/webfetch.go
field WebFetchConfig.InsecureTLS <code>InsecureTLS bool</code> tool/webfetch.go
field WebFetchConfig.Proxy <code>Proxy string</code> tool/webfetch.go
field WebSearchConfig.Backend <code>Backend string</code> tool/websearch.go
field WebSearchConfig.BraveAPIKey <code>BraveAPIKey string</code> tool/websearch.go
field WebSearchConfig.CACert <code>CACert string</code> tool/websearch.go
field WebSearchConfig.DeepSeekAPIKey <code>DeepSeekAPIKey string</code> tool/websearch.go
field WebSearchConfig.DeepSeekBaseURL <code>DeepSeekBaseURL string</code> tool/websearch.go
field WebSearchConfig.DeepSeekModel <code>DeepSeekModel string</code> tool/websearch.go
field WebSearchConfig.InsecureTLS <code>InsecureTLS bool</code> tool/websearch.go
field WebSearchConfig.Proxy <code>Proxy string</code> tool/websearch.go
field WebSearchConfig.TavilyAPIKey <code>TavilyAPIKey string</code> tool/websearch.go
func BackgroundTasksDisabled <code>func BackgroundTasksDisabled() bool</code> tool/task.go
func Build <code>func Build(s Spec) CoreTool</code> tool/tool.go
func Capture <code>func Capture(tc *ToolContext, s string) string</code> tool/helpers.go
func CaptureOnce <code>func CaptureOnce(tc *ToolContext, s string) string</code> tool/helpers.go
func DefaultTools <code>func DefaultTools() []CoreTool</code> tool/registry.go
func EnsureRipgrep <code>func EnsureRipgrep() string</code> tool/ripgrep.go
func Errorf <code>func Errorf(s string) Result</code> tool/tool.go
func InteractiveShellDisabled <code>func InteractiveShellDisabled() bool</code> tool/shell_session.go
func NewAskUserQuestion <code>func NewAskUserQuestion(ask AskUserFunc) CoreTool</code> tool/ask.go
func NewBash <code>func NewBash() CoreTool</code> tool/bash.go
func NewEdit <code>func NewEdit() CoreTool</code> tool/files.go
func NewExecuteExtraTool <code>func NewExecuteExtraTool(reg *Registry, unlock *UnlockSet) CoreTool</code> tool/deferred.go
func NewGlob <code>func NewGlob() CoreTool</code> tool/search.go
func NewGrep <code>func NewGrep() CoreTool</code> tool/search.go
func NewLS <code>func NewLS() CoreTool</code> tool/ls.go
func NewManager <code>func NewManager(sessionID string) (*Manager, error)</code> tool/task.go
func NewMonitor <code>func NewMonitor() CoreTool</code> tool/monitor.go
func NewMultiEdit <code>func NewMultiEdit() CoreTool</code> tool/multiedit.go
func NewRead <code>func NewRead() CoreTool</code> tool/files.go
func NewRegistry <code>func NewRegistry(tools ...CoreTool) *Registry</code> tool/registry.go
func NewSearchExtraTools <code>func NewSearchExtraTools(reg *Registry, deferred []string) CoreTool</code> tool/deferred.go
func NewShellClose <code>func NewShellClose() CoreTool</code> tool/shell_tools.go
func NewShellList <code>func NewShellList() CoreTool</code> tool/shell_tools.go
func NewShellOpen <code>func NewShellOpen() CoreTool</code> tool/shell_tools.go
func NewShellRead <code>func NewShellRead() CoreTool</code> tool/shell_tools.go
func NewShellSend <code>func NewShellSend() CoreTool</code> tool/shell_tools.go
func NewSleep <code>func NewSleep() CoreTool</code> tool/sleep.go
func NewTaskList <code>func NewTaskList() CoreTool</code> tool/tasklist.go
func NewTaskOutput <code>func NewTaskOutput() CoreTool</code> tool/taskoutput.go
func NewTaskStop <code>func NewTaskStop() CoreTool</code> tool/taskstop.go
func NewTodoStore <code>func NewTodoStore() *TodoStore</code> tool/todo.go
func NewUnlockSet <code>func NewUnlockSet(initial ...string) *UnlockSet</code> tool/deferred.go
func NewWebFetch <code>func NewWebFetch(cfg WebFetchConfig) CoreTool</code> tool/webfetch.go
func NewWebSearch <code>func NewWebSearch(cfg WebSearchConfig) (CoreTool, error)</code> tool/websearch.go
func NewWrite <code>func NewWrite() CoreTool</code> tool/files.go
func RenderDeferredToolsBlock <code>func RenderDeferredToolsBlock(names []string) string</code> tool/deferred.go
func RenderTodoReminder <code>func RenderTodoReminder(todos []Todo) string</code> tool/todo.go
func RipgrepPath <code>func RipgrepPath() string</code> tool/ripgrep.go
func ShellSessionTools <code>func ShellSessionTools() []CoreTool</code> tool/shell_tools.go
func Text <code>func Text(s string) Result</code> tool/tool.go
func ValidateInput <code>func ValidateInput(schema map[string]any, raw json.RawMessage) error</code> tool/schema.go
func WebSearchProbe <code>func WebSearchProbe(ctx context.Context, cfg WebSearchConfig, query string, limit int) ([]SearchResult, error)</code> tool/websearch.go
interface method CoreTool.Call <code>Callfunc(ctx context.Context, input json.RawMessage, tc *ToolContext) (Result, error)</code> tool/tool.go
interface method CoreTool.CheckPermissions <code>CheckPermissionsfunc(ctx context.Context, input json.RawMessage, pc permission.Context) permission.Decision</code> tool/tool.go
interface method CoreTool.Description <code>Descriptionfunc() string</code> tool/tool.go
interface method CoreTool.InputSchema <code>InputSchemafunc() map[string]any</code> tool/tool.go
interface method CoreTool.IsConcurrencySafe <code>IsConcurrencySafefunc(input json.RawMessage) bool</code> tool/tool.go
interface method CoreTool.IsReadOnly <code>IsReadOnlyfunc(input json.RawMessage) bool</code> tool/tool.go
interface method CoreTool.Name <code>Namefunc() string</code> tool/tool.go
interface method CoreTool.Prompt <code>Promptfunc() string</code> tool/tool.go
method Manager.Background <code>func (*Manager) Background(id string)</code> tool/task.go
method Manager.Cleanup <code>func (*Manager) Cleanup()</code> tool/task.go
method Manager.DrainNotifications <code>func (*Manager) DrainNotifications() []Notification</code> tool/task.go
method Manager.Forget <code>func (*Manager) Forget(id string)</code> tool/task.go
method Manager.Get <code>func (*Manager) Get(id string) (TaskInfo, bool)</code> tool/task.go
method Manager.Kill <code>func (*Manager) Kill(id string) bool</code> tool/task.go
method Manager.KillAll <code>func (*Manager) KillAll() int</code> tool/task.go
method Manager.List <code>func (*Manager) List() []TaskInfo</code> tool/task.go
method Manager.Output <code>func (*Manager) Output(id string, maxBytes int) (string, error)</code> tool/task.go
method Manager.RunForeground <code>func (*Manager) RunForeground(ctx context.Context, spec SpawnSpec, timeout time.Duration) (t *Task, finished bool, output string, err error)</code> tool/task.go
method Manager.Spawn <code>func (*Manager) Spawn(spec SpawnSpec) (*Task, error)</code> tool/task.go
method Manager.Wait <code>func (*Manager) Wait(ctx context.Context, id string, timeout time.Duration) (TaskInfo, bool)</code> tool/task.go
method Notification.String <code>func (Notification) String() string</code> tool/task.go
method Option.UnmarshalJSON <code>func (*Option) UnmarshalJSON(data []byte) error</code> tool/ask.go
method Registry.Add <code>func (*Registry) Add(t CoreTool)</code> tool/registry.go
method Registry.Get <code>func (*Registry) Get(name string) (CoreTool, bool)</code> tool/registry.go
method Registry.List <code>func (*Registry) List() []CoreTool</code> tool/registry.go
method Registry.Schemas <code>func (*Registry) Schemas() []llm.ToolSchema</code> tool/registry.go
method Result.Flatten <code>func (Result) Flatten() string</code> tool/tool.go
method TaskStatus.Terminal <code>func (TaskStatus) Terminal() bool</code> tool/task.go
method TodoStore.List <code>func (*TodoStore) List() []Todo</code> tool/todo.go
method TodoStore.Tool <code>func (*TodoStore) Tool() CoreTool</code> tool/todo.go
method UnlockSet.Add <code>func (*UnlockSet) Add(names ...string)</code> tool/deferred.go
method UnlockSet.Has <code>func (*UnlockSet) Has(name string) bool</code> tool/deferred.go
method UnlockSet.List <code>func (*UnlockSet) List() []string</code> tool/deferred.go
type Answer <code>type Answer struct</code> tool/ask.go
type AskUserFunc <code>type AskUserFunc func(ctx context.Context, q Question) Answer</code> tool/ask.go
type CoreTool <code>type CoreTool interface</code> tool/tool.go
type Manager <code>type Manager struct</code> tool/task.go
type Notification <code>type Notification struct</code> tool/task.go
type Option <code>type Option struct</code> tool/ask.go
type ProgressInfo <code>type ProgressInfo struct</code> tool/tool.go
type Question <code>type Question struct</code> tool/ask.go
type Registry <code>type Registry struct</code> tool/registry.go
type Result <code>type Result struct</code> tool/tool.go
type SearchResult <code>type SearchResult struct</code> tool/websearch.go
type SpawnSpec <code>type SpawnSpec struct</code> tool/task.go
type Spec <code>type Spec struct</code> tool/tool.go
type Task <code>type Task struct</code> tool/task.go
type TaskInfo <code>type TaskInfo struct</code> tool/task.go
type TaskKind <code>type TaskKind string</code> tool/task.go
type TaskStatus <code>type TaskStatus string</code> tool/task.go
type Todo <code>type Todo struct</code> tool/todo.go
type TodoStatus <code>type TodoStatus string</code> tool/todo.go
type TodoStore <code>type TodoStore struct</code> tool/todo.go
type ToolContext <code>type ToolContext struct</code> tool/tool.go
type UnlockSet <code>type UnlockSet struct</code> tool/deferred.go
type WebFetchConfig <code>type WebFetchConfig struct</code> tool/webfetch.go
type WebSearchConfig <code>type WebSearchConfig struct</code> tool/websearch.go

permission

종류 식별자 선언/시그니처 근거
const Allow <code>const Allow Behavior = "allow"</code> permission/permission.go
const Ask <code>const Ask Behavior = "ask"</code> permission/permission.go
const Deny <code>const Deny Behavior = "deny"</code> permission/permission.go
const ModeAcceptEdits <code>const ModeAcceptEdits Mode = "acceptEdits"</code> permission/permission.go
const ModeAuto <code>const ModeAuto Mode = "auto"</code> permission/permission.go
const ModeBypass <code>const ModeBypass Mode = "bypassPermissions"</code> permission/permission.go
const ModeDefault <code>const ModeDefault Mode = "default"</code> permission/permission.go
const ModeDontAsk <code>const ModeDontAsk Mode = "dontAsk"</code> permission/permission.go
const ModePlan <code>const ModePlan Mode = "plan"</code> permission/permission.go
field Context.Allowed <code>Allowed []string</code> permission/permission.go
field Context.Disallowed <code>Disallowed []string</code> permission/permission.go
field Context.Mode <code>Mode Mode</code> permission/permission.go
field Context.WorkingDir <code>WorkingDir string</code> permission/permission.go
field Decision.Behavior <code>Behavior Behavior</code> permission/permission.go
field Decision.Message <code>Message string</code> permission/permission.go
field Decision.Suggestions <code>Suggestions []Update</code> permission/permission.go
field Decision.UpdatedInput <code>UpdatedInput json.RawMessage</code> permission/permission.go
field Request.Ask <code>Ask CanUseTool</code> permission/permission.go
field Request.Ctx <code>Ctx Context</code> permission/permission.go
field Request.Input <code>Input json.RawMessage</code> permission/permission.go
field Request.IsReadOnly <code>IsReadOnly bool</code> permission/permission.go
field Request.ToolDecision <code>ToolDecision Decision</code> permission/permission.go
field Request.ToolName <code>ToolName string</code> permission/permission.go
field Update.Rule <code>Rule string json:&#34;rule&#34;</code> permission/permission.go
field Update.Type <code>Type string json:&#34;type&#34;</code> permission/permission.go
func Allowed <code>func Allowed() Decision</code> permission/permission.go
func AskUser <code>func AskUser(msg string) Decision</code> permission/permission.go
func Denied <code>func Denied(msg string) Decision</code> permission/permission.go
func Evaluate <code>func Evaluate(ctx context.Context, req Request) Decision</code> permission/permission.go
type Behavior <code>type Behavior string</code> permission/permission.go
type CanUseTool <code>type CanUseTool func(ctx context.Context, toolName string, input json.RawMessage, pc Context) Decision</code> permission/permission.go
type Context <code>type Context struct</code> permission/permission.go
type Decision <code>type Decision struct</code> permission/permission.go
type Mode <code>type Mode string</code> permission/permission.go
type Request <code>type Request struct</code> permission/permission.go
type Update <code>type Update struct</code> permission/permission.go

hook

종류 식별자 선언/시그니처 근거
const PostToolUse <code>const PostToolUse EventType = "PostToolUse"</code> hook/hook.go
const PostToolUseFailure <code>const PostToolUseFailure EventType = "PostToolUseFailure"</code> hook/hook.go
const PreToolUse <code>const PreToolUse EventType = "PreToolUse"</code> hook/hook.go
const SessionEnd <code>const SessionEnd EventType = "SessionEnd"</code> hook/hook.go
const SessionStart <code>const SessionStart EventType = "SessionStart"</code> hook/hook.go
const Stop <code>const Stop EventType = "Stop"</code> hook/hook.go
const SubagentStart <code>const SubagentStart EventType = "SubagentStart"</code> hook/hook.go
const UserPromptSubmit <code>const UserPromptSubmit EventType = "UserPromptSubmit"</code> hook/hook.go
field Event.AgentType <code>AgentType string</code> hook/hook.go
field Event.Input <code>Input json.RawMessage</code> hook/hook.go
field Event.IsError <code>IsError bool</code> hook/hook.go
field Event.Messages <code>Messages []llm.Message</code> hook/hook.go
field Event.Prompt <code>Prompt string</code> hook/hook.go
field Event.Result <code>Result json.RawMessage</code> hook/hook.go
field Event.ToolName <code>ToolName string</code> hook/hook.go
field Event.Type <code>Type EventType</code> hook/hook.go
field Result.AdditionalContext <code>AdditionalContext string</code> hook/hook.go
field Result.Decision <code>Decision string</code> hook/hook.go
field Result.Message <code>Message string</code> hook/hook.go
field Result.PreventContinuation <code>PreventContinuation bool</code> hook/hook.go
field Result.UpdatedInput <code>UpdatedInput json.RawMessage</code> hook/hook.go
func NewRegistry <code>func NewRegistry() *Registry</code> hook/hook.go
method Registry.FireSessionEnd <code>func (*Registry) FireSessionEnd(ctx context.Context)</code> hook/hook.go
method Registry.FireSessionStart <code>func (*Registry) FireSessionStart(ctx context.Context)</code> hook/hook.go
method Registry.FireSubagentStart <code>func (*Registry) FireSubagentStart(ctx context.Context, agentType string)</code> hook/hook.go
method Registry.FireUserPromptSubmit <code>func (*Registry) FireUserPromptSubmit(ctx context.Context, prompt string) string</code> hook/hook.go
method Registry.On <code>func (*Registry) On(t EventType, f Func) *Registry</code> hook/hook.go
method Registry.PostToolUse <code>func (*Registry) PostToolUse(ctx context.Context, name string, input, result []byte, isErr bool)</code> hook/hook.go
method Registry.PreToolUse <code>func (*Registry) PreToolUse(ctx context.Context, name string, input []byte) (bool, string, []byte)</code> hook/hook.go
method Registry.Stop <code>func (*Registry) Stop(ctx context.Context, messages []llm.Message) (prevent bool, blockingErrors []string, message string)</code> hook/hook.go
type Event <code>type Event struct</code> hook/hook.go
type EventType <code>type EventType string</code> hook/hook.go
type Func <code>type Func func(ctx context.Context, ev Event) Result</code> hook/hook.go
type Registry <code>type Registry struct</code> hook/hook.go
type Result <code>type Result struct</code> hook/hook.go

상위 영역: 라이브러리·이벤트·파일·설정 계약

전체로 돌아가기 · Markdown 원본

검색을 열면 색인을 읽습니다.

등록한 문서 본문에서 검색합니다.