@aalis/api-platform 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ace Nyan <ace@acenyan.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,134 @@
1
+ /** 单个平台连接的状态 */
2
+ export interface PlatformConnection {
3
+ /** 连接唯一标识 */
4
+ id: string;
5
+ /** 平台名称 (如 'cli', 'webui', 'onebot') */
6
+ platform: string;
7
+ /** 机器人自身 ID(仅协议平台使用) */
8
+ selfId?: string;
9
+ /** 机器人自身昵称/显示名(仅协议平台使用) */
10
+ selfNickname?: string;
11
+ /** 连接状态 */
12
+ status: 'online' | 'offline' | 'connecting';
13
+ /** 额外信息 (如 OneBot 的实现名称、版本等) */
14
+ detail?: Record<string, unknown>;
15
+ }
16
+ /** 平台自身身份(机器人/账号),用于 prompt 注入和历史消息归档 */
17
+ export interface PlatformSelfIdentity {
18
+ /** 平台名称 (如 'onebot', 'cli', 'webui') */
19
+ platform: string;
20
+ /** 平台账号 ID(协议平台通常可用) */
21
+ selfId?: string;
22
+ /** 平台账号昵称/显示名 */
23
+ nickname?: string;
24
+ }
25
+ /**
26
+ * 平台适配器 —— 每个平台插件实现此接口
27
+ *
28
+ * 提供统一的平台抽象,使核心可以查询所有已接入平台的连接状态,
29
+ * 也使其他插件可以向指定平台发送消息。
30
+ *
31
+ * 第三方平台接入只需实现此接口并通过 `ctx.provide('platform', adapter)` 注册即可。
32
+ */
33
+ export interface PlatformAdapter {
34
+ /** 适配器显示名称 */
35
+ adapterName: string;
36
+ /** 平台标识 (如 'cli', 'webui', 'onebot', 'telegram', 'discord') */
37
+ platform: string;
38
+ /**
39
+ * 平台可能发出的 IncomingMessage.sessionType 枚举。
40
+ *
41
+ * 消费者(如 plugin-flow-control / plugin-trigger-policy)可以从中汇总出
42
+ * 真实可选作用域,避免在 UI 上臆造不存在的选项。
43
+ *
44
+ * 未声明表示适配器不区分 sessionType(如 cli / webui 都是单会话)。
45
+ */
46
+ sessionTypes?: readonly string[];
47
+ /** 获取当前所有连接 */
48
+ getConnections(): PlatformConnection[];
49
+ /** 向指定 sessionId 发送纯文本消息 */
50
+ sendMessage(sessionId: string, content: string, options?: {
51
+ skipSplit?: boolean;
52
+ }): Promise<void>;
53
+ /**
54
+ * 判断该 adapter 是否能处理给定 sessionId(**路由用**)。
55
+ *
56
+ * - `resolvePlatformBySession(ctx, sid)` 枚举所有 adapter 调此方法定位归属
57
+ * - 未实现时 helper 默认 fallback 为 `sessionId.startsWith(this.platform + ':')`
58
+ * —— 适合 sessionId 形如 `<platform>:<...>` 的协议平台(如 onebot)
59
+ * - sessionId 不携带 platform 前缀的 adapter(如 cli 的自定义 sessionId)
60
+ * **必须**显式实现此方法
61
+ *
62
+ * 与 LLMService.supportsModel 的设计意图对称:每个 provider 自报"我接不接这个 key",
63
+ * helper 不假设 key 的格式约定。
64
+ */
65
+ canHandle?(sessionId: string): boolean | Promise<boolean>;
66
+ /** 获取当前平台账号自身身份;多连接平台可用 sessionId 定位具体连接 */
67
+ getSelfIdentity?(sessionId?: string): PlatformSelfIdentity | undefined;
68
+ /**
69
+ * 适配器是否至少有一个可用连接
70
+ * 默认实现:检查 getConnections() 中是否有 status === 'online'
71
+ */
72
+ isReady?(): boolean;
73
+ /**
74
+ * 调用平台原生 API(可选,由具体适配器实现)
75
+ *
76
+ * 例如 OneBot 适配器通过此接口调用 set_group_ban 等 Action。
77
+ * @param sessionId 用于定位连接的 sessionId
78
+ * @param action API 名称
79
+ * @param params API 参数
80
+ */
81
+ callAction?(sessionId: string, action: string, params: Record<string, unknown>): Promise<unknown>;
82
+ /**
83
+ * 主动发送限速闸门(可选,由具体适配器实现)。
84
+ *
85
+ * 跨会话委派工具(如 `delegate_to_session`)在向某个外部平台 sessionId 派发
86
+ * 合成消息前会调用此方法。返回 `{ allowed: false, reason }` 即拒绝本次派发,
87
+ * 用于防止 prompt-injection 驱动的群发 / 骚扰行为。
88
+ * 未实现表示该平台不做主动发送限速。
89
+ */
90
+ checkAndRecordProactiveSend?(sessionId: string): {
91
+ allowed: boolean;
92
+ reason?: string;
93
+ };
94
+ }
95
+ import type { Context } from '@aalis/core';
96
+ export interface PlatformAdapterEntry {
97
+ instance: PlatformAdapter;
98
+ contextId: string;
99
+ label?: string;
100
+ }
101
+ /** 枚举所有 platform adapter 条目 */
102
+ export declare function getPlatformAdapterEntries(ctx: Context): PlatformAdapterEntry[];
103
+ /** 枚举所有 platform adapter 实例 */
104
+ export declare function getPlatformAdapters(ctx: Context): PlatformAdapter[];
105
+ /** 枚举所有平台名(来自 adapter.platform 字段,去重) */
106
+ export declare function getPlatformNames(ctx: Context): string[];
107
+ /** 聚合所有 adapter 的连接 */
108
+ export declare function aggregatePlatformConnections(ctx: Context): PlatformConnection[];
109
+ /** 聚合所有 adapter 的展示详情(含 contextId / connections) */
110
+ export declare function aggregatePlatformDetails(ctx: Context): Array<{
111
+ adapterName: string;
112
+ platform: string;
113
+ contextId: string;
114
+ connections: PlatformConnection[];
115
+ }>;
116
+ /** 按平台名查询 adapter 自身身份 */
117
+ export declare function getPlatformSelfIdentity(ctx: Context, platform: string, sessionId?: string): PlatformSelfIdentity | undefined;
118
+ /**
119
+ * 按 sessionId 找到接管它的 adapter;优先 `canHandle`,否则 fallback 为
120
+ * `sessionId.startsWith(platform + ':')`(适合协议类平台)。
121
+ */
122
+ export declare function resolvePlatformBySession(ctx: Context, sessionId: string): Promise<PlatformAdapter | undefined>;
123
+ /** 按 sessionId 路由发送纯文本消息 */
124
+ export declare function sendPlatformMessage(ctx: Context, sessionId: string, content: string, options?: {
125
+ skipSplit?: boolean;
126
+ }): Promise<void>;
127
+ /** 按 sessionId 路由调用平台原生 action */
128
+ export declare function callPlatformAction(ctx: Context, sessionId: string, action: string, params: Record<string, unknown>): Promise<unknown>;
129
+ declare module '@aalis/core' {
130
+ interface ServiceTypeMap {
131
+ platform: PlatformAdapter;
132
+ }
133
+ }
134
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,76 @@
1
+ // ----- 平台适配器接口 -----
2
+ /** 枚举所有 platform adapter 条目 */
3
+ export function getPlatformAdapterEntries(ctx) {
4
+ return ctx.getAllServices('platform').filter(e => typeof e.instance?.getConnections === 'function');
5
+ }
6
+ /** 枚举所有 platform adapter 实例 */
7
+ export function getPlatformAdapters(ctx) {
8
+ return getPlatformAdapterEntries(ctx).map(e => e.instance);
9
+ }
10
+ /** 枚举所有平台名(来自 adapter.platform 字段,去重) */
11
+ export function getPlatformNames(ctx) {
12
+ const names = new Set();
13
+ for (const a of getPlatformAdapters(ctx))
14
+ names.add(a.platform);
15
+ return [...names];
16
+ }
17
+ /** 聚合所有 adapter 的连接 */
18
+ export function aggregatePlatformConnections(ctx) {
19
+ return getPlatformAdapters(ctx).flatMap(a => a.getConnections());
20
+ }
21
+ /** 聚合所有 adapter 的展示详情(含 contextId / connections) */
22
+ export function aggregatePlatformDetails(ctx) {
23
+ return getPlatformAdapterEntries(ctx).map(({ instance, contextId }) => ({
24
+ adapterName: instance.adapterName,
25
+ platform: instance.platform,
26
+ contextId,
27
+ connections: instance.getConnections(),
28
+ }));
29
+ }
30
+ /** 按平台名查询 adapter 自身身份 */
31
+ export function getPlatformSelfIdentity(ctx, platform, sessionId) {
32
+ for (const a of getPlatformAdapters(ctx)) {
33
+ if (a.platform !== platform)
34
+ continue;
35
+ return a.getSelfIdentity?.(sessionId);
36
+ }
37
+ return undefined;
38
+ }
39
+ /**
40
+ * 按 sessionId 找到接管它的 adapter;优先 `canHandle`,否则 fallback 为
41
+ * `sessionId.startsWith(platform + ':')`(适合协议类平台)。
42
+ */
43
+ export async function resolvePlatformBySession(ctx, sessionId) {
44
+ const logger = ctx.logger.child('platform');
45
+ for (const { instance, contextId } of getPlatformAdapterEntries(ctx)) {
46
+ try {
47
+ const ok = typeof instance.canHandle === 'function'
48
+ ? await instance.canHandle(sessionId)
49
+ : sessionId.startsWith(`${instance.platform}:`);
50
+ if (ok)
51
+ return instance;
52
+ }
53
+ catch (err) {
54
+ logger.warn(`canHandle 抛错 [${contextId}]:`, err);
55
+ }
56
+ }
57
+ return undefined;
58
+ }
59
+ /** 按 sessionId 路由发送纯文本消息 */
60
+ export async function sendPlatformMessage(ctx, sessionId, content, options) {
61
+ const adapter = await resolvePlatformBySession(ctx, sessionId);
62
+ if (!adapter)
63
+ throw new Error(`没有 platform adapter 能处理 sessionId="${sessionId}"`);
64
+ return adapter.sendMessage(sessionId, content, options);
65
+ }
66
+ /** 按 sessionId 路由调用平台原生 action */
67
+ export async function callPlatformAction(ctx, sessionId, action, params) {
68
+ const adapter = await resolvePlatformBySession(ctx, sessionId);
69
+ if (!adapter)
70
+ throw new Error(`没有 platform adapter 能处理 sessionId="${sessionId}"`);
71
+ if (typeof adapter.callAction !== 'function') {
72
+ throw new Error(`platform adapter "${adapter.adapterName}" 不支持 callAction`);
73
+ }
74
+ return adapter.callAction(sessionId, action, params);
75
+ }
76
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@aalis/api-platform",
3
+ "version": "0.5.0",
4
+ "license": "MIT",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/AalisLabs/Aalis.git",
8
+ "directory": "packages/api-platform"
9
+ },
10
+ "author": "Ace Nyan <ace@acenyan.com>",
11
+ "bugs": {
12
+ "url": "https://github.com/AalisLabs/Aalis/issues"
13
+ },
14
+ "homepage": "https://github.com/AalisLabs/Aalis#readme",
15
+ "type": "module",
16
+ "main": "dist/index.js",
17
+ "types": "dist/index.d.ts",
18
+ "files": [
19
+ "dist"
20
+ ],
21
+ "devDependencies": {
22
+ "typescript": "^5.7.0",
23
+ "@aalis/core": "0.10.0"
24
+ },
25
+ "peerDependencies": {
26
+ "@aalis/core": ">=0.2.0 <1.0.0"
27
+ },
28
+ "aalis": {
29
+ "types": true
30
+ },
31
+ "keywords": [
32
+ "aalis",
33
+ "aalis-api"
34
+ ],
35
+ "scripts": {
36
+ "build": "tsc",
37
+ "dev": "tsc --watch"
38
+ }
39
+ }