diff --git a/extensions/matrix/src/matrix/config-update.ts b/extensions/matrix/src/matrix/config-update.ts index 24f9891900f..a639196bfd1 100644 --- a/extensions/matrix/src/matrix/config-update.ts +++ b/extensions/matrix/src/matrix/config-update.ts @@ -3,13 +3,16 @@ import { coerceSecretRef } from "openclaw/plugin-sdk/secret-ref-runtime"; import { normalizeSecretInputString } from "openclaw/plugin-sdk/setup"; import type { CoreConfig, MatrixConfig } from "../types.js"; import { findMatrixAccountConfig } from "./account-config.js"; -import { shouldStoreMatrixAccountAtTopLevel } from "./config-paths.js"; +import { + resolveMatrixConfigPath as resolveMatrixConfigPathBase, + shouldStoreMatrixAccountAtTopLevel, +} from "./config-paths.js"; export { resolveMatrixConfigFieldPath, - resolveMatrixConfigPath, shouldStoreMatrixAccountAtTopLevel, } from "./config-paths.js"; +export const resolveMatrixConfigPath = resolveMatrixConfigPathBase; export type MatrixAccountPatch = { name?: string | null; diff --git a/extensions/xai/api.ts b/extensions/xai/api.ts index 76c5c985401..3bf96c9a3ab 100644 --- a/extensions/xai/api.ts +++ b/extensions/xai/api.ts @@ -3,6 +3,7 @@ import { normalizeNativeXaiModelId, normalizeProviderId, } from "openclaw/plugin-sdk/provider-model-shared"; +import { resolveXaiModelCompatPatch as resolveXaiModelCompatPatchBase } from "openclaw/plugin-sdk/provider-tools"; import { readStringValue } from "openclaw/plugin-sdk/text-runtime"; export { buildXaiProvider } from "./provider-catalog.js"; @@ -26,8 +27,8 @@ export { applyXaiModelCompat, HTML_ENTITY_TOOL_CALL_ARGUMENTS_ENCODING, XAI_TOOL_SCHEMA_PROFILE, - resolveXaiModelCompatPatch, } from "openclaw/plugin-sdk/provider-tools"; +export const resolveXaiModelCompatPatch = resolveXaiModelCompatPatchBase; const XAI_NATIVE_ENDPOINT_HOSTS = new Set(["api.x.ai", "api.grok.x.ai"]); diff --git a/src/infra/replace-file.ts b/src/infra/replace-file.ts index 4714c6278ca..09a2232412c 100644 --- a/src/infra/replace-file.ts +++ b/src/infra/replace-file.ts @@ -3,12 +3,12 @@ import fs from "node:fs/promises"; import path from "node:path"; import { movePathWithCopyFallback as movePathWithCopyFallbackBase, + replaceFileAtomic as replaceFileAtomicBase, type MovePathWithCopyFallbackOptions as BaseMovePathWithCopyFallbackOptions, } from "@openclaw/fs-safe/atomic"; export { replaceDirectoryAtomic, - replaceFileAtomic, replaceFileAtomicSync, type ReplaceDirectoryAtomicOptions, type ReplaceFileAtomicFileSystem, @@ -18,6 +18,8 @@ export { type ReplaceFileAtomicSyncOptions, } from "@openclaw/fs-safe/atomic"; +export const replaceFileAtomic = replaceFileAtomicBase; + export type MovePathWithCopyFallbackOptions = BaseMovePathWithCopyFallbackOptions & { sourceHardlinks?: "allow" | "reject"; }; diff --git a/src/plugins/hook-types.ts b/src/plugins/hook-types.ts index 8fe13dd896f..78ecb9861c1 100644 --- a/src/plugins/hook-types.ts +++ b/src/plugins/hook-types.ts @@ -408,10 +408,7 @@ export type PluginHookToolContext = { trace?: DiagnosticTraceContext; toolName: string; toolCallId?: string; - // oxlint-disable-next-line typescript/no-unnecessary-type-parameters -- Plugin callers type JSON reads by namespace. - getSessionExtension?: ( - namespace: string, - ) => T | undefined; + getSessionExtension?: (namespace: string) => PluginJsonValue | undefined; channelId?: string; }; diff --git a/src/plugins/types.ts b/src/plugins/types.ts index 9a82aacd619..513319d8bc0 100644 --- a/src/plugins/types.ts +++ b/src/plugins/types.ts @@ -2603,10 +2603,7 @@ export type OpenClawPluginApi = { /** Store namespaced, JSON-compatible data for the active run. Cleared on run end/error. */ setRunContext: (patch: PluginRunContextPatch) => boolean; /** Read namespaced plugin data for a run. */ - // oxlint-disable-next-line typescript/no-unnecessary-type-parameters -- Run-context JSON reads are caller-typed by namespace. - getRunContext: ( - params: PluginRunContextGetParams, - ) => T | undefined; + getRunContext: (params: PluginRunContextGetParams) => PluginJsonValue | undefined; /** Clear one namespace or all namespaces this plugin owns for a run. */ clearRunContext: (params: { runId: string; namespace?: string }) => void; /** Register a plugin-owned session job so reset/delete/disable can clean it deterministically. */