@shareai-lab/kode-sdk 2.7.1 → 2.7.3

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 (107) hide show
  1. package/README.md +3 -0
  2. package/README.zh-CN.md +3 -0
  3. package/dist/core/agent/breakpoint-manager.js +36 -0
  4. package/dist/core/agent/message-queue.js +57 -0
  5. package/dist/core/agent/permission-manager.js +32 -0
  6. package/dist/core/agent/todo-manager.js +91 -0
  7. package/dist/core/agent/tool-runner.js +45 -0
  8. package/dist/core/agent.d.ts +7 -0
  9. package/dist/core/agent.js +2128 -0
  10. package/dist/core/config.js +2 -0
  11. package/dist/core/context-manager.js +241 -0
  12. package/dist/core/errors.js +49 -0
  13. package/dist/core/events.js +329 -0
  14. package/dist/core/file-pool.d.ts +2 -0
  15. package/dist/core/file-pool.js +125 -0
  16. package/dist/core/hooks.js +71 -0
  17. package/dist/core/permission-modes.js +61 -0
  18. package/dist/core/pool.js +301 -0
  19. package/dist/core/room.js +57 -0
  20. package/dist/core/scheduler.js +58 -0
  21. package/dist/core/skills/index.js +20 -0
  22. package/dist/core/skills/management-manager.d.ts +93 -60
  23. package/dist/core/skills/management-manager.js +827 -0
  24. package/dist/core/skills/manager.d.ts +4 -0
  25. package/dist/core/skills/manager.js +266 -0
  26. package/dist/core/skills/operation-queue.js +113 -0
  27. package/dist/core/skills/sandbox-file-manager.js +183 -0
  28. package/dist/core/skills/types.d.ts +12 -0
  29. package/dist/core/skills/types.js +9 -0
  30. package/dist/core/skills/xml-generator.js +70 -0
  31. package/dist/core/template.js +35 -0
  32. package/dist/core/time-bridge.js +100 -0
  33. package/dist/core/todo.js +89 -0
  34. package/dist/core/types.d.ts +9 -1
  35. package/dist/core/types.js +3 -0
  36. package/dist/index.js +148 -60461
  37. package/dist/infra/db/postgres/postgres-store.js +1073 -0
  38. package/dist/infra/db/sqlite/sqlite-store.js +800 -0
  39. package/dist/infra/e2b/e2b-fs.js +128 -0
  40. package/dist/infra/e2b/e2b-sandbox.js +156 -0
  41. package/dist/infra/e2b/e2b-template.js +105 -0
  42. package/dist/infra/e2b/index.js +9 -0
  43. package/dist/infra/e2b/types.js +2 -0
  44. package/dist/infra/provider.js +67 -0
  45. package/dist/infra/providers/anthropic.js +324 -0
  46. package/dist/infra/providers/core/errors.js +353 -0
  47. package/dist/infra/providers/core/fork.js +418 -0
  48. package/dist/infra/providers/core/index.js +76 -0
  49. package/dist/infra/providers/core/logger.js +191 -0
  50. package/dist/infra/providers/core/retry.js +189 -0
  51. package/dist/infra/providers/core/usage.js +376 -0
  52. package/dist/infra/providers/gemini.js +521 -0
  53. package/dist/infra/providers/index.js +83 -0
  54. package/dist/infra/providers/openai.js +686 -0
  55. package/dist/infra/providers/types.d.ts +35 -1
  56. package/dist/infra/providers/types.js +20 -0
  57. package/dist/infra/providers/utils.d.ts +19 -1
  58. package/dist/infra/providers/utils.js +480 -0
  59. package/dist/infra/sandbox-factory.js +30 -0
  60. package/dist/infra/sandbox.js +243 -0
  61. package/dist/infra/store/factory.js +80 -0
  62. package/dist/infra/store/index.js +26 -0
  63. package/dist/infra/store/json-store.js +607 -0
  64. package/dist/infra/store/types.js +2 -0
  65. package/dist/infra/store.js +29 -0
  66. package/dist/tools/bash_kill/index.js +35 -0
  67. package/dist/tools/bash_kill/prompt.js +14 -0
  68. package/dist/tools/bash_logs/index.js +40 -0
  69. package/dist/tools/bash_logs/prompt.js +14 -0
  70. package/dist/tools/bash_run/index.js +61 -0
  71. package/dist/tools/bash_run/prompt.js +18 -0
  72. package/dist/tools/builtin.js +26 -0
  73. package/dist/tools/define.js +214 -0
  74. package/dist/tools/fs_edit/index.js +62 -0
  75. package/dist/tools/fs_edit/prompt.js +15 -0
  76. package/dist/tools/fs_glob/index.js +40 -0
  77. package/dist/tools/fs_glob/prompt.js +15 -0
  78. package/dist/tools/fs_grep/index.js +66 -0
  79. package/dist/tools/fs_grep/prompt.js +16 -0
  80. package/dist/tools/fs_multi_edit/index.js +106 -0
  81. package/dist/tools/fs_multi_edit/prompt.js +16 -0
  82. package/dist/tools/fs_read/index.js +40 -0
  83. package/dist/tools/fs_read/prompt.js +16 -0
  84. package/dist/tools/fs_write/index.js +40 -0
  85. package/dist/tools/fs_write/prompt.js +15 -0
  86. package/dist/tools/index.js +61 -0
  87. package/dist/tools/mcp.js +185 -0
  88. package/dist/tools/registry.js +26 -0
  89. package/dist/tools/scripts.js +205 -0
  90. package/dist/tools/skills.js +115 -0
  91. package/dist/tools/task_run/index.js +58 -0
  92. package/dist/tools/task_run/prompt.js +25 -0
  93. package/dist/tools/todo_read/index.js +29 -0
  94. package/dist/tools/todo_read/prompt.js +18 -0
  95. package/dist/tools/todo_write/index.js +42 -0
  96. package/dist/tools/todo_write/prompt.js +23 -0
  97. package/dist/tools/tool.js +211 -0
  98. package/dist/tools/toolkit.js +98 -0
  99. package/dist/tools/type-inference.d.ts +1 -1
  100. package/dist/tools/type-inference.js +207 -0
  101. package/dist/utils/agent-id.js +28 -0
  102. package/dist/utils/logger.js +44 -0
  103. package/dist/utils/session-id.js +64 -0
  104. package/package.json +9 -40
  105. package/dist/index.js.map +0 -7
  106. package/dist/index.mjs +0 -60385
  107. package/dist/index.mjs.map +0 -7
