fix(agent): enforce frontmatter policy for runtime tools
This commit is contained in:
parent
133c3cef14
commit
a450bb4b8b
1 changed files with 16 additions and 16 deletions
|
|
@ -114,7 +114,7 @@ func registerSharedTools(
|
|||
if err != nil {
|
||||
logger.ErrorCF("agent", "Failed to create web search tool", map[string]any{"error": err.Error()})
|
||||
} else if searchTool != nil {
|
||||
agent.Tools.Register(searchTool)
|
||||
registerToolIfAllowed(agent, searchTool)
|
||||
}
|
||||
}
|
||||
if cfg.Tools.IsToolEnabled("web_fetch") {
|
||||
|
|
@ -127,19 +127,19 @@ func registerSharedTools(
|
|||
if err != nil {
|
||||
logger.ErrorCF("agent", "Failed to create web fetch tool", map[string]any{"error": err.Error()})
|
||||
} else {
|
||||
agent.Tools.Register(fetchTool)
|
||||
registerToolIfAllowed(agent, fetchTool)
|
||||
}
|
||||
}
|
||||
|
||||
// Hardware tools (I2C, SPI) - Linux only, returns error on other platforms
|
||||
if cfg.Tools.IsToolEnabled("i2c") {
|
||||
agent.Tools.Register(tools.NewI2CTool())
|
||||
registerToolIfAllowed(agent, tools.NewI2CTool())
|
||||
}
|
||||
if cfg.Tools.IsToolEnabled("spi") {
|
||||
agent.Tools.Register(tools.NewSPITool())
|
||||
registerToolIfAllowed(agent, tools.NewSPITool())
|
||||
}
|
||||
if cfg.Tools.IsToolEnabled("serial") {
|
||||
agent.Tools.Register(tools.NewSerialTool())
|
||||
registerToolIfAllowed(agent, tools.NewSerialTool())
|
||||
}
|
||||
|
||||
// Message tool
|
||||
|
|
@ -166,7 +166,7 @@ func registerSharedTools(
|
|||
ReplyToMessageID: replyToMessageID,
|
||||
})
|
||||
})
|
||||
agent.Tools.Register(messageTool)
|
||||
registerToolIfAllowed(agent, messageTool)
|
||||
}
|
||||
if cfg.Tools.IsToolEnabled("reaction") {
|
||||
reactionTool := tools.NewReactionTool()
|
||||
|
|
@ -185,7 +185,7 @@ func registerSharedTools(
|
|||
_, err := rc.ReactToMessage(ctx, chatID, messageID)
|
||||
return err
|
||||
})
|
||||
agent.Tools.Register(reactionTool)
|
||||
registerToolIfAllowed(agent, reactionTool)
|
||||
}
|
||||
|
||||
// Send file tool (outbound media via MediaStore — store injected later by SetMediaStore)
|
||||
|
|
@ -197,11 +197,11 @@ func registerSharedTools(
|
|||
nil,
|
||||
allowReadPaths,
|
||||
)
|
||||
agent.Tools.Register(sendFileTool)
|
||||
registerToolIfAllowed(agent, sendFileTool)
|
||||
}
|
||||
|
||||
if ttsProvider != nil {
|
||||
agent.Tools.Register(tools.NewSendTTSTool(ttsProvider, nil))
|
||||
registerToolIfAllowed(agent, tools.NewSendTTSTool(ttsProvider, nil))
|
||||
}
|
||||
|
||||
if cfg.Tools.IsToolEnabled("load_image") {
|
||||
|
|
@ -212,7 +212,7 @@ func registerSharedTools(
|
|||
nil,
|
||||
allowReadPaths,
|
||||
)
|
||||
agent.Tools.Register(loadImageTool)
|
||||
registerToolIfAllowed(agent, loadImageTool)
|
||||
}
|
||||
|
||||
// Skill discovery and installation tools
|
||||
|
|
@ -227,11 +227,11 @@ func registerSharedTools(
|
|||
cfg.Tools.Skills.SearchCache.MaxSize,
|
||||
time.Duration(cfg.Tools.Skills.SearchCache.TTLSeconds)*time.Second,
|
||||
)
|
||||
agent.Tools.Register(tools.NewFindSkillsTool(registryMgr, searchCache))
|
||||
registerToolIfAllowed(agent, tools.NewFindSkillsTool(registryMgr, searchCache))
|
||||
}
|
||||
|
||||
if install_skills_enable {
|
||||
agent.Tools.Register(tools.NewInstallSkillTool(registryMgr, agent.Workspace))
|
||||
registerToolIfAllowed(agent, tools.NewInstallSkillTool(registryMgr, agent.Workspace))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -324,15 +324,15 @@ func registerSharedTools(
|
|||
return registry.CanSpawnSubagent(currentAgentID, targetAgentID)
|
||||
})
|
||||
|
||||
agent.Tools.Register(spawnTool)
|
||||
registerToolIfAllowed(agent, spawnTool)
|
||||
|
||||
// Also register the synchronous subagent tool
|
||||
subagentTool := tools.NewSubagentTool(subagentManager)
|
||||
subagentTool.SetSpawner(NewSubTurnSpawner(al))
|
||||
agent.Tools.Register(subagentTool)
|
||||
registerToolIfAllowed(agent, subagentTool)
|
||||
}
|
||||
if spawnStatusEnabled {
|
||||
agent.Tools.Register(tools.NewSpawnStatusTool(subagentManager))
|
||||
registerToolIfAllowed(agent, tools.NewSpawnStatusTool(subagentManager))
|
||||
}
|
||||
} else if (spawnEnabled || spawnStatusEnabled) && !cfg.Tools.IsToolEnabled("subagent") {
|
||||
logger.WarnCF("agent", "spawn/spawn_status tools require subagent to be enabled", nil)
|
||||
|
|
@ -350,7 +350,7 @@ func registerSharedTools(
|
|||
delegateTool.SetAllowlistChecker(func(targetAgentID string) bool {
|
||||
return registry.CanSpawnSubagent(currentAgentID, targetAgentID)
|
||||
})
|
||||
agent.Tools.Register(delegateTool)
|
||||
registerToolIfAllowed(agent, delegateTool)
|
||||
}
|
||||
|
||||
warnOnUnknownAgentToolDeclarations(agentID, agent.Workspace, agent.Definition, agent.Tools)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue