@nahisaho/musubix-skill-manager 2.4.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 (49) hide show
  1. package/dist/application/BuiltInSkills.d.ts +51 -0
  2. package/dist/application/BuiltInSkills.d.ts.map +1 -0
  3. package/dist/application/BuiltInSkills.js +204 -0
  4. package/dist/application/BuiltInSkills.js.map +1 -0
  5. package/dist/application/SkillManager.d.ts +143 -0
  6. package/dist/application/SkillManager.d.ts.map +1 -0
  7. package/dist/application/SkillManager.js +224 -0
  8. package/dist/application/SkillManager.js.map +1 -0
  9. package/dist/application/SkillValidator.d.ts +76 -0
  10. package/dist/application/SkillValidator.d.ts.map +1 -0
  11. package/dist/application/SkillValidator.js +168 -0
  12. package/dist/application/SkillValidator.js.map +1 -0
  13. package/dist/application/index.d.ts +10 -0
  14. package/dist/application/index.d.ts.map +1 -0
  15. package/dist/application/index.js +10 -0
  16. package/dist/application/index.js.map +1 -0
  17. package/dist/domain/entities/Skill.d.ts +99 -0
  18. package/dist/domain/entities/Skill.d.ts.map +1 -0
  19. package/dist/domain/entities/Skill.js +133 -0
  20. package/dist/domain/entities/Skill.js.map +1 -0
  21. package/dist/domain/entities/SkillRegistry.d.ts +101 -0
  22. package/dist/domain/entities/SkillRegistry.d.ts.map +1 -0
  23. package/dist/domain/entities/SkillRegistry.js +158 -0
  24. package/dist/domain/entities/SkillRegistry.js.map +1 -0
  25. package/dist/domain/entities/index.d.ts +9 -0
  26. package/dist/domain/entities/index.d.ts.map +1 -0
  27. package/dist/domain/entities/index.js +9 -0
  28. package/dist/domain/entities/index.js.map +1 -0
  29. package/dist/domain/index.d.ts +9 -0
  30. package/dist/domain/index.d.ts.map +1 -0
  31. package/dist/domain/index.js +11 -0
  32. package/dist/domain/index.js.map +1 -0
  33. package/dist/domain/value-objects/SkillMetadata.d.ts +82 -0
  34. package/dist/domain/value-objects/SkillMetadata.d.ts.map +1 -0
  35. package/dist/domain/value-objects/SkillMetadata.js +94 -0
  36. package/dist/domain/value-objects/SkillMetadata.js.map +1 -0
  37. package/dist/domain/value-objects/SkillType.d.ts +46 -0
  38. package/dist/domain/value-objects/SkillType.d.ts.map +1 -0
  39. package/dist/domain/value-objects/SkillType.js +110 -0
  40. package/dist/domain/value-objects/SkillType.js.map +1 -0
  41. package/dist/domain/value-objects/index.d.ts +9 -0
  42. package/dist/domain/value-objects/index.d.ts.map +1 -0
  43. package/dist/domain/value-objects/index.js +9 -0
  44. package/dist/domain/value-objects/index.js.map +1 -0
  45. package/dist/index.d.ts +16 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +16 -0
  48. package/dist/index.js.map +1 -0
  49. package/package.json +56 -0
@@ -0,0 +1,76 @@
1
+ /**
2
+ * SkillValidator - Application Service
3
+ *
4
+ * Validates skill definitions and execution
5
+ *
6
+ * @see TSK-SKILL-001 - SkillValidator
7
+ * @see REQ-SKILL-002 - Skill Validation
8
+ * @see DES-SKILL-002 - SkillValidator
9
+ */
10
+ import { type Skill, type SkillContext, type SkillMetadata } from '../domain/index.js';
11
+ /**
12
+ * Validation result
13
+ */
14
+ export interface ValidationResult {
15
+ readonly valid: boolean;
16
+ readonly errors: readonly string[];
17
+ readonly warnings: readonly string[];
18
+ }
19
+ /**
20
+ * Parameter validation result
21
+ */
22
+ export interface ParameterValidationResult extends ValidationResult {
23
+ readonly missing: readonly string[];
24
+ readonly invalid: readonly string[];
25
+ }
26
+ /**
27
+ * Skill Validator
28
+ *
29
+ * Validates skill definitions and parameters
30
+ */
31
+ export declare class SkillValidator {
32
+ /**
33
+ * Validate skill definition
34
+ *
35
+ * @param skill - Skill to validate
36
+ * @returns Validation result
37
+ */
38
+ validateSkill(skill: Skill): ValidationResult;
39
+ /**
40
+ * Validate execution context against skill parameters
41
+ *
42
+ * @param skill - Skill
43
+ * @param context - Execution context
44
+ * @returns Parameter validation result
45
+ */
46
+ validateParameters(skill: Skill, context: SkillContext): ParameterValidationResult;
47
+ /**
48
+ * Validate parameter type
49
+ *
50
+ * @param value - Value to check
51
+ * @param expectedType - Expected type
52
+ * @returns true if valid
53
+ */
54
+ private validateParameterType;
55
+ /**
56
+ * Create validation error message
57
+ *
58
+ * @param result - Validation result
59
+ * @returns Formatted error message
60
+ */
61
+ formatValidationResult(result: ValidationResult): string;
62
+ /**
63
+ * Validate skill metadata only
64
+ *
65
+ * @param metadata - Metadata to validate
66
+ * @returns Validation result
67
+ */
68
+ validateMetadata(metadata: SkillMetadata): ValidationResult;
69
+ }
70
+ /**
71
+ * Create a skill validator instance
72
+ *
73
+ * @returns SkillValidator instance
74
+ */
75
+ export declare function createSkillValidator(): SkillValidator;
76
+ //# sourceMappingURL=SkillValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillValidator.d.ts","sourceRoot":"","sources":["../../src/application/SkillValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,aAAa,EAGnB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACzB;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB;IA+B7C;;;;;;OAMG;IACH,kBAAkB,CAChB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,YAAY,GACpB,yBAAyB;IAgD5B;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;;;;OAKG;IACH,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;IAyBxD;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,aAAa,GAAG,gBAAgB;CAQ5D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * SkillValidator - Application Service
3
+ *
4
+ * Validates skill definitions and execution
5
+ *
6
+ * @see TSK-SKILL-001 - SkillValidator
7
+ * @see REQ-SKILL-002 - Skill Validation
8
+ * @see DES-SKILL-002 - SkillValidator
9
+ */
10
+ import { validateSkillMetadata, } from '../domain/index.js';
11
+ /**
12
+ * Skill Validator
13
+ *
14
+ * Validates skill definitions and parameters
15
+ */
16
+ export class SkillValidator {
17
+ /**
18
+ * Validate skill definition
19
+ *
20
+ * @param skill - Skill to validate
21
+ * @returns Validation result
22
+ */
23
+ validateSkill(skill) {
24
+ const errors = [];
25
+ const warnings = [];
26
+ // Validate metadata
27
+ const metadataResult = validateSkillMetadata(skill.metadata);
28
+ if (!metadataResult.valid) {
29
+ errors.push(...metadataResult.errors);
30
+ }
31
+ // Validate executor
32
+ if (typeof skill.executor !== 'function') {
33
+ errors.push('Skill executor must be a function');
34
+ }
35
+ // Check for common issues
36
+ if (skill.metadata.parameters.length > 10) {
37
+ warnings.push('Skill has many parameters, consider simplifying');
38
+ }
39
+ if (skill.metadata.description.length < 10) {
40
+ warnings.push('Skill description is very short');
41
+ }
42
+ return {
43
+ valid: errors.length === 0,
44
+ errors: Object.freeze(errors),
45
+ warnings: Object.freeze(warnings),
46
+ };
47
+ }
48
+ /**
49
+ * Validate execution context against skill parameters
50
+ *
51
+ * @param skill - Skill
52
+ * @param context - Execution context
53
+ * @returns Parameter validation result
54
+ */
55
+ validateParameters(skill, context) {
56
+ const errors = [];
57
+ const warnings = [];
58
+ const missing = [];
59
+ const invalid = [];
60
+ for (const param of skill.metadata.parameters) {
61
+ const value = context.parameters[param.name];
62
+ // Check required parameters
63
+ if (param.required && value === undefined) {
64
+ missing.push(param.name);
65
+ errors.push(`Required parameter missing: ${param.name}`);
66
+ continue;
67
+ }
68
+ // Skip validation if not provided and not required
69
+ if (value === undefined) {
70
+ continue;
71
+ }
72
+ // Type validation
73
+ if (!this.validateParameterType(value, param.type)) {
74
+ invalid.push(param.name);
75
+ errors.push(`Parameter ${param.name} has invalid type. ` +
76
+ `Expected ${param.type}, got ${typeof value}`);
77
+ }
78
+ }
79
+ // Check for unknown parameters
80
+ const paramNames = new Set(skill.metadata.parameters.map(p => p.name));
81
+ for (const key of Object.keys(context.parameters)) {
82
+ if (!paramNames.has(key)) {
83
+ warnings.push(`Unknown parameter: ${key}`);
84
+ }
85
+ }
86
+ return {
87
+ valid: errors.length === 0,
88
+ errors: Object.freeze(errors),
89
+ warnings: Object.freeze(warnings),
90
+ missing: Object.freeze(missing),
91
+ invalid: Object.freeze(invalid),
92
+ };
93
+ }
94
+ /**
95
+ * Validate parameter type
96
+ *
97
+ * @param value - Value to check
98
+ * @param expectedType - Expected type
99
+ * @returns true if valid
100
+ */
101
+ validateParameterType(value, expectedType) {
102
+ switch (expectedType) {
103
+ case 'string':
104
+ return typeof value === 'string';
105
+ case 'number':
106
+ return typeof value === 'number' && !isNaN(value);
107
+ case 'boolean':
108
+ return typeof value === 'boolean';
109
+ case 'array':
110
+ return Array.isArray(value);
111
+ case 'object':
112
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
113
+ default:
114
+ return false;
115
+ }
116
+ }
117
+ /**
118
+ * Create validation error message
119
+ *
120
+ * @param result - Validation result
121
+ * @returns Formatted error message
122
+ */
123
+ formatValidationResult(result) {
124
+ const lines = [];
125
+ if (result.valid) {
126
+ lines.push('✅ Validation passed');
127
+ }
128
+ else {
129
+ lines.push('❌ Validation failed');
130
+ lines.push('');
131
+ lines.push('**Errors:**');
132
+ for (const error of result.errors) {
133
+ lines.push(`- ${error}`);
134
+ }
135
+ }
136
+ if (result.warnings.length > 0) {
137
+ lines.push('');
138
+ lines.push('**Warnings:**');
139
+ for (const warning of result.warnings) {
140
+ lines.push(`- ⚠️ ${warning}`);
141
+ }
142
+ }
143
+ return lines.join('\n');
144
+ }
145
+ /**
146
+ * Validate skill metadata only
147
+ *
148
+ * @param metadata - Metadata to validate
149
+ * @returns Validation result
150
+ */
151
+ validateMetadata(metadata) {
152
+ const result = validateSkillMetadata(metadata);
153
+ return {
154
+ valid: result.valid,
155
+ errors: Object.freeze(result.errors),
156
+ warnings: Object.freeze([]),
157
+ };
158
+ }
159
+ }
160
+ /**
161
+ * Create a skill validator instance
162
+ *
163
+ * @returns SkillValidator instance
164
+ */
165
+ export function createSkillValidator() {
166
+ return new SkillValidator();
167
+ }
168
+ //# sourceMappingURL=SkillValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillValidator.js","sourceRoot":"","sources":["../../src/application/SkillValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAKL,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAmB5B;;;;GAIG;AACH,MAAM,OAAO,cAAc;IACzB;;;;;OAKG;IACH,aAAa,CAAC,KAAY;QACxB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,oBAAoB;QACpB,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QAED,0BAA0B;QAC1B,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC3C,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACnD,CAAC;QAED,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;SAClC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAChB,KAAY,EACZ,OAAqB;QAErB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE7C,4BAA4B;YAC5B,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,+BAA+B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzD,SAAS;YACX,CAAC;YAED,mDAAmD;YACnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,kBAAkB;YAClB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM,CAAC,IAAI,CACT,aAAa,KAAK,CAAC,IAAI,qBAAqB;oBAC5C,YAAY,KAAK,CAAC,IAAI,SAAS,OAAO,KAAK,EAAE,CAC9C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YACjC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;SAChC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,qBAAqB,CAC3B,KAAc,EACd,YAAoC;QAEpC,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,QAAQ;gBACX,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;YACnC,KAAK,QAAQ;gBACX,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpD,KAAK,SAAS;gBACZ,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;YACpC,KAAK,OAAO;gBACV,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9B,KAAK,QAAQ;gBACX,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9E;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,sBAAsB,CAAC,MAAwB;QAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,QAAuB;QACtC,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;SAC5B,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,cAAc,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Application Layer barrel export
3
+ *
4
+ * @see TSK-SKILL-001 - SkillValidator
5
+ * @see TSK-SKILL-002 - SkillManager
6
+ */
7
+ export { type ValidationResult, type ParameterValidationResult, SkillValidator, createSkillValidator, } from './SkillValidator.js';
8
+ export { type SkillManagerConfig, type SkillRegistrationResult, SkillManager, createSkillManager, } from './SkillManager.js';
9
+ export { createRequirementsAnalysisSkill, createDesignGenerationSkill, createCodeAnalysisSkill, createTestGenerationSkill, createKnowledgeGraphQuerySkill, getBuiltInSkills, registerBuiltInSkills, } from './BuiltInSkills.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/application/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,cAAc,EACd,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,YAAY,EACZ,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,uBAAuB,EACvB,yBAAyB,EACzB,8BAA8B,EAC9B,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Application Layer barrel export
3
+ *
4
+ * @see TSK-SKILL-001 - SkillValidator
5
+ * @see TSK-SKILL-002 - SkillManager
6
+ */
7
+ export { SkillValidator, createSkillValidator, } from './SkillValidator.js';
8
+ export { SkillManager, createSkillManager, } from './SkillManager.js';
9
+ export { createRequirementsAnalysisSkill, createDesignGenerationSkill, createCodeAnalysisSkill, createTestGenerationSkill, createKnowledgeGraphQuerySkill, getBuiltInSkills, registerBuiltInSkills, } from './BuiltInSkills.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/application/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAGL,cAAc,EACd,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAGL,YAAY,EACZ,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,uBAAuB,EACvB,yBAAyB,EACzB,8BAA8B,EAC9B,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Skill Entity
3
+ *
4
+ * Represents a skill that can be executed
5
+ *
6
+ * @see REQ-SKILL-001 - Skill Loading
7
+ * @see DES-SKILL-001 - SkillManager
8
+ */
9
+ import type { SkillMetadata } from '../value-objects/index.js';
10
+ /**
11
+ * Skill execution context
12
+ */
13
+ export interface SkillContext {
14
+ readonly workflowId?: string;
15
+ readonly phaseType?: string;
16
+ readonly taskId?: string;
17
+ readonly parameters: Record<string, unknown>;
18
+ }
19
+ /**
20
+ * Skill execution result
21
+ */
22
+ export interface SkillResult {
23
+ readonly success: boolean;
24
+ readonly data?: unknown;
25
+ readonly error?: string;
26
+ readonly duration: number;
27
+ readonly timestamp: Date;
28
+ }
29
+ /**
30
+ * Skill executor function type
31
+ */
32
+ export type SkillExecutor = (context: SkillContext) => Promise<SkillResult>;
33
+ /**
34
+ * Skill entity
35
+ */
36
+ export interface Skill {
37
+ readonly metadata: SkillMetadata;
38
+ readonly executor: SkillExecutor;
39
+ readonly enabled: boolean;
40
+ }
41
+ /**
42
+ * Create a skill
43
+ *
44
+ * @param metadata - Skill metadata
45
+ * @param executor - Skill executor
46
+ * @param enabled - Whether skill is enabled
47
+ * @returns Skill entity
48
+ */
49
+ export declare function createSkill(metadata: SkillMetadata, executor: SkillExecutor, enabled?: boolean): Skill;
50
+ /**
51
+ * Execute a skill
52
+ *
53
+ * @param skill - Skill to execute
54
+ * @param context - Execution context
55
+ * @returns Execution result
56
+ */
57
+ export declare function executeSkill(skill: Skill, context: SkillContext): Promise<SkillResult>;
58
+ /**
59
+ * Enable a skill
60
+ *
61
+ * @param skill - Skill to enable
62
+ * @returns Enabled skill
63
+ */
64
+ export declare function enableSkill(skill: Skill): Skill;
65
+ /**
66
+ * Disable a skill
67
+ *
68
+ * @param skill - Skill to disable
69
+ * @returns Disabled skill
70
+ */
71
+ export declare function disableSkill(skill: Skill): Skill;
72
+ /**
73
+ * Check if skill matches filter
74
+ *
75
+ * @param skill - Skill to check
76
+ * @param filter - Filter criteria
77
+ * @returns true if matches
78
+ */
79
+ export declare function skillMatchesFilter(skill: Skill, filter: {
80
+ type?: string;
81
+ tags?: string[];
82
+ enabledOnly?: boolean;
83
+ }): boolean;
84
+ /**
85
+ * Create a no-op skill result
86
+ *
87
+ * @param message - Message
88
+ * @returns Skill result
89
+ */
90
+ export declare function createNoOpResult(message: string): SkillResult;
91
+ /**
92
+ * Create an error result
93
+ *
94
+ * @param error - Error message
95
+ * @param duration - Duration in ms
96
+ * @returns Skill result
97
+ */
98
+ export declare function createErrorResult(error: string, duration?: number): SkillResult;
99
+ //# sourceMappingURL=Skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skill.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/Skill.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE,OAAc,GACtB,KAAK,CAMP;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,CA2BtB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAK/C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAKhD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GACA,OAAO,CAmBT;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAO7D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,WAAW,CAOlF"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Skill Entity
3
+ *
4
+ * Represents a skill that can be executed
5
+ *
6
+ * @see REQ-SKILL-001 - Skill Loading
7
+ * @see DES-SKILL-001 - SkillManager
8
+ */
9
+ /**
10
+ * Create a skill
11
+ *
12
+ * @param metadata - Skill metadata
13
+ * @param executor - Skill executor
14
+ * @param enabled - Whether skill is enabled
15
+ * @returns Skill entity
16
+ */
17
+ export function createSkill(metadata, executor, enabled = true) {
18
+ return Object.freeze({
19
+ metadata,
20
+ executor,
21
+ enabled,
22
+ });
23
+ }
24
+ /**
25
+ * Execute a skill
26
+ *
27
+ * @param skill - Skill to execute
28
+ * @param context - Execution context
29
+ * @returns Execution result
30
+ */
31
+ export async function executeSkill(skill, context) {
32
+ if (!skill.enabled) {
33
+ return {
34
+ success: false,
35
+ error: `Skill ${skill.metadata.id} is disabled`,
36
+ duration: 0,
37
+ timestamp: new Date(),
38
+ };
39
+ }
40
+ const startTime = Date.now();
41
+ try {
42
+ const result = await skill.executor(context);
43
+ return {
44
+ ...result,
45
+ duration: Date.now() - startTime,
46
+ timestamp: new Date(),
47
+ };
48
+ }
49
+ catch (error) {
50
+ return {
51
+ success: false,
52
+ error: error instanceof Error ? error.message : String(error),
53
+ duration: Date.now() - startTime,
54
+ timestamp: new Date(),
55
+ };
56
+ }
57
+ }
58
+ /**
59
+ * Enable a skill
60
+ *
61
+ * @param skill - Skill to enable
62
+ * @returns Enabled skill
63
+ */
64
+ export function enableSkill(skill) {
65
+ return Object.freeze({
66
+ ...skill,
67
+ enabled: true,
68
+ });
69
+ }
70
+ /**
71
+ * Disable a skill
72
+ *
73
+ * @param skill - Skill to disable
74
+ * @returns Disabled skill
75
+ */
76
+ export function disableSkill(skill) {
77
+ return Object.freeze({
78
+ ...skill,
79
+ enabled: false,
80
+ });
81
+ }
82
+ /**
83
+ * Check if skill matches filter
84
+ *
85
+ * @param skill - Skill to check
86
+ * @param filter - Filter criteria
87
+ * @returns true if matches
88
+ */
89
+ export function skillMatchesFilter(skill, filter) {
90
+ if (filter.enabledOnly && !skill.enabled) {
91
+ return false;
92
+ }
93
+ if (filter.type && skill.metadata.type !== filter.type) {
94
+ return false;
95
+ }
96
+ if (filter.tags && filter.tags.length > 0) {
97
+ const hasAllTags = filter.tags.every(tag => skill.metadata.tags.includes(tag));
98
+ if (!hasAllTags) {
99
+ return false;
100
+ }
101
+ }
102
+ return true;
103
+ }
104
+ /**
105
+ * Create a no-op skill result
106
+ *
107
+ * @param message - Message
108
+ * @returns Skill result
109
+ */
110
+ export function createNoOpResult(message) {
111
+ return {
112
+ success: true,
113
+ data: message,
114
+ duration: 0,
115
+ timestamp: new Date(),
116
+ };
117
+ }
118
+ /**
119
+ * Create an error result
120
+ *
121
+ * @param error - Error message
122
+ * @param duration - Duration in ms
123
+ * @returns Skill result
124
+ */
125
+ export function createErrorResult(error, duration = 0) {
126
+ return {
127
+ success: false,
128
+ error,
129
+ duration,
130
+ timestamp: new Date(),
131
+ };
132
+ }
133
+ //# sourceMappingURL=Skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skill.js","sourceRoot":"","sources":["../../../src/domain/entities/Skill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * SkillRegistry Entity
3
+ *
4
+ * Registry of available skills
5
+ *
6
+ * @see REQ-SKILL-001 - Skill Loading
7
+ * @see REQ-SKILL-002 - Skill Validation
8
+ */
9
+ import type { Skill, SkillContext, SkillResult } from './Skill.js';
10
+ import type { SkillType } from '../value-objects/index.js';
11
+ /**
12
+ * Skill filter criteria
13
+ */
14
+ export interface SkillFilter {
15
+ readonly type?: SkillType;
16
+ readonly tags?: readonly string[];
17
+ readonly enabledOnly?: boolean;
18
+ readonly query?: string;
19
+ }
20
+ /**
21
+ * Skill registry entity
22
+ */
23
+ export interface SkillRegistry {
24
+ readonly skills: ReadonlyMap<string, Skill>;
25
+ readonly updatedAt: Date;
26
+ }
27
+ /**
28
+ * Create an empty skill registry
29
+ *
30
+ * @returns Empty registry
31
+ */
32
+ export declare function createSkillRegistry(): SkillRegistry;
33
+ /**
34
+ * Add skill to registry
35
+ *
36
+ * @param registry - Registry to update
37
+ * @param skill - Skill to add
38
+ * @returns Updated registry
39
+ */
40
+ export declare function addSkillToRegistry(registry: SkillRegistry, skill: Skill): SkillRegistry;
41
+ /**
42
+ * Remove skill from registry
43
+ *
44
+ * @param registry - Registry to update
45
+ * @param skillId - Skill ID to remove
46
+ * @returns Updated registry
47
+ */
48
+ export declare function removeSkillFromRegistry(registry: SkillRegistry, skillId: string): SkillRegistry;
49
+ /**
50
+ * Get skill by ID
51
+ *
52
+ * @param registry - Registry to search
53
+ * @param skillId - Skill ID
54
+ * @returns Skill or undefined
55
+ */
56
+ export declare function getSkillById(registry: SkillRegistry, skillId: string): Skill | undefined;
57
+ /**
58
+ * Find skills by filter
59
+ *
60
+ * @param registry - Registry to search
61
+ * @param filter - Filter criteria
62
+ * @returns Matching skills
63
+ */
64
+ export declare function findSkills(registry: SkillRegistry, filter: SkillFilter): Skill[];
65
+ /**
66
+ * Get all skills from registry
67
+ *
68
+ * @param registry - Registry
69
+ * @returns All skills
70
+ */
71
+ export declare function getAllSkills(registry: SkillRegistry): Skill[];
72
+ /**
73
+ * Get skills by type
74
+ *
75
+ * @param registry - Registry
76
+ * @param type - Skill type
77
+ * @returns Skills of the specified type
78
+ */
79
+ export declare function getSkillsByType(registry: SkillRegistry, type: SkillType): Skill[];
80
+ /**
81
+ * Execute a skill from registry
82
+ *
83
+ * @param registry - Registry
84
+ * @param skillId - Skill ID
85
+ * @param context - Execution context
86
+ * @returns Execution result
87
+ */
88
+ export declare function executeSkillFromRegistry(registry: SkillRegistry, skillId: string, context: SkillContext): Promise<SkillResult>;
89
+ /**
90
+ * Get registry statistics
91
+ *
92
+ * @param registry - Registry
93
+ * @returns Statistics
94
+ */
95
+ export declare function getRegistryStats(registry: SkillRegistry): {
96
+ total: number;
97
+ enabled: number;
98
+ disabled: number;
99
+ byType: Record<string, number>;
100
+ };
101
+ //# sourceMappingURL=SkillRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillRegistry.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/SkillRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAKnD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,GACX,aAAa,CAQf;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,MAAM,GACd,aAAa,CAQf;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,MAAM,GACd,KAAK,GAAG,SAAS,CAEnB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,WAAW,GAClB,KAAK,EAAE,CA6BT;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,KAAK,EAAE,CAE7D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,SAAS,GACd,KAAK,EAAE,CAET;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,CAatB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,GAAG;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAsBA"}