first commit
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
package agentcore
|
||||
|
||||
// ThinkingLevel is the unified reasoning-effort enum (agent layer). It keeps
|
||||
// pi's full 6 levels; providers map it to their own wire format via a
|
||||
// per-model ThinkingLevelMap (decision #10).
|
||||
type ThinkingLevel string
|
||||
|
||||
const (
|
||||
ThinkingOff ThinkingLevel = "off"
|
||||
ThinkingMinimal ThinkingLevel = "minimal"
|
||||
ThinkingLow ThinkingLevel = "low"
|
||||
ThinkingMedium ThinkingLevel = "medium"
|
||||
ThinkingHigh ThinkingLevel = "high"
|
||||
ThinkingXHigh ThinkingLevel = "xhigh"
|
||||
ThinkingMax ThinkingLevel = "max"
|
||||
)
|
||||
|
||||
// ThinkingLevelMap maps a unified level to a provider-specific wire value.
|
||||
// A nil value means "supported but disabled at this level"; an absent key means
|
||||
// "this level is not supported by the model". The pointer is what distinguishes
|
||||
// those two cases, so it must stay *string.
|
||||
type ThinkingLevelMap map[ThinkingLevel]*string
|
||||
|
||||
// AfterToolCallResult is the optional override returned by the afterToolCall
|
||||
// hook. Every field is a pointer so the loop can distinguish "not provided"
|
||||
// (nil) from "provided, possibly zero" — pi expresses this with `??`, Go needs
|
||||
// pointers. Fields are applied with field-level replacement, no deep merge
|
||||
// (FR-5).
|
||||
type AfterToolCallResult struct {
|
||||
Content *ContentList
|
||||
Details *any
|
||||
Terminate *bool
|
||||
IsError *bool
|
||||
}
|
||||
|
||||
// AgentLoopTurnUpdate is the optional result of the prepareNextTurn hook: it can
|
||||
// swap the context, model, or thinking level for the next turn. Pointer fields
|
||||
// distinguish "not provided" from an explicit value; ThinkingLevel is
|
||||
// three-state (nil = keep, &"off" = disable, &level = set).
|
||||
type AgentLoopTurnUpdate struct {
|
||||
Context *AgentContext
|
||||
Model *string
|
||||
ThinkingLevel *ThinkingLevel
|
||||
}
|
||||
Reference in New Issue
Block a user