@crewx/cli 0.8.4-rc.0 → 0.8.4-rc.2

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 (220) hide show
  1. package/README.md +33 -33
  2. package/bin/crewx +2 -2
  3. package/dist/commands/agent.js +23 -23
  4. package/dist/commands/init.js +20 -20
  5. package/dist/commands/task-db.d.ts +33 -0
  6. package/dist/commands/task-db.js +107 -0
  7. package/dist/examples/deny-secrets-plugin.d.ts +22 -0
  8. package/dist/examples/deny-secrets-plugin.js +40 -0
  9. package/dist/main.js +72 -72
  10. package/dist/plugins/examples/echo-hook.d.ts +24 -0
  11. package/dist/plugins/examples/echo-hook.js +60 -0
  12. package/dist/plugins/examples/verify-echo-hook.d.ts +8 -0
  13. package/dist/plugins/examples/verify-echo-hook.js +47 -0
  14. package/dist/plugins/sqlite-tracing.d.ts +11 -0
  15. package/dist/plugins/sqlite-tracing.js +19 -0
  16. package/dist/repository/workspace.repository.d.ts +26 -0
  17. package/dist/repository/workspace.repository.js +111 -0
  18. package/dist/schema/tasks.d.ts +7 -0
  19. package/dist/schema/tasks.js +48 -0
  20. package/package.json +18 -18
  21. package/dist/ai-provider.service.d.ts +0 -34
  22. package/dist/ai-provider.service.js +0 -311
  23. package/dist/ai-provider.service.js.map +0 -1
  24. package/dist/ai.service.d.ts +0 -17
  25. package/dist/ai.service.js +0 -51
  26. package/dist/ai.service.js.map +0 -1
  27. package/dist/app.module.d.ts +0 -5
  28. package/dist/app.module.js +0 -165
  29. package/dist/app.module.js.map +0 -1
  30. package/dist/cli/agent.handler.d.ts +0 -2
  31. package/dist/cli/agent.handler.js +0 -186
  32. package/dist/cli/agent.handler.js.map +0 -1
  33. package/dist/cli/builtin.handler.d.ts +0 -3
  34. package/dist/cli/builtin.handler.js +0 -110
  35. package/dist/cli/builtin.handler.js.map +0 -1
  36. package/dist/cli/chat.handler.d.ts +0 -20
  37. package/dist/cli/chat.handler.js +0 -446
  38. package/dist/cli/chat.handler.js.map +0 -1
  39. package/dist/cli/cli.handler.d.ts +0 -4
  40. package/dist/cli/cli.handler.js +0 -119
  41. package/dist/cli/cli.handler.js.map +0 -1
  42. package/dist/cli/doctor.handler.d.ts +0 -38
  43. package/dist/cli/doctor.handler.js +0 -495
  44. package/dist/cli/doctor.handler.js.map +0 -1
  45. package/dist/cli/execute.handler.d.ts +0 -2
  46. package/dist/cli/execute.handler.js +0 -321
  47. package/dist/cli/execute.handler.js.map +0 -1
  48. package/dist/cli/help.handler.d.ts +0 -2
  49. package/dist/cli/help.handler.js +0 -10
  50. package/dist/cli/help.handler.js.map +0 -1
  51. package/dist/cli/init.handler.d.ts +0 -26
  52. package/dist/cli/init.handler.js +0 -450
  53. package/dist/cli/init.handler.js.map +0 -1
  54. package/dist/cli/log.handler.d.ts +0 -2
  55. package/dist/cli/log.handler.js +0 -69
  56. package/dist/cli/log.handler.js.map +0 -1
  57. package/dist/cli/mcp.handler.d.ts +0 -3
  58. package/dist/cli/mcp.handler.js +0 -121
  59. package/dist/cli/mcp.handler.js.map +0 -1
  60. package/dist/cli/query.handler.d.ts +0 -2
  61. package/dist/cli/query.handler.js +0 -379
  62. package/dist/cli/query.handler.js.map +0 -1
  63. package/dist/cli/skill.handler.d.ts +0 -2
  64. package/dist/cli/skill.handler.js +0 -252
  65. package/dist/cli/skill.handler.js.map +0 -1
  66. package/dist/cli/slack-files.handler.d.ts +0 -2
  67. package/dist/cli/slack-files.handler.js +0 -291
  68. package/dist/cli/slack-files.handler.js.map +0 -1
  69. package/dist/cli/template.handler.d.ts +0 -2
  70. package/dist/cli/template.handler.js +0 -188
  71. package/dist/cli/template.handler.js.map +0 -1
  72. package/dist/cli/templates.handler.d.ts +0 -2
  73. package/dist/cli/templates.handler.js +0 -100
  74. package/dist/cli/templates.handler.js.map +0 -1
  75. package/dist/cli-options.d.ts +0 -39
  76. package/dist/cli-options.js +0 -355
  77. package/dist/cli-options.js.map +0 -1
  78. package/dist/config/timeout.config.d.ts +0 -14
  79. package/dist/config/timeout.config.js +0 -34
  80. package/dist/config/timeout.config.js.map +0 -1
  81. package/dist/conversation/base-conversation-history.provider.d.ts +0 -12
  82. package/dist/conversation/base-conversation-history.provider.js +0 -45
  83. package/dist/conversation/base-conversation-history.provider.js.map +0 -1
  84. package/dist/conversation/cli-conversation-history.provider.d.ts +0 -16
  85. package/dist/conversation/cli-conversation-history.provider.js +0 -111
  86. package/dist/conversation/cli-conversation-history.provider.js.map +0 -1
  87. package/dist/conversation/conversation-provider.factory.d.ts +0 -10
  88. package/dist/conversation/conversation-provider.factory.js +0 -50
  89. package/dist/conversation/conversation-provider.factory.js.map +0 -1
  90. package/dist/conversation/index.d.ts +0 -6
  91. package/dist/conversation/index.js +0 -27
  92. package/dist/conversation/index.js.map +0 -1
  93. package/dist/conversation/slack-conversation-history.provider.d.ts +0 -29
  94. package/dist/conversation/slack-conversation-history.provider.js +0 -302
  95. package/dist/conversation/slack-conversation-history.provider.js.map +0 -1
  96. package/dist/crewx.tool.d.ts +0 -359
  97. package/dist/crewx.tool.js +0 -2501
  98. package/dist/crewx.tool.js.map +0 -1
  99. package/dist/crewx.tool.spec.d.ts +0 -1
  100. package/dist/crewx.tool.spec.js +0 -158
  101. package/dist/crewx.tool.spec.js.map +0 -1
  102. package/dist/guards/bearer-auth.guard.d.ts +0 -7
  103. package/dist/guards/bearer-auth.guard.js +0 -44
  104. package/dist/guards/bearer-auth.guard.js.map +0 -1
  105. package/dist/health.controller.d.ts +0 -6
  106. package/dist/health.controller.js +0 -32
  107. package/dist/health.controller.js.map +0 -1
  108. package/dist/main.js.map +0 -1
  109. package/dist/mcp.controller.d.ts +0 -8
  110. package/dist/mcp.controller.js +0 -62
  111. package/dist/mcp.controller.js.map +0 -1
  112. package/dist/package.json +0 -3
  113. package/dist/providers/dynamic-provider.factory.d.ts +0 -15
  114. package/dist/providers/dynamic-provider.factory.js +0 -133
  115. package/dist/providers/dynamic-provider.factory.js.map +0 -1
  116. package/dist/providers/logger.adapter.d.ts +0 -6
  117. package/dist/providers/logger.adapter.js +0 -102
  118. package/dist/providers/logger.adapter.js.map +0 -1
  119. package/dist/services/agent-loader.service.d.ts +0 -35
  120. package/dist/services/agent-loader.service.js +0 -622
  121. package/dist/services/agent-loader.service.js.map +0 -1
  122. package/dist/services/auth.service.d.ts +0 -9
  123. package/dist/services/auth.service.js +0 -47
  124. package/dist/services/auth.service.js.map +0 -1
  125. package/dist/services/config-validator.service.d.ts +0 -29
  126. package/dist/services/config-validator.service.js +0 -483
  127. package/dist/services/config-validator.service.js.map +0 -1
  128. package/dist/services/config.service.d.ts +0 -45
  129. package/dist/services/config.service.js +0 -352
  130. package/dist/services/config.service.js.map +0 -1
  131. package/dist/services/document-loader.service.d.ts +0 -21
  132. package/dist/services/document-loader.service.js +0 -156
  133. package/dist/services/document-loader.service.js.map +0 -1
  134. package/dist/services/help.service.d.ts +0 -5
  135. package/dist/services/help.service.js +0 -139
  136. package/dist/services/help.service.js.map +0 -1
  137. package/dist/services/intelligent-compression.service.d.ts +0 -20
  138. package/dist/services/intelligent-compression.service.js +0 -179
  139. package/dist/services/intelligent-compression.service.js.map +0 -1
  140. package/dist/services/mcp-client.service.d.ts +0 -26
  141. package/dist/services/mcp-client.service.js +0 -81
  142. package/dist/services/mcp-client.service.js.map +0 -1
  143. package/dist/services/parallel-processing.service.d.ts +0 -108
  144. package/dist/services/parallel-processing.service.js +0 -333
  145. package/dist/services/parallel-processing.service.js.map +0 -1
  146. package/dist/services/provider-bridge.service.d.ts +0 -35
  147. package/dist/services/provider-bridge.service.js +0 -224
  148. package/dist/services/provider-bridge.service.js.map +0 -1
  149. package/dist/services/remote-agent.service.d.ts +0 -50
  150. package/dist/services/remote-agent.service.js +0 -171
  151. package/dist/services/remote-agent.service.js.map +0 -1
  152. package/dist/services/result-formatter.service.d.ts +0 -27
  153. package/dist/services/result-formatter.service.js +0 -126
  154. package/dist/services/result-formatter.service.js.map +0 -1
  155. package/dist/services/skill-loader.service.d.ts +0 -15
  156. package/dist/services/skill-loader.service.js +0 -278
  157. package/dist/services/skill-loader.service.js.map +0 -1
  158. package/dist/services/skill.service.d.ts +0 -67
  159. package/dist/services/skill.service.js +0 -670
  160. package/dist/services/skill.service.js.map +0 -1
  161. package/dist/services/skill.service.spec.d.ts +0 -1
  162. package/dist/services/skill.service.spec.js +0 -35
  163. package/dist/services/skill.service.spec.js.map +0 -1
  164. package/dist/services/task-management.service.d.ts +0 -65
  165. package/dist/services/task-management.service.js +0 -288
  166. package/dist/services/task-management.service.js.map +0 -1
  167. package/dist/services/template.service.d.ts +0 -61
  168. package/dist/services/template.service.js +0 -416
  169. package/dist/services/template.service.js.map +0 -1
  170. package/dist/services/tool-call.service.d.ts +0 -19
  171. package/dist/services/tool-call.service.js +0 -1061
  172. package/dist/services/tool-call.service.js.map +0 -1
  173. package/dist/services/tracing.service.d.ts +0 -200
  174. package/dist/services/tracing.service.js +0 -1290
  175. package/dist/services/tracing.service.js.map +0 -1
  176. package/dist/slack/formatters/message.formatter.d.ts +0 -32
  177. package/dist/slack/formatters/message.formatter.js +0 -352
  178. package/dist/slack/formatters/message.formatter.js.map +0 -1
  179. package/dist/slack/services/slack-file-download.service.d.ts +0 -58
  180. package/dist/slack/services/slack-file-download.service.js +0 -558
  181. package/dist/slack/services/slack-file-download.service.js.map +0 -1
  182. package/dist/slack/slack-bot.d.ts +0 -33
  183. package/dist/slack/slack-bot.js +0 -567
  184. package/dist/slack/slack-bot.js.map +0 -1
  185. package/dist/stderr.logger.d.ts +0 -8
  186. package/dist/stderr.logger.js +0 -26
  187. package/dist/stderr.logger.js.map +0 -1
  188. package/dist/types/usage.types.d.ts +0 -107
  189. package/dist/types/usage.types.js +0 -3
  190. package/dist/types/usage.types.js.map +0 -1
  191. package/dist/utils/config-utils.d.ts +0 -15
  192. package/dist/utils/config-utils.js +0 -69
  193. package/dist/utils/config-utils.js.map +0 -1
  194. package/dist/utils/extract-text.d.ts +0 -1
  195. package/dist/utils/extract-text.js +0 -15
  196. package/dist/utils/extract-text.js.map +0 -1
  197. package/dist/utils/mcp-installer.d.ts +0 -20
  198. package/dist/utils/mcp-installer.js +0 -199
  199. package/dist/utils/mcp-installer.js.map +0 -1
  200. package/dist/utils/project-hash.d.ts +0 -6
  201. package/dist/utils/project-hash.js +0 -70
  202. package/dist/utils/project-hash.js.map +0 -1
  203. package/dist/utils/simple-security.d.ts +0 -3
  204. package/dist/utils/simple-security.js +0 -20
  205. package/dist/utils/simple-security.js.map +0 -1
  206. package/dist/utils/stdin-utils.d.ts +0 -6
  207. package/dist/utils/stdin-utils.js +0 -109
  208. package/dist/utils/stdin-utils.js.map +0 -1
  209. package/dist/utils/template-processor.d.ts +0 -4
  210. package/dist/utils/template-processor.js +0 -266
  211. package/dist/utils/template-processor.js.map +0 -1
  212. package/dist/utils/terminal-message-formatter.d.ts +0 -23
  213. package/dist/utils/terminal-message-formatter.js +0 -136
  214. package/dist/utils/terminal-message-formatter.js.map +0 -1
  215. package/dist/version.d.ts +0 -1
  216. package/dist/version.js +0 -17
  217. package/dist/version.js.map +0 -1
  218. package/dist/workspace.service.d.ts +0 -44
  219. package/dist/workspace.service.js +0 -299
  220. package/dist/workspace.service.js.map +0 -1
