@crewx/cli 0.8.0-rc.66 → 0.8.0-rc.82

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 (281) hide show
  1. package/bin/crewx +2 -0
  2. package/dist/bootstrap/crewx-cli.d.ts +11 -0
  3. package/dist/bootstrap/crewx-cli.js +31 -0
  4. package/dist/builtin.d.ts +15 -0
  5. package/dist/{cli/builtin.handler.js → builtin.js} +21 -7
  6. package/dist/commands/agent.d.ts +12 -0
  7. package/dist/commands/agent.js +246 -0
  8. package/dist/commands/doctor.d.ts +12 -0
  9. package/dist/commands/doctor.js +190 -0
  10. package/dist/commands/execute.d.ts +21 -0
  11. package/dist/commands/execute.js +117 -0
  12. package/dist/commands/hook/install.d.ts +21 -0
  13. package/dist/commands/hook/install.js +175 -0
  14. package/dist/commands/hook/paths.d.ts +19 -0
  15. package/dist/commands/hook/paths.js +94 -0
  16. package/dist/commands/hook/status.d.ts +7 -0
  17. package/dist/commands/hook/status.js +86 -0
  18. package/dist/commands/hook/uninstall.d.ts +8 -0
  19. package/dist/commands/hook/uninstall.js +71 -0
  20. package/dist/commands/hook-dispatch.d.ts +15 -0
  21. package/dist/commands/hook-dispatch.js +180 -0
  22. package/dist/commands/init.d.ts +24 -0
  23. package/dist/commands/init.js +133 -0
  24. package/dist/commands/kill.d.ts +12 -0
  25. package/dist/commands/kill.js +49 -0
  26. package/dist/commands/log.d.ts +13 -0
  27. package/dist/commands/log.js +97 -0
  28. package/dist/commands/parse-agent-message.d.ts +31 -0
  29. package/dist/commands/parse-agent-message.js +52 -0
  30. package/dist/commands/parse-common-flags.d.ts +36 -0
  31. package/dist/commands/parse-common-flags.js +105 -0
  32. package/dist/commands/ps.d.ts +12 -0
  33. package/dist/commands/ps.js +71 -0
  34. package/dist/commands/query.d.ts +21 -0
  35. package/dist/commands/query.js +117 -0
  36. package/dist/commands/result.d.ts +13 -0
  37. package/dist/commands/result.js +73 -0
  38. package/dist/commands/slack.d.ts +12 -0
  39. package/dist/commands/slack.js +559 -0
  40. package/dist/commands/task-db.d.ts +33 -0
  41. package/dist/commands/task-db.js +107 -0
  42. package/dist/examples/deny-secrets-plugin.d.ts +22 -0
  43. package/dist/examples/deny-secrets-plugin.js +40 -0
  44. package/dist/index.d.ts +1 -0
  45. package/dist/index.js +5 -0
  46. package/dist/logging.d.ts +21 -0
  47. package/dist/logging.js +86 -0
  48. package/dist/main.d.ts +10 -0
  49. package/dist/main.js +246 -256
  50. package/dist/plugins/examples/echo-hook.d.ts +24 -0
  51. package/dist/plugins/examples/echo-hook.js +60 -0
  52. package/dist/plugins/examples/verify-echo-hook.d.ts +8 -0
  53. package/dist/plugins/examples/verify-echo-hook.js +47 -0
  54. package/dist/plugins/sqlite-tracing.d.ts +13 -0
  55. package/dist/plugins/sqlite-tracing.js +20 -0
  56. package/dist/register-builtin-tools.d.ts +5 -0
  57. package/dist/register-builtin-tools.js +9 -0
  58. package/dist/slack/file-download.d.ts +17 -0
  59. package/dist/slack/file-download.js +134 -0
  60. package/dist/slack/markdown.d.ts +5 -0
  61. package/dist/slack/markdown.js +33 -0
  62. package/dist/utils/env-defaults.d.ts +5 -0
  63. package/dist/utils/env-defaults.js +10 -0
  64. package/dist/utils/version.d.ts +1 -0
  65. package/dist/utils/version.js +28 -0
  66. package/package.json +32 -115
  67. package/README.md +0 -663
  68. package/dist/ai-provider.service.d.ts +0 -36
  69. package/dist/ai-provider.service.js +0 -315
  70. package/dist/ai-provider.service.js.map +0 -1
  71. package/dist/ai.service.d.ts +0 -17
  72. package/dist/ai.service.js +0 -51
  73. package/dist/ai.service.js.map +0 -1
  74. package/dist/app.module.d.ts +0 -5
  75. package/dist/app.module.js +0 -165
  76. package/dist/app.module.js.map +0 -1
  77. package/dist/cli/agent.handler.d.ts +0 -2
  78. package/dist/cli/agent.handler.js +0 -186
  79. package/dist/cli/agent.handler.js.map +0 -1
  80. package/dist/cli/builtin.handler.d.ts +0 -3
  81. package/dist/cli/builtin.handler.js.map +0 -1
  82. package/dist/cli/chat.handler.d.ts +0 -20
  83. package/dist/cli/chat.handler.js +0 -446
  84. package/dist/cli/chat.handler.js.map +0 -1
  85. package/dist/cli/cli.handler.d.ts +0 -4
  86. package/dist/cli/cli.handler.js +0 -119
  87. package/dist/cli/cli.handler.js.map +0 -1
  88. package/dist/cli/doctor.handler.d.ts +0 -38
  89. package/dist/cli/doctor.handler.js +0 -495
  90. package/dist/cli/doctor.handler.js.map +0 -1
  91. package/dist/cli/execute.handler.d.ts +0 -2
  92. package/dist/cli/execute.handler.js +0 -376
  93. package/dist/cli/execute.handler.js.map +0 -1
  94. package/dist/cli/help.handler.d.ts +0 -2
  95. package/dist/cli/help.handler.js +0 -10
  96. package/dist/cli/help.handler.js.map +0 -1
  97. package/dist/cli/init.handler.d.ts +0 -26
  98. package/dist/cli/init.handler.js +0 -450
  99. package/dist/cli/init.handler.js.map +0 -1
  100. package/dist/cli/log.handler.d.ts +0 -2
  101. package/dist/cli/log.handler.js +0 -69
  102. package/dist/cli/log.handler.js.map +0 -1
  103. package/dist/cli/mcp.handler.d.ts +0 -3
  104. package/dist/cli/mcp.handler.js +0 -121
  105. package/dist/cli/mcp.handler.js.map +0 -1
  106. package/dist/cli/query.handler.d.ts +0 -2
  107. package/dist/cli/query.handler.js +0 -392
  108. package/dist/cli/query.handler.js.map +0 -1
  109. package/dist/cli/skill.handler.d.ts +0 -2
  110. package/dist/cli/skill.handler.js +0 -252
  111. package/dist/cli/skill.handler.js.map +0 -1
  112. package/dist/cli/slack-files.handler.d.ts +0 -2
  113. package/dist/cli/slack-files.handler.js +0 -291
  114. package/dist/cli/slack-files.handler.js.map +0 -1
  115. package/dist/cli/template.handler.d.ts +0 -2
  116. package/dist/cli/template.handler.js +0 -188
  117. package/dist/cli/template.handler.js.map +0 -1
  118. package/dist/cli/templates.handler.d.ts +0 -2
  119. package/dist/cli/templates.handler.js +0 -100
  120. package/dist/cli/templates.handler.js.map +0 -1
  121. package/dist/cli-options.d.ts +0 -40
  122. package/dist/cli-options.js +0 -371
  123. package/dist/cli-options.js.map +0 -1
  124. package/dist/config/timeout.config.d.ts +0 -14
  125. package/dist/config/timeout.config.js +0 -34
  126. package/dist/config/timeout.config.js.map +0 -1
  127. package/dist/conversation/base-conversation-history.provider.d.ts +0 -12
  128. package/dist/conversation/base-conversation-history.provider.js +0 -45
  129. package/dist/conversation/base-conversation-history.provider.js.map +0 -1
  130. package/dist/conversation/cli-box-reader.adapter.d.ts +0 -6
  131. package/dist/conversation/cli-box-reader.adapter.js +0 -10
  132. package/dist/conversation/cli-box-reader.adapter.js.map +0 -1
  133. package/dist/conversation/cli-conversation-history.provider.d.ts +0 -16
  134. package/dist/conversation/cli-conversation-history.provider.js +0 -112
  135. package/dist/conversation/cli-conversation-history.provider.js.map +0 -1
  136. package/dist/conversation/cli-task-reader.adapter.d.ts +0 -6
  137. package/dist/conversation/cli-task-reader.adapter.js +0 -25
  138. package/dist/conversation/cli-task-reader.adapter.js.map +0 -1
  139. package/dist/conversation/conversation-provider.factory.d.ts +0 -10
  140. package/dist/conversation/conversation-provider.factory.js +0 -50
  141. package/dist/conversation/conversation-provider.factory.js.map +0 -1
  142. package/dist/conversation/index.d.ts +0 -8
  143. package/dist/conversation/index.js +0 -29
  144. package/dist/conversation/index.js.map +0 -1
  145. package/dist/conversation/slack-conversation-history.provider.d.ts +0 -29
  146. package/dist/conversation/slack-conversation-history.provider.js +0 -302
  147. package/dist/conversation/slack-conversation-history.provider.js.map +0 -1
  148. package/dist/crewx.tool.d.ts +0 -360
  149. package/dist/crewx.tool.js +0 -2531
  150. package/dist/crewx.tool.js.map +0 -1
  151. package/dist/crewx.tool.spec.d.ts +0 -1
  152. package/dist/crewx.tool.spec.js +0 -222
  153. package/dist/crewx.tool.spec.js.map +0 -1
  154. package/dist/guards/bearer-auth.guard.d.ts +0 -7
  155. package/dist/guards/bearer-auth.guard.js +0 -44
  156. package/dist/guards/bearer-auth.guard.js.map +0 -1
  157. package/dist/health.controller.d.ts +0 -6
  158. package/dist/health.controller.js +0 -32
  159. package/dist/health.controller.js.map +0 -1
  160. package/dist/main.js.map +0 -1
  161. package/dist/mcp.controller.d.ts +0 -8
  162. package/dist/mcp.controller.js +0 -62
  163. package/dist/mcp.controller.js.map +0 -1
  164. package/dist/package.json +0 -3
  165. package/dist/providers/dynamic-provider.factory.d.ts +0 -17
  166. package/dist/providers/dynamic-provider.factory.js +0 -138
  167. package/dist/providers/dynamic-provider.factory.js.map +0 -1
  168. package/dist/providers/logger.adapter.d.ts +0 -7
  169. package/dist/providers/logger.adapter.js +0 -107
  170. package/dist/providers/logger.adapter.js.map +0 -1
  171. package/dist/services/agent-loader.service.d.ts +0 -35
  172. package/dist/services/agent-loader.service.js +0 -623
  173. package/dist/services/agent-loader.service.js.map +0 -1
  174. package/dist/services/auth.service.d.ts +0 -9
  175. package/dist/services/auth.service.js +0 -47
  176. package/dist/services/auth.service.js.map +0 -1
  177. package/dist/services/config-validator.service.d.ts +0 -29
  178. package/dist/services/config-validator.service.js +0 -483
  179. package/dist/services/config-validator.service.js.map +0 -1
  180. package/dist/services/config.service.d.ts +0 -45
  181. package/dist/services/config.service.js +0 -352
  182. package/dist/services/config.service.js.map +0 -1
  183. package/dist/services/document-loader.service.d.ts +0 -26
  184. package/dist/services/document-loader.service.js +0 -186
  185. package/dist/services/document-loader.service.js.map +0 -1
  186. package/dist/services/help.service.d.ts +0 -5
  187. package/dist/services/help.service.js +0 -139
  188. package/dist/services/help.service.js.map +0 -1
  189. package/dist/services/intelligent-compression.service.d.ts +0 -20
  190. package/dist/services/intelligent-compression.service.js +0 -179
  191. package/dist/services/intelligent-compression.service.js.map +0 -1
  192. package/dist/services/mcp-client.service.d.ts +0 -26
  193. package/dist/services/mcp-client.service.js +0 -81
  194. package/dist/services/mcp-client.service.js.map +0 -1
  195. package/dist/services/parallel-processing.service.d.ts +0 -108
  196. package/dist/services/parallel-processing.service.js +0 -333
  197. package/dist/services/parallel-processing.service.js.map +0 -1
  198. package/dist/services/provider-bridge.service.d.ts +0 -35
  199. package/dist/services/provider-bridge.service.js +0 -224
  200. package/dist/services/provider-bridge.service.js.map +0 -1
  201. package/dist/services/remote-agent.service.d.ts +0 -50
  202. package/dist/services/remote-agent.service.js +0 -171
  203. package/dist/services/remote-agent.service.js.map +0 -1
  204. package/dist/services/result-formatter.service.d.ts +0 -27
  205. package/dist/services/result-formatter.service.js +0 -126
  206. package/dist/services/result-formatter.service.js.map +0 -1
  207. package/dist/services/skill-loader.service.d.ts +0 -15
  208. package/dist/services/skill-loader.service.js +0 -278
  209. package/dist/services/skill-loader.service.js.map +0 -1
  210. package/dist/services/skill.service.d.ts +0 -69
  211. package/dist/services/skill.service.js +0 -779
  212. package/dist/services/skill.service.js.map +0 -1
  213. package/dist/services/skill.service.spec.d.ts +0 -1
  214. package/dist/services/skill.service.spec.js +0 -168
  215. package/dist/services/skill.service.spec.js.map +0 -1
  216. package/dist/services/task-management.service.d.ts +0 -71
  217. package/dist/services/task-management.service.js +0 -324
  218. package/dist/services/task-management.service.js.map +0 -1
  219. package/dist/services/template.service.d.ts +0 -61
  220. package/dist/services/template.service.js +0 -416
  221. package/dist/services/template.service.js.map +0 -1
  222. package/dist/services/tool-call.service.d.ts +0 -16
  223. package/dist/services/tool-call.service.js +0 -302
  224. package/dist/services/tool-call.service.js.map +0 -1
  225. package/dist/services/tracing.service.d.ts +0 -197
  226. package/dist/services/tracing.service.js +0 -1267
  227. package/dist/services/tracing.service.js.map +0 -1
  228. package/dist/slack/formatters/message.formatter.d.ts +0 -43
  229. package/dist/slack/formatters/message.formatter.js +0 -505
  230. package/dist/slack/formatters/message.formatter.js.map +0 -1
  231. package/dist/slack/services/slack-file-download.service.d.ts +0 -58
  232. package/dist/slack/services/slack-file-download.service.js +0 -558
  233. package/dist/slack/services/slack-file-download.service.js.map +0 -1
  234. package/dist/slack/slack-bot.d.ts +0 -33
  235. package/dist/slack/slack-bot.js +0 -568
  236. package/dist/slack/slack-bot.js.map +0 -1
  237. package/dist/stderr.logger.d.ts +0 -8
  238. package/dist/stderr.logger.js +0 -26
  239. package/dist/stderr.logger.js.map +0 -1
  240. package/dist/types/usage.types.d.ts +0 -107
  241. package/dist/types/usage.types.js +0 -3
  242. package/dist/types/usage.types.js.map +0 -1
  243. package/dist/utils/config-utils.d.ts +0 -15
  244. package/dist/utils/config-utils.js +0 -69
  245. package/dist/utils/config-utils.js.map +0 -1
  246. package/dist/utils/extract-text.d.ts +0 -1
  247. package/dist/utils/extract-text.js +0 -15
  248. package/dist/utils/extract-text.js.map +0 -1
  249. package/dist/utils/mcp-installer.d.ts +0 -20
  250. package/dist/utils/mcp-installer.js +0 -199
  251. package/dist/utils/mcp-installer.js.map +0 -1
  252. package/dist/utils/project-hash.d.ts +0 -6
  253. package/dist/utils/project-hash.js +0 -70
  254. package/dist/utils/project-hash.js.map +0 -1
  255. package/dist/utils/simple-security.d.ts +0 -3
  256. package/dist/utils/simple-security.js +0 -20
  257. package/dist/utils/simple-security.js.map +0 -1
  258. package/dist/utils/stdin-utils.d.ts +0 -6
  259. package/dist/utils/stdin-utils.js +0 -109
  260. package/dist/utils/stdin-utils.js.map +0 -1
  261. package/dist/utils/template-processor.d.ts +0 -27
  262. package/dist/utils/template-processor.js +0 -395
  263. package/dist/utils/template-processor.js.map +0 -1
  264. package/dist/utils/terminal-message-formatter.d.ts +0 -23
  265. package/dist/utils/terminal-message-formatter.js +0 -136
  266. package/dist/utils/terminal-message-formatter.js.map +0 -1
  267. package/dist/version.d.ts +0 -1
  268. package/dist/version.js +0 -17
  269. package/dist/version.js.map +0 -1
  270. package/dist/workspace.service.d.ts +0 -44
  271. package/dist/workspace.service.js +0 -299
  272. package/dist/workspace.service.js.map +0 -1
  273. package/scripts/backfill-tokens.js +0 -218
  274. package/scripts/postbuild-cli.mjs +0 -88
  275. package/scripts/postinstall-cli.mjs +0 -30
  276. package/templates/agents/default.yaml +0 -490
  277. package/templates/agents/minimal.yaml +0 -16
  278. package/templates/documents/conversation-history-default.hbs +0 -17
  279. package/templates/documents/crewx-manual.md +0 -2278
  280. package/templates/documents/crewx-quick-guide.md +0 -147
  281. package/templates/versions.json +0 -19
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill.service.js","sourceRoot":"","sources":["../../src/services/skill.service.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,168 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const vitest_1 = require("vitest");
7
- const fs_1 = __importDefault(require("fs"));
8
- const path_1 = __importDefault(require("path"));
9
- vitest_1.vi.mock('@nestjs/common', () => ({
10
- Injectable: () => (target) => target,
11
- Logger: class {
12
- constructor() {
13
- this.log = vitest_1.vi.fn();
14
- this.error = vitest_1.vi.fn();
15
- this.warn = vitest_1.vi.fn();
16
- this.debug = vitest_1.vi.fn();
17
- }
18
- },
19
- }));
20
- vitest_1.vi.mock('@crewx/sdk', () => ({
21
- parseSkillManifestFromFile: vitest_1.vi.fn((filePath, _opts) => {
22
- const content = fs_1.default.readFileSync(filePath, 'utf-8');
23
- const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
24
- const metadata = {};
25
- if (match) {
26
- for (const line of (match[1] ?? '').split('\n')) {
27
- const idx = line.indexOf(':');
28
- if (idx === -1)
29
- continue;
30
- const key = line.slice(0, idx).trim();
31
- let val = line.slice(idx + 1).trim();
32
- if (val === 'true')
33
- val = true;
34
- if (val === 'false')
35
- val = false;
36
- metadata[key] = val;
37
- }
38
- }
39
- return { metadata, filePath };
40
- }),
41
- }));
42
- vitest_1.vi.mock('./tracing.service', () => ({
43
- TracingService: class {
44
- onModuleInit() { }
45
- isEnabled() { return false; }
46
- createSpan() { return null; }
47
- completeSpan() { }
48
- failSpan() { }
49
- },
50
- SpanKind: { INTERNAL: 'INTERNAL' },
51
- }));
52
- const skill_service_1 = require("./skill.service");
53
- const getService = () => {
54
- return new skill_service_1.SkillService();
55
- };
56
- (0, vitest_1.describe)('SkillService Security', () => {
57
- (0, vitest_1.describe)('validatePackageName', () => {
58
- (0, vitest_1.it)('should reject package names starting with hyphen', () => {
59
- const service = getService();
60
- (0, vitest_1.expect)(service.validatePackageName('-g')).toBe(false);
61
- (0, vitest_1.expect)(service.validatePackageName('--unsafe')).toBe(false);
62
- });
63
- (0, vitest_1.it)('should accept valid package names', () => {
64
- const service = getService();
65
- (0, vitest_1.expect)(service.validatePackageName('safe-package')).toBe(true);
66
- (0, vitest_1.expect)(service.validatePackageName('pkg-1')).toBe(true);
67
- (0, vitest_1.expect)(service.validatePackageName('@scope/package')).toBe(true);
68
- });
69
- });
70
- (0, vitest_1.describe)('validateSkillName', () => {
71
- (0, vitest_1.it)('should reject dangerous path components', () => {
72
- const service = getService();
73
- (0, vitest_1.expect)(service.validateSkillName('.')).toBe(false);
74
- (0, vitest_1.expect)(service.validateSkillName('..')).toBe(false);
75
- });
76
- (0, vitest_1.it)('should accept valid flat skill names', () => {
77
- const service = getService();
78
- (0, vitest_1.expect)(service.validateSkillName('my-skill')).toBe(true);
79
- (0, vitest_1.expect)(service.validateSkillName('skill_123')).toBe(true);
80
- });
81
- (0, vitest_1.it)('should accept scoped skill names (scope/name)', () => {
82
- const service = getService();
83
- (0, vitest_1.expect)(service.validateSkillName('crewx/memory')).toBe(true);
84
- (0, vitest_1.expect)(service.validateSkillName('crewx/doc')).toBe(true);
85
- (0, vitest_1.expect)(service.validateSkillName('crewx/search')).toBe(true);
86
- (0, vitest_1.expect)(service.validateSkillName('my-org/my-skill')).toBe(true);
87
- });
88
- (0, vitest_1.it)('should reject path traversal with scoped names', () => {
89
- const service = getService();
90
- (0, vitest_1.expect)(service.validateSkillName('../etc/passwd')).toBe(false);
91
- (0, vitest_1.expect)(service.validateSkillName('../../etc')).toBe(false);
92
- (0, vitest_1.expect)(service.validateSkillName('foo/../../bar')).toBe(false);
93
- (0, vitest_1.expect)(service.validateSkillName('foo\\bar')).toBe(false);
94
- });
95
- (0, vitest_1.it)('should reject multi-slash paths', () => {
96
- const service = getService();
97
- (0, vitest_1.expect)(service.validateSkillName('a/b/c')).toBe(false);
98
- (0, vitest_1.expect)(service.validateSkillName('/absolute')).toBe(false);
99
- (0, vitest_1.expect)(service.validateSkillName('trailing/')).toBe(false);
100
- });
101
- (0, vitest_1.it)('should reject names starting with non-alpha characters in scoped format', () => {
102
- const service = getService();
103
- (0, vitest_1.expect)(service.validateSkillName('-scope/name')).toBe(false);
104
- (0, vitest_1.expect)(service.validateSkillName('scope/-name')).toBe(false);
105
- (0, vitest_1.expect)(service.validateSkillName('0scope/name')).toBe(false);
106
- });
107
- });
108
- });
109
- (0, vitest_1.describe)('SkillService Discovery', () => {
110
- const workspaceRoot = path_1.default.resolve(__dirname, '../../../..');
111
- let cwdSpy;
112
- (0, vitest_1.beforeEach)(() => {
113
- cwdSpy = vitest_1.vi.spyOn(process, 'cwd').mockReturnValue(workspaceRoot);
114
- });
115
- (0, vitest_1.afterEach)(() => {
116
- cwdSpy.mockRestore();
117
- });
118
- (0, vitest_1.describe)('discover', () => {
119
- (0, vitest_1.it)('should include node_modules/@crewx skills with source:built-in', async () => {
120
- const service = getService();
121
- const skills = await service.discover();
122
- const builtInSkills = skills.filter((s) => s.source === 'built-in');
123
- (0, vitest_1.expect)(builtInSkills.length).toBeGreaterThan(0);
124
- const memory = skills.find((s) => s.name === 'crewx/memory');
125
- (0, vitest_1.expect)(memory).toBeDefined();
126
- (0, vitest_1.expect)(memory?.source).toBe('built-in');
127
- });
128
- (0, vitest_1.it)('should preserve custom and installed skills', async () => {
129
- const service = getService();
130
- const skills = await service.discover();
131
- const customSkills = skills.filter((s) => s.source === 'custom');
132
- (0, vitest_1.expect)(customSkills.length).toBeGreaterThanOrEqual(0);
133
- });
134
- });
135
- (0, vitest_1.describe)('getSkill shorthand fallback', () => {
136
- (0, vitest_1.it)('should resolve shorthand "memory" to "crewx/memory" if no local skill named "memory"', async () => {
137
- const service = getService();
138
- const skill = await service.getSkill('memory');
139
- (0, vitest_1.expect)(skill).not.toBeNull();
140
- (0, vitest_1.expect)(skill.name).toBe('crewx/memory');
141
- (0, vitest_1.expect)(skill.source).toBe('built-in');
142
- });
143
- (0, vitest_1.it)('should resolve scoped name "crewx/memory" directly', async () => {
144
- const service = getService();
145
- const skill = await service.getSkill('crewx/memory');
146
- (0, vitest_1.expect)(skill).toBeDefined();
147
- (0, vitest_1.expect)(skill?.name).toBe('crewx/memory');
148
- (0, vitest_1.expect)(skill?.source).toBe('built-in');
149
- });
150
- });
151
- });
152
- (0, vitest_1.describe)('SkillService Remove Guard', () => {
153
- const workspaceRoot = path_1.default.resolve(__dirname, '../../../..');
154
- let cwdSpy;
155
- (0, vitest_1.beforeEach)(() => {
156
- cwdSpy = vitest_1.vi.spyOn(process, 'cwd').mockReturnValue(workspaceRoot);
157
- });
158
- (0, vitest_1.afterEach)(() => {
159
- cwdSpy.mockRestore();
160
- });
161
- (0, vitest_1.it)('should block removal of built-in skills', async () => {
162
- const service = getService();
163
- const result = await service.remove('crewx/memory');
164
- (0, vitest_1.expect)(result.success).toBe(false);
165
- (0, vitest_1.expect)(result.message).toContain('Built-in');
166
- });
167
- });
168
- //# sourceMappingURL=skill.service.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill.service.spec.js","sourceRoot":"","sources":["../../src/services/skill.service.spec.ts"],"names":[],"mappings":"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"}
@@ -1,71 +0,0 @@
1
- import { TracingService } from './tracing.service';
2
- export interface TaskLog {
3
- id: string;
4
- type: 'query' | 'execute' | 'init' | 'doctor';
5
- agentId?: string;
6
- provider?: string;
7
- startTime: Date;
8
- endTime?: Date;
9
- status: 'running' | 'completed' | 'failed';
10
- duration?: number;
11
- memoryUsage?: {
12
- start: number;
13
- end: number;
14
- };
15
- prompt?: string;
16
- command?: string;
17
- options?: any;
18
- result?: any;
19
- logs: Array<{
20
- timestamp: Date;
21
- level: 'info' | 'warn' | 'error';
22
- message: string;
23
- }>;
24
- }
25
- export interface TaskCreationOptions {
26
- type: 'query' | 'execute' | 'init' | 'doctor';
27
- provider?: string;
28
- prompt?: string;
29
- command?: string;
30
- options?: any;
31
- agentId?: string;
32
- }
33
- export declare class TaskManagementService {
34
- private readonly tracingService?;
35
- private readonly logger;
36
- private readonly taskLogs;
37
- private readonly logsDir;
38
- constructor(tracingService?: TracingService | undefined);
39
- generateTaskId(): string;
40
- createTask(options: TaskCreationOptions): string;
41
- addTaskLog(taskId: string, log: {
42
- level: 'info' | 'warn' | 'error';
43
- message: string;
44
- }): void;
45
- completeTask(taskId: string, result: any, success: boolean): void;
46
- getTask(taskId: string): TaskLog | undefined;
47
- getAllTasks(): TaskLog[];
48
- getTasksByStatus(status: 'running' | 'completed' | 'failed'): TaskLog[];
49
- getTasksByProvider(provider: string): TaskLog[];
50
- getTaskLogsFromFile(taskId?: string): string;
51
- clearAllLogs(): void;
52
- getTaskStatistics(): {
53
- total: number;
54
- running: number;
55
- completed: number;
56
- failed: number;
57
- byProvider: Record<string, number>;
58
- byType: Record<string, number>;
59
- };
60
- cleanupOldTasks(keepCount?: number): void;
61
- private ensureLogsDirectory;
62
- private formatTimestamp;
63
- private findLogFile;
64
- private createTaskLogFile;
65
- appendToLogFile(taskId: string, logEntry: {
66
- timestamp: Date | string;
67
- level: string;
68
- message: string;
69
- }): void;
70
- private updateLogFileWithCompletion;
71
- }
@@ -1,324 +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 __param = (this && this.__param) || function (paramIndex, decorator) {
45
- return function (target, key) { decorator(target, key, paramIndex); }
46
- };
47
- var TaskManagementService_1;
48
- Object.defineProperty(exports, "__esModule", { value: true });
49
- exports.TaskManagementService = void 0;
50
- const common_1 = require("@nestjs/common");
51
- const fs = __importStar(require("fs"));
52
- const path = __importStar(require("path"));
53
- const sdk_1 = require("@crewx/sdk");
54
- const version_1 = require("../version");
55
- const tracing_service_1 = require("./tracing.service");
56
- let TaskManagementService = TaskManagementService_1 = class TaskManagementService {
57
- constructor(tracingService) {
58
- this.tracingService = tracingService;
59
- this.logger = new common_1.Logger(TaskManagementService_1.name);
60
- this.taskLogs = new Map();
61
- this.logsDir = path.join(process.cwd(), '.crewx', 'logs');
62
- this.ensureLogsDirectory();
63
- }
64
- generateTaskId() {
65
- return (0, sdk_1.generateId)('tsk');
66
- }
67
- createTask(options) {
68
- const taskId = this.generateTaskId();
69
- const task = {
70
- id: taskId,
71
- type: options.type,
72
- agentId: options.agentId,
73
- provider: options.provider,
74
- startTime: new Date(),
75
- status: 'running',
76
- prompt: options.prompt,
77
- logs: [],
78
- memoryUsage: {
79
- start: process.memoryUsage().heapUsed,
80
- end: 0,
81
- },
82
- };
83
- this.taskLogs.set(taskId, task);
84
- this.createTaskLogFile(taskId, task);
85
- this.logger.log(`Created new task: ${taskId} (${options.type}, ${options.provider})`);
86
- return taskId;
87
- }
88
- addTaskLog(taskId, log) {
89
- const task = this.taskLogs.get(taskId);
90
- if (task) {
91
- const logEntry = {
92
- timestamp: new Date(),
93
- ...log
94
- };
95
- task.logs.push(logEntry);
96
- this.appendToLogFile(taskId, logEntry);
97
- if (this.tracingService) {
98
- const tracingLogEntry = {
99
- timestamp: logEntry.timestamp.toISOString(),
100
- level: log.level,
101
- message: log.message,
102
- };
103
- this.tracingService.appendTaskLog(taskId, tracingLogEntry);
104
- }
105
- this.logger.debug(`Added log to task ${taskId}: [${log.level.toUpperCase()}] ${log.message}`);
106
- }
107
- else {
108
- this.logger.warn(`Attempted to add log to non-existent task: ${taskId}`);
109
- }
110
- }
111
- completeTask(taskId, result, success) {
112
- const task = this.taskLogs.get(taskId);
113
- if (task) {
114
- task.endTime = new Date();
115
- task.status = success ? 'completed' : 'failed';
116
- task.result = result;
117
- task.duration = task.endTime.getTime() - task.startTime.getTime();
118
- if (task.memoryUsage) {
119
- task.memoryUsage.end = process.memoryUsage().heapUsed;
120
- }
121
- this.updateLogFileWithCompletion(taskId, task, success);
122
- const duration = task.duration;
123
- this.logger.log(`Task ${taskId} ${success ? 'completed' : 'failed'} in ${duration}ms`);
124
- }
125
- else {
126
- this.logger.warn(`Attempted to complete non-existent task: ${taskId}`);
127
- }
128
- }
129
- getTask(taskId) {
130
- return this.taskLogs.get(taskId);
131
- }
132
- getAllTasks() {
133
- return Array.from(this.taskLogs.values());
134
- }
135
- getTasksByStatus(status) {
136
- return this.getAllTasks().filter(task => task.status === status);
137
- }
138
- getTasksByProvider(provider) {
139
- return this.getAllTasks().filter(task => task.provider === provider);
140
- }
141
- getTaskLogsFromFile(taskId) {
142
- try {
143
- if (taskId) {
144
- const logFile = this.findLogFile(taskId);
145
- if (logFile) {
146
- return fs.readFileSync(logFile, 'utf-8');
147
- }
148
- else {
149
- return `Task log not found: ${taskId}`;
150
- }
151
- }
152
- else {
153
- const logFiles = fs.readdirSync(this.logsDir).filter(file => file.endsWith('.log'));
154
- if (logFiles.length === 0) {
155
- return 'No task logs found';
156
- }
157
- const taskIds = logFiles.map(file => {
158
- const name = file.replace('.log', '');
159
- const tskIdx = name.indexOf('_tsk_');
160
- if (tskIdx !== -1)
161
- return name.substring(tskIdx + 1);
162
- return name;
163
- });
164
- return `Found ${taskIds.length} task logs:\n${taskIds.map(id => `- ${id}`).join('\n')}`;
165
- }
166
- }
167
- catch (error) {
168
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
169
- this.logger.error(`Failed to read task logs: ${errorMessage}`);
170
- return `Error reading task logs: ${errorMessage}`;
171
- }
172
- }
173
- clearAllLogs() {
174
- try {
175
- this.taskLogs.clear();
176
- if (fs.existsSync(this.logsDir)) {
177
- const logFiles = fs.readdirSync(this.logsDir).filter(file => file.endsWith('.log'));
178
- logFiles.forEach(file => {
179
- const filePath = path.join(this.logsDir, file);
180
- fs.unlinkSync(filePath);
181
- });
182
- this.logger.log(`Cleared ${logFiles.length} log files`);
183
- }
184
- this.logger.log('All task logs cleared');
185
- }
186
- catch (error) {
187
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
188
- this.logger.error(`Failed to clear logs: ${errorMessage}`);
189
- }
190
- }
191
- getTaskStatistics() {
192
- const allTasks = this.getAllTasks();
193
- const stats = {
194
- total: allTasks.length,
195
- running: allTasks.filter(t => t.status === 'running').length,
196
- completed: allTasks.filter(t => t.status === 'completed').length,
197
- failed: allTasks.filter(t => t.status === 'failed').length,
198
- byProvider: {},
199
- byType: {}
200
- };
201
- allTasks.forEach(task => {
202
- if (task.provider) {
203
- stats.byProvider[task.provider] = (stats.byProvider[task.provider] || 0) + 1;
204
- }
205
- stats.byType[task.type] = (stats.byType[task.type] || 0) + 1;
206
- });
207
- return stats;
208
- }
209
- cleanupOldTasks(keepCount = 100) {
210
- const allTasks = this.getAllTasks();
211
- if (allTasks.length <= keepCount) {
212
- return;
213
- }
214
- const sortedTasks = allTasks.sort((a, b) => b.startTime.getTime() - a.startTime.getTime());
215
- const tasksToRemove = sortedTasks.slice(keepCount);
216
- tasksToRemove.forEach(task => {
217
- this.taskLogs.delete(task.id);
218
- try {
219
- const logFile = this.findLogFile(task.id);
220
- if (logFile) {
221
- fs.unlinkSync(logFile);
222
- }
223
- }
224
- catch (error) {
225
- this.logger.warn(`Failed to remove log file for task ${task.id}: ${error}`);
226
- }
227
- });
228
- this.logger.log(`Cleaned up ${tasksToRemove.length} old tasks`);
229
- }
230
- ensureLogsDirectory() {
231
- try {
232
- if (!fs.existsSync(this.logsDir)) {
233
- fs.mkdirSync(this.logsDir, { recursive: true });
234
- this.logger.log(`Created logs directory: ${this.logsDir}`);
235
- }
236
- }
237
- catch (error) {
238
- this.logger.error(`Failed to create logs directory: ${error}`);
239
- }
240
- }
241
- formatTimestamp(date) {
242
- const pad = (n) => String(n).padStart(2, '0');
243
- return `${date.getFullYear()}${pad(date.getMonth() + 1)}${pad(date.getDate())}T${pad(date.getHours())}${pad(date.getMinutes())}${pad(date.getSeconds())}`;
244
- }
245
- findLogFile(taskId) {
246
- try {
247
- if (!fs.existsSync(this.logsDir))
248
- return null;
249
- const files = fs.readdirSync(this.logsDir);
250
- const match = files.find(f => f.endsWith(`_${taskId}.log`));
251
- if (match)
252
- return path.join(this.logsDir, match);
253
- const legacy = path.join(this.logsDir, `${taskId}.log`);
254
- if (fs.existsSync(legacy))
255
- return legacy;
256
- return null;
257
- }
258
- catch {
259
- return null;
260
- }
261
- }
262
- createTaskLogFile(taskId, task) {
263
- try {
264
- const now = task.startTime;
265
- const ts = this.formatTimestamp(now);
266
- const logFile = path.join(this.logsDir, `${ts}_${taskId}.log`);
267
- const timestamp = now.toLocaleString();
268
- const header = `=== TASK LOG: ${taskId} ===
269
- CrewX Version: ${version_1.CREWX_VERSION}
270
- Provider: ${task.provider}
271
- Type: ${task.type}
272
- Agent: ${task.agentId || 'N/A'}
273
- Started: ${timestamp}
274
-
275
- `;
276
- fs.writeFileSync(logFile, header, { encoding: 'utf8', mode: 0o600 });
277
- }
278
- catch (error) {
279
- this.logger.error(`Failed to create log file for task ${taskId}: ${error}`);
280
- }
281
- }
282
- appendToLogFile(taskId, logEntry) {
283
- try {
284
- const logFile = this.findLogFile(taskId);
285
- if (!logFile)
286
- return;
287
- const timestamp = logEntry.timestamp instanceof Date
288
- ? logEntry.timestamp.toLocaleString()
289
- : logEntry.timestamp;
290
- const logLine = `[${timestamp}] ${logEntry.level.toUpperCase()}: ${logEntry.message}\n`;
291
- fs.appendFileSync(logFile, logLine, 'utf8');
292
- }
293
- catch (error) {
294
- this.logger.error(`Failed to append to log file for task ${taskId}: ${error}`);
295
- }
296
- }
297
- updateLogFileWithCompletion(taskId, task, success) {
298
- try {
299
- const logFile = this.findLogFile(taskId);
300
- if (!logFile)
301
- return;
302
- const timestamp = new Date().toLocaleString();
303
- const duration = task.endTime && task.startTime
304
- ? task.endTime.getTime() - task.startTime.getTime()
305
- : 0;
306
- const completionInfo = `
307
- [${timestamp}] INFO: Process closed with exit code: ${success ? 0 : 1}
308
- [${timestamp}] INFO: Task ${success ? 'completed successfully' : 'failed'} in ${duration}ms
309
- `;
310
- fs.appendFileSync(logFile, completionInfo, 'utf8');
311
- }
312
- catch (error) {
313
- this.logger.error(`Failed to update log file for task ${taskId}: ${error}`);
314
- }
315
- }
316
- };
317
- exports.TaskManagementService = TaskManagementService;
318
- exports.TaskManagementService = TaskManagementService = TaskManagementService_1 = __decorate([
319
- (0, common_1.Injectable)(),
320
- __param(0, (0, common_1.Optional)()),
321
- __param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => tracing_service_1.TracingService))),
322
- __metadata("design:paramtypes", [tracing_service_1.TracingService])
323
- ], TaskManagementService);
324
- //# sourceMappingURL=task-management.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-management.service.js","sourceRoot":"","sources":["../../src/services/task-management.service.ts"],"names":[],"mappings":"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"}