UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

141 lines (140 loc) 6.4 kB
import { l as copyInternalToolResultState, t as acknowledgeInternalToolResult } from "../internal-hooks-CgPsiqhr.js"; import { n as CODE_MODE_WAIT_TOOL_NAME, t as CODE_MODE_EXEC_TOOL_NAME } from "../code-mode-control-tools-CRK5FQqM.js"; import { T as finalizeAgentToolAvailability } from "../agent-tool-metadata-CZvIgxro.js"; import { t as consumeTrustedToolNoStartError } from "../tool-result-error-CbDLJzG-.js"; import { D as TOOL_SEARCH_CODE_MODE_TOOL_NAME, E as TOOL_DESCRIBE_RAW_TOOL_NAME, T as TOOL_CALL_RAW_TOOL_NAME, i as resolveLocalModelLeanPreserveToolNames, k as TOOL_SEARCH_RAW_TOOL_NAME, n as filterLocalModelLeanTools, o as messageToolOwnsVisibleReply, v as clearToolSearchCatalog, x as createToolSearchCatalogRef } from "../local-model-lean-B52ThaBJ.js"; import { t as resolveConversationCapabilityProfile } from "../conversation-capability-profile-B6PkMXFD.js"; import { i as getCoreTtsToolResultMediaUrls } from "../tool-runtime-config-DiXD8jMf.js"; import { n as filterRuntimeCompatibleTools } from "../tool-schema-projection-a_T2Sr4Q.js"; import { d as createAgentHarnessPromptToolPolicy, i as createCodeModeTools, n as resolveAgentToolSurfacePlan, t as applyAgentToolSurfaceCatalog } from "../tool-surface-plan-DjS0WTA9.js"; //#region src/agents/harness/tool-surface-bridge.ts const TOOL_SEARCH_CONTROL_ALLOWLIST_NAMES = [ TOOL_SEARCH_CODE_MODE_TOOL_NAME, TOOL_SEARCH_RAW_TOOL_NAME, TOOL_DESCRIBE_RAW_TOOL_NAME, TOOL_CALL_RAW_TOOL_NAME ]; const CODE_MODE_CONTROL_ALLOWLIST_NAMES = [CODE_MODE_EXEC_TOOL_NAME, CODE_MODE_WAIT_TOOL_NAME]; function createAgentHarnessToolSurfaceRuntimeCore(params) { const forceDirectMessageTool = messageToolOwnsVisibleReply(params); const { codeModeControlsEnabled, toolSearchControlsEnabled, toolSearchConfig, toolSearchRuntimeConfig } = resolveAgentToolSurfacePlan({ config: params.config, agentId: params.agentId, sessionKey: params.sessionKey, forceDirectMessageTool, model: params.model, modelProvider: params.modelProvider, modelId: params.modelId, codeModeOverride: params.codeModeOverride, toolsEnabled: params.modelToolsEnabled, disableTools: params.disableTools, isRawModelRun: params.isRawModelRun === true, toolsAllow: params.toolsAllow }); const toolSearchCatalogRef = toolSearchControlsEnabled || codeModeControlsEnabled ? createToolSearchCatalogRef() : void 0; const runtimeToolAllowlist = (toolSearchControlsEnabled || codeModeControlsEnabled) && params.runtimeToolAllowlist ? [.../* @__PURE__ */ new Set([ ...params.runtimeToolAllowlist, ...toolSearchControlsEnabled ? TOOL_SEARCH_CONTROL_ALLOWLIST_NAMES : [], ...codeModeControlsEnabled ? CODE_MODE_CONTROL_ALLOWLIST_NAMES : [] ])] : params.runtimeToolAllowlist ? [...params.runtimeToolAllowlist] : void 0; const toolSearchCatalogExecutor = toolSearchControlsEnabled || codeModeControlsEnabled ? params.executeTool : void 0; const capabilityProfile = resolveConversationCapabilityProfile({ config: params.config, agentId: params.agentId, sessionKey: params.sessionKey, modelProvider: params.modelProvider, modelId: params.modelId, runtimeToolAllowlist, scheduledToolPolicy: params.scheduledToolPolicy }); const preserveToolNames = resolveLocalModelLeanPreserveToolNames({ toolNames: capabilityProfile.policy.explicitToolOverrideAllowlist, forceMessageTool: params.forceMessageTool, sourceReplyDeliveryMode: params.sourceReplyDeliveryMode }); const compactTools = (tools, options = {}) => { const projectedUncompactedTools = options.localModelLeanApplied ? tools : filterLocalModelLeanTools({ tools, config: params.config, agentId: params.agentId, sessionKey: params.sessionKey, preserveToolNames }); let effectiveTools = [...filterRuntimeCompatibleTools(projectedUncompactedTools).tools]; const codeModeTools = codeModeControlsEnabled ? createCodeModeTools({ config: params.config, runtimeConfig: params.config, modelContextWindowTokens: params.contextTokenBudget ?? params.model?.contextWindow, agentId: params.agentId, sessionKey: params.sessionKey, sessionId: params.sessionId, runId: params.runId, catalogRef: toolSearchCatalogRef, abortSignal: params.abortSignal, executeTool: params.executeTool }) : []; const compacted = applyAgentToolSurfaceCatalog({ tools: [...codeModeTools, ...effectiveTools], config: params.config, toolSearchRuntimeConfig, codeModeControlsEnabled, toolSearchConfig, forceDirectMessageTool, sessionId: params.sessionId, sessionKey: params.sessionKey, agentId: params.agentId, runId: params.runId, catalogRef: toolSearchCatalogRef, toolHookContext: options.hookContext }); const projectedCompactedTools = options.localModelLeanApplied ? compacted.tools : filterLocalModelLeanTools({ tools: compacted.tools, config: params.config, agentId: params.agentId, sessionKey: params.sessionKey, preserveToolNames }); effectiveTools = [...filterRuntimeCompatibleTools(projectedCompactedTools).tools]; if (!compacted.catalogRegistered) finalizeAgentToolAvailability(effectiveTools); return { tools: effectiveTools, promptToolPolicy: createAgentHarnessPromptToolPolicy({ tools: effectiveTools, catalogRef: toolSearchCatalogRef, codeModeControlsEnabled }) }; }; return { codeModeControlsEnabled, compactTools, config: toolSearchControlsEnabled ? toolSearchRuntimeConfig : params.config, includeToolSearchControls: toolSearchControlsEnabled, runtimeToolAllowlist, toolSearchCatalogRef, toolSearchControlsEnabled, cleanup: () => { clearToolSearchCatalog({ sessionId: params.sessionId, sessionKey: params.sessionKey, agentId: params.agentId, runId: params.runId, catalogRef: toolSearchCatalogRef }); }, toolSearchCatalogExecutor }; } //#endregion //#region src/plugin-sdk/agent-harness-tool-runtime.ts /** * Focused runtime SDK subpath for native harness tool-surface routing. * * Keep tool-search and code-mode dependencies out of the lightweight harness * lifecycle facade used during plugin startup. */ function createAgentHarnessToolSurfaceRuntime(params) { return createAgentHarnessToolSurfaceRuntimeCore(params); } //#endregion export { acknowledgeInternalToolResult, consumeTrustedToolNoStartError, copyInternalToolResultState, createAgentHarnessToolSurfaceRuntime, getCoreTtsToolResultMediaUrls };