@sowonai/crewx-sdk 0.1.0-dev.2 → 0.1.0-dev.21

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 (84) hide show
  1. package/README.md +28 -0
  2. package/dist/config/yaml-loader.js +6 -2
  3. package/dist/config/yaml-loader.js.map +1 -1
  4. package/dist/conversation/conversation-history.interface.d.ts +6 -4
  5. package/dist/core/agent/agent-factory.d.ts +7 -7
  6. package/dist/core/agent/agent-factory.js +23 -0
  7. package/dist/core/agent/agent-factory.js.map +1 -1
  8. package/dist/core/agent/agent-runtime.d.ts +18 -2
  9. package/dist/core/agent/agent-runtime.js +128 -24
  10. package/dist/core/agent/agent-runtime.js.map +1 -1
  11. package/dist/core/agent/index.d.ts +1 -1
  12. package/dist/core/agent/index.js +2 -1
  13. package/dist/core/agent/index.js.map +1 -1
  14. package/dist/core/providers/ai-provider.interface.d.ts +1 -0
  15. package/dist/core/providers/ai-provider.interface.js.map +1 -1
  16. package/dist/core/providers/base-ai.provider.d.ts +7 -0
  17. package/dist/core/providers/base-ai.provider.js +8 -4
  18. package/dist/core/providers/base-ai.provider.js.map +1 -1
  19. package/dist/core/providers/dynamic-provider.factory.d.ts +64 -0
  20. package/dist/core/providers/dynamic-provider.factory.js +533 -0
  21. package/dist/core/providers/dynamic-provider.factory.js.map +1 -0
  22. package/dist/core/providers/index.d.ts +3 -0
  23. package/dist/core/providers/index.js +7 -1
  24. package/dist/core/providers/index.js.map +1 -1
  25. package/dist/core/providers/mock.provider.d.ts +13 -0
  26. package/dist/core/providers/mock.provider.js +55 -0
  27. package/dist/core/providers/mock.provider.js.map +1 -0
  28. package/dist/core/providers/provider-factory.d.ts +3 -0
  29. package/dist/core/providers/provider-factory.js +27 -0
  30. package/dist/core/providers/provider-factory.js.map +1 -0
  31. package/dist/index.d.ts +17 -4
  32. package/dist/index.js +31 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/schema/skills-parser.d.ts +8 -0
  35. package/dist/schema/skills-parser.js +421 -0
  36. package/dist/schema/skills-parser.js.map +1 -0
  37. package/dist/schema/skills.types.d.ts +144 -0
  38. package/dist/schema/skills.types.js +41 -0
  39. package/dist/schema/skills.types.js.map +1 -0
  40. package/dist/services/index.d.ts +2 -0
  41. package/dist/services/index.js +19 -0
  42. package/dist/services/index.js.map +1 -0
  43. package/dist/services/layout-loader.service.d.ts +18 -0
  44. package/dist/services/layout-loader.service.js +266 -0
  45. package/dist/services/layout-loader.service.js.map +1 -0
  46. package/dist/services/layout-renderer.service.d.ts +25 -0
  47. package/dist/services/layout-renderer.service.js +226 -0
  48. package/dist/services/layout-renderer.service.js.map +1 -0
  49. package/dist/services/props-validator.service.d.ts +29 -0
  50. package/dist/services/props-validator.service.js +332 -0
  51. package/dist/services/props-validator.service.js.map +1 -0
  52. package/dist/skills/adapter/claude-skill-adapter.d.ts +11 -0
  53. package/dist/skills/adapter/claude-skill-adapter.js +222 -0
  54. package/dist/skills/adapter/claude-skill-adapter.js.map +1 -0
  55. package/dist/skills/index.d.ts +6 -0
  56. package/dist/skills/index.js +31 -0
  57. package/dist/skills/index.js.map +1 -0
  58. package/dist/skills/runtime/progressive-loader.d.ts +27 -0
  59. package/dist/skills/runtime/progressive-loader.js +186 -0
  60. package/dist/skills/runtime/progressive-loader.js.map +1 -0
  61. package/dist/skills/runtime/runtime-requirements-validator.d.ts +23 -0
  62. package/dist/skills/runtime/runtime-requirements-validator.js +248 -0
  63. package/dist/skills/runtime/runtime-requirements-validator.js.map +1 -0
  64. package/dist/skills/runtime/skill-runtime.service.d.ts +42 -0
  65. package/dist/skills/runtime/skill-runtime.service.js +434 -0
  66. package/dist/skills/runtime/skill-runtime.service.js.map +1 -0
  67. package/dist/types/agent.types.d.ts +10 -2
  68. package/dist/types/agent.types.js.map +1 -1
  69. package/dist/types/index.d.ts +3 -0
  70. package/dist/types/index.js +3 -0
  71. package/dist/types/index.js.map +1 -1
  72. package/dist/types/layout.types.d.ts +113 -0
  73. package/dist/types/layout.types.js +22 -0
  74. package/dist/types/layout.types.js.map +1 -0
  75. package/dist/types/provider.types.d.ts +12 -0
  76. package/dist/types/provider.types.js +3 -0
  77. package/dist/types/provider.types.js.map +1 -0
  78. package/dist/types/skill-runtime.types.d.ts +244 -0
  79. package/dist/types/skill-runtime.types.js +44 -0
  80. package/dist/types/skill-runtime.types.js.map +1 -0
  81. package/dist/types/template.types.d.ts +38 -0
  82. package/dist/types/template.types.js +3 -0
  83. package/dist/types/template.types.js.map +1 -0
  84. package/package.json +14 -13
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.types.js","sourceRoot":"","sources":["../../src/types/provider.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,244 @@
1
+ import { SkillMetadata, SkillContent, SkillDefinition, SkillValidationError as SkillValidationDetail, SkillValidationResult } from '../schema/skills.types';
2
+ import { AgentDefinition } from '../schema/skills.types';
3
+ export type SkillRuntimeStage = 'load' | 'validate' | 'prepare' | 'execute' | 'cleanup';
4
+ export interface SkillLoadOptions {
5
+ validationMode?: 'strict' | 'lenient';
6
+ loadContent?: boolean;
7
+ resolveDependencies?: boolean;
8
+ searchPaths?: string[];
9
+ cache?: boolean;
10
+ filters?: {
11
+ include?: string[];
12
+ exclude?: string[];
13
+ };
14
+ }
15
+ export interface SkillExecutionContext {
16
+ skillName: string;
17
+ skillVersion: string;
18
+ workingDirectory: string;
19
+ environment: Record<string, string>;
20
+ timeout: number;
21
+ runtimeRequirements: {
22
+ python?: string;
23
+ node?: string;
24
+ docker?: boolean;
25
+ memory?: string;
26
+ [key: string]: string | boolean | undefined;
27
+ };
28
+ configuration: {
29
+ metadata: SkillMetadata;
30
+ content?: SkillContent;
31
+ agentConfig: AgentDefinition;
32
+ };
33
+ options: {
34
+ validationMode: 'strict' | 'lenient';
35
+ progressiveLoading: boolean;
36
+ cacheEnabled: boolean;
37
+ };
38
+ executionId: string;
39
+ startTime: Date;
40
+ }
41
+ export interface SDKExecutionContext extends SkillExecutionContext {
42
+ services: {
43
+ layoutLoader?: any;
44
+ templateContext?: any;
45
+ agentFactory?: any;
46
+ };
47
+ }
48
+ export interface CLIExecutionContext extends SkillExecutionContext {
49
+ cliOptions: {
50
+ verbose?: boolean;
51
+ dryRun?: boolean;
52
+ debugMode?: boolean;
53
+ interactive?: boolean;
54
+ };
55
+ terminal: {
56
+ width: number;
57
+ height: number;
58
+ interactive: boolean;
59
+ };
60
+ }
61
+ export interface SkillExecutionResult {
62
+ success: boolean;
63
+ output?: string;
64
+ error?: Error;
65
+ metadata: {
66
+ executionId: string;
67
+ executionTime: number;
68
+ memoryUsage?: number;
69
+ dependenciesUsed: string[];
70
+ cacheHits: number;
71
+ cacheMisses: number;
72
+ };
73
+ artifacts?: {
74
+ type: 'file' | 'directory' | 'url';
75
+ path: string;
76
+ description?: string;
77
+ }[];
78
+ }
79
+ export interface IProgressiveSkillLoader {
80
+ loadMetadata(skillPaths: string[]): Promise<SkillMetadata[]>;
81
+ loadFullContent(skillName: string): Promise<SkillDefinition>;
82
+ isFullyLoaded(skillName: string): boolean;
83
+ preloadContent(skillNames: string[]): Promise<void>;
84
+ clearContentCache(): Promise<void>;
85
+ }
86
+ export interface SkillCacheStats {
87
+ metadataCache: {
88
+ count: number;
89
+ size: number;
90
+ hitRate: number;
91
+ };
92
+ contentCache: {
93
+ count: number;
94
+ size: number;
95
+ hitRate: number;
96
+ };
97
+ total: {
98
+ size: number;
99
+ hitRate: number;
100
+ };
101
+ }
102
+ export interface ISkillRuntime {
103
+ loadSkills(options?: SkillLoadOptions): Promise<SkillMetadata[]>;
104
+ validateSkill(skillName: string): Promise<SkillValidationResult>;
105
+ prepareContext(skillName: string, agentConfig: AgentDefinition, options?: Partial<SkillExecutionContext>): Promise<SkillExecutionContext>;
106
+ executeSkill(context: SkillExecutionContext, input: string): Promise<SkillExecutionResult>;
107
+ cleanup(context: SkillExecutionContext): Promise<void>;
108
+ listAvailableSkills(): Promise<string[]>;
109
+ getSkillMetadata(skillName: string): Promise<SkillMetadata | null>;
110
+ getSkillDefinition(skillName: string): Promise<SkillDefinition | null>;
111
+ resolveDependencies(skillName: string): Promise<SkillResolutionResult>;
112
+ clearCache(): Promise<void>;
113
+ getCacheStats(): SkillCacheStats;
114
+ getRuntimeInfo(): SkillRuntimeInfo;
115
+ shutdown(): Promise<void>;
116
+ }
117
+ export interface SkillResolutionResult {
118
+ name: string;
119
+ definition: SkillDefinition;
120
+ dependencies: SkillResolutionResult[];
121
+ sourcePath: string;
122
+ metadata: {
123
+ resolvedAt: Date;
124
+ version: string;
125
+ dependenciesCount: number;
126
+ };
127
+ }
128
+ export interface SkillRuntimeInfo {
129
+ version: string;
130
+ startTime: Date;
131
+ skillsLoaded: number;
132
+ uptime: number;
133
+ memoryUsage: {
134
+ rss: number;
135
+ heapUsed: number;
136
+ heapTotal: number;
137
+ };
138
+ }
139
+ export interface IClaudeSkillAdapter {
140
+ extractMetadata(skillFilePath: string): Promise<SkillMetadata>;
141
+ parseContent(fullContent: string): SkillContent;
142
+ mapToCrewXAgent(skill: SkillDefinition): AgentDefinition;
143
+ validateSkillFile(filePath: string): Promise<SkillValidationResult>;
144
+ discoverSkills(directory: string): Promise<string[]>;
145
+ }
146
+ export interface SkillExecutionErrorDetails {
147
+ stage: SkillRuntimeStage;
148
+ skillName: string;
149
+ executionId?: string;
150
+ error: Error;
151
+ recoverable: boolean;
152
+ suggestions: string[];
153
+ timestamp: Date;
154
+ }
155
+ export interface SkillRuntimeEvents {
156
+ 'skill:loaded': {
157
+ skillName: string;
158
+ metadata: SkillMetadata;
159
+ };
160
+ 'skill:validated': {
161
+ skillName: string;
162
+ result: SkillValidationResult;
163
+ };
164
+ 'skill:executed': {
165
+ skillName: string;
166
+ result: SkillExecutionResult;
167
+ };
168
+ 'skill:error': {
169
+ error: SkillExecutionErrorDetails;
170
+ };
171
+ 'cache:cleared': {};
172
+ 'runtime:shutdown': {};
173
+ }
174
+ export interface ProgressiveDisclosureConfig {
175
+ enabled: boolean;
176
+ metadataCacheTTL: number;
177
+ contentCacheTTL: number;
178
+ maxPreloadSkills: number;
179
+ preloadStrategy: 'recent' | 'popular' | 'dependency' | 'none';
180
+ contentLoadThreshold: number;
181
+ }
182
+ export interface RuntimeRequirementsValidator {
183
+ validatePython(requirement: string): Promise<boolean>;
184
+ validateNode(requirement: string): Promise<boolean>;
185
+ validateDocker(): Promise<boolean>;
186
+ validateMemory(requirement: string): Promise<boolean>;
187
+ getCurrentRuntime(): Promise<RuntimeInfo>;
188
+ }
189
+ export interface RuntimeInfo {
190
+ python?: {
191
+ version: string;
192
+ available: boolean;
193
+ };
194
+ node?: {
195
+ version: string;
196
+ available: boolean;
197
+ };
198
+ docker?: {
199
+ version: string;
200
+ available: boolean;
201
+ };
202
+ memory: {
203
+ total: number;
204
+ available: number;
205
+ };
206
+ }
207
+ export interface SkillBundleInfo {
208
+ id: string;
209
+ version: string;
210
+ skills: string[];
211
+ metadata: {
212
+ name: string;
213
+ description: string;
214
+ author?: string;
215
+ createdAt: Date;
216
+ size: number;
217
+ };
218
+ runtimeRequirements: {
219
+ python?: string;
220
+ node?: string;
221
+ docker?: boolean;
222
+ [key: string]: string | boolean | undefined;
223
+ };
224
+ }
225
+ export declare class SkillRuntimeError extends Error {
226
+ readonly stage: SkillRuntimeStage;
227
+ readonly skillName?: string | undefined;
228
+ readonly cause?: Error | undefined;
229
+ constructor(message: string, stage: SkillRuntimeStage, skillName?: string | undefined, cause?: Error | undefined);
230
+ }
231
+ export declare class ProgressiveLoadingError extends SkillRuntimeError {
232
+ constructor(message: string, skillName?: string, cause?: Error);
233
+ }
234
+ export declare class SkillValidationError extends SkillRuntimeError {
235
+ readonly validationErrors: SkillValidationDetail[];
236
+ constructor(message: string, validationErrors: SkillValidationDetail[], skillName?: string);
237
+ }
238
+ export declare class SkillExecutionError extends SkillRuntimeError {
239
+ readonly executionId: string;
240
+ constructor(message: string, skillName: string, executionId: string, cause?: Error);
241
+ }
242
+ export declare class SkillContextError extends SkillRuntimeError {
243
+ constructor(message: string, skillName?: string, cause?: Error);
244
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SkillContextError = exports.SkillExecutionError = exports.SkillValidationError = exports.ProgressiveLoadingError = exports.SkillRuntimeError = void 0;
4
+ class SkillRuntimeError extends Error {
5
+ constructor(message, stage, skillName, cause) {
6
+ super(message);
7
+ this.stage = stage;
8
+ this.skillName = skillName;
9
+ this.cause = cause;
10
+ this.name = 'SkillRuntimeError';
11
+ }
12
+ }
13
+ exports.SkillRuntimeError = SkillRuntimeError;
14
+ class ProgressiveLoadingError extends SkillRuntimeError {
15
+ constructor(message, skillName, cause) {
16
+ super(message, 'load', skillName, cause);
17
+ this.name = 'ProgressiveLoadingError';
18
+ }
19
+ }
20
+ exports.ProgressiveLoadingError = ProgressiveLoadingError;
21
+ class SkillValidationError extends SkillRuntimeError {
22
+ constructor(message, validationErrors, skillName) {
23
+ super(message, 'validate', skillName);
24
+ this.validationErrors = validationErrors;
25
+ this.name = 'SkillValidationError';
26
+ }
27
+ }
28
+ exports.SkillValidationError = SkillValidationError;
29
+ class SkillExecutionError extends SkillRuntimeError {
30
+ constructor(message, skillName, executionId, cause) {
31
+ super(message, 'execute', skillName, cause);
32
+ this.executionId = executionId;
33
+ this.name = 'SkillExecutionError';
34
+ }
35
+ }
36
+ exports.SkillExecutionError = SkillExecutionError;
37
+ class SkillContextError extends SkillRuntimeError {
38
+ constructor(message, skillName, cause) {
39
+ super(message, 'prepare', skillName, cause);
40
+ this.name = 'SkillContextError';
41
+ }
42
+ }
43
+ exports.SkillContextError = SkillContextError;
44
+ //# sourceMappingURL=skill-runtime.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-runtime.types.js","sourceRoot":"","sources":["../../src/types/skill-runtime.types.ts"],"names":[],"mappings":";;;AA4YA,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,YACE,OAAe,EACC,KAAwB,EACxB,SAAkB,EAClB,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,UAAK,GAAL,KAAK,CAAmB;QACxB,cAAS,GAAT,SAAS,CAAS;QAClB,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAVD,8CAUC;AAED,MAAa,uBAAwB,SAAQ,iBAAiB;IAC5D,YAAY,OAAe,EAAE,SAAkB,EAAE,KAAa;QAC5D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AALD,0DAKC;AAED,MAAa,oBAAqB,SAAQ,iBAAiB;IACzD,YACE,OAAe,EACC,gBAAyC,EACzD,SAAkB;QAElB,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAHtB,qBAAgB,GAAhB,gBAAgB,CAAyB;QAIzD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AATD,oDASC;AAED,MAAa,mBAAoB,SAAQ,iBAAiB;IACxD,YACE,OAAe,EACf,SAAiB,EACD,WAAmB,EACnC,KAAa;QAEb,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAH5B,gBAAW,GAAX,WAAW,CAAQ;QAInC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAVD,kDAUC;AAED,MAAa,iBAAkB,SAAQ,iBAAiB;IACtD,YAAY,OAAe,EAAE,SAAkB,EAAE,KAAa;QAC5D,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AALD,8CAKC"}
@@ -0,0 +1,38 @@
1
+ import type { BaseMessage } from '../conversation/conversation-history.interface';
2
+ export interface AgentMetadata {
3
+ specialties?: string[];
4
+ capabilities?: string[];
5
+ description?: string;
6
+ }
7
+ export interface TemplateVars {
8
+ security_key?: string;
9
+ [key: string]: unknown;
10
+ }
11
+ export interface BaseContext {
12
+ user_input?: string;
13
+ messages?: BaseMessage[];
14
+ mode?: 'query' | 'execute';
15
+ platform?: string;
16
+ env?: Record<string, string | undefined>;
17
+ tools?: {
18
+ list: Array<{
19
+ name: string;
20
+ description: string;
21
+ input_schema: any;
22
+ output_schema?: any;
23
+ }>;
24
+ json: string;
25
+ count: number;
26
+ };
27
+ vars?: TemplateVars;
28
+ }
29
+ export interface TemplateContext extends BaseContext {
30
+ agent?: {
31
+ id: string;
32
+ name: string;
33
+ provider?: string;
34
+ model?: string;
35
+ workingDirectory?: string;
36
+ };
37
+ agentMetadata?: AgentMetadata;
38
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=template.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.types.js","sourceRoot":"","sources":["../../src/types/template.types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sowonai/crewx-sdk",
3
- "version": "0.1.0-dev.2",
3
+ "version": "0.1.0-dev.21",
4
4
  "license": "Apache-2.0",
5
5
  "description": "SowonAI CrewX SDK",
6
6
  "type": "commonjs",
@@ -12,16 +12,6 @@
12
12
  "README.md",
13
13
  "LICENSE"
14
14
  ],
15
- "scripts": {
16
- "build": "tsc -p tsconfig.json",
17
- "test": "vitest run --config ./vitest.config.ts",
18
- "test:watch": "vitest --config ./vitest.config.ts",
19
- "test:ui": "vitest --ui --config ./vitest.config.ts",
20
- "test:unit": "vitest run --config ./vitest.config.ts tests/unit/**/*.test.ts",
21
- "test:integration": "vitest run --config ./vitest.config.ts tests/integration/**/*.test.ts --passWithNoTests",
22
- "test:coverage": "vitest run --config ./vitest.config.ts --coverage",
23
- "lint": "echo \"SDK lint pending\" && exit 0"
24
- },
25
15
  "exports": {
26
16
  ".": {
27
17
  "types": "./dist/index.d.ts",
@@ -52,6 +42,17 @@
52
42
  "access": "public"
53
43
  },
54
44
  "devDependencies": {
55
- "@types/js-yaml": "^4.0.9"
45
+ "@types/js-yaml": "^4.0.9",
46
+ "typescript": "^5.0.0"
47
+ },
48
+ "scripts": {
49
+ "build": "tsc -p tsconfig.json",
50
+ "test": "vitest run --config ./vitest.config.ts",
51
+ "test:watch": "vitest --config ./vitest.config.ts",
52
+ "test:ui": "vitest --ui --config ./vitest.config.ts",
53
+ "test:unit": "vitest run --config ./vitest.config.ts tests/unit/**/*.test.ts",
54
+ "test:integration": "vitest run --config ./vitest.config.ts tests/integration/**/*.test.ts --passWithNoTests",
55
+ "test:coverage": "vitest run --config ./vitest.config.ts --coverage",
56
+ "lint": "echo \"SDK lint pending\" && exit 0"
56
57
  }
57
- }
58
+ }