@zhin.js/core 1.1.34 → 1.2.1
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/README.md +9 -9
- package/lib/adapter.d.ts +17 -15
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +57 -27
- package/lib/adapter.js.map +1 -1
- package/lib/agent-prompt.d.ts +3 -3
- package/lib/agent-prompt.d.ts.map +1 -1
- package/lib/built/adapter-process.d.ts +5 -4
- package/lib/built/adapter-process.d.ts.map +1 -1
- package/lib/built/adapter-process.js +6 -5
- package/lib/built/adapter-process.js.map +1 -1
- package/lib/built/agent-preset.d.ts +1 -1
- package/lib/built/agent-preset.d.ts.map +1 -1
- package/lib/built/agent-preset.js +1 -1
- package/lib/built/agent-preset.js.map +1 -1
- package/lib/built/ai-trigger.d.ts +13 -13
- package/lib/built/ai-trigger.d.ts.map +1 -1
- package/lib/built/ai-trigger.js +37 -49
- package/lib/built/ai-trigger.js.map +1 -1
- package/lib/built/authorization.d.ts +11 -0
- package/lib/built/authorization.d.ts.map +1 -0
- package/lib/built/authorization.js +49 -0
- package/lib/built/authorization.js.map +1 -0
- package/lib/built/common-adapter-tools.d.ts +21 -14
- package/lib/built/common-adapter-tools.d.ts.map +1 -1
- package/lib/built/common-adapter-tools.js +58 -41
- package/lib/built/common-adapter-tools.js.map +1 -1
- package/lib/built/connect-endpoint-instance.d.ts +18 -0
- package/lib/built/connect-endpoint-instance.d.ts.map +1 -0
- package/lib/built/connect-endpoint-instance.js +41 -0
- package/lib/built/connect-endpoint-instance.js.map +1 -0
- package/lib/built/database.d.ts +4 -0
- package/lib/built/database.d.ts.map +1 -1
- package/lib/built/database.js +8 -0
- package/lib/built/database.js.map +1 -1
- package/lib/built/dispatcher.d.ts.map +1 -1
- package/lib/built/dispatcher.js +10 -0
- package/lib/built/dispatcher.js.map +1 -1
- package/lib/built/endpoint-lifecycle.d.ts +28 -0
- package/lib/built/endpoint-lifecycle.d.ts.map +1 -0
- package/lib/built/endpoint-lifecycle.js +36 -0
- package/lib/built/endpoint-lifecycle.js.map +1 -0
- package/lib/built/login-assist.d.ts +4 -4
- package/lib/built/login-assist.d.ts.map +1 -1
- package/lib/built/login-assist.js +5 -5
- package/lib/built/login-assist.js.map +1 -1
- package/lib/built/message-enrich.d.ts +40 -0
- package/lib/built/message-enrich.d.ts.map +1 -0
- package/lib/built/message-enrich.js +84 -0
- package/lib/built/message-enrich.js.map +1 -0
- package/lib/built/message-filter.d.ts +4 -4
- package/lib/built/message-filter.d.ts.map +1 -1
- package/lib/built/message-filter.js +4 -4
- package/lib/built/message-filter.js.map +1 -1
- package/lib/built/permission.d.ts +3 -2
- package/lib/built/permission.d.ts.map +1 -1
- package/lib/built/permission.js +38 -45
- package/lib/built/permission.js.map +1 -1
- package/lib/built/permit-check.d.ts +8 -0
- package/lib/built/permit-check.d.ts.map +1 -0
- package/lib/built/permit-check.js +36 -0
- package/lib/built/permit-check.js.map +1 -0
- package/lib/built/permit-parse.d.ts +17 -0
- package/lib/built/permit-parse.d.ts.map +1 -0
- package/lib/built/permit-parse.js +33 -0
- package/lib/built/permit-parse.js.map +1 -0
- package/lib/built/platform-permit.d.ts +21 -0
- package/lib/built/platform-permit.d.ts.map +1 -0
- package/lib/built/platform-permit.js +67 -0
- package/lib/built/platform-permit.js.map +1 -0
- package/lib/built/prepend-quote-context.d.ts +2 -2
- package/lib/built/prepend-quote-context.d.ts.map +1 -1
- package/lib/built/prepend-quote-context.js +11 -11
- package/lib/built/prepend-quote-context.js.map +1 -1
- package/lib/built/queue-im-field-contract.d.ts +1 -1
- package/lib/built/queue-im-field-contract.d.ts.map +1 -1
- package/lib/built/queue-im-field-contract.js +3 -3
- package/lib/built/queue-im-field-contract.js.map +1 -1
- package/lib/built/roles.d.ts +4 -4
- package/lib/built/roles.d.ts.map +1 -1
- package/lib/built/roles.js +4 -4
- package/lib/built/roles.js.map +1 -1
- package/lib/built/tool.d.ts +12 -12
- package/lib/built/tool.d.ts.map +1 -1
- package/lib/built/tool.js +38 -22
- package/lib/built/tool.js.map +1 -1
- package/lib/command.d.ts.map +1 -1
- package/lib/command.js +11 -2
- package/lib/command.js.map +1 -1
- package/lib/component.js +1 -1
- package/lib/component.js.map +1 -1
- package/lib/endpoint-capabilities.d.ts +45 -0
- package/lib/endpoint-capabilities.d.ts.map +1 -0
- package/lib/endpoint-capabilities.js +56 -0
- package/lib/endpoint-capabilities.js.map +1 -0
- package/lib/endpoint.d.ts +15 -0
- package/lib/endpoint.d.ts.map +1 -0
- package/lib/endpoint.js +2 -0
- package/lib/endpoint.js.map +1 -0
- package/lib/errors.d.ts +2 -2
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +4 -4
- package/lib/errors.js.map +1 -1
- package/lib/index.d.ts +13 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -2
- package/lib/index.js.map +1 -1
- package/lib/message.d.ts +3 -3
- package/lib/message.d.ts.map +1 -1
- package/lib/notice.d.ts +4 -3
- package/lib/notice.d.ts.map +1 -1
- package/lib/notice.js.map +1 -1
- package/lib/plugin.d.ts +14 -7
- package/lib/plugin.d.ts.map +1 -1
- package/lib/plugin.js +30 -107
- package/lib/plugin.js.map +1 -1
- package/lib/prompt.d.ts.map +1 -1
- package/lib/prompt.js +8 -4
- package/lib/prompt.js.map +1 -1
- package/lib/request.d.ts +3 -3
- package/lib/request.d.ts.map +1 -1
- package/lib/tool-zod.d.ts +3 -2
- package/lib/tool-zod.d.ts.map +1 -1
- package/lib/tool-zod.js +3 -3
- package/lib/tool-zod.js.map +1 -1
- package/lib/types.d.ts +19 -59
- package/lib/types.d.ts.map +1 -1
- package/package.json +6 -6
- package/lib/bot.d.ts +0 -38
- package/lib/bot.d.ts.map +0 -1
- package/lib/bot.js +0 -2
- package/lib/bot.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @zhin.js/core
|
|
2
2
|
|
|
3
|
-
Zhin.js IM
|
|
3
|
+
Zhin.js **IM/多通道运行时**包:Plugin、Adapter、**Endpoint**、MessageDispatcher 与统一出站链。**AI 编排(ZhinAgent、工具安全、MCP)在 [`@zhin.js/agent`](../agent/README.md)**;本包仅 selective re-export `@zhin.js/ai` 的 Provider / Agent 原语供插件直接使用。
|
|
4
4
|
|
|
5
5
|
领域词汇见 [CONTEXT.md](./CONTEXT.md);入站/出站流程见 [消息如何流转](../../docs/essentials/message-flow.md)。
|
|
6
6
|
|
|
@@ -110,15 +110,15 @@ Adapter.register('my-platform', MyAdapter)
|
|
|
110
110
|
**群管理能力自动检测:** 适配器基类声明了 `IGroupManagement` 接口中的可选方法(`kickMember`、`muteMember`、`banMember` 等),子类只需覆写自己平台支持的方法,`start()` 会自动检测哪些方法已实现,生成对应的 Tool 并注册为"群聊管理"Skill。目前所有 9 个 IM 适配器(ICQQ、OneBot11、QQ 官方、Telegram、Discord、KOOK、Slack、钉钉、飞书)均已采用此模式:
|
|
111
111
|
|
|
112
112
|
```typescript
|
|
113
|
-
class IcqqAdapter extends Adapter<
|
|
113
|
+
class IcqqAdapter extends Adapter<IcqqEndpoint> {
|
|
114
114
|
// 覆写标准群管方法
|
|
115
|
-
async kickMember(
|
|
116
|
-
const
|
|
117
|
-
if (!
|
|
118
|
-
return
|
|
115
|
+
async kickMember(endpointId: string, sceneId: string, userId: string) {
|
|
116
|
+
const endpoint = this.endpoints.get(endpointId)
|
|
117
|
+
if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`)
|
|
118
|
+
return endpoint.kickMember(Number(sceneId), Number(userId), false)
|
|
119
119
|
}
|
|
120
|
-
async muteMember(
|
|
121
|
-
async setAdmin(
|
|
120
|
+
async muteMember(endpointId: string, sceneId: string, userId: string, duration = 600) { /* ... */ }
|
|
121
|
+
async setAdmin(endpointId: string, sceneId: string, userId: string, enable = true) { /* ... */ }
|
|
122
122
|
// ...共覆写 7 个标准方法
|
|
123
123
|
|
|
124
124
|
async start() {
|
|
@@ -173,7 +173,7 @@ export { CommandFeature, ToolFeature, SkillFeature, CronFeature, DatabaseFeature
|
|
|
173
173
|
export { createMessageDispatcher } from './built/dispatcher.js'
|
|
174
174
|
|
|
175
175
|
// 适配器与消息
|
|
176
|
-
export { Adapter, Message, MessageCommand,
|
|
176
|
+
export { Adapter, Message, MessageCommand, Endpoint, segment, ... } from './'
|
|
177
177
|
|
|
178
178
|
// HTML 出站回退
|
|
179
179
|
export { htmlToFallbackText, coerceHtmlSegmentsToText, registerHtmlSegmentFallback } from './built/*.js'
|
package/lib/adapter.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Endpoint } from "./endpoint.js";
|
|
2
|
+
import { DEFAULT_ENDPOINT_CAPABILITIES, type EndpointCapability } from "./endpoint-capabilities.js";
|
|
2
3
|
import { Plugin } from "./plugin.js";
|
|
3
4
|
import { EventEmitter } from "node:events";
|
|
4
5
|
import { Message } from "./message.js";
|
|
@@ -11,13 +12,15 @@ import { SendOptions } from "./types.js";
|
|
|
11
12
|
*
|
|
12
13
|
* 适配器可以提供 AI 工具,供 AI 服务调用。
|
|
13
14
|
*/
|
|
14
|
-
export declare abstract class Adapter<R extends
|
|
15
|
+
export declare abstract class Adapter<R extends Endpoint = Endpoint, const Caps extends readonly EndpointCapability[] = typeof DEFAULT_ENDPOINT_CAPABILITIES> extends EventEmitter<Adapter.Lifecycle> {
|
|
15
16
|
#private;
|
|
16
17
|
plugin: Plugin;
|
|
17
18
|
name: keyof Plugin.Contexts;
|
|
18
|
-
config: Adapter.
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
config: Adapter.EndpointConfig<R>[];
|
|
20
|
+
endpoints: Map<string, R>;
|
|
21
|
+
private recallMessageHandler;
|
|
22
|
+
/** Adapter 支持的能力上限(子类覆盖) */
|
|
23
|
+
static readonly capabilities: readonly EndpointCapability[];
|
|
21
24
|
/** 并发上限,0 表示不限制(默认) */
|
|
22
25
|
static DEFAULT_MAX_CONCURRENT_MESSAGES: number;
|
|
23
26
|
get maxConcurrentMessages(): number;
|
|
@@ -26,9 +29,9 @@ export declare abstract class Adapter<R extends Bot = Bot> extends EventEmitter<
|
|
|
26
29
|
/**
|
|
27
30
|
* 构造函数
|
|
28
31
|
* @param name 适配器名称(如 'process'、'qq' 等)
|
|
29
|
-
* @param
|
|
32
|
+
* @param endpointFactory Bot工厂函数或构造器
|
|
30
33
|
*/
|
|
31
|
-
constructor(plugin: Plugin, name: keyof Plugin.Contexts, config: Adapter.
|
|
34
|
+
constructor(plugin: Plugin, name: keyof Plugin.Contexts, config: Adapter.EndpointConfig<R>[]);
|
|
32
35
|
/**
|
|
33
36
|
* 重写 emit:拦截 message.receive 事件,按架构规定的入站流程处理
|
|
34
37
|
* 入站消息链:adapter.emit → dispatcher.dispatch → plugin.dispatch('message.receive') → adapter observers
|
|
@@ -36,7 +39,7 @@ export declare abstract class Adapter<R extends Bot = Bot> extends EventEmitter<
|
|
|
36
39
|
* 以属性 + `EventEmitter.prototype.emit` 调用满足 Node @types 25 对泛型 `emit` 的可赋值检查。
|
|
37
40
|
*/
|
|
38
41
|
emit: EventEmitter<Adapter.Lifecycle>['emit'];
|
|
39
|
-
abstract
|
|
42
|
+
abstract createEndpoint(config: Adapter.EndpointConfig<R>): R;
|
|
40
43
|
get logger(): import("@zhin.js/logger").Logger;
|
|
41
44
|
binding(plugin: Plugin): void;
|
|
42
45
|
/**
|
|
@@ -53,8 +56,7 @@ export declare abstract class Adapter<R extends Bot = Bot> extends EventEmitter<
|
|
|
53
56
|
sendMessage(options: SendOptions): Promise<string>;
|
|
54
57
|
start(): Promise<void>;
|
|
55
58
|
/**
|
|
56
|
-
* 停止适配器,断开并移除所有
|
|
57
|
-
* @param plugin 所属插件实例
|
|
59
|
+
* 停止适配器,断开并移除所有 Endpoint 实例
|
|
58
60
|
*/
|
|
59
61
|
stop(): Promise<void>;
|
|
60
62
|
}
|
|
@@ -62,7 +64,7 @@ export interface Adapters {
|
|
|
62
64
|
}
|
|
63
65
|
export declare namespace Adapter {
|
|
64
66
|
type Factory<R extends Adapter = Adapter> = {
|
|
65
|
-
new (plugin: Plugin, name: string, config: Adapter.
|
|
67
|
+
new (plugin: Plugin, name: string, config: Adapter.EndpointConfig<Adapter.InferEndpoint<R>>[]): R;
|
|
66
68
|
};
|
|
67
69
|
interface Lifecycle {
|
|
68
70
|
'message.receive': [Message];
|
|
@@ -77,10 +79,10 @@ export declare namespace Adapter {
|
|
|
77
79
|
* 适配器工厂注册表
|
|
78
80
|
* 灵感来源于 zhinjs/next 的 Adapter.Registry
|
|
79
81
|
*/
|
|
80
|
-
const Registry: Map<string, Factory<Adapter<
|
|
81
|
-
type
|
|
82
|
-
type
|
|
83
|
-
type
|
|
82
|
+
const Registry: Map<string, Factory<Adapter<Endpoint, readonly EndpointCapability[]>>>;
|
|
83
|
+
type InferEndpoint<R extends Adapter = Adapter> = R extends Adapter<infer T> ? T : never;
|
|
84
|
+
type EndpointConfig<T extends Endpoint> = T extends Endpoint<infer R> ? R : never;
|
|
85
|
+
type EndpointMessage<T extends Endpoint> = T extends Endpoint<infer _L, infer R> ? R : never;
|
|
84
86
|
/**
|
|
85
87
|
* 注册适配器工厂
|
|
86
88
|
*
|
package/lib/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/lib/adapter.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { assertOutbound, DEFAULT_ENDPOINT_CAPABILITIES, hasInbound, } from "./endpoint-capabilities.js";
|
|
2
|
+
import { connectEndpointInstance, disconnectEndpointInstance } from "./built/connect-endpoint-instance.js";
|
|
1
3
|
import { EventEmitter } from "node:events";
|
|
2
4
|
import { getOutboundReplyStore } from "./built/dispatcher.js";
|
|
3
5
|
import { coerceHtmlSegmentsToText } from "./built/html-segment-fallback.js";
|
|
@@ -14,8 +16,10 @@ export class Adapter extends EventEmitter {
|
|
|
14
16
|
plugin;
|
|
15
17
|
name;
|
|
16
18
|
config;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
endpoints = new Map();
|
|
20
|
+
recallMessageHandler;
|
|
21
|
+
/** Adapter 支持的能力上限(子类覆盖) */
|
|
22
|
+
static capabilities = DEFAULT_ENDPOINT_CAPABILITIES;
|
|
19
23
|
/** 入站消息并发计数 */
|
|
20
24
|
#pendingMessages = 0;
|
|
21
25
|
/** 并发上限,0 表示不限制(默认) */
|
|
@@ -37,20 +41,22 @@ export class Adapter extends EventEmitter {
|
|
|
37
41
|
/**
|
|
38
42
|
* 构造函数
|
|
39
43
|
* @param name 适配器名称(如 'process'、'qq' 等)
|
|
40
|
-
* @param
|
|
44
|
+
* @param endpointFactory Bot工厂函数或构造器
|
|
41
45
|
*/
|
|
42
46
|
constructor(plugin, name, config) {
|
|
43
47
|
super();
|
|
44
48
|
this.plugin = plugin;
|
|
45
49
|
this.name = name;
|
|
46
50
|
this.config = config;
|
|
47
|
-
this.
|
|
48
|
-
const
|
|
49
|
-
if (!
|
|
50
|
-
throw new Error(`
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
this.recallMessageHandler = async (endpoint_id, id) => {
|
|
52
|
+
const endpoint = this.endpoints.get(endpoint_id);
|
|
53
|
+
if (!endpoint)
|
|
54
|
+
throw new Error(`Endpoint ${endpoint_id} not found`);
|
|
55
|
+
assertOutbound(endpoint);
|
|
56
|
+
this.logger.debug(formatCompact({ recall: id, endpoint: endpoint_id }));
|
|
57
|
+
await endpoint.$recallMessage(id);
|
|
58
|
+
};
|
|
59
|
+
this.on('call.recallMessage', this.recallMessageHandler);
|
|
54
60
|
}
|
|
55
61
|
/**
|
|
56
62
|
* 重写 emit:拦截 message.receive 事件,按架构规定的入站流程处理
|
|
@@ -59,13 +65,20 @@ export class Adapter extends EventEmitter {
|
|
|
59
65
|
* 以属性 + `EventEmitter.prototype.emit` 调用满足 Node @types 25 对泛型 `emit` 的可赋值检查。
|
|
60
66
|
*/
|
|
61
67
|
emit = ((event, ...args) => {
|
|
68
|
+
if (event === 'notice.receive' || event === 'request.receive') {
|
|
69
|
+
const bridged = EventEmitter.prototype.emit.call(this, event, ...args);
|
|
70
|
+
if (this.plugin) {
|
|
71
|
+
void this.plugin.dispatch(event, args[0]);
|
|
72
|
+
}
|
|
73
|
+
return bridged;
|
|
74
|
+
}
|
|
62
75
|
if (event !== 'message.receive') {
|
|
63
76
|
return EventEmitter.prototype.emit.call(this, event, ...args);
|
|
64
77
|
}
|
|
65
78
|
const message = args[0];
|
|
66
79
|
this.logger.info(formatCompact({
|
|
67
80
|
recv: `${message.$channel.type}(${message.$channel.id})`,
|
|
68
|
-
|
|
81
|
+
endpoint: message.$endpoint,
|
|
69
82
|
preview: truncatePreview(segment.raw(message.$content)),
|
|
70
83
|
...(message.$quote_id ? { quote_id: message.$quote_id } : {}),
|
|
71
84
|
}));
|
|
@@ -127,15 +140,16 @@ export class Adapter extends EventEmitter {
|
|
|
127
140
|
}
|
|
128
141
|
async sendMessage(options) {
|
|
129
142
|
options = await this.renderSendMessage(options);
|
|
130
|
-
const
|
|
131
|
-
if (!
|
|
132
|
-
throw new Error(`
|
|
143
|
+
const endpoint = this.endpoints.get(options.endpoint);
|
|
144
|
+
if (!endpoint)
|
|
145
|
+
throw new Error(`Endpoint ${options.endpoint} not found`);
|
|
146
|
+
assertOutbound(endpoint);
|
|
133
147
|
this.logger.info(formatCompact({
|
|
134
148
|
send: `${options.type}(${options.id})`,
|
|
135
|
-
|
|
149
|
+
endpoint: options.endpoint,
|
|
136
150
|
preview: truncatePreview(segment.raw(options.content)),
|
|
137
151
|
}));
|
|
138
|
-
const messageId = await
|
|
152
|
+
const messageId = await endpoint.$sendMessage(options);
|
|
139
153
|
const replyStore = getOutboundReplyStore();
|
|
140
154
|
this.plugin.root.dispatch('message.send', {
|
|
141
155
|
adapter: this.name,
|
|
@@ -147,6 +161,9 @@ export class Adapter extends EventEmitter {
|
|
|
147
161
|
return messageId;
|
|
148
162
|
}
|
|
149
163
|
async start() {
|
|
164
|
+
if (this.endpoints.size > 0) {
|
|
165
|
+
await this.stop();
|
|
166
|
+
}
|
|
150
167
|
const rootAdapters = this.plugin.root.adapters;
|
|
151
168
|
if (!rootAdapters.some((n) => String(n) === String(this.name))) {
|
|
152
169
|
rootAdapters.push(this.name);
|
|
@@ -154,31 +171,35 @@ export class Adapter extends EventEmitter {
|
|
|
154
171
|
if (!this.config?.length)
|
|
155
172
|
return;
|
|
156
173
|
for (const config of this.config) {
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
174
|
+
const endpoint = await connectEndpointInstance({
|
|
175
|
+
plugin: this.plugin,
|
|
176
|
+
adapter: this,
|
|
177
|
+
config: config,
|
|
178
|
+
});
|
|
179
|
+
this.logger.debug(formatCompact({ connect: endpoint.$id, adapter: this.name }));
|
|
180
|
+
this.endpoints.set(endpoint.$id, endpoint);
|
|
161
181
|
}
|
|
162
182
|
this.logger.debug(formatCompact({ adapter: this.name }));
|
|
163
183
|
}
|
|
164
184
|
/**
|
|
165
|
-
* 停止适配器,断开并移除所有
|
|
166
|
-
* @param plugin 所属插件实例
|
|
185
|
+
* 停止适配器,断开并移除所有 Endpoint 实例
|
|
167
186
|
*/
|
|
168
187
|
async stop() {
|
|
169
188
|
const errors = [];
|
|
170
|
-
for (const [id,
|
|
189
|
+
for (const [id, endpoint] of this.endpoints) {
|
|
171
190
|
try {
|
|
172
|
-
|
|
191
|
+
if (hasInbound(endpoint)) {
|
|
192
|
+
await disconnectEndpointInstance(this.plugin, this, endpoint);
|
|
193
|
+
}
|
|
173
194
|
this.logger.debug(formatCompact({ disconnect: id, adapter: this.name }));
|
|
174
195
|
}
|
|
175
196
|
catch (error) {
|
|
176
197
|
errors.push(error instanceof Error ? error : new Error(String(error)));
|
|
177
|
-
this.logger.error(`
|
|
198
|
+
this.logger.error(`endpoint ${id} of adapter ${this.name} disconnect failed:`, error);
|
|
178
199
|
}
|
|
179
200
|
}
|
|
180
201
|
// 无论是否有错误,始终完成清理
|
|
181
|
-
this.
|
|
202
|
+
this.endpoints.clear();
|
|
182
203
|
// 从 adapters 数组中移除(可能因重复 start 出现多条同名,需全部删掉)
|
|
183
204
|
const rootAdapters = this.plugin.root.adapters;
|
|
184
205
|
for (let i = rootAdapters.length - 1; i >= 0; i--) {
|
|
@@ -187,9 +208,18 @@ export class Adapter extends EventEmitter {
|
|
|
187
208
|
}
|
|
188
209
|
// 移除所有事件监听器
|
|
189
210
|
this.removeAllListeners();
|
|
211
|
+
this.recallMessageHandler = async (endpoint_id, id) => {
|
|
212
|
+
const endpoint = this.endpoints.get(endpoint_id);
|
|
213
|
+
if (!endpoint)
|
|
214
|
+
throw new Error(`Endpoint ${endpoint_id} not found`);
|
|
215
|
+
assertOutbound(endpoint);
|
|
216
|
+
this.logger.debug(formatCompact({ recall: id, endpoint: endpoint_id }));
|
|
217
|
+
await endpoint.$recallMessage(id);
|
|
218
|
+
};
|
|
219
|
+
this.on('call.recallMessage', this.recallMessageHandler);
|
|
190
220
|
this.logger.debug(formatCompact({ stop: this.name }));
|
|
191
221
|
if (errors.length) {
|
|
192
|
-
throw new AggregateError(errors, `adapter ${this.name}: ${errors.length}
|
|
222
|
+
throw new AggregateError(errors, `adapter ${this.name}: ${errors.length} endpoint(s) failed to disconnect`);
|
|
193
223
|
}
|
|
194
224
|
}
|
|
195
225
|
}
|
package/lib/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/lib/agent-prompt.d.ts
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* Implementations live in adapter plugins; resolution runs in @zhin.js/agent.
|
|
5
5
|
*/
|
|
6
6
|
import type { AgentTool } from '@zhin.js/ai';
|
|
7
|
-
import type {
|
|
7
|
+
import type { Message } from './message.js';
|
|
8
8
|
export type AgentPromptSlot = 'orchestrator' | 'deferred_worker';
|
|
9
9
|
export interface AgentPromptBuildContext {
|
|
10
10
|
slot: AgentPromptSlot;
|
|
11
|
-
/**
|
|
12
|
-
|
|
11
|
+
/** 当前 turn 的 Message 通讯上下文 */
|
|
12
|
+
commMessage: Message<any>;
|
|
13
13
|
/** Truncated user message for intent hints (~500 chars). */
|
|
14
14
|
userMessagePreview?: string;
|
|
15
15
|
deferred?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-prompt.d.ts","sourceRoot":"","sources":["../src/agent-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"agent-prompt.d.ts","sourceRoot":"","sources":["../src/agent-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,iBAAiB,CAAC;AAEtB,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,eAAe,CAAC;IACtB,8BAA8B;IAC9B,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,aAAa,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,CAAC;IAElF,wEAAwE;IACxE,mBAAmB,CAAC,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC;IAE5D,gEAAgE;IAChE,mBAAmB,CAAC,CAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE,MAAM,GACf,SAAS,EAAE,GAAG,IAAI,CAAC;CACvB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Adapter, Plugin,
|
|
2
|
-
export declare class
|
|
1
|
+
import { Adapter, Plugin, Endpoint, SendOptions, Message } from "@zhin.js/core";
|
|
2
|
+
export declare class ProcessEndpoint implements Endpoint<{
|
|
3
3
|
owner?: string;
|
|
4
4
|
}, {
|
|
5
5
|
content: string;
|
|
@@ -31,9 +31,10 @@ export declare class ProcessBot implements Bot<{
|
|
|
31
31
|
$connect(): Promise<void>;
|
|
32
32
|
$disconnect(): Promise<void>;
|
|
33
33
|
}
|
|
34
|
-
export declare class ProcessAdapter extends Adapter<
|
|
34
|
+
export declare class ProcessAdapter extends Adapter<ProcessEndpoint> {
|
|
35
|
+
static readonly capabilities: readonly ["inbound", "outbound"];
|
|
35
36
|
constructor(plugin: Plugin);
|
|
36
|
-
|
|
37
|
+
createEndpoint(config: Adapter.EndpointConfig<ProcessEndpoint>): ProcessEndpoint;
|
|
37
38
|
}
|
|
38
39
|
declare module '../adapter.js' {
|
|
39
40
|
interface Adapters {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-process.d.ts","sourceRoot":"","sources":["../../src/built/adapter-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"adapter-process.d.ts","sourceRoot":"","sources":["../../src/built/adapter-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAe,WAAW,EAAe,OAAO,EAAW,MAAM,eAAe,CAAC;AAGnH,qBAAa,eAAgB,YAAW,QAAQ,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAC;IAAC,OAAO,EAAC,MAAM,CAAC;IAAA,EAAE,EAAC,MAAM,CAAA;CAAC,CAAC;;IAOxE,OAAO,EAAE,cAAc;IAAS,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAN9E,GAAG,SAAgB;IACnB,IAAI,MAAM,qCAET;IACD,UAAU,UAAO;gBAEE,OAAO,EAAE,cAAc,EAAS,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAA0B;IAGtG,YAAY,CAAC,KAAK,EAAE,MAAM;IAMpB,OAAO;IAEP,UAAU;IAEhB,cAAc,CAAC,KAAK,EAAE;QAAC,OAAO,EAAC,MAAM,CAAC;QAAA,EAAE,EAAC,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC;QAAC,OAAO,EAAC,MAAM,CAAC;QAAA,EAAE,EAAC,MAAM,CAAA;KAAC,CAAC;IAgChF,cAAc,CAAC,EAAE,EAAE,MAAM;IAEzB,YAAY,CAAC,OAAO,EAAE,WAAW;IAGjC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,WAAW;CAIpB;AACD,qBAAa,cAAe,SAAQ,OAAO,CAAC,eAAe,CAAC;IACxD,gBAAyB,YAAY,mCAAoC;gBAE7D,MAAM,EAAE,MAAM;IAI1B,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,eAAe;CAGnF;AACD,OAAO,QAAQ,eAAe,CAAA;IAC1B,UAAU,QAAQ;QACd,OAAO,EAAC,cAAc,CAAA;KACzB;CACJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Adapter, Message } from "@zhin.js/core";
|
|
2
2
|
import { bindStdin, runtimePid, runtimeUser } from "./runtime-io.js";
|
|
3
|
-
export class
|
|
3
|
+
export class ProcessEndpoint {
|
|
4
4
|
adapter;
|
|
5
5
|
$config;
|
|
6
6
|
$id = runtimePid();
|
|
@@ -28,7 +28,7 @@ export class ProcessBot {
|
|
|
28
28
|
const base = {
|
|
29
29
|
$id: `${event.ts}`,
|
|
30
30
|
$adapter: 'process',
|
|
31
|
-
$
|
|
31
|
+
$endpoint: runtimePid(),
|
|
32
32
|
$sender: {
|
|
33
33
|
id: runtimeUser(),
|
|
34
34
|
name: runtimeUser(),
|
|
@@ -47,7 +47,7 @@ export class ProcessBot {
|
|
|
47
47
|
$reply: async (content) => {
|
|
48
48
|
return await this.adapter.sendMessage({
|
|
49
49
|
context: 'process',
|
|
50
|
-
|
|
50
|
+
endpoint: base.$endpoint,
|
|
51
51
|
content,
|
|
52
52
|
id: base.$sender.id,
|
|
53
53
|
type: base.$channel.type,
|
|
@@ -71,11 +71,12 @@ export class ProcessBot {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
export class ProcessAdapter extends Adapter {
|
|
74
|
+
static capabilities = ['inbound', 'outbound'];
|
|
74
75
|
constructor(plugin) {
|
|
75
76
|
super(plugin, 'process', [{ owner: runtimePid() }]);
|
|
76
77
|
}
|
|
77
|
-
|
|
78
|
-
return new
|
|
78
|
+
createEndpoint(config) {
|
|
79
|
+
return new ProcessEndpoint(this, config);
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
82
|
//# sourceMappingURL=adapter-process.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-process.js","sourceRoot":"","sources":["../../src/built/adapter-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"adapter-process.js","sourceRoot":"","sources":["../../src/built/adapter-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,7 +48,7 @@ declare module '../plugin.js' {
|
|
|
48
48
|
export declare class AgentPresetFeature extends Feature<AgentPreset> {
|
|
49
49
|
#private;
|
|
50
50
|
readonly name: "agentPreset";
|
|
51
|
-
readonly icon = "
|
|
51
|
+
readonly icon = "Endpoint";
|
|
52
52
|
readonly desc = "Agent \u9884\u8BBE";
|
|
53
53
|
readonly byName: Map<string, AgentPreset>;
|
|
54
54
|
add(preset: AgentPreset, pluginName: string): () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-preset.d.ts","sourceRoot":"","sources":["../../src/built/agent-preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAMxC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IAEb,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IAEpB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,cAAc;IACd,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAEf,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iBAAiB;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,qBAAqB;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,MAAM,CAAC;QACf,UAAU,QAAQ;YAChB,WAAW,EAAE,kBAAkB,CAAC;SACjC;KACF;CACF;AAED,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,WAAW,CAAC;;IAC1D,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IACvC,QAAQ,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"agent-preset.d.ts","sourceRoot":"","sources":["../../src/built/agent-preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAMxC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IAEb,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IAEpB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,cAAc;IACd,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAEf,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iBAAiB;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,qBAAqB;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,MAAM,CAAC;QACf,UAAU,QAAQ;YAChB,WAAW,EAAE,kBAAkB,CAAC;SACjC;KACF;CACF;AAED,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,WAAW,CAAC;;IAC1D,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IACvC,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,IAAI,wBAAc;IAE3B,QAAQ,CAAC,MAAM,2BAAkC;IAEjD,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,IAAI;IAKxD,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;IAKzD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI1C,uCAAuC;IACvC,OAAO,IAAI,IAAI;IAIf,MAAM,IAAI,WAAW,EAAE;IAIvB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW,EAAE;IAwBvE,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW;CAiBzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-preset.js","sourceRoot":"","sources":["../../src/built/agent-preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAoB,MAAM,iBAAiB,CAAC;AAyD5D,MAAM,OAAO,kBAAmB,SAAQ,OAAoB;IACjD,IAAI,GAAG,aAAsB,CAAC;IAC9B,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"agent-preset.js","sourceRoot":"","sources":["../../src/built/agent-preset.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,8 +49,8 @@ export interface AITriggerResult {
|
|
|
49
49
|
}
|
|
50
50
|
/** shouldTriggerAI 可选参数(如适配器提供的平台 @ ID) */
|
|
51
51
|
export interface AITriggerOptions {
|
|
52
|
-
/** 用于 @ 匹配的
|
|
53
|
-
|
|
52
|
+
/** 用于 @ 匹配的 Endpoint 标识符(默认仅 message.$endpoint) */
|
|
53
|
+
endpointAtIds?: string[];
|
|
54
54
|
}
|
|
55
55
|
/** 发送者角色解析结果 */
|
|
56
56
|
export interface SenderRolesResult {
|
|
@@ -59,13 +59,13 @@ export interface SenderRolesResult {
|
|
|
59
59
|
}
|
|
60
60
|
export declare const DEFAULT_AI_TRIGGER_CONFIG: Required<AITriggerConfig>;
|
|
61
61
|
/**
|
|
62
|
-
* 收集用于 @ 匹配的
|
|
62
|
+
* 收集用于 @ 匹配的 Endpoint 标识符
|
|
63
63
|
*/
|
|
64
|
-
export declare function
|
|
64
|
+
export declare function collectEndpointAtIds<T extends object>(message: Message<T>, extraIds?: string[]): string[];
|
|
65
65
|
/**
|
|
66
|
-
* 检查消息是否 @
|
|
66
|
+
* 检查消息是否 @ 了 Endpoint
|
|
67
67
|
*/
|
|
68
|
-
export declare function
|
|
68
|
+
export declare function isAtEndpoint<T extends object>(message: Message<T>, endpointAtIds?: string[]): boolean;
|
|
69
69
|
/**
|
|
70
70
|
* 提取消息文本内容(保留富媒体信息)
|
|
71
71
|
* 使用 segment.toString 将 MessageElement 转为 XML 格式
|
|
@@ -77,19 +77,19 @@ export declare function extractTextContent<T extends object>(message: Message<T>
|
|
|
77
77
|
*/
|
|
78
78
|
export declare function parseRichMediaContent(content: string): MessageElement[];
|
|
79
79
|
/**
|
|
80
|
-
* 移除 @
|
|
80
|
+
* 移除 @ Endpoint 的部分
|
|
81
81
|
*/
|
|
82
|
-
export declare function
|
|
83
|
-
/**
|
|
84
|
-
export interface
|
|
82
|
+
export declare function removeAtEndpoint<T extends object>(message: Message<T>, endpointAtIds?: string[]): MessageElement[];
|
|
83
|
+
/** Endpoint 配置(adapter endpoints[].$config) */
|
|
84
|
+
export interface EndpointConfigRoles {
|
|
85
85
|
master?: unknown;
|
|
86
86
|
trusted?: unknown;
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
|
-
* 解析发送者角色集合(IM 群角色 + trigger +
|
|
89
|
+
* 解析发送者角色集合(IM 群角色 + trigger + endpoints[].$config)
|
|
90
90
|
*/
|
|
91
|
-
export declare function resolveSenderRoles<T extends object>(message: Message<T>, config: AITriggerConfig,
|
|
92
|
-
/** 从 IM 消息生成 sessionId(platform:
|
|
91
|
+
export declare function resolveSenderRoles<T extends object>(message: Message<T>, config: AITriggerConfig, endpointConfig?: EndpointConfigRoles | Record<string, unknown> | null): SenderRolesResult;
|
|
92
|
+
/** 从 IM 消息生成 sessionId(platform:endpointId:type:sceneId) */
|
|
93
93
|
export declare function resolveIMSessionIdFromMessage<T extends object>(message: Message<T>): string;
|
|
94
94
|
/**
|
|
95
95
|
* 检查消息是否应该触发 AI
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-trigger.d.ts","sourceRoot":"","sources":["../../src/built/ai-trigger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EAEV,MAAM,aAAa,CAAC;AAMrB,OAAO,EACL,KAAK,UAAU,EAEhB,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,sBAAsB;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,0BAA0B;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gBAAgB;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,aAAa;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,6CAA6C;IAC7C,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,2CAA2C;AAC3C,MAAM,WAAW,gBAAgB;IAC/B,
|
|
1
|
+
{"version":3,"file":"ai-trigger.d.ts","sourceRoot":"","sources":["../../src/built/ai-trigger.ts"],"names":[],"mappings":"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"}
|