devchain-cli 0.9.0 → 0.9.1

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 (52) hide show
  1. package/dist/drizzle/0041_community_skill_sources.sql +12 -0
  2. package/dist/drizzle/meta/0041_snapshot.json +4102 -0
  3. package/dist/drizzle/meta/_journal.json +8 -1
  4. package/dist/server/modules/seeders/seeders/0003_seed_preseed_jeffallan_claude_skills.d.ts +3 -0
  5. package/dist/server/modules/seeders/seeders/0003_seed_preseed_jeffallan_claude_skills.js +41 -0
  6. package/dist/server/modules/seeders/seeders/0003_seed_preseed_jeffallan_claude_skills.js.map +1 -0
  7. package/dist/server/modules/seeders/seeders/0004_seed_disable_microsoft_source_default.d.ts +3 -0
  8. package/dist/server/modules/seeders/seeders/0004_seed_disable_microsoft_source_default.js +48 -0
  9. package/dist/server/modules/seeders/seeders/0004_seed_disable_microsoft_source_default.js.map +1 -0
  10. package/dist/server/modules/seeders/services/data-seeder.service.js +4 -0
  11. package/dist/server/modules/seeders/services/data-seeder.service.js.map +1 -1
  12. package/dist/server/modules/skills/adapters/community-skill-source.adapter.d.ts +11 -0
  13. package/dist/server/modules/skills/adapters/community-skill-source.adapter.js +181 -0
  14. package/dist/server/modules/skills/adapters/community-skill-source.adapter.js.map +1 -0
  15. package/dist/server/modules/skills/controllers/community-sources.controller.d.ts +12 -0
  16. package/dist/server/modules/skills/controllers/community-sources.controller.js +71 -0
  17. package/dist/server/modules/skills/controllers/community-sources.controller.js.map +1 -0
  18. package/dist/server/modules/skills/dtos/community-sources.dto.d.ts +100 -0
  19. package/dist/server/modules/skills/dtos/community-sources.dto.js +138 -0
  20. package/dist/server/modules/skills/dtos/community-sources.dto.js.map +1 -0
  21. package/dist/server/modules/skills/services/community-sources.service.d.ts +11 -0
  22. package/dist/server/modules/skills/services/community-sources.service.js +99 -0
  23. package/dist/server/modules/skills/services/community-sources.service.js.map +1 -0
  24. package/dist/server/modules/skills/services/skill-source-registry.service.d.ts +9 -0
  25. package/dist/server/modules/skills/services/skill-source-registry.service.js +46 -0
  26. package/dist/server/modules/skills/services/skill-source-registry.service.js.map +1 -0
  27. package/dist/server/modules/skills/services/skill-sync.service.d.ts +3 -3
  28. package/dist/server/modules/skills/services/skill-sync.service.js +9 -11
  29. package/dist/server/modules/skills/services/skill-sync.service.js.map +1 -1
  30. package/dist/server/modules/skills/services/skills.service.d.ts +3 -3
  31. package/dist/server/modules/skills/services/skills.service.js +21 -18
  32. package/dist/server/modules/skills/services/skills.service.js.map +1 -1
  33. package/dist/server/modules/skills/skills.module.js +7 -1
  34. package/dist/server/modules/skills/skills.module.js.map +1 -1
  35. package/dist/server/modules/storage/db/schema.d.ts +140 -0
  36. package/dist/server/modules/storage/db/schema.js +12 -1
  37. package/dist/server/modules/storage/db/schema.js.map +1 -1
  38. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +6 -1
  39. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  40. package/dist/server/modules/storage/local/local-storage.service.d.ts +11 -1
  41. package/dist/server/modules/storage/local/local-storage.service.js +159 -0
  42. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  43. package/dist/server/modules/storage/models/domain.models.d.ts +12 -0
  44. package/dist/server/tsconfig.tsbuildinfo +1 -1
  45. package/dist/server/ui/assets/{ReviewDetailPage-D_-bS1MK.js → ReviewDetailPage-D13dH7Wh.js} +1 -1
  46. package/dist/server/ui/assets/{ReviewsPage-BE1gxYlC.js → ReviewsPage-C98ST0lf.js} +1 -1
  47. package/dist/server/ui/assets/{index-C094CE5I.js → index-C8Dc1yQf.js} +175 -175
  48. package/dist/server/ui/assets/index-DZkJ40z9.css +32 -0
  49. package/dist/server/ui/assets/{useReviewSubscription-Bs-17h-m.js → useReviewSubscription-CmLuF45Z.js} +1 -1
  50. package/dist/server/ui/index.html +2 -2
  51. package/package.json +4 -1
  52. package/dist/server/ui/assets/index-CbtpBUHu.css +0 -32
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommunitySourceDeleteParamsSchema = exports.CommunitySourceResponseSchema = exports.CreateCommunitySourceSchema = exports.parseGitHubRepoUrl = exports.BranchSchema = exports.GitHubRepoSchema = exports.GitHubOwnerSchema = exports.CommunitySourceNameSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const COMMUNITY_SOURCE_NAME_PATTERN = /^[a-z0-9-]+$/;
6
+ const GITHUB_NAME_PATTERN = /^[a-zA-Z0-9._-]+$/;
7
+ exports.CommunitySourceNameSchema = zod_1.z
8
+ .string()
9
+ .trim()
10
+ .min(1)
11
+ .max(64)
12
+ .transform((value) => value.toLowerCase())
13
+ .refine((value) => COMMUNITY_SOURCE_NAME_PATTERN.test(value), {
14
+ message: 'Source name must contain only lowercase letters, numbers, and hyphens.',
15
+ });
16
+ exports.GitHubOwnerSchema = zod_1.z
17
+ .string()
18
+ .trim()
19
+ .min(1)
20
+ .max(100)
21
+ .refine((value) => GITHUB_NAME_PATTERN.test(value), {
22
+ message: 'GitHub owner contains invalid characters.',
23
+ });
24
+ exports.GitHubRepoSchema = zod_1.z
25
+ .string()
26
+ .trim()
27
+ .min(1)
28
+ .max(100)
29
+ .refine((value) => GITHUB_NAME_PATTERN.test(value), {
30
+ message: 'GitHub repository contains invalid characters.',
31
+ });
32
+ exports.BranchSchema = zod_1.z.string().trim().min(1).max(200).default('main');
33
+ const tryParseGitHubRepoUrl = (url) => {
34
+ let parsedUrl;
35
+ try {
36
+ parsedUrl = new URL(url.trim());
37
+ }
38
+ catch {
39
+ return { success: false, message: 'Invalid GitHub URL format.' };
40
+ }
41
+ const host = parsedUrl.hostname.toLowerCase();
42
+ if (host !== 'github.com' && host !== 'www.github.com') {
43
+ return { success: false, message: 'Only github.com URLs are supported.' };
44
+ }
45
+ const segments = parsedUrl.pathname
46
+ .split('/')
47
+ .map((segment) => segment.trim())
48
+ .filter((segment) => segment.length > 0);
49
+ if (segments.length < 2) {
50
+ return { success: false, message: 'GitHub URL must include owner and repository.' };
51
+ }
52
+ const repoOwner = segments[0];
53
+ const repoName = segments[1]?.replace(/\.git$/i, '') ?? '';
54
+ if (!repoOwner || !repoName) {
55
+ return { success: false, message: 'GitHub URL must include owner and repository.' };
56
+ }
57
+ if (!GITHUB_NAME_PATTERN.test(repoOwner) || !GITHUB_NAME_PATTERN.test(repoName)) {
58
+ return {
59
+ success: false,
60
+ message: 'GitHub owner or repository contains invalid characters.',
61
+ };
62
+ }
63
+ return {
64
+ success: true,
65
+ data: { repoOwner, repoName },
66
+ };
67
+ };
68
+ const parseGitHubRepoUrl = (url) => {
69
+ const parsed = tryParseGitHubRepoUrl(url);
70
+ if (!parsed.success) {
71
+ throw new Error(parsed.message);
72
+ }
73
+ return parsed.data;
74
+ };
75
+ exports.parseGitHubRepoUrl = parseGitHubRepoUrl;
76
+ const CreateCommunitySourceByRepoSchema = zod_1.z.object({
77
+ name: exports.CommunitySourceNameSchema,
78
+ repoOwner: exports.GitHubOwnerSchema,
79
+ repoName: exports.GitHubRepoSchema,
80
+ branch: exports.BranchSchema.optional(),
81
+ });
82
+ const CreateCommunitySourceByUrlSchema = zod_1.z
83
+ .object({
84
+ name: exports.CommunitySourceNameSchema,
85
+ url: zod_1.z.string().trim().url(),
86
+ branch: exports.BranchSchema.optional(),
87
+ })
88
+ .superRefine((value, ctx) => {
89
+ const parsed = tryParseGitHubRepoUrl(value.url);
90
+ if (parsed.success) {
91
+ return;
92
+ }
93
+ ctx.addIssue({
94
+ code: zod_1.z.ZodIssueCode.custom,
95
+ path: ['url'],
96
+ message: parsed.message,
97
+ });
98
+ })
99
+ .transform((value, ctx) => {
100
+ const parsed = tryParseGitHubRepoUrl(value.url);
101
+ if (!parsed.success) {
102
+ ctx.addIssue({
103
+ code: zod_1.z.ZodIssueCode.custom,
104
+ path: ['url'],
105
+ message: parsed.message,
106
+ });
107
+ return zod_1.z.NEVER;
108
+ }
109
+ return {
110
+ name: value.name,
111
+ repoOwner: parsed.data.repoOwner,
112
+ repoName: parsed.data.repoName,
113
+ branch: value.branch ?? 'main',
114
+ };
115
+ });
116
+ const CreateCommunitySourceByRepoNormalizedSchema = CreateCommunitySourceByRepoSchema.transform((value) => ({
117
+ name: value.name,
118
+ repoOwner: value.repoOwner,
119
+ repoName: value.repoName,
120
+ branch: value.branch ?? 'main',
121
+ }));
122
+ exports.CreateCommunitySourceSchema = zod_1.z.union([
123
+ CreateCommunitySourceByRepoNormalizedSchema,
124
+ CreateCommunitySourceByUrlSchema,
125
+ ]);
126
+ exports.CommunitySourceResponseSchema = zod_1.z.object({
127
+ id: zod_1.z.string().uuid(),
128
+ name: zod_1.z.string(),
129
+ repoOwner: zod_1.z.string(),
130
+ repoName: zod_1.z.string(),
131
+ branch: zod_1.z.string(),
132
+ createdAt: zod_1.z.string(),
133
+ updatedAt: zod_1.z.string(),
134
+ });
135
+ exports.CommunitySourceDeleteParamsSchema = zod_1.z.object({
136
+ id: zod_1.z.string().uuid(),
137
+ });
138
+ //# sourceMappingURL=community-sources.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community-sources.dto.js","sourceRoot":"","sources":["../../../../src/modules/skills/dtos/community-sources.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { CommunitySkillSource } from '../../storage/models/domain.models';
2
+ import { type StorageService } from '../../storage/interfaces/storage.interface';
3
+ import type { CreateCommunitySourceDto } from '../dtos/community-sources.dto';
4
+ export declare class CommunitySourcesService {
5
+ private readonly storage;
6
+ constructor(storage: StorageService);
7
+ listCommunitySources(): Promise<CommunitySkillSource[]>;
8
+ createCommunitySource(data: CreateCommunitySourceDto): Promise<CommunitySkillSource>;
9
+ deleteCommunitySource(id: string): Promise<void>;
10
+ private deleteSourceSkillsDirectory;
11
+ }
@@ -0,0 +1,99 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.CommunitySourcesService = void 0;
49
+ const common_1 = require("@nestjs/common");
50
+ const node_os_1 = require("node:os");
51
+ const node_path_1 = require("node:path");
52
+ const fs = __importStar(require("node:fs/promises"));
53
+ const error_types_1 = require("../../../common/errors/error-types");
54
+ const logger_1 = require("../../../common/logging/logger");
55
+ const storage_interface_1 = require("../../storage/interfaces/storage.interface");
56
+ const logger = (0, logger_1.createLogger)('CommunitySourcesService');
57
+ let CommunitySourcesService = class CommunitySourcesService {
58
+ constructor(storage) {
59
+ this.storage = storage;
60
+ }
61
+ async listCommunitySources() {
62
+ return this.storage.listCommunitySkillSources();
63
+ }
64
+ async createCommunitySource(data) {
65
+ return this.storage.createCommunitySkillSource({
66
+ name: data.name,
67
+ repoOwner: data.repoOwner,
68
+ repoName: data.repoName,
69
+ branch: data.branch,
70
+ });
71
+ }
72
+ async deleteCommunitySource(id) {
73
+ const source = await this.storage.getCommunitySkillSource(id);
74
+ await this.storage.deleteCommunitySkillSource(id);
75
+ await this.deleteSourceSkillsDirectory(source.name);
76
+ }
77
+ async deleteSourceSkillsDirectory(sourceName) {
78
+ const normalizedSourceName = sourceName.trim().toLowerCase();
79
+ const sourcePath = (0, node_path_1.join)((0, node_os_1.homedir)(), '.devchain', 'skills', normalizedSourceName);
80
+ try {
81
+ await fs.rm(sourcePath, { recursive: true, force: true });
82
+ }
83
+ catch (error) {
84
+ throw new error_types_1.StorageError('Failed to delete community source local skills directory.', {
85
+ sourceName: normalizedSourceName,
86
+ sourcePath,
87
+ cause: error instanceof Error ? error.message : String(error),
88
+ });
89
+ }
90
+ logger.info({ sourceName: normalizedSourceName, sourcePath }, 'Deleted local skills directory for community source');
91
+ }
92
+ };
93
+ exports.CommunitySourcesService = CommunitySourcesService;
94
+ exports.CommunitySourcesService = CommunitySourcesService = __decorate([
95
+ (0, common_1.Injectable)(),
96
+ __param(0, (0, common_1.Inject)(storage_interface_1.STORAGE_SERVICE)),
97
+ __metadata("design:paramtypes", [Object])
98
+ ], CommunitySourcesService);
99
+ //# sourceMappingURL=community-sources.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community-sources.service.js","sourceRoot":"","sources":["../../../../src/modules/skills/services/community-sources.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,qCAAkC;AAClC,yCAAiC;AACjC,qDAAuC;AACvC,oEAAkE;AAClE,2DAA8D;AAE9D,kFAAkG;AAGlG,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,yBAAyB,CAAC,CAAC;AAGhD,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClC,YAAsD,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAEjF,KAAK,CAAC,oBAAoB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,IAA8B;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC;YAC7C,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,EAAU;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,UAAkB;QAC1D,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAEhF,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,0BAAY,CAAC,2DAA2D,EAAE;gBAClF,UAAU,EAAE,oBAAoB;gBAChC,UAAU;gBACV,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE,EAChD,qDAAqD,CACtD,CAAC;IACJ,CAAC;CACF,CAAA;AAzCY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,eAAM,EAAC,mCAAe,CAAC,CAAA;;GADzB,uBAAuB,CAyCnC"}
@@ -0,0 +1,9 @@
1
+ import { type SkillSourceAdapter } from '../adapters/skill-source.adapter';
2
+ import { type StorageService } from '../../storage/interfaces/storage.interface';
3
+ export declare class SkillSourceRegistryService {
4
+ private readonly builtInAdapters;
5
+ private readonly storage;
6
+ constructor(builtInAdapters: SkillSourceAdapter[], storage: StorageService);
7
+ getAdapters(): Promise<SkillSourceAdapter[]>;
8
+ getAdapterBySourceName(name: string): Promise<SkillSourceAdapter | null>;
9
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.SkillSourceRegistryService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const community_skill_source_adapter_1 = require("../adapters/community-skill-source.adapter");
18
+ const skill_source_adapter_1 = require("../adapters/skill-source.adapter");
19
+ const storage_interface_1 = require("../../storage/interfaces/storage.interface");
20
+ let SkillSourceRegistryService = class SkillSourceRegistryService {
21
+ constructor(builtInAdapters, storage) {
22
+ this.builtInAdapters = builtInAdapters;
23
+ this.storage = storage;
24
+ }
25
+ async getAdapters() {
26
+ const communitySources = await this.storage.listCommunitySkillSources();
27
+ const communityAdapters = communitySources.map((source) => new community_skill_source_adapter_1.CommunitySkillSourceAdapter(source));
28
+ return [...this.builtInAdapters, ...communityAdapters];
29
+ }
30
+ async getAdapterBySourceName(name) {
31
+ const normalizedName = name.trim().toLowerCase();
32
+ if (!normalizedName) {
33
+ return null;
34
+ }
35
+ const adapters = await this.getAdapters();
36
+ return (adapters.find((adapter) => adapter.sourceName.trim().toLowerCase() === normalizedName) ?? null);
37
+ }
38
+ };
39
+ exports.SkillSourceRegistryService = SkillSourceRegistryService;
40
+ exports.SkillSourceRegistryService = SkillSourceRegistryService = __decorate([
41
+ (0, common_1.Injectable)(),
42
+ __param(0, (0, common_1.Inject)(skill_source_adapter_1.SKILL_SOURCE_ADAPTERS)),
43
+ __param(1, (0, common_1.Inject)(storage_interface_1.STORAGE_SERVICE)),
44
+ __metadata("design:paramtypes", [Array, Object])
45
+ ], SkillSourceRegistryService);
46
+ //# sourceMappingURL=skill-source-registry.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-source-registry.service.js","sourceRoot":"","sources":["../../../../src/modules/skills/services/skill-source-registry.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,+FAAyF;AACzF,2EAAkG;AAClG,kFAAkG;AAG3F,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrC,YACkD,eAAqC,EAC3C,OAAuB;QADjB,oBAAe,GAAf,eAAe,CAAsB;QAC3C,YAAO,GAAP,OAAO,CAAgB;IAChE,CAAC;IAEJ,KAAK,CAAC,WAAW;QACf,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,CAAC;QACxE,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,GAAG,CAC5C,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,4DAA2B,CAAC,MAAM,CAAC,CACpD,CAAC;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAY;QACvC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,OAAO,CACL,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,IAAI,IAAI,CAC/F,CAAC;IACJ,CAAC;CACF,CAAA;AAzBY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,4CAAqB,CAAC,CAAA;IAC7B,WAAA,IAAA,eAAM,EAAC,mCAAe,CAAC,CAAA;;GAHf,0BAA0B,CAyBtC"}
@@ -1,7 +1,7 @@
1
1
  import { OnApplicationBootstrap } from '@nestjs/common';
2
2
  import { SettingsService } from '../../settings/services/settings.service';
3
- import { SkillSourceAdapter } from '../adapters/skill-source.adapter';
4
3
  import { SkillCategoryService } from './skill-category.service';
4
+ import { SkillSourceRegistryService } from './skill-source-registry.service';
5
5
  import { SkillsService } from './skills.service';
6
6
  export interface SyncError {
7
7
  sourceName: string;
@@ -17,12 +17,12 @@ export interface SyncResult {
17
17
  errors: SyncError[];
18
18
  }
19
19
  export declare class SkillSyncService implements OnApplicationBootstrap {
20
- private readonly adapters;
20
+ private readonly skillSourceRegistry;
21
21
  private readonly skillsService;
22
22
  private readonly skillCategoryService;
23
23
  private readonly settingsService;
24
24
  private syncInProgress;
25
- constructor(adapters: SkillSourceAdapter[], skillsService: SkillsService, skillCategoryService: SkillCategoryService, settingsService: SettingsService);
25
+ constructor(skillSourceRegistry: SkillSourceRegistryService, skillsService: SkillsService, skillCategoryService: SkillCategoryService, settingsService: SettingsService);
26
26
  onApplicationBootstrap(): void;
27
27
  syncAll(): Promise<SyncResult>;
28
28
  syncSource(sourceName: string): Promise<SyncResult>;
@@ -8,22 +8,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  exports.SkillSyncService = void 0;
16
13
  const common_1 = require("@nestjs/common");
17
14
  const error_types_1 = require("../../../common/errors/error-types");
18
15
  const logger_1 = require("../../../common/logging/logger");
19
16
  const settings_service_1 = require("../../settings/services/settings.service");
20
- const skill_source_adapter_1 = require("../adapters/skill-source.adapter");
21
17
  const skill_category_service_1 = require("./skill-category.service");
18
+ const skill_source_registry_service_1 = require("./skill-source-registry.service");
22
19
  const skills_service_1 = require("./skills.service");
23
20
  const logger = (0, logger_1.createLogger)('SkillSyncService');
24
21
  let SkillSyncService = class SkillSyncService {
25
- constructor(adapters, skillsService, skillCategoryService, settingsService) {
26
- this.adapters = adapters;
22
+ constructor(skillSourceRegistry, skillsService, skillCategoryService, settingsService) {
23
+ this.skillSourceRegistry = skillSourceRegistry;
27
24
  this.skillsService = skillsService;
28
25
  this.skillCategoryService = skillCategoryService;
29
26
  this.settingsService = settingsService;
@@ -40,9 +37,10 @@ let SkillSyncService = class SkillSyncService {
40
37
  }
41
38
  async syncAll() {
42
39
  return this.withMutex(async () => {
40
+ const adapters = await this.skillSourceRegistry.getAdapters();
43
41
  const sourceSettings = this.settingsService.getSkillSourcesEnabled();
44
- const enabledAdapters = this.adapters.filter((adapter) => this.isSourceEnabled(adapter.sourceName, sourceSettings));
45
- for (const adapter of this.adapters) {
42
+ const enabledAdapters = adapters.filter((adapter) => this.isSourceEnabled(adapter.sourceName, sourceSettings));
43
+ for (const adapter of adapters) {
46
44
  if (!this.isSourceEnabled(adapter.sourceName, sourceSettings)) {
47
45
  logger.info({ sourceName: adapter.sourceName }, 'Skill sync skipped because source is disabled');
48
46
  }
@@ -67,7 +65,7 @@ let SkillSyncService = class SkillSyncService {
67
65
  }
68
66
  async syncSource(sourceName) {
69
67
  const normalizedSourceName = sourceName.trim().toLowerCase();
70
- const adapter = this.adapters.find((item) => item.sourceName === normalizedSourceName);
68
+ const adapter = await this.skillSourceRegistry.getAdapterBySourceName(normalizedSourceName);
71
69
  if (!adapter) {
72
70
  throw new error_types_1.ValidationError(`Unknown skill source: ${normalizedSourceName}`, {
73
71
  sourceName: normalizedSourceName,
@@ -275,8 +273,8 @@ let SkillSyncService = class SkillSyncService {
275
273
  exports.SkillSyncService = SkillSyncService;
276
274
  exports.SkillSyncService = SkillSyncService = __decorate([
277
275
  (0, common_1.Injectable)(),
278
- __param(0, (0, common_1.Inject)(skill_source_adapter_1.SKILL_SOURCE_ADAPTERS)),
279
- __metadata("design:paramtypes", [Array, skills_service_1.SkillsService,
276
+ __metadata("design:paramtypes", [skill_source_registry_service_1.SkillSourceRegistryService,
277
+ skills_service_1.SkillsService,
280
278
  skill_category_service_1.SkillCategoryService,
281
279
  settings_service_1.SettingsService])
282
280
  ], SkillSyncService);
@@ -1 +1 @@
1
- {"version":3,"file":"skill-sync.service.js","sourceRoot":"","sources":["../../../../src/modules/skills/services/skill-sync.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-sync.service.js","sourceRoot":"","sources":["../../../../src/modules/skills/services/skill-sync.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAoE;AACpE,oEAAkG;AAClG,2DAA8D;AAC9D,+EAA2E;AAO3E,qEAAgE;AAChE,mFAA6E;AAC7E,qDAAiD;AAEjD,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,kBAAkB,CAAC,CAAC;AAkBzC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAG3B,YACmB,mBAA+C,EAC/C,aAA4B,EAC5B,oBAA0C,EAC1C,eAAgC;QAHhC,wBAAmB,GAAnB,mBAAmB,CAA4B;QAC/C,kBAAa,GAAb,aAAa,CAAe;QAC5B,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,oBAAe,GAAf,eAAe,CAAiB;QAN3C,mBAAc,GAAG,KAAK,CAAC;IAO5B,CAAC;IAEJ,sBAAsB;QACpB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACjE,4BAA4B,CAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;YAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC;YACrE,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAClD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CACzD,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,CAAC;oBAC9D,MAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,EAClC,+CAA+C,CAChD,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAClC,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,UAAU,CAC7C,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAC5D,CAAC;YAEF,OAAO,cAAc,CAAC,MAAM,CAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC9D,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClD,CAAC;gBAED,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,UAAU,IAAI,SAAS,CAAC;gBACpE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;gBAChB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;oBACd,UAAU,EAAE,WAAW;oBACvB,OAAO,EAAE,MAAM,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;iBACxF,CAAC,CAAC;gBACH,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;QAC5F,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,6BAAe,CAAC,yBAAyB,oBAAoB,EAAE,EAAE;gBACzE,UAAU,EAAE,oBAAoB;aACjC,CAAC,CAAC;QACL,CAAC;QAED,IACE,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,EAC1F,CAAC;YACD,MAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,oBAAoB,EAAE,EACpC,+CAA+C,CAChD,CAAC;YACF,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,GAA8B;QACpD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC9B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,OAA2B;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,WAAW,GAAkC,IAAI,CAAC;QAEtD,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;YAC/C,WAAW,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC9B,CAAC;gBAAC,OAAO,YAAY,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,CACT;wBACE,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,KAAK,EAAE,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;qBACnF,EACD,0DAA0D,CAC3D,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;YACnB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC;YACH,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;gBACpE,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBACrE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC7D,MAAM,WAAW,GACf,aAAa;oBACb,aAAa,CAAC,YAAY,KAAK,YAAY;oBAC3C,aAAa,CAAC,MAAM,KAAK,YAAY,CAAC;gBAExC,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;oBACtB,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACnE,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE;wBAC9C,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,SAAS;wBAChC,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,IAAI,IAAI,SAAS;wBAC/D,WAAW,EAAE,QAAQ,CAAC,WAAW;wBACjC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,IAAI,IAAI;wBACnD,MAAM,EAAE,OAAO,CAAC,UAAU;wBAC1B,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,YAAY;wBACZ,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAChD,QAAQ,CAAC,IAAI,IAAI,SAAS,EAC1B,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,aAAa,CACvB;wBACD,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,IAAI;wBACjC,aAAa,EAAE,QAAQ,CAAC,aAAa,IAAI,IAAI;wBAC7C,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;wBACvC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;wBAC/C,WAAW;wBACX,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,MAAM,EAAE,WAAW;wBACnB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACvC,CAAC,CAAC;oBAEH,IAAI,aAAa,EAAE,CAAC;wBAClB,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;oBACpB,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;oBACnB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;wBACjB,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,SAAS;wBACT,OAAO,EAAE,YAAY;qBACtB,CAAC,CAAC;oBAEH,MAAM,IAAI,CAAC,kBAAkB,CAAC;wBAC5B,OAAO;wBACP,SAAS;wBACT,SAAS;wBACT,YAAY;wBACZ,QAAQ;qBACT,CAAC,CAAC;oBAEH,IAAI,KAAK,YAAY,0BAAY,EAAE,CAAC;wBAClC,MAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,EACnE,sDAAsD,CACvD,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CACT;oBACE,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,EACD,sCAAsC,CACvC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAMhC;QACC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE;gBACrD,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS;gBAC9C,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS;gBACpF,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW;gBACxC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,IAAI,IAAI;gBAC1D,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;gBACjC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;gBACpC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAChD,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,EACxC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAC3B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAC9B;gBACD,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI;gBACxC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI;gBACpD,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;gBAC9C,kBAAkB,EAAE,MAAM,CAAC,QAAQ,CAAC,kBAAkB;gBACtD,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;gBACpC,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV;gBACE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;gBACrC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,EACD,uDAAuD,CACxD,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,UAAkB,EAAE,SAAiB;QAC1D,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACvD,OAAO,GAAG,gBAAgB,IAAI,eAAe,EAAE,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACzC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,iBAAiB;QACvB,OAAO;YACL,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAEO,0BAA0B;QAChC,OAAO;YACL,MAAM,EAAE,iBAAiB;YACzB,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,IAAgB,EAAE,KAAiB;QAC1D,OAAO;YACL,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;YAClC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;YAC3C,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;SAC1C,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,UAAkB,EAAE,cAAuC;QACjF,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7D,OAAO,cAAc,CAAC,oBAAoB,CAAC,KAAK,KAAK,CAAC;IACxD,CAAC;CACF,CAAA;AA3TY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAK6B,0DAA0B;QAChC,8BAAa;QACN,6CAAoB;QACzB,kCAAe;GAPxC,gBAAgB,CA2T5B"}
@@ -2,7 +2,7 @@ import type { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3';
2
2
  import { SettingsService } from '../../settings/services/settings.service';
3
3
  import type { ResolvedSkillSummary } from '../dtos/skill.dto';
4
4
  import type { Skill, SkillStatus, SkillUsageLog as SkillUsageLogModel } from '../../storage/models/domain.models';
5
- import { SkillSourceAdapter } from '../adapters/skill-source.adapter';
5
+ import { SkillSourceRegistryService } from './skill-source-registry.service';
6
6
  export interface ListSkillsOptions {
7
7
  source?: string;
8
8
  category?: string;
@@ -75,8 +75,8 @@ export interface SkillSourceMetadata {
75
75
  export declare class SkillsService {
76
76
  private readonly db;
77
77
  private readonly settingsService;
78
- private readonly adapters;
79
- constructor(db: BetterSQLite3Database, settingsService: SettingsService, adapters: SkillSourceAdapter[]);
78
+ private readonly skillSourceRegistry;
79
+ constructor(db: BetterSQLite3Database, settingsService: SettingsService, skillSourceRegistry: SkillSourceRegistryService);
80
80
  listSkills(options?: ListSkillsOptions): Promise<Skill[]>;
81
81
  listAllForProject(projectId: string, options?: ListProjectSkillsOptions): Promise<ProjectSkill[]>;
82
82
  listDiscoverable(projectId: string, options?: ListProjectSkillsOptions): Promise<Skill[]>;
@@ -21,17 +21,17 @@ const logger_1 = require("../../../common/logging/logger");
21
21
  const settings_service_1 = require("../../settings/services/settings.service");
22
22
  const db_provider_1 = require("../../storage/db/db.provider");
23
23
  const schema_1 = require("../../storage/db/schema");
24
- const skill_source_adapter_1 = require("../adapters/skill-source.adapter");
24
+ const skill_source_registry_service_1 = require("./skill-source-registry.service");
25
25
  const logger = (0, logger_1.createLogger)('SkillsService');
26
26
  const VALID_SKILL_STATUSES = ['available', 'outdated', 'sync_error'];
27
27
  let SkillsService = class SkillsService {
28
- constructor(db, settingsService, adapters) {
28
+ constructor(db, settingsService, skillSourceRegistry) {
29
29
  this.db = db;
30
30
  this.settingsService = settingsService;
31
- this.adapters = adapters;
31
+ this.skillSourceRegistry = skillSourceRegistry;
32
32
  }
33
33
  async listSkills(options = {}) {
34
- const enabledSources = this.getEnabledSources();
34
+ const enabledSources = await this.getEnabledSources();
35
35
  if (enabledSources.length === 0) {
36
36
  return [];
37
37
  }
@@ -67,7 +67,7 @@ let SkillsService = class SkillsService {
67
67
  return rows.map((row) => this.mapSkillRow(row));
68
68
  }
69
69
  async listAllForProject(projectId, options = {}) {
70
- const enabledSources = this.getEnabledSources();
70
+ const enabledSources = await this.getEnabledSources();
71
71
  if (enabledSources.length === 0) {
72
72
  return [];
73
73
  }
@@ -92,7 +92,7 @@ let SkillsService = class SkillsService {
92
92
  }));
93
93
  }
94
94
  async listDiscoverable(projectId, options = {}) {
95
- const enabledSources = this.getEnabledSources();
95
+ const enabledSources = await this.getEnabledSources();
96
96
  if (enabledSources.length === 0) {
97
97
  return [];
98
98
  }
@@ -295,7 +295,7 @@ let SkillsService = class SkillsService {
295
295
  return rows.map((row) => row.skillId);
296
296
  }
297
297
  async disableAll(projectId) {
298
- const enabledSources = this.getEnabledSources();
298
+ const enabledSources = await this.getEnabledSources();
299
299
  if (enabledSources.length === 0) {
300
300
  return 0;
301
301
  }
@@ -328,7 +328,7 @@ let SkillsService = class SkillsService {
328
328
  return rowsToInsert.length;
329
329
  }
330
330
  async enableAll(projectId) {
331
- const enabledSources = this.getEnabledSources();
331
+ const enabledSources = await this.getEnabledSources();
332
332
  if (enabledSources.length === 0) {
333
333
  return 0;
334
334
  }
@@ -354,7 +354,8 @@ let SkillsService = class SkillsService {
354
354
  .groupBy(schema_1.skills.source);
355
355
  const sourceCountMap = new Map(sourceRows.map((row) => [row.source.trim().toLowerCase(), Number(row.skillCount)]));
356
356
  const sourceSettings = this.settingsService.getSkillSourcesEnabled();
357
- return this.getRegisteredSources().map((source) => ({
357
+ const registeredSources = await this.getRegisteredSources();
358
+ return registeredSources.map((source) => ({
358
359
  name: source.name,
359
360
  enabled: this.isSourceEnabled(source.name, sourceSettings),
360
361
  repoUrl: source.repoUrl,
@@ -362,7 +363,7 @@ let SkillsService = class SkillsService {
362
363
  }));
363
364
  }
364
365
  async setSourceEnabled(sourceName, enabled) {
365
- const normalizedSourceName = this.requireKnownSourceName(sourceName);
366
+ const normalizedSourceName = await this.requireKnownSourceName(sourceName);
366
367
  await this.settingsService.setSkillSourceEnabled(normalizedSourceName, enabled);
367
368
  return { name: normalizedSourceName, enabled };
368
369
  }
@@ -657,9 +658,10 @@ let SkillsService = class SkillsService {
657
658
  }
658
659
  return (0, drizzle_orm_1.and)(...conditions);
659
660
  }
660
- getRegisteredSources() {
661
+ async getRegisteredSources() {
662
+ const adapters = await this.skillSourceRegistry.getAdapters();
661
663
  const sourceMap = new Map();
662
- for (const adapter of this.adapters) {
664
+ for (const adapter of adapters) {
663
665
  const normalizedName = adapter.sourceName.trim().toLowerCase();
664
666
  if (!normalizedName || sourceMap.has(normalizedName)) {
665
667
  continue;
@@ -670,18 +672,19 @@ let SkillsService = class SkillsService {
670
672
  .map(([name, repoUrl]) => ({ name, repoUrl }))
671
673
  .sort((left, right) => left.name.localeCompare(right.name));
672
674
  }
673
- getEnabledSources() {
675
+ async getEnabledSources() {
674
676
  const sourceSettings = this.settingsService.getSkillSourcesEnabled();
675
- return this.getRegisteredSources()
677
+ const registeredSources = await this.getRegisteredSources();
678
+ return registeredSources
676
679
  .map((source) => source.name)
677
680
  .filter((sourceName) => this.isSourceEnabled(sourceName, sourceSettings));
678
681
  }
679
682
  isSourceEnabled(sourceName, sourceSettings) {
680
683
  return sourceSettings[sourceName] !== false;
681
684
  }
682
- requireKnownSourceName(sourceName) {
685
+ async requireKnownSourceName(sourceName) {
683
686
  const normalized = this.requireNonEmpty(sourceName, 'sourceName').toLowerCase();
684
- const knownSources = new Set(this.getRegisteredSources().map((source) => source.name));
687
+ const knownSources = new Set((await this.getRegisteredSources()).map((source) => source.name));
685
688
  if (!knownSources.has(normalized)) {
686
689
  throw new error_types_1.ValidationError(`Unknown skill source: ${normalized}`, { sourceName: normalized });
687
690
  }
@@ -725,7 +728,7 @@ exports.SkillsService = SkillsService;
725
728
  exports.SkillsService = SkillsService = __decorate([
726
729
  (0, common_1.Injectable)(),
727
730
  __param(0, (0, common_1.Inject)(db_provider_1.DB_CONNECTION)),
728
- __param(2, (0, common_1.Inject)(skill_source_adapter_1.SKILL_SOURCE_ADAPTERS)),
729
- __metadata("design:paramtypes", [Function, settings_service_1.SettingsService, Array])
731
+ __metadata("design:paramtypes", [Function, settings_service_1.SettingsService,
732
+ skill_source_registry_service_1.SkillSourceRegistryService])
730
733
  ], SkillsService);
731
734
  //# sourceMappingURL=skills.service.js.map