init claude-code
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
// biome-ignore-all assist/source/organizeImports: ANT-ONLY import markers must not be reordered
|
||||
import { useMemo } from 'react'
|
||||
import type { Tools, ToolPermissionContext } from '../Tool.js'
|
||||
import { assembleToolPool } from '../tools.js'
|
||||
import { useAppState } from '../state/AppState.js'
|
||||
import { mergeAndFilterTools } from '../utils/toolPool.js'
|
||||
|
||||
/**
|
||||
* React hook that assembles the full tool pool for the REPL.
|
||||
*
|
||||
* Uses assembleToolPool() (the shared pure function used by both REPL and runAgent)
|
||||
* to combine built-in tools with MCP tools, applying deny rules and deduplication.
|
||||
* Any extra initialTools are merged on top.
|
||||
*
|
||||
* @param initialTools - Extra tools to include (built-in + startup MCP from props).
|
||||
* These are merged with the assembled pool and take precedence in deduplication.
|
||||
* @param mcpTools - MCP tools discovered dynamically (from mcp state)
|
||||
* @param toolPermissionContext - Permission context for filtering
|
||||
*/
|
||||
export function useMergedTools(
|
||||
initialTools: Tools,
|
||||
mcpTools: Tools,
|
||||
toolPermissionContext: ToolPermissionContext,
|
||||
): Tools {
|
||||
let replBridgeEnabled = false
|
||||
let replBridgeOutboundOnly = false
|
||||
return useMemo(() => {
|
||||
// assembleToolPool is the shared function that both REPL and runAgent use.
|
||||
// It handles: getTools() + MCP deny-rule filtering + dedup + MCP CLI exclusion.
|
||||
const assembled = assembleToolPool(toolPermissionContext, mcpTools)
|
||||
|
||||
return mergeAndFilterTools(
|
||||
initialTools,
|
||||
assembled,
|
||||
toolPermissionContext.mode,
|
||||
)
|
||||
}, [
|
||||
initialTools,
|
||||
mcpTools,
|
||||
toolPermissionContext,
|
||||
replBridgeEnabled,
|
||||
replBridgeOutboundOnly,
|
||||
])
|
||||
}
|
||||
Reference in New Issue
Block a user