@zhin.js/core 1.0.39 → 1.0.41
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/CHANGELOG.md +22 -0
- package/lib/ai/index.d.ts +10 -5
- package/lib/ai/index.d.ts.map +1 -1
- package/lib/ai/index.js +7 -4
- package/lib/ai/index.js.map +1 -1
- package/lib/built/common-adapter-tools.d.ts.map +1 -1
- package/lib/built/common-adapter-tools.js +38 -32
- package/lib/built/common-adapter-tools.js.map +1 -1
- package/lib/cron.d.ts +2 -43
- package/lib/cron.d.ts.map +1 -1
- package/lib/cron.js +2 -126
- package/lib/cron.js.map +1 -1
- package/lib/errors.d.ts +3 -146
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +3 -279
- package/lib/errors.js.map +1 -1
- package/lib/feature.d.ts +5 -87
- package/lib/feature.d.ts.map +1 -1
- package/lib/feature.js +4 -105
- package/lib/feature.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/scheduler/index.d.ts +3 -7
- package/lib/scheduler/index.d.ts.map +1 -1
- package/lib/scheduler/index.js +2 -9
- package/lib/scheduler/index.js.map +1 -1
- package/lib/types.d.ts +8 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/utils.d.ts +7 -52
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +9 -325
- package/lib/utils.js.map +1 -1
- package/package.json +6 -4
- package/src/ai/index.ts +15 -9
- package/src/built/common-adapter-tools.ts +38 -32
- package/src/cron.ts +2 -140
- package/src/errors.ts +15 -334
- package/src/feature.ts +5 -154
- package/src/index.ts +3 -1
- package/src/scheduler/index.ts +8 -17
- package/src/types.ts +10 -2
- package/src/utils.ts +37 -334
- package/tests/cron.test.ts +4 -299
- package/tests/errors.test.ts +17 -307
- package/tests/utils.test.ts +11 -516
- package/tests/feature.test.ts +0 -145
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @zhin.js/core
|
|
2
2
|
|
|
3
|
+
## 1.0.41
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 5a68249: fix: 文档优化
|
|
8
|
+
- @zhin.js/database@1.0.28
|
|
9
|
+
- @zhin.js/logger@0.1.25
|
|
10
|
+
- @zhin.js/schema@1.0.25
|
|
11
|
+
- @zhin.js/ai@1.0.2
|
|
12
|
+
- @zhin.js/kernel@0.0.2
|
|
13
|
+
|
|
14
|
+
## 1.0.40
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- 7ef9057: fix: 架构调整优化
|
|
19
|
+
- @zhin.js/database@1.0.27
|
|
20
|
+
- @zhin.js/logger@0.1.24
|
|
21
|
+
- @zhin.js/schema@1.0.24
|
|
22
|
+
- @zhin.js/ai@1.0.1
|
|
23
|
+
- @zhin.js/kernel@0.0.1
|
|
24
|
+
|
|
3
25
|
## 1.0.39
|
|
4
26
|
|
|
5
27
|
### Patch Changes
|
package/lib/ai/index.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @zhin.js/core — AI
|
|
2
|
+
* @zhin.js/core — AI 模块
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* 类型定义和 Provider 实现已迁移至独立的 @zhin.js/ai 包,
|
|
5
|
+
* 此文件通过 re-export 保持向后兼容。
|
|
6
|
+
*
|
|
7
|
+
* 注意:ToolDefinition 不在此 re-export,因为 core/types.ts 有自己的同名类型。
|
|
8
|
+
* 使用 ChatToolDefinition 别名代替。
|
|
5
9
|
*/
|
|
6
|
-
export type { AIConfig, AIProvider, ProviderConfig, ProviderCapabilities, OllamaProviderConfig, ChatMessage, ChatCompletionRequest, ChatCompletionResponse, ChatCompletionChunk, ContentPart, ToolCall, MessageRole, AgentTool, AgentConfig, AgentResult,
|
|
7
|
-
export {
|
|
8
|
-
export
|
|
10
|
+
export type { AIConfig, AIProvider, ProviderConfig, ProviderCapabilities, OllamaProviderConfig, ChatMessage, ChatCompletionRequest, ChatCompletionResponse, ChatCompletionChunk, ChatCompletionChoice, ChatCompletionChunkChoice, ContentPart, ToolCall, MessageRole, AgentTool, AgentConfig, AgentResult, ToolFilterOptions, Usage, SessionConfig, Session, JsonSchema, } from '@zhin.js/ai';
|
|
11
|
+
export type { ToolDefinition as ChatToolDefinition } from '@zhin.js/ai';
|
|
12
|
+
export { BaseProvider, OpenAIProvider, DeepSeekProvider, MoonshotProvider, ZhipuProvider, AnthropicProvider, OllamaProvider, } from '@zhin.js/ai';
|
|
13
|
+
export type { OpenAIConfig, AnthropicConfig, OllamaConfig, } from '@zhin.js/ai';
|
|
9
14
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/ai/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,YAAY,EACV,QAAQ,EACR,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,SAAS,EACT,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,KAAK,EACL,aAAa,EACb,OAAO,EACP,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,YAAY,GACb,MAAM,aAAa,CAAC"}
|
package/lib/ai/index.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @zhin.js/core — AI
|
|
2
|
+
* @zhin.js/core — AI 模块
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* 类型定义和 Provider 实现已迁移至独立的 @zhin.js/ai 包,
|
|
5
|
+
* 此文件通过 re-export 保持向后兼容。
|
|
6
|
+
*
|
|
7
|
+
* 注意:ToolDefinition 不在此 re-export,因为 core/types.ts 有自己的同名类型。
|
|
8
|
+
* 使用 ChatToolDefinition 别名代替。
|
|
5
9
|
*/
|
|
6
|
-
|
|
7
|
-
export { BaseProvider, OpenAIProvider, DeepSeekProvider, MoonshotProvider, ZhipuProvider, AnthropicProvider, OllamaProvider, } from './providers/index.js';
|
|
10
|
+
export { BaseProvider, OpenAIProvider, DeepSeekProvider, MoonshotProvider, ZhipuProvider, AnthropicProvider, OllamaProvider, } from '@zhin.js/ai';
|
|
8
11
|
//# sourceMappingURL=index.js.map
|
package/lib/ai/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA6BH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-adapter-tools.d.ts","sourceRoot":"","sources":["../../src/built/common-adapter-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAMvD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1E,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7F,iBAAiB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnG,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1F,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3D,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1F,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3E,YAAY,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1E,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzE,YAAY,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC7D;AAMD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,gBAAgB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,EAAE,mBAAmB,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;IAClF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,EA8G/C,CAAC;AAMF,eAAO,MAAM,kCAAkC,
|
|
1
|
+
{"version":3,"file":"common-adapter-tools.d.ts","sourceRoot":"","sources":["../../src/built/common-adapter-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAMvD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1E,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7F,iBAAiB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnG,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1F,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3D,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1F,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3E,YAAY,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1E,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzE,YAAY,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC7D;AAMD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,gBAAgB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,EAAE,mBAAmB,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;IAClF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,EA8G/C,CAAC;AAMF,eAAO,MAAM,kCAAkC,QAQtB,CAAC;AAE1B,eAAO,MAAM,2BAA2B,UAAyC,CAAC;AAClF,eAAO,MAAM,+BAA+B,UAG3C,CAAC;AAMF,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,gBAAgB,EAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,GAAG,EAAE,CAcP"}
|
|
@@ -20,55 +20,55 @@ export const GROUP_METHOD_SPECS = [
|
|
|
20
20
|
{
|
|
21
21
|
method: 'kickMember',
|
|
22
22
|
toolSuffix: 'kick_member',
|
|
23
|
-
description: '
|
|
23
|
+
description: '将成员踢出群/服务器。适用于严重违规、广告号等需要移除的场景。踢出后该成员将无法再进入群聊(部分平台可重新邀请)。如果只需要用户名而没有 user_id,请先调用 list_members 查询',
|
|
24
24
|
keywords: ['踢', 'kick', '移除', '踢出'],
|
|
25
25
|
permissionLevel: 'group_admin',
|
|
26
26
|
extraParams: {
|
|
27
|
-
user_id: { type: 'string', description: '目标用户 ID' },
|
|
27
|
+
user_id: { type: 'string', description: '目标用户 ID(如果只有昵称,先用 list_members 查询获取)' },
|
|
28
28
|
},
|
|
29
29
|
extraRequired: ['user_id'],
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
method: 'muteMember',
|
|
33
33
|
toolSuffix: 'mute_member',
|
|
34
|
-
description: '
|
|
35
|
-
keywords: ['禁言', 'mute', '静音', '解除禁言'],
|
|
34
|
+
description: '禁言或解除禁言群成员。适用于违规发言、刷屏、骚扰他人等需要临时限制发言的场景。duration 单位为秒,传 0 表示解除禁言。默认禁言 10 分钟(600秒)。如果只有昵称而没有 user_id,请先调用 list_members 查询',
|
|
35
|
+
keywords: ['禁言', 'mute', '静音', '解除禁言', '解禁', '闭嘴'],
|
|
36
36
|
permissionLevel: 'group_admin',
|
|
37
37
|
extraParams: {
|
|
38
|
-
user_id: { type: 'string', description: '目标用户 ID' },
|
|
39
|
-
duration: { type: 'number', description: '禁言时长(秒),0
|
|
38
|
+
user_id: { type: 'string', description: '目标用户 ID(如果只有昵称,先用 list_members 查询获取)' },
|
|
39
|
+
duration: { type: 'number', description: '禁言时长(秒),0=解除禁言,默认600(10分钟)。常用值:60=1分钟, 600=10分钟, 3600=1小时, 86400=1天', default: 600 },
|
|
40
40
|
},
|
|
41
41
|
extraRequired: ['user_id'],
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
method: 'setMemberNickname',
|
|
45
45
|
toolSuffix: 'set_nickname',
|
|
46
|
-
description: '
|
|
47
|
-
keywords: ['昵称', '名片', 'nickname', 'card'],
|
|
46
|
+
description: '设置群成员的群昵称/名片。仅修改群内显示名称,不影响用户的全局昵称。如果只有昵称而没有 user_id,请先调用 list_members 查询',
|
|
47
|
+
keywords: ['昵称', '名片', 'nickname', 'card', '改名片'],
|
|
48
48
|
permissionLevel: 'group_admin',
|
|
49
49
|
extraParams: {
|
|
50
|
-
user_id: { type: 'string', description: '目标用户 ID' },
|
|
51
|
-
nickname: { type: 'string', description: '
|
|
50
|
+
user_id: { type: 'string', description: '目标用户 ID(如果只有昵称,先用 list_members 查询获取)' },
|
|
51
|
+
nickname: { type: 'string', description: '新的群昵称/名片' },
|
|
52
52
|
},
|
|
53
53
|
extraRequired: ['user_id', 'nickname'],
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
56
|
method: 'setAdmin',
|
|
57
57
|
toolSuffix: 'set_admin',
|
|
58
|
-
description: '
|
|
59
|
-
keywords: ['管理员', 'admin', '设置管理'],
|
|
58
|
+
description: '设置或取消群管理员。注意:此操作需要群主权限,普通管理员无法执行。enable=true 为设置管理员,enable=false 为取消管理员。如果只有昵称而没有 user_id,请先调用 list_members 查询',
|
|
59
|
+
keywords: ['管理员', 'admin', '设置管理', '取消管理', '提升管理', '撤销管理'],
|
|
60
60
|
permissionLevel: 'group_owner',
|
|
61
61
|
extraParams: {
|
|
62
|
-
user_id: { type: 'string', description: '目标用户 ID' },
|
|
63
|
-
enable: { type: 'boolean', description: '
|
|
62
|
+
user_id: { type: 'string', description: '目标用户 ID(如果只有昵称,先用 list_members 查询获取)' },
|
|
63
|
+
enable: { type: 'boolean', description: 'true=设置为管理员,false=取消管理员身份', default: true },
|
|
64
64
|
},
|
|
65
65
|
extraRequired: ['user_id'],
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
68
|
method: 'listMembers',
|
|
69
69
|
toolSuffix: 'list_members',
|
|
70
|
-
description: '
|
|
71
|
-
keywords: ['成员', '列表', 'members', 'list'],
|
|
70
|
+
description: '获取群/服务器成员列表。返回所有成员的 ID、昵称、名片、角色等信息。当用户提供昵称/名片而非 ID 时,应先调用此工具查询成员列表,从中匹配到目标用户的 user_id,再执行禁言、踢人等操作',
|
|
71
|
+
keywords: ['成员', '列表', 'members', 'list', '查找', '搜索用户'],
|
|
72
72
|
permissionLevel: 'user',
|
|
73
73
|
extraParams: {},
|
|
74
74
|
preExecutable: true,
|
|
@@ -76,52 +76,52 @@ export const GROUP_METHOD_SPECS = [
|
|
|
76
76
|
{
|
|
77
77
|
method: 'banMember',
|
|
78
78
|
toolSuffix: 'ban_member',
|
|
79
|
-
description: '
|
|
80
|
-
keywords: ['封禁', 'ban', '拉黑'],
|
|
79
|
+
description: '永久封禁成员(拉入黑名单)。与踢人(kick)不同,封禁后该成员无法再加入群聊。适用于恶意用户、严重违规等需要永久禁止的场景。如果只有昵称而没有 user_id,请先调用 list_members 查询',
|
|
80
|
+
keywords: ['封禁', 'ban', '拉黑', '黑名单'],
|
|
81
81
|
permissionLevel: 'group_admin',
|
|
82
82
|
extraParams: {
|
|
83
|
-
user_id: { type: 'string', description: '目标用户 ID' },
|
|
84
|
-
reason: { type: 'string', description: '
|
|
83
|
+
user_id: { type: 'string', description: '目标用户 ID(如果只有昵称,先用 list_members 查询获取)' },
|
|
84
|
+
reason: { type: 'string', description: '封禁原因(将记录在封禁日志中)' },
|
|
85
85
|
},
|
|
86
86
|
extraRequired: ['user_id'],
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
method: 'unbanMember',
|
|
90
90
|
toolSuffix: 'unban_member',
|
|
91
|
-
description: '
|
|
92
|
-
keywords: ['解封', 'unban', '解除封禁'],
|
|
91
|
+
description: '解除封禁,将成员从黑名单中移除。解除后该成员可以重新加入群聊。如果只有昵称而没有 user_id,请先调用 list_members 查询',
|
|
92
|
+
keywords: ['解封', 'unban', '解除封禁', '移出黑名单'],
|
|
93
93
|
permissionLevel: 'group_admin',
|
|
94
94
|
extraParams: {
|
|
95
|
-
user_id: { type: 'string', description: '目标用户 ID' },
|
|
95
|
+
user_id: { type: 'string', description: '目标用户 ID(如果只有昵称,先用 list_members 查询获取)' },
|
|
96
96
|
},
|
|
97
97
|
extraRequired: ['user_id'],
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
100
|
method: 'setGroupName',
|
|
101
101
|
toolSuffix: 'set_group_name',
|
|
102
|
-
description: '
|
|
103
|
-
keywords: ['群名', '改名', 'group name'],
|
|
102
|
+
description: '修改群/服务器名称。修改后所有成员立即可见新群名',
|
|
103
|
+
keywords: ['群名', '改名', 'group name', '修改群名'],
|
|
104
104
|
permissionLevel: 'group_admin',
|
|
105
105
|
extraParams: {
|
|
106
|
-
name: { type: 'string', description: '
|
|
106
|
+
name: { type: 'string', description: '新群名称' },
|
|
107
107
|
},
|
|
108
108
|
extraRequired: ['name'],
|
|
109
109
|
},
|
|
110
110
|
{
|
|
111
111
|
method: 'muteAll',
|
|
112
112
|
toolSuffix: 'mute_all',
|
|
113
|
-
description: '
|
|
114
|
-
keywords: ['全员禁言', 'mute all', '全体禁言'],
|
|
113
|
+
description: '开启或关闭全员禁言。开启后除管理员外所有成员都无法发言。适用于紧急维护、重要通知、聊天秩序混乱等场景。enable=true 开启,enable=false 解除',
|
|
114
|
+
keywords: ['全员禁言', 'mute all', '全体禁言', '全体解禁'],
|
|
115
115
|
permissionLevel: 'group_admin',
|
|
116
116
|
extraParams: {
|
|
117
|
-
enable: { type: 'boolean', description: '
|
|
117
|
+
enable: { type: 'boolean', description: 'true=开启全员禁言,false=解除全员禁言', default: true },
|
|
118
118
|
},
|
|
119
119
|
},
|
|
120
120
|
{
|
|
121
121
|
method: 'getGroupInfo',
|
|
122
122
|
toolSuffix: 'get_group_info',
|
|
123
|
-
description: '
|
|
124
|
-
keywords: ['群信息', 'group info', '群资料'],
|
|
123
|
+
description: '获取群/服务器基本信息,包括群名、群主、成员数量、创建时间等。用于了解群聊概况',
|
|
124
|
+
keywords: ['群信息', 'group info', '群资料', '群详情'],
|
|
125
125
|
permissionLevel: 'user',
|
|
126
126
|
extraParams: {},
|
|
127
127
|
preExecutable: true,
|
|
@@ -131,7 +131,13 @@ export const GROUP_METHOD_SPECS = [
|
|
|
131
131
|
// Skill 常量
|
|
132
132
|
// ============================================================================
|
|
133
133
|
export const GROUP_MANAGEMENT_SKILL_DESCRIPTION = '群聊管理能力:在 IM 系统中对群/服务器进行管理,包括踢人、禁言、封禁、' +
|
|
134
|
-
'设置管理员、修改群名、查看成员列表等操作。具体可用的操作取决于平台和 Bot
|
|
134
|
+
'设置管理员、修改群名、查看成员列表等操作。具体可用的操作取决于平台和 Bot 权限。\n\n' +
|
|
135
|
+
'使用指南:\n' +
|
|
136
|
+
'1. 用户提供昵称/名片而非 ID 时,必须先调用 list_members 查询成员列表,从返回结果中匹配目标用户的 user_id,再执行后续操作\n' +
|
|
137
|
+
'2. 禁言(mute_member)适用场景:违规发言、刷屏、骚扰他人等;传 duration=0 可解除禁言\n' +
|
|
138
|
+
'3. 设置/取消管理员(set_admin)需要群主权限,普通管理员无法操作;enable=false 为取消管理员\n' +
|
|
139
|
+
'4. 踢人(kick_member)是将成员移出群聊,封禁(ban_member)是永久拉黑,两者不同\n' +
|
|
140
|
+
'5. 操作前应确认目标用户正确,避免误操作';
|
|
135
141
|
export const GROUP_MANAGEMENT_SKILL_TAGS = ['group', 'management', 'im', 'admin'];
|
|
136
142
|
export const GROUP_MANAGEMENT_SKILL_KEYWORDS = [
|
|
137
143
|
'群管理', '踢人', '禁言', '封禁', '管理员', '群名',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-adapter-tools.js","sourceRoot":"","sources":["../../src/built/common-adapter-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAwCH,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD;QACE,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,aAAa;QACzB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"common-adapter-tools.js","sourceRoot":"","sources":["../../src/built/common-adapter-tools.ts"],"names":[],"mappings":"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"}
|
package/lib/cron.d.ts
CHANGED
|
@@ -1,46 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* 基于 croner 实现的定时任务调度器 (无需 Luxon,内存占用更小)
|
|
2
|
+
* Re-export from @zhin.js/kernel for backward compatibility.
|
|
4
3
|
*/
|
|
5
|
-
export
|
|
6
|
-
private job;
|
|
7
|
-
id: string;
|
|
8
|
-
private callback;
|
|
9
|
-
private isDisposed;
|
|
10
|
-
private _cronExpression;
|
|
11
|
-
/**
|
|
12
|
-
* 创建一个新的 Cron 实例
|
|
13
|
-
* @param cronExpression - Cron 表达式 (例如: '0 0 * * *' 表示每天午夜执行)
|
|
14
|
-
* @param callback - 要执行的回调函数
|
|
15
|
-
*/
|
|
16
|
-
constructor(cronExpression: string, callback: () => void | Promise<void>);
|
|
17
|
-
/**
|
|
18
|
-
* 启动定时任务
|
|
19
|
-
*/
|
|
20
|
-
run(): void;
|
|
21
|
-
/**
|
|
22
|
-
* 停止定时任务
|
|
23
|
-
*/
|
|
24
|
-
stop(): void;
|
|
25
|
-
/**
|
|
26
|
-
* 销毁定时任务,释放资源
|
|
27
|
-
*/
|
|
28
|
-
dispose(): void;
|
|
29
|
-
/**
|
|
30
|
-
* 获取下一次执行时间
|
|
31
|
-
*/
|
|
32
|
-
getNextExecutionTime(): Date;
|
|
33
|
-
/**
|
|
34
|
-
* 检查任务是否正在运行
|
|
35
|
-
*/
|
|
36
|
-
get running(): boolean;
|
|
37
|
-
/**
|
|
38
|
-
* 检查任务是否已被销毁
|
|
39
|
-
*/
|
|
40
|
-
get disposed(): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* 获取原始的 cron 表达式字符串
|
|
43
|
-
*/
|
|
44
|
-
get cronExpression(): string;
|
|
45
|
-
}
|
|
4
|
+
export { Cron } from '@zhin.js/kernel';
|
|
46
5
|
//# sourceMappingURL=cron.d.ts.map
|
package/lib/cron.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../src/cron.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../src/cron.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC"}
|
package/lib/cron.js
CHANGED
|
@@ -1,129 +1,5 @@
|
|
|
1
|
-
import { Cron as Croner } from 'croner';
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
* 基于 croner 实现的定时任务调度器 (无需 Luxon,内存占用更小)
|
|
2
|
+
* Re-export from @zhin.js/kernel for backward compatibility.
|
|
5
3
|
*/
|
|
6
|
-
export
|
|
7
|
-
job = null;
|
|
8
|
-
id = '';
|
|
9
|
-
callback;
|
|
10
|
-
isDisposed = false;
|
|
11
|
-
_cronExpression;
|
|
12
|
-
/**
|
|
13
|
-
* 创建一个新的 Cron 实例
|
|
14
|
-
* @param cronExpression - Cron 表达式 (例如: '0 0 * * *' 表示每天午夜执行)
|
|
15
|
-
* @param callback - 要执行的回调函数
|
|
16
|
-
*/
|
|
17
|
-
constructor(cronExpression, callback) {
|
|
18
|
-
this.id = Math.random().toString(36).substring(2, 10);
|
|
19
|
-
try {
|
|
20
|
-
this._cronExpression = cronExpression;
|
|
21
|
-
this.callback = callback;
|
|
22
|
-
// 验证 cron 表达式是否有效 (不启动)
|
|
23
|
-
const testJob = new Croner(cronExpression, { paused: true });
|
|
24
|
-
testJob.stop();
|
|
25
|
-
}
|
|
26
|
-
catch (error) {
|
|
27
|
-
throw new Error(`Invalid cron expression "${cronExpression}": ${error.message}`);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* 启动定时任务
|
|
32
|
-
*/
|
|
33
|
-
run() {
|
|
34
|
-
if (this.isDisposed) {
|
|
35
|
-
throw new Error('Cannot run a disposed cron job');
|
|
36
|
-
}
|
|
37
|
-
if (this.job) {
|
|
38
|
-
return; // 已经在运行中
|
|
39
|
-
}
|
|
40
|
-
// 创建并启动任务
|
|
41
|
-
this.job = new Croner(this._cronExpression, async () => {
|
|
42
|
-
try {
|
|
43
|
-
await this.callback();
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
console.error(`Error executing cron callback: ${error.message}`);
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* 停止定时任务
|
|
52
|
-
*/
|
|
53
|
-
stop() {
|
|
54
|
-
if (this.job) {
|
|
55
|
-
this.job.stop();
|
|
56
|
-
this.job = null;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* 销毁定时任务,释放资源
|
|
61
|
-
*/
|
|
62
|
-
dispose() {
|
|
63
|
-
this.stop();
|
|
64
|
-
this.isDisposed = true;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* 获取下一次执行时间
|
|
68
|
-
*/
|
|
69
|
-
getNextExecutionTime() {
|
|
70
|
-
if (this.isDisposed) {
|
|
71
|
-
throw new Error('Cannot get next execution time for a disposed cron job');
|
|
72
|
-
}
|
|
73
|
-
// 创建临时任务来获取下次执行时间
|
|
74
|
-
const tempJob = new Croner(this._cronExpression, { paused: true });
|
|
75
|
-
const nextRun = tempJob.nextRun();
|
|
76
|
-
tempJob.stop();
|
|
77
|
-
if (!nextRun) {
|
|
78
|
-
throw new Error('Cannot determine next execution time');
|
|
79
|
-
}
|
|
80
|
-
return nextRun;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* 检查任务是否正在运行
|
|
84
|
-
*/
|
|
85
|
-
get running() {
|
|
86
|
-
return this.job !== null;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* 检查任务是否已被销毁
|
|
90
|
-
*/
|
|
91
|
-
get disposed() {
|
|
92
|
-
return this.isDisposed;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* 获取原始的 cron 表达式字符串
|
|
96
|
-
*/
|
|
97
|
-
get cronExpression() {
|
|
98
|
-
return this._cronExpression;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
//
|
|
102
|
-
// Cron 表达式格式说明:
|
|
103
|
-
//
|
|
104
|
-
// 标准格式: "分 时 日 月 周" (5 字段)
|
|
105
|
-
//
|
|
106
|
-
// 字段说明:
|
|
107
|
-
// - 分: 0-59
|
|
108
|
-
// - 时: 0-23
|
|
109
|
-
// - 日: 1-31
|
|
110
|
-
// - 月: 1-12 (或 JAN-DEC)
|
|
111
|
-
// - 周: 0-7 (0和7都表示周日,或 SUN-SAT)
|
|
112
|
-
//
|
|
113
|
-
// > croner 也支持 6 字段格式 "秒 分 时 日 月 周",但推荐使用 5 字段格式。
|
|
114
|
-
//
|
|
115
|
-
// 特殊字符:
|
|
116
|
-
// - 星号: 匹配任意值
|
|
117
|
-
// - 问号: 用于日和周字段,表示不指定值
|
|
118
|
-
// - 横线: 表示范围,如 1-5
|
|
119
|
-
// - 逗号: 表示列表,如 1,3,5
|
|
120
|
-
// - 斜杠: 表示步长,如 */15 表示每15分钟
|
|
121
|
-
//
|
|
122
|
-
// 常用示例:
|
|
123
|
-
// - "0 0 * * *": 每天午夜执行
|
|
124
|
-
// - "*/15 * * * *": 每15分钟执行
|
|
125
|
-
// - "0 12 * * *": 每天中午12点执行
|
|
126
|
-
// - "0 0 1 * *": 每月1号午夜执行
|
|
127
|
-
// - "0 0 * * 0": 每周日午夜执行
|
|
128
|
-
//
|
|
4
|
+
export { Cron } from '@zhin.js/kernel';
|
|
129
5
|
//# sourceMappingURL=cron.js.map
|
package/lib/cron.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron.js","sourceRoot":"","sources":["../src/cron.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cron.js","sourceRoot":"","sources":["../src/cron.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC"}
|
package/lib/errors.d.ts
CHANGED
|
@@ -1,40 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Re-export generic errors from @zhin.js/kernel
|
|
3
3
|
*/
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
readonly timestamp: Date;
|
|
7
|
-
readonly context?: Record<string, any>;
|
|
8
|
-
constructor(message: string, code?: string, context?: Record<string, any>);
|
|
9
|
-
/**
|
|
10
|
-
* 转换为JSON格式
|
|
11
|
-
*/
|
|
12
|
-
toJSON(): {
|
|
13
|
-
name: string;
|
|
14
|
-
message: string;
|
|
15
|
-
code: string;
|
|
16
|
-
timestamp: string;
|
|
17
|
-
context: Record<string, any> | undefined;
|
|
18
|
-
stack: string | undefined;
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* 转换为用户友好的格式
|
|
22
|
-
*/
|
|
23
|
-
toUserString(): string;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* 配置相关错误
|
|
27
|
-
*/
|
|
28
|
-
export declare class ConfigError extends ZhinError {
|
|
29
|
-
constructor(message: string, context?: Record<string, any>);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* 插件相关错误
|
|
33
|
-
*/
|
|
34
|
-
export declare class PluginError extends ZhinError {
|
|
35
|
-
readonly pluginName: string;
|
|
36
|
-
constructor(message: string, pluginName: string, context?: Record<string, any>);
|
|
37
|
-
}
|
|
4
|
+
export { ZhinError, ConfigError, PluginError, ConnectionError, ContextError, ValidationError, PermissionError, TimeoutError, ErrorManager, RetryManager, CircuitBreaker, } from '@zhin.js/kernel';
|
|
5
|
+
import { ZhinError } from '@zhin.js/kernel';
|
|
38
6
|
/**
|
|
39
7
|
* 适配器相关错误
|
|
40
8
|
*/
|
|
@@ -43,13 +11,6 @@ export declare class AdapterError extends ZhinError {
|
|
|
43
11
|
readonly botName?: string;
|
|
44
12
|
constructor(message: string, adapterName: string, botName?: string, context?: Record<string, any>);
|
|
45
13
|
}
|
|
46
|
-
/**
|
|
47
|
-
* 连接相关错误
|
|
48
|
-
*/
|
|
49
|
-
export declare class ConnectionError extends ZhinError {
|
|
50
|
-
readonly retryable: boolean;
|
|
51
|
-
constructor(message: string, retryable?: boolean, context?: Record<string, any>);
|
|
52
|
-
}
|
|
53
14
|
/**
|
|
54
15
|
* 消息处理错误
|
|
55
16
|
*/
|
|
@@ -58,108 +19,4 @@ export declare class MessageError extends ZhinError {
|
|
|
58
19
|
readonly channelId?: string;
|
|
59
20
|
constructor(message: string, messageId?: string, channelId?: string, context?: Record<string, any>);
|
|
60
21
|
}
|
|
61
|
-
/**
|
|
62
|
-
* 上下文相关错误
|
|
63
|
-
*/
|
|
64
|
-
export declare class ContextError extends ZhinError {
|
|
65
|
-
readonly contextName: string;
|
|
66
|
-
constructor(message: string, contextName: string, context?: Record<string, any>);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* 验证错误
|
|
70
|
-
*/
|
|
71
|
-
export declare class ValidationError extends ZhinError {
|
|
72
|
-
readonly field?: string;
|
|
73
|
-
readonly value?: any;
|
|
74
|
-
constructor(message: string, field?: string, value?: any, context?: Record<string, any>);
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* 权限错误
|
|
78
|
-
*/
|
|
79
|
-
export declare class PermissionError extends ZhinError {
|
|
80
|
-
readonly userId?: string;
|
|
81
|
-
readonly requiredPermission?: string;
|
|
82
|
-
constructor(message: string, userId?: string, requiredPermission?: string, context?: Record<string, any>);
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* 超时错误
|
|
86
|
-
*/
|
|
87
|
-
export declare class TimeoutError extends ZhinError {
|
|
88
|
-
readonly timeoutMs: number;
|
|
89
|
-
constructor(message: string, timeoutMs: number, context?: Record<string, any>);
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* 错误处理器接口
|
|
93
|
-
*/
|
|
94
|
-
export interface ErrorHandler {
|
|
95
|
-
(error: Error, context?: Record<string, any>): void | Promise<void>;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* 错误管理器
|
|
99
|
-
*/
|
|
100
|
-
export declare class ErrorManager {
|
|
101
|
-
private handlers;
|
|
102
|
-
private globalHandlers;
|
|
103
|
-
/**
|
|
104
|
-
* 注册错误处理器
|
|
105
|
-
*/
|
|
106
|
-
register(errorType: string, handler: ErrorHandler): void;
|
|
107
|
-
/**
|
|
108
|
-
* 注册全局错误处理器
|
|
109
|
-
*/
|
|
110
|
-
registerGlobal(handler: ErrorHandler): void;
|
|
111
|
-
/**
|
|
112
|
-
* 处理错误
|
|
113
|
-
*/
|
|
114
|
-
handle(error: Error, context?: Record<string, any>): Promise<void>;
|
|
115
|
-
/**
|
|
116
|
-
* 移除错误处理器
|
|
117
|
-
*/
|
|
118
|
-
unregister(errorType: string, handler: ErrorHandler): boolean;
|
|
119
|
-
/**
|
|
120
|
-
* 清理所有处理器
|
|
121
|
-
*/
|
|
122
|
-
clear(): void;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* 错误重试工具
|
|
126
|
-
*/
|
|
127
|
-
export declare class RetryManager {
|
|
128
|
-
/**
|
|
129
|
-
* 执行重试逻辑
|
|
130
|
-
*/
|
|
131
|
-
static retry<T>(fn: () => Promise<T>, options?: {
|
|
132
|
-
maxRetries?: number;
|
|
133
|
-
delay?: number;
|
|
134
|
-
exponentialBackoff?: boolean;
|
|
135
|
-
retryCondition?: (error: Error) => boolean;
|
|
136
|
-
}): Promise<T>;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* 断路器模式实现
|
|
140
|
-
*/
|
|
141
|
-
export declare class CircuitBreaker {
|
|
142
|
-
private failureThreshold;
|
|
143
|
-
private timeoutMs;
|
|
144
|
-
private monitoringPeriodMs;
|
|
145
|
-
private failures;
|
|
146
|
-
private lastFailureTime;
|
|
147
|
-
private state;
|
|
148
|
-
constructor(failureThreshold?: number, timeoutMs?: number, monitoringPeriodMs?: number);
|
|
149
|
-
/**
|
|
150
|
-
* 执行受保护的操作
|
|
151
|
-
*/
|
|
152
|
-
execute<T>(fn: () => Promise<T>): Promise<T>;
|
|
153
|
-
private onSuccess;
|
|
154
|
-
private onFailure;
|
|
155
|
-
/**
|
|
156
|
-
* 获取断路器状态
|
|
157
|
-
*/
|
|
158
|
-
getState(): 'CLOSED' | 'OPEN' | 'HALF_OPEN';
|
|
159
|
-
/**
|
|
160
|
-
* 重置断路器
|
|
161
|
-
*/
|
|
162
|
-
reset(): void;
|
|
163
|
-
}
|
|
164
|
-
export declare const errorManager: ErrorManager;
|
|
165
22
|
//# sourceMappingURL=errors.d.ts.map
|
package/lib/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACvC,SAAgB,WAAW,EAAE,MAAM,CAAA;IACnC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAA;gBAEpB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAKpG;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACvC,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClC,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAA;gBAEtB,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAKrG"}
|