@@ -1,278 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- var __metadata = (this && this.__metadata) || function (k, v) {
42
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
- };
44
- var SkillLoaderService_1;
45
- Object.defineProperty(exports, "__esModule", { value: true });
46
- exports.SkillLoaderService = void 0;
47
- const common_1 = require("@nestjs/common");
48
- const path_1 = require("path");
49
- const fs_1 = require("fs");
50
- const crewx_sdk_1 = require("@sowonai/crewx-sdk");
51
- const config_service_1 = require("./config.service");
52
- const BUILT_IN_MARKER = 'built-in';
53
- const DEFAULT_TRUSTED_SCOPES = ['@crewx'];
54
- let SkillLoaderService = SkillLoaderService_1 = class SkillLoaderService {
55
- constructor(configService) {
56
- this.configService = configService;
57
- this.logger = new common_1.Logger(SkillLoaderService_1.name);
58
- }
59
- getDiscoveryPaths() {
60
- const cwd = process.cwd();
61
- const paths = [
62
- (0, path_1.join)(cwd, '.crewx', 'skills'),
63
- (0, path_1.join)(cwd, 'skills'),
64
- ...this.configService.getSkillsPaths().map(p => (0, path_1.isAbsolute)(p) ? p : (0, path_1.join)(cwd, p)),
65
- ];
66
- const crewxModules = (0, path_1.join)(cwd, 'node_modules', '@crewx');
67
- if ((0, fs_1.existsSync)(crewxModules)) {
68
- paths.push(crewxModules);
69
- }
70
- return [...new Set(paths)];
71
- }
72
- isNodeModuleSkillTrusted(skillDir) {
73
- const nmIndex = skillDir.indexOf('node_modules');
74
- if (nmIndex === -1)
75
- return true;
76
- const relative = skillDir.slice(nmIndex + 'node_modules/'.length);
77
- const { scopes, packages } = this.configService.getSkillsTrust();
78
- if (relative.startsWith('@')) {
79
- const scope = relative.split('/')[0] ?? '';
80
- if (scopes.includes(scope))
81
- return true;
82
- }
83
- const packageName = relative.startsWith('@')
84
- ? relative.split('/').slice(0, 2).join('/')
85
- : relative.split('/')[0] ?? '';
86
- return packages.includes(packageName);
87
- }
88
- isBuiltIn(skill) {
89
- if (skill.metadata[BUILT_IN_MARKER] !== true)
90
- return false;
91
- const filePath = skill.filePath ?? '';
92
- const nmIdx = filePath.indexOf('node_modules/');
93
- if (nmIdx === -1)
94
- return false;
95
- const relative = filePath.slice(nmIdx + 'node_modules/'.length);
96
- return relative.startsWith('@crewx/');
97
- }
98
- isCrewxScopePath(filePath) {
99
- const nmIdx = filePath.indexOf('node_modules/');
100
- if (nmIdx === -1)
101
- return false;
102
- const relative = filePath.slice(nmIdx + 'node_modules/'.length);
103
- return relative.startsWith('@crewx/');
104
- }
105
- addSkillWithPriority(skills, seen, skill) {
106
- const name = skill.metadata.name;
107
- const existingIdx = seen.get(name);
108
- if (existingIdx === undefined) {
109
- seen.set(name, skills.length);
110
- skills.push(skill);
111
- }
112
- else {
113
- const existing = skills[existingIdx];
114
- if (existing &&
115
- this.isCrewxScopePath(skill.filePath ?? '') &&
116
- !this.isCrewxScopePath(existing.filePath ?? '')) {
117
- skills[existingIdx] = skill;
118
- }
119
- }
120
- }
121
- async loadAgentSkills(skillsConfig) {
122
- const allAvailable = await this.listAvailableSkills();
123
- const builtInSkills = allAvailable.filter(s => this.isBuiltIn(s));
124
- const builtInNames = new Set(builtInSkills.map(s => s.metadata.name));
125
- const regularSkills = allAvailable.filter(s => !this.isBuiltIn(s) && !builtInNames.has(s.metadata.name));
126
- if (builtInSkills.length > 0) {
127
- this.logger.debug(`Found ${builtInSkills.length} built-in skill(s): ${builtInSkills.map(s => s.metadata.name).join(', ')}`);
128
- }
129
- if (!skillsConfig) {
130
- return builtInSkills;
131
- }
132
- const { include, exclude, autoload = true } = skillsConfig;
133
- let skills = [];
134
- const discoveryPaths = this.getDiscoveryPaths();
135
- if (include?.length) {
136
- for (const skillName of include) {
137
- if (builtInNames.has(skillName))
138
- continue;
139
- try {
140
- const skill = await this.loadSkill(skillName);
141
- if (skill) {
142
- skills.push(skill);
143
- }
144
- }
145
- catch (error) {
146
- this.logger.warn(`Failed to load skill "${skillName}": ${error instanceof Error ? error.message : error}`);
147
- }
148
- }
149
- }
150
- else if (autoload !== false) {
151
- skills = regularSkills;
152
- this.logger.debug(`Autoloaded ${skills.length} skills from paths: ${discoveryPaths.join(', ')}`);
153
- }
154
- const combined = [...builtInSkills, ...skills];
155
- if (exclude?.length) {
156
- const filtered = combined.filter(skill => this.isBuiltIn(skill) || !exclude.includes(skill.metadata.name));
157
- this.logger.debug(`Excluded ${combined.length - filtered.length} skills: ${exclude.join(', ')}`);
158
- return filtered;
159
- }
160
- return combined;
161
- }
162
- async loadSkill(skillName) {
163
- const discoveryPaths = this.getDiscoveryPaths();
164
- for (const basePath of discoveryPaths) {
165
- const skillPath = (0, path_1.join)(basePath, skillName, 'SKILL.md');
166
- if ((0, fs_1.existsSync)(skillPath)) {
167
- const skillDir = (0, path_1.join)(basePath, skillName);
168
- if (!this.isNodeModuleSkillTrusted(skillDir)) {
169
- this.logger.warn(`Untrusted skill blocked: ${skillName}. Add to skills.trust.packages in crewx.yaml`);
170
- return null;
171
- }
172
- try {
173
- const skill = (0, crewx_sdk_1.parseSkillManifestFromFile)(skillPath, {
174
- loadContent: false,
175
- validationMode: 'lenient'
176
- });
177
- this.logger.debug(`Loaded skill "${skillName}" from ${skillPath}`);
178
- return skill;
179
- }
180
- catch (error) {
181
- this.logger.warn(`Failed to parse skill at ${skillPath}: ${error instanceof Error ? error.message : error}`);
182
- }
183
- }
184
- }
185
- this.logger.warn(`Skill "${skillName}" not found in paths: ${discoveryPaths.join(', ')}`);
186
- return null;
187
- }
188
- async listAvailableSkills() {
189
- const skills = [];
190
- const seen = new Map();
191
- const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
192
- const discoveryPaths = this.getDiscoveryPaths();
193
- for (const basePath of discoveryPaths) {
194
- if (!(0, fs_1.existsSync)(basePath)) {
195
- continue;
196
- }
197
- try {
198
- const entries = await fs.readdir(basePath, { withFileTypes: true });
199
- for (const entry of entries) {
200
- if (!entry.isDirectory() && !entry.isSymbolicLink())
201
- continue;
202
- if (entry.name.startsWith('@')) {
203
- const scopeDir = (0, path_1.join)(basePath, entry.name);
204
- try {
205
- const scopeEntries = await fs.readdir(scopeDir, { withFileTypes: true });
206
- for (const scopeEntry of scopeEntries) {
207
- if (!scopeEntry.isDirectory() && !scopeEntry.isSymbolicLink())
208
- continue;
209
- const pkgDir = (0, path_1.join)(scopeDir, scopeEntry.name);
210
- const candidates = [
211
- (0, path_1.join)(pkgDir, 'SKILL.md'),
212
- (0, path_1.join)(pkgDir, 'skill', 'SKILL.md'),
213
- ];
214
- for (const skillPath of candidates) {
215
- if (!(0, fs_1.existsSync)(skillPath))
216
- continue;
217
- if (!this.isNodeModuleSkillTrusted(pkgDir)) {
218
- this.logger.warn(`Untrusted skill blocked: ${entry.name}/${scopeEntry.name}. Add to skills.trust.packages in crewx.yaml`);
219
- break;
220
- }
221
- try {
222
- const skill = (0, crewx_sdk_1.parseSkillManifestFromFile)(skillPath, {
223
- loadContent: false,
224
- validationMode: 'lenient'
225
- });
226
- this.addSkillWithPriority(skills, seen, skill);
227
- }
228
- catch (error) {
229
- this.logger.debug(`Skipping invalid skill at ${skillPath}: ${error instanceof Error ? error.message : error}`);
230
- }
231
- break;
232
- }
233
- }
234
- }
235
- catch (error) {
236
- this.logger.debug(`Failed to scan scoped directory ${scopeDir}: ${error instanceof Error ? error.message : error}`);
237
- }
238
- continue;
239
- }
240
- const skillDir = (0, path_1.join)(basePath, entry.name);
241
- const candidates = [
242
- (0, path_1.join)(skillDir, 'SKILL.md'),
243
- (0, path_1.join)(skillDir, 'skill', 'SKILL.md'),
244
- ];
245
- for (const skillPath of candidates) {
246
- if (!(0, fs_1.existsSync)(skillPath))
247
- continue;
248
- if (!this.isNodeModuleSkillTrusted(skillDir)) {
249
- this.logger.warn(`Untrusted skill blocked: ${entry.name}. Add to skills.trust.packages in crewx.yaml`);
250
- break;
251
- }
252
- try {
253
- const skill = (0, crewx_sdk_1.parseSkillManifestFromFile)(skillPath, {
254
- loadContent: false,
255
- validationMode: 'lenient'
256
- });
257
- this.addSkillWithPriority(skills, seen, skill);
258
- }
259
- catch (error) {
260
- this.logger.debug(`Skipping invalid skill at ${skillPath}: ${error instanceof Error ? error.message : error}`);
261
- }
262
- break;
263
- }
264
- }
265
- }
266
- catch (error) {
267
- this.logger.warn(`Failed to scan skills directory ${basePath}: ${error instanceof Error ? error.message : error}`);
268
- }
269
- }
270
- return skills;
271
- }
272
- };
273
- exports.SkillLoaderService = SkillLoaderService;
274
- exports.SkillLoaderService = SkillLoaderService = SkillLoaderService_1 = __decorate([
275
- (0, common_1.Injectable)(),
276
- __metadata("design:paramtypes", [config_service_1.ConfigService])
277
- ], SkillLoaderService);
278
- //# sourceMappingURL=skill-loader.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-loader.service.js","sourceRoot":"","sources":["../../src/services/skill-loader.service.ts"],"names":[],"mappings":"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"}
@@ -1,67 +0,0 @@
1
- export interface SkillMetadata {
2
- name: string;
3
- description: string;
4
- version: string;
5
- entryPoint: string | null;
6
- path: string;
7
- source?: 'custom' | 'installed' | 'template';
8
- }
9
- export interface SkillRegistrySource {
10
- id: string;
11
- name: string;
12
- url: string;
13
- verified?: boolean;
14
- default?: boolean;
15
- addedAt?: string;
16
- }
17
- export type SkillSource = {
18
- type: 'npm';
19
- package: string;
20
- } | {
21
- type: 'template';
22
- name: string;
23
- } | {
24
- type: 'github';
25
- repo: string;
26
- version?: string;
27
- };
28
- export declare class SkillService {
29
- private readonly logger;
30
- private skillsDirs;
31
- private installedSkillsDir;
32
- private crewxDir;
33
- private tracingService;
34
- constructor();
35
- private initTracing;
36
- private loadCrewxConfig;
37
- getRegistries(): SkillRegistrySource[];
38
- private ensureCrewxDir;
39
- private ensureInstalledSkillsDir;
40
- parseSource(source: string): SkillSource | null;
41
- discover(): Promise<SkillMetadata[]>;
42
- getSkill(name: string): Promise<SkillMetadata | null>;
43
- private detectEntryPoint;
44
- execute(name: string, args: string[]): Promise<{
45
- code: number;
46
- output: string;
47
- }>;
48
- executeShell(name: string, commandString: string): Promise<{
49
- code: number;
50
- }>;
51
- add(sourceStr: string): Promise<{
52
- success: boolean;
53
- name: string;
54
- message: string;
55
- }>;
56
- private validatePackageName;
57
- private addFromNpm;
58
- private findInstalledPackage;
59
- private copyDir;
60
- private addFromTemplate;
61
- private validateSkillName;
62
- remove(name: string): Promise<{
63
- success: boolean;
64
- message: string;
65
- }>;
66
- getAvailableTemplates(): string[];
67
- }