skillshield 1.0.0
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.
- package/LICENSE +21 -0
- package/README.md +400 -0
- package/dist/channels/discord.d.ts +18 -0
- package/dist/channels/discord.d.ts.map +1 -0
- package/dist/channels/discord.js +275 -0
- package/dist/channels/discord.js.map +1 -0
- package/dist/channels/index.d.ts +67 -0
- package/dist/channels/index.d.ts.map +1 -0
- package/dist/channels/index.js +127 -0
- package/dist/channels/index.js.map +1 -0
- package/dist/channels/slack.d.ts +20 -0
- package/dist/channels/slack.d.ts.map +1 -0
- package/dist/channels/slack.js +296 -0
- package/dist/channels/slack.js.map +1 -0
- package/dist/channels/telegram.d.ts +20 -0
- package/dist/channels/telegram.d.ts.map +1 -0
- package/dist/channels/telegram.js +223 -0
- package/dist/channels/telegram.js.map +1 -0
- package/dist/channels/whatsapp.d.ts +25 -0
- package/dist/channels/whatsapp.d.ts.map +1 -0
- package/dist/channels/whatsapp.js +187 -0
- package/dist/channels/whatsapp.js.map +1 -0
- package/dist/cli/commands/badge.d.ts +11 -0
- package/dist/cli/commands/badge.d.ts.map +1 -0
- package/dist/cli/commands/badge.js +98 -0
- package/dist/cli/commands/badge.js.map +1 -0
- package/dist/cli/commands/config.d.ts +3 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +140 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/deploy.d.ts +3 -0
- package/dist/cli/commands/deploy.d.ts.map +1 -0
- package/dist/cli/commands/deploy.js +56 -0
- package/dist/cli/commands/deploy.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +99 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +3 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +90 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/list.d.ts +3 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +76 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/run.d.ts +3 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +160 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/scan.d.ts +3 -0
- package/dist/cli/commands/scan.d.ts.map +1 -0
- package/dist/cli/commands/scan.js +133 -0
- package/dist/cli/commands/scan.js.map +1 -0
- package/dist/cli/commands/search.d.ts +3 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +56 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +70 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/config.d.ts +167 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +398 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/parser.d.ts +34 -0
- package/dist/core/parser.d.ts.map +1 -0
- package/dist/core/parser.js +462 -0
- package/dist/core/parser.js.map +1 -0
- package/dist/core/runtime.d.ts +68 -0
- package/dist/core/runtime.d.ts.map +1 -0
- package/dist/core/runtime.js +560 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/core/types.d.ts +525 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +44 -0
- package/dist/core/types.js.map +1 -0
- package/dist/guard/index.d.ts +57 -0
- package/dist/guard/index.d.ts.map +1 -0
- package/dist/guard/index.js +238 -0
- package/dist/guard/index.js.map +1 -0
- package/dist/guard/patterns.d.ts +21 -0
- package/dist/guard/patterns.d.ts.map +1 -0
- package/dist/guard/patterns.js +797 -0
- package/dist/guard/patterns.js.map +1 -0
- package/dist/hub/index.d.ts +44 -0
- package/dist/hub/index.d.ts.map +1 -0
- package/dist/hub/index.js +144 -0
- package/dist/hub/index.js.map +1 -0
- package/dist/hub/registry.d.ts +52 -0
- package/dist/hub/registry.d.ts.map +1 -0
- package/dist/hub/registry.js +192 -0
- package/dist/hub/registry.js.map +1 -0
- package/dist/i18n/index.d.ts +19 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +92 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/locales/en.d.ts +110 -0
- package/dist/i18n/locales/en.d.ts.map +1 -0
- package/dist/i18n/locales/en.js +123 -0
- package/dist/i18n/locales/en.js.map +1 -0
- package/dist/i18n/locales/es.d.ts +110 -0
- package/dist/i18n/locales/es.d.ts.map +1 -0
- package/dist/i18n/locales/es.js +123 -0
- package/dist/i18n/locales/es.js.map +1 -0
- package/dist/i18n/locales/pt.d.ts +110 -0
- package/dist/i18n/locales/pt.d.ts.map +1 -0
- package/dist/i18n/locales/pt.js +123 -0
- package/dist/i18n/locales/pt.js.map +1 -0
- package/dist/i18n/locales/zh.d.ts +110 -0
- package/dist/i18n/locales/zh.d.ts.map +1 -0
- package/dist/i18n/locales/zh.js +123 -0
- package/dist/i18n/locales/zh.js.map +1 -0
- package/dist/index.d.ts +168 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +275 -0
- package/dist/index.js.map +1 -0
- package/dist/router/index.d.ts +89 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +292 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/providers.d.ts +48 -0
- package/dist/router/providers.d.ts.map +1 -0
- package/dist/router/providers.js +733 -0
- package/dist/router/providers.js.map +1 -0
- package/dist/runtime/executor.d.ts +96 -0
- package/dist/runtime/executor.d.ts.map +1 -0
- package/dist/runtime/executor.js +389 -0
- package/dist/runtime/executor.js.map +1 -0
- package/dist/sandbox/index.d.ts +52 -0
- package/dist/sandbox/index.d.ts.map +1 -0
- package/dist/sandbox/index.js +248 -0
- package/dist/sandbox/index.js.map +1 -0
- package/dist/security/skillguard.d.ts +25 -0
- package/dist/security/skillguard.d.ts.map +1 -0
- package/dist/security/skillguard.js +137 -0
- package/dist/security/skillguard.js.map +1 -0
- package/dist/tools/index.d.ts +55 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +276 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/web-engine.d.ts +158 -0
- package/dist/tools/web-engine.d.ts.map +1 -0
- package/dist/tools/web-engine.js +802 -0
- package/dist/tools/web-engine.js.map +1 -0
- package/dist/tools/web-tools.d.ts +173 -0
- package/dist/tools/web-tools.d.ts.map +1 -0
- package/dist/tools/web-tools.js +251 -0
- package/dist/tools/web-tools.js.map +1 -0
- package/dist/utils/errors.d.ts +44 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +130 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/logger.d.ts +28 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +121 -0
- package/dist/utils/logger.js.map +1 -0
- package/examples/basic-usage.ts +276 -0
- package/examples/code-reviewer.skill.md +83 -0
- package/examples/creative-writer.skill.md +80 -0
- package/examples/data-analyzer.skill.md +61 -0
- package/examples/hello-world.skill.md +36 -0
- package/examples/sample-skill.md +156 -0
- package/examples/summarizer.skill.md +62 -0
- package/examples/translator.skill.md +45 -0
- package/package.json +110 -0
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SkillKit Core Types
|
|
3
|
+
* Complete TypeScript definitions for the SkillKit runtime system.
|
|
4
|
+
* Covers skill definitions, configuration, execution, and security.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Supported AI model providers
|
|
8
|
+
*/
|
|
9
|
+
export declare enum ModelProvider {
|
|
10
|
+
OPENAI = "openai",
|
|
11
|
+
ANTHROPIC = "anthropic",
|
|
12
|
+
GOOGLE = "google",
|
|
13
|
+
OLLAMA = "ollama",
|
|
14
|
+
DEEPSEEK = "deepseek",
|
|
15
|
+
QWEN = "qwen",
|
|
16
|
+
GROQ = "groq",
|
|
17
|
+
TOGETHER = "together",
|
|
18
|
+
FIREWORKS = "fireworks",
|
|
19
|
+
LOCAL = "local"
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Threat severity levels for security scanning
|
|
23
|
+
*/
|
|
24
|
+
export declare enum ThreatLevel {
|
|
25
|
+
CRITICAL = "CRITICAL",
|
|
26
|
+
HIGH = "HIGH",
|
|
27
|
+
MEDIUM = "MEDIUM",
|
|
28
|
+
LOW = "LOW",
|
|
29
|
+
SAFE = "SAFE"
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Multi-channel message types
|
|
33
|
+
*/
|
|
34
|
+
export declare enum ChannelType {
|
|
35
|
+
CLI = "cli",
|
|
36
|
+
WHATSAPP = "whatsapp",
|
|
37
|
+
TELEGRAM = "telegram",
|
|
38
|
+
DISCORD = "discord",
|
|
39
|
+
SLACK = "slack"
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Tool definition as specified in SKILL.md
|
|
43
|
+
*/
|
|
44
|
+
export interface SkillTool {
|
|
45
|
+
/** Tool name - must be unique within skill */
|
|
46
|
+
name: string;
|
|
47
|
+
/** Human-readable description */
|
|
48
|
+
description: string;
|
|
49
|
+
/** Tool input parameters schema (JSON Schema format) */
|
|
50
|
+
inputSchema: Record<string, unknown>;
|
|
51
|
+
/** Optional: Example usage */
|
|
52
|
+
example?: string;
|
|
53
|
+
/** Optional: Tool-specific security restrictions */
|
|
54
|
+
securityLevel?: 'public' | 'restricted' | 'admin';
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Input parameter definition with validation
|
|
58
|
+
*/
|
|
59
|
+
export interface SkillInput {
|
|
60
|
+
/** Parameter name */
|
|
61
|
+
name: string;
|
|
62
|
+
/** Data type: string, number, boolean, array, object */
|
|
63
|
+
type: 'string' | 'number' | 'boolean' | 'array' | 'object';
|
|
64
|
+
/** Human-readable description */
|
|
65
|
+
description: string;
|
|
66
|
+
/** Whether this parameter is required */
|
|
67
|
+
required: boolean;
|
|
68
|
+
/** Default value if not provided */
|
|
69
|
+
default?: unknown;
|
|
70
|
+
/** JSON Schema constraints (minLength, maxLength, pattern, etc.) */
|
|
71
|
+
schema?: Record<string, unknown>;
|
|
72
|
+
/** Example value */
|
|
73
|
+
example?: unknown;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Output specification
|
|
77
|
+
*/
|
|
78
|
+
export interface SkillOutput {
|
|
79
|
+
/** Output name/key */
|
|
80
|
+
name: string;
|
|
81
|
+
/** Data type returned */
|
|
82
|
+
type: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'stream';
|
|
83
|
+
/** Human-readable description */
|
|
84
|
+
description: string;
|
|
85
|
+
/** JSON Schema for validation */
|
|
86
|
+
schema?: Record<string, unknown>;
|
|
87
|
+
/** Example output */
|
|
88
|
+
example?: unknown;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Model requirements from SKILL.md
|
|
92
|
+
*/
|
|
93
|
+
export interface ModelRequirements {
|
|
94
|
+
/** Minimum context window size */
|
|
95
|
+
minContextWindow?: number;
|
|
96
|
+
/** Whether tool/function calling is required */
|
|
97
|
+
requiresTools?: boolean;
|
|
98
|
+
/** Required provider capability flags */
|
|
99
|
+
capabilities?: string[];
|
|
100
|
+
/** Recommended model for optimal performance */
|
|
101
|
+
recommended?: string;
|
|
102
|
+
/** Minimum model size (parameters) */
|
|
103
|
+
minSize?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge';
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Parsed SKILL.md file structure
|
|
107
|
+
*/
|
|
108
|
+
export interface SkillDefinition {
|
|
109
|
+
/** Skill metadata from frontmatter */
|
|
110
|
+
metadata: {
|
|
111
|
+
/** Skill name (unique identifier) */
|
|
112
|
+
name: string;
|
|
113
|
+
/** Human-readable title */
|
|
114
|
+
title?: string;
|
|
115
|
+
/** Detailed description of what skill does */
|
|
116
|
+
description: string;
|
|
117
|
+
/** Semantic version following semver */
|
|
118
|
+
version: string;
|
|
119
|
+
/** Skill author/creator */
|
|
120
|
+
author: string;
|
|
121
|
+
/** List of semantic tags for discovery */
|
|
122
|
+
tags: string[];
|
|
123
|
+
/** License type (MIT, Apache-2.0, etc.) */
|
|
124
|
+
license?: string;
|
|
125
|
+
/** Homepage or documentation URL */
|
|
126
|
+
homepage?: string;
|
|
127
|
+
/** Model requirements and constraints */
|
|
128
|
+
modelRequirements?: ModelRequirements;
|
|
129
|
+
/** Estimated execution time in ms */
|
|
130
|
+
estimatedRuntime?: number;
|
|
131
|
+
/** Supported input/output channels */
|
|
132
|
+
channels?: ChannelType[];
|
|
133
|
+
/** Whether skill requires authentication */
|
|
134
|
+
requiresAuth?: boolean;
|
|
135
|
+
/** Cost per execution (if applicable) */
|
|
136
|
+
costPerExecution?: number;
|
|
137
|
+
/** Custom metadata */
|
|
138
|
+
custom?: Record<string, unknown>;
|
|
139
|
+
};
|
|
140
|
+
/** System prompt for model - defines behavior */
|
|
141
|
+
systemPrompt: string;
|
|
142
|
+
/** Main instructions for the task */
|
|
143
|
+
instructions: string;
|
|
144
|
+
/** Input parameters specification */
|
|
145
|
+
inputs: SkillInput[];
|
|
146
|
+
/** Expected outputs specification */
|
|
147
|
+
outputs: SkillOutput[];
|
|
148
|
+
/** Tools/functions the skill can use */
|
|
149
|
+
tools?: SkillTool[];
|
|
150
|
+
/** Usage examples */
|
|
151
|
+
examples: SkillExample[];
|
|
152
|
+
/** Raw body content (markdown) */
|
|
153
|
+
body: string;
|
|
154
|
+
/** Original file path */
|
|
155
|
+
filepath?: string;
|
|
156
|
+
/** Parsed timestamp */
|
|
157
|
+
parsedAt?: Date;
|
|
158
|
+
/** Raw frontmatter content */
|
|
159
|
+
rawFrontmatter?: string;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Usage example for documentation
|
|
163
|
+
*/
|
|
164
|
+
export interface SkillExample {
|
|
165
|
+
/** Example title/description */
|
|
166
|
+
title: string;
|
|
167
|
+
/** Input values for the example */
|
|
168
|
+
input: Record<string, unknown>;
|
|
169
|
+
/** Expected output */
|
|
170
|
+
expectedOutput: Record<string, unknown>;
|
|
171
|
+
/** Example explanation */
|
|
172
|
+
explanation?: string;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Model-specific configuration
|
|
176
|
+
*/
|
|
177
|
+
export interface ModelConfig {
|
|
178
|
+
/** API key for authentication */
|
|
179
|
+
apiKey?: string;
|
|
180
|
+
/** Custom API endpoint URL */
|
|
181
|
+
baseUrl?: string;
|
|
182
|
+
/** Specific model identifier */
|
|
183
|
+
model: string;
|
|
184
|
+
/** Sampling temperature (0-2) */
|
|
185
|
+
temperature?: number;
|
|
186
|
+
/** Top-p nucleus sampling */
|
|
187
|
+
topP?: number;
|
|
188
|
+
/** Top-k sampling */
|
|
189
|
+
topK?: number;
|
|
190
|
+
/** Maximum tokens for completion */
|
|
191
|
+
maxTokens?: number;
|
|
192
|
+
/** Stop sequences */
|
|
193
|
+
stopSequences?: string[];
|
|
194
|
+
/** Whether to use caching (if supported) */
|
|
195
|
+
useCache?: boolean;
|
|
196
|
+
/** Provider-specific options */
|
|
197
|
+
providerOptions?: Record<string, unknown>;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Global SkillKit runtime configuration
|
|
201
|
+
*/
|
|
202
|
+
export interface SkillKitConfig {
|
|
203
|
+
/** Default model provider */
|
|
204
|
+
defaultProvider: ModelProvider;
|
|
205
|
+
/** Model configurations per provider */
|
|
206
|
+
models: Record<ModelProvider, ModelConfig>;
|
|
207
|
+
/** Preferred language for outputs */
|
|
208
|
+
language: string;
|
|
209
|
+
/** Enable sandboxing for security */
|
|
210
|
+
sandbox: boolean;
|
|
211
|
+
/** Default execution timeout in ms */
|
|
212
|
+
timeout: number;
|
|
213
|
+
/** Default max tokens per execution */
|
|
214
|
+
maxTokens: number;
|
|
215
|
+
/** Directory for installed skills */
|
|
216
|
+
skillsDirectory: string;
|
|
217
|
+
/** ClawHub registry base URL */
|
|
218
|
+
clawHubUrl: string;
|
|
219
|
+
/** Security scan level: strict, normal, permissive */
|
|
220
|
+
securityLevel: 'strict' | 'normal' | 'permissive';
|
|
221
|
+
/** Enable telemetry/analytics */
|
|
222
|
+
telemetry: boolean;
|
|
223
|
+
/** Current user/agent identifier */
|
|
224
|
+
userId?: string;
|
|
225
|
+
/** Custom configuration */
|
|
226
|
+
custom?: Record<string, unknown>;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Individual security threat finding
|
|
230
|
+
*/
|
|
231
|
+
export interface Threat {
|
|
232
|
+
/** Type of threat (injection, exec, privesc, etc.) */
|
|
233
|
+
type: string;
|
|
234
|
+
/** Severity level */
|
|
235
|
+
severity: ThreatLevel;
|
|
236
|
+
/** Detailed description of the threat */
|
|
237
|
+
description: string;
|
|
238
|
+
/** Line number in source (if applicable) */
|
|
239
|
+
line?: number;
|
|
240
|
+
/** Evidence excerpt showing the threat */
|
|
241
|
+
evidence: string;
|
|
242
|
+
/** Recommended remediation */
|
|
243
|
+
recommendation?: string;
|
|
244
|
+
/** Whether threat is blocking (prevents execution) */
|
|
245
|
+
isBlocking: boolean;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* SkillGuard security scan result
|
|
249
|
+
*/
|
|
250
|
+
export interface SecurityReport {
|
|
251
|
+
/** Overall safety score 0-100 */
|
|
252
|
+
score: number;
|
|
253
|
+
/** Overall safety verdict */
|
|
254
|
+
safe: boolean;
|
|
255
|
+
/** Timestamp of scan */
|
|
256
|
+
scannedAt: Date;
|
|
257
|
+
/** List of detected threats */
|
|
258
|
+
threats: Threat[];
|
|
259
|
+
/** Security recommendations */
|
|
260
|
+
recommendations: string[];
|
|
261
|
+
/** Which security rules were checked */
|
|
262
|
+
rulesChecked: string[];
|
|
263
|
+
/** Scan duration in ms */
|
|
264
|
+
duration: number;
|
|
265
|
+
/** Skill hash for caching results */
|
|
266
|
+
skillHash?: string;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Unified message format across channels
|
|
270
|
+
*/
|
|
271
|
+
export interface ChannelMessage {
|
|
272
|
+
/** Channel type */
|
|
273
|
+
channel: ChannelType;
|
|
274
|
+
/** Message content */
|
|
275
|
+
content: string;
|
|
276
|
+
/** Optional message metadata */
|
|
277
|
+
metadata?: {
|
|
278
|
+
/** Message sender/user ID */
|
|
279
|
+
userId?: string;
|
|
280
|
+
/** Message thread ID (for channels supporting threads) */
|
|
281
|
+
threadId?: string;
|
|
282
|
+
/** Timestamp */
|
|
283
|
+
timestamp?: Date;
|
|
284
|
+
/** Custom channel-specific data */
|
|
285
|
+
custom?: Record<string, unknown>;
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Tool call made during skill execution
|
|
290
|
+
*/
|
|
291
|
+
export interface ToolCall {
|
|
292
|
+
/** Tool name being called */
|
|
293
|
+
toolName: string;
|
|
294
|
+
/** Input arguments */
|
|
295
|
+
arguments: Record<string, unknown>;
|
|
296
|
+
/** Execution status */
|
|
297
|
+
status: 'pending' | 'executing' | 'completed' | 'failed';
|
|
298
|
+
/** Tool result */
|
|
299
|
+
result?: unknown;
|
|
300
|
+
/** Error if execution failed */
|
|
301
|
+
error?: string;
|
|
302
|
+
/** Execution duration in ms */
|
|
303
|
+
duration?: number;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Skill execution result
|
|
307
|
+
*/
|
|
308
|
+
export interface SkillExecutionResult {
|
|
309
|
+
/** Whether execution succeeded */
|
|
310
|
+
success: boolean;
|
|
311
|
+
/** Execution status */
|
|
312
|
+
status: 'pending' | 'running' | 'completed' | 'failed' | 'timeout';
|
|
313
|
+
/** Primary output from skill */
|
|
314
|
+
output?: Record<string, unknown>;
|
|
315
|
+
/** Structured outputs */
|
|
316
|
+
outputs: Record<string, unknown>;
|
|
317
|
+
/** Execution error (if failed) */
|
|
318
|
+
error?: Error | string;
|
|
319
|
+
/** Tool calls made during execution */
|
|
320
|
+
toolCalls?: ToolCall[];
|
|
321
|
+
/** Model used for execution */
|
|
322
|
+
modelUsed: string;
|
|
323
|
+
/** Token usage */
|
|
324
|
+
usage?: {
|
|
325
|
+
/** Tokens in prompt */
|
|
326
|
+
promptTokens: number;
|
|
327
|
+
/** Tokens in completion */
|
|
328
|
+
completionTokens: number;
|
|
329
|
+
/** Total tokens */
|
|
330
|
+
totalTokens: number;
|
|
331
|
+
};
|
|
332
|
+
/** Execution time in ms */
|
|
333
|
+
duration: number;
|
|
334
|
+
/** Raw model response (if available) */
|
|
335
|
+
rawResponse?: string;
|
|
336
|
+
/** Skill that was executed */
|
|
337
|
+
skill: SkillDefinition;
|
|
338
|
+
/** Input provided to skill */
|
|
339
|
+
input: Record<string, unknown>;
|
|
340
|
+
/** Execution timestamp */
|
|
341
|
+
executedAt: Date;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Stream chunk during skill execution
|
|
345
|
+
*/
|
|
346
|
+
export interface SkillStreamChunk {
|
|
347
|
+
/** Chunk type */
|
|
348
|
+
type: 'start' | 'content' | 'toolCall' | 'toolResult' | 'complete' | 'error';
|
|
349
|
+
/** Chunk content */
|
|
350
|
+
content?: string;
|
|
351
|
+
/** For tool calls */
|
|
352
|
+
toolCall?: ToolCall;
|
|
353
|
+
/** For errors */
|
|
354
|
+
error?: Error | string;
|
|
355
|
+
/** Cumulative usage to this point */
|
|
356
|
+
usage?: {
|
|
357
|
+
promptTokens: number;
|
|
358
|
+
completionTokens: number;
|
|
359
|
+
totalTokens: number;
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Skill from ClawHub registry
|
|
364
|
+
*/
|
|
365
|
+
export interface HubSkill {
|
|
366
|
+
/** Unique skill identifier */
|
|
367
|
+
id: string;
|
|
368
|
+
/** Skill name */
|
|
369
|
+
name: string;
|
|
370
|
+
/** Display title */
|
|
371
|
+
title: string;
|
|
372
|
+
/** Short description */
|
|
373
|
+
description: string;
|
|
374
|
+
/** Semantic version */
|
|
375
|
+
version: string;
|
|
376
|
+
/** Skill author */
|
|
377
|
+
author: string;
|
|
378
|
+
/** Download URL for SKILL.md */
|
|
379
|
+
downloadUrl: string;
|
|
380
|
+
/** Documentation URL */
|
|
381
|
+
documentationUrl?: string;
|
|
382
|
+
/** Tags for discovery */
|
|
383
|
+
tags: string[];
|
|
384
|
+
/** Download count */
|
|
385
|
+
downloads: number;
|
|
386
|
+
/** Average user rating 0-5 */
|
|
387
|
+
rating?: number;
|
|
388
|
+
/** License type */
|
|
389
|
+
license: string;
|
|
390
|
+
/** When skill was published */
|
|
391
|
+
publishedAt: Date;
|
|
392
|
+
/** When skill was last updated */
|
|
393
|
+
updatedAt: Date;
|
|
394
|
+
/** Whether skill is verified/official */
|
|
395
|
+
verified: boolean;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Result of ClawHub search
|
|
399
|
+
*/
|
|
400
|
+
export interface HubSearchResult {
|
|
401
|
+
/** Total matching skills */
|
|
402
|
+
total: number;
|
|
403
|
+
/** Results page size */
|
|
404
|
+
pageSize: number;
|
|
405
|
+
/** Current page number */
|
|
406
|
+
page: number;
|
|
407
|
+
/** Skills in this page */
|
|
408
|
+
skills: HubSkill[];
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Execution context passed to skill
|
|
412
|
+
*/
|
|
413
|
+
export interface ExecutionContext {
|
|
414
|
+
/** Unique execution ID */
|
|
415
|
+
executionId: string;
|
|
416
|
+
/** Skill being executed */
|
|
417
|
+
skill: SkillDefinition;
|
|
418
|
+
/** Input provided */
|
|
419
|
+
input: Record<string, unknown>;
|
|
420
|
+
/** Current model configuration */
|
|
421
|
+
modelConfig: ModelConfig;
|
|
422
|
+
/** Model provider */
|
|
423
|
+
provider: ModelProvider;
|
|
424
|
+
/** Execution start time */
|
|
425
|
+
startTime: Date;
|
|
426
|
+
/** Timeout in ms */
|
|
427
|
+
timeout: number;
|
|
428
|
+
/** Whether to stream results */
|
|
429
|
+
streaming: boolean;
|
|
430
|
+
/** Callback for stream chunks */
|
|
431
|
+
onChunk?: (chunk: SkillStreamChunk) => void;
|
|
432
|
+
/** Execution metadata */
|
|
433
|
+
metadata?: Record<string, unknown>;
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Options for skill execution
|
|
437
|
+
*/
|
|
438
|
+
export interface ExecutionOptions {
|
|
439
|
+
/** Override default model */
|
|
440
|
+
model?: string;
|
|
441
|
+
/** Override default provider */
|
|
442
|
+
provider?: ModelProvider;
|
|
443
|
+
/** Custom model configuration */
|
|
444
|
+
modelConfig?: Partial<ModelConfig>;
|
|
445
|
+
/** Execution timeout in ms */
|
|
446
|
+
timeout?: number;
|
|
447
|
+
/** Maximum tokens for completion */
|
|
448
|
+
maxTokens?: number;
|
|
449
|
+
/** Enable streaming */
|
|
450
|
+
streaming?: boolean;
|
|
451
|
+
/** Stream chunk handler */
|
|
452
|
+
onChunk?: (chunk: SkillStreamChunk) => void;
|
|
453
|
+
/** Skip security scan */
|
|
454
|
+
skipSecurityScan?: boolean;
|
|
455
|
+
/** Custom execution context data */
|
|
456
|
+
metadata?: Record<string, unknown>;
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Skill runner options
|
|
460
|
+
*/
|
|
461
|
+
export interface SkillRunnerOptions {
|
|
462
|
+
/** Config directory path */
|
|
463
|
+
configDir?: string;
|
|
464
|
+
/** Enable verbose logging */
|
|
465
|
+
verbose?: boolean;
|
|
466
|
+
/** Skip security scans */
|
|
467
|
+
skipSecurityScans?: boolean;
|
|
468
|
+
/** Maximum concurrent executions */
|
|
469
|
+
maxConcurrent?: number;
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* Cache entry for execution results
|
|
473
|
+
*/
|
|
474
|
+
export interface CacheEntry {
|
|
475
|
+
/** Cache key (hash of skill + input) */
|
|
476
|
+
key: string;
|
|
477
|
+
/** Cached result */
|
|
478
|
+
result: SkillExecutionResult;
|
|
479
|
+
/** When entry was cached */
|
|
480
|
+
cachedAt: Date;
|
|
481
|
+
/** Cache TTL in ms */
|
|
482
|
+
ttl?: number;
|
|
483
|
+
}
|
|
484
|
+
/**
|
|
485
|
+
* Batch execution request
|
|
486
|
+
*/
|
|
487
|
+
export interface BatchExecutionRequest {
|
|
488
|
+
/** Skill file path or registry ID */
|
|
489
|
+
skillPath: string;
|
|
490
|
+
/** Array of input sets */
|
|
491
|
+
inputs: Record<string, unknown>[];
|
|
492
|
+
/** Execution options */
|
|
493
|
+
options?: ExecutionOptions;
|
|
494
|
+
/** Continue on error */
|
|
495
|
+
continueOnError?: boolean;
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* Batch execution result
|
|
499
|
+
*/
|
|
500
|
+
export interface BatchExecutionResult {
|
|
501
|
+
/** Total items processed */
|
|
502
|
+
total: number;
|
|
503
|
+
/** Successful executions */
|
|
504
|
+
succeeded: number;
|
|
505
|
+
/** Failed executions */
|
|
506
|
+
failed: number;
|
|
507
|
+
/** Results for each input */
|
|
508
|
+
results: (SkillExecutionResult | SkillExecutionError)[];
|
|
509
|
+
/** Overall duration in ms */
|
|
510
|
+
duration: number;
|
|
511
|
+
}
|
|
512
|
+
/**
|
|
513
|
+
* Execution error with context
|
|
514
|
+
*/
|
|
515
|
+
export interface SkillExecutionError {
|
|
516
|
+
/** Error identifier */
|
|
517
|
+
id: string;
|
|
518
|
+
/** Input that caused error */
|
|
519
|
+
input: Record<string, unknown>;
|
|
520
|
+
/** Error message */
|
|
521
|
+
error: Error | string;
|
|
522
|
+
/** Stack trace */
|
|
523
|
+
stack?: string;
|
|
524
|
+
}
|
|
525
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SkillKit Core Types
|
|
3
|
+
* Complete TypeScript definitions for the SkillKit runtime system.
|
|
4
|
+
* Covers skill definitions, configuration, execution, and security.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Supported AI model providers
|
|
8
|
+
*/
|
|
9
|
+
export var ModelProvider;
|
|
10
|
+
(function (ModelProvider) {
|
|
11
|
+
ModelProvider["OPENAI"] = "openai";
|
|
12
|
+
ModelProvider["ANTHROPIC"] = "anthropic";
|
|
13
|
+
ModelProvider["GOOGLE"] = "google";
|
|
14
|
+
ModelProvider["OLLAMA"] = "ollama";
|
|
15
|
+
ModelProvider["DEEPSEEK"] = "deepseek";
|
|
16
|
+
ModelProvider["QWEN"] = "qwen";
|
|
17
|
+
ModelProvider["GROQ"] = "groq";
|
|
18
|
+
ModelProvider["TOGETHER"] = "together";
|
|
19
|
+
ModelProvider["FIREWORKS"] = "fireworks";
|
|
20
|
+
ModelProvider["LOCAL"] = "local";
|
|
21
|
+
})(ModelProvider || (ModelProvider = {}));
|
|
22
|
+
/**
|
|
23
|
+
* Threat severity levels for security scanning
|
|
24
|
+
*/
|
|
25
|
+
export var ThreatLevel;
|
|
26
|
+
(function (ThreatLevel) {
|
|
27
|
+
ThreatLevel["CRITICAL"] = "CRITICAL";
|
|
28
|
+
ThreatLevel["HIGH"] = "HIGH";
|
|
29
|
+
ThreatLevel["MEDIUM"] = "MEDIUM";
|
|
30
|
+
ThreatLevel["LOW"] = "LOW";
|
|
31
|
+
ThreatLevel["SAFE"] = "SAFE";
|
|
32
|
+
})(ThreatLevel || (ThreatLevel = {}));
|
|
33
|
+
/**
|
|
34
|
+
* Multi-channel message types
|
|
35
|
+
*/
|
|
36
|
+
export var ChannelType;
|
|
37
|
+
(function (ChannelType) {
|
|
38
|
+
ChannelType["CLI"] = "cli";
|
|
39
|
+
ChannelType["WHATSAPP"] = "whatsapp";
|
|
40
|
+
ChannelType["TELEGRAM"] = "telegram";
|
|
41
|
+
ChannelType["DISCORD"] = "discord";
|
|
42
|
+
ChannelType["SLACK"] = "slack";
|
|
43
|
+
})(ChannelType || (ChannelType = {}));
|
|
44
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,aAWX;AAXD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,wCAAuB,CAAA;IACvB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,sCAAqB,CAAA;IACrB,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,sCAAqB,CAAA;IACrB,wCAAuB,CAAA;IACvB,gCAAe,CAAA;AACjB,CAAC,EAXW,aAAa,KAAb,aAAa,QAWxB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,0BAAW,CAAA;IACX,4BAAa,CAAA;AACf,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,oCAAqB,CAAA;IACrB,oCAAqB,CAAA;IACrB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;AACjB,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { MaliciousPattern, SeverityLevel, ThreatCategory } from "./patterns.js";
|
|
2
|
+
export interface ThreatDetection {
|
|
3
|
+
patternId: string;
|
|
4
|
+
category: ThreatCategory;
|
|
5
|
+
severity: SeverityLevel;
|
|
6
|
+
lineNumber: number;
|
|
7
|
+
columnNumber: number;
|
|
8
|
+
description: string;
|
|
9
|
+
evidence: string;
|
|
10
|
+
remediation?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface SecurityReport {
|
|
13
|
+
skillId?: string;
|
|
14
|
+
fileName?: string;
|
|
15
|
+
timestamp: string;
|
|
16
|
+
safetyScore: number;
|
|
17
|
+
riskLevel: "SAFE" | "LOW_RISK" | "MEDIUM_RISK" | "HIGH_RISK" | "CRITICAL";
|
|
18
|
+
totalThreatsFound: number;
|
|
19
|
+
threatBreakdown: Record<ThreatCategory, number>;
|
|
20
|
+
severityBreakdown: Record<SeverityLevel, number>;
|
|
21
|
+
threats: ThreatDetection[];
|
|
22
|
+
summary: string;
|
|
23
|
+
overallStatus: "APPROVED" | "REVIEW_REQUIRED" | "BLOCKED";
|
|
24
|
+
}
|
|
25
|
+
export interface ScanOptions {
|
|
26
|
+
maxSeverity?: SeverityLevel;
|
|
27
|
+
categories?: ThreatCategory[];
|
|
28
|
+
skipPatterns?: string[];
|
|
29
|
+
customPatterns?: MaliciousPattern[];
|
|
30
|
+
verbose?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export declare class SkillGuard {
|
|
33
|
+
private customPatterns;
|
|
34
|
+
private patterns;
|
|
35
|
+
constructor(customPatterns?: MaliciousPattern[]);
|
|
36
|
+
scanSkill(skillContent: string, skillId?: string, options?: ScanOptions): Promise<SecurityReport>;
|
|
37
|
+
scanFile(filePath: string, options?: ScanOptions): Promise<SecurityReport>;
|
|
38
|
+
scanClawHubSkill(skillId: string, options?: ScanOptions): Promise<SecurityReport>;
|
|
39
|
+
private generateReport;
|
|
40
|
+
private generateSummary;
|
|
41
|
+
private getSeverityScore;
|
|
42
|
+
addCustomPattern(pattern: MaliciousPattern): void;
|
|
43
|
+
removePattern(patternId: string): boolean;
|
|
44
|
+
getPatterns(): MaliciousPattern[];
|
|
45
|
+
printReport(report: SecurityReport): void;
|
|
46
|
+
private getSeverityColor;
|
|
47
|
+
private resetColor;
|
|
48
|
+
}
|
|
49
|
+
export declare function scanSkill(skillContent: string, skillId?: string, options?: ScanOptions): Promise<SecurityReport>;
|
|
50
|
+
export declare function scanFile(filePath: string, options?: ScanOptions): Promise<SecurityReport>;
|
|
51
|
+
export declare function quickScan(skillContent: string): Promise<{
|
|
52
|
+
isSafe: boolean;
|
|
53
|
+
threatCount: number;
|
|
54
|
+
criticalThreats: number;
|
|
55
|
+
}>;
|
|
56
|
+
export default SkillGuard;
|
|
57
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guard/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,gBAAgB,EAChB,aAAa,EACb,cAAc,EAGf,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IAC1E,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,UAAU,GAAG,iBAAiB,GAAG,SAAS,CAAC;CAC3D;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAqB;gBAEzB,cAAc,CAAC,EAAE,gBAAgB,EAAE;IASzC,SAAS,CACb,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,cAAc,CAAC;IAmDpB,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,cAAc,CAAC;IAWpB,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,cAAc,CAAC;IAQ1B,OAAO,CAAC,cAAc;IAgFtB,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,gBAAgB;IAUxB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAKjD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IASzC,WAAW,IAAI,gBAAgB,EAAE;IAIjC,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAiEzC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,UAAU;CAGnB;AAGD,wBAAsB,SAAS,CAC7B,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,cAAc,CAAC,CAGzB;AAED,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,cAAc,CAAC,CAGzB;AAED,wBAAsB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7D,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC,CAOD;AAED,eAAe,UAAU,CAAC"}
|