Skip to content

Commit b59dd5e

Browse files
committed
fix: break plugin registry type import cycle
1 parent 070685f commit b59dd5e

4 files changed

Lines changed: 45 additions & 41 deletions

File tree

src/plugins/registry-types.ts

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
/** Shared registration types that make up the in-memory plugin registry. */
22
import type { AgentHarness } from "../agents/harness/types.js";
3-
import type { ChannelPlugin } from "../channels/plugins/types.plugin.js";
43
import type { GatewayMethodDescriptor } from "../gateway/methods/descriptor.js";
54
import type { GatewayRequestHandlers } from "../gateway/server-methods/types.js";
65
import type { HookEntry } from "../hooks/types.js";
@@ -34,42 +33,45 @@ import type { MemoryEmbeddingProviderAdapter } from "./memory-embedding-provider
3433
import type { PluginKind } from "./plugin-kind.types.js";
3534
import type { PluginRuntime } from "./runtime/types.js";
3635
import type { PluginDependencyStatus } from "./status-dependencies.js";
37-
import type {
38-
CliBackendPlugin,
39-
ImageGenerationProviderPlugin,
40-
MediaUnderstandingProviderPlugin,
41-
TranscriptSourceProvider,
42-
MusicGenerationProviderPlugin,
43-
OpenClawPluginChannelRegistration,
44-
OpenClawPluginCliCommandDescriptor,
45-
OpenClawPluginCliRegistrar,
46-
OpenClawPluginCommandDefinition,
47-
OpenClawPluginGatewayRuntimeScopeSurface,
48-
OpenClawGatewayDiscoveryService,
49-
OpenClawPluginHttpRouteAuth,
50-
OpenClawPluginHttpRouteHandler,
51-
OpenClawPluginHttpRouteUpgradeHandler,
52-
OpenClawPluginHttpRouteMatch,
53-
OpenClawPluginHostedMediaResolver,
54-
OpenClawPluginReloadRegistration,
55-
OpenClawPluginSecurityAuditCollector,
56-
OpenClawPluginService,
57-
OpenClawPluginToolFactory,
58-
PluginConversationBindingResolvedEvent,
59-
PluginHookRegistration as TypedPluginHookRegistration,
60-
PluginLogger,
61-
PluginOrigin,
62-
PluginTextTransformRegistration,
63-
MigrationProviderPlugin,
64-
ProviderPlugin,
65-
RealtimeTranscriptionProviderPlugin,
66-
RealtimeVoiceProviderPlugin,
67-
SpeechProviderPlugin,
68-
VideoGenerationProviderPlugin,
69-
WebFetchProviderPlugin,
70-
WebSearchProviderPlugin,
71-
UnifiedModelCatalogProviderPlugin,
72-
} from "./types.js";
36+
type ChannelPlugin = import("../channels/plugins/types.plugin.js").ChannelPlugin;
37+
type CliBackendPlugin = import("./types.js").CliBackendPlugin;
38+
type ImageGenerationProviderPlugin = import("./types.js").ImageGenerationProviderPlugin;
39+
type MediaUnderstandingProviderPlugin = import("./types.js").MediaUnderstandingProviderPlugin;
40+
type TranscriptSourceProvider = import("./types.js").TranscriptSourceProvider;
41+
type MusicGenerationProviderPlugin = import("./types.js").MusicGenerationProviderPlugin;
42+
type OpenClawPluginChannelRegistration = import("./types.js").OpenClawPluginChannelRegistration;
43+
type OpenClawPluginCliCommandDescriptor = import("./types.js").OpenClawPluginCliCommandDescriptor;
44+
type OpenClawPluginCliRegistrar = import("./types.js").OpenClawPluginCliRegistrar;
45+
type OpenClawPluginCommandDefinition = import("./types.js").OpenClawPluginCommandDefinition;
46+
type OpenClawPluginGatewayRuntimeScopeSurface =
47+
import("./types.js").OpenClawPluginGatewayRuntimeScopeSurface;
48+
type OpenClawGatewayDiscoveryService = import("./types.js").OpenClawGatewayDiscoveryService;
49+
type OpenClawPluginHttpRouteAuth = import("./types.js").OpenClawPluginHttpRouteAuth;
50+
type OpenClawPluginHttpRouteHandler = import("./types.js").OpenClawPluginHttpRouteHandler;
51+
type OpenClawPluginHttpRouteUpgradeHandler =
52+
import("./types.js").OpenClawPluginHttpRouteUpgradeHandler;
53+
type OpenClawPluginHttpRouteMatch = import("./types.js").OpenClawPluginHttpRouteMatch;
54+
type OpenClawPluginHostedMediaResolver = import("./types.js").OpenClawPluginHostedMediaResolver;
55+
type OpenClawPluginReloadRegistration = import("./types.js").OpenClawPluginReloadRegistration;
56+
type OpenClawPluginSecurityAuditCollector =
57+
import("./types.js").OpenClawPluginSecurityAuditCollector;
58+
type OpenClawPluginService = import("./types.js").OpenClawPluginService;
59+
type OpenClawPluginToolFactory = import("./types.js").OpenClawPluginToolFactory;
60+
type PluginConversationBindingResolvedEvent =
61+
import("./types.js").PluginConversationBindingResolvedEvent;
62+
type TypedPluginHookRegistration = import("./types.js").PluginHookRegistration;
63+
type PluginLogger = import("./types.js").PluginLogger;
64+
type PluginOrigin = import("./types.js").PluginOrigin;
65+
type PluginTextTransformRegistration = import("./types.js").PluginTextTransformRegistration;
66+
type MigrationProviderPlugin = import("./types.js").MigrationProviderPlugin;
67+
type ProviderPlugin = import("./types.js").ProviderPlugin;
68+
type RealtimeTranscriptionProviderPlugin = import("./types.js").RealtimeTranscriptionProviderPlugin;
69+
type RealtimeVoiceProviderPlugin = import("./types.js").RealtimeVoiceProviderPlugin;
70+
type SpeechProviderPlugin = import("./types.js").SpeechProviderPlugin;
71+
type VideoGenerationProviderPlugin = import("./types.js").VideoGenerationProviderPlugin;
72+
type WebFetchProviderPlugin = import("./types.js").WebFetchProviderPlugin;
73+
type WebSearchProviderPlugin = import("./types.js").WebSearchProviderPlugin;
74+
type UnifiedModelCatalogProviderPlugin = import("./types.js").UnifiedModelCatalogProviderPlugin;
7375

7476
/** Agent tool factory registered by one plugin runtime. */
7577
export type PluginToolRegistration = {

src/plugins/runtime-state.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
// Stores plugin runtime registry state for the current process lifecycle.
2-
import type { PluginRegistry } from "./registry-types.js";
32

43
export const PLUGIN_REGISTRY_STATE = Symbol.for("openclaw.pluginRegistryState");
54

5+
type PluginRegistry = import("./registry-types.js").PluginRegistry;
6+
67
export type RuntimeTrackedPluginRegistry = PluginRegistry;
78

89
export type RegistrySurfaceState = {

src/plugins/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ import type { PromptMode } from "../agents/system-prompt.types.js";
2222
import type { AnyAgentTool } from "../agents/tools/common.js";
2323
import type { ReplyPayload } from "../auto-reply/reply-payload.js";
2424
import type { ThinkLevel } from "../auto-reply/thinking.shared.js";
25-
import type { ChannelPlugin } from "../channels/plugins/types.plugin.js";
26-
import type { ChannelId } from "../channels/plugins/types.public.js";
2725
import type { ModelProviderConfig } from "../config/types.js";
2826
import type { OpenClawConfig } from "../config/types.openclaw.js";
2927
import type { OperatorScope } from "../gateway/operator-scopes.js";
@@ -154,6 +152,8 @@ import type { WebFetchProviderPlugin, WebSearchProviderPlugin } from "./web-prov
154152

155153
type ModelProviderRequestTransportOverrides =
156154
import("../agents/provider-request-config.js").ModelProviderRequestTransportOverrides;
155+
type ChannelId = import("../channels/plugins/types.core.js").ChannelId;
156+
type ChannelPlugin = import("../channels/plugins/types.plugin.js").ChannelPlugin;
157157

158158
export type { PluginRuntime } from "./runtime/types.js";
159159
export type { PluginOrigin } from "./plugin-origin.types.js";

src/scripts/test-projects.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -858,7 +858,7 @@ describe("test-projects args", () => {
858858
{
859859
config: "test/vitest/vitest.unit-fast.config.ts",
860860
forwardedArgs: [],
861-
includePatterns: ["src/install-sh-version.test.ts"],
861+
includePatterns: ["src/install-sh-version.test.ts", "test/scripts/android-version.test.ts"],
862862
watchMode: false,
863863
},
864864
{
@@ -874,6 +874,7 @@ describe("test-projects args", () => {
874874
"src/scripts/docs-link-audit.test.ts",
875875
"src/scripts/sync-plugin-versions.test.ts",
876876
"test/helpers/temp-dir.test.ts",
877+
"test/scripts/android-pin-version.test.ts",
877878
"test/scripts/ios-configure-signing.test.ts",
878879
"test/scripts/ios-pin-version.test.ts",
879880
"test/scripts/ios-team-id.test.ts",

0 commit comments

Comments
 (0)