@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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @zhin.js/agent
2
2
 
3
+ ## 0.0.19
4
+
5
+ ### Patch Changes
6
+
7
+ - 20ab379: fix: ai 优化
8
+ - Updated dependencies [20ab379]
9
+ - @zhin.js/ai@1.0.17
10
+ - @zhin.js/core@1.0.56
11
+
12
+ ## 0.0.18
13
+
14
+ ### Patch Changes
15
+
16
+ - 75709e1: fix: ai 强化,文档梳理
17
+ - Updated dependencies [75709e1]
18
+ - @zhin.js/core@1.0.55
19
+ - @zhin.js/ai@1.0.16
20
+
3
21
  ## 0.0.17
4
22
 
5
23
  ### Patch Changes
package/README.md CHANGED
@@ -7,10 +7,13 @@ Zhin AI Agent 组合层:在 `@zhin.js/core` 的类型与 Provider 之上,提
7
7
  - 🤖 **Agent 循环**:`Agent` / `createAgent`,支持工具调用、迭代与事件
8
8
  - 📝 **会话管理**:`SessionManager`、内存/数据库会话、`SessionManager.generateId`
9
9
  - 🧠 **ZhinAgent**:与 Zhin 消息流集成的智能体(SOUL/TOOLS/AGENTS、工具收集、执行策略)
10
+ - �️ **6 层 Bash 安全**:`ExecPolicy` 纵深防御(危险黑名单、环境变量剥离、wrapper 剥离、复合命令拆分、只读放行、交互式审批)
11
+ - 📂 **文件访问安全**:`FilePolicy` 路径检查、设备路径拦截、命令读写分类
12
+ - 📋 **10 段系统提示词**:`PromptBuilder` 结构化 prompt(Identity、System、Tasks、Actions、Tools、Communication、Skills、Active Skills、Memory、Bootstrap)
10
13
  - 🔌 **框架挂载**:`initAgentModule()` 注册 `ctx.ai`、定时任务、DB 模型等
11
14
  - 📦 **上下文与记忆**:`ContextManager`、`ConversationMemory`、`UserProfileStore`
12
15
  - ⏰ **跟进与定时**:`FollowUpManager`、`PersistentCronEngine`、cron 工具
13
- - 🔧 **内置工具**:calculatortimesearchcodeRunnerhttpmemory
16
+ - 🔧 **内置工具**:bashread_filewrite_fileask_userweb_searchchat_history
14
17
  - 📐 **会话压缩**:`compactSession`、token 估算、总结与裁剪
15
18
  - 🪝 **Hook 系统**:`registerAIHook`、`triggerAIHook` 等
16
19
 
@@ -76,7 +79,9 @@ const result = await agent.run('你好')
76
79
  | 初始化 | `initAgentModule` |
77
80
  | Agent | `Agent`, `createAgent`, `formatToolTitle` |
78
81
  | 服务与会话 | `AIService`, `SessionManager`, `MemorySessionManager`, `DatabaseSessionManager`, `createMemorySessionManager`, `createDatabaseSessionManager` |
79
- | ZhinAgent | `ZhinAgent`,以及 config / exec-policy / tool-collector / prompt / builtin-tools 等子模块 |
82
+ | ZhinAgent | `ZhinAgent`,以及 config / exec-policy / file-policy / tool-collector / prompt / builtin-tools 等子模块 |
83
+ | 安全策略 | `checkExecPolicy`, `applyExecPolicyToTools`, `isDangerousCommand`, `stripEnvVarPrefix`, `stripSafeWrappers`, `splitCompoundCommand`, `extractCommandName`, `ExecPolicyResult`, `checkFileAccess`, `classifyBashCommand`, `isBlockedDevicePath` |
84
+ | 提示词构建 | `buildRichSystemPrompt`, `buildEnhancedPersona`, `buildUserMessageWithHistory`, `buildContextHint` |
80
85
  | 上下文与记忆 | `ContextManager`, `createContextManager`, `ConversationMemory`, `UserProfileStore` |
81
86
  | 跟进与定时 | `FollowUpManager`, `PersistentCronEngine`, `createCronTools`, `setCronManager`, `getCronManager` |
82
87
  | 压缩与 Bootstrap | `compactSession`, `estimateTokens`, `loadBootstrapFiles`, `loadSoulPersona`, `loadToolsGuide`, `loadAgentsMemory` |
@@ -190,8 +195,9 @@ src/
190
195
  ├── hooks.ts
191
196
  ├── output.ts
192
197
  ├── tools.ts
193
- ├── builtin-tools.ts
198
+ ├── builtin-tools.ts # 内置工具(bash、read_file、ask_user 等)
194
199
  ├── tone-detector.ts
