@zhin.js/agent 0.0.17 → 0.0.19

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.
Files changed (61) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +14 -8
  3. package/lib/builtin-tools.d.ts +5 -137
  4. package/lib/builtin-tools.d.ts.map +1 -1
  5. package/lib/builtin-tools.js +321 -732
  6. package/lib/builtin-tools.js.map +1 -1
  7. package/lib/discover-agents.d.ts +28 -0
  8. package/lib/discover-agents.d.ts.map +1 -0
  9. package/lib/discover-agents.js +116 -0
  10. package/lib/discover-agents.js.map +1 -0
  11. package/lib/discover-skills.d.ts +49 -0
  12. package/lib/discover-skills.d.ts.map +1 -0
  13. package/lib/discover-skills.js +297 -0
  14. package/lib/discover-skills.js.map +1 -0
  15. package/lib/discover-tools.d.ts +56 -0
  16. package/lib/discover-tools.d.ts.map +1 -0
  17. package/lib/discover-tools.js +263 -0
  18. package/lib/discover-tools.js.map +1 -0
  19. package/lib/discovery-utils.d.ts +27 -0
  20. package/lib/discovery-utils.d.ts.map +1 -0
  21. package/lib/discovery-utils.js +96 -0
  22. package/lib/discovery-utils.js.map +1 -0
  23. package/lib/file-policy.d.ts +41 -4
  24. package/lib/file-policy.d.ts.map +1 -1
  25. package/lib/file-policy.js +126 -4
  26. package/lib/file-policy.js.map +1 -1
  27. package/lib/index.d.ts +1 -1
  28. package/lib/index.d.ts.map +1 -1
  29. package/lib/index.js +1 -1
  30. package/lib/index.js.map +1 -1
  31. package/lib/init/create-zhin-agent.d.ts.map +1 -1
  32. package/lib/init/create-zhin-agent.js +3 -1
  33. package/lib/init/create-zhin-agent.js.map +1 -1
  34. package/lib/init/register-builtin-tools.d.ts.map +1 -1
  35. package/lib/init/register-builtin-tools.js +51 -54
  36. package/lib/init/register-builtin-tools.js.map +1 -1
  37. package/lib/zhin-agent/config.js +1 -1
  38. package/lib/zhin-agent/config.js.map +1 -1
  39. package/lib/zhin-agent/exec-policy.d.ts +48 -2
  40. package/lib/zhin-agent/exec-policy.d.ts.map +1 -1
  41. package/lib/zhin-agent/exec-policy.js +184 -23
  42. package/lib/zhin-agent/exec-policy.js.map +1 -1
  43. package/lib/zhin-agent/prompt.d.ts +14 -0
  44. package/lib/zhin-agent/prompt.d.ts.map +1 -1
  45. package/lib/zhin-agent/prompt.js +192 -45
  46. package/lib/zhin-agent/prompt.js.map +1 -1
  47. package/package.json +3 -3
  48. package/src/builtin-tools.ts +333 -835
  49. package/src/discover-agents.ts +138 -0
  50. package/src/discover-skills.ts +325 -0
  51. package/src/discover-tools.ts +302 -0
  52. package/src/discovery-utils.ts +96 -0
  53. package/src/file-policy.ts +152 -4
  54. package/src/index.ts +5 -1
  55. package/src/init/create-zhin-agent.ts +3 -1
  56. package/src/init/register-builtin-tools.ts +51 -62
  57. package/src/zhin-agent/config.ts +1 -1
  58. package/src/zhin-agent/exec-policy.ts +229 -24
  59. package/src/zhin-agent/prompt.ts +209 -47
  60. package/tests/exec-policy.test.ts +355 -0
  61. package/tests/file-policy.test.ts +189 -1
