diff --git a/docs/.generated/plugin-sdk-api-baseline.sha256 b/docs/.generated/plugin-sdk-api-baseline.sha256 index f6d2da78785..07ad4437b18 100644 --- a/docs/.generated/plugin-sdk-api-baseline.sha256 +++ b/docs/.generated/plugin-sdk-api-baseline.sha256 @@ -1,2 +1,2 @@ -db3c843947298c9af4b5f5fa7ecde6656dba32189ec386c29192fe498d64e5e5 plugin-sdk-api-baseline.json -c14586fd393a1375ee02ba507ffc83a2886d97632e323e5661b618c71624d26b plugin-sdk-api-baseline.jsonl +5e63409c91d1021a24496f498af2761cca644e59e26742b473eb53615d13154f plugin-sdk-api-baseline.json +61943ab581937f84635e9b46e0f05591bb1fabe606cb57c36e9aed7a1242c685 plugin-sdk-api-baseline.jsonl diff --git a/src/plugin-sdk/line-runtime.ts b/src/plugin-sdk/line-runtime.ts index 7a08c15805b..6768d7a0a02 100644 --- a/src/plugin-sdk/line-runtime.ts +++ b/src/plugin-sdk/line-runtime.ts @@ -1,6 +1,26 @@ // Manual facade. Keep loader boundary explicit. -import type { BaseProbeResult } from "../channels/plugins/types.public.js"; import { loadActivatedBundledPluginPublicSurfaceModuleSync } from "./facade-runtime.js"; +import type { Action } from "./line-surface.js"; +export type { + Action, + CardAction, + LineChannelData, + LineConfig, + LineGroupConfig, + LineProbeResult, + LineThreadBindingsConfig, + ListItem, + ResolvedLineAccount, +} from "./line-surface.js"; + +export type FlexBox = Record; +export type FlexBubble = Record; +export type FlexButton = Record; +export type FlexCarousel = Record; +export type FlexComponent = Record; +export type FlexContainer = Record; +export type FlexImage = Record; +export type FlexText = Record; type FacadeFunction = (...args: unknown[]) => unknown; type FacadeModule = Record< @@ -191,99 +211,6 @@ export const uploadRichMenuImage: FacadeModule["uploadRichMenuImage"] = ((...arg loadFacadeModule()["uploadRichMenuImage"](...args)) as FacadeModule["uploadRichMenuImage"]; export const uriAction: FacadeModule["uriAction"] = ((...args) => loadFacadeModule()["uriAction"](...args)) as FacadeModule["uriAction"]; -export type Action = Record; -export type FlexBox = Record; -export type FlexBubble = Record; -export type FlexButton = Record; -export type FlexCarousel = Record; -export type FlexComponent = Record; -export type FlexContainer = Record; -export type FlexImage = Record; -export type FlexText = Record; - -export interface ListItem { - title: string; - subtitle?: string; - action?: Action; -} - -export interface CardAction { - label: string; - action: Action; -} - -export interface LineThreadBindingsConfig { - enabled?: boolean; - idleHours?: number; - maxAgeHours?: number; - spawnSubagentSessions?: boolean; - spawnAcpSessions?: boolean; -} - -interface LineAccountBaseConfig { - enabled?: boolean; - channelAccessToken?: string; - channelSecret?: string; - tokenFile?: string; - secretFile?: string; - name?: string; - allowFrom?: Array; - groupAllowFrom?: Array; - dmPolicy?: "open" | "allowlist" | "pairing" | "disabled"; - groupPolicy?: "open" | "allowlist" | "disabled"; - responsePrefix?: string; - mediaMaxMb?: number; - webhookPath?: string; - threadBindings?: LineThreadBindingsConfig; - groups?: Record; -} - -export interface LineConfig extends LineAccountBaseConfig { - accounts?: Record; - defaultAccount?: string; -} - -export interface LineGroupConfig { - enabled?: boolean; - allowFrom?: Array; - requireMention?: boolean; - systemPrompt?: string; - skills?: string[]; -} - -export interface ResolvedLineAccount { - accountId: string; - name?: string; - enabled: boolean; - channelAccessToken: string; - channelSecret: string; - tokenSource: "config" | "env" | "file" | "none"; - config: LineConfig & LineAccountBaseConfig; -} - -export type LineProbeResult = BaseProbeResult & { - bot?: { - displayName?: string; - userId?: string; - basicId?: string; - pictureUrl?: string; - }; -}; - -export type LineChannelData = { - quickReplies?: string[]; - location?: { - title: string; - address: string; - latitude: number; - longitude: number; - }; - flexMessage?: { - altText: string; - contents: unknown; - }; - templateMessage?: unknown; -}; export interface RichMenuSize { width: 2500;