200
+ ├── file-policy.ts # 文件访问安全(路径检查、设备拦截、命令分类)
195
201
  ├── init.ts # initAgentModule 精简入口(委托子模块)
196
202
  ├── init/ # init 子模块(从 init.ts 拆分)
197
203
  │ ├── shared-refs.ts
@@ -207,11 +213,11 @@ src/
207
213
  │ └── register-builtin-tools.ts
208
214
  └── zhin-agent/ # ZhinAgent 及子模块
209
215
  ├── index.ts # ZhinAgent 主类
210
- ├── config.ts
211
- ├── exec-policy.ts
212
- ├── tool-collector.ts
213
- ├── prompt.ts
214
- └── builtin-tools.ts
216
+ ├── config.ts # 配置与常量(ModelSizeHint、KEYWORD_TRIGGERS 等)
217
+ ├── exec-policy.ts # Bash 执行安全(6 层纵深防御)
218
+ ├── tool-collector.ts # 工具收集与过滤
219
+ ├── prompt.ts # 系统提示词构建器(10 段结构化架构)
220
+ └── builtin-tools.ts # ZhinAgent 专用内置工具
215
221
  ```
216
222
 
217
223
  ### 构建
@@ -1,30 +1,21 @@
1
1
  /**
2
2
  * AI 内置系统工具
3
3
  *
4
- * 借鉴 OpenClaw/MicroClaw 的实用工具设计,为 ZhinAgent 提供:
5
- *
6
4
  * 文件工具: read_file, write_file, edit_file, list_dir, glob, grep
7
5
  * Shell: bash
8
6
  * 网络: web_search, web_fetch
9
7
  * 计划: todo_read, todo_write
10
8
  * 记忆: read_memory, write_memory (AGENTS.md)
11
9
  * 技能: activate_skill, install_skill
12
- * 会话: session_status, compact_session
13
- * 技能发现: 工作区 skills/ 目录自动扫描
14
- * 引导文件: SOUL.md, TOOLS.md, AGENTS.md 自动加载
10
+ * 交互: ask_user(基于 Prompt 类的用户确认/提问工具)
11
+ *
12
+ * 发现逻辑已拆分到 discover-skills.ts / discover-agents.ts / discover-tools.ts
15
13
  */
16
14
  import { type Plugin } from '@zhin.js/core';
17
15
  import { ZhinTool } from '@zhin.js/core';
18
- export { loadSoulPersona, loadToolsGuide, loadAgentsMemory } from './bootstrap.js';
19
- /**
20
- * 从根插件树收集:根插件与**直接子插件**包目录下的 `skills/`(其下为 `<name>/SKILL.md`)
21
- */
22
- export declare function collectPluginSkillSearchRoots(root: Plugin | null | undefined): string[];
23
- /**
24
- * 技能发现与 activate_skill 查找共用:标准目录 + 已加载插件包 skills/
25
- */
26
- export declare function getSkillSearchDirectories(root?: Plugin | null): string[];
27
16
  export interface BuiltinToolsOptions {
17
+ /** 插件实例,用于 ask_user 工具创建 Prompt 交互 */
18
+ plugin?: Plugin;
28
19
  /** Max chars for skill instruction extraction (model-size-aware) */
29
20
  skillInstructionMaxChars?: number;
30
21
  /**
@@ -41,127 +32,4 @@ export interface BuiltinToolsOptions {
41
32
  * 创建所有内置系统工具
42
33
  */
43
34
  export declare function createBuiltinTools(options?: BuiltinToolsOptions): ZhinTool[];
44
- export interface SkillMeta {
45
- name: string;
46
- description: string;
47
- keywords?: string[];
48
- tags?: string[];
49
- /** SKILL.md frontmatter 中声明的关联工具名列表 */
50
- toolNames?: string[];
51
- filePath: string;
52
- /** 是否常驻注入 system prompt(frontmatter always: true) */
53
- always?: boolean;
54
- /** 当前环境是否满足依赖(bins/env) */
55
- available?: boolean;
56
- /** 缺失的依赖描述(如 "CLI: ffmpeg", "ENV: API_KEY") */
57
- requiresMissing?: string[];
58
- }
59
- /**
60
- * 扫描技能目录,发现 SKILL.md 技能文件
61
- * 加载顺序:Workspace(cwd/skills)> Local(~/.zhin/skills)> data/skills > 已加载插件包 skills/,同名先发现者优先
62
- * 支持平台/依赖兼容性过滤。内置技能由 create-zhin 在创建项目时写入 skills/summarize 等。
63
- *
64
- * @param root 根插件(可选):用于追加插件包内 `skills/` 扫描,与 `activate_skill` 查找路径一致
65
- */
66
- export declare function discoverWorkspaceSkills(root?: Plugin | null): Promise<SkillMeta[]>;
67
- /**
68
- * 获取 frontmatter 中 always: true 的技能名列表(用于常驻注入 system prompt)
69
- */
70
- export declare function getAlwaysSkillNames(skills: SkillMeta[]): string[];
71
- /**
72
- * 加载 always 技能的正文内容并拼接为「Active Skills」段
73
- */
74
- export declare function loadAlwaysSkillsContent(skills: SkillMeta[]): Promise<string>;
75
- /**
76
- * 构建技能列表的 XML 摘要,供 model 区分可用/不可用及缺失依赖
77
- */
78
- export declare function buildSkillsSummaryXML(skills: SkillMeta[]): string;
79
- /**
80
- * Agent 预设元数据(从 *.agent.md frontmatter 解析)
81
- */
82
- export interface AgentMeta {
83
- name: string;
84
- description: string;
85
- keywords?: string[];
86
- tags?: string[];
87
- /** frontmatter 中声明的工具名列表 */
88
- toolNames?: string[];
89
- /** *.agent.md 文件的绝对路径 */
90
- filePath: string;
91
- /** 首选模型名 */
92
- model?: string;
93
- /** 首选 Provider 名 */
94
- provider?: string;
95
- /** 最大工具调用迭代次数 */
96
- maxIterations?: number;
97
- }
98
- /**
99
- * 扫描 agents/ 目录,发现 *.agent.md 文件
100
- * 加载顺序与 skills 一致:Workspace > ~/.zhin > data > 插件包
101
- * 同名先发现者优先
102
- */
103
- export declare function discoverWorkspaceAgents(root?: Plugin | null): Promise<AgentMeta[]>;
104
- /**
105
- * 简写参数定义(*.tool.md frontmatter 中使用)
106
- */
107
- export interface ToolParamShorthand {
108
- type: string;
109
- description?: string;
110
- required?: boolean;
111
- enum?: string[];
112
- default?: any;
113
- }
114
- /**
115
- * Tool 元数据(从 *.tool.md frontmatter 解析)
116
- */
117
- export interface ToolMeta {
118
- name: string;
119
- description: string;
120
- /** 简写参数定义(frontmatter 格式) */
121
- parameters?: Record<string, ToolParamShorthand>;
122
- /** 命令配置 */
123
- command?: {
124
- pattern?: string;
125
- alias?: string[];
126
- examples?: string[];
127
- };
128
- /** 支持的平台列表 */
129
- platforms?: string[];
130
- /** 支持的场景列表 */
131
- scopes?: string[];
132
- /** 权限级别 */
133
- permissionLevel?: string;
134
- /** 标签 */
135
- tags?: string[];
136
- /** 触发关键词 */
137
- keywords?: string[];
138
- /** 工具分类 */
139
- kind?: string;
140
- /** 是否隐藏 */
141
- hidden?: boolean;
142
- /** handler 文件路径(相对于 .tool.md) */
143
- handler?: string;
144
- /** *.tool.md 文件的绝对路径 */
145
- filePath: string;
146
- /** body 内容(无 handler 时作为 prompt 模板) */
147
- templateBody?: string;
148
- }
149
- /**
150
- * 从根插件树收集:根插件与直接子插件包目录下的 `tools/`
151
- */
152
- export declare function collectPluginToolSearchRoots(root: Plugin | null | undefined): string[];
153
- /**
154
- * 获取所有 tool 搜索目录(标准目录 + 插件包 tools/)
155
- */
156
- export declare function getToolSearchDirectories(root?: Plugin | null): string[];
157
- /**
158
- * 扫描 tools/ 目录,发现 *.tool.md 文件
159
- * 加载顺序与 skills/agents 一致:Workspace > ~/.zhin > data > 插件包
160
- * 同名先发现者优先
161
- */
162
- export declare function discoverWorkspaceTools(root?: Plugin | null): Promise<ToolMeta[]>;
163
- /**
164
- * 将 ToolMeta 转换为 Tool 对象(包含 execute 函数)
165
- */
166
- export declare function buildToolFromMeta(meta: ToolMeta): Promise<import('@zhin.js/core').Tool | null>;
167
35
  //# sourceMappingURL=builtin-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builtin-tools.d.ts","sourceRoot":"","sources":["../src/builtin-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtin-tools.d.ts","sourceRoot":"","sources":["../src/builtin-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAkB,KAAK,MAAM,EAAuB,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AA4HzC,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;IAC1C;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,QAAQ,EAAE,CAirB5E"}