@@ -1,120 +1,144 @@
1
1
  /**
2
- * 技能管理器模块(路径1 - 技能管理)
2
+ * 技能管理器模块(路径1 - 技能管理)
3
3
  *
4
4
  * 设计原则 (UNIX哲学):
5
- * - 简洁: 只负责技能文件系统的CRUD操作
6
- * - 模块化: 协调OperationQueue、SandboxFileManager进行文件系统操作
7
- * - 隔离: 与Agent运行时完全隔离,不参与Agent使用
5
+ * - 简洁: 只负责技能文件系统的管理操作
6
+ * - 模块化: 单一职责,易于测试和维护
7
+ * - 隔离: 与Agent运行时完全隔离,不参与Agent使用
8
8
  *
9
9
  * ⚠️ 重要说明:
10
- * - 此模块专门用于路径1(技能管理)
11
- * - 与路径2Agent运行时)完全独立
10
+ * - 此模块专门用于路径1(技能管理)
11
+ * - 与路径2(Agent运行时)完全独立
12
12
  * - 请勿与SkillsManager混淆
13
+ *
14
+ * @see docs/skills-management-implementation-plan.md
13
15
  */
14
- import { OperationTask } from './operation-queue';
15
- import type { SkillInfo, SkillDetail, SkillFileTree, CreateSkillOptions, ArchivedSkillInfo } from './types';
16
- import { SandboxFactory } from '../../infra/sandbox-factory';
16
+ import type { SkillInfo, ArchivedSkillInfo } from './types';
17
17
  /**
18
18
  * 技能管理器类
19
19
  *
20
20
  * 职责:
21
- * - 提供所有技能管理操作的统一接口(CRUD操作)
22
- * - 协调OperationQueue、SandboxFileManager进行文件系统操作
21
+ * - 提供所有技能管理操作的统一接口(导入、复制、重命名、归档、导出)
23
22
  * - 处理业务逻辑和权限验证
23
+ * - 所有操作严格遵循Specification.md规范
24
24
  * - ❌ 不参与Agent运行时
25
25
  * - ❌ 不提供技能加载、扫描等Agent使用的功能
26
26
  */
