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 @@
1
+ {"version":3,"file":"InMemoryProvider.js","sourceRoot":"","sources":["../../../src/memory/providers/InMemoryProvider.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,WAAW,CAAC;IACpB,IAAI,GAAG,IAAI,GAAG,EAAwB,CAAC;IACvC,OAAO,GAAG,CAAC,CAAC;IAEpB,KAAK,CAAC,OAAO,KAAmB,CAAC;IAEjC,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAA8C;QACxD,MAAM,KAAK,GAAiB;YAC1B,GAAG,MAAM;YACT,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAkB;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAE7C,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACzC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC3B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CACtD,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QAElD,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC,KAAK;YAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAEzD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,GAAW;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAkB;QAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { MemoryProvider } from '../../types.js';
2
+ import type { MemoryRecord, MemoryQuery } from '../../types.js';
3
+ export declare class SQLiteProvider implements MemoryProvider {
4
+ readonly name = "sqlite";
5
+ private db;
6
+ private dbPath;
7
+ private initPromise;
8
+ constructor(path?: string);
9
+ connect(): Promise<void>;
10
+ private init;
11
+ disconnect(): Promise<void>;
12
+ store(record: Omit<MemoryRecord, 'id' | 'timestamp'>): Promise<MemoryRecord>;
13
+ recall(query: MemoryQuery): Promise<MemoryRecord[]>;
14
+ delete(namespace: string, key: string): Promise<boolean>;
15
+ clear(namespace?: string): Promise<void>;
16
+ private ensureConnected;
17
+ }
@@ -0,0 +1,129 @@
1
+ let sqlJsInit = null;
2
+ export class SQLiteProvider {
3
+ name = 'sqlite';
4
+ db = null;
5
+ dbPath;
6
+ initPromise = null;
7
+ constructor(path) {
8
+ this.dbPath = path || ':memory:';
9
+ }
10
+ async connect() {
11
+ if (this.initPromise)
12
+ return this.initPromise;
13
+ this.initPromise = this.init();
14
+ return this.initPromise;
15
+ }
16
+ async init() {
17
+ if (!sqlJsInit) {
18
+ const mod = await import('sql.js');
19
+ sqlJsInit = mod.default || mod;
20
+ }
21
+ const SQL = await sqlJsInit();
22
+ if (this.dbPath === ':memory:') {
23
+ this.db = new SQL.Database();
24
+ }
25
+ else {
26
+ const fs = await import('node:fs');
27
+ try {
28
+ const buffer = fs.readFileSync(this.dbPath);
29
+ this.db = new SQL.Database(buffer);
30
+ }
31
+ catch {
32
+ this.db = new SQL.Database();
33
+ }
34
+ }
35
+ this.db.run(`
36
+ CREATE TABLE IF NOT EXISTS memory (
37
+ id TEXT PRIMARY KEY,
38
+ namespace TEXT NOT NULL,
39
+ key TEXT NOT NULL,
40
+ value TEXT NOT NULL,
41
+ timestamp INTEGER NOT NULL,
42
+ metadata TEXT
43
+ )
44
+ `);
45
+ this.db.run('CREATE INDEX IF NOT EXISTS idx_memory_namespace ON memory(namespace)');
46
+ this.db.run('CREATE INDEX IF NOT EXISTS idx_memory_key ON memory(key)');
47
+ this.db.run('CREATE INDEX IF NOT EXISTS idx_memory_timestamp ON memory(timestamp DESC)');
48
+ }
49
+ async disconnect() {
50
+ if (this.db && this.dbPath !== ':memory:') {
51
+ const data = this.db.export();
52
+ const fs = await import('node:fs');
53
+ fs.writeFileSync(this.dbPath, Buffer.from(data));
54
+ }
55
+ this.db?.close();
56
+ this.db = null;
57
+ this.initPromise = null;
58
+ }
59
+ async store(record) {
60
+ this.ensureConnected();
61
+ const id = `mem-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
62
+ const timestamp = Date.now();
63
+ this.db.run(`INSERT OR REPLACE INTO memory (id, namespace, key, value, timestamp, metadata)
64
+ VALUES (?, ?, ?, ?, ?, ?)`, [id, record.namespace, record.key, JSON.stringify(record.value), timestamp,
65
+ record.metadata ? JSON.stringify(record.metadata) : null]);
66
+ return { ...record, id, timestamp };
67
+ }
68
+ async recall(query) {
69
+ this.ensureConnected();
70
+ let sql = 'SELECT * FROM memory WHERE 1=1';
71
+ const params = [];
72
+ if (query.namespace) {
73
+ sql += ' AND namespace = ?';
74
+ params.push(query.namespace);
75
+ }
76
+ if (query.key) {
77
+ sql += ' AND key = ?';
78
+ params.push(query.key);
79
+ }
80
+ if (query.search) {
81
+ sql += ' AND value LIKE ?';
82
+ params.push(`%${query.search}%`);
83
+ }
84
+ sql += ' ORDER BY timestamp DESC';
85
+ if (query.limit) {
86
+ sql += ' LIMIT ?';
87
+ params.push(query.limit);
88
+ }
89
+ if (query.offset) {
90
+ sql += ' OFFSET ?';
91
+ params.push(query.offset);
92
+ }
93
+ const stmt = this.db.prepare(sql);
94
+ if (params.length > 0)
95
+ stmt.bind(params);
96
+ const rows = [];
97
+ while (stmt.step()) {
98
+ rows.push(stmt.getAsObject());
99
+ }
100
+ stmt.free();
101
+ return rows.map((r) => ({
102
+ id: r.id,
103
+ namespace: r.namespace,
104
+ key: r.key,
105
+ value: JSON.parse(r.value),
106
+ timestamp: r.timestamp,
107
+ metadata: r.metadata ? JSON.parse(r.metadata) : undefined,
108
+ }));
109
+ }
110
+ async delete(namespace, key) {
111
+ this.ensureConnected();
112
+ this.db.run('DELETE FROM memory WHERE namespace = ? AND key = ?', [namespace, key]);
113
+ return true;
114
+ }
115
+ async clear(namespace) {
116
+ this.ensureConnected();
117
+ if (namespace) {
118
+ this.db.run('DELETE FROM memory WHERE namespace = ?', [namespace]);
119
+ }
120
+ else {
121
+ this.db.run('DELETE FROM memory');
122
+ }
123
+ }
124
+ ensureConnected() {
125
+ if (!this.db)
126
+ throw new Error('SQLiteProvider not connected. Call connect() first.');
127
+ }
128
+ }
129
+ //# sourceMappingURL=SQLiteProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLiteProvider.js","sourceRoot":"","sources":["../../../src/memory/providers/SQLiteProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { ToolRegistry } from '../mcp/ToolRegistry.js';
2
+ import type { ToolResult, ToolContext } from '../types.js';
3
+ import { SovereigntyManager } from './SovereigntyManager.js';
4
+ import { SynapticFirewall } from './SynapticFirewall.js';
5
+ import { StateGuardian } from './StateGuardian.js';
6
+ export interface GuardianConfig {
7
+ enableFirewall?: boolean;
8
+ enableSovereignty?: boolean;
9
+ enableStateGuardian?: boolean;
10
+ requiredSovereignty?: number;
11
+ riskThreshold?: 'low' | 'medium' | 'high';
12
+ }
13
+ export declare class GuardianGate {
14
+ private sovManager;
15
+ private firewall_;
16
+ private stateGuardian_;
17
+ private toolRegistry;
18
+ private config;
19
+ constructor(toolRegistry: ToolRegistry, sovereignty: SovereigntyManager, config?: GuardianConfig);
20
+ executeTool(toolId: string, params: Record<string, unknown>, context: ToolContext): Promise<ToolResult>;
21
+ get sovereigntyManager(): SovereigntyManager;
22
+ get firewall(): SynapticFirewall;
23
+ get stateGuardian(): StateGuardian;
24
+ }
@@ -0,0 +1,105 @@
1
+ import { SynapticFirewall } from './SynapticFirewall.js';
2
+ import { StateGuardian } from './StateGuardian.js';
3
+ export class GuardianGate {
4
+ sovManager;
5
+ firewall_;
6
+ stateGuardian_;
7
+ toolRegistry;
8
+ config;
9
+ constructor(toolRegistry, sovereignty, config) {
10
+ this.toolRegistry = toolRegistry;
11
+ this.sovManager = sovereignty;
12
+ this.firewall_ = new SynapticFirewall();
13
+ this.stateGuardian_ = new StateGuardian();
14
+ this.config = {
15
+ enableFirewall: config?.enableFirewall ?? true,
16
+ enableSovereignty: config?.enableSovereignty ?? true,
17
+ enableStateGuardian: config?.enableStateGuardian ?? true,
18
+ requiredSovereignty: config?.requiredSovereignty ?? 0.1,
19
+ riskThreshold: config?.riskThreshold ?? 'medium',
20
+ };
21
+ }
22
+ async executeTool(toolId, params, context) {
23
+ const startTime = Date.now();
24
+ const op = this.sovManager.createOperation(context.identity, `execute:${toolId}`, toolId);
25
+ // 1. State check
26
+ if (this.config.enableStateGuardian && this.stateGuardian_.isFrozen) {
27
+ this.sovManager.rejectOperation(op.operationId, `System frozen: ${this.stateGuardian_.freezeMessage}`);
28
+ return {
29
+ success: false,
30
+ data: null,
31
+ error: `GUARDIAN: System is frozen — ${this.stateGuardian_.freezeMessage}`,
32
+ metadata: { guardian: 'frozen', operationId: op.operationId },
33
+ };
34
+ }
35
+ // 2. Sovereignty check
36
+ if (this.config.enableSovereignty) {
37
+ const tool = this.toolRegistry.get(toolId);
38
+ const requiredSov = tool?.sovereignty ?? this.config.requiredSovereignty;
39
+ if (!this.sovManager.validateSovereignty(context.identity, requiredSov)) {
40
+ this.sovManager.rejectOperation(op.operationId, `Insufficient sovereignty: ${context.identity.sovereignty} < ${requiredSov}`);
41
+ this.stateGuardian_.recordSovereigntyViolation(context.identity.actorId, toolId);
42
+ return {
43
+ success: false,
44
+ data: null,
45
+ error: `GUARDIAN: Sovereignty violation — required ${requiredSov}, caller has ${context.identity.sovereignty}`,
46
+ metadata: { guardian: 'sovereignty-blocked', operationId: op.operationId },
47
+ };
48
+ }
49
+ }
50
+ // 3. Firewall check
51
+ if (this.config.enableFirewall) {
52
+ const inspection = this.firewall_.inspectParams(params, toolId);
53
+ if (!inspection.passed) {
54
+ this.sovManager.rejectOperation(op.operationId, `Firewall blocked: ${inspection.blocks.map(b => b.id).join(', ')}`);
55
+ for (const block of inspection.blocks) {
56
+ this.stateGuardian_.recordFirewallBlock(block.id, toolId);
57
+ }
58
+ return {
59
+ success: false,
60
+ data: null,
61
+ error: `GUARDIAN: Firewall blocked — ${inspection.blocks.map(b => `${b.name} (${b.description})`).join('; ')}`,
62
+ metadata: {
63
+ guardian: 'firewall-blocked',
64
+ blocks: inspection.blocks.map(b => b.id),
65
+ flags: inspection.flags.map(f => f.id),
66
+ operationId: op.operationId,
67
+ },
68
+ };
69
+ }
70
+ }
71
+ // 4. Execute tool
72
+ const toolResult = await this.toolRegistry.execute(toolId, params, {
73
+ ...context,
74
+ identity: this.sovManager.delegate(context.identity, 0.1, op.operationId),
75
+ });
76
+ const elapsedMs = Date.now() - startTime;
77
+ // 5. Record
78
+ if (toolResult.success) {
79
+ this.sovManager.approveOperation(op.operationId);
80
+ }
81
+ else {
82
+ this.sovManager.rejectOperation(op.operationId, toolResult.error);
83
+ }
84
+ if (this.config.enableStateGuardian) {
85
+ this.stateGuardian_.recordToolCall(toolId, toolResult.success, elapsedMs);
86
+ }
87
+ return {
88
+ ...toolResult,
89
+ metadata: {
90
+ ...toolResult.metadata,
91
+ guardian: {
92
+ operationId: op.operationId,
93
+ seal: op.seal,
94
+ sovereigntyChain: op.sovereigntyChain.length,
95
+ elapsedMs,
96
+ },
97
+ sovereignty: context.identity.sovereignty,
98
+ },
99
+ };
100
+ }
101
+ get sovereigntyManager() { return this.sovManager; }
102
+ get firewall() { return this.firewall_; }
103
+ get stateGuardian() { return this.stateGuardian_; }
104
+ }
105
+ //# sourceMappingURL=GuardianGate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuardianGate.js","sourceRoot":"","sources":["../../src/security/GuardianGate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { IdentityClaims, SovereigntyConfig } from '../types.js';
2
+ export interface SovereigntyRecord {
3
+ operationId: string;
4
+ timestamp: number;
5
+ actor: IdentityClaims;
6
+ action: string;
7
+ resource: string;
8
+ parentOperation?: string;
9
+ sovereigntyChain: SovereigntyLink[];
10
+ seal: string;
11
+ status: 'pending' | 'approved' | 'rejected' | 'escalated';
12
+ }
13
+ export interface SovereigntyLink {
14
+ actorId: string;
15
+ actorType: string;
16
+ sovereignty: number;
17
+ action: string;
18
+ timestamp: number;
19
+ }
20
+ export declare class SovereigntyManager {
21
+ private hostConfig;
22
+ private records;
23
+ private frozen;
24
+ constructor(config: SovereigntyConfig);
25
+ get hostId(): string;
26
+ get hostName(): string;
27
+ createOperation(actor: IdentityClaims, action: string, resource: string, parentOp?: string): SovereigntyRecord;
28
+ approveOperation(operationId: string): void;
29
+ rejectOperation(operationId: string, reason?: string): void;
30
+ validateSovereignty(actor: IdentityClaims, requiredSovereignty: number): boolean;
31
+ delegate(from: IdentityClaims, toSovereignty: number, operationId: string): IdentityClaims;
32
+ verifyChain(operationId: string): {
33
+ valid: boolean;
34
+ chainLength: number;
35
+ lastSeal: string;
36
+ };
37
+ getOperationHistory(resource?: string, limit?: number): SovereigntyRecord[];
38
+ freeze(): void;
39
+ unfreeze(): void;
40
+ get isFrozen(): boolean;
41
+ get totalOperations(): number;
42
+ freezeReason(): string | null;
43
+ private makeLink;
44
+ private generateSeal;
45
+ private log;
46
+ }
@@ -0,0 +1,111 @@
1
+ export class SovereigntyManager {
2
+ hostConfig;
3
+ records = [];
4
+ frozen = false;
5
+ constructor(config) {
6
+ this.hostConfig = config;
7
+ }
8
+ get hostId() { return this.hostConfig.hostId; }
9
+ get hostName() { return this.hostConfig.hostName; }
10
+ createOperation(actor, action, resource, parentOp) {
11
+ const operationId = `op-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
12
+ const chain = parentOp
13
+ ? [...(this.records.find(r => r.operationId === parentOp)?.sovereigntyChain ?? []), this.makeLink(actor, action)]
14
+ : [this.makeLink(actor, action)];
15
+ const record = {
16
+ operationId,
17
+ timestamp: Date.now(),
18
+ actor,
19
+ action,
20
+ resource,
21
+ parentOperation: parentOp,
22
+ sovereigntyChain: chain,
23
+ seal: this.generateSeal(chain),
24
+ status: 'pending',
25
+ };
26
+ this.records.push(record);
27
+ if (this.records.length > 1000)
28
+ this.records.shift();
29
+ return record;
30
+ }
31
+ approveOperation(operationId) {
32
+ const r = this.records.find(r => r.operationId === operationId);
33
+ if (r)
34
+ r.status = 'approved';
35
+ }
36
+ rejectOperation(operationId, reason) {
37
+ const r = this.records.find(r => r.operationId === operationId);
38
+ if (r) {
39
+ r.status = 'rejected';
40
+ this.log(`${reason ?? 'Rejected by sovereignty policy'}`);
41
+ }
42
+ }
43
+ validateSovereignty(actor, requiredSovereignty) {
44
+ if (this.frozen)
45
+ return false;
46
+ if (actor.actorType === 'host')
47
+ return true;
48
+ return actor.sovereignty >= requiredSovereignty;
49
+ }
50
+ delegate(from, toSovereignty, operationId) {
51
+ const delegatedSovereignty = Math.min(from.sovereignty * 0.8, toSovereignty);
52
+ const record = this.records.find(r => r.operationId === operationId);
53
+ if (record) {
54
+ record.sovereigntyChain.push(this.makeLink(from, `delegate:${delegatedSovereignty.toFixed(2)}`));
55
+ record.seal = this.generateSeal(record.sovereigntyChain);
56
+ }
57
+ return {
58
+ actorId: `${from.actorId}-delegate`,
59
+ actorType: from.actorType,
60
+ sovereignty: delegatedSovereignty,
61
+ permissions: from.permissions,
62
+ };
63
+ }
64
+ verifyChain(operationId) {
65
+ const record = this.records.find(r => r.operationId === operationId);
66
+ if (!record)
67
+ return { valid: false, chainLength: 0, lastSeal: '' };
68
+ const expectedSeal = this.generateSeal(record.sovereigntyChain);
69
+ const valid = expectedSeal === record.seal;
70
+ return { valid, chainLength: record.sovereigntyChain.length, lastSeal: record.seal };
71
+ }
72
+ getOperationHistory(resource, limit = 20) {
73
+ let result = this.records;
74
+ if (resource)
75
+ result = result.filter(r => r.resource === resource);
76
+ return result.slice(-limit).reverse();
77
+ }
78
+ freeze() {
79
+ this.frozen = true;
80
+ this.log('SYSTEM FROZEN — all operations blocked');
81
+ }
82
+ unfreeze() {
83
+ this.frozen = false;
84
+ this.log('SYSTEM UNFROZEN — operations resumed');
85
+ }
86
+ get isFrozen() { return this.frozen; }
87
+ get totalOperations() { return this.records.length; }
88
+ freezeReason() {
89
+ return this.frozen ? `Frozen at ${new Date(this.records[this.records.length - 1]?.timestamp).toISOString()}` : null;
90
+ }
91
+ makeLink(actor, action) {
92
+ return {
93
+ actorId: actor.actorId,
94
+ actorType: actor.actorType,
95
+ sovereignty: actor.sovereignty,
96
+ action,
97
+ timestamp: Date.now(),
98
+ };
99
+ }
100
+ generateSeal(chain) {
101
+ const raw = chain.map(l => `${l.actorId}:${l.sovereignty}:${l.action}`).join('|');
102
+ let hash = 0;
103
+ for (let i = 0; i < raw.length; i++)
104
+ hash = ((hash << 5) - hash) + raw.charCodeAt(i) | 0;
105
+ return `sov:${Math.abs(hash).toString(16).padStart(12, '0')}:${chain.length}`;
106
+ }
107
+ log(msg) {
108
+ console.error(`[sovereignty] ${msg}`);
109
+ }
110
+ }
111
+ //# sourceMappingURL=SovereigntyManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SovereigntyManager.js","sourceRoot":"","sources":["../../src/security/SovereigntyManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ export interface SystemMetrics {
2
+ totalToolCalls: number;
3
+ failedCalls: number;
4
+ errorRate: number;
5
+ sovereigntyViolations: number;
6
+ firewallBlocks: number;
7
+ avgResponseMs: number;
8
+ activeAgents: number;
9
+ memoryUsage: number;
10
+ uptimeMs: number;
11
+ }
12
+ type GuardianEventType = 'high-error-rate' | 'sovereignty-violation' | 'firewall-breach' | 'memory-pressure' | 'tool-failure' | 'anomaly-detected';
13
+ interface GuardianEvent {
14
+ type: GuardianEventType;
15
+ timestamp: number;
16
+ severity: 'info' | 'warning' | 'critical';
17
+ message: string;
18
+ data?: Record<string, unknown>;
19
+ }
20
+ export declare class StateGuardian {
21
+ private events;
22
+ private toolCallHistory;
23
+ private startTime;
24
+ private activeAgentCount;
25
+ private frozen;
26
+ private freezeReason;
27
+ recordToolCall(toolId: string, success: boolean, elapsedMs: number): void;
28
+ setMemoryPressure(usagePercent: number): void;
29
+ recordSovereigntyViolation(actorId: string, resource: string): void;
30
+ recordFirewallBlock(ruleId: string, toolId: string): void;
31
+ freeze(reason: string): void;
32
+ unfreeze(): void;
33
+ get isFrozen(): boolean;
34
+ get freezeMessage(): string | null;
35
+ setActiveAgentCount(count: number): void;
36
+ getMetrics(): SystemMetrics;
37
+ getRecentEvents(count?: number): GuardianEvent[];
38
+ private emit;
39
+ }
40
+ export {};
@@ -0,0 +1,76 @@
1
+ export class StateGuardian {
2
+ events = [];
3
+ toolCallHistory = [];
4
+ startTime = Date.now();
5
+ activeAgentCount = 0;
6
+ frozen = false;
7
+ freezeReason = null;
8
+ recordToolCall(toolId, success, elapsedMs) {
9
+ this.toolCallHistory.push({ toolId, success, elapsedMs, timestamp: Date.now() });
10
+ if (this.toolCallHistory.length > 500)
11
+ this.toolCallHistory.shift();
12
+ if (!success) {
13
+ this.emit('tool-failure', `Tool ${toolId} failed (${elapsedMs}ms)`, 'warning', { toolId, elapsedMs });
14
+ }
15
+ const recentCalls = this.toolCallHistory.slice(-50);
16
+ const failCount = recentCalls.filter(c => !c.success).length;
17
+ if (recentCalls.length >= 10 && failCount / recentCalls.length > 0.5) {
18
+ this.emit('high-error-rate', `Error rate ${(failCount / recentCalls.length * 100).toFixed(0)}% in last ${recentCalls.length} calls`, 'critical', { failCount, totalCalls: recentCalls.length });
19
+ }
20
+ }
21
+ setMemoryPressure(usagePercent) {
22
+ if (usagePercent > 90) {
23
+ this.emit('memory-pressure', `Memory at ${usagePercent.toFixed(0)}%`, 'critical', { usagePercent });
24
+ }
25
+ }
26
+ recordSovereigntyViolation(actorId, resource) {
27
+ this.emit('sovereignty-violation', `Sovereignty violation by ${actorId} on ${resource}`, 'warning', { actorId, resource });
28
+ }
29
+ recordFirewallBlock(ruleId, toolId) {
30
+ this.emit('firewall-breach', `Firewall rule ${ruleId} blocked on ${toolId}`, 'warning', { ruleId, toolId });
31
+ }
32
+ freeze(reason) {
33
+ this.frozen = true;
34
+ this.freezeReason = reason;
35
+ this.emit('anomaly-detected', `FREEZE: ${reason}`, 'critical', { reason });
36
+ }
37
+ unfreeze() {
38
+ this.frozen = false;
39
+ this.freezeReason = null;
40
+ }
41
+ get isFrozen() { return this.frozen; }
42
+ get freezeMessage() { return this.freezeReason; }
43
+ setActiveAgentCount(count) {
44
+ this.activeAgentCount = count;
45
+ }
46
+ getMetrics() {
47
+ const total = this.toolCallHistory.length;
48
+ const failed = this.toolCallHistory.filter(c => !c.success).length;
49
+ const recentCalls = this.toolCallHistory.slice(-20);
50
+ const avgMs = recentCalls.length > 0
51
+ ? Math.round(recentCalls.reduce((s, c) => s + c.elapsedMs, 0) / recentCalls.length)
52
+ : 0;
53
+ return {
54
+ totalToolCalls: total,
55
+ failedCalls: failed,
56
+ errorRate: total > 0 ? parseFloat((failed / total).toFixed(3)) : 0,
57
+ sovereigntyViolations: this.events.filter(e => e.type === 'sovereignty-violation').length,
58
+ firewallBlocks: this.events.filter(e => e.type === 'firewall-breach').length,
59
+ avgResponseMs: avgMs,
60
+ activeAgents: this.activeAgentCount,
61
+ memoryUsage: process.memoryUsage?.()?.heapUsed ? Math.round(process.memoryUsage().heapUsed / 1024 / 1024) : 0,
62
+ uptimeMs: Date.now() - this.startTime,
63
+ };
64
+ }
65
+ getRecentEvents(count = 20) {
66
+ return this.events.slice(-count).reverse();
67
+ }
68
+ emit(type, message, severity, data) {
69
+ this.events.push({ type, timestamp: Date.now(), severity, message, data });
70
+ if (this.events.length > 200)
71
+ this.events.shift();
72
+ const prefix = severity === 'critical' ? 'CRIT' : severity === 'warning' ? 'WARN' : 'INFO';
73
+ console.error(`[guardian][${prefix}] ${message}`);
74
+ }
75
+ }
76
+ //# sourceMappingURL=StateGuardian.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateGuardian.js","sourceRoot":"","sources":["../../src/security/StateGuardian.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ interface FirewallRule {
2
+ id: string;
3
+ name: string;
4
+ pattern: RegExp;
5
+ severity: 'block' | 'flag' | 'log';
6
+ category: string;
7
+ description: string;
8
+ }
9
+ export declare class SynapticFirewall {
10
+ private rules;
11
+ private blockedCount;
12
+ private flaggedCount;
13
+ private recentHits;
14
+ addRule(rule: FirewallRule): void;
15
+ inspect(input: string, context?: string): {
16
+ passed: boolean;
17
+ blocks: FirewallRule[];
18
+ flags: FirewallRule[];
19
+ };
20
+ inspectParams(params: Record<string, unknown>, toolId: string): {
21
+ passed: boolean;
22
+ blocks: FirewallRule[];
23
+ flags: FirewallRule[];
24
+ };
25
+ getStats(): {
26
+ blockedCount: number;
27
+ flaggedCount: number;
28
+ totalHits: number;
29
+ rulesActive: number;
30
+ };
31
+ getRecentHits(count?: number): Array<{
32
+ rule: string;
33
+ input: string;
34
+ timestamp: number;
35
+ }>;
36
+ clearStats(): void;
37
+ }
38
+ export {};