@@ -0,0 +1,27 @@
1
+ /**
2
+ * 发现模块共用的工具函数
3
+ *
4
+ * 被 builtin-tools / discover-skills / discover-agents / discover-tools 共同依赖,
5
+ * 独立出来以避免循环导入。
6
+ */
7
+ import type { Plugin } from '@zhin.js/core';
8
+ /** 将 unknown 错误转为字符串 */
9
+ export declare function errMsg(e: unknown): string;
10
+ /** 获取 data/ 目录路径,自动创建 */
11
+ export declare function getDataDir(): string;
12
+ /** 展开路径中的 ~ 为实际 home 目录 */
13
+ export declare function expandHome(p: string): string;
14
+ /** Workspace / ~/.zhin / data 下 skills 根目录(与 activate_skill 扫描顺序一致的前缀) */
15
+ export declare function buildStandardSkillDirs(): string[];
16
+ /**
17
+ * 从根插件树收集:根插件与**直接子插件**包目录下的 `skills/`(其下为 `<name>/SKILL.md`)
18
+ */
19
+ export declare function collectPluginSkillSearchRoots(root: Plugin | null | undefined): string[];
20
+ /**
21
+ * 技能发现与 activate_skill 查找共用:标准目录 + 已加载插件包 skills/
22
+ */
23
+ export declare function getSkillSearchDirectories(root?: Plugin | null): string[];
24
+ export declare function mergeSkillDirsWithResolver(resolver?: () => string[]): string[];
25
+ /** 将 Node 文件错误转为 miniclawd 风格的结构化短句,便于模型区分并重试 */
26
+ export declare function nodeErrToFileMessage(err: unknown, filePath: string, kind: 'read' | 'write' | 'edit' | 'list'): string;
27
+ //# sourceMappingURL=discovery-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery-utils.d.ts","sourceRoot":"","sources":["../src/discovery-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,wBAAwB;AACxB,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAEzC;AAED,yBAAyB;AACzB,wBAAgB,UAAU,IAAI,MAAM,CAInC;AAED,2BAA2B;AAC3B,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5C;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAMjD;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CAqBvF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,EAAE,CAMxE;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,CAAC,EAAE,MAAM,MAAM,EAAE,GAAG,MAAM,EAAE,CAM9E;AAED,iDAAiD;AACjD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CASrH"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * 发现模块共用的工具函数
3
+ *
4
+ * 被 builtin-tools / discover-skills / discover-agents / discover-tools 共同依赖,
5
+ * 独立出来以避免循环导入。
6
+ */
7
+ import * as fs from 'fs';
8
+ import * as os from 'os';
9
+ import * as path from 'path';
10
+ /** 将 unknown 错误转为字符串 */
11
+ export function errMsg(e) {
12
+ return e instanceof Error ? e.message : String(e);
13
+ }
14
+ /** 获取 data/ 目录路径,自动创建 */
15
+ export function getDataDir() {
16
+ const dir = path.join(process.cwd(), 'data');
17
+ fs.mkdirSync(dir, { recursive: true });
18
+ return dir;
19
+ }
20
+ /** 展开路径中的 ~ 为实际 home 目录 */
21
+ export function expandHome(p) {
22
+ if (p === '~')
23
+ return os.homedir();
24
+ if (p.startsWith('~/') || p.startsWith('~\\'))
25
+ return path.join(os.homedir(), p.slice(2));
26
+ return p;
27
+ }
28
+ /** Workspace / ~/.zhin / data 下 skills 根目录(与 activate_skill 扫描顺序一致的前缀) */
29
+ export function buildStandardSkillDirs() {
30
+ return [
31
+ path.join(process.cwd(), 'skills'),
32
+ path.join(os.homedir(), '.zhin', 'skills'),
33
+ path.join(getDataDir(), 'skills'),
34
+ ];
35
+ }
36
+ /**
37
+ * 从根插件树收集:根插件与**直接子插件**包目录下的 `skills/`(其下为 `<name>/SKILL.md`)
38
+ */
39
+ export function collectPluginSkillSearchRoots(root) {
40
+ if (!root)
41
+ return [];
42
+ const dirs = [];
43
+ const push = (d) => {
44
+ if (d && !dirs.includes(d))
45
+ dirs.push(d);
46
+ };
47
+ const fromPlugin = (p) => {
48
+ if (!p?.filePath)
49
+ return;
50
+ const dir = path.dirname(p.filePath);
51
+ push(path.join(dir, 'skills'));
52
+ // Also check package root when filePath is under src/ or lib/
53
+ const dirName = path.basename(dir);
54
+ if (dirName === 'src' || dirName === 'lib') {
55
+ push(path.join(path.dirname(dir), 'skills'));
56
+ }
57
+ };
58
+ fromPlugin(root);
59
+ for (const child of root.children || []) {
60
+ fromPlugin(child);
61
+ }
62
+ return dirs;
63
+ }
64
+ /**
65
+ * 技能发现与 activate_skill 查找共用:标准目录 + 已加载插件包 skills/
66
+ */
67
+ export function getSkillSearchDirectories(root) {
68
+ const list = [...buildStandardSkillDirs()];
69
+ for (const d of collectPluginSkillSearchRoots(root ?? undefined)) {
70
+ if (!list.includes(d))
71
+ list.push(d);
72
+ }
73
+ return list;
74
+ }
75
+ export function mergeSkillDirsWithResolver(resolver) {
76
+ const list = [...buildStandardSkillDirs()];
77
+ for (const d of resolver?.() ?? []) {
78
+ if (d && !list.includes(d))
79
+ list.push(d);
80
+ }
81
+ return list;
82
+ }
83
+ /** 将 Node 文件错误转为 miniclawd 风格的结构化短句,便于模型区分并重试 */
84
+ export function nodeErrToFileMessage(err, filePath, kind) {
85
+ const e = err;
86
+ if (e?.code === 'ENOENT') {
87
+ if (kind === 'list')
88
+ return `Error: Directory not found: ${filePath}`;
89
+ return `Error: File not found: ${filePath}`;
90
+ }
91
+ if (e?.code === 'EACCES')
92
+ return `Error: Permission denied: ${filePath}`;
93
+ const action = kind === 'read' ? 'reading file' : kind === 'write' ? 'writing file' : kind === 'edit' ? 'editing file' : 'listing directory';
94
+ return `Error ${action}: ${e?.message ?? String(err)}`;
95
+ }
96
+ //# sourceMappingURL=discovery-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery-utils.js","sourceRoot":"","sources":["../src/discovery-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,wBAAwB;AACxB,MAAM,UAAU,MAAM,CAAC,CAAU;IAC/B,OAAO,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7C,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,OAAO,CAAC,CAAC;AACX,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC;KAClC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAA+B;IAC3E,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE;QAC/B,IAAI,CAAC,CAAC,EAAE,QAAQ;YAAE,OAAO;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/B,8DAA8D;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;IACF,UAAU,CAAC,IAAI,CAAC,CAAC;IACjB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAoB;IAC5D,MAAM,IAAI,GAAG,CAAC,GAAG,sBAAsB,EAAE,CAAC,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,6BAA6B,CAAC,IAAI,IAAI,SAAS,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAyB;IAClE,MAAM,IAAI,GAAG,CAAC,GAAG,sBAAsB,EAAE,CAAC,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,oBAAoB,CAAC,GAAY,EAAE,QAAgB,EAAE,IAAwC;IAC3G,MAAM,CAAC,GAAG,GAA4B,CAAC;IACvC,IAAI,CAAC,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,+BAA+B,QAAQ,EAAE,CAAC;QACtE,OAAO,0BAA0B,QAAQ,EAAE,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,EAAE,IAAI,KAAK,QAAQ;QAAE,OAAO,6BAA6B,QAAQ,EAAE,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAC7I,OAAO,SAAS,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACzD,CAAC"}
@@ -4,11 +4,20 @@
4
4
  * 防止 AI Agent 读写敏感文件(如 .env、密钥、证书等),
5
5
  * 并将 bash/grep/glob 等工具的命令注入风险降到最低。
6
6
  *
7
- * 三层防御:
8
- * 1. 敏感文件名/路径模式 — 阻止 .env、私钥、证书等
9
- * 2. 敏感目录 — 阻止 .ssh, .gnupg 等
10
- * 3. bash 环境变量泄漏 过滤 env/printenv/export 输出中的敏感值
7
+ * 四层防御:
8
+ * 1. 设备路径阻止 — 阻止 /dev/zero, /dev/stdin 等挂起进程的设备文件
9
+ * 2. 敏感文件名/路径模式 — 阻止 .env、私钥、证书等
10
+ * 3. 敏感目录阻止 .ssh, .gnupg 等
11
+ * 4. bash 安全分类 — 环境变量泄漏 + 命令读写分类
11
12
  */
13
+ /**
14
+ * 检测路径是否为被阻止的设备文件(含 Linux /proc/ fd 别名)。
15
+ */
16
+ export declare function isBlockedDevicePath(filePath: string): boolean;
17
+ /** 读取文件最大字节数(256 MiB),防止 OOM */
18
+ export declare const MAX_READ_FILE_SIZE: number;
19
+ /** 编辑文件最大字节数(1 GiB),防止 V8 字符串长度溢出 */
20
+ export declare const MAX_EDIT_FILE_SIZE: number;
12
21
  export interface FileAccessCheckResult {
13
22
  allowed: boolean;
14
23
  reason?: string;
@@ -31,6 +40,34 @@ export declare function checkBashCommandSafety(command: string): {
31
40
  safe: boolean;
32
41
  reason?: string;
33
42
  };
43
+ export interface BashCommandClassification {
44
+ /** 是否为搜索命令 */
45
+ isSearch: boolean;
46
+ /** 是否为读取命令 */
47
+ isRead: boolean;
48
+ /** 是否为列出命令 */
49
+ isList: boolean;
50
+ /** 综合判断:命令是否只读(搜索/读取/列出) */
51
+ isReadOnly: boolean;
52
+ }
53
+ /**
54
+ * 对 bash 命令进行读/写分类。
55
+ *
56
+ * 对管道命令(如 `cat file | grep pattern`),所有非中性部分
57
+ * 都必须是搜索/读/列出类,整条命令才算只读。
58
+ *
59
+ * 参考 Claude Code BashTool `isSearchOrReadBashCommand`。
60
+ */
61
+ export declare function classifyBashCommand(command: string): BashCommandClassification;
62
+ /**
63
+ * 文件修改时间快照,用于检测编辑前是否被并发修改。
64
+ */
65
+ export declare function getFileMtime(filePath: string): Promise<number>;
66
+ /**
67
+ * 检查文件在读取后是否被修改。
68
+ * @returns true 表示文件已被修改(stale),应中止编辑
69
+ */
70
+ export declare function isFileStale(savedMtime: number, currentMtime: number): boolean;
34
71
  /**
35
72
  * 安全地转义 shell 参数,防止命令注入。
36
73
  * 用单引号包裹,内部单引号用 '\'' 转义。
@@ -1 +1 @@
1
- {"version":3,"file":"file-policy.d.ts","sourceRoot":"","sources":["../src/file-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAwEH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAoCvE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAKvD;AAYD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAoB1F;AAID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C"}
1
+ {"version":3,"file":"file-policy.d.ts","sourceRoot":"","sources":["../src/file-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA8BH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAQ7D;AAID,gCAAgC;AAChC,eAAO,MAAM,kBAAkB,QAAoB,CAAC;AACpD,qCAAqC;AACrC,eAAO,MAAM,kBAAkB,QAAqB,CAAC;AAqErD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAoCvE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAKvD;AAYD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAoB1F;AAyBD,MAAM,WAAW,yBAAyB;IACxC,cAAc;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,4BAA4B;IAC5B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB,CAsC9E;AAID;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIpE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAG7E;AAID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C"}
@@ -4,13 +4,54 @@
4
4
  * 防止 AI Agent 读写敏感文件(如 .env、密钥、证书等),
5
5
  * 并将 bash/grep/glob 等工具的命令注入风险降到最低。
6
6
  *
7
- * 三层防御:
8
- * 1. 敏感文件名/路径模式 — 阻止 .env、私钥、证书等
9
- * 2. 敏感目录 — 阻止 .ssh, .gnupg 等
10
- * 3. bash 环境变量泄漏 过滤 env/printenv/export 输出中的敏感值
7
+ * 四层防御:
8
+ * 1. 设备路径阻止 — 阻止 /dev/zero, /dev/stdin 等挂起进程的设备文件
9
+ * 2. 敏感文件名/路径模式 — 阻止 .env、私钥、证书等
10
+ * 3. 敏感目录阻止 .ssh, .gnupg 等
11
+ * 4. bash 安全分类 — 环境变量泄漏 + 命令读写分类
11
12
  */
12
13
  import * as path from 'path';
13
14
  import * as os from 'os';
15
+ // ── 设备路径阻止(参考 Claude Code FileReadTool BLOCKED_DEVICE_PATHS)──
16
+ /**
17
+ * 会导致进程挂起的设备文件路径。
18
+ * 检查纯路径即可(无 I/O),安全设备如 /dev/null 不在此列。
19
+ */
20
+ const BLOCKED_DEVICE_PATHS = new Set([
21
+ // 无限输出 — 永远无法 EOF
22
+ '/dev/zero',
23
+ '/dev/random',
24
+ '/dev/urandom',
25
+ '/dev/full',
26
+ // 阻塞等待输入
27
+ '/dev/stdin',
28
+ '/dev/tty',
29
+ '/dev/console',
30
+ // 对读取无意义
31
+ '/dev/stdout',
32
+ '/dev/stderr',
33
+ // stdio fd 别名
34
+ '/dev/fd/0',
35
+ '/dev/fd/1',
36
+ '/dev/fd/2',
37
+ ]);
38
+ /**
39
+ * 检测路径是否为被阻止的设备文件(含 Linux /proc/ fd 别名)。
40
+ */
41
+ export function isBlockedDevicePath(filePath) {
42
+ if (BLOCKED_DEVICE_PATHS.has(filePath))
43
+ return true;
44
+ // /proc/self/fd/0-2 和 /proc/<pid>/fd/0-2 是 Linux 的 stdio 别名
45
+ if (filePath.startsWith('/proc/') &&
46
+ (filePath.endsWith('/fd/0') || filePath.endsWith('/fd/1') || filePath.endsWith('/fd/2')))
47
+ return true;
48
+ return false;
49
+ }
50
+ // ── 文件大小限制(参考 Claude Code FileEditTool MAX_EDIT_FILE_SIZE)──
51
+ /** 读取文件最大字节数(256 MiB),防止 OOM */
52
+ export const MAX_READ_FILE_SIZE = 256 * 1024 * 1024;
53
+ /** 编辑文件最大字节数(1 GiB),防止 V8 字符串长度溢出 */
54
+ export const MAX_EDIT_FILE_SIZE = 1024 * 1024 * 1024;
14
55
  // ── 敏感文件名模式 ──────────────────────────────────────────────────
15
56
  /**
16
57
  * 匹配文件基名(不含目录)的敏感模式。
@@ -148,6 +189,87 @@ export function checkBashCommandSafety(command) {
148
189
  }
149
190
  return { safe: true };
150
191
  }
192
+ // ── bash 命令读写分类(参考 Claude Code BashTool isSearchOrReadBashCommand)──
193
+ /** 搜索类命令 */
194
+ const BASH_SEARCH_COMMANDS = new Set([
195
+ 'find', 'grep', 'rg', 'ag', 'ack', 'locate', 'which', 'whereis',
196
+ ]);
197
+ /** 读取/查看类命令 */
198
+ const BASH_READ_COMMANDS = new Set([
199
+ 'cat', 'head', 'tail', 'less', 'more', 'wc', 'stat', 'file', 'strings',
200
+ 'jq', 'awk', 'cut', 'sort', 'uniq', 'tr',
201
+ ]);
202
+ /** 目录列出类命令 */
203
+ const BASH_LIST_COMMANDS = new Set([
204
+ 'ls', 'tree', 'du',
205
+ ]);
206
+ /** 语义中性命令 — 纯输出/状态命令,不影响管道是否只读 */
207
+ const BASH_NEUTRAL_COMMANDS = new Set([
208
+ 'echo', 'printf', 'true', 'false', ':',
209
+ ]);
210
+ /**
211
+ * 对 bash 命令进行读/写分类。
212
+ *
213
+ * 对管道命令(如 `cat file | grep pattern`),所有非中性部分
214
+ * 都必须是搜索/读/列出类,整条命令才算只读。
215
+ *
216
+ * 参考 Claude Code BashTool `isSearchOrReadBashCommand`。
217
+ */
218
+ export function classifyBashCommand(command) {
219
+ const trimmed = command.trim();
220
+ // 按管道和操作符拆分
221
+ const parts = trimmed.split(/\s*(?:\|\||&&|\||;)\s*/);
222
+ let hasSearch = false;
223
+ let hasRead = false;
224
+ let hasList = false;
225
+ let hasNonNeutral = false;
226
+ for (const part of parts) {
227
+ const baseCmd = part.trim().split(/\s+/)[0];
228
+ if (!baseCmd)
229
+ continue;
230
+ // 跳过中性命令
231
+ if (BASH_NEUTRAL_COMMANDS.has(baseCmd))
232
+ continue;
233
+ hasNonNeutral = true;
234
+ if (BASH_SEARCH_COMMANDS.has(baseCmd))
235
+ hasSearch = true;
236
+ else if (BASH_READ_COMMANDS.has(baseCmd))
237
+ hasRead = true;
238
+ else if (BASH_LIST_COMMANDS.has(baseCmd))
239
+ hasList = true;
240
+ else {
241
+ // 包含非只读命令 → 整条命令不是只读
242
+ return { isSearch: false, isRead: false, isList: false, isReadOnly: false };
243
+ }
244
+ }
245
+ // 全部中性命令(如 echo "hi")— 视为只读
246
+ if (!hasNonNeutral) {
247
+ return { isSearch: false, isRead: false, isList: false, isReadOnly: true };
248
+ }
249
+ return {
250
+ isSearch: hasSearch,
251
+ isRead: hasRead,
252
+ isList: hasList,
253
+ isReadOnly: hasSearch || hasRead || hasList,
254
+ };
255
+ }
256
+ // ── 文件 mtime 比对(参考 Claude Code FileEditTool stale detection)──
257
+ /**
258
+ * 文件修改时间快照,用于检测编辑前是否被并发修改。
259
+ */
260
+ export async function getFileMtime(filePath) {
261
+ const { default: fsPromises } = await import('fs/promises');
262
+ const stat = await fsPromises.stat(filePath);
263
+ return stat.mtimeMs;
264
+ }
265
+ /**
266
+ * 检查文件在读取后是否被修改。
267
+ * @returns true 表示文件已被修改(stale),应中止编辑
268
+ */
269
+ export function isFileStale(savedMtime, currentMtime) {
270
+ // 允许 1ms 的精度误差
271
+ return Math.abs(currentMtime - savedMtime) > 1;
272
+ }
151
273
  // ── 命令参数转义 ────────────────────────────────────────────────────
152
274
  /**
153
275
  * 安全地转义 shell 参数,防止命令注入。
@@ -1 +1 @@
1
- {"version":3,"file":"file-policy.js","sourceRoot":"","sources":["../src/file-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-policy.js","sourceRoot":"","sources":["../src/file-policy.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -12,7 +12,7 @@ export type { ContextConfig, MessageRecord } from './context-manager.js';
12
12
  export { ZhinAgent } from './zhin-agent/index.js';
13
13
  export type { ZhinAgentConfig, OnChunkCallback } from './zhin-agent/index.js';
14
14
  export { PERM_MAP, DEFAULT_CONFIG as ZHIN_AGENT_DEFAULT_CONFIG, SECTION_SEP } from './zhin-agent/config.js';
15
- export { checkExecPolicy, applyExecPolicyToTools, resolveExecAllowlist, EXEC_PRESETS } from './zhin-agent/exec-policy.js';
15
+ export { checkExecPolicy, applyExecPolicyToTools, resolveExecAllowlist, EXEC_PRESETS, isDangerousCommand, stripEnvVarPrefix, stripSafeWrappers, splitCompoundCommand, extractCommandName, type ExecPolicyResult, } from './zhin-agent/exec-policy.js';
16
16
  export { collectRelevantTools, toAgentTool } from './zhin-agent/tool-collector.js';
17
17
  export { buildRichSystemPrompt, buildContextHint, buildEnhancedPersona, buildUserMessageWithHistory, contentToText } from './zhin-agent/prompt.js';
18
18
  export type { RichSystemPromptContext } from './zhin-agent/prompt.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -8,7 +8,7 @@ export { SessionManager, MemorySessionManager, DatabaseSessionManager, createMem
8
8
  export { ContextManager, createContextManager, CHAT_MESSAGE_MODEL, CONTEXT_SUMMARY_MODEL, } from './context-manager.js';
9
9
  export { ZhinAgent } from './zhin-agent/index.js';
10
10
  export { PERM_MAP, DEFAULT_CONFIG as ZHIN_AGENT_DEFAULT_CONFIG, SECTION_SEP } from './zhin-agent/config.js';
11
- export { checkExecPolicy, applyExecPolicyToTools, resolveExecAllowlist, EXEC_PRESETS } from './zhin-agent/exec-policy.js';
11
+ export { checkExecPolicy, applyExecPolicyToTools, resolveExecAllowlist, EXEC_PRESETS, isDangerousCommand, stripEnvVarPrefix, stripSafeWrappers, splitCompoundCommand, extractCommandName, } from './zhin-agent/exec-policy.js';
12
12
  export { collectRelevantTools, toAgentTool } from './zhin-agent/tool-collector.js';
13
13
  export { buildRichSystemPrompt, buildContextHint, buildEnhancedPersona, buildUserMessageWithHistory, contentToText } from './zhin-agent/prompt.js';
14
14
  export { createChatHistoryTool, createUserProfileTool, createScheduleFollowUpTool, createSpawnTaskTool } from './zhin-agent/builtin-tools.js';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,OAAO,EAAE,QAAQ,EAAE,cAAc,IAAI,yBAAyB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC5G,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC1H,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnJ,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE9I,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAQhD,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAS1B,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAapB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC;AAarB,OAAO,EACL,cAAc,EACd,QAAQ,EACR,UAAU,EACV,cAAc,EACd,QAAQ,EACR,UAAU,EACV,eAAe,EACf,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,OAAO,EAAE,QAAQ,EAAE,cAAc,IAAI,yBAAyB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC5G,OAAO,EACL,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,YAAY,EAC3E,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB,GAEnG,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnJ,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE9I,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAQhD,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAS1B,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAapB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC;AAarB,OAAO,EACL,cAAc,EACd,QAAQ,EACR,UAAU,EACV,cAAc,EACd,QAAQ,EACR,UAAU,EACV,eAAe,EACf,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-zhin-agent.d.ts","sourceRoot":"","sources":["../../src/init/create-zhin-agent.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAyHhE"}
1
+ {"version":3,"file":"create-zhin-agent.d.ts","sourceRoot":"","sources":["../../src/init/create-zhin-agent.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CA0HhE"}
@@ -5,7 +5,8 @@
5
5
  import * as path from 'path';
6
6
  import { getPlugin, Scheduler, getScheduler, setScheduler } from '@zhin.js/core';
7
7
  import { ZhinAgent } from '../zhin-agent/index.js';
8
- import { collectPluginSkillSearchRoots, createBuiltinTools } from '../builtin-tools.js';
8
+ import { createBuiltinTools } from '../builtin-tools.js';
9
+ import { collectPluginSkillSearchRoots } from '../discovery-utils.js';
9
10
  import { resolveSkillInstructionMaxChars, DEFAULT_CONFIG } from '../zhin-agent/config.js';
10
11
  import { PersistentCronEngine, setCronManager } from '../cron-engine.js';
11
12
  export function createZhinAgentContext(refs) {
@@ -43,6 +44,7 @@ export function createZhinAgentContext(refs) {
43
44
  const modelName = provider.models[0] || '';
44
45
  const fullConfig = { ...DEFAULT_CONFIG, ...agentConfig };
45
46
  const zhinTools = createBuiltinTools({
47
+ plugin,
46
48
  skillInstructionMaxChars: resolveSkillInstructionMaxChars(fullConfig, modelName),
47
49
  pluginSkillRootsResolver: () => collectPluginSkillSearchRoots(root),
48
50
  });
@@ -1 +1 @@
1
- {"version":3,"file":"create-zhin-agent.js","sourceRoot":"","sources":["../../src/init/create-zhin-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-zhin-agent.js","sourceRoot":"","sources":["../../src/init/create-zhin-agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-builtin-tools.d.ts","sourceRoot":"","sources":["../../src/init/register-builtin-tools.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAsS9D"}
1
+ {"version":3,"file":"register-builtin-tools.d.ts","sourceRoot":"","sources":["../../src/init/register-builtin-tools.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAgS9D"}