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 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/router/providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SkillKit Runtime Executor
|
|
3
|
+
* ========================
|
|
4
|
+
* The REAL execution engine. Connects the SKILL.md parser to the ModelRouter
|
|
5
|
+
* and executes skills with actual AI models via Vercel AI SDK.
|
|
6
|
+
*
|
|
7
|
+
* Security: 3-layer defense
|
|
8
|
+
* L1: SkillGuard pattern scan (52+ patterns, 11 categories)
|
|
9
|
+
* L2: Community blocklist (SHA-256 hash check against known malicious skills)
|
|
10
|
+
* L3: ProcessSandbox isolation (auto-enabled for untrusted skills)
|
|
11
|
+
*
|
|
12
|
+
* NO SIMULATION. NO FAKE RESULTS. REAL AI EXECUTION.
|
|
13
|
+
*/
|
|
14
|
+
import { type SecurityReport } from '../guard/index.js';
|
|
15
|
+
export interface ExecutionContext {
|
|
16
|
+
content: string;
|
|
17
|
+
input: string;
|
|
18
|
+
model?: string;
|
|
19
|
+
provider?: string;
|
|
20
|
+
channel?: 'whatsapp' | 'telegram' | 'discord' | 'slack';
|
|
21
|
+
verbose?: boolean;
|
|
22
|
+
stream?: boolean;
|
|
23
|
+
timeout?: number;
|
|
24
|
+
skipScan?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface ExecutionResult {
|
|
27
|
+
output: string;
|
|
28
|
+
tokenUsage?: {
|
|
29
|
+
input: number;
|
|
30
|
+
output: number;
|
|
31
|
+
total: number;
|
|
32
|
+
};
|
|
33
|
+
model: string;
|
|
34
|
+
provider: string;
|
|
35
|
+
executedAt: string;
|
|
36
|
+
duration: number;
|
|
37
|
+
securityReport?: SecurityReport;
|
|
38
|
+
}
|
|
39
|
+
export interface ScanResult {
|
|
40
|
+
score: number;
|
|
41
|
+
threats: Array<{
|
|
42
|
+
severity: string;
|
|
43
|
+
description: string;
|
|
44
|
+
line?: number;
|
|
45
|
+
}>;
|
|
46
|
+
status: 'APPROVED' | 'REVIEW_REQUIRED' | 'BLOCKED';
|
|
47
|
+
scannedAt: string;
|
|
48
|
+
/** SHA-256 hash of skill content — used for community blocklist */
|
|
49
|
+
hash?: string;
|
|
50
|
+
/** True if skill should be executed in sandbox for safety */
|
|
51
|
+
sandboxRecommended?: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* SHA-256 hash of a skill's content — used for community blocklist lookups.
|
|
55
|
+
* This is how the community collectively protects against malicious skills.
|
|
56
|
+
*/
|
|
57
|
+
declare function hashSkillContent(content: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Check a skill against the community blocklist.
|
|
60
|
+
* Returns true if the skill hash is known-malicious.
|
|
61
|
+
*/
|
|
62
|
+
declare function isBlocklisted(content: string): Promise<{
|
|
63
|
+
blocked: boolean;
|
|
64
|
+
hash: string;
|
|
65
|
+
}>;
|
|
66
|
+
/**
|
|
67
|
+
* Report a malicious skill hash to the local blocklist.
|
|
68
|
+
* The local blocklist accumulates hashes and can be shared with the community.
|
|
69
|
+
*/
|
|
70
|
+
declare function reportMaliciousSkill(hash: string): Promise<void>;
|
|
71
|
+
export { reportMaliciousSkill, isBlocklisted, hashSkillContent };
|
|
72
|
+
/**
|
|
73
|
+
* Load a skill from: file path → local registry → error
|
|
74
|
+
*/
|
|
75
|
+
export declare function loadSkill(skillRef: string): Promise<string>;
|
|
76
|
+
/**
|
|
77
|
+
* Scan a skill for security threats.
|
|
78
|
+
*
|
|
79
|
+
* 3-layer security:
|
|
80
|
+
* L1: SkillGuard pattern matching (52+ patterns across 11 threat categories)
|
|
81
|
+
* L2: Community blocklist check (SHA-256 hash against known-malicious skills)
|
|
82
|
+
* L3: Sandbox recommendation (auto-suggested if REVIEW_REQUIRED)
|
|
83
|
+
*/
|
|
84
|
+
export declare function scanSkill(skillPathOrContent: string): Promise<ScanResult>;
|
|
85
|
+
/**
|
|
86
|
+
* Execute a skill with a REAL AI model via Vercel AI SDK.
|
|
87
|
+
*
|
|
88
|
+
* Flow:
|
|
89
|
+
* 1. Parse SKILL.md → SkillDefinition
|
|
90
|
+
* 2. Build optimized system prompt from skill definition
|
|
91
|
+
* 3. Route to correct model provider via ModelRouter
|
|
92
|
+
* 4. Call generateText() or streamText() from Vercel AI SDK
|
|
93
|
+
* 5. Return real AI response with token counts
|
|
94
|
+
*/
|
|
95
|
+
export declare function executeSkill(context: ExecutionContext): Promise<ExecutionResult>;
|
|
96
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKpE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,MAAM,EAAE,UAAU,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAID;;;GAGG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAeD;;;GAGG;AACH,iBAAe,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAiCzF;AAED;;;GAGG;AACH,iBAAe,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB/D;AAID,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;AAIjE;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkCjE;AAID;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAkD/E;AAID;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA0EtF"}
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SkillKit Runtime Executor
|
|
3
|
+
* ========================
|
|
4
|
+
* The REAL execution engine. Connects the SKILL.md parser to the ModelRouter
|
|
5
|
+
* and executes skills with actual AI models via Vercel AI SDK.
|
|
6
|
+
*
|
|
7
|
+
* Security: 3-layer defense
|
|
8
|
+
* L1: SkillGuard pattern scan (52+ patterns, 11 categories)
|
|
9
|
+
* L2: Community blocklist (SHA-256 hash check against known malicious skills)
|
|
10
|
+
* L3: ProcessSandbox isolation (auto-enabled for untrusted skills)
|
|
11
|
+
*
|
|
12
|
+
* NO SIMULATION. NO FAKE RESULTS. REAL AI EXECUTION.
|
|
13
|
+
*/
|
|
14
|
+
import * as fs from 'fs/promises';
|
|
15
|
+
import { resolve } from 'path';
|
|
16
|
+
import { homedir } from 'os';
|
|
17
|
+
import { createHash } from 'crypto';
|
|
18
|
+
import { parseSkillContent } from '../core/parser.js';
|
|
19
|
+
import { ModelRouter } from '../router/index.js';
|
|
20
|
+
import { SkillGuard } from '../guard/index.js';
|
|
21
|
+
// ─── Community Blocklist (Level 3 Defense) ─────────────────────────────────
|
|
22
|
+
/**
|
|
23
|
+
* SHA-256 hash of a skill's content — used for community blocklist lookups.
|
|
24
|
+
* This is how the community collectively protects against malicious skills.
|
|
25
|
+
*/
|
|
26
|
+
function hashSkillContent(content) {
|
|
27
|
+
return createHash('sha256').update(content.trim()).digest('hex');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* URL of the community-maintained blocklist.
|
|
31
|
+
* A simple JSON file hosted on GitHub with known-malicious skill hashes.
|
|
32
|
+
* Updated by the community, no server needed.
|
|
33
|
+
*/
|
|
34
|
+
const BLOCKLIST_URL = process.env.SKILLKIT_BLOCKLIST_URL ||
|
|
35
|
+
'https://raw.githubusercontent.com/artefactforge/skillkit/main/security/blocklist.json';
|
|
36
|
+
/**
|
|
37
|
+
* Local cache of the blocklist (refreshes every 24h).
|
|
38
|
+
*/
|
|
39
|
+
let blocklistCache = null;
|
|
40
|
+
/**
|
|
41
|
+
* Check a skill against the community blocklist.
|
|
42
|
+
* Returns true if the skill hash is known-malicious.
|
|
43
|
+
*/
|
|
44
|
+
async function isBlocklisted(content) {
|
|
45
|
+
const hash = hashSkillContent(content);
|
|
46
|
+
// Try to fetch/refresh blocklist (max once per 24h)
|
|
47
|
+
try {
|
|
48
|
+
const now = Date.now();
|
|
49
|
+
if (!blocklistCache || now - blocklistCache.fetchedAt > 86400000) {
|
|
50
|
+
const response = await fetch(BLOCKLIST_URL, { signal: AbortSignal.timeout(5000) });
|
|
51
|
+
if (response.ok) {
|
|
52
|
+
const data = await response.json();
|
|
53
|
+
blocklistCache = { hashes: data.hashes || [], fetchedAt: now };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// Blocklist fetch failed — continue without it (fail-open for availability)
|
|
59
|
+
}
|
|
60
|
+
// Also check local blocklist file
|
|
61
|
+
try {
|
|
62
|
+
const localBlocklist = resolve(homedir(), '.skillkit', 'blocklist.json');
|
|
63
|
+
const localData = JSON.parse(await fs.readFile(localBlocklist, 'utf-8'));
|
|
64
|
+
const localHashes = localData.hashes || [];
|
|
65
|
+
if (localHashes.includes(hash)) {
|
|
66
|
+
return { blocked: true, hash };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// No local blocklist — acceptable, L1 (SkillGuard) still protects
|
|
71
|
+
}
|
|
72
|
+
// SECURITY: If remote blocklist fetch failed AND no cache exists,
|
|
73
|
+
// log a warning but allow (fail-open for availability — L1 guard still runs)
|
|
74
|
+
const isBlocked = blocklistCache?.hashes.includes(hash) ?? false;
|
|
75
|
+
return { blocked: isBlocked, hash };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Report a malicious skill hash to the local blocklist.
|
|
79
|
+
* The local blocklist accumulates hashes and can be shared with the community.
|
|
80
|
+
*/
|
|
81
|
+
async function reportMaliciousSkill(hash) {
|
|
82
|
+
const localBlocklist = resolve(homedir(), '.skillkit', 'blocklist.json');
|
|
83
|
+
let existing = {
|
|
84
|
+
hashes: [],
|
|
85
|
+
reportedAt: {},
|
|
86
|
+
};
|
|
87
|
+
try {
|
|
88
|
+
existing = JSON.parse(await fs.readFile(localBlocklist, 'utf-8'));
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// Start fresh
|
|
92
|
+
}
|
|
93
|
+
if (!existing.hashes.includes(hash)) {
|
|
94
|
+
existing.hashes.push(hash);
|
|
95
|
+
existing.reportedAt[hash] = new Date().toISOString();
|
|
96
|
+
await fs.mkdir(resolve(homedir(), '.skillkit'), { recursive: true });
|
|
97
|
+
await fs.writeFile(localBlocklist, JSON.stringify(existing, null, 2));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// ─── Enhanced Scan (L1 + L2 Combined) ─────────────────────────────────────
|
|
101
|
+
export { reportMaliciousSkill, isBlocklisted, hashSkillContent };
|
|
102
|
+
// ─── Skill Loading ──────────────────────────────────────────────────────────
|
|
103
|
+
/**
|
|
104
|
+
* Load a skill from: file path → local registry → error
|
|
105
|
+
*/
|
|
106
|
+
export async function loadSkill(skillRef) {
|
|
107
|
+
// 1. Try as direct file path
|
|
108
|
+
try {
|
|
109
|
+
const content = await fs.readFile(resolve(skillRef), 'utf-8');
|
|
110
|
+
return content;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// Not a file path
|
|
114
|
+
}
|
|
115
|
+
// 2. Try local registry (~/.skillkit/skills/)
|
|
116
|
+
const registryPath = resolve(homedir(), '.skillkit', 'skills', `${skillRef}.md`);
|
|
117
|
+
try {
|
|
118
|
+
const content = await fs.readFile(registryPath, 'utf-8');
|
|
119
|
+
return content;
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
// Not in registry
|
|
123
|
+
}
|
|
124
|
+
// 3. Try current directory skills/
|
|
125
|
+
const localPath = resolve(process.cwd(), 'skills', `${skillRef}.md`);
|
|
126
|
+
try {
|
|
127
|
+
const content = await fs.readFile(localPath, 'utf-8');
|
|
128
|
+
return content;
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
// Not local
|
|
132
|
+
}
|
|
133
|
+
throw new Error(`Skill not found: "${skillRef}". Tried:\n` +
|
|
134
|
+
` - File: ${resolve(skillRef)}\n` +
|
|
135
|
+
` - Registry: ${registryPath}\n` +
|
|
136
|
+
` - Local: ${localPath}\n` +
|
|
137
|
+
`Use "skillkit install <name>" to install from ClawHub first.`);
|
|
138
|
+
}
|
|
139
|
+
// ─── Security Scanning ─────────────────────────────────────────────────────
|
|
140
|
+
/**
|
|
141
|
+
* Scan a skill for security threats.
|
|
142
|
+
*
|
|
143
|
+
* 3-layer security:
|
|
144
|
+
* L1: SkillGuard pattern matching (52+ patterns across 11 threat categories)
|
|
145
|
+
* L2: Community blocklist check (SHA-256 hash against known-malicious skills)
|
|
146
|
+
* L3: Sandbox recommendation (auto-suggested if REVIEW_REQUIRED)
|
|
147
|
+
*/
|
|
148
|
+
export async function scanSkill(skillPathOrContent) {
|
|
149
|
+
let content;
|
|
150
|
+
// Determine if it's a file path or raw content
|
|
151
|
+
if (skillPathOrContent.includes('\n') || skillPathOrContent.length > 500) {
|
|
152
|
+
content = skillPathOrContent;
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
try {
|
|
156
|
+
content = await fs.readFile(resolve(skillPathOrContent), 'utf-8');
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
throw new Error(`Cannot read skill file: ${skillPathOrContent}`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// L2: Community blocklist check (fast — just a hash comparison)
|
|
163
|
+
const blocklistResult = await isBlocklisted(content);
|
|
164
|
+
if (blocklistResult.blocked) {
|
|
165
|
+
return {
|
|
166
|
+
score: 0,
|
|
167
|
+
threats: [{
|
|
168
|
+
severity: 'CRITICAL',
|
|
169
|
+
description: `COMMUNITY BLOCKLIST: This skill (hash: ${blocklistResult.hash.slice(0, 12)}...) has been reported as malicious by the SkillKit community. DO NOT EXECUTE.`,
|
|
170
|
+
}],
|
|
171
|
+
status: 'BLOCKED',
|
|
172
|
+
scannedAt: new Date().toISOString(),
|
|
173
|
+
hash: blocklistResult.hash,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
// L1: SkillGuard pattern matching
|
|
177
|
+
const guard = new SkillGuard();
|
|
178
|
+
const report = await guard.scanSkill(content);
|
|
179
|
+
// If BLOCKED by patterns, auto-report to local blocklist
|
|
180
|
+
if (report.overallStatus === 'BLOCKED') {
|
|
181
|
+
await reportMaliciousSkill(blocklistResult.hash).catch(() => { });
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
score: report.safetyScore,
|
|
185
|
+
threats: report.threats.map(t => ({
|
|
186
|
+
severity: t.severity,
|
|
187
|
+
description: t.description,
|
|
188
|
+
line: t.lineNumber,
|
|
189
|
+
})),
|
|
190
|
+
status: report.overallStatus,
|
|
191
|
+
scannedAt: report.timestamp,
|
|
192
|
+
hash: blocklistResult.hash,
|
|
193
|
+
sandboxRecommended: report.overallStatus === 'REVIEW_REQUIRED',
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
// ─── Real Skill Execution ───────────────────────────────────────────────────
|
|
197
|
+
/**
|
|
198
|
+
* Execute a skill with a REAL AI model via Vercel AI SDK.
|
|
199
|
+
*
|
|
200
|
+
* Flow:
|
|
201
|
+
* 1. Parse SKILL.md → SkillDefinition
|
|
202
|
+
* 2. Build optimized system prompt from skill definition
|
|
203
|
+
* 3. Route to correct model provider via ModelRouter
|
|
204
|
+
* 4. Call generateText() or streamText() from Vercel AI SDK
|
|
205
|
+
* 5. Return real AI response with token counts
|
|
206
|
+
*/
|
|
207
|
+
export async function executeSkill(context) {
|
|
208
|
+
const startTime = Date.now();
|
|
209
|
+
// 1. Parse the skill content
|
|
210
|
+
const skillDef = parseSkillContent(context.content);
|
|
211
|
+
if (context.verbose) {
|
|
212
|
+
console.log(`[DEBUG] Parsed skill: ${skillDef.metadata.name} v${skillDef.metadata.version || '1.0.0'}`);
|
|
213
|
+
console.log(`[DEBUG] Inputs defined: ${skillDef.inputs?.length || 0}`);
|
|
214
|
+
console.log(`[DEBUG] Tools declared: ${skillDef.tools?.length || 0}`);
|
|
215
|
+
}
|
|
216
|
+
// 2. Build system prompt from skill definition
|
|
217
|
+
const systemPrompt = buildSystemPrompt(skillDef);
|
|
218
|
+
// 3. Resolve model and provider
|
|
219
|
+
const provider = context.provider || resolveProvider(context.model);
|
|
220
|
+
const model = context.model || resolveDefaultModel(provider);
|
|
221
|
+
if (context.verbose) {
|
|
222
|
+
console.log(`[DEBUG] Provider: ${provider}, Model: ${model}`);
|
|
223
|
+
}
|
|
224
|
+
// 4. Create model instance via ModelRouter
|
|
225
|
+
const router = new ModelRouter({
|
|
226
|
+
primary: { provider, model },
|
|
227
|
+
});
|
|
228
|
+
const modelInstance = await router.createModelInstance(provider, model);
|
|
229
|
+
// 5. Execute with Vercel AI SDK
|
|
230
|
+
let output;
|
|
231
|
+
if (context.stream) {
|
|
232
|
+
// Streaming mode — print tokens as they arrive
|
|
233
|
+
output = await router.streamResponse(modelInstance, context.input || 'Hello', systemPrompt, {
|
|
234
|
+
maxTokens: 4096,
|
|
235
|
+
onChunk: (chunk) => {
|
|
236
|
+
process.stdout.write(chunk);
|
|
237
|
+
},
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
// Standard mode — wait for full response
|
|
242
|
+
output = await router.generateResponse(modelInstance, context.input || 'Hello', systemPrompt, { maxTokens: 4096 });
|
|
243
|
+
}
|
|
244
|
+
const duration = Date.now() - startTime;
|
|
245
|
+
// Estimate tokens (Vercel AI SDK provides actual counts in production)
|
|
246
|
+
const inputTokens = Math.ceil((systemPrompt.length + (context.input?.length || 0)) / 4);
|
|
247
|
+
const outputTokens = Math.ceil(output.length / 4);
|
|
248
|
+
return {
|
|
249
|
+
output,
|
|
250
|
+
tokenUsage: {
|
|
251
|
+
input: inputTokens,
|
|
252
|
+
output: outputTokens,
|
|
253
|
+
total: inputTokens + outputTokens,
|
|
254
|
+
},
|
|
255
|
+
model,
|
|
256
|
+
provider,
|
|
257
|
+
executedAt: new Date().toISOString(),
|
|
258
|
+
duration,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
// ─── System Prompt Builder ──────────────────────────────────────────────────
|
|
262
|
+
/**
|
|
263
|
+
* Build an optimized system prompt from a SkillDefinition.
|
|
264
|
+
* This is what makes SKILL.md files actually work with any model.
|
|
265
|
+
*/
|
|
266
|
+
function sanitizeMetadata(value) {
|
|
267
|
+
// Strip characters that could be used for prompt injection
|
|
268
|
+
return value
|
|
269
|
+
.replace(/[\[\]{}()]/g, '') // Remove brackets/braces
|
|
270
|
+
.replace(/\n/g, ' ') // Flatten newlines
|
|
271
|
+
.replace(/[<>]/g, '') // Remove HTML-like tags
|
|
272
|
+
.slice(0, 200); // Limit length
|
|
273
|
+
}
|
|
274
|
+
function buildSystemPrompt(skillDef) {
|
|
275
|
+
const parts = [];
|
|
276
|
+
// Skill identity (sanitized to prevent prompt injection via metadata)
|
|
277
|
+
const safeName = sanitizeMetadata(skillDef.metadata.name || 'unnamed-skill');
|
|
278
|
+
const safeDesc = sanitizeMetadata(skillDef.metadata.description || 'an AI skill');
|
|
279
|
+
parts.push(`You are "${safeName}" — ${safeDesc}.`);
|
|
280
|
+
// Version and author context (sanitized)
|
|
281
|
+
if (skillDef.metadata.version)
|
|
282
|
+
parts.push(`Version: ${sanitizeMetadata(skillDef.metadata.version)}`);
|
|
283
|
+
if (skillDef.metadata.author)
|
|
284
|
+
parts.push(`Author: ${sanitizeMetadata(skillDef.metadata.author)}`);
|
|
285
|
+
parts.push('');
|
|
286
|
+
// Main instructions (the markdown body of SKILL.md)
|
|
287
|
+
if (skillDef.instructions) {
|
|
288
|
+
parts.push('## Instructions');
|
|
289
|
+
parts.push(skillDef.instructions);
|
|
290
|
+
parts.push('');
|
|
291
|
+
}
|
|
292
|
+
// System prompt override (if skill defines one)
|
|
293
|
+
if (skillDef.systemPrompt) {
|
|
294
|
+
parts.push('## System Context');
|
|
295
|
+
parts.push(skillDef.systemPrompt);
|
|
296
|
+
parts.push('');
|
|
297
|
+
}
|
|
298
|
+
// Input schema info for the model
|
|
299
|
+
if (skillDef.inputs && skillDef.inputs.length > 0) {
|
|
300
|
+
parts.push('## Expected Inputs');
|
|
301
|
+
for (const input of skillDef.inputs) {
|
|
302
|
+
const req = input.required ? '(required)' : '(optional)';
|
|
303
|
+
parts.push(`- **${input.name}** ${req}: ${input.description} [type: ${input.type}]`);
|
|
304
|
+
}
|
|
305
|
+
parts.push('');
|
|
306
|
+
}
|
|
307
|
+
// Output format
|
|
308
|
+
if (skillDef.outputs && skillDef.outputs.length > 0) {
|
|
309
|
+
parts.push('## Expected Outputs');
|
|
310
|
+
for (const output of skillDef.outputs) {
|
|
311
|
+
parts.push(`- **${output.name}**: ${output.description} [type: ${output.type}]`);
|
|
312
|
+
}
|
|
313
|
+
parts.push('');
|
|
314
|
+
}
|
|
315
|
+
// Examples
|
|
316
|
+
if (skillDef.examples && skillDef.examples.length > 0) {
|
|
317
|
+
parts.push('## Examples');
|
|
318
|
+
for (const ex of skillDef.examples) {
|
|
319
|
+
parts.push(`Input: ${JSON.stringify(ex.input)}`);
|
|
320
|
+
parts.push(`Expected output: ${JSON.stringify(ex.expectedOutput)}`);
|
|
321
|
+
parts.push('');
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
return parts.join('\n');
|
|
325
|
+
}
|
|
326
|
+
// ─── Provider Resolution ────────────────────────────────────────────────────
|
|
327
|
+
/**
|
|
328
|
+
* Resolve provider from model name.
|
|
329
|
+
* e.g., "gpt-4o" → "openai", "deepseek-chat" → "deepseek", "ollama/qwen2.5" → "ollama"
|
|
330
|
+
*/
|
|
331
|
+
function resolveProvider(model) {
|
|
332
|
+
if (!model)
|
|
333
|
+
return 'anthropic'; // default
|
|
334
|
+
const m = model.toLowerCase();
|
|
335
|
+
if (m.startsWith('ollama/') || m.startsWith('ollama:'))
|
|
336
|
+
return 'ollama';
|
|
337
|
+
if (m.startsWith('gpt-') || m.startsWith('o1') || m.startsWith('o3'))
|
|
338
|
+
return 'openai';
|
|
339
|
+
if (m.startsWith('claude'))
|
|
340
|
+
return 'anthropic';
|
|
341
|
+
if (m.startsWith('gemini') || m.startsWith('gemma'))
|
|
342
|
+
return 'google';
|
|
343
|
+
if (m.startsWith('deepseek'))
|
|
344
|
+
return 'deepseek';
|
|
345
|
+
if (m.startsWith('qwen'))
|
|
346
|
+
return 'qwen';
|
|
347
|
+
if (m.startsWith('llama') || m.startsWith('mixtral'))
|
|
348
|
+
return 'groq';
|
|
349
|
+
if (m.startsWith('moonshot'))
|
|
350
|
+
return 'kimi';
|
|
351
|
+
if (m.startsWith('glm'))
|
|
352
|
+
return 'zhipu';
|
|
353
|
+
if (m.includes('together'))
|
|
354
|
+
return 'together';
|
|
355
|
+
if (m.includes('fireworks'))
|
|
356
|
+
return 'fireworks';
|
|
357
|
+
// Check env vars for available providers
|
|
358
|
+
if (process.env.DEEPSEEK_API_KEY)
|
|
359
|
+
return 'deepseek';
|
|
360
|
+
if (process.env.ANTHROPIC_API_KEY)
|
|
361
|
+
return 'anthropic';
|
|
362
|
+
if (process.env.OPENAI_API_KEY)
|
|
363
|
+
return 'openai';
|
|
364
|
+
if (process.env.GOOGLE_API_KEY)
|
|
365
|
+
return 'google';
|
|
366
|
+
if (process.env.GROQ_API_KEY)
|
|
367
|
+
return 'groq';
|
|
368
|
+
return 'ollama'; // Ultimate fallback: free local models
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Resolve default model for a provider.
|
|
372
|
+
*/
|
|
373
|
+
function resolveDefaultModel(provider) {
|
|
374
|
+
const defaults = {
|
|
375
|
+
anthropic: 'claude-3-5-sonnet',
|
|
376
|
+
openai: 'gpt-4o',
|
|
377
|
+
google: 'gemini-2-flash',
|
|
378
|
+
deepseek: 'deepseek-chat',
|
|
379
|
+
qwen: 'qwen-plus',
|
|
380
|
+
groq: 'llama-3.3-70b-versatile',
|
|
381
|
+
kimi: 'moonshot-v1-128k',
|
|
382
|
+
zhipu: 'glm-4-flash',
|
|
383
|
+
ollama: 'qwen2.5',
|
|
384
|
+
together: 'meta-llama/Llama-3-70b-chat-hf',
|
|
385
|
+
fireworks: 'accounts/fireworks/models/llama-v3-70b-instruct',
|
|
386
|
+
};
|
|
387
|
+
return defaults[provider] || 'deepseek-chat';
|
|
388
|
+
}
|
|
389
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export type SandboxType = 'docker' | 'process';
|
|
2
|
+
export interface SandboxOptions {
|
|
3
|
+
type?: SandboxType;
|
|
4
|
+
timeout?: number;
|
|
5
|
+
memoryLimit?: string;
|
|
6
|
+
cpuLimit?: number;
|
|
7
|
+
networkEnabled?: boolean;
|
|
8
|
+
filesystemReadOnly?: boolean;
|
|
9
|
+
env?: Record<string, string>;
|
|
10
|
+
workDir?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface SandboxResult {
|
|
13
|
+
stdout: string;
|
|
14
|
+
stderr: string;
|
|
15
|
+
exitCode: number | null;
|
|
16
|
+
signal: string | null;
|
|
17
|
+
duration: number;
|
|
18
|
+
timedOut: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare class ProcessSandbox {
|
|
21
|
+
private logger;
|
|
22
|
+
private timeout;
|
|
23
|
+
private memoryLimit;
|
|
24
|
+
private env;
|
|
25
|
+
private workDir;
|
|
26
|
+
constructor(options?: SandboxOptions);
|
|
27
|
+
execute(code: string): Promise<SandboxResult>;
|
|
28
|
+
private executeWithNode;
|
|
29
|
+
private createTimeoutPromise;
|
|
30
|
+
}
|
|
31
|
+
export declare class DockerSandbox {
|
|
32
|
+
private logger;
|
|
33
|
+
private timeout;
|
|
34
|
+
private memoryLimit;
|
|
35
|
+
private cpuLimit;
|
|
36
|
+
private networkEnabled;
|
|
37
|
+
constructor(options?: SandboxOptions);
|
|
38
|
+
execute(code: string): Promise<SandboxResult>;
|
|
39
|
+
}
|
|
40
|
+
export declare class SandboxManager {
|
|
41
|
+
private processSandbox;
|
|
42
|
+
private dockerSandbox;
|
|
43
|
+
private logger;
|
|
44
|
+
constructor();
|
|
45
|
+
createSandbox(type?: SandboxType, options?: SandboxOptions): Promise<ProcessSandbox | DockerSandbox>;
|
|
46
|
+
executeInSandbox(code: string, options?: SandboxOptions): Promise<SandboxResult>;
|
|
47
|
+
validateCode(code: string): {
|
|
48
|
+
valid: boolean;
|
|
49
|
+
errors: string[];
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sandbox/index.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,GAAG,CAAyB;IACpC,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,cAAmB;IAkBlC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;YAuDrC,eAAe;IAyC7B,OAAO,CAAC,oBAAoB;CAO7B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAU;gBAEpB,OAAO,GAAE,cAAmB;IAQlC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAuDpD;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,MAAM,CAAS;;IAMjB,aAAa,CAAC,IAAI,GAAE,WAAuB,EAAE,OAAO,CAAC,EAAE,cAAc;IAcrE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAkBtF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAwCjE"}
|