import type { ChannelSetupWizardAdapter } from "./setup-wizard-types.js"; import type { ChannelSetupWizard } from "./setup-wizard.js"; import type { ChannelApprovalAdapter, ChannelApprovalCapability, ChannelAuthAdapter, ChannelCommandAdapter, ChannelConfigAdapter, ChannelConversationBindingSupport, ChannelDirectoryAdapter, ChannelResolverAdapter, ChannelElevatedAdapter, ChannelGatewayAdapter, ChannelGroupAdapter, ChannelHeartbeatAdapter, ChannelLifecycleAdapter, ChannelOutboundAdapter, ChannelPairingAdapter, ChannelSecurityAdapter, ChannelSetupAdapter, ChannelStatusAdapter, ChannelAllowlistAdapter, ChannelConfiguredBindingProvider } from "./types.adapters.js"; import type { ChannelAgentTool, ChannelAgentToolFactory, ChannelCapabilities, ChannelId, ChannelAgentPromptAdapter, ChannelMentionAdapter, ChannelMessageActionAdapter, ChannelMessagingAdapter, ChannelMeta, ChannelStreamingAdapter, ChannelThreadingAdapter } from "./types.core.js"; export type ChannelConfigUiHint = { label?: string; help?: string; tags?: string[]; advanced?: boolean; sensitive?: boolean; placeholder?: string; itemTemplate?: unknown; }; export type ChannelConfigRuntimeIssue = { path?: Array; message?: string; code?: string; } & Record; export type ChannelConfigRuntimeParseResult = { success: true; data: unknown; } | { success: false; issues: ChannelConfigRuntimeIssue[]; }; export type ChannelConfigRuntimeSchema = { safeParse: (value: unknown) => ChannelConfigRuntimeParseResult; }; /** JSON-schema-like config description published by a channel plugin. */ export type ChannelConfigSchema = { schema: Record; uiHints?: Record; runtime?: ChannelConfigRuntimeSchema; }; /** Full capability contract for a native channel plugin. */ type ChannelPluginSetupWizard = ChannelSetupWizard | ChannelSetupWizardAdapter; export type ChannelPlugin = { id: ChannelId; meta: ChannelMeta; capabilities: ChannelCapabilities; defaults?: { queue?: { debounceMs?: number; }; }; reload?: { configPrefixes: string[]; noopPrefixes?: string[]; }; setupWizard?: ChannelPluginSetupWizard; config: ChannelConfigAdapter; configSchema?: ChannelConfigSchema; setup?: ChannelSetupAdapter; pairing?: ChannelPairingAdapter; security?: ChannelSecurityAdapter; groups?: ChannelGroupAdapter; mentions?: ChannelMentionAdapter; outbound?: ChannelOutboundAdapter; status?: ChannelStatusAdapter; gatewayMethods?: string[]; gateway?: ChannelGatewayAdapter; auth?: ChannelAuthAdapter; approvalCapability?: ChannelApprovalCapability; elevated?: ChannelElevatedAdapter; commands?: ChannelCommandAdapter; lifecycle?: ChannelLifecycleAdapter; approvals?: ChannelApprovalAdapter; allowlist?: ChannelAllowlistAdapter; bindings?: ChannelConfiguredBindingProvider; conversationBindings?: ChannelConversationBindingSupport; streaming?: ChannelStreamingAdapter; threading?: ChannelThreadingAdapter; messaging?: ChannelMessagingAdapter; agentPrompt?: ChannelAgentPromptAdapter; directory?: ChannelDirectoryAdapter; resolver?: ChannelResolverAdapter; actions?: ChannelMessageActionAdapter; heartbeat?: ChannelHeartbeatAdapter; agentTools?: ChannelAgentToolFactory | ChannelAgentTool[]; }; export {};