27
27
  export declare class SkillsManagementManager {
28
- private skillsManager;
29
- private operationQueue;
30
- private sandboxFileManager;
31
28
  private skillsDir;
32
29
  private archivedDir;
33
- constructor(skillsDir: string, sandboxFactory?: SandboxFactory, archivedDir?: string);
30
+ constructor(skillsDir: string, archivedDir?: string);
34
31
  /**
35
- * 获取所有在线技能列表(不包含archived技能)
32
+ * 1. 列出在线技能
33
+ * 扫描skills目录,排除.archived子目录
34
+ * 返回技能清单及其元数据信息
36
35
  */
37
36
  listSkills(): Promise<SkillInfo[]>;
38
37
  /**
39
- * 获取单个在线技能详细信息
40
- * @param skillName 技能名称
38
+ * 2. 安装新技能
39
+ * @param source 技能来源(名称/GitHub仓库/Git URL/本地路径)
40
+ * @param onProgress 可选的进度回调函数,用于实时传递安装日志
41
+ * 执行命令: npx -y ai-agent-skills install --agent project [source]
42
+ * 直接安装到.skills目录
41
43
  */
42
- getSkillInfo(skillName: string): Promise<SkillDetail | null>;
44
+ installSkill(source: string, onProgress?: (data: {
45
+ type: 'log' | 'error';
46
+ message: string;
47
+ }) => void): Promise<void>;
43
48
  /**
44
- * 获取已归档技能列表(只读,不支持修改)
49
+ * 3. 列出归档技能
50
+ * 扫描.archived目录
51
+ * 返回归档技能清单及其元数据信息
45
52
  */
46
53
  listArchivedSkills(): Promise<ArchivedSkillInfo[]>;
47
54
  /**
48
- * 创建新技能
55
+ * 4. 导入技能
56
+ * @param zipFilePath zip文件路径
57
+ * @param originalFileName 原始上传文件名(可选,用于无嵌套目录时的技能命名)
58
+ * 验证SKILL.md格式,解压并放置在在线技能目录中
59
+ *
60
+ * 检测逻辑:
61
+ * - 如果解压后根目录直接包含SKILL.md,视为无嵌套目录,使用originalFileName作为技能名称
62
+ * - 如果根目录不包含SKILL.md但包含多个子目录,每个子目录都有SKILL.md,则批量导入
63
+ */
64
+ importSkill(zipFilePath: string, originalFileName?: string): Promise<void>;
65
+ /**
66
+ * 5. 复制技能
49
67
  * @param skillName 技能名称
50
- * @param options 技能配置(名称、描述等)
68
+ * 新技能名称: {原技能名称}-{XXXXXXXX}
51
69
  */
52
- createSkill(skillName: string, options: CreateSkillOptions): Promise<SkillDetail>;
70
+ copySkill(skillName: string): Promise<string>;
53
71
  /**
54
- * 重命名技能
55
- * @param oldName 旧技能名称
56
- * @param newName 新技能名称
72
+ * 6. 重命名技能
73
+ * @param oldName 旧技能文件夹名称
74
+ * @param newName 新技能文件夹名称
75
+ * 不支持操作归档技能
57
76
  */
58
77
  renameSkill(oldName: string, newName: string): Promise<void>;
59
78
  /**
60
- * 编辑技能文件
79
+ * 7. 在线技能转归档
61
80
  * @param skillName 技能名称
62
- * @param filePath 文件路径(相对于技能根目录,如"SKILL.md")
63
- * @param content 文件内容
64
- * @param useSandbox 是否使用sandbox(默认true)
81
+ * 归档名称: {原技能名称}-{XXXXXXXX}
82
+ */
83
+ archiveSkill(skillName: string): Promise<void>;
84
+ /**
85
+ * 8. 归档技能转在线
86
+ * @param archivedSkillName archived中的技能名称(含后缀)
87
+ * 移入前检测重名
65
88
  */
66
- editSkillFile(skillName: string, filePath: string, content: string, useSandbox?: boolean): Promise<void>;
89
+ unarchiveSkill(archivedSkillName: string): Promise<void>;
67
90
  /**
68
- * 删除技能(移动到archived)
91
+ * 9. 查看在线技能内容
69
92
  * @param skillName 技能名称
93
+ * 返回SKILL.md完整内容(包含frontmatter和正文)
70
94
  */
71
- deleteSkill(skillName: string): Promise<void>;
95
+ getOnlineSkillContent(skillName: string): Promise<string>;
72
96
  /**
73
- * 恢复已删除的技能
74
- * @param archivedSkillName archived中的技能名称(含时间戳)
97
+ * 10. 查看归档技能内容
98
+ * @param archivedSkillName 归档技能名称(含8位后缀)
99
+ * 返回SKILL.md完整内容(包含frontmatter和正文)
75
100
  */
76
- restoreSkill(archivedSkillName: string): Promise<void>;
101
+ getArchivedSkillContent(archivedSkillName: string): Promise<string>;
77
102
  /**
78
- * 获取技能文件树(仅在线技能)
103
+ * 11. 查看在线技能文件目录结构
79
104
  * @param skillName 技能名称
105
+ * 返回JSON格式的目录树结构
80
106
  */
81
- getSkillFileTree(skillName: string): Promise<SkillFileTree>;
107
+ getOnlineSkillStructure(skillName: string): Promise<object>;
82
108
  /**
83
- * 获取队列状态
109
+ * 12. 查看归档技能文件目录结构
110
+ * @param archivedSkillName 归档技能名称(含8位后缀)
111
+ * 返回JSON格式的目录树结构
84
112
  */
85
- getQueueStatus(): {
86
- length: number;
87
- processing: boolean;
88
- tasks: OperationTask[];
89
- };
113
+ getArchivedSkillStructure(archivedSkillName: string): Promise<object>;
90
114
  /**
91
- * 执行创建技能
115
+ * 13. 导出技能
116
+ * @param skillName 技能名称(在线或归档)
117
+ * @param isArchived 是否为归档技能
118
+ * 使用系统zip命令打包,放入临时目录
92
119
  */
93
- private doCreateSkill;
120
+ exportSkill(skillName: string, isArchived: boolean): Promise<string>;
94
121
  /**
95
- * 执行重命名技能
122
+ * 递归构建目录树
96
123
  */
97
- private doRenameSkill;
124
+ private buildDirectoryTree;
98
125
  /**
99
- * 执行编辑技能文件
126
+ * 解析SKILL.md的YAML frontmatter
100
127
  */
101
- private doEditSkillFile;
128
+ private parseSkillMd;
102
129
  /**
103
- * 执行删除技能
130
+ * 验证SKILL.md格式(遵循Specification.md规范)
104
131
  */
105
- private doDeleteSkill;
132
+ private validateSkillMd;
106
133
  /**
107
- * 执行恢复技能
134
+ * 生成8位随机后缀
135
+ * 规则: uuidv4 → sha256 → 全小写 → 取前8位
108
136
  */
109
- private doRestoreSkill;
137
+ private generateRandomSuffix;
110
138
  /**
111
139
  * 验证技能名称
112
140
  */
113
141
  private isValidSkillName;
114
- /**
115
- * 生成SKILL.md内容
116
- */
117
- private generateSkillMd;
118
142
  /**
119
143
  * 检查文件是否存在
120
144
  */
@@ -124,7 +148,16 @@ export declare class SkillsManagementManager {
124
148
  */
125
149
  private safeGetFileStat;
126
150
  /**
127
- * 等待任务完成
151
+ * 解压zip文件
152
+ */
153
+ private extractZip;
154
+ /**
155
+ * 跨平台的安全重命名方法
156
+ * Windows上使用"复制-删除"方式避免EPERM错误
157
+ */
158
+ private safeRename;
159
+ /**
160
+ * 创建zip文件
128
161
  */
129
- private waitForTask;
162
+ private createZip;
130
163
  }