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.
Files changed (167) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +400 -0
  3. package/dist/channels/discord.d.ts +18 -0
  4. package/dist/channels/discord.d.ts.map +1 -0
  5. package/dist/channels/discord.js +275 -0
  6. package/dist/channels/discord.js.map +1 -0
  7. package/dist/channels/index.d.ts +67 -0
  8. package/dist/channels/index.d.ts.map +1 -0
  9. package/dist/channels/index.js +127 -0
  10. package/dist/channels/index.js.map +1 -0
  11. package/dist/channels/slack.d.ts +20 -0
  12. package/dist/channels/slack.d.ts.map +1 -0
  13. package/dist/channels/slack.js +296 -0
  14. package/dist/channels/slack.js.map +1 -0
  15. package/dist/channels/telegram.d.ts +20 -0
  16. package/dist/channels/telegram.d.ts.map +1 -0
  17. package/dist/channels/telegram.js +223 -0
  18. package/dist/channels/telegram.js.map +1 -0
  19. package/dist/channels/whatsapp.d.ts +25 -0
  20. package/dist/channels/whatsapp.d.ts.map +1 -0
  21. package/dist/channels/whatsapp.js +187 -0
  22. package/dist/channels/whatsapp.js.map +1 -0
  23. package/dist/cli/commands/badge.d.ts +11 -0
  24. package/dist/cli/commands/badge.d.ts.map +1 -0
  25. package/dist/cli/commands/badge.js +98 -0
  26. package/dist/cli/commands/badge.js.map +1 -0
  27. package/dist/cli/commands/config.d.ts +3 -0
  28. package/dist/cli/commands/config.d.ts.map +1 -0
  29. package/dist/cli/commands/config.js +140 -0
  30. package/dist/cli/commands/config.js.map +1 -0
  31. package/dist/cli/commands/deploy.d.ts +3 -0
  32. package/dist/cli/commands/deploy.d.ts.map +1 -0
  33. package/dist/cli/commands/deploy.js +56 -0
  34. package/dist/cli/commands/deploy.js.map +1 -0
  35. package/dist/cli/commands/init.d.ts +3 -0
  36. package/dist/cli/commands/init.d.ts.map +1 -0
  37. package/dist/cli/commands/init.js +99 -0
  38. package/dist/cli/commands/init.js.map +1 -0
  39. package/dist/cli/commands/install.d.ts +3 -0
  40. package/dist/cli/commands/install.d.ts.map +1 -0
  41. package/dist/cli/commands/install.js +90 -0
  42. package/dist/cli/commands/install.js.map +1 -0
  43. package/dist/cli/commands/list.d.ts +3 -0
  44. package/dist/cli/commands/list.d.ts.map +1 -0
  45. package/dist/cli/commands/list.js +76 -0
  46. package/dist/cli/commands/list.js.map +1 -0
  47. package/dist/cli/commands/run.d.ts +3 -0
  48. package/dist/cli/commands/run.d.ts.map +1 -0
  49. package/dist/cli/commands/run.js +160 -0
  50. package/dist/cli/commands/run.js.map +1 -0
  51. package/dist/cli/commands/scan.d.ts +3 -0
  52. package/dist/cli/commands/scan.d.ts.map +1 -0
  53. package/dist/cli/commands/scan.js +133 -0
  54. package/dist/cli/commands/scan.js.map +1 -0
  55. package/dist/cli/commands/search.d.ts +3 -0
  56. package/dist/cli/commands/search.d.ts.map +1 -0
  57. package/dist/cli/commands/search.js +56 -0
  58. package/dist/cli/commands/search.js.map +1 -0
  59. package/dist/cli/index.d.ts +3 -0
  60. package/dist/cli/index.d.ts.map +1 -0
  61. package/dist/cli/index.js +70 -0
  62. package/dist/cli/index.js.map +1 -0
  63. package/dist/core/config.d.ts +167 -0
  64. package/dist/core/config.d.ts.map +1 -0
  65. package/dist/core/config.js +398 -0
  66. package/dist/core/config.js.map +1 -0
  67. package/dist/core/parser.d.ts +34 -0
  68. package/dist/core/parser.d.ts.map +1 -0
  69. package/dist/core/parser.js +462 -0
  70. package/dist/core/parser.js.map +1 -0
  71. package/dist/core/runtime.d.ts +68 -0
  72. package/dist/core/runtime.d.ts.map +1 -0
  73. package/dist/core/runtime.js +560 -0
  74. package/dist/core/runtime.js.map +1 -0
  75. package/dist/core/types.d.ts +525 -0
  76. package/dist/core/types.d.ts.map +1 -0
  77. package/dist/core/types.js +44 -0
  78. package/dist/core/types.js.map +1 -0
  79. package/dist/guard/index.d.ts +57 -0
  80. package/dist/guard/index.d.ts.map +1 -0
  81. package/dist/guard/index.js +238 -0
  82. package/dist/guard/index.js.map +1 -0
  83. package/dist/guard/patterns.d.ts +21 -0
  84. package/dist/guard/patterns.d.ts.map +1 -0
  85. package/dist/guard/patterns.js +797 -0
  86. package/dist/guard/patterns.js.map +1 -0
  87. package/dist/hub/index.d.ts +44 -0
  88. package/dist/hub/index.d.ts.map +1 -0
  89. package/dist/hub/index.js +144 -0
  90. package/dist/hub/index.js.map +1 -0
  91. package/dist/hub/registry.d.ts +52 -0
  92. package/dist/hub/registry.d.ts.map +1 -0
  93. package/dist/hub/registry.js +192 -0
  94. package/dist/hub/registry.js.map +1 -0
  95. package/dist/i18n/index.d.ts +19 -0
  96. package/dist/i18n/index.d.ts.map +1 -0
  97. package/dist/i18n/index.js +92 -0
  98. package/dist/i18n/index.js.map +1 -0
  99. package/dist/i18n/locales/en.d.ts +110 -0
  100. package/dist/i18n/locales/en.d.ts.map +1 -0
  101. package/dist/i18n/locales/en.js +123 -0
  102. package/dist/i18n/locales/en.js.map +1 -0
  103. package/dist/i18n/locales/es.d.ts +110 -0
  104. package/dist/i18n/locales/es.d.ts.map +1 -0
  105. package/dist/i18n/locales/es.js +123 -0
  106. package/dist/i18n/locales/es.js.map +1 -0
  107. package/dist/i18n/locales/pt.d.ts +110 -0
  108. package/dist/i18n/locales/pt.d.ts.map +1 -0
  109. package/dist/i18n/locales/pt.js +123 -0
  110. package/dist/i18n/locales/pt.js.map +1 -0
  111. package/dist/i18n/locales/zh.d.ts +110 -0
  112. package/dist/i18n/locales/zh.d.ts.map +1 -0
  113. package/dist/i18n/locales/zh.js +123 -0
  114. package/dist/i18n/locales/zh.js.map +1 -0
  115. package/dist/index.d.ts +168 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +275 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/router/index.d.ts +89 -0
  120. package/dist/router/index.d.ts.map +1 -0
  121. package/dist/router/index.js +292 -0
  122. package/dist/router/index.js.map +1 -0
  123. package/dist/router/providers.d.ts +48 -0
  124. package/dist/router/providers.d.ts.map +1 -0
  125. package/dist/router/providers.js +733 -0
  126. package/dist/router/providers.js.map +1 -0
  127. package/dist/runtime/executor.d.ts +96 -0
  128. package/dist/runtime/executor.d.ts.map +1 -0
  129. package/dist/runtime/executor.js +389 -0
  130. package/dist/runtime/executor.js.map +1 -0
  131. package/dist/sandbox/index.d.ts +52 -0
  132. package/dist/sandbox/index.d.ts.map +1 -0
  133. package/dist/sandbox/index.js +248 -0
  134. package/dist/sandbox/index.js.map +1 -0
  135. package/dist/security/skillguard.d.ts +25 -0
  136. package/dist/security/skillguard.d.ts.map +1 -0
  137. package/dist/security/skillguard.js +137 -0
  138. package/dist/security/skillguard.js.map +1 -0
  139. package/dist/tools/index.d.ts +55 -0
  140. package/dist/tools/index.d.ts.map +1 -0
  141. package/dist/tools/index.js +276 -0
  142. package/dist/tools/index.js.map +1 -0
  143. package/dist/tools/web-engine.d.ts +158 -0
  144. package/dist/tools/web-engine.d.ts.map +1 -0
  145. package/dist/tools/web-engine.js +802 -0
  146. package/dist/tools/web-engine.js.map +1 -0
  147. package/dist/tools/web-tools.d.ts +173 -0
  148. package/dist/tools/web-tools.d.ts.map +1 -0
  149. package/dist/tools/web-tools.js +251 -0
  150. package/dist/tools/web-tools.js.map +1 -0
  151. package/dist/utils/errors.d.ts +44 -0
  152. package/dist/utils/errors.d.ts.map +1 -0
  153. package/dist/utils/errors.js +130 -0
  154. package/dist/utils/errors.js.map +1 -0
  155. package/dist/utils/logger.d.ts +28 -0
  156. package/dist/utils/logger.d.ts.map +1 -0
  157. package/dist/utils/logger.js +121 -0
  158. package/dist/utils/logger.js.map +1 -0
  159. package/examples/basic-usage.ts +276 -0
  160. package/examples/code-reviewer.skill.md +83 -0
  161. package/examples/creative-writer.skill.md +80 -0
  162. package/examples/data-analyzer.skill.md +61 -0
  163. package/examples/hello-world.skill.md +36 -0
  164. package/examples/sample-skill.md +156 -0
  165. package/examples/summarizer.skill.md +62 -0
  166. package/examples/translator.skill.md +45 -0
  167. 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"}