@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/lib/utils.d.ts
CHANGED
|
@@ -1,37 +1,16 @@
|
|
|
1
|
-
import { AdapterMessage, Dict, MessageMiddleware, RegisteredAdapter, SendContent } from "./types";
|
|
2
|
-
import { Message } from "./message.js";
|
|
3
|
-
export declare function getValueWithRuntime(template: string, ctx: Dict): unknown;
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* @zhin.js/core utilities.
|
|
3
|
+
*
|
|
4
|
+
* Generic utilities are re-exported from @zhin.js/kernel.
|
|
5
|
+
* IM-specific utilities (compose, segment) remain here.
|
|
7
6
|
*/
|
|
8
|
-
export
|
|
7
|
+
export { evaluate, execute, clearEvalCache, getEvalCacheStats, getValueWithRuntime, compiler, remove, isEmpty, Time, supportedPluginExtensions, resolveEntry, sleep, } from '@zhin.js/kernel';
|
|
8
|
+
import { AdapterMessage, MessageMiddleware, RegisteredAdapter, SendContent } from "./types.js";
|
|
9
|
+
import { Message } from "./message.js";
|
|
9
10
|
/**
|
|
10
11
|
* 组合中间件,洋葱模型
|
|
11
|
-
* 灵感来源于 zhinjs/next 的 Hooks.compose
|
|
12
|
-
*
|
|
13
|
-
* @param middlewares 中间件列表
|
|
14
|
-
* @returns 中间件处理函数
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* const composed = compose([middleware1, middleware2]);
|
|
19
|
-
* await composed(message);
|
|
20
|
-
* ```
|
|
21
12
|
*/
|
|
22
13
|
export declare function compose<P extends RegisteredAdapter = RegisteredAdapter>(middlewares: MessageMiddleware<P>[]): ((message: Message<AdapterMessage<P>>, next?: () => Promise<void>) => void | Promise<void>) | ((message: Message<AdapterMessage<P>>, next: () => Promise<void>) => Promise<void>);
|
|
23
|
-
/**
|
|
24
|
-
* Execute a code block in a sandboxed vm context.
|
|
25
|
-
* Supports `return` statements by wrapping in an IIFE.
|
|
26
|
-
* Throws on compilation or runtime errors.
|
|
27
|
-
*/
|
|
28
|
-
export declare const execute: <S extends Record<string, unknown>, T = unknown>(code: string, context: S) => T;
|
|
29
|
-
export declare function clearEvalCache(): void;
|
|
30
|
-
export declare function getEvalCacheStats(): {
|
|
31
|
-
size: number;
|
|
32
|
-
maxSize: number;
|
|
33
|
-
};
|
|
34
|
-
export declare function compiler(template: string, ctx: Dict): string;
|
|
35
14
|
export declare function segment<T extends object>(type: string, data: T): {
|
|
36
15
|
type: string;
|
|
37
16
|
data: T;
|
|
@@ -56,28 +35,4 @@ export declare namespace segment {
|
|
|
56
35
|
function raw(content: SendContent): string;
|
|
57
36
|
function toString(content: SendContent): string;
|
|
58
37
|
}
|
|
59
|
-
export declare function remove<T>(list: T[], fn: (item: T) => boolean): void;
|
|
60
|
-
export declare function remove<T>(list: T[], item: T): void;
|
|
61
|
-
export declare function isEmpty<T>(item: T): boolean;
|
|
62
|
-
export declare namespace Time {
|
|
63
|
-
const millisecond = 1;
|
|
64
|
-
const second = 1000;
|
|
65
|
-
const minute: number;
|
|
66
|
-
const hour: number;
|
|
67
|
-
const day: number;
|
|
68
|
-
const week: number;
|
|
69
|
-
function setTimezoneOffset(offset: number): void;
|
|
70
|
-
function getTimezoneOffset(): number;
|
|
71
|
-
function getDateNumber(date?: number | Date, offset?: number): number;
|
|
72
|
-
function fromDateNumber(value: number, offset?: number): Date;
|
|
73
|
-
function parseTime(source: string): number;
|
|
74
|
-
function parseDate(date: string): Date;
|
|
75
|
-
function formatTimeShort(ms: number): string;
|
|
76
|
-
function formatTime(ms: number): string;
|
|
77
|
-
function template(template: string, time?: Date): string;
|
|
78
|
-
function formatTimeInterval(time: Date, interval?: number): string;
|
|
79
|
-
}
|
|
80
|
-
export declare const supportedPluginExtensions: string[];
|
|
81
|
-
export declare function resolveEntry(entry: string): string | undefined;
|
|
82
|
-
export declare function sleep(ms: number): Promise<unknown>;
|
|
83
38
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,QAAQ,EACR,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,IAAI,EACJ,yBAAyB,EACzB,YAAY,EACZ,KAAK,GACN,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EAEd,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,iBAAiB,GAAC,iBAAiB,EACnE,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,cAOhB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAQ,MAAM,OAAO,CAAC,IAAI,CAAC,wCAM7D,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAC7B,MAAM,OAAO,CAAC,IAAI,CAAC,oBAoB5B;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;;EAK9D;AACD,yBAAiB,OAAO,CAAC;IACvB,SAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAQpC;IACD,SAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAQtC;IACD,SAAgB,IAAI,CAAC,IAAI,EAAE,MAAM;;;;;MAEhC;IACD,SAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;;;;;;MAE7C;IACD,SAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CA+FtD;IACD,SAAgB,GAAG,CAAC,OAAO,EAAE,WAAW,UAWvC;IACD,SAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,UAa5C;CACF"}
|
package/lib/utils.js
CHANGED
|
@@ -1,43 +1,18 @@
|
|
|
1
|
-
import * as path from "path";
|
|
2
|
-
import * as fs from "fs";
|
|
3
|
-
import * as vm from "vm";
|
|
4
|
-
export function getValueWithRuntime(template, ctx) {
|
|
5
|
-
return evaluate(template, ctx);
|
|
6
|
-
}
|
|
7
1
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
2
|
+
* @zhin.js/core utilities.
|
|
3
|
+
*
|
|
4
|
+
* Generic utilities are re-exported from @zhin.js/kernel.
|
|
5
|
+
* IM-specific utilities (compose, segment) remain here.
|
|
10
6
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
if (!script)
|
|
14
|
-
return undefined;
|
|
15
|
-
try {
|
|
16
|
-
return script.runInNewContext(buildSandbox(context), { timeout: 200 });
|
|
17
|
-
}
|
|
18
|
-
catch {
|
|
19
|
-
return undefined;
|
|
20
|
-
}
|
|
21
|
-
};
|
|
7
|
+
// ── Re-export generic utils from kernel ──
|
|
8
|
+
export { evaluate, execute, clearEvalCache, getEvalCacheStats, getValueWithRuntime, compiler, remove, isEmpty, Time, supportedPluginExtensions, resolveEntry, sleep, } from '@zhin.js/kernel';
|
|
22
9
|
/**
|
|
23
10
|
* 组合中间件,洋葱模型
|
|
24
|
-
* 灵感来源于 zhinjs/next 的 Hooks.compose
|
|
25
|
-
*
|
|
26
|
-
* @param middlewares 中间件列表
|
|
27
|
-
* @returns 中间件处理函数
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```typescript
|
|
31
|
-
* const composed = compose([middleware1, middleware2]);
|
|
32
|
-
* await composed(message);
|
|
33
|
-
* ```
|
|
34
11
|
*/
|
|
35
12
|
export function compose(middlewares) {
|
|
36
|
-
// 性能优化:空数组直接返回空函数
|
|
37
13
|
if (middlewares.length === 0) {
|
|
38
14
|
return () => Promise.resolve();
|
|
39
15
|
}
|
|
40
|
-
// 性能优化:单个中间件直接返回
|
|
41
16
|
if (middlewares.length === 1) {
|
|
42
17
|
return (message, next = () => Promise.resolve()) => {
|
|
43
18
|
return middlewares[0](message, next);
|
|
@@ -46,7 +21,6 @@ export function compose(middlewares) {
|
|
|
46
21
|
return function (message, next) {
|
|
47
22
|
let index = -1;
|
|
48
23
|
const dispatch = async (i = 0) => {
|
|
49
|
-
// 防止 next() 被多次调用
|
|
50
24
|
if (i <= index) {
|
|
51
25
|
return Promise.reject(new Error("next() called multiple times"));
|
|
52
26
|
}
|
|
@@ -60,7 +34,6 @@ export function compose(middlewares) {
|
|
|
60
34
|
return await fn(message, () => dispatch(i + 1));
|
|
61
35
|
}
|
|
62
36
|
catch (error) {
|
|
63
|
-
// 中间件异常应该被记录但不中断整个流程
|
|
64
37
|
console.error("Middleware error:", error);
|
|
65
38
|
throw error;
|
|
66
39
|
}
|
|
@@ -68,85 +41,6 @@ export function compose(middlewares) {
|
|
|
68
41
|
return dispatch(0);
|
|
69
42
|
};
|
|
70
43
|
}
|
|
71
|
-
// LRU cache for compiled vm.Script instances
|
|
72
|
-
const MAX_EVAL_CACHE_SIZE = 1000;
|
|
73
|
-
const scriptCache = new Map();
|
|
74
|
-
function getOrCompileScript(code) {
|
|
75
|
-
let script = scriptCache.get(code);
|
|
76
|
-
if (script)
|
|
77
|
-
return script;
|
|
78
|
-
try {
|
|
79
|
-
script = new vm.Script(code);
|
|
80
|
-
}
|
|
81
|
-
catch {
|
|
82
|
-
return null;
|
|
83
|
-
}
|
|
84
|
-
if (scriptCache.size >= MAX_EVAL_CACHE_SIZE) {
|
|
85
|
-
const oldest = scriptCache.keys().next().value;
|
|
86
|
-
if (oldest !== undefined)
|
|
87
|
-
scriptCache.delete(oldest);
|
|
88
|
-
}
|
|
89
|
-
scriptCache.set(code, script);
|
|
90
|
-
return script;
|
|
91
|
-
}
|
|
92
|
-
function buildSandbox(context) {
|
|
93
|
-
return {
|
|
94
|
-
...context,
|
|
95
|
-
process: {
|
|
96
|
-
version: process.version,
|
|
97
|
-
versions: process.versions,
|
|
98
|
-
platform: process.platform,
|
|
99
|
-
arch: process.arch,
|
|
100
|
-
release: process.release,
|
|
101
|
-
uptime: process.uptime(),
|
|
102
|
-
memoryUsage: process.memoryUsage(),
|
|
103
|
-
cpuUsage: process.cpuUsage(),
|
|
104
|
-
pid: process.pid,
|
|
105
|
-
ppid: process.ppid,
|
|
106
|
-
},
|
|
107
|
-
global: undefined,
|
|
108
|
-
globalThis: undefined,
|
|
109
|
-
Buffer: undefined,
|
|
110
|
-
crypto: undefined,
|
|
111
|
-
require: undefined,
|
|
112
|
-
import: undefined,
|
|
113
|
-
__dirname: undefined,
|
|
114
|
-
__filename: undefined,
|
|
115
|
-
Bun: undefined,
|
|
116
|
-
Deno: undefined,
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Execute a code block in a sandboxed vm context.
|
|
121
|
-
* Supports `return` statements by wrapping in an IIFE.
|
|
122
|
-
* Throws on compilation or runtime errors.
|
|
123
|
-
*/
|
|
124
|
-
export const execute = (code, context) => {
|
|
125
|
-
const wrapped = `(function(){${code}})()`;
|
|
126
|
-
const script = getOrCompileScript(wrapped);
|
|
127
|
-
if (!script)
|
|
128
|
-
throw new SyntaxError(`Failed to compile: ${code.slice(0, 80)}`);
|
|
129
|
-
return script.runInNewContext(buildSandbox(context), { timeout: 200 });
|
|
130
|
-
};
|
|
131
|
-
export function clearEvalCache() {
|
|
132
|
-
scriptCache.clear();
|
|
133
|
-
}
|
|
134
|
-
export function getEvalCacheStats() {
|
|
135
|
-
return {
|
|
136
|
-
size: scriptCache.size,
|
|
137
|
-
maxSize: MAX_EVAL_CACHE_SIZE,
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
export function compiler(template, ctx) {
|
|
141
|
-
const matched = [...template.matchAll(/\${([^}]*?)}/g)];
|
|
142
|
-
for (const item of matched) {
|
|
143
|
-
const tpl = item[1];
|
|
144
|
-
const raw = getValueWithRuntime(tpl, ctx);
|
|
145
|
-
const value = typeof raw === 'string' ? raw : (raw == null ? 'undefined' : JSON.stringify(raw, null, 2));
|
|
146
|
-
template = template.replace(`\${${item[1]}}`, value);
|
|
147
|
-
}
|
|
148
|
-
return template;
|
|
149
|
-
}
|
|
150
44
|
export function segment(type, data) {
|
|
151
45
|
return {
|
|
152
46
|
type,
|
|
@@ -190,25 +84,19 @@ export function segment(type, data) {
|
|
|
190
84
|
const toString = (template) => {
|
|
191
85
|
if (typeof template !== "string")
|
|
192
86
|
return [template];
|
|
193
|
-
|
|
194
|
-
const MAX_TEMPLATE_LENGTH = 100000; // 100KB
|
|
87
|
+
const MAX_TEMPLATE_LENGTH = 100000;
|
|
195
88
|
if (template.length > MAX_TEMPLATE_LENGTH) {
|
|
196
89
|
throw new Error(`Template too large: ${template.length} > ${MAX_TEMPLATE_LENGTH}`);
|
|
197
90
|
}
|
|
198
91
|
template = unescape(template);
|
|
199
92
|
const result = [];
|
|
200
|
-
// 修复 ReDoS 漏洞:使用更安全的正则表达式
|
|
201
|
-
// 注意:需要使用捕获组来获取属性字符串,否则无法正确重建原始标签
|
|
202
|
-
// closingReg: 自闭合标签 <type attr="val"/>
|
|
203
93
|
const closingReg = /<(\w+)(\s+[^>]*?)?\/>/;
|
|
204
|
-
// twinningReg: 成对标签 <type attr="val">child</type>
|
|
205
94
|
const twinningReg = /<(\w+)(\s+[^>]*?)?>([^]*?)<\/\1>/;
|
|
206
95
|
let iterations = 0;
|
|
207
|
-
const MAX_ITERATIONS = 1000;
|
|
96
|
+
const MAX_ITERATIONS = 1000;
|
|
208
97
|
while (template.length && iterations++ < MAX_ITERATIONS) {
|
|
209
98
|
const twinMatch = template.match(twinningReg);
|
|
210
99
|
const closeMatch = template.match(closingReg);
|
|
211
|
-
// 选择位置更靠前的匹配
|
|
212
100
|
let match = null;
|
|
213
101
|
let isClosing = false;
|
|
214
102
|
if (twinMatch && closeMatch) {
|
|
@@ -236,7 +124,7 @@ export function segment(type, data) {
|
|
|
236
124
|
: [match[0], match[1], match[2] || "", match[3] || ""];
|
|
237
125
|
const index = template.indexOf(fullMatch);
|
|
238
126
|
if (index === -1)
|
|
239
|
-
break;
|
|
127
|
+
break;
|
|
240
128
|
const prevText = template.slice(0, index);
|
|
241
129
|
if (prevText)
|
|
242
130
|
result.push({
|
|
@@ -246,8 +134,6 @@ export function segment(type, data) {
|
|
|
246
134
|
},
|
|
247
135
|
});
|
|
248
136
|
template = template.slice(index + fullMatch.length);
|
|
249
|
-
// 修复 ReDoS 漏洞:使用更简单的正则表达式
|
|
250
|
-
// 原: /\s([^=]+)(?=(?=="([^"]+)")|(?=='([^']+)'))/g 嵌套前瞻断言
|
|
251
137
|
const attrArr = [
|
|
252
138
|
...attrStr.matchAll(/\s+([^=\s]+)=(?:"([^"]*)"|'([^']*)')/g),
|
|
253
139
|
];
|
|
@@ -324,206 +210,4 @@ export function segment(type, data) {
|
|
|
324
210
|
}
|
|
325
211
|
segment.toString = toString;
|
|
326
212
|
})(segment || (segment = {}));
|
|
327
|
-
export function remove(list, arg) {
|
|
328
|
-
const index = typeof arg === "function" &&
|
|
329
|
-
!list.every((item) => typeof item === "function")
|
|
330
|
-
? list.findIndex(arg)
|
|
331
|
-
: list.indexOf(arg);
|
|
332
|
-
if (index !== -1)
|
|
333
|
-
list.splice(index, 1);
|
|
334
|
-
}
|
|
335
|
-
export function isEmpty(item) {
|
|
336
|
-
if (Array.isArray(item))
|
|
337
|
-
return item.length === 0;
|
|
338
|
-
if (typeof item === "object") {
|
|
339
|
-
if (!item)
|
|
340
|
-
return true;
|
|
341
|
-
return Reflect.ownKeys(item).length === 0;
|
|
342
|
-
}
|
|
343
|
-
return false;
|
|
344
|
-
}
|
|
345
|
-
export var Time;
|
|
346
|
-
(function (Time) {
|
|
347
|
-
Time.millisecond = 1;
|
|
348
|
-
Time.second = 1000;
|
|
349
|
-
Time.minute = Time.second * 60;
|
|
350
|
-
Time.hour = Time.minute * 60;
|
|
351
|
-
Time.day = Time.hour * 24;
|
|
352
|
-
Time.week = Time.day * 7;
|
|
353
|
-
let timezoneOffset = new Date().getTimezoneOffset();
|
|
354
|
-
function setTimezoneOffset(offset) {
|
|
355
|
-
timezoneOffset = offset;
|
|
356
|
-
}
|
|
357
|
-
Time.setTimezoneOffset = setTimezoneOffset;
|
|
358
|
-
function getTimezoneOffset() {
|
|
359
|
-
return timezoneOffset;
|
|
360
|
-
}
|
|
361
|
-
Time.getTimezoneOffset = getTimezoneOffset;
|
|
362
|
-
function getDateNumber(date = new Date(), offset) {
|
|
363
|
-
if (typeof date === "number")
|
|
364
|
-
date = new Date(date);
|
|
365
|
-
if (offset === undefined)
|
|
366
|
-
offset = timezoneOffset;
|
|
367
|
-
return Math.floor((date.valueOf() / Time.minute - offset) / 1440);
|
|
368
|
-
}
|
|
369
|
-
Time.getDateNumber = getDateNumber;
|
|
370
|
-
function fromDateNumber(value, offset) {
|
|
371
|
-
const date = new Date(value * Time.day);
|
|
372
|
-
if (offset === undefined)
|
|
373
|
-
offset = timezoneOffset;
|
|
374
|
-
return new Date(+date + offset * Time.minute);
|
|
375
|
-
}
|
|
376
|
-
Time.fromDateNumber = fromDateNumber;
|
|
377
|
-
const numeric = /\d+(?:\.\d+)?/.source;
|
|
378
|
-
const timeRegExp = new RegExp(`^${[
|
|
379
|
-
"w(?:eek(?:s)?)?",
|
|
380
|
-
"d(?:ay(?:s)?)?",
|
|
381
|
-
"h(?:our(?:s)?)?",
|
|
382
|
-
"m(?:in(?:ute)?(?:s)?)?",
|
|
383
|
-
"s(?:ec(?:ond)?(?:s)?)?",
|
|
384
|
-
]
|
|
385
|
-
.map((unit) => `(${numeric}${unit})?`)
|
|
386
|
-
.join("")}$`);
|
|
387
|
-
function parseTime(source) {
|
|
388
|
-
const capture = timeRegExp.exec(source);
|
|
389
|
-
if (!capture)
|
|
390
|
-
return 0;
|
|
391
|
-
return ((parseFloat(capture[1]) * Time.week || 0) +
|
|
392
|
-
(parseFloat(capture[2]) * Time.day || 0) +
|
|
393
|
-
(parseFloat(capture[3]) * Time.hour || 0) +
|
|
394
|
-
(parseFloat(capture[4]) * Time.minute || 0) +
|
|
395
|
-
(parseFloat(capture[5]) * Time.second || 0));
|
|
396
|
-
}
|
|
397
|
-
Time.parseTime = parseTime;
|
|
398
|
-
function parseDate(date) {
|
|
399
|
-
const parsed = parseTime(date);
|
|
400
|
-
let dateInput = date;
|
|
401
|
-
if (parsed) {
|
|
402
|
-
dateInput = Date.now() + parsed;
|
|
403
|
-
}
|
|
404
|
-
else if (/^\d{1,2}(:\d{1,2}){1,2}$/.test(date)) {
|
|
405
|
-
dateInput = `${new Date().toLocaleDateString()}-${date}`;
|
|
406
|
-
}
|
|
407
|
-
else if (/^\d{1,2}-\d{1,2}-\d{1,2}(:\d{1,2}){1,2}$/.test(date)) {
|
|
408
|
-
dateInput = `${new Date().getFullYear()}-${date}`;
|
|
409
|
-
}
|
|
410
|
-
return dateInput ? new Date(dateInput) : new Date();
|
|
411
|
-
}
|
|
412
|
-
Time.parseDate = parseDate;
|
|
413
|
-
function formatTimeShort(ms) {
|
|
414
|
-
const abs = Math.abs(ms);
|
|
415
|
-
if (abs >= Time.day - Time.hour / 2) {
|
|
416
|
-
return Math.round(ms / Time.day) + "d";
|
|
417
|
-
}
|
|
418
|
-
else if (abs >= Time.hour - Time.minute / 2) {
|
|
419
|
-
return Math.round(ms / Time.hour) + "h";
|
|
420
|
-
}
|
|
421
|
-
else if (abs >= Time.minute - Time.second / 2) {
|
|
422
|
-
return Math.round(ms / Time.minute) + "m";
|
|
423
|
-
}
|
|
424
|
-
else if (abs >= Time.second) {
|
|
425
|
-
return Math.round(ms / Time.second) + "s";
|
|
426
|
-
}
|
|
427
|
-
return ms + "ms";
|
|
428
|
-
}
|
|
429
|
-
Time.formatTimeShort = formatTimeShort;
|
|
430
|
-
function formatTime(ms) {
|
|
431
|
-
let result;
|
|
432
|
-
if (ms >= Time.day - Time.hour / 2) {
|
|
433
|
-
ms += Time.hour / 2;
|
|
434
|
-
result = Math.floor(ms / Time.day) + " 天";
|
|
435
|
-
if (ms % Time.day > Time.hour) {
|
|
436
|
-
result += ` ${Math.floor((ms % Time.day) / Time.hour)} 小时`;
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
else if (ms >= Time.hour - Time.minute / 2) {
|
|
440
|
-
ms += Time.minute / 2;
|
|
441
|
-
result = Math.floor(ms / Time.hour) + " 小时";
|
|
442
|
-
if (ms % Time.hour > Time.minute) {
|
|
443
|
-
result += ` ${Math.floor((ms % Time.hour) / Time.minute)} 分钟`;
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
else if (ms >= Time.minute - Time.second / 2) {
|
|
447
|
-
ms += Time.second / 2;
|
|
448
|
-
result = Math.floor(ms / Time.minute) + " 分钟";
|
|
449
|
-
if (ms % Time.minute > Time.second) {
|
|
450
|
-
result += ` ${Math.floor((ms % Time.minute) / Time.second)} 秒`;
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
else {
|
|
454
|
-
result = Math.round(ms / Time.second) + " 秒";
|
|
455
|
-
}
|
|
456
|
-
return result;
|
|
457
|
-
}
|
|
458
|
-
Time.formatTime = formatTime;
|
|
459
|
-
const dayMap = ["日", "一", "二", "三", "四", "五", "六"];
|
|
460
|
-
function toDigits(source, length = 2) {
|
|
461
|
-
return source.toString().padStart(length, "0");
|
|
462
|
-
}
|
|
463
|
-
function template(template, time = new Date()) {
|
|
464
|
-
return template
|
|
465
|
-
.replace("yyyy", time.getFullYear().toString())
|
|
466
|
-
.replace("yy", time.getFullYear().toString().slice(2))
|
|
467
|
-
.replace("MM", toDigits(time.getMonth() + 1))
|
|
468
|
-
.replace("dd", toDigits(time.getDate()))
|
|
469
|
-
.replace("hh", toDigits(time.getHours()))
|
|
470
|
-
.replace("mm", toDigits(time.getMinutes()))
|
|
471
|
-
.replace("ss", toDigits(time.getSeconds()))
|
|
472
|
-
.replace("SSS", toDigits(time.getMilliseconds(), 3));
|
|
473
|
-
}
|
|
474
|
-
Time.template = template;
|
|
475
|
-
function toHourMinute(time) {
|
|
476
|
-
return `${toDigits(time.getHours())}:${toDigits(time.getMinutes())}`;
|
|
477
|
-
}
|
|
478
|
-
function formatTimeInterval(time, interval) {
|
|
479
|
-
if (!interval) {
|
|
480
|
-
return template("yyyy-MM-dd hh:mm:ss", time);
|
|
481
|
-
}
|
|
482
|
-
else if (interval === Time.day) {
|
|
483
|
-
return `每天 ${toHourMinute(time)}`;
|
|
484
|
-
}
|
|
485
|
-
else if (interval === Time.week) {
|
|
486
|
-
return `每周${dayMap[time.getDay()]} ${toHourMinute(time)}`;
|
|
487
|
-
}
|
|
488
|
-
else {
|
|
489
|
-
return `${template("yyyy-MM-dd hh:mm:ss", time)} 起每隔 ${formatTime(interval)}`;
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
Time.formatTimeInterval = formatTimeInterval;
|
|
493
|
-
})(Time || (Time = {}));
|
|
494
|
-
export const supportedPluginExtensions = [
|
|
495
|
-
".js",
|
|
496
|
-
".ts",
|
|
497
|
-
".mjs",
|
|
498
|
-
".cjs",
|
|
499
|
-
".jsx",
|
|
500
|
-
".tsx",
|
|
501
|
-
"",
|
|
502
|
-
];
|
|
503
|
-
export function resolveEntry(entry) {
|
|
504
|
-
if (fs.existsSync(entry)) {
|
|
505
|
-
const stat = fs.statSync(entry);
|
|
506
|
-
if (stat.isFile())
|
|
507
|
-
return entry;
|
|
508
|
-
if (stat.isSymbolicLink())
|
|
509
|
-
return resolveEntry(fs.realpathSync(entry));
|
|
510
|
-
if (stat.isDirectory()) {
|
|
511
|
-
const packageJsonPath = path.resolve(entry, 'package.json');
|
|
512
|
-
if (!fs.existsSync(packageJsonPath))
|
|
513
|
-
return resolveEntry(path.join(entry, 'index'));
|
|
514
|
-
const pkgJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
515
|
-
return resolveEntry(path.resolve(entry, pkgJson.main || 'index.js'));
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
else {
|
|
519
|
-
for (const ext of supportedPluginExtensions) {
|
|
520
|
-
const fullPath = path.resolve(entry + ext);
|
|
521
|
-
if (fs.existsSync(fullPath))
|
|
522
|
-
return resolveEntry(fullPath);
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
export function sleep(ms) {
|
|
527
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
528
|
-
}
|
|
529
213
|
//# sourceMappingURL=utils.js.map
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.41",
|
|
4
4
|
"description": "Zhin机器人核心框架",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -37,9 +37,11 @@
|
|
|
37
37
|
"segment-matcher": "^1.0.5",
|
|
38
38
|
"smol-toml": "^1.6.0",
|
|
39
39
|
"yaml": "^2.3.4",
|
|
40
|
-
"@zhin.js/
|
|
41
|
-
"@zhin.js/
|
|
42
|
-
"@zhin.js/
|
|
40
|
+
"@zhin.js/ai": "1.0.2",
|
|
41
|
+
"@zhin.js/database": "1.0.28",
|
|
42
|
+
"@zhin.js/kernel": "0.0.2",
|
|
43
|
+
"@zhin.js/logger": "0.1.25",
|
|
44
|
+
"@zhin.js/schema": "1.0.25"
|
|
43
45
|
},
|
|
44
46
|
"devDependencies": {
|
|
45
47
|
"@types/node": "^24.3.0",
|
package/src/ai/index.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
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
10
|
|
|
7
|
-
// ── 类型定义 ──
|
|
8
11
|
export type {
|
|
9
12
|
AIConfig,
|
|
10
13
|
AIProvider,
|
|
@@ -15,21 +18,23 @@ export type {
|
|
|
15
18
|
ChatCompletionRequest,
|
|
16
19
|
ChatCompletionResponse,
|
|
17
20
|
ChatCompletionChunk,
|
|
21
|
+
ChatCompletionChoice,
|
|
22
|
+
ChatCompletionChunkChoice,
|
|
18
23
|
ContentPart,
|
|
19
24
|
ToolCall,
|
|
20
25
|
MessageRole,
|
|
21
26
|
AgentTool,
|
|
22
27
|
AgentConfig,
|
|
23
28
|
AgentResult,
|
|
24
|
-
Usage,
|
|
25
29
|
ToolFilterOptions,
|
|
30
|
+
Usage,
|
|
26
31
|
SessionConfig,
|
|
27
32
|
Session,
|
|
28
|
-
ToolDefinition as ChatToolDefinition,
|
|
29
33
|
JsonSchema,
|
|
30
|
-
} from '
|
|
34
|
+
} from '@zhin.js/ai';
|
|
35
|
+
|
|
36
|
+
export type { ToolDefinition as ChatToolDefinition } from '@zhin.js/ai';
|
|
31
37
|
|
|
32
|
-
// ── Providers ──
|
|
33
38
|
export {
|
|
34
39
|
BaseProvider,
|
|
35
40
|
OpenAIProvider,
|
|
@@ -38,9 +43,10 @@ export {
|
|
|
38
43
|
ZhipuProvider,
|
|
39
44
|
AnthropicProvider,
|
|
40
45
|
OllamaProvider,
|
|
41
|
-
} from '
|
|
46
|
+
} from '@zhin.js/ai';
|
|
47
|
+
|
|
42
48
|
export type {
|
|
43
49
|
OpenAIConfig,
|
|
44
50
|
AnthropicConfig,
|
|
45
51
|
OllamaConfig,
|
|
46
|
-
} from '
|
|
52
|
+
} from '@zhin.js/ai';
|