@zhin.js/core 1.2.0 → 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 +16 -14
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +50 -32
- 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 +3 -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/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 +5 -2
- package/lib/plugin.d.ts.map +1 -1
- package/lib/plugin.js +4 -0
- 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
|
-
|
|
19
|
+
config: Adapter.EndpointConfig<R>[];
|
|
20
|
+
endpoints: Map<string, R>;
|
|
20
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
|
-
|
|
19
|
+
endpoints = new Map();
|
|
18
20
|
recallMessageHandler;
|
|
21
|
+
/** Adapter 支持的能力上限(子类覆盖) */
|
|
22
|
+
static capabilities = DEFAULT_ENDPOINT_CAPABILITIES;
|
|
19
23
|
/** 入站消息并发计数 */
|
|
20
24
|
#pendingMessages = 0;
|
|
21
25
|
/** 并发上限,0 表示不限制(默认) */
|
|
@@ -37,19 +41,20 @@ 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.recallMessageHandler = async (
|
|
48
|
-
const
|
|
49
|
-
if (!
|
|
50
|
-
throw new Error(`
|
|
51
|
-
|
|
52
|
-
|
|
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);
|
|
53
58
|
};
|
|
54
59
|
this.on('call.recallMessage', this.recallMessageHandler);
|
|
55
60
|
}
|
|
@@ -60,13 +65,20 @@ export class Adapter extends EventEmitter {
|
|
|
60
65
|
* 以属性 + `EventEmitter.prototype.emit` 调用满足 Node @types 25 对泛型 `emit` 的可赋值检查。
|
|
61
66
|
*/
|
|
62
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
|
+
}
|
|
63
75
|
if (event !== 'message.receive') {
|
|
64
76
|
return EventEmitter.prototype.emit.call(this, event, ...args);
|
|
65
77
|
}
|
|
66
78
|
const message = args[0];
|
|
67
79
|
this.logger.info(formatCompact({
|
|
68
80
|
recv: `${message.$channel.type}(${message.$channel.id})`,
|
|
69
|
-
|
|
81
|
+
endpoint: message.$endpoint,
|
|
70
82
|
preview: truncatePreview(segment.raw(message.$content)),
|
|
71
83
|
...(message.$quote_id ? { quote_id: message.$quote_id } : {}),
|
|
72
84
|
}));
|
|
@@ -128,15 +140,16 @@ export class Adapter extends EventEmitter {
|
|
|
128
140
|
}
|
|
129
141
|
async sendMessage(options) {
|
|
130
142
|
options = await this.renderSendMessage(options);
|
|
131
|
-
const
|
|
132
|
-
if (!
|
|
133
|
-
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);
|
|
134
147
|
this.logger.info(formatCompact({
|
|
135
148
|
send: `${options.type}(${options.id})`,
|
|
136
|
-
|
|
149
|
+
endpoint: options.endpoint,
|
|
137
150
|
preview: truncatePreview(segment.raw(options.content)),
|
|
138
151
|
}));
|
|
139
|
-
const messageId = await
|
|
152
|
+
const messageId = await endpoint.$sendMessage(options);
|
|
140
153
|
const replyStore = getOutboundReplyStore();
|
|
141
154
|
this.plugin.root.dispatch('message.send', {
|
|
142
155
|
adapter: this.name,
|
|
@@ -148,7 +161,7 @@ export class Adapter extends EventEmitter {
|
|
|
148
161
|
return messageId;
|
|
149
162
|
}
|
|
150
163
|
async start() {
|
|
151
|
-
if (this.
|
|
164
|
+
if (this.endpoints.size > 0) {
|
|
152
165
|
await this.stop();
|
|
153
166
|
}
|
|
154
167
|
const rootAdapters = this.plugin.root.adapters;
|
|
@@ -158,31 +171,35 @@ export class Adapter extends EventEmitter {
|
|
|
158
171
|
if (!this.config?.length)
|
|
159
172
|
return;
|
|
160
173
|
for (const config of this.config) {
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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);
|
|
165
181
|
}
|
|
166
182
|
this.logger.debug(formatCompact({ adapter: this.name }));
|
|
167
183
|
}
|
|
168
184
|
/**
|
|
169
|
-
* 停止适配器,断开并移除所有
|
|
170
|
-
* @param plugin 所属插件实例
|
|
185
|
+
* 停止适配器,断开并移除所有 Endpoint 实例
|
|
171
186
|
*/
|
|
172
187
|
async stop() {
|
|
173
188
|
const errors = [];
|
|
174
|
-
for (const [id,
|
|
189
|
+
for (const [id, endpoint] of this.endpoints) {
|
|
175
190
|
try {
|
|
176
|
-
|
|
191
|
+
if (hasInbound(endpoint)) {
|
|
192
|
+
await disconnectEndpointInstance(this.plugin, this, endpoint);
|
|
193
|
+
}
|
|
177
194
|
this.logger.debug(formatCompact({ disconnect: id, adapter: this.name }));
|
|
178
195
|
}
|
|
179
196
|
catch (error) {
|
|
180
197
|
errors.push(error instanceof Error ? error : new Error(String(error)));
|
|
181
|
-
this.logger.error(`
|
|
198
|
+
this.logger.error(`endpoint ${id} of adapter ${this.name} disconnect failed:`, error);
|
|
182
199
|
}
|
|
183
200
|
}
|
|
184
201
|
// 无论是否有错误,始终完成清理
|
|
185
|
-
this.
|
|
202
|
+
this.endpoints.clear();
|
|
186
203
|
// 从 adapters 数组中移除(可能因重复 start 出现多条同名,需全部删掉)
|
|
187
204
|
const rootAdapters = this.plugin.root.adapters;
|
|
188
205
|
for (let i = rootAdapters.length - 1; i >= 0; i--) {
|
|
@@ -191,17 +208,18 @@ export class Adapter extends EventEmitter {
|
|
|
191
208
|
}
|
|
192
209
|
// 移除所有事件监听器
|
|
193
210
|
this.removeAllListeners();
|
|
194
|
-
this.recallMessageHandler = async (
|
|
195
|
-
const
|
|
196
|
-
if (!
|
|
197
|
-
throw new Error(`
|
|
198
|
-
|
|
199
|
-
|
|
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);
|
|
200
218
|
};
|
|
201
219
|
this.on('call.recallMessage', this.recallMessageHandler);
|
|
202
220
|
this.logger.debug(formatCompact({ stop: this.name }));
|
|
203
221
|
if (errors.length) {
|
|
204
|
-
throw new AggregateError(errors, `adapter ${this.name}: ${errors.length}
|
|
222
|
+
throw new AggregateError(errors, `adapter ${this.name}: ${errors.length} endpoint(s) failed to disconnect`);
|
|
205
223
|
}
|
|
206
224
|
}
|
|
207
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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"}
|