TypeScript: add extensions to tsconfig and fix type errors (#12781)

* TypeScript: add extensions to tsconfig and fix type errors

- Add extensions/**/* to tsconfig.json includes
- Export ProviderAuthResult, AnyAgentTool from plugin-sdk
- Fix optional chaining for messageActions across channels
- Add missing type imports (MSTeamsConfig, GroupPolicy, etc.)
- Add type annotations for provider auth handlers
- Fix undici/fetch type compatibility in zalo proxy
- Correct ChannelAccountSnapshot property usage
- Add type casts for tool registrations
- Extract usage view styles and types to separate files

* TypeScript: fix optional debug calls and handleAction guards
This commit is contained in:
max
2026-02-09 10:05:38 -08:00
committed by GitHub
parent 2e4334c32c
commit 40b11db80e
87 changed files with 2947 additions and 2706 deletions

View File

@@ -125,6 +125,7 @@ export type ChannelAccountSnapshot = {
botTokenSource?: string;
appTokenSource?: string;
credentialSource?: string;
secretSource?: string;
audienceType?: string;
audience?: string;
webhookPath?: string;
@@ -139,6 +140,10 @@ export type ChannelAccountSnapshot = {
audit?: unknown;
application?: unknown;
bot?: unknown;
publicKey?: string | null;
profile?: unknown;
channelAccessToken?: string;
channelSecret?: string;
};
export type ChannelLogSink = {
@@ -328,4 +333,5 @@ export type ChannelPollContext = {
to: string;
poll: PollInput;
accountId?: string | null;
threadId?: string | null;
};

View File

@@ -23,6 +23,19 @@ export type ChannelDefaultsConfig = {
heartbeat?: ChannelHeartbeatVisibilityConfig;
};
/**
* Base type for extension channel config sections.
* Extensions can use this as a starting point for their channel config.
*/
export type ExtensionChannelConfig = {
enabled?: boolean;
allowFrom?: string | string[];
dmPolicy?: string;
groupPolicy?: GroupPolicy;
accounts?: Record<string, unknown>;
[key: string]: unknown;
};
export type ChannelsConfig = {
defaults?: ChannelDefaultsConfig;
whatsapp?: WhatsAppConfig;
@@ -33,5 +46,7 @@ export type ChannelsConfig = {
signal?: SignalConfig;
imessage?: IMessageConfig;
msteams?: MSTeamsConfig;
[key: string]: unknown;
// Extension channels use dynamic keys - use ExtensionChannelConfig in extensions
// eslint-disable-next-line @typescript-eslint/no-explicit-any
[key: string]: any;
};

View File

@@ -59,20 +59,25 @@ export type {
} from "../channels/plugins/types.js";
export type { ChannelConfigSchema, ChannelPlugin } from "../channels/plugins/types.plugin.js";
export type {
AnyAgentTool,
OpenClawPluginApi,
OpenClawPluginService,
OpenClawPluginServiceContext,
ProviderAuthContext,
ProviderAuthResult,
} from "../plugins/types.js";
export type {
GatewayRequestHandler,
GatewayRequestHandlerOptions,
RespondFn,
} from "../gateway/server-methods/types.js";
export type { PluginRuntime } from "../plugins/runtime/types.js";
export type { PluginRuntime, RuntimeLogger } from "../plugins/runtime/types.js";
export { normalizePluginHttpPath } from "../plugins/http-path.js";
export { registerPluginHttpRoute } from "../plugins/http-registry.js";
export { emptyPluginConfigSchema } from "../plugins/config-schema.js";
export type { OpenClawConfig } from "../config/config.js";
/** @deprecated Use OpenClawConfig instead */
export type { OpenClawConfig as ClawdbotConfig } from "../config/config.js";
export type { ChannelDock } from "../channels/dock.js";
export { getChatChannelMeta } from "../channels/registry.js";
export type {
@@ -130,6 +135,7 @@ export {
listDevicePairing,
rejectDevicePairing,
} from "../infra/device-pairing.js";
export { formatErrorMessage } from "../infra/errors.js";
export { resolveToolsBySender } from "../config/group-policy.js";
export {
buildPendingHistoryContextFromMap,

View File

@@ -169,10 +169,10 @@ type BuildTemplateMessageFromPayload =
type MonitorLineProvider = typeof import("../../line/monitor.js").monitorLineProvider;
export type RuntimeLogger = {
debug?: (message: string) => void;
info: (message: string) => void;
warn: (message: string) => void;
error: (message: string) => void;
debug?: (message: string, meta?: Record<string, unknown>) => void;
info: (message: string, meta?: Record<string, unknown>) => void;
warn: (message: string, meta?: Record<string, unknown>) => void;
error: (message: string, meta?: Record<string, unknown>) => void;
};
export type PluginRuntime = {

View File

@@ -17,6 +17,7 @@ import type { WizardPrompter } from "../wizard/prompts.js";
import type { PluginRuntime } from "./runtime/types.js";
export type { PluginRuntime } from "./runtime/types.js";
export type { AnyAgentTool } from "../agents/tools/common.js";
export type PluginLogger = {
debug?: (message: string) => void;