refactor: share line sdk types

This commit is contained in:
Peter Steinberger
2026-04-20 22:55:25 +01:00
parent 60fea81cf1
commit 8f4920e2eb
2 changed files with 23 additions and 96 deletions

View File

@@ -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

View File

@@ -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<string, unknown>;
export type FlexBubble = Record<string, unknown>;
export type FlexButton = Record<string, unknown>;
export type FlexCarousel = Record<string, unknown>;
export type FlexComponent = Record<string, unknown>;
export type FlexContainer = Record<string, unknown>;
export type FlexImage = Record<string, unknown>;
export type FlexText = Record<string, unknown>;
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<string, unknown>;
export type FlexBox = Record<string, unknown>;
export type FlexBubble = Record<string, unknown>;
export type FlexButton = Record<string, unknown>;
export type FlexCarousel = Record<string, unknown>;
export type FlexComponent = Record<string, unknown>;
export type FlexContainer = Record<string, unknown>;
export type FlexImage = Record<string, unknown>;
export type FlexText = Record<string, unknown>;
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<string | number>;
groupAllowFrom?: Array<string | number>;
dmPolicy?: "open" | "allowlist" | "pairing" | "disabled";
groupPolicy?: "open" | "allowlist" | "disabled";
responsePrefix?: string;
mediaMaxMb?: number;
webhookPath?: string;
threadBindings?: LineThreadBindingsConfig;
groups?: Record<string, LineGroupConfig>;
}
export interface LineConfig extends LineAccountBaseConfig {
accounts?: Record<string, LineAccountBaseConfig>;
defaultAccount?: string;
}
export interface LineGroupConfig {
enabled?: boolean;
allowFrom?: Array<string | number>;
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<string> & {
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;