mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-15 23:24:03 -06:00
b54034d5c2
* fix(sessions): isolated gateways no longer inherit HOME external session catalogs A gateway on isolated state (custom OPENCLAW_STATE_DIR/CONFIG_PATH/OPENCLAW_HOME, relocated home, or any named profile) listed, read, continued, archived, and reopened the operator's real Claude Code/Codex/OpenCode/Pi sessions from the process HOME. External catalogs now require the default install identity for process-HOME scans: every catalog verb receives the isolation policy and rejects HOME-fallback local targets, unknown providers fail closed unless they declare supportsProcessHomeIsolation, and one structured warning records the skip. Paired-node hosts and explicitly rooted stores (CLAUDE_CONFIG_DIR, CODEX_HOME, OPENCODE_DB, Pi session dirs) keep working; default-identity gateways are unchanged. * fix(sessions): inject catalog HOME-isolation fact at registry construction * chore(sdk): regenerate plugin API baselines after rebase * chore(sdk): regenerate plugin API baselines after rebase
53 lines
2.4 KiB
TypeScript
53 lines
2.4 KiB
TypeScript
import type { OpenClawConfig } from "../config/types.openclaw.js";
|
|
import type { PluginInstallRecord } from "../config/types.plugins.js";
|
|
import type { GatewayRequestHandler } from "../gateway/server-methods/types.js";
|
|
import type { PluginDiscoveryResult } from "./discovery.js";
|
|
import type { PluginManifestRegistry } from "./manifest-registry.js";
|
|
import type { PluginRegistryParams } from "./registry-types.js";
|
|
import type { CreatePluginRuntimeOptions } from "./runtime/types.js";
|
|
import type { PluginSdkResolutionPreference } from "./sdk-alias.js";
|
|
import type { PluginLogger } from "./types.js";
|
|
|
|
export type PluginRuntimeSubagentMode = "default" | "explicit" | "gateway-bindable";
|
|
export type ChannelPluginLoadIntent = "full" | "setup";
|
|
|
|
/** Inputs shared by runtime, snapshot, and CLI-metadata plugin loading. */
|
|
export type PluginLoadOptions = {
|
|
config?: OpenClawConfig;
|
|
activationSourceConfig?: OpenClawConfig;
|
|
autoEnabledReasons?: Readonly<Record<string, string[]>>;
|
|
workspaceDir?: string;
|
|
installRecords?: Record<string, PluginInstallRecord>;
|
|
/** Resolve plugin roots and load paths against an explicit environment. */
|
|
env?: NodeJS.ProcessEnv;
|
|
/** Apply the config IO env-substitution pass to direct raw-config callers. */
|
|
resolveRawConfigEnvVars?: boolean;
|
|
logger?: PluginLogger;
|
|
coreGatewayHandlers?: Record<string, GatewayRequestHandler>;
|
|
coreGatewayMethodNames?: readonly string[];
|
|
/** Registry-construction fact supplied by the process composition root. */
|
|
allowProcessHomeSessionCatalogs?: boolean;
|
|
hostServices?: PluginRegistryParams["hostServices"];
|
|
runtimeOptions?: CreatePluginRuntimeOptions;
|
|
startupTrace?: {
|
|
detail: (name: string, metrics: ReadonlyArray<readonly [string, number | string]>) => void;
|
|
};
|
|
pluginSdkResolution?: PluginSdkResolutionPreference;
|
|
cache?: boolean;
|
|
mode?: "full" | "validate";
|
|
onlyPluginIds?: string[];
|
|
includeSetupOnlyChannelPlugins?: boolean;
|
|
forceSetupOnlyChannelPlugins?: boolean;
|
|
requireSetupEntryForSetupOnlyChannelPlugins?: boolean;
|
|
/** Select full runtime registration or the lightweight unconfigured-channel setup path. */
|
|
channelPluginLoadIntent?: ChannelPluginLoadIntent;
|
|
/** Prefer bundled JavaScript artifacts over source TypeScript entrypoints. */
|
|
preferBuiltPluginArtifacts?: boolean;
|
|
toolDiscovery?: boolean;
|
|
activate?: boolean;
|
|
loadModules?: boolean;
|
|
throwOnLoadError?: boolean;
|
|
manifestRegistry?: PluginManifestRegistry;
|
|
discovery?: PluginDiscoveryResult;
|
|
};
|