openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
141 lines (140 loc) • 6.4 kB
JavaScript
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 };