cognitive-kit 1.0.0-alpha.1

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 (183) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +110 -0
  3. package/cli-wrapper.cjs +5 -0
  4. package/dist/Kit.d.ts +52 -0
  5. package/dist/Kit.js +250 -0
  6. package/dist/Kit.js.map +1 -0
  7. package/dist/agencies/AgencyOrchestrator.d.ts +24 -0
  8. package/dist/agencies/AgencyOrchestrator.js +219 -0
  9. package/dist/agencies/AgencyOrchestrator.js.map +1 -0
  10. package/dist/agencies/AgencyRegistry.d.ts +13 -0
  11. package/dist/agencies/AgencyRegistry.js +172 -0
  12. package/dist/agencies/AgencyRegistry.js.map +1 -0
  13. package/dist/agencies/AgentDefinition.d.ts +35 -0
  14. package/dist/agencies/AgentDefinition.js +2 -0
  15. package/dist/agencies/AgentDefinition.js.map +1 -0
  16. package/dist/cli.d.ts +1 -0
  17. package/dist/cli.js +34 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/config/ConfigurationManager.d.ts +24 -0
  20. package/dist/config/ConfigurationManager.js +74 -0
  21. package/dist/config/ConfigurationManager.js.map +1 -0
  22. package/dist/federation/FederationClient.d.ts +20 -0
  23. package/dist/federation/FederationClient.js +122 -0
  24. package/dist/federation/FederationClient.js.map +1 -0
  25. package/dist/federation/FederationManager.d.ts +30 -0
  26. package/dist/federation/FederationManager.js +96 -0
  27. package/dist/federation/FederationManager.js.map +1 -0
  28. package/dist/federation/FederationProtocol.d.ts +45 -0
  29. package/dist/federation/FederationProtocol.js +18 -0
  30. package/dist/federation/FederationProtocol.js.map +1 -0
  31. package/dist/federation/FederationServer.d.ts +20 -0
  32. package/dist/federation/FederationServer.js +193 -0
  33. package/dist/federation/FederationServer.js.map +1 -0
  34. package/dist/forge/ForgeRegistry.d.ts +25 -0
  35. package/dist/forge/ForgeRegistry.js +60 -0
  36. package/dist/forge/ForgeRegistry.js.map +1 -0
  37. package/dist/forge/PatternDetector.d.ts +38 -0
  38. package/dist/forge/PatternDetector.js +75 -0
  39. package/dist/forge/PatternDetector.js.map +1 -0
  40. package/dist/forge/SkillForger.d.ts +12 -0
  41. package/dist/forge/SkillForger.js +78 -0
  42. package/dist/forge/SkillForger.js.map +1 -0
  43. package/dist/host/HostAdapter.d.ts +8 -0
  44. package/dist/host/HostAdapter.js +2 -0
  45. package/dist/host/HostAdapter.js.map +1 -0
  46. package/dist/host/adapters/VSCodeAdapter.d.ts +46 -0
  47. package/dist/host/adapters/VSCodeAdapter.js +158 -0
  48. package/dist/host/adapters/VSCodeAdapter.js.map +1 -0
  49. package/dist/identity/IdentityManager.d.ts +18 -0
  50. package/dist/identity/IdentityManager.js +94 -0
  51. package/dist/identity/IdentityManager.js.map +1 -0
  52. package/dist/index.d.ts +30 -0
  53. package/dist/index.js +38 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/mcp/MCPServer.d.ts +25 -0
  56. package/dist/mcp/MCPServer.js +147 -0
  57. package/dist/mcp/MCPServer.js.map +1 -0
  58. package/dist/mcp/ToolRegistry.d.ts +12 -0
  59. package/dist/mcp/ToolRegistry.js +45 -0
  60. package/dist/mcp/ToolRegistry.js.map +1 -0
  61. package/dist/mcp/transports/DirectTransport.d.ts +12 -0
  62. package/dist/mcp/transports/DirectTransport.js +25 -0
  63. package/dist/mcp/transports/DirectTransport.js.map +1 -0
  64. package/dist/mcp/transports/SSETransport.d.ts +13 -0
  65. package/dist/mcp/transports/SSETransport.js +77 -0
  66. package/dist/mcp/transports/SSETransport.js.map +1 -0
  67. package/dist/mcp/transports/StdioTransport.d.ts +10 -0
  68. package/dist/mcp/transports/StdioTransport.js +45 -0
  69. package/dist/mcp/transports/StdioTransport.js.map +1 -0
  70. package/dist/mcp/transports/Transport.d.ts +11 -0
  71. package/dist/mcp/transports/Transport.js +2 -0
  72. package/dist/mcp/transports/Transport.js.map +1 -0
  73. package/dist/mcp/transports/index.d.ts +4 -0
  74. package/dist/mcp/transports/index.js +4 -0
  75. package/dist/mcp/transports/index.js.map +1 -0
  76. package/dist/memory/MemoryManager.d.ts +17 -0
  77. package/dist/memory/MemoryManager.js +62 -0
  78. package/dist/memory/MemoryManager.js.map +1 -0
  79. package/dist/memory/providers/InMemoryProvider.d.ts +13 -0
  80. package/dist/memory/providers/InMemoryProvider.js +52 -0
  81. package/dist/memory/providers/InMemoryProvider.js.map +1 -0
  82. package/dist/memory/providers/SQLiteProvider.d.ts +17 -0
  83. package/dist/memory/providers/SQLiteProvider.js +129 -0
  84. package/dist/memory/providers/SQLiteProvider.js.map +1 -0
  85. package/dist/security/GuardianGate.d.ts +24 -0
  86. package/dist/security/GuardianGate.js +105 -0
  87. package/dist/security/GuardianGate.js.map +1 -0
  88. package/dist/security/SovereigntyManager.d.ts +46 -0
  89. package/dist/security/SovereigntyManager.js +111 -0
  90. package/dist/security/SovereigntyManager.js.map +1 -0
  91. package/dist/security/StateGuardian.d.ts +40 -0
  92. package/dist/security/StateGuardian.js +76 -0
  93. package/dist/security/StateGuardian.js.map +1 -0
  94. package/dist/security/SynapticFirewall.d.ts +38 -0
  95. package/dist/security/SynapticFirewall.js +65 -0
  96. package/dist/security/SynapticFirewall.js.map +1 -0
  97. package/dist/skills/SkillRegistry.d.ts +15 -0
  98. package/dist/skills/SkillRegistry.js +135 -0
  99. package/dist/skills/SkillRegistry.js.map +1 -0
  100. package/dist/sql.js.d.ts +22 -0
  101. package/dist/tools/agency/agency_execute.d.ts +3 -0
  102. package/dist/tools/agency/agency_execute.js +75 -0
  103. package/dist/tools/agency/agency_execute.js.map +1 -0
  104. package/dist/tools/agency/meta_orchestrator.d.ts +2 -0
  105. package/dist/tools/agency/meta_orchestrator.js +118 -0
  106. package/dist/tools/agency/meta_orchestrator.js.map +1 -0
  107. package/dist/tools/agency/subagent_protocol.d.ts +2 -0
  108. package/dist/tools/agency/subagent_protocol.js +114 -0
  109. package/dist/tools/agency/subagent_protocol.js.map +1 -0
  110. package/dist/tools/agency/swarm_orchestrator.d.ts +2 -0
  111. package/dist/tools/agency/swarm_orchestrator.js +125 -0
  112. package/dist/tools/agency/swarm_orchestrator.js.map +1 -0
  113. package/dist/tools/analysis/code_archaeologist.d.ts +2 -0
  114. package/dist/tools/analysis/code_archaeologist.js +214 -0
  115. package/dist/tools/analysis/code_archaeologist.js.map +1 -0
  116. package/dist/tools/analysis/consensus_engine.d.ts +2 -0
  117. package/dist/tools/analysis/consensus_engine.js +178 -0
  118. package/dist/tools/analysis/consensus_engine.js.map +1 -0
  119. package/dist/tools/analysis/execution_flow.d.ts +2 -0
  120. package/dist/tools/analysis/execution_flow.js +204 -0
  121. package/dist/tools/analysis/execution_flow.js.map +1 -0
  122. package/dist/tools/analysis/sentiment_adapter.d.ts +2 -0
  123. package/dist/tools/analysis/sentiment_adapter.js +177 -0
  124. package/dist/tools/analysis/sentiment_adapter.js.map +1 -0
  125. package/dist/tools/cognitive/creativity.d.ts +2 -0
  126. package/dist/tools/cognitive/creativity.js +84 -0
  127. package/dist/tools/cognitive/creativity.js.map +1 -0
  128. package/dist/tools/cognitive/planning.d.ts +2 -0
  129. package/dist/tools/cognitive/planning.js +65 -0
  130. package/dist/tools/cognitive/planning.js.map +1 -0
  131. package/dist/tools/cognitive/reasoning.d.ts +2 -0
  132. package/dist/tools/cognitive/reasoning.js +124 -0
  133. package/dist/tools/cognitive/reasoning.js.map +1 -0
  134. package/dist/tools/cognitive/reflection.d.ts +2 -0
  135. package/dist/tools/cognitive/reflection.js +101 -0
  136. package/dist/tools/cognitive/reflection.js.map +1 -0
  137. package/dist/tools/cognitive/research.d.ts +2 -0
  138. package/dist/tools/cognitive/research.js +49 -0
  139. package/dist/tools/cognitive/research.js.map +1 -0
  140. package/dist/tools/federation_tools.d.ts +3 -0
  141. package/dist/tools/federation_tools.js +98 -0
  142. package/dist/tools/federation_tools.js.map +1 -0
  143. package/dist/tools/forge_tools.d.ts +4 -0
  144. package/dist/tools/forge_tools.js +71 -0
  145. package/dist/tools/forge_tools.js.map +1 -0
  146. package/dist/tools/knowledge/context_synth.d.ts +2 -0
  147. package/dist/tools/knowledge/context_synth.js +199 -0
  148. package/dist/tools/knowledge/context_synth.js.map +1 -0
  149. package/dist/tools/knowledge/knowledge_evolve.d.ts +2 -0
  150. package/dist/tools/knowledge/knowledge_evolve.js +223 -0
  151. package/dist/tools/knowledge/knowledge_evolve.js.map +1 -0
  152. package/dist/tools/knowledge/memory_vam.d.ts +2 -0
  153. package/dist/tools/knowledge/memory_vam.js +148 -0
  154. package/dist/tools/knowledge/memory_vam.js.map +1 -0
  155. package/dist/tools/registry.d.ts +24 -0
  156. package/dist/tools/registry.js +46 -0
  157. package/dist/tools/registry.js.map +1 -0
  158. package/dist/tools/security/blast_radius.d.ts +2 -0
  159. package/dist/tools/security/blast_radius.js +106 -0
  160. package/dist/tools/security/blast_radius.js.map +1 -0
  161. package/dist/tools/security/ethics_audit.d.ts +2 -0
  162. package/dist/tools/security/ethics_audit.js +117 -0
  163. package/dist/tools/security/ethics_audit.js.map +1 -0
  164. package/dist/tools/security/guardian_tools.d.ts +5 -0
  165. package/dist/tools/security/guardian_tools.js +104 -0
  166. package/dist/tools/security/guardian_tools.js.map +1 -0
  167. package/dist/tools/security/integrity_ledger.d.ts +2 -0
  168. package/dist/tools/security/integrity_ledger.js +111 -0
  169. package/dist/tools/security/integrity_ledger.js.map +1 -0
  170. package/dist/tools/security/red_team.d.ts +2 -0
  171. package/dist/tools/security/red_team.js +101 -0
  172. package/dist/tools/security/red_team.js.map +1 -0
  173. package/dist/tools/security/security_gate.d.ts +2 -0
  174. package/dist/tools/security/security_gate.js +93 -0
  175. package/dist/tools/security/security_gate.js.map +1 -0
  176. package/dist/tools/security/threat_mapper.d.ts +2 -0
  177. package/dist/tools/security/threat_mapper.js +102 -0
  178. package/dist/tools/security/threat_mapper.js.map +1 -0
  179. package/dist/types.d.ts +125 -0
  180. package/dist/types.js +2 -0
  181. package/dist/types.js.map +1 -0
  182. package/package.json +81 -0
  183. package/types/sql.js.d.ts +22 -0
@@ -0,0 +1,101 @@
1
+ const ATTACK_VECTORS = [
2
+ { name: 'Credential Stuffing', difficulty: 0.3, impact: 0.8, category: 'auth' },
3
+ { name: 'Phishing Simulation', difficulty: 0.4, impact: 0.7, category: 'social' },
4
+ { name: 'API Injection', difficulty: 0.6, impact: 0.85, category: 'application' },
5
+ { name: 'Privilege Escalation', difficulty: 0.7, impact: 0.9, category: 'auth' },
6
+ { name: 'Supply Chain Compromise', difficulty: 0.8, impact: 0.95, category: 'infrastructure' },
7
+ { name: 'Side-Channel Attack', difficulty: 0.85, impact: 0.65, category: 'crypto' },
8
+ { name: 'Social Engineering', difficulty: 0.3, impact: 0.6, category: 'social' },
9
+ { name: 'Zero-Day Exploit', difficulty: 0.95, impact: 0.95, category: 'application' },
10
+ { name: 'Man-in-the-Middle', difficulty: 0.5, impact: 0.75, category: 'network' },
11
+ { name: 'Insider Threat', difficulty: 0.2, impact: 0.85, category: 'personnel' },
12
+ ];
13
+ export const redTeamTool = {
14
+ id: 'red_team',
15
+ name: 'Red Team Simulation',
16
+ description: 'Adversarial security simulation. Models attacker behavior across multiple vectors, identifies exploitable weaknesses, and recommends defensive countermeasures.',
17
+ inputSchema: {
18
+ target: { type: 'string', description: 'System, application, or infrastructure to assess' },
19
+ focus: { type: 'string', description: 'Attack focus area: auth, application, network, social, infrastructure, crypto, personnel' },
20
+ intensity: { type: 'string', enum: ['quick', 'standard', 'deep'], description: 'Assessment intensity' },
21
+ },
22
+ category: 'cognitive',
23
+ handler: async (params, ctx) => {
24
+ const target = String(params.target || '');
25
+ const focus = String(params.focus || 'all');
26
+ const intensity = String(params.intensity || 'standard');
27
+ if (!target) {
28
+ return { success: false, data: null, error: 'Target is required for red team assessment' };
29
+ }
30
+ const intensityMultiplier = intensity === 'quick' ? 0.5 : intensity === 'deep' ? 2 : 1;
31
+ const vectorCount = intensity === 'quick' ? 3 : intensity === 'deep' ? 8 : 5;
32
+ const vectors = focus === 'all'
33
+ ? ATTACK_VECTORS
34
+ : ATTACK_VECTORS.filter(v => focus.split(',').map(f => f.trim()).includes(v.category));
35
+ const selectedVectors = vectors
36
+ .sort(() => Math.random() - 0.5)
37
+ .slice(0, Math.min(vectorCount, vectors.length));
38
+ const simulations = selectedVectors.map(vec => {
39
+ const successProb = Math.max(0.05, vec.difficulty * (0.8 + Math.random() * 0.4));
40
+ const simulatedSuccess = Math.random() > successProb;
41
+ return {
42
+ vector: vec.name,
43
+ category: vec.category,
44
+ difficulty: vec.difficulty,
45
+ potentialImpact: vec.impact,
46
+ simulatedSuccess,
47
+ exploitPath: simulatedSuccess
48
+ ? `${vec.name.toLowerCase().replace(/\s+/g, '_')}_${Date.now().toString(36)}`
49
+ : null,
50
+ detectionLikelihood: vec.difficulty > 0.7 ? 0.2 : 0.6,
51
+ recommendation: getRecommendation(vec.name, vec.category),
52
+ };
53
+ });
54
+ const successfulAttacks = simulations.filter(s => s.simulatedSuccess);
55
+ const overallRisk = parseFloat((simulations.reduce((sum, s) => sum + s.potentialImpact * (s.simulatedSuccess ? 1 : 0.3), 0) / simulations.length).toFixed(3));
56
+ await ctx.memory.store('security', `redteam-${Date.now()}`, {
57
+ target: target.slice(0, 200),
58
+ vectorsTested: selectedVectors.length,
59
+ successfulAttacks: successfulAttacks.length,
60
+ overallRisk,
61
+ });
62
+ return {
63
+ success: true,
64
+ data: {
65
+ target,
66
+ intensity,
67
+ overallRiskScore: overallRisk,
68
+ overallRiskLevel: overallRisk >= 0.7 ? 'CRITICAL' : overallRisk >= 0.4 ? 'ELEVATED' : 'LOW',
69
+ vectorsTested: selectedVectors.length,
70
+ successfulBreaches: successfulAttacks.length,
71
+ breachRate: `${Math.round((successfulAttacks.length / selectedVectors.length) * 100)}%`,
72
+ simulations,
73
+ prioritizedRisks: simulations
74
+ .filter(s => s.simulatedSuccess && s.potentialImpact > 0.6)
75
+ .map(s => `${s.vector} (impact: ${Math.round(s.potentialImpact * 100)}%)`),
76
+ summary: successfulAttacks.length === 0
77
+ ? 'Target resisted all tested attack vectors'
78
+ : `${successfulAttacks.length}/${selectedVectors.length} attack vectors succeeded. Prioritize mitigations for high-impact breaches.`,
79
+ },
80
+ metadata: {
81
+ vectorsTested: selectedVectors.length,
82
+ breachesFound: successfulAttacks.length,
83
+ sovereignty: ctx.identity.sovereignty,
84
+ },
85
+ };
86
+ },
87
+ };
88
+ function getRecommendation(vector, category) {
89
+ const recs = {
90
+ auth: ['Deploy MFA across all access points', 'Implement adaptive authentication', 'Review credential policies'],
91
+ social: ['Conduct security awareness training', 'Implement reporting procedures', 'Simulate phishing campaigns'],
92
+ application: ['Regular penetration testing', 'WAF deployment', 'Input validation and sanitization'],
93
+ network: ['Network segmentation', 'Traffic encryption', 'IDS/IPS deployment'],
94
+ infrastructure: ['Vulnerability scanning', 'Patch management', 'Configuration hardening'],
95
+ crypto: ['Algorithm review', 'Key management audit', 'Protocol verification'],
96
+ personnel: ['Least privilege review', 'Background checks', 'Monitoring and logging'],
97
+ };
98
+ const cat = recs[category] || recs['application'];
99
+ return cat[Math.floor(Math.random() * cat.length)];
100
+ }
101
+ //# sourceMappingURL=red_team.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"red_team.js","sourceRoot":"","sources":["../../../src/tools/security/red_team.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ToolDefinition } from '../../types.js';
2
+ export declare const securityGateTool: ToolDefinition;
@@ -0,0 +1,93 @@
1
+ const DEFAULT_POLICIES = [
2
+ { id: 'SQLI-01', rule: 'Detect SQL injection patterns', severity: 'critical' },
3
+ { id: 'XSS-01', rule: 'Detect cross-site scripting attempts', severity: 'critical' },
4
+ { id: 'PATH-01', rule: 'Detect path traversal attempts', severity: 'high' },
5
+ { id: 'CMDI-01', rule: 'Detect command injection patterns', severity: 'critical' },
6
+ { id: 'SENS-01', rule: 'Detect sensitive data exposure', severity: 'high' },
7
+ { id: 'AUTH-01', rule: 'Verify authentication tokens', severity: 'high' },
8
+ { id: 'RATE-01', rule: 'Rate limiting check', severity: 'medium' },
9
+ ];
10
+ const INJECTION_PATTERNS = [
11
+ { pattern: new RegExp("'|\u002d\u002d|;|\\/\\*|\\*\\/"), type: 'SQL_INJECTION', severity: 'critical' },
12
+ { pattern: /<script|onerror=|onload=|javascript:/i, type: 'XSS', severity: 'critical' },
13
+ { pattern: /\.\.\/|\.\.\\|%2e%2e%2f/i, type: 'PATH_TRAVERSAL', severity: 'high' },
14
+ { pattern: /rm|del|format|shutdown|cmd|\|[`$]|\$\(|%x/i, type: 'COMMAND_INJECTION', severity: 'critical' },
15
+ { pattern: /sk-|ghp_|gho_|xox[bpr]-|AKIA/, type: 'SECRET_LEAK', severity: 'high' },
16
+ ];
17
+ export const securityGateTool = {
18
+ id: 'security_gate',
19
+ name: 'Security Gateway',
20
+ description: 'Zero-trust security gateway that evaluates requests, payloads, and tokens against security policies. Detects injection, XSS, path traversal, secret leaks, and auth violations.',
21
+ inputSchema: {
22
+ payload: { type: 'string', description: 'The payload or request to evaluate' },
23
+ token: { type: 'string', description: 'Optional authentication token to verify' },
24
+ policies: { type: 'string', description: 'Comma-separated policy IDs to enforce (default: all)' },
25
+ mode: { type: 'string', enum: ['enforce', 'audit', 'learn'], description: 'Enforcement mode' },
26
+ source: { type: 'string', description: 'Source identifier for rate limiting context' },
27
+ },
28
+ category: 'cognitive',
29
+ handler: async (params, ctx) => {
30
+ const payload = String(params.payload || '');
31
+ const token = String(params.token || '');
32
+ const mode = String(params.mode || 'enforce');
33
+ const source = String(params.source || 'unknown');
34
+ const policyFilter = String(params.policies || '');
35
+ const activePolicies = policyFilter
36
+ ? DEFAULT_POLICIES.filter(p => policyFilter.split(',').map(s => s.trim()).includes(p.id))
37
+ : DEFAULT_POLICIES;
38
+ const violations = [];
39
+ for (const { pattern, type, severity } of INJECTION_PATTERNS) {
40
+ const match = payload.match(pattern);
41
+ if (match) {
42
+ violations.push({
43
+ policy: activePolicies.find(p => p.severity === severity.split('_')[0])?.id ?? 'GEN-01',
44
+ type,
45
+ severity,
46
+ match: match[0],
47
+ });
48
+ }
49
+ }
50
+ let authResult = { valid: true, reason: 'No token required' };
51
+ if (token) {
52
+ const isValid = token.length >= 8 && /^[a-zA-Z0-9_-]+$/.test(token);
53
+ authResult = {
54
+ valid: isValid,
55
+ reason: isValid ? 'Token format valid' : 'Token format invalid or too short',
56
+ };
57
+ }
58
+ const criticalCount = violations.filter(v => v.severity === 'critical').length;
59
+ const highCount = violations.filter(v => v.severity === 'high').length;
60
+ const blocked = mode === 'enforce' && (criticalCount > 0 || highCount > 2);
61
+ await ctx.memory.store('security', `gate-${Date.now()}`, {
62
+ source,
63
+ violationCount: violations.length,
64
+ blocked,
65
+ mode,
66
+ timestamp: Date.now(),
67
+ });
68
+ return {
69
+ success: true,
70
+ data: {
71
+ verdict: blocked ? 'BLOCKED' : mode === 'audit' ? 'AUDITED' : 'PASSED',
72
+ blocked,
73
+ violations,
74
+ violationCount: violations.length,
75
+ auth: authResult,
76
+ policiesApplied: activePolicies.length,
77
+ riskScore: Math.min(1, (criticalCount * 0.4 + highCount * 0.2 + violations.length * 0.1)),
78
+ summary: blocked
79
+ ? `Blocked: ${criticalCount} critical, ${highCount} high severity violations`
80
+ : violations.length === 0
81
+ ? 'No security violations detected'
82
+ : `Audit mode: ${violations.length} violation(s) detected but not blocked`,
83
+ },
84
+ metadata: {
85
+ mode,
86
+ blocked,
87
+ sovereignty: ctx.identity.sovereignty,
88
+ timestamp: Date.now(),
89
+ },
90
+ };
91
+ },
92
+ };
93
+ //# sourceMappingURL=security_gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security_gate.js","sourceRoot":"","sources":["../../../src/tools/security/security_gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ToolDefinition } from '../../types.js';
2
+ export declare const threatMapperTool: ToolDefinition;
@@ -0,0 +1,102 @@
1
+ const STRIDE_CATEGORIES = [
2
+ { id: 'S', name: 'Spoofing', description: 'Impersonating someone or something else', baseRisk: 0.6 },
3
+ { id: 'T', name: 'Tampering', description: 'Modifying data or code', baseRisk: 0.7 },
4
+ { id: 'R', name: 'Repudiation', description: 'Denying having performed an action', baseRisk: 0.4 },
5
+ { id: 'I', name: 'Information Disclosure', description: 'Exposing protected data', baseRisk: 0.8 },
6
+ { id: 'D', name: 'Denial of Service', description: 'Disrupting service availability', baseRisk: 0.5 },
7
+ { id: 'E', name: 'Elevation of Privilege', description: 'Gaining unauthorized access', baseRisk: 0.75 },
8
+ ];
9
+ const THREAT_PATTERNS = [
10
+ { keyword: 'auth', threat: 'Authentication bypass via weak credentials', category: 'S', severity: 0.7 },
11
+ { keyword: 'session', threat: 'Session hijacking or fixation', category: 'S', severity: 0.65 },
12
+ { keyword: 'token', threat: 'Token theft or replay attacks', category: 'S', severity: 0.6 },
13
+ { keyword: 'upload', threat: 'Malicious file upload leading to RCE', category: 'E', severity: 0.85 },
14
+ { keyword: 'api', threat: 'Unrestricted API endpoint abuse', category: 'D', severity: 0.55 },
15
+ { keyword: 'database', threat: 'Database injection and data exfiltration', category: 'T', severity: 0.8 },
16
+ { keyword: 'cache', threat: 'Cache poisoning or data leakage', category: 'R', severity: 0.45 },
17
+ { keyword: 'log', threat: 'Log injection or sensitive data in logs', category: 'R', severity: 0.5 },
18
+ { keyword: 'config', threat: 'Configuration-based privilege escalation', category: 'E', severity: 0.6 },
19
+ { keyword: 'network', threat: 'Network-level eavesdropping or MitM', category: 'I', severity: 0.75 },
20
+ ];
21
+ export const threatMapperTool = {
22
+ id: 'threat_mapper',
23
+ name: 'Threat Mapper',
24
+ description: 'STRIDE-based threat modeling and attack surface analysis. Maps system descriptions to threat categories, identifies attack vectors, and recommends mitigations.',
25
+ inputSchema: {
26
+ systemDescription: { type: 'string', description: 'Description of the system, architecture, or component to analyze' },
27
+ focus: { type: 'string', description: 'STRIDE focus areas: S,T,R,I,D,E or all (default)' },
28
+ context: { type: 'string', description: 'Deployment context (cloud, on-prem, hybrid, web, mobile)' },
29
+ },
30
+ category: 'cognitive',
31
+ handler: async (params, ctx) => {
32
+ const description = String(params.systemDescription || '');
33
+ const focusInput = String(params.focus || 'STRIDE');
34
+ const context = String(params.context || 'general');
35
+ if (!description) {
36
+ return { success: false, data: null, error: 'System description is required' };
37
+ }
38
+ const focusAreas = focusInput === 'STRIDE' || focusInput === 'all'
39
+ ? STRIDE_CATEGORIES
40
+ : STRIDE_CATEGORIES.filter(s => focusInput.includes(s.id));
41
+ const lowerDesc = description.toLowerCase();
42
+ const matchedThreats = THREAT_PATTERNS
43
+ .filter(t => lowerDesc.includes(t.keyword))
44
+ .map(t => ({
45
+ ...t,
46
+ confidence: 0.5 + (Math.random() * 0.4),
47
+ mitigation: generateMitigation(t),
48
+ }));
49
+ const strideAnalysis = focusAreas.map(stride => {
50
+ const relatedThreats = matchedThreats.filter(t => t.category === stride.id);
51
+ const riskLevel = relatedThreats.length > 0
52
+ ? Math.max(stride.baseRisk, ...relatedThreats.map(t => t.severity))
53
+ : stride.baseRisk * 0.5;
54
+ return {
55
+ category: `${stride.id}: ${stride.name}`,
56
+ description: stride.description,
57
+ threatCount: relatedThreats.length,
58
+ riskScore: parseFloat(riskLevel.toFixed(3)),
59
+ riskLevel: riskLevel >= 0.7 ? 'HIGH' : riskLevel >= 0.4 ? 'MEDIUM' : 'LOW',
60
+ sampleThreats: relatedThreats.slice(0, 3),
61
+ };
62
+ });
63
+ const overallRisk = parseFloat((strideAnalysis.reduce((sum, s) => sum + s.riskScore, 0) / strideAnalysis.length).toFixed(3));
64
+ const criticalCategories = strideAnalysis.filter(s => s.riskLevel === 'HIGH');
65
+ await ctx.memory.store('threat', `map-${Date.now()}`, {
66
+ context,
67
+ threatCount: matchedThreats.length,
68
+ overallRisk,
69
+ criticalCount: criticalCategories.length,
70
+ });
71
+ return {
72
+ success: true,
73
+ data: {
74
+ systemContext: context,
75
+ overallRiskScore: overallRisk,
76
+ overallRiskLevel: overallRisk >= 0.7 ? 'CRITICAL' : overallRisk >= 0.4 ? 'ELEVATED' : 'NORMAL',
77
+ strideAnalysis,
78
+ threatsDetected: matchedThreats.length,
79
+ criticalAreas: criticalCategories.map(c => c.category),
80
+ recommendedActions: criticalCategories.map(c => `Prioritize ${c.category} — implement ${c.category.split(':')[0] === 'I' ? 'encryption and access controls' : 'input validation and monitoring'}`),
81
+ },
82
+ metadata: {
83
+ matchedThreats: matchedThreats.length,
84
+ categories: focusAreas.length,
85
+ sovereignty: ctx.identity.sovereignty,
86
+ },
87
+ };
88
+ },
89
+ };
90
+ function generateMitigation(threat) {
91
+ const mitigations = {
92
+ S: ['Implement multi-factor authentication', 'Use cryptographic identity verification', 'Deploy session management with rotation'],
93
+ T: ['Apply integrity checks (checksums, signatures)', 'Use parameterized queries', 'Implement audit logging'],
94
+ R: ['Enable comprehensive audit trails', 'Implement digital signatures', 'Use non-repudiation mechanisms'],
95
+ I: ['Encrypt data at rest and in transit', 'Apply least-privilege access', 'Implement data classification'],
96
+ D: ['Deploy rate limiting and throttling', 'Use auto-scaling and redundancy', 'Implement circuit breakers'],
97
+ E: ['Apply principle of least privilege', 'Regular permission audits', 'Implement RBAC with separation of duties'],
98
+ };
99
+ const cat = mitigations[threat.category] || mitigations['I'];
100
+ return cat[Math.floor(Math.random() * cat.length)];
101
+ }
102
+ //# sourceMappingURL=threat_mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threat_mapper.js","sourceRoot":"","sources":["../../../src/tools/security/threat_mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ export type HostType = 'ide' | 'database' | 'cms' | 'cli' | 'api' | 'generic';
2
+ export type HostCapability = 'filesystem' | 'database' | 'network' | 'editor' | 'terminal' | 'http-server' | 'websocket' | 'mcp-client' | 'llm-api' | 'search' | 'authentication';
3
+ export interface HostProfile {
4
+ type: HostType;
5
+ name: string;
6
+ version?: string;
7
+ capabilities: HostCapability[];
8
+ metadata?: Record<string, string>;
9
+ }
10
+ export interface SovereigntyConfig {
11
+ hostId: string;
12
+ hostName: string;
13
+ hostKey?: string;
14
+ permissions?: SovereigntyPermission[];
15
+ }
16
+ export interface SovereigntyPermission {
17
+ resource: string;
18
+ actions: ('read' | 'write' | 'execute' | 'admin')[];
19
+ maxWeight: number;
20
+ }
21
+ export interface IdentityClaims {
22
+ actorId: string;
23
+ actorType: 'host' | 'user' | 'agent' | 'kit-internal';
24
+ sovereignty: number;
25
+ permissions: string[];
26
+ }
27
+ export interface MemoryProvider {
28
+ readonly name: string;
29
+ connect(): Promise<void>;
30
+ disconnect(): Promise<void>;
31
+ store(record: Omit<MemoryRecord, 'id' | 'timestamp'>): Promise<MemoryRecord>;
32
+ recall(query: MemoryQuery): Promise<MemoryRecord[]>;
33
+ delete(namespace: string, key: string): Promise<boolean>;
34
+ clear(namespace?: string): Promise<void>;
35
+ }
36
+ export interface KitConfig {
37
+ host: import('./host/HostAdapter.js').HostAdapter | HostProfile;
38
+ storage?: StorageConfig;
39
+ sovereignty?: SovereigntyConfig;
40
+ transport?: TransportConfig;
41
+ tools?: {
42
+ autoLoad?: boolean;
43
+ additional?: ToolDefinition[];
44
+ };
45
+ logging?: {
46
+ level?: 'debug' | 'info' | 'warn' | 'error';
47
+ silent?: boolean;
48
+ };
49
+ }
50
+ export interface StorageConfig {
51
+ type: 'sqlite' | 'memory' | 'file';
52
+ path?: string;
53
+ }
54
+ export interface TransportConfig {
55
+ type: 'stdio' | 'sse' | 'direct';
56
+ port?: number;
57
+ }
58
+ export interface ToolDefinition {
59
+ id: string;
60
+ name: string;
61
+ description: string;
62
+ inputSchema: Record<string, unknown>;
63
+ handler: ToolHandler;
64
+ category?: 'cognitive' | 'host' | 'memory' | 'system';
65
+ sovereignty?: number;
66
+ }
67
+ export type ToolHandler = (params: Record<string, unknown>, context: ToolContext) => Promise<ToolResult>;
68
+ export interface ToolContext {
69
+ identity: IdentityClaims;
70
+ host: HostProfile;
71
+ memory: import('./memory/MemoryManager.js').MemoryManager;
72
+ abortSignal?: AbortSignal;
73
+ }
74
+ export interface ToolResult {
75
+ success: boolean;
76
+ data: unknown;
77
+ error?: string;
78
+ metadata?: Record<string, unknown>;
79
+ sovereignty?: number;
80
+ }
81
+ export interface MemoryRecord {
82
+ id: string;
83
+ namespace: string;
84
+ key: string;
85
+ value: unknown;
86
+ timestamp: number;
87
+ metadata?: Record<string, unknown>;
88
+ }
89
+ export interface MemoryQuery {
90
+ namespace?: string;
91
+ key?: string;
92
+ search?: string;
93
+ limit?: number;
94
+ offset?: number;
95
+ }
96
+ export interface SkillDefinition {
97
+ id: string;
98
+ name: string;
99
+ description: string;
100
+ category: string;
101
+ triggers: string[];
102
+ proficiency: number;
103
+ source: 'built-in' | 'forged';
104
+ toolsRequired: string[];
105
+ }
106
+ export interface AgencyDefinition {
107
+ id: string;
108
+ name: string;
109
+ description: string;
110
+ tools: string[];
111
+ orchestration: 'sequential' | 'parallel' | 'adaptive';
112
+ sovereignty: number;
113
+ }
114
+ export interface MCPMessage {
115
+ jsonrpc: '2.0';
116
+ id?: string | number;
117
+ method?: string;
118
+ params?: Record<string, unknown>;
119
+ result?: unknown;
120
+ error?: {
121
+ code: number;
122
+ message: string;
123
+ data?: unknown;
124
+ };
125
+ }
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "cognitive-kit",
3
+ "version": "1.0.0-alpha.1",
4
+ "description": "Pluggable cognitive layer — port of GCS v15.3 as an embeddable MCP cognitive kit. Provides reasoning, research, planning, creativity, reflection, security, knowledge, analysis, agency orchestration, and adaptive pipelines via MCP protocol.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "typesVersions": {
15
+ "*": {
16
+ "sql.js": ["./types/sql.js.d.ts"]
17
+ }
18
+ },
19
+ "bin": {
20
+ "cognitive-kit": "./cli-wrapper.cjs"
21
+ },
22
+ "files": [
23
+ "dist",
24
+ "types",
25
+ "cli-wrapper.cjs",
26
+ "README.md",
27
+ "LICENSE"
28
+ ],
29
+ "engines": {
30
+ "node": ">=20.0.0"
31
+ },
32
+ "scripts": {
33
+ "build": "tsc -p tsconfig.json",
34
+ "dev": "tsc --watch -p tsconfig.json",
35
+ "test": "node --experimental-vm-modules --test dist/tests/",
36
+ "start": "node dist/cli.js",
37
+ "prepublishOnly": "npm run build"
38
+ },
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "https://github.com/GaboBase/TODO-Cognitive.git",
45
+ "directory": "packages/cognitive-kit"
46
+ },
47
+ "bugs": {
48
+ "url": "https://github.com/GaboBase/TODO-Cognitive/issues"
49
+ },
50
+ "homepage": "https://github.com/GaboBase/TODO-Cognitive/tree/main/packages/cognitive-kit",
51
+ "keywords": [
52
+ "mcp",
53
+ "model-context-protocol",
54
+ "cognitive",
55
+ "ai",
56
+ "agent",
57
+ "orchestration",
58
+ "reasoning",
59
+ "research",
60
+ "planning",
61
+ "sentiment",
62
+ "security",
63
+ "ethics",
64
+ "knowledge-graph",
65
+ "memory",
66
+ "swarm",
67
+ "agency",
68
+ "skill-forging",
69
+ "guardian",
70
+ "sovereignty"
71
+ ],
72
+ "author": "GaboBase (Leirbag) <agabriel.js@gmail.com>",
73
+ "license": "MIT",
74
+ "dependencies": {
75
+ "sql.js": "^1.11.0"
76
+ },
77
+ "devDependencies": {
78
+ "@types/node": "^24.0.0",
79
+ "typescript": "^5.8.2"
80
+ }
81
+ }
@@ -0,0 +1,22 @@
1
+ declare module 'sql.js' {
2
+ interface SqlJsStatic {
3
+ Database: new (data?: ArrayLike<number> | Buffer | null) => Database;
4
+ }
5
+
6
+ interface Statement {
7
+ bind(params?: any[]): boolean;
8
+ step(): boolean;
9
+ getAsObject(params?: object): any;
10
+ free(): boolean;
11
+ }
12
+
13
+ interface Database {
14
+ run(sql: string, params?: any[]): Database;
15
+ exec(sql: string): any[];
16
+ prepare(sql: string): Statement;
17
+ export(): Uint8Array;
18
+ close(): void;
19
+ }
20
+
21
+ export default function initSqlJs(config?: any): Promise<SqlJsStatic>;
22
+ }