claude
通过 gomarkdoc 从公开 Go package 生成。
导入路径: github.com/777genius/plugin-kit-ai/sdk/claude
import "github.com/777genius/plugin-kit-ai/sdk/claude"Package claude exposes typed public hook inputs, responses, and registrars for Claude plugin runtime integrations.
Index
- func OutcomeFromResponse(r *Response) internalclaude.StopOutcome
- func PreToolOutcomeFromResponse(r *PreToolResponse) internalclaude.PreToolUseOutcome
- func RegisterCustomCommonJSON[T any](r *Registrar, eventName string, fn func(*T) *CommonResponse) error
- func RegisterCustomContextJSON[T any](r *Registrar, eventName string, fn func(*T) *ContextResponse) error
- func RegisterCustomPermissionRequestJSON[T any](r *Registrar, eventName string, fn func(*T) *PermissionRequestResponse) error
- func RegisterCustomPostToolUseJSON[T any](r *Registrar, eventName string, fn func(*T) *PostToolUseResponse) error
- func UserPromptOutcomeFromResponse(r *UserPromptResponse) internalclaude.UserPromptSubmitOutcome
- type CommonResponse
- type ConfigChangeEvent
- type ConfigChangeResponse
- type ContextResponse
- type NotificationEvent
- type NotificationResponse
- type PermissionBehavior
- type PermissionDecision
- type PermissionRequestEvent
- type PermissionRequestResponse
- func PermissionApprove() *PermissionRequestResponse
- func PermissionApproveWithUpdates(input json.RawMessage, updates []PermissionUpdate) *PermissionRequestResponse
- func PermissionBlock(message string, interrupt bool) *PermissionRequestResponse
- type PermissionRuleValue
- type PermissionUpdate
- type PostToolUseEvent
- type PostToolUseFailureEvent
- type PostToolUseFailureResponse
- type PostToolUseResponse
- type PreCompactEvent
- type PreCompactResponse
- type PreToolResponse
- func PreToolAllow() *PreToolResponse
- func PreToolAllowWithReason(reason string) *PreToolResponse
- func PreToolAsk(reason string) *PreToolResponse
- func PreToolBlockExit2(reason string) *PreToolResponse
- func PreToolDeny(reason string) *PreToolResponse
- type PreToolUseEvent
- type Registrar
- func NewRegistrar(backend runtime.RegistrarBackend) *Registrar
- func (r *Registrar) OnConfigChange(fn func(*ConfigChangeEvent) *ConfigChangeResponse)
- func (r *Registrar) OnNotification(fn func(*NotificationEvent) *NotificationResponse)
- func (r *Registrar) OnPermissionRequest(fn func(*PermissionRequestEvent) *PermissionRequestResponse)
- func (r *Registrar) OnPostToolUse(fn func(*PostToolUseEvent) *PostToolUseResponse)
- func (r *Registrar) OnPostToolUseFailure(fn func(*PostToolUseFailureEvent) *PostToolUseFailureResponse)
- func (r *Registrar) OnPreCompact(fn func(*PreCompactEvent) *PreCompactResponse)
- func (r *Registrar) OnPreToolUse(fn func(*PreToolUseEvent) *PreToolResponse)
- func (r *Registrar) OnSessionEnd(fn func(*SessionEndEvent) *SessionEndResponse)
- func (r *Registrar) OnSessionStart(fn func(*SessionStartEvent) *SessionStartResponse)
- func (r *Registrar) OnSetup(fn func(*SetupEvent) *SetupResponse)
- func (r *Registrar) OnStop(fn func(*StopEvent) *Response)
- func (r *Registrar) OnSubagentStart(fn func(*SubagentStartEvent) *SubagentStartResponse)
- func (r *Registrar) OnSubagentStop(fn func(*SubagentStopEvent) *SubagentStopResponse)
- func (r *Registrar) OnTaskCompleted(fn func(*TaskCompletedEvent) *TaskCompletedResponse)
- func (r *Registrar) OnTeammateIdle(fn func(*TeammateIdleEvent) *TeammateIdleResponse)
- func (r *Registrar) OnUserPromptSubmit(fn func(*UserPromptEvent) *UserPromptResponse)
- func (r *Registrar) OnWorktreeCreate(fn func(*WorktreeCreateEvent) *WorktreeCreateResponse)
- func (r *Registrar) OnWorktreeRemove(fn func(*WorktreeRemoveEvent) *WorktreeRemoveResponse)
- type Response
- func Allow() *Response
- func Block(reason string) *Response
- func BlockExit2(reason string) *Response
- func Continue(reason string) *Response
- func (r *Response) AllowStop() bool
- func (r *Response) BlockReason() string
- type SessionEndEvent
- type SessionEndResponse
- type SessionStartEvent
- type SessionStartResponse
- type SetupEvent
- type SetupResponse
- type StopEvent
- type SubagentStartEvent
- type SubagentStartResponse
- type SubagentStopEvent
- type SubagentStopResponse
- type TaskCompletedEvent
- type TaskCompletedResponse
- type TeammateIdleEvent
- type TeammateIdleResponse
- type UserPromptEvent
- type UserPromptResponse
- func UserPromptAllow() *UserPromptResponse
- func UserPromptAllowWithContext(context string) *UserPromptResponse
- func UserPromptBlock(reason string) *UserPromptResponse
- func UserPromptBlockExit2(reason string) *UserPromptResponse
- type WorktreeCreateEvent
- type WorktreeCreateResponse
- type WorktreeRemoveEvent
- type WorktreeRemoveResponse
func OutcomeFromResponse
func OutcomeFromResponse(r *Response) internalclaude.StopOutcomeOutcomeFromResponse maps a handler return value to a platform outcome (nil → allow).
func PreToolOutcomeFromResponse
func PreToolOutcomeFromResponse(r *PreToolResponse) internalclaude.PreToolUseOutcomePreToolOutcomeFromResponse maps handler return to platform outcome (nil → allow).
func RegisterCustomCommonJSON
func RegisterCustomCommonJSONT any *CommonResponse) errorRegisterCustomCommonJSON registers an experimental Claude hook backed by stdin JSON and a common synchronous response family.
func RegisterCustomContextJSON
func RegisterCustomContextJSONT any *ContextResponse) errorRegisterCustomContextJSON registers an experimental Claude hook backed by stdin JSON and a context-producing response family.
func RegisterCustomPermissionRequestJSON
func RegisterCustomPermissionRequestJSONT any *PermissionRequestResponse) errorRegisterCustomPermissionRequestJSON registers an experimental Claude hook backed by stdin JSON and the permission decision response family.
func RegisterCustomPostToolUseJSON
func RegisterCustomPostToolUseJSONT any *PostToolUseResponse) errorRegisterCustomPostToolUseJSON registers an experimental Claude hook backed by stdin JSON and the PostToolUse response family.
func UserPromptOutcomeFromResponse
func UserPromptOutcomeFromResponse(r *UserPromptResponse) internalclaude.UserPromptSubmitOutcomeUserPromptOutcomeFromResponse maps handler return to platform outcome (nil → allow).
type CommonResponse
CommonResponse contains fields shared by Claude's common hook response envelope.
type CommonResponse struct {
// Continue overrides the continue flag for compatible hooks when non-nil.
Continue *bool
// SuppressOutput omits the usual hook output message when true.
SuppressOutput bool
// StopReason explains why processing should stop.
StopReason string
// Decision carries the Claude decision token such as approve or block.
Decision string
// Reason carries a human-readable reason for the decision.
Reason string
// SystemMessage injects a system message into Claude when supported.
SystemMessage string
}type ConfigChangeEvent
ConfigChangeEvent is the Claude ConfigChange hook input.
type ConfigChangeEvent = internalclaude.ConfigChangeInputtype ConfigChangeResponse
ConfigChangeResponse is the response type for ConfigChange.
type ConfigChangeResponse = CommonResponsetype ContextResponse
ContextResponse extends CommonResponse with additional context text.
type ContextResponse struct {
CommonResponse
// AdditionalContext appends hook-specific context visible to Claude.
AdditionalContext string
}type NotificationEvent
NotificationEvent is the Claude Notification hook input.
type NotificationEvent = internalclaude.NotificationInputtype NotificationResponse
NotificationResponse is the response type for Notification.
type NotificationResponse = ContextResponsetype PermissionBehavior
PermissionBehavior enumerates allow or deny decisions for PermissionRequest.
type PermissionBehavior = internalclaude.PermissionBehaviorconst (
// PermissionAllow approves the pending action.
PermissionAllow PermissionBehavior = internalclaude.PermissionAllow
// PermissionDeny rejects the pending action.
PermissionDeny PermissionBehavior = internalclaude.PermissionDeny
)type PermissionDecision
PermissionDecision describes the approval or denial returned from PermissionRequest.
type PermissionDecision struct {
// Behavior is either PermissionAllow or PermissionDeny.
Behavior PermissionBehavior
// UpdatedInput replaces the pending input before Claude continues.
UpdatedInput json.RawMessage
// UpdatedPermissions amends stored permission rules when approving.
UpdatedPermissions []PermissionUpdate
// Message explains the deny decision to the user.
Message string
// Interrupt asks Claude to interrupt the current flow after the message.
Interrupt bool
}type PermissionRequestEvent
PermissionRequestEvent is the Claude PermissionRequest hook input.
type PermissionRequestEvent = internalclaude.PermissionRequestInputtype PermissionRequestResponse
PermissionRequestResponse extends CommonResponse with a permission decision.
type PermissionRequestResponse struct {
CommonResponse
// Permission holds the allow or deny decision when one is returned.
Permission *PermissionDecision
}func PermissionApprove
func PermissionApprove() *PermissionRequestResponsePermissionApprove returns a response that approves the requested action.
func PermissionApproveWithUpdates
func PermissionApproveWithUpdates(input json.RawMessage, updates []PermissionUpdate) *PermissionRequestResponsePermissionApproveWithUpdates approves the action and sends updated input or rules.
func PermissionBlock
func PermissionBlock(message string, interrupt bool) *PermissionRequestResponsePermissionBlock rejects the action with a message and interrupt choice.
type PermissionRuleValue
PermissionRuleValue mirrors the supported rule value payload for permission updates.
type PermissionRuleValue = internalclaude.PermissionRuleValuetype PermissionUpdate
PermissionUpdate mirrors a single permission rule update returned to Claude.
type PermissionUpdate = internalclaude.PermissionUpdatetype PostToolUseEvent
PostToolUseEvent is the Claude PostToolUse hook input.
type PostToolUseEvent = internalclaude.PostToolUseInputtype PostToolUseFailureEvent
PostToolUseFailureEvent is the Claude PostToolUseFailure hook input.
type PostToolUseFailureEvent = internalclaude.PostToolUseFailureInputtype PostToolUseFailureResponse
PostToolUseFailureResponse is the response type for PostToolUseFailure.
type PostToolUseFailureResponse = ContextResponsetype PostToolUseResponse
PostToolUseResponse extends CommonResponse with tool output overrides.
type PostToolUseResponse struct {
CommonResponse
// AdditionalContext appends hook-specific context visible to Claude.
AdditionalContext string
// UpdatedMCPToolOutput replaces the MCP tool output payload on the wire.
UpdatedMCPToolOutput json.RawMessage
}type PreCompactEvent
PreCompactEvent is the Claude PreCompact hook input.
type PreCompactEvent = internalclaude.PreCompactInputtype PreCompactResponse
PreCompactResponse is the response type for PreCompact.
type PreCompactResponse = CommonResponsetype PreToolResponse
PreToolResponse is the hook outcome for PreToolUse (hookSpecificOutput on wire).
type PreToolResponse struct {
// contains filtered or unexported fields
}func PreToolAllow
func PreToolAllow() *PreToolResponsePreToolAllow lets the tool run (exit 0 + "{}" or optional reason for allow path).
func PreToolAllowWithReason
func PreToolAllowWithReason(reason string) *PreToolResponsePreToolAllowWithReason returns allow with permissionDecisionReason (shown to user).
func PreToolAsk
func PreToolAsk(reason string) *PreToolResponsePreToolAsk prompts the user to confirm.
func PreToolBlockExit2
func PreToolBlockExit2(reason string) *PreToolResponsePreToolBlockExit2 blocks the tool via exit 2; stderr carries reason to Claude.
func PreToolDeny
func PreToolDeny(reason string) *PreToolResponsePreToolDeny blocks the tool with hookSpecificOutput deny.
type PreToolUseEvent
PreToolUseEvent is the Claude Code PreToolUse hook input (stdin JSON).
type PreToolUseEvent = internalclaude.PreToolUseInputtype Registrar
Registrar registers public Claude hook handlers on a root SDK app.
type Registrar struct {
// contains filtered or unexported fields
}func NewRegistrar
func NewRegistrar(backend runtime.RegistrarBackend) *RegistrarNewRegistrar builds a Claude registrar on top of the shared runtime backend.
func (*Registrar) OnConfigChange
func (r *Registrar) OnConfigChange(fn func(*ConfigChangeEvent) *ConfigChangeResponse)OnConfigChange registers a handler for the Claude ConfigChange.
func (*Registrar) OnNotification
func (r *Registrar) OnNotification(fn func(*NotificationEvent) *NotificationResponse)OnNotification registers a handler for the Claude Notification.
func (*Registrar) OnPermissionRequest
func (r *Registrar) OnPermissionRequest(fn func(*PermissionRequestEvent) *PermissionRequestResponse)OnPermissionRequest registers a handler for the Claude PermissionRequest.
func (*Registrar) OnPostToolUse
func (r *Registrar) OnPostToolUse(fn func(*PostToolUseEvent) *PostToolUseResponse)OnPostToolUse registers a handler for the Claude PostToolUse.
func (*Registrar) OnPostToolUseFailure
func (r *Registrar) OnPostToolUseFailure(fn func(*PostToolUseFailureEvent) *PostToolUseFailureResponse)OnPostToolUseFailure registers a handler for the Claude PostToolUseFailure.
func (*Registrar) OnPreCompact
func (r *Registrar) OnPreCompact(fn func(*PreCompactEvent) *PreCompactResponse)OnPreCompact registers a handler for the Claude PreCompact.
func (*Registrar) OnPreToolUse
func (r *Registrar) OnPreToolUse(fn func(*PreToolUseEvent) *PreToolResponse)OnPreToolUse registers a handler for the Claude PreToolUse.
func (*Registrar) OnSessionEnd
func (r *Registrar) OnSessionEnd(fn func(*SessionEndEvent) *SessionEndResponse)OnSessionEnd registers a handler for the Claude SessionEnd.
func (*Registrar) OnSessionStart
func (r *Registrar) OnSessionStart(fn func(*SessionStartEvent) *SessionStartResponse)OnSessionStart registers a handler for the Claude SessionStart.
func (*Registrar) OnSetup
func (r *Registrar) OnSetup(fn func(*SetupEvent) *SetupResponse)OnSetup registers a handler for the Claude Setup.
func (*Registrar) OnStop
func (r *Registrar) OnStop(fn func(*StopEvent) *Response)OnStop registers a handler for the Claude Stop.
func (*Registrar) OnSubagentStart
func (r *Registrar) OnSubagentStart(fn func(*SubagentStartEvent) *SubagentStartResponse)OnSubagentStart registers a handler for the Claude SubagentStart.
func (*Registrar) OnSubagentStop
func (r *Registrar) OnSubagentStop(fn func(*SubagentStopEvent) *SubagentStopResponse)OnSubagentStop registers a handler for the Claude SubagentStop.
func (*Registrar) OnTaskCompleted
func (r *Registrar) OnTaskCompleted(fn func(*TaskCompletedEvent) *TaskCompletedResponse)OnTaskCompleted registers a handler for the Claude TaskCompleted.
func (*Registrar) OnTeammateIdle
func (r *Registrar) OnTeammateIdle(fn func(*TeammateIdleEvent) *TeammateIdleResponse)OnTeammateIdle registers a handler for the Claude TeammateIdle.
func (*Registrar) OnUserPromptSubmit
func (r *Registrar) OnUserPromptSubmit(fn func(*UserPromptEvent) *UserPromptResponse)OnUserPromptSubmit registers a handler for the Claude UserPromptSubmit.
func (*Registrar) OnWorktreeCreate
func (r *Registrar) OnWorktreeCreate(fn func(*WorktreeCreateEvent) *WorktreeCreateResponse)OnWorktreeCreate registers a handler for the Claude WorktreeCreate.
func (*Registrar) OnWorktreeRemove
func (r *Registrar) OnWorktreeRemove(fn func(*WorktreeRemoveEvent) *WorktreeRemoveResponse)OnWorktreeRemove registers a handler for the Claude WorktreeRemove.
type Response
Response is the hook outcome for Stop (see Stop decision control in Claude Code hooks reference).
type Response struct {
// contains filtered or unexported fields
}func Allow
func Allow() *ResponseAllow lets Claude stop (omit decision / empty JSON object on wire).
func Block
func Block(reason string) *ResponseBlock prevents Claude from stopping; maps to {"decision":"block","reason":...} with exit 0.
func BlockExit2
func BlockExit2(reason string) *ResponseBlockExit2 requests a non-zero exit without JSON stdout (alternate path per Claude Stop docs).
func Continue
func Continue(reason string) *ResponseContinue is the same as Block for Stop: keep the session running (decision block on wire).
func (*Response) AllowStop
func (r *Response) AllowStop() boolAllowStop reports whether the handler allows the session to stop.
func (*Response) BlockReason
func (r *Response) BlockReason() stringBlockReason is set when AllowStop is false (JSON block path or exit-2 path).
type SessionEndEvent
SessionEndEvent is the Claude SessionEnd hook input.
type SessionEndEvent = internalclaude.SessionEndInputtype SessionEndResponse
SessionEndResponse is the response type for SessionEnd.
type SessionEndResponse = CommonResponsetype SessionStartEvent
SessionStartEvent is the Claude SessionStart hook input.
type SessionStartEvent = internalclaude.SessionStartInputtype SessionStartResponse
SessionStartResponse is the response type for SessionStart.
type SessionStartResponse = ContextResponsetype SetupEvent
SetupEvent is the Claude Setup hook input.
type SetupEvent = internalclaude.SetupInputtype SetupResponse
SetupResponse is the response type for Setup.
type SetupResponse = ContextResponsetype StopEvent
StopEvent is the Claude Code Stop hook input (decoded from stdin JSON). Field names follow Claude docs; wire uses snake_case via the platform adapter.
type StopEvent = internalclaude.StopInputtype SubagentStartEvent
SubagentStartEvent is the Claude SubagentStart hook input.
type SubagentStartEvent = internalclaude.SubagentStartInputtype SubagentStartResponse
SubagentStartResponse is the response type for SubagentStart.
type SubagentStartResponse = ContextResponsetype SubagentStopEvent
SubagentStopEvent is the Claude SubagentStop hook input.
type SubagentStopEvent = internalclaude.SubagentStopInputtype SubagentStopResponse
SubagentStopResponse is the response type for SubagentStop.
type SubagentStopResponse = CommonResponsetype TaskCompletedEvent
TaskCompletedEvent is the Claude TaskCompleted hook input.
type TaskCompletedEvent = internalclaude.TaskCompletedInputtype TaskCompletedResponse
TaskCompletedResponse is the response type for TaskCompleted.
type TaskCompletedResponse = CommonResponsetype TeammateIdleEvent
TeammateIdleEvent is the Claude TeammateIdle hook input.
type TeammateIdleEvent = internalclaude.TeammateIdleInputtype TeammateIdleResponse
TeammateIdleResponse is the response type for TeammateIdle.
type TeammateIdleResponse = CommonResponsetype UserPromptEvent
UserPromptEvent is the Claude Code UserPromptSubmit hook input.
type UserPromptEvent = internalclaude.UserPromptSubmitInputtype UserPromptResponse
UserPromptResponse is the hook outcome for UserPromptSubmit.
type UserPromptResponse struct {
// contains filtered or unexported fields
}func UserPromptAllow
func UserPromptAllow() *UserPromptResponseUserPromptAllow lets the prompt proceed.
func UserPromptAllowWithContext
func UserPromptAllowWithContext(context string) *UserPromptResponseUserPromptAllowWithContext adds additionalContext on exit 0 (JSON).
func UserPromptBlock
func UserPromptBlock(reason string) *UserPromptResponseUserPromptBlock blocks the prompt with decision/reason (exit 0 + JSON).
func UserPromptBlockExit2
func UserPromptBlockExit2(reason string) *UserPromptResponseUserPromptBlockExit2 rejects the prompt via exit 2; stderr to Claude.
type WorktreeCreateEvent
WorktreeCreateEvent is the Claude WorktreeCreate hook input.
type WorktreeCreateEvent = internalclaude.WorktreeCreateInputtype WorktreeCreateResponse
WorktreeCreateResponse is the response type for WorktreeCreate.
type WorktreeCreateResponse = CommonResponsetype WorktreeRemoveEvent
WorktreeRemoveEvent is the Claude WorktreeRemove hook input.
type WorktreeRemoveEvent = internalclaude.WorktreeRemoveInputtype WorktreeRemoveResponse
WorktreeRemoveResponse is the response type for WorktreeRemove.
type WorktreeRemoveResponse = CommonResponse