mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-21 01:51:39 -06:00
c7e7ac2728
* docs(secrets): remove retired web credential paths * refactor(web): remove retired provider compatibility paths * refactor(providers): delete retired compatibility routes * refactor(secrets): remove retired credential aliases * refactor(plugin-sdk): delete retired compatibility surfaces * docs(plugin-sdk): remove retired migration guidance * chore(plugin-sdk): refresh rebased surface budgets * chore(plugin-sdk): refresh API removal baseline * refactor(compat): migrate retired internal callers * chore(plugin-sdk): refresh current-main baselines * test(config): migrate plugin-owned secret assertions * test(gateway): narrow plugin secret refs * fix(plugin-sdk): preserve private boundary type identity * chore(compat): remove stale sweep references * chore(lint): lower max-lines budget * refactor(secrets): remove unused web helper * build(plugin-sdk): drop removed compat entries * chore(plugin-sdk): refresh rebased API baseline * chore(plugin-sdk): use Linux API baseline hash * fix(plugin-sdk): preserve private bundled build entries * fix(plugin-sdk): package private runtime facades * fix(plugins): preserve external credential contracts
114 lines
3.5 KiB
TypeScript
114 lines
3.5 KiB
TypeScript
import type { AgentMessage } from "../agents/runtime/index.js";
|
|
import type { AnyAgentTool } from "../agents/tools/common.js";
|
|
import type { OpenClawConfig } from "../config/types.openclaw.js";
|
|
import type { ProviderRuntimeModel } from "./provider-runtime-model.types.js";
|
|
|
|
type ProviderReplaySanitizeMode = "full" | "images-only";
|
|
|
|
type ProviderReplayToolCallIdMode = "strict" | "strict9";
|
|
|
|
export type ProviderReasoningOutputMode = "native" | "tagged";
|
|
|
|
/**
|
|
* Provider-owned replay/compaction transcript policy.
|
|
*
|
|
* These values are consumed by shared history replay and compaction logic.
|
|
* Return only the fields the provider wants to override; core fills the rest
|
|
* with its default policy.
|
|
*/
|
|
export type ProviderReplayPolicy = {
|
|
sanitizeMode?: ProviderReplaySanitizeMode;
|
|
sanitizeToolCallIds?: boolean;
|
|
toolCallIdMode?: ProviderReplayToolCallIdMode;
|
|
duplicateToolCallIdStyle?: "openai";
|
|
preserveNativeAnthropicToolUseIds?: boolean;
|
|
preserveSignatures?: boolean;
|
|
sanitizeThoughtSignatures?: {
|
|
allowBase64Only?: boolean;
|
|
includeCamelCase?: boolean;
|
|
};
|
|
dropThinkingBlocks?: boolean;
|
|
dropReasoningFromHistory?: boolean;
|
|
repairToolUseResultPairing?: boolean;
|
|
applyAssistantFirstOrderingFix?: boolean;
|
|
validateGeminiTurns?: boolean;
|
|
validateAnthropicTurns?: boolean;
|
|
allowSyntheticToolResults?: boolean;
|
|
};
|
|
|
|
/**
|
|
* Provider-owned replay/compaction policy input.
|
|
*
|
|
* Use this when transcript replay rules depend on provider/model transport
|
|
* behavior and should stay with the provider plugin instead of core tables.
|
|
*/
|
|
export type ProviderReplayPolicyContext = {
|
|
config?: OpenClawConfig;
|
|
agentDir?: string;
|
|
workspaceDir?: string;
|
|
env?: NodeJS.ProcessEnv;
|
|
provider: string;
|
|
modelId?: string;
|
|
modelApi?: string | null;
|
|
model?: ProviderRuntimeModel;
|
|
};
|
|
|
|
export type ProviderReplaySessionEntry = {
|
|
customType: string;
|
|
data?: unknown;
|
|
};
|
|
|
|
export type ProviderReplaySessionState = {
|
|
getCustomEntries(): ProviderReplaySessionEntry[];
|
|
appendCustomEntry(customType: string, data: unknown): void;
|
|
};
|
|
|
|
/**
|
|
* Provider-owned replay-history sanitization input.
|
|
*
|
|
* Runs after core applies generic transcript cleanup so plugins can make
|
|
* provider-specific replay rewrites without owning the whole compaction flow.
|
|
*/
|
|
export type ProviderSanitizeReplayHistoryContext = ProviderReplayPolicyContext & {
|
|
sessionId: string;
|
|
messages: AgentMessage[];
|
|
allowedToolNames?: Iterable<string>;
|
|
sessionState?: ProviderReplaySessionState;
|
|
};
|
|
|
|
/**
|
|
* Provider-owned final replay-turn validation input.
|
|
*
|
|
* Use this for providers that require strict turn ordering or additional
|
|
* replay-time transcript validation beyond generic sanitation.
|
|
*/
|
|
export type ProviderValidateReplayTurnsContext = ProviderReplayPolicyContext & {
|
|
sessionId?: string;
|
|
messages: AgentMessage[];
|
|
sessionState?: ProviderReplaySessionState;
|
|
};
|
|
|
|
/**
|
|
* Provider-owned tool-schema normalization input.
|
|
*
|
|
* Runs before tool registration for replay/compaction/inference so providers
|
|
* can rewrite schema keywords that their transport family does not support.
|
|
*/
|
|
export type ProviderNormalizeToolSchemasContext = ProviderReplayPolicyContext & {
|
|
tools: AnyAgentTool[];
|
|
};
|
|
|
|
export type ProviderToolSchemaDiagnostic = {
|
|
toolName: string;
|
|
toolIndex?: number;
|
|
violations: string[];
|
|
};
|
|
|
|
/**
|
|
* Provider-owned reasoning output mode input.
|
|
*
|
|
* Use this when a provider requires a specific reasoning-output contract, such
|
|
* as text tags instead of native structured reasoning fields.
|
|
*/
|
|
export type ProviderReasoningOutputModeContext = ProviderReplayPolicyContext;
|