noormme 1.2.0 → 1.2.2

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 (165) hide show
  1. package/README.md +60 -6
  2. package/dist/cjs/agentic/ActionJournal.d.ts +5 -2
  3. package/dist/cjs/agentic/ActionJournal.js +13 -5
  4. package/dist/cjs/agentic/CapabilityManager.d.ts +7 -0
  5. package/dist/cjs/agentic/CapabilityManager.js +84 -7
  6. package/dist/cjs/agentic/CognitiveRepository.js +3 -6
  7. package/dist/cjs/agentic/Cortex.d.ts +4 -0
  8. package/dist/cjs/agentic/Cortex.js +38 -17
  9. package/dist/cjs/agentic/EpisodicMemory.d.ts +5 -1
  10. package/dist/cjs/agentic/EpisodicMemory.js +11 -4
  11. package/dist/cjs/agentic/PersonaManager.js +37 -31
  12. package/dist/cjs/agentic/PolicyEnforcer.d.ts +6 -1
  13. package/dist/cjs/agentic/PolicyEnforcer.js +74 -17
  14. package/dist/cjs/agentic/ResourceMonitor.d.ts +9 -0
  15. package/dist/cjs/agentic/ResourceMonitor.js +36 -2
  16. package/dist/cjs/agentic/SessionManager.js +24 -17
  17. package/dist/cjs/agentic/VectorIndexer.d.ts +1 -0
  18. package/dist/cjs/agentic/VectorIndexer.js +26 -17
  19. package/dist/cjs/agentic/improvement/AblationEngine.d.ts +4 -6
  20. package/dist/cjs/agentic/improvement/AblationEngine.js +57 -37
  21. package/dist/cjs/agentic/improvement/ActionRefiner.js +30 -14
  22. package/dist/cjs/agentic/improvement/ConflictResolver.d.ts +3 -1
  23. package/dist/cjs/agentic/improvement/ConflictResolver.js +59 -47
  24. package/dist/cjs/agentic/improvement/CortexJanitor.js +11 -0
  25. package/dist/cjs/agentic/improvement/CuriosityEngine.d.ts +1 -1
  26. package/dist/cjs/agentic/improvement/CuriosityEngine.js +48 -21
  27. package/dist/cjs/agentic/improvement/EvolutionRitual.js +26 -14
  28. package/dist/cjs/agentic/improvement/EvolutionaryPilot.js +16 -4
  29. package/dist/cjs/agentic/improvement/GoalArchitect.d.ts +6 -2
  30. package/dist/cjs/agentic/improvement/GoalArchitect.js +72 -34
  31. package/dist/cjs/agentic/improvement/GovernanceManager.d.ts +20 -6
  32. package/dist/cjs/agentic/improvement/GovernanceManager.js +134 -155
  33. package/dist/cjs/agentic/improvement/HiveLink.d.ts +7 -3
  34. package/dist/cjs/agentic/improvement/HiveLink.js +135 -113
  35. package/dist/cjs/agentic/improvement/KnowledgeDistiller.js +43 -35
  36. package/dist/cjs/agentic/improvement/QuotaManager.d.ts +41 -0
  37. package/dist/cjs/agentic/improvement/QuotaManager.js +185 -0
  38. package/dist/cjs/agentic/improvement/RecursiveReasoner.js +50 -25
  39. package/dist/cjs/agentic/improvement/ReflectionEngine.d.ts +4 -1
  40. package/dist/cjs/agentic/improvement/ReflectionEngine.js +3 -1
  41. package/dist/cjs/agentic/improvement/RitualOrchestrator.js +27 -16
  42. package/dist/cjs/agentic/improvement/RuleEngine.d.ts +1 -1
  43. package/dist/cjs/agentic/improvement/RuleEngine.js +10 -4
  44. package/dist/cjs/agentic/improvement/SelfEvolution.js +22 -17
  45. package/dist/cjs/agentic/improvement/SelfTestRegistry.d.ts +5 -0
  46. package/dist/cjs/agentic/improvement/SelfTestRegistry.js +129 -109
  47. package/dist/cjs/agentic/improvement/SkillSynthesizer.d.ts +1 -0
  48. package/dist/cjs/agentic/improvement/SkillSynthesizer.js +22 -13
  49. package/dist/cjs/agentic/improvement/StrategicPlanner.d.ts +1 -0
  50. package/dist/cjs/agentic/improvement/StrategicPlanner.js +26 -19
  51. package/dist/cjs/agentic/improvement/governance/AuditContext.d.ts +17 -0
  52. package/dist/cjs/agentic/improvement/governance/AuditContext.js +2 -0
  53. package/dist/cjs/agentic/improvement/governance/BudgetAuditor.d.ts +4 -0
  54. package/dist/cjs/agentic/improvement/governance/BudgetAuditor.js +50 -0
  55. package/dist/cjs/agentic/improvement/governance/EmergenceAuditor.d.ts +4 -0
  56. package/dist/cjs/agentic/improvement/governance/EmergenceAuditor.js +37 -0
  57. package/dist/cjs/agentic/improvement/governance/MaintenanceOracle.d.ts +4 -0
  58. package/dist/cjs/agentic/improvement/governance/MaintenanceOracle.js +67 -0
  59. package/dist/cjs/agentic/improvement/governance/PerformanceAuditor.d.ts +4 -0
  60. package/dist/cjs/agentic/improvement/governance/PerformanceAuditor.js +43 -0
  61. package/dist/cjs/agentic/improvement/governance/PersonaAuditor.d.ts +6 -0
  62. package/dist/cjs/agentic/improvement/governance/PersonaAuditor.js +74 -0
  63. package/dist/cjs/agentic/improvement/governance/RemediationEngine.d.ts +5 -0
  64. package/dist/cjs/agentic/improvement/governance/RemediationEngine.js +43 -0
  65. package/dist/cjs/agentic/improvement/governance/SkillAuditor.d.ts +5 -0
  66. package/dist/cjs/agentic/improvement/governance/SkillAuditor.js +52 -0
  67. package/dist/cjs/agentic/telemetry/CognitiveSynthesizer.d.ts +5 -0
  68. package/dist/cjs/agentic/telemetry/CognitiveSynthesizer.js +54 -12
  69. package/dist/cjs/agentic/telemetry/EventHarvester.d.ts +1 -1
  70. package/dist/cjs/agentic/telemetry/EventHarvester.js +10 -3
  71. package/dist/cjs/agentic/telemetry/ResearchAlchemist.d.ts +7 -2
  72. package/dist/cjs/agentic/telemetry/ResearchAlchemist.js +49 -8
  73. package/dist/cjs/agentic/telemetry/TelemetryOrchestrator.d.ts +4 -1
  74. package/dist/cjs/agentic/telemetry/TelemetryOrchestrator.js +38 -11
  75. package/dist/cjs/cli/commands/inspect.js +40 -1
  76. package/dist/cjs/cli/commands/watch.js +31 -25
  77. package/dist/cjs/cli/index.js +0 -0
  78. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +15 -5
  79. package/dist/cjs/helpers/agent-schema.js +15 -14
  80. package/dist/cjs/migration/data_migrator.js +4 -4
  81. package/dist/cjs/migration/schema_differ.js +37 -15
  82. package/dist/cjs/types/index.d.ts +12 -0
  83. package/dist/cjs/util/safe-sql-helpers.js +7 -10
  84. package/dist/esm/agentic/ActionJournal.d.ts +5 -2
  85. package/dist/esm/agentic/ActionJournal.js +13 -5
  86. package/dist/esm/agentic/CapabilityManager.d.ts +7 -0
  87. package/dist/esm/agentic/CapabilityManager.js +84 -7
  88. package/dist/esm/agentic/CognitiveRepository.js +3 -6
  89. package/dist/esm/agentic/Cortex.d.ts +4 -0
  90. package/dist/esm/agentic/Cortex.js +38 -17
  91. package/dist/esm/agentic/EpisodicMemory.d.ts +5 -1
  92. package/dist/esm/agentic/EpisodicMemory.js +11 -4
  93. package/dist/esm/agentic/PersonaManager.js +37 -31
  94. package/dist/esm/agentic/PolicyEnforcer.d.ts +6 -1
  95. package/dist/esm/agentic/PolicyEnforcer.js +74 -17
  96. package/dist/esm/agentic/ResourceMonitor.d.ts +9 -0
  97. package/dist/esm/agentic/ResourceMonitor.js +36 -2
  98. package/dist/esm/agentic/SessionManager.js +24 -17
  99. package/dist/esm/agentic/VectorIndexer.d.ts +1 -0
  100. package/dist/esm/agentic/VectorIndexer.js +26 -17
  101. package/dist/esm/agentic/improvement/AblationEngine.d.ts +4 -6
  102. package/dist/esm/agentic/improvement/AblationEngine.js +57 -37
  103. package/dist/esm/agentic/improvement/ActionRefiner.js +30 -14
  104. package/dist/esm/agentic/improvement/ConflictResolver.d.ts +3 -1
  105. package/dist/esm/agentic/improvement/ConflictResolver.js +59 -47
  106. package/dist/esm/agentic/improvement/CortexJanitor.js +11 -0
  107. package/dist/esm/agentic/improvement/CuriosityEngine.d.ts +1 -1
  108. package/dist/esm/agentic/improvement/CuriosityEngine.js +48 -21
  109. package/dist/esm/agentic/improvement/EvolutionRitual.js +26 -14
  110. package/dist/esm/agentic/improvement/EvolutionaryPilot.js +16 -4
  111. package/dist/esm/agentic/improvement/GoalArchitect.d.ts +6 -2
  112. package/dist/esm/agentic/improvement/GoalArchitect.js +72 -34
  113. package/dist/esm/agentic/improvement/GovernanceManager.d.ts +20 -6
  114. package/dist/esm/agentic/improvement/GovernanceManager.js +134 -155
  115. package/dist/esm/agentic/improvement/HiveLink.d.ts +7 -3
  116. package/dist/esm/agentic/improvement/HiveLink.js +135 -113
  117. package/dist/esm/agentic/improvement/KnowledgeDistiller.js +43 -35
  118. package/dist/esm/agentic/improvement/QuotaManager.d.ts +41 -0
  119. package/dist/esm/agentic/improvement/QuotaManager.js +182 -0
  120. package/dist/esm/agentic/improvement/RecursiveReasoner.js +50 -25
  121. package/dist/esm/agentic/improvement/ReflectionEngine.d.ts +4 -1
  122. package/dist/esm/agentic/improvement/ReflectionEngine.js +3 -1
  123. package/dist/esm/agentic/improvement/RitualOrchestrator.js +27 -16
  124. package/dist/esm/agentic/improvement/RuleEngine.d.ts +1 -1
  125. package/dist/esm/agentic/improvement/RuleEngine.js +10 -4
  126. package/dist/esm/agentic/improvement/SelfEvolution.js +22 -17
  127. package/dist/esm/agentic/improvement/SelfTestRegistry.d.ts +5 -0
  128. package/dist/esm/agentic/improvement/SelfTestRegistry.js +129 -109
  129. package/dist/esm/agentic/improvement/SkillSynthesizer.d.ts +1 -0
  130. package/dist/esm/agentic/improvement/SkillSynthesizer.js +22 -13
  131. package/dist/esm/agentic/improvement/StrategicPlanner.d.ts +1 -0
  132. package/dist/esm/agentic/improvement/StrategicPlanner.js +26 -19
  133. package/dist/esm/agentic/improvement/governance/AuditContext.d.ts +17 -0
  134. package/dist/esm/agentic/improvement/governance/AuditContext.js +2 -0
  135. package/dist/esm/agentic/improvement/governance/BudgetAuditor.d.ts +4 -0
  136. package/dist/esm/agentic/improvement/governance/BudgetAuditor.js +47 -0
  137. package/dist/esm/agentic/improvement/governance/EmergenceAuditor.d.ts +4 -0
  138. package/dist/esm/agentic/improvement/governance/EmergenceAuditor.js +34 -0
  139. package/dist/esm/agentic/improvement/governance/MaintenanceOracle.d.ts +4 -0
  140. package/dist/esm/agentic/improvement/governance/MaintenanceOracle.js +64 -0
  141. package/dist/esm/agentic/improvement/governance/PerformanceAuditor.d.ts +4 -0
  142. package/dist/esm/agentic/improvement/governance/PerformanceAuditor.js +40 -0
  143. package/dist/esm/agentic/improvement/governance/PersonaAuditor.d.ts +6 -0
  144. package/dist/esm/agentic/improvement/governance/PersonaAuditor.js +71 -0
  145. package/dist/esm/agentic/improvement/governance/RemediationEngine.d.ts +5 -0
  146. package/dist/esm/agentic/improvement/governance/RemediationEngine.js +40 -0
  147. package/dist/esm/agentic/improvement/governance/SkillAuditor.d.ts +5 -0
  148. package/dist/esm/agentic/improvement/governance/SkillAuditor.js +49 -0
  149. package/dist/esm/agentic/telemetry/CognitiveSynthesizer.d.ts +5 -0
  150. package/dist/esm/agentic/telemetry/CognitiveSynthesizer.js +54 -12
  151. package/dist/esm/agentic/telemetry/EventHarvester.d.ts +1 -1
  152. package/dist/esm/agentic/telemetry/EventHarvester.js +10 -3
  153. package/dist/esm/agentic/telemetry/ResearchAlchemist.d.ts +7 -2
  154. package/dist/esm/agentic/telemetry/ResearchAlchemist.js +49 -8
  155. package/dist/esm/agentic/telemetry/TelemetryOrchestrator.d.ts +4 -1
  156. package/dist/esm/agentic/telemetry/TelemetryOrchestrator.js +38 -11
  157. package/dist/esm/cli/commands/inspect.js +40 -1
  158. package/dist/esm/cli/commands/watch.js +31 -25
  159. package/dist/esm/dialect/sqlite/sqlite-introspector.js +15 -5
  160. package/dist/esm/helpers/agent-schema.js +15 -14
  161. package/dist/esm/migration/data_migrator.js +4 -4
  162. package/dist/esm/migration/schema_differ.js +37 -15
  163. package/dist/esm/types/index.d.ts +12 -0
  164. package/dist/esm/util/safe-sql-helpers.js +7 -10
  165. package/package.json +44 -40
@@ -1,9 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GovernanceManager = void 0;
4
+ const BudgetAuditor_js_1 = require("./governance/BudgetAuditor.js");
5
+ const PerformanceAuditor_js_1 = require("./governance/PerformanceAuditor.js");
6
+ const PersonaAuditor_js_1 = require("./governance/PersonaAuditor.js");
7
+ const SkillAuditor_js_1 = require("./governance/SkillAuditor.js");
8
+ const EmergenceAuditor_js_1 = require("./governance/EmergenceAuditor.js");
9
+ const RemediationEngine_js_1 = require("./governance/RemediationEngine.js");
10
+ const MaintenanceOracle_js_1 = require("./governance/MaintenanceOracle.js");
4
11
  /**
5
12
  * GovernanceManager monitors agent performance and enforces high-level "sanity"
6
13
  * across the entire agentic infrastructure.
14
+ *
15
+ * Refactored to delegate specialized auditing to modular components.
7
16
  */
8
17
  class GovernanceManager {
9
18
  db;
@@ -12,6 +21,14 @@ class GovernanceManager {
12
21
  metricsTable;
13
22
  policiesTable;
14
23
  personasTable;
24
+ skillsTable;
25
+ budgetAuditor;
26
+ performanceAuditor;
27
+ personaAuditor;
28
+ skillAuditor;
29
+ emergenceAuditor;
30
+ remediationEngine;
31
+ maintenanceOracle;
15
32
  constructor(db, cortex, config = {}) {
16
33
  this.db = db;
17
34
  this.cortex = cortex;
@@ -19,186 +36,148 @@ class GovernanceManager {
19
36
  this.metricsTable = config.metricsTable || 'agent_metrics';
20
37
  this.policiesTable = config.policiesTable || 'agent_policies';
21
38
  this.personasTable = config.personasTable || 'agent_personas';
39
+ this.skillsTable = config.capabilitiesTable || 'agent_capabilities';
40
+ this.budgetAuditor = new BudgetAuditor_js_1.BudgetAuditor();
41
+ this.performanceAuditor = new PerformanceAuditor_js_1.PerformanceAuditor();
42
+ this.personaAuditor = new PersonaAuditor_js_1.PersonaAuditor();
43
+ this.skillAuditor = new SkillAuditor_js_1.SkillAuditor();
44
+ this.emergenceAuditor = new EmergenceAuditor_js_1.EmergenceAuditor();
45
+ this.remediationEngine = new RemediationEngine_js_1.RemediationEngine();
46
+ this.maintenanceOracle = new MaintenanceOracle_js_1.MaintenanceOracle();
22
47
  }
23
48
  /**
24
49
  * Perform a "Panic Check" - looking for critical failures or cost overruns
25
50
  */
26
51
  async performAudit() {
27
- const issues = [];
28
- // Fetch active policies
29
- const policies = (await this.db
30
- .selectFrom(this.policiesTable)
31
- .selectAll()
32
- .where('is_enabled', '=', true)
33
- .execute());
34
- const getPolicyValue = (name, type, fallback) => {
35
- const p = policies.find((p) => p.name === name || p.type === type);
36
- if (!p)
37
- return fallback;
38
- const def = typeof p.definition === 'string'
39
- ? JSON.parse(p.definition)
40
- : p.definition;
41
- return def.threshold ?? fallback;
52
+ const issuesList = [];
53
+ let auditMetadata = {};
54
+ // Execute core audit gathering phase
55
+ const ctx = {
56
+ db: this.db,
57
+ trx: this.db,
58
+ cortex: this.cortex,
59
+ config: this.config,
60
+ metricsTable: this.metricsTable,
61
+ policiesTable: this.policiesTable,
62
+ personasTable: this.personasTable,
63
+ skillsTable: this.skillsTable
42
64
  };
43
- // 1. Budgetary Governance: Check for cost spikes in various windows
44
- const hourlyLimit = getPolicyValue('hourly_budget', 'budget', 1.0);
45
- const dailyLimit = getPolicyValue('daily_budget', 'budget', 10.0);
46
- const getCostInWindow = async (ms) => {
47
- const result = await this.db
48
- .selectFrom(this.metricsTable)
49
- .select((eb) => eb.fn.sum('metric_value').as('total'))
50
- .where('metric_name', '=', 'total_cost')
51
- .where('created_at', '>', new Date(Date.now() - ms))
52
- .executeTakeFirst();
53
- return Number(result?.total || 0);
65
+ // Run all auditors
66
+ const budget = await this.budgetAuditor.audit(ctx);
67
+ const performance = await this.performanceAuditor.audit(ctx);
68
+ const persona = await this.personaAuditor.audit(ctx);
69
+ const skills = await this.skillAuditor.audit(ctx);
70
+ const emergence = await this.emergenceAuditor.audit(ctx);
71
+ const pooledIssues = [
72
+ ...budget.issues,
73
+ ...performance.issues,
74
+ ...persona.issues,
75
+ ...skills.issues,
76
+ ...emergence.issues
77
+ ];
78
+ const coreAuditResult = {
79
+ issues: pooledIssues,
80
+ metadata: {
81
+ ...budget.metadata,
82
+ ...performance.metadata,
83
+ ...persona.metadata,
84
+ ...skills.metadata,
85
+ ...emergence.metadata
86
+ }
54
87
  };
55
- const hCost = await getCostInWindow(3600000);
56
- if (hCost > hourlyLimit) {
57
- issues.push(`Budget Violations: Hourly cost ($${hCost.toFixed(2)}) exceeded policy ($${hourlyLimit.toFixed(2)})`);
58
- }
59
- const dCost = await getCostInWindow(86400000);
60
- if (dCost > dailyLimit) {
61
- issues.push(`Budget Violations: Daily cumulative cost ($${dCost.toFixed(2)}) exceeded safety ceiling ($${dailyLimit.toFixed(2)})`);
62
- }
63
- // 2. Performance Governance: Success Rates & Success Stability
64
- const minSuccess = getPolicyValue('min_success_rate', 'safety', 0.6);
65
- // Statistical Success Rate (last 100 events)
66
- const recentSuccess = await this.db
67
- .selectFrom(this.metricsTable)
68
- .select((eb) => eb.fn.avg('metric_value').as('avg'))
69
- .where('metric_name', '=', 'success_rate')
70
- .orderBy('created_at', 'desc')
71
- .limit(100)
72
- .executeTakeFirst();
73
- const success = Number(recentSuccess?.avg || 1);
74
- if (success < minSuccess) {
75
- issues.push(`Performance Degradation: Rolling success rate (${Math.round(success * 100)}%) is below policy requirement (${minSuccess * 100}%)`);
76
- }
77
- // 3. Infrastructure Integrity: Reliability of Verified Skills
78
- // Detect if any "verified" skills are participating in "failure" loops
79
- const reliabiltyLimit = getPolicyValue('reliability_floor', 'integrity', 0.7);
80
- const failingVerified = await this.db
81
- .selectFrom(this.config.capabilitiesTable || 'agent_capabilities')
82
- .select(['name', 'reliability'])
83
- .where('status', '=', 'verified')
84
- .where('reliability', '<', reliabiltyLimit)
85
- .execute();
86
- for (const cap of failingVerified) {
87
- issues.push(`Integrity Failure: Verified skill '${cap.name}' reliability (${cap.reliability.toFixed(2)}) dropped below floor (${reliabiltyLimit})`);
88
- }
89
- if (issues.length > 0) {
90
- console.warn(`[GovernanceManager] AUDIT FAILED [${new Date().toISOString()}]: ${issues.length} compliance issues detected.`);
88
+ issuesList.push(...coreAuditResult.issues);
89
+ if (issuesList.length > 0) {
90
+ console.warn(`[GovernanceManager] AUDIT FAILED [${new Date().toISOString()}]: ${issuesList.length} compliance issues detected.`);
91
+ const { activePersona, success, hCost, hourlyLimit } = coreAuditResult.metadata;
91
92
  // Phase 1: Emergency Rollbacks
92
- const activePersona = await this.getActivePersona();
93
93
  if (activePersona && (success < 0.4 || hCost > hourlyLimit * 1.5)) {
94
94
  console.error(`[GovernanceManager] CRITICAL THRESHOLD BREACH. Initiating emergency containment for persona ${activePersona.id}`);
95
- await this.cortex.strategy.rollbackPersona(activePersona.id);
96
- issues.push(`Containment: Emergency rollback triggered for persona ${activePersona.id}`);
95
+ await this.personaAuditor.quarantinePersona({ db: this.db, cortex: this.cortex }, activePersona.id, 'Critical threshold breach');
96
+ issuesList.push(`Containment: Emergency rollback triggered for persona ${activePersona.id}`);
97
97
  }
98
- // Phase 2: Systemic Reflections
99
- await this.cortex.reflections.reflect(null, 'failure', 'Governance Compliance Audit', issues);
98
+ await this.cortex.reflections.reflect(null, 'failure', 'Governance Compliance Audit', issuesList);
100
99
  // Phase 3: Remediation Rituals
101
- await this.triggerRemediation(issues);
100
+ const ctx = {
101
+ db: this.db,
102
+ trx: this.db, // Standalone remediation
103
+ cortex: this.cortex,
104
+ config: this.config,
105
+ metricsTable: this.metricsTable,
106
+ policiesTable: this.policiesTable,
107
+ personasTable: this.personasTable,
108
+ skillsTable: this.skillsTable
109
+ };
110
+ await this.remediationEngine.triggerRemediation(ctx, issuesList);
102
111
  }
103
112
  return {
104
- healthy: issues.length === 0,
105
- issues,
113
+ healthy: issuesList.length === 0,
114
+ issues: issuesList,
106
115
  };
107
116
  }
108
117
  /**
109
- * Retrieves the currently active persona.
118
+ * Suggest architectural repairs if performance is degrading
110
119
  */
111
- async getActivePersona() {
112
- const active = await this.db
113
- .selectFrom(this.personasTable)
114
- .selectAll()
115
- .where('status', '=', 'active')
116
- .executeTakeFirst();
117
- if (!active)
118
- return null;
119
- return {
120
- ...active,
121
- metadata: typeof active.metadata === 'string'
122
- ? JSON.parse(active.metadata)
123
- : active.metadata || {},
120
+ async suggestRepairs() {
121
+ const ctx = {
122
+ db: this.db,
123
+ trx: this.db,
124
+ cortex: this.cortex,
125
+ config: this.config,
126
+ metricsTable: this.metricsTable,
127
+ policiesTable: this.policiesTable,
128
+ personasTable: this.personasTable,
129
+ skillsTable: this.skillsTable
124
130
  };
131
+ return this.maintenanceOracle.suggestRepairs(ctx);
125
132
  }
126
133
  /**
127
- * Trigger autonomous remediation steps based on specific failure modes
134
+ * Quarantine a persona that is behaving outside safety parameters.
128
135
  */
129
- async triggerRemediation(issues) {
130
- for (const issue of issues) {
131
- if (issue.includes('Budget Violations')) {
132
- await this.cortex.rituals.scheduleRitual('Budget Remediation', 'compression', 'hourly', `Automated response to: ${issue}`, { priority: 'critical', enforce_limits: true });
133
- }
134
- if (issue.includes('Performance Degradation')) {
135
- await this.cortex.rituals.scheduleRitual('Reliability Sweep', 'pruning', 'daily', `Sanitizing high-noise memories due to: ${issue}`, { priority: 'medium', target: 'longtail' });
136
- }
137
- if (issue.includes('Integrity Failure')) {
138
- // Force demotion of the specific skill back to sandbox or experimental
139
- const skillName = issue.match(/'([^']+)'/)?.[1];
140
- if (skillName) {
141
- console.log(`[GovernanceManager] Demoting tainted skill out of verified pool: ${skillName}`);
142
- await this.db
143
- .updateTable(this.config.capabilitiesTable || 'agent_capabilities')
144
- .set({ status: 'experimental', updated_at: new Date() })
145
- .where('name', '=', skillName)
146
- .execute();
147
- }
148
- }
149
- }
136
+ async quarantinePersona(id, reason) {
137
+ const ctx = {
138
+ db: this.db,
139
+ trx: this.db,
140
+ cortex: this.cortex,
141
+ config: this.config,
142
+ metricsTable: this.metricsTable,
143
+ policiesTable: this.policiesTable,
144
+ personasTable: this.personasTable,
145
+ skillsTable: this.skillsTable
146
+ };
147
+ return this.personaAuditor.quarantinePersona(ctx, id, reason);
150
148
  }
151
149
  /**
152
- * Suggest architectural repairs if performance is degrading
150
+ * Blacklist a skill that is causing systemic issues.
153
151
  */
154
- async suggestRepairs() {
155
- const repairs = [];
156
- // 1. Check for chronic high latency
157
- const latencyStats = await this.cortex.metrics.getMetricStats('query_latency');
158
- if (latencyStats.avg > 500 && latencyStats.count > 10) {
159
- repairs.push(`Average latency is high (${latencyStats.avg.toFixed(2)}ms). Suggesting index audit across hit tables.`);
160
- }
161
- // 2. Detect specific slow tables from recent metrics
162
- const recentSlowQueries = await this.db
163
- .selectFrom(this.metricsTable)
164
- .select('metadata')
165
- .where('metric_name', '=', 'query_latency')
166
- .where('metric_value', '>', 1000)
167
- .limit(20)
168
- .execute();
169
- const slowTables = new Set();
170
- for (const q of recentSlowQueries) {
171
- try {
172
- const meta = typeof q.metadata === 'string'
173
- ? JSON.parse(q.metadata)
174
- : q.metadata || {};
175
- if (meta.table)
176
- slowTables.add(meta.table);
177
- }
178
- catch (e) {
179
- /* ignore parse errors */
180
- }
181
- }
182
- for (const table of slowTables) {
183
- repairs.push(`Table '${table}' is experiencing periodic latency spikes. Suggesting 'CREATE INDEX' for common filters.`);
184
- }
185
- // 3. Check for high cost accumulation
186
- const totalCost = await this.cortex.metrics.getAverageMetric('total_cost');
187
- if (totalCost > 0.5) {
188
- repairs.push('Average query cost is high. Suggesting prompt compression or model switching (e.g., to a smaller model).');
189
- }
190
- // 3. Check for cold storage candidates
191
- const sessionsTable = this.config.sessionsTable || 'agent_sessions';
192
- const oldThreshold = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000); // 30 days
193
- const oldSessions = (await this.db
194
- .selectFrom(sessionsTable)
195
- .select((eb) => eb.fn.count('id').as('count'))
196
- .where('created_at', '<', oldThreshold)
197
- .executeTakeFirst());
198
- if (Number(oldSessions?.count || 0) > 100) {
199
- repairs.push(`[STORAGE OPTIMIZATION] Found ${oldSessions.count} sessions older than 30 days. Consider moving to cold storage to reduce primary database size and improve backup speed.`);
200
- }
201
- return repairs;
152
+ async quarantineSkill(name, reason) {
153
+ const ctx = {
154
+ db: this.db,
155
+ trx: this.db,
156
+ cortex: this.cortex,
157
+ config: this.config,
158
+ metricsTable: this.metricsTable,
159
+ policiesTable: this.policiesTable,
160
+ personasTable: this.personasTable,
161
+ skillsTable: this.skillsTable
162
+ };
163
+ return this.skillAuditor.quarantineSkill(ctx, name, reason);
164
+ }
165
+ /**
166
+ * Monitor cross-node behaviors and flag sudden spikes or malicious patterns.
167
+ */
168
+ async validateEmergentBehavior(trx) {
169
+ const ctx = {
170
+ db: this.db,
171
+ trx: trx || this.db,
172
+ cortex: this.cortex,
173
+ config: this.config,
174
+ metricsTable: this.metricsTable,
175
+ policiesTable: this.policiesTable,
176
+ personasTable: this.personasTable,
177
+ skillsTable: this.skillsTable
178
+ };
179
+ const result = await this.emergenceAuditor.audit(ctx);
180
+ return result.issues;
202
181
  }
203
182
  }
204
183
  exports.GovernanceManager = GovernanceManager;
@@ -16,15 +16,19 @@ export declare class HiveLink {
16
16
  * Promote high-confidence local knowledge to global "Hive" knowledge.
17
17
  * This creates a new, session-agnostic entry or updates an existing global one.
18
18
  */
19
- broadcastKnowledge(minConfidence?: number): Promise<number>;
19
+ broadcastKnowledge(options?: {
20
+ minConfidence?: number;
21
+ limit?: number;
22
+ offset?: number;
23
+ }): Promise<number>;
20
24
  /**
21
25
  * Strengthen knowledge related to a specific domain (tag).
22
26
  * Increases confidence of all items with this tag, representing "domain mastery".
23
27
  */
24
28
  syncDomain(domainTag: string, boostFactor?: number): Promise<number>;
25
29
  /**
26
- * Propagate high-performing capabilities globally and block known-bad ones.
27
- * High-Throughput Refactor: Batch updates and optimized set-based checks.
30
+ * Propagate high-performing capabilities globally using the "Sovereign Draft" protocol.
31
+ * Uses Bayesian Convergence and Shadow Promotion to avoid deadlocks.
28
32
  */
29
33
  broadcastSkills(): Promise<number>;
30
34
  /**