fix(ci): restore contract-safe core imports

This commit is contained in:
Peter Steinberger
2026-04-04 11:35:46 +01:00
parent 8cf20a0c59
commit c5c5c77ebb
37 changed files with 73 additions and 52 deletions

View File

@@ -0,0 +1,4 @@
export {
buildChannelConfigSchema,
MSTeamsConfigSchema,
} from "openclaw/plugin-sdk/channel-config-schema";

View File

@@ -1,4 +1,4 @@
import { buildChannelConfigSchema, MSTeamsConfigSchema } from "openclaw/plugin-sdk/msteams";
import { buildChannelConfigSchema, MSTeamsConfigSchema } from "../config-api.js";
import { msTeamsChannelConfigUiHints } from "./config-ui-hints.js";
export const MSTeamsChannelConfigSchema = buildChannelConfigSchema(MSTeamsConfigSchema, {

View File

@@ -2,7 +2,6 @@ import type { OpenClawConfig } from "../../config/config.js";
import { loadConfig } from "../../config/config.js";
import { resolveStorePath } from "../../config/sessions/paths.js";
import { loadSessionStore } from "../../config/sessions/store-load.js";
import { updateSessionStore } from "../../config/sessions/store.runtime.js";
import { resolveAllAgentSessionStoreTargets } from "../../config/sessions/targets.js";
import {
mergeSessionEntry,
@@ -11,6 +10,15 @@ import {
} from "../../config/sessions/types.js";
import { parseAgentSessionKey } from "../../routing/session-key.js";
let sessionStoreRuntimePromise:
| Promise<typeof import("../../config/sessions/store.runtime.js")>
| undefined;
function loadSessionStoreRuntime() {
sessionStoreRuntimePromise ??= import("../../config/sessions/store.runtime.js");
return sessionStoreRuntimePromise;
}
export type AcpSessionStoreEntry = {
cfg: OpenClawConfig;
storePath: string;
@@ -139,6 +147,7 @@ export async function upsertAcpSessionMeta(params: {
sessionKey,
cfg: params.cfg,
});
const { updateSessionStore } = await loadSessionStoreRuntime();
return await updateSessionStore(
storePath,
(store) => {

View File

@@ -4,7 +4,7 @@ import { streamAnthropic, type AnthropicOptions, type Model } from "@mariozechne
import {
resolveAnthropicVertexClientRegion,
resolveAnthropicVertexProjectId,
} from "../plugin-sdk/anthropic-vertex.js";
} from "../../extensions/anthropic-vertex/api.js";
import {
applyAnthropicPayloadPolicyToParams,
resolveAnthropicPayloadPolicy,

View File

@@ -1,5 +1,5 @@
import { isClaudeCliProvider } from "../../extensions/anthropic/api.js";
import type { CliBackendConfig } from "../config/types.js";
import { isClaudeCliProvider } from "../plugin-sdk/anthropic-cli.js";
import { isRecord } from "../utils.js";
type CliUsage = {

View File

@@ -5,11 +5,11 @@ import path from "node:path";
import type { AgentTool } from "@mariozechner/pi-agent-core";
import type { ImageContent } from "@mariozechner/pi-ai";
import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
import { isClaudeCliProvider } from "../../../extensions/anthropic/api.js";
import type { ThinkLevel } from "../../auto-reply/thinking.js";
import type { OpenClawConfig } from "../../config/config.js";
import type { CliBackendConfig } from "../../config/types.js";
import { MAX_IMAGE_BYTES } from "../../media/constants.js";
import { isClaudeCliProvider } from "../../plugin-sdk/anthropic-cli.js";
import { buildTtsSystemPromptHint } from "../../tts/tts.js";
import { buildModelAliasLines } from "../model-alias-lines.js";
import { resolveDefaultModelForAgent } from "../model-selection.js";

View File

@@ -7,7 +7,7 @@ import {
isMemoryMultimodalEnabled,
normalizeMemoryMultimodalSettings,
type MemoryMultimodalSettings,
} from "../plugin-sdk/memory-core-host-multimodal.js";
} from "../memory-host-sdk/multimodal.js";
import { getMemoryEmbeddingProvider } from "../plugins/memory-embedding-providers.js";
import { clampInt, clampNumber, resolveUserPath } from "../utils.js";
import { resolveAgentConfig } from "./agent-scope.js";

View File

@@ -1,6 +1,6 @@
import { getEnvApiKey } from "@mariozechner/pi-ai";
import { hasAnthropicVertexAvailableAuth } from "../../extensions/anthropic-vertex/api.js";
import { getShellEnvAppliedKeys } from "../infra/shell-env.js";
import { hasAnthropicVertexAvailableAuth } from "../plugin-sdk/anthropic-vertex-auth-presence.js";
import { normalizeOptionalSecretInput } from "../utils/normalize-secret-input.js";
import { PROVIDER_ENV_API_KEY_CANDIDATES } from "./model-auth-env-vars.js";
import { GCP_VERTEX_CREDENTIALS_MARKER } from "./model-auth-markers.js";

View File

@@ -10,4 +10,4 @@ export type {
} from "./models-config.providers.secrets.js";
export { applyNativeStreamingUsageCompat } from "./models-config.providers.policy.js";
export { enforceSourceManagedProviderSecrets } from "./models-config.providers.source-managed.js";
export { resolveOllamaApiBase } from "../plugin-sdk/ollama-surface.js";
export { resolveOllamaApiBase } from "../../extensions/ollama/api.js";

View File

@@ -1,4 +1,4 @@
import { extractKeywords, isQueryStopWordToken } from "../../plugin-sdk/memory-core-host-query.js";
import { extractKeywords, isQueryStopWordToken } from "../../memory-host-sdk/query.js";
import type { CompactionSummarizationInstructions } from "../compaction.js";
import { wrapUntrustedPromptDataBlock } from "../sanitize-for-prompt.js";

View File

@@ -1,4 +1,4 @@
import type { BrowserBridge } from "../../plugin-sdk/browser-bridge.js";
import type { BrowserBridge } from "../../../extensions/browser/runtime-api.js";
export const BROWSER_BRIDGES = new Map<
string,

View File

@@ -1,16 +1,14 @@
import crypto from "node:crypto";
import { deriveDefaultBrowserCdpPortRange } from "../../config/port-defaults.js";
import {
startBrowserBridgeServer,
stopBrowserBridgeServer,
} from "../../plugin-sdk/browser-bridge.js";
import {
DEFAULT_BROWSER_EVALUATE_ENABLED,
DEFAULT_OPENCLAW_BROWSER_COLOR,
DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME,
resolveProfile,
startBrowserBridgeServer,
stopBrowserBridgeServer,
type ResolvedBrowserConfig,
} from "../../plugin-sdk/browser-config.js";
} from "../../../extensions/browser/runtime-api.js";
import { deriveDefaultBrowserCdpPortRange } from "../../config/port-defaults.js";
import { defaultRuntime } from "../../runtime.js";
import { BROWSER_BRIDGES } from "./browser-bridges.js";
import { computeSandboxBrowserConfigHash } from "./config-hash.js";

View File

@@ -1,12 +1,12 @@
import fs from "node:fs/promises";
import {
DEFAULT_BROWSER_EVALUATE_ENABLED,
ensureBrowserControlAuth,
resolveBrowserControlAuth,
} from "../../../extensions/browser/runtime-api.js";
import type { OpenClawConfig } from "../../config/config.js";
import { loadConfig } from "../../config/config.js";
import { getRemoteSkillEligibility } from "../../infra/skills-remote.js";
import { DEFAULT_BROWSER_EVALUATE_ENABLED } from "../../plugin-sdk/browser-config.js";
import {
ensureBrowserControlAuth,
resolveBrowserControlAuth,
} from "../../plugin-sdk/browser-control-auth.js";
import { defaultRuntime } from "../../runtime.js";
import { resolveUserPath } from "../../utils.js";
import { syncSkillsToWorkspace } from "../skills.js";

View File

@@ -1,5 +1,5 @@
import { stopBrowserBridgeServer } from "../../../extensions/browser/runtime-api.js";
import { loadConfig } from "../../config/config.js";
import { stopBrowserBridgeServer } from "../../plugin-sdk/browser-bridge.js";
import { getSandboxBackendManager } from "./backend.js";
import { BROWSER_BRIDGES } from "./browser-bridges.js";
import { dockerSandboxBackendManager } from "./docker-backend.js";

View File

@@ -1,5 +1,5 @@
import { stopBrowserBridgeServer } from "../../../extensions/browser/runtime-api.js";
import { loadConfig } from "../../config/config.js";
import { stopBrowserBridgeServer } from "../../plugin-sdk/browser-bridge.js";
import { defaultRuntime } from "../../runtime.js";
import { getSandboxBackendManager } from "./backend.js";
import { BROWSER_BRIDGES } from "./browser-bridges.js";

View File

@@ -1,9 +1,9 @@
import type { OpenClawConfig } from "../config/config.js";
import {
parseBrowserMajorVersion,
readBrowserVersion,
resolveGoogleChromeExecutableForPlatform,
} from "../plugin-sdk/browser-host-inspection.js";
} from "../../extensions/browser/runtime-api.js";
import type { OpenClawConfig } from "../config/config.js";
import { note } from "../terminal/note.js";
const CHROME_MCP_MIN_MAJOR = 144;

View File

@@ -1,4 +1,11 @@
import fsSync from "node:fs";
import {
auditShortTermPromotionArtifacts,
getBuiltinMemoryEmbeddingProviderDoctorMetadata,
listBuiltinAutoSelectMemoryEmbeddingProviderDoctorMetadata,
repairShortTermPromotionArtifacts,
type ShortTermAuditSummary,
} from "../../extensions/memory-core/runtime-api.js";
import {
resolveAgentDir,
resolveAgentWorkspaceDir,
@@ -8,16 +15,9 @@ import { resolveMemorySearchConfig } from "../agents/memory-search.js";
import { resolveApiKeyForProvider } from "../agents/model-auth.js";
import { formatCliCommand } from "../cli/command-format.js";
import type { OpenClawConfig } from "../config/config.js";
import {
auditShortTermPromotionArtifacts,
getBuiltinMemoryEmbeddingProviderDoctorMetadata,
listBuiltinAutoSelectMemoryEmbeddingProviderDoctorMetadata,
repairShortTermPromotionArtifacts,
type ShortTermAuditSummary,
} from "../plugin-sdk/memory-core-engine-runtime.js";
import { DEFAULT_LOCAL_MODEL } from "../plugin-sdk/memory-core-host-engine-embeddings.js";
import { checkQmdBinaryAvailability } from "../plugin-sdk/memory-core-host-engine-qmd.js";
import { hasConfiguredMemorySecretInput } from "../plugin-sdk/memory-core-host-secret.js";
import { DEFAULT_LOCAL_MODEL } from "../memory-host-sdk/engine-embeddings.js";
import { checkQmdBinaryAvailability } from "../memory-host-sdk/engine-qmd.js";
import { hasConfiguredMemorySecretInput } from "../memory-host-sdk/secret.js";
import {
getActiveMemorySearchManager,
resolveActiveMemoryBackendConfig,

View File

@@ -17,7 +17,7 @@ import {
resolveStorePath,
} from "../config/sessions.js";
import { resolveRequiredHomeDir } from "../infra/home-dir.js";
import { resolveMemoryBackendConfig } from "../plugin-sdk/memory-core-host-engine-storage.js";
import { resolveMemoryBackendConfig } from "../memory-host-sdk/engine-storage.js";
import { parseAgentSessionKey } from "../sessions/session-key-utils.js";
import { note } from "../terminal/note.js";
import { shortenHomePath } from "../utils.js";

View File

@@ -8,7 +8,7 @@ export {
resolveMemoryCacheSummary,
resolveMemoryFtsState,
resolveMemoryVectorState,
} from "../plugin-sdk/memory-core-host-status.js";
} from "../memory-host-sdk/status.js";
export {
formatPluginCompatibilityNotice,
summarizePluginCompatibility,

View File

@@ -1,7 +1,7 @@
import { withProgress } from "../cli/progress.js";
import type { HeartbeatEventPayload } from "../infra/heartbeat-events.js";
import { normalizeUpdateChannel, resolveUpdateChannelDisplay } from "../infra/update-channels.js";
import type { Tone } from "../plugin-sdk/memory-core-host-status.js";
import type { Tone } from "../memory-host-sdk/status.js";
import { type RuntimeEnv, writeRuntimeJson } from "../runtime.js";
import type { HealthSummary } from "./health.js";
import { getDaemonStatusSummary, getNodeDaemonStatusSummary } from "./status.daemon.js";

View File

@@ -1,6 +1,6 @@
import type { OpenClawConfig } from "../config/config.js";
import { getTailnetHostname } from "../infra/tailscale.js";
import type { MemoryProviderStatus } from "../plugin-sdk/memory-core-host-engine-storage.js";
import type { MemoryProviderStatus } from "../memory-host-sdk/engine-storage.js";
import { getActiveMemorySearchManager } from "../plugins/memory-runtime.js";
export { getTailnetHostname };

View File

@@ -3,7 +3,7 @@ import type { OpenClawConfig } from "../config/types.js";
import { buildGatewayConnectionDetailsWithResolvers } from "../gateway/connection-details.js";
import { normalizeControlUiBasePath } from "../gateway/control-ui-shared.js";
import { probeGateway } from "../gateway/probe.js";
import type { MemoryProviderStatus } from "../plugin-sdk/memory-core-host-engine-storage.js";
import type { MemoryProviderStatus } from "../memory-host-sdk/engine-storage.js";
export { pickGatewaySelfPresence } from "./gateway-presence.js";
let gatewayProbeModulePromise: Promise<typeof import("./status.gateway-probe.js")> | undefined;

View File

@@ -1,11 +1,11 @@
import { z } from "zod";
import { isSafeScpRemoteHost } from "../infra/scp-host.js";
import { isValidInboundPathRootPattern } from "../media/inbound-path-policy.js";
import {
normalizeTelegramCommandDescription,
normalizeTelegramCommandName,
resolveTelegramCustomCommands,
} from "../plugin-sdk/telegram-command-config.js";
} from "../../extensions/telegram/api.js";
import { isSafeScpRemoteHost } from "../infra/scp-host.js";
import { isValidInboundPathRootPattern } from "../media/inbound-path-policy.js";
import { ToolPolicySchema } from "./zod-schema.agent-runtime.js";
import {
ChannelHealthMonitorSchema,

View File

@@ -1,5 +1,6 @@
import fs from "node:fs/promises";
import path from "node:path";
import { movePathToTrash } from "../../../extensions/browser/runtime-api.js";
import {
listAgentIds,
resolveAgentDir,
@@ -35,7 +36,6 @@ import {
} from "../../infra/fs-safe.js";
import { assertNoPathAliasEscape } from "../../infra/path-alias-guards.js";
import { isNotFoundPathError } from "../../infra/path-guards.js";
import { movePathToTrash } from "../../plugin-sdk/browser-maintenance.js";
import { DEFAULT_AGENT_ID, normalizeAgentId } from "../../routing/session-key.js";
import { resolveUserPath } from "../../utils.js";
import {

View File

@@ -2,6 +2,7 @@ import { randomUUID } from "node:crypto";
import fs from "node:fs";
import path from "node:path";
import { CURRENT_SESSION_VERSION } from "@mariozechner/pi-coding-agent";
import { closeTrackedBrowserTabsForSessions } from "../../extensions/browser/runtime-api.js";
import { getAcpSessionManager } from "../acp/control-plane/manager.js";
import { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agents/agent-scope.js";
import { clearBootstrapSnapshot } from "../agents/bootstrap-cache.js";
@@ -22,7 +23,6 @@ import { resolveSessionFilePath, resolveSessionFilePathOptions } from "../config
import { logVerbose } from "../globals.js";
import { createInternalHookEvent, triggerInternalHook } from "../hooks/internal-hooks.js";
import { getSessionBindingService } from "../infra/outbound/session-binding-service.js";
import { closeTrackedBrowserTabsForSessions } from "../plugin-sdk/browser-maintenance.js";
import { getGlobalHookRunner } from "../plugins/hook-runner-global.js";
import {
isSubagentSessionKey,

View File

@@ -0,0 +1 @@
export * from "../../packages/memory-host-sdk/src/engine-embeddings.js";

View File

@@ -0,0 +1 @@
export * from "../../packages/memory-host-sdk/src/engine-qmd.js";

View File

@@ -0,0 +1 @@
export * from "../../packages/memory-host-sdk/src/engine-storage.js";

View File

@@ -0,0 +1 @@
export * from "../../packages/memory-host-sdk/src/multimodal.js";

View File

@@ -0,0 +1 @@
export * from "../../packages/memory-host-sdk/src/query.js";

View File

@@ -0,0 +1 @@
export * from "../../packages/memory-host-sdk/src/secret.js";

View File

@@ -0,0 +1 @@
export * from "../../packages/memory-host-sdk/src/status.js";

View File

@@ -1,6 +1,7 @@
import { spawn, spawnSync } from "node:child_process";
import fs from "node:fs";
import path from "node:path";
import { runBrowserProxyCommand } from "../../extensions/browser/runtime-api.js";
import { GatewayClient } from "../gateway/client.js";
import {
ensureExecApprovals,
@@ -19,7 +20,6 @@ import {
type ExecHostResponse,
} from "../infra/exec-host.js";
import { sanitizeHostExecEnv } from "../infra/host-env-security.js";
import { runBrowserProxyCommand } from "../plugin-sdk/browser-runtime.js";
import { buildSystemRunApprovalPlan, handleSystemRunInvoke } from "./invoke-system-run.js";
import type {
ExecEventPayload,

View File

@@ -1,3 +1,4 @@
import { resolveBrowserConfig } from "../../extensions/browser/runtime-api.js";
import { loadConfig, type OpenClawConfig } from "../config/config.js";
import { GatewayClient } from "../gateway/client.js";
import { resolveGatewayConnectionAuth } from "../gateway/connection-auth.js";
@@ -11,7 +12,6 @@ import {
NODE_SYSTEM_RUN_COMMANDS,
} from "../infra/node-commands.js";
import { ensureOpenClawCliOnPath } from "../infra/path-env.js";
import { resolveBrowserConfig } from "../plugin-sdk/browser-config.js";
import { GATEWAY_CLIENT_MODES, GATEWAY_CLIENT_NAMES } from "../utils/message-channel.js";
import { VERSION } from "../version.js";
import { ensureNodeHostConfig, saveNodeHostConfig, type NodeHostGatewayConfig } from "./config.js";

View File

@@ -4,7 +4,7 @@ import type {
MemoryEmbeddingProbeResult,
MemoryProviderStatus,
MemorySyncProgressUpdate,
} from "../plugin-sdk/memory-core-host-engine-storage.js";
} from "../memory-host-sdk/engine-storage.js";
export type MemoryPromptSectionBuilder = (params: {
availableTools: Set<string>;

View File

@@ -3,7 +3,7 @@ import {
ZAI_CODING_CN_BASE_URL,
ZAI_CODING_GLOBAL_BASE_URL,
ZAI_GLOBAL_BASE_URL,
} from "../plugin-sdk/zai.js";
} from "../../extensions/zai/api.js";
import { fetchWithTimeout } from "../utils/fetch-timeout.js";
export type ZaiEndpointId = "global" | "cn" | "coding-global" | "coding-cn";

View File

@@ -1,5 +1,11 @@
import { isIP } from "node:net";
import path from "node:path";
import {
redactCdpUrl,
resolveBrowserConfig,
resolveBrowserControlAuth,
resolveProfile,
} from "../../extensions/browser/runtime-api.js";
import { resolveSandboxConfigForAgent } from "../agents/sandbox.js";
import { hasPotentialConfiguredChannels } from "../channels/config-presence.js";
import type { listChannelPlugins } from "../channels/plugins/index.js";
@@ -17,9 +23,6 @@ import {
import { listRiskyConfiguredSafeBins } from "../infra/exec-safe-bin-semantics.js";
import { normalizeTrustedSafeBinDirs } from "../infra/exec-safe-bin-trust.js";
import { isBlockedHostnameOrIp, isPrivateNetworkAllowedByPolicy } from "../infra/net/ssrf.js";
import { redactCdpUrl } from "../plugin-sdk/browser-cdp.js";
import { resolveBrowserConfig, resolveProfile } from "../plugin-sdk/browser-config.js";
import { resolveBrowserControlAuth } from "../plugin-sdk/browser-control-auth.js";
import { DEFAULT_AGENT_ID } from "../routing/session-key.js";
import {
formatPermissionDetail,