noormme 1.2.3 → 1.2.5

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 (144) hide show
  1. package/dist/cjs/agentic/ActionJournal.d.ts +6 -6
  2. package/dist/cjs/agentic/ActionJournal.js +10 -10
  3. package/dist/cjs/agentic/CapabilityManager.d.ts +5 -5
  4. package/dist/cjs/agentic/CapabilityManager.js +35 -24
  5. package/dist/cjs/agentic/Cortex.js +12 -13
  6. package/dist/cjs/agentic/EpisodicMemory.js +4 -3
  7. package/dist/cjs/agentic/PersonaManager.d.ts +4 -4
  8. package/dist/cjs/agentic/PersonaManager.js +19 -15
  9. package/dist/cjs/agentic/PolicyEnforcer.d.ts +4 -8
  10. package/dist/cjs/agentic/PolicyEnforcer.js +26 -26
  11. package/dist/cjs/agentic/ResourceMonitor.js +2 -1
  12. package/dist/cjs/agentic/SessionManager.js +7 -6
  13. package/dist/cjs/agentic/improvement/AblationEngine.d.ts +3 -3
  14. package/dist/cjs/agentic/improvement/AblationEngine.js +41 -24
  15. package/dist/cjs/agentic/improvement/ActionRefiner.d.ts +1 -1
  16. package/dist/cjs/agentic/improvement/ActionRefiner.js +21 -15
  17. package/dist/cjs/agentic/improvement/ConflictResolver.js +4 -3
  18. package/dist/cjs/agentic/improvement/EvolutionRitual.js +2 -1
  19. package/dist/cjs/agentic/improvement/EvolutionaryPilot.d.ts +1 -1
  20. package/dist/cjs/agentic/improvement/EvolutionaryPilot.js +17 -19
  21. package/dist/cjs/agentic/improvement/GoalArchitect.js +10 -9
  22. package/dist/cjs/agentic/improvement/GovernanceManager.d.ts +5 -5
  23. package/dist/cjs/agentic/improvement/GovernanceManager.js +12 -22
  24. package/dist/cjs/agentic/improvement/HiveLink.d.ts +3 -3
  25. package/dist/cjs/agentic/improvement/HiveLink.js +15 -157
  26. package/dist/cjs/agentic/improvement/KnowledgeDistiller.d.ts +15 -29
  27. package/dist/cjs/agentic/improvement/KnowledgeDistiller.js +69 -351
  28. package/dist/cjs/agentic/improvement/QuotaManager.d.ts +1 -1
  29. package/dist/cjs/agentic/improvement/QuotaManager.js +11 -11
  30. package/dist/cjs/agentic/improvement/RecursiveReasoner.d.ts +4 -4
  31. package/dist/cjs/agentic/improvement/RecursiveReasoner.js +10 -10
  32. package/dist/cjs/agentic/improvement/ReflectionEngine.d.ts +2 -2
  33. package/dist/cjs/agentic/improvement/ReflectionEngine.js +2 -2
  34. package/dist/cjs/agentic/improvement/RitualOrchestrator.d.ts +3 -3
  35. package/dist/cjs/agentic/improvement/RitualOrchestrator.js +12 -9
  36. package/dist/cjs/agentic/improvement/SelfEvolution.d.ts +1 -1
  37. package/dist/cjs/agentic/improvement/SelfEvolution.js +21 -18
  38. package/dist/cjs/agentic/improvement/SelfTestRegistry.d.ts +1 -1
  39. package/dist/cjs/agentic/improvement/SelfTestRegistry.js +27 -19
  40. package/dist/cjs/agentic/improvement/SovereignMetrics.d.ts +6 -6
  41. package/dist/cjs/agentic/improvement/SovereignMetrics.js +12 -12
  42. package/dist/cjs/agentic/improvement/StrategicPlanner.d.ts +10 -54
  43. package/dist/cjs/agentic/improvement/StrategicPlanner.js +43 -396
  44. package/dist/cjs/agentic/improvement/distillation/ConflictChallenger.d.ts +3 -0
  45. package/dist/cjs/agentic/improvement/distillation/ConflictChallenger.js +54 -0
  46. package/dist/cjs/agentic/improvement/distillation/FactDistiller.d.ts +10 -0
  47. package/dist/cjs/agentic/improvement/distillation/FactDistiller.js +115 -0
  48. package/dist/cjs/agentic/improvement/distillation/KnowledgeConsolidator.d.ts +6 -0
  49. package/dist/cjs/agentic/improvement/distillation/KnowledgeConsolidator.js +63 -0
  50. package/dist/cjs/agentic/improvement/distillation/RelationshipArchitect.d.ts +6 -0
  51. package/dist/cjs/agentic/improvement/distillation/RelationshipArchitect.js +73 -0
  52. package/dist/cjs/agentic/improvement/governance/MaintenanceOracle.js +5 -5
  53. package/dist/cjs/agentic/improvement/governance/PersonaAuditor.js +7 -11
  54. package/dist/cjs/agentic/improvement/governance/RemediationEngine.js +8 -3
  55. package/dist/cjs/agentic/improvement/hive/DomainMaster.d.ts +4 -0
  56. package/dist/cjs/agentic/improvement/hive/DomainMaster.js +19 -0
  57. package/dist/cjs/agentic/improvement/hive/KnowledgePromoter.d.ts +6 -0
  58. package/dist/cjs/agentic/improvement/hive/KnowledgePromoter.js +57 -0
  59. package/dist/cjs/agentic/improvement/hive/SkillPropagator.d.ts +6 -0
  60. package/dist/cjs/agentic/improvement/hive/SkillPropagator.js +91 -0
  61. package/dist/cjs/agentic/improvement/strategy/EvolutionVerificator.d.ts +6 -0
  62. package/dist/cjs/agentic/improvement/strategy/EvolutionVerificator.js +48 -0
  63. package/dist/cjs/agentic/improvement/strategy/MutationEngine.d.ts +10 -0
  64. package/dist/cjs/agentic/improvement/strategy/MutationEngine.js +119 -0
  65. package/dist/cjs/agentic/improvement/strategy/PerformanceAnalyst.d.ts +6 -0
  66. package/dist/cjs/agentic/improvement/strategy/PerformanceAnalyst.js +84 -0
  67. package/dist/cjs/agentic/util/db-utils.d.ts +4 -0
  68. package/dist/cjs/agentic/util/db-utils.js +27 -0
  69. package/dist/cjs/cli/index.js +0 -0
  70. package/dist/cjs/helpers/agent-schema.js +1 -0
  71. package/dist/cjs/testing/test-utils.js +2 -0
  72. package/dist/cjs/types/index.d.ts +8 -0
  73. package/dist/esm/agentic/ActionJournal.d.ts +6 -6
  74. package/dist/esm/agentic/ActionJournal.js +10 -10
  75. package/dist/esm/agentic/CapabilityManager.d.ts +5 -5
  76. package/dist/esm/agentic/CapabilityManager.js +35 -24
  77. package/dist/esm/agentic/Cortex.js +12 -13
  78. package/dist/esm/agentic/EpisodicMemory.js +4 -3
  79. package/dist/esm/agentic/PersonaManager.d.ts +4 -4
  80. package/dist/esm/agentic/PersonaManager.js +19 -15
  81. package/dist/esm/agentic/PolicyEnforcer.d.ts +4 -8
  82. package/dist/esm/agentic/PolicyEnforcer.js +26 -26
  83. package/dist/esm/agentic/ResourceMonitor.js +2 -1
  84. package/dist/esm/agentic/SessionManager.js +7 -6
  85. package/dist/esm/agentic/improvement/AblationEngine.d.ts +3 -3
  86. package/dist/esm/agentic/improvement/AblationEngine.js +41 -24
  87. package/dist/esm/agentic/improvement/ActionRefiner.d.ts +1 -1
  88. package/dist/esm/agentic/improvement/ActionRefiner.js +21 -15
  89. package/dist/esm/agentic/improvement/ConflictResolver.js +4 -3
  90. package/dist/esm/agentic/improvement/EvolutionRitual.js +2 -1
  91. package/dist/esm/agentic/improvement/EvolutionaryPilot.d.ts +1 -1
  92. package/dist/esm/agentic/improvement/EvolutionaryPilot.js +17 -19
  93. package/dist/esm/agentic/improvement/GoalArchitect.js +10 -9
  94. package/dist/esm/agentic/improvement/GovernanceManager.d.ts +5 -5
  95. package/dist/esm/agentic/improvement/GovernanceManager.js +12 -22
  96. package/dist/esm/agentic/improvement/HiveLink.d.ts +3 -3
  97. package/dist/esm/agentic/improvement/HiveLink.js +15 -157
  98. package/dist/esm/agentic/improvement/KnowledgeDistiller.d.ts +15 -29
  99. package/dist/esm/agentic/improvement/KnowledgeDistiller.js +69 -351
  100. package/dist/esm/agentic/improvement/QuotaManager.d.ts +1 -1
  101. package/dist/esm/agentic/improvement/QuotaManager.js +11 -11
  102. package/dist/esm/agentic/improvement/RecursiveReasoner.d.ts +4 -4
  103. package/dist/esm/agentic/improvement/RecursiveReasoner.js +10 -10
  104. package/dist/esm/agentic/improvement/ReflectionEngine.d.ts +2 -2
  105. package/dist/esm/agentic/improvement/ReflectionEngine.js +2 -2
  106. package/dist/esm/agentic/improvement/RitualOrchestrator.d.ts +3 -3
  107. package/dist/esm/agentic/improvement/RitualOrchestrator.js +12 -9
  108. package/dist/esm/agentic/improvement/SelfEvolution.d.ts +1 -1
  109. package/dist/esm/agentic/improvement/SelfEvolution.js +21 -18
  110. package/dist/esm/agentic/improvement/SelfTestRegistry.d.ts +1 -1
  111. package/dist/esm/agentic/improvement/SelfTestRegistry.js +27 -19
  112. package/dist/esm/agentic/improvement/SovereignMetrics.d.ts +6 -6
  113. package/dist/esm/agentic/improvement/SovereignMetrics.js +12 -12
  114. package/dist/esm/agentic/improvement/StrategicPlanner.d.ts +10 -54
  115. package/dist/esm/agentic/improvement/StrategicPlanner.js +43 -396
  116. package/dist/esm/agentic/improvement/distillation/ConflictChallenger.d.ts +3 -0
  117. package/dist/esm/agentic/improvement/distillation/ConflictChallenger.js +51 -0
  118. package/dist/esm/agentic/improvement/distillation/FactDistiller.d.ts +10 -0
  119. package/dist/esm/agentic/improvement/distillation/FactDistiller.js +112 -0
  120. package/dist/esm/agentic/improvement/distillation/KnowledgeConsolidator.d.ts +6 -0
  121. package/dist/esm/agentic/improvement/distillation/KnowledgeConsolidator.js +60 -0
  122. package/dist/esm/agentic/improvement/distillation/RelationshipArchitect.d.ts +6 -0
  123. package/dist/esm/agentic/improvement/distillation/RelationshipArchitect.js +70 -0
  124. package/dist/esm/agentic/improvement/governance/MaintenanceOracle.js +5 -5
  125. package/dist/esm/agentic/improvement/governance/PersonaAuditor.js +7 -11
  126. package/dist/esm/agentic/improvement/governance/RemediationEngine.js +8 -3
  127. package/dist/esm/agentic/improvement/hive/DomainMaster.d.ts +4 -0
  128. package/dist/esm/agentic/improvement/hive/DomainMaster.js +16 -0
  129. package/dist/esm/agentic/improvement/hive/KnowledgePromoter.d.ts +6 -0
  130. package/dist/esm/agentic/improvement/hive/KnowledgePromoter.js +54 -0
  131. package/dist/esm/agentic/improvement/hive/SkillPropagator.d.ts +6 -0
  132. package/dist/esm/agentic/improvement/hive/SkillPropagator.js +88 -0
  133. package/dist/esm/agentic/improvement/strategy/EvolutionVerificator.d.ts +6 -0
  134. package/dist/esm/agentic/improvement/strategy/EvolutionVerificator.js +45 -0
  135. package/dist/esm/agentic/improvement/strategy/MutationEngine.d.ts +10 -0
  136. package/dist/esm/agentic/improvement/strategy/MutationEngine.js +116 -0
  137. package/dist/esm/agentic/improvement/strategy/PerformanceAnalyst.d.ts +6 -0
  138. package/dist/esm/agentic/improvement/strategy/PerformanceAnalyst.js +81 -0
  139. package/dist/esm/agentic/util/db-utils.d.ts +4 -0
  140. package/dist/esm/agentic/util/db-utils.js +25 -0
  141. package/dist/esm/helpers/agent-schema.js +1 -0
  142. package/dist/esm/testing/test-utils.js +2 -0
  143. package/dist/esm/types/index.d.ts +8 -0
  144. package/package.json +40 -44
@@ -0,0 +1,116 @@
1
+ /// <reference types="./MutationEngine.d.ts" />
2
+ export class MutationEngine {
3
+ personasTable;
4
+ constructor(personasTable) {
5
+ this.personasTable = personasTable;
6
+ }
7
+ async applyMutation(db, cortex, persona, report, failures = [], sanitizeRoleFn, parsePersonaFn) {
8
+ return await db.transaction().execute(async (trx) => {
9
+ const reason = failures.length > 0 ? `Failure Patterns: ${failures.join(', ')}` : report.recommendation;
10
+ let updates = {};
11
+ let mutationType = 'role_update';
12
+ if (failures.length > 0) {
13
+ const lessons = await cortex.reasoner.synthesizeLessons(trx);
14
+ const relevantLessons = (lessons['general'] || []).slice(0, 2);
15
+ updates = {
16
+ role: `${persona.role || ''} (Optimized for: ${failures.join(', ')}. Patterns: ${relevantLessons.join('; ')})`.trim(),
17
+ };
18
+ }
19
+ else {
20
+ const allPersonas = await trx.selectFrom(this.personasTable).selectAll().execute();
21
+ const winningMutations = allPersonas
22
+ .map((p) => parsePersonaFn(p))
23
+ .filter((p) => (p.metadata?.evolution_status === 'stable' || !p.metadata?.evolution_status) && p.metadata?.mutation_reason?.includes(report.recommendation));
24
+ if (winningMutations.length > 0) {
25
+ const sorted = winningMutations.sort((a, b) => (b.metadata?.anchored_reliability || 0) - (a.metadata?.anchored_reliability || 0));
26
+ const alphaMatch = sorted[0];
27
+ updates = { role: sanitizeRoleFn(alphaMatch.role || persona.role || 'Agent') };
28
+ }
29
+ else {
30
+ switch (report.recommendation) {
31
+ case 'optimize_accuracy':
32
+ updates = { role: sanitizeRoleFn(`${persona.role || ''} (Focus strictly on accuracy and detailed verification)`) };
33
+ break;
34
+ case 'optimize_efficiency':
35
+ updates = { policies: [...(persona.policies || []), 'timeout_reduction', 'concise_output'] };
36
+ mutationType = 'policy_update';
37
+ break;
38
+ case 'critical_intervention':
39
+ return await this.rollback(db, persona.id, parsePersonaFn);
40
+ default:
41
+ return null;
42
+ }
43
+ }
44
+ }
45
+ if (updates.role)
46
+ updates.role = sanitizeRoleFn(updates.role);
47
+ // Conflict Detection
48
+ const contradictions = await cortex.reasoner.detectContradictions(trx);
49
+ for (const contradiction of contradictions) {
50
+ if (updates.role && contradiction.includes(updates.role.slice(0, 20)))
51
+ return null;
52
+ }
53
+ const mutation = {
54
+ id: `mut_${Date.now()}`,
55
+ timestamp: Date.now(),
56
+ type: mutationType,
57
+ previousState: { role: persona.role, policies: persona.policies, capabilities: persona.capabilities },
58
+ newState: { ...updates },
59
+ reason: `Auto-mutation triggered by ${report.recommendation}`,
60
+ };
61
+ const history = [...(persona.metadata?.mutationHistory || []), mutation].slice(-5);
62
+ const newMetadata = {
63
+ ...persona.metadata,
64
+ mutationHistory: history,
65
+ evolution_status: 'verifying',
66
+ mutation_reason: report.recommendation,
67
+ verification_started_at: Date.now(),
68
+ verification_baseline: { successRate: report.successRate, averageLatency: report.averageLatency },
69
+ };
70
+ await trx.updateTable(this.personasTable)
71
+ .set({
72
+ role: updates.role || persona.role,
73
+ policies: updates.policies ? JSON.stringify(updates.policies) : undefined,
74
+ capabilities: updates.capabilities ? JSON.stringify(updates.capabilities) : undefined,
75
+ metadata: JSON.stringify(newMetadata),
76
+ updated_at: new Date(),
77
+ })
78
+ .where('id', '=', persona.id)
79
+ .execute();
80
+ return `Persona ${persona.id} mutated and entering verification window.`;
81
+ });
82
+ }
83
+ async rollback(db, id, parsePersonaFn) {
84
+ return await db.transaction().execute(async (trx) => {
85
+ const current = await trx.selectFrom(this.personasTable).selectAll().where('id', '=', id).executeTakeFirst();
86
+ if (!current)
87
+ throw new Error(`Persona ${id} not found`);
88
+ const persona = parsePersonaFn(current);
89
+ const history = persona.metadata?.mutationHistory || [];
90
+ const lastMutation = history.pop();
91
+ if (!lastMutation)
92
+ return `No mutations to rollback for persona ${id}`;
93
+ const previous = lastMutation.previousState;
94
+ const rollbackHistory = [...(persona.metadata?.rollbackHistory || []), Date.now()];
95
+ const newMetadata = {
96
+ ...persona.metadata,
97
+ mutationHistory: history,
98
+ rollbackHistory: rollbackHistory,
99
+ last_failed_mutation: { type: lastMutation.type, timestamp: Date.now() },
100
+ evolution_status: 'stable',
101
+ lastRollback: Date.now(),
102
+ };
103
+ await trx.updateTable(this.personasTable)
104
+ .set({
105
+ role: previous.role,
106
+ policies: previous.policies ? JSON.stringify(previous.policies) : undefined,
107
+ capabilities: previous.capabilities ? JSON.stringify(previous.capabilities) : undefined,
108
+ metadata: JSON.stringify(newMetadata),
109
+ updated_at: new Date(),
110
+ })
111
+ .where('id', '=', id)
112
+ .execute();
113
+ return `Rolled back mutation ${lastMutation.id} for persona ${id}`;
114
+ });
115
+ }
116
+ }
@@ -0,0 +1,6 @@
1
+ import type { Cortex } from '../../Cortex.js';
2
+ import type { PerformanceReport } from '../StrategicPlanner.js';
3
+ export declare class PerformanceAnalyst {
4
+ analyzeFailurePatterns(cortex: Cortex, personaId: string | number, trxOrDb?: any): Promise<string[]>;
5
+ analyze(trxOrDb: any, cortex: Cortex, metricsTable: string, id: string | number): Promise<PerformanceReport>;
6
+ }
@@ -0,0 +1,81 @@
1
+ /// <reference types="./PerformanceAnalyst.d.ts" />
2
+ import { sql } from '../../../raw-builder/sql.js';
3
+ export class PerformanceAnalyst {
4
+ async analyzeFailurePatterns(cortex, personaId, trxOrDb = cortex.db) {
5
+ const patterns = [];
6
+ try {
7
+ // NOTE: cortex.actions.getFailureReport might need to be transaction-aware too
8
+ const failureReport = await cortex.actions.getFailureReport(trxOrDb);
9
+ const frequentFailures = failureReport.filter((f) => f.failureCount > 1);
10
+ for (const fail of frequentFailures) {
11
+ patterns.push(`tool_failure_${fail.toolName}`);
12
+ }
13
+ }
14
+ catch (e) {
15
+ // Fallback handled by orchestrator
16
+ }
17
+ return patterns;
18
+ }
19
+ async analyze(trxOrDb, cortex, metricsTable, id) {
20
+ const recentMetrics = await trxOrDb
21
+ .selectFrom(metricsTable)
22
+ .selectAll()
23
+ .where((eb) => eb.or([
24
+ eb(sql `json_extract(metadata, '$.persona_id')`, '=', id),
25
+ eb(sql `metadata->>'persona_id'`, '=', String(id)),
26
+ ]))
27
+ .orderBy('created_at', 'desc')
28
+ .limit(50)
29
+ .execute();
30
+ const globalMetrics = await cortex.metrics.getRecentMetrics(200, trxOrDb);
31
+ const calcStats = (metricName) => {
32
+ const vals = globalMetrics
33
+ .filter((m) => m.metricName === metricName)
34
+ .map((m) => Number(m.metricValue));
35
+ if (vals.length < 10)
36
+ return { mean: metricName === 'query_latency' ? 500 : 0.9, stdDev: 0.1 };
37
+ const mean = vals.reduce((a, b) => a + b, 0) / vals.length;
38
+ const variance = vals.reduce((a, b) => a + Math.pow(b - mean, 2), 0) / vals.length;
39
+ return { mean, stdDev: Math.sqrt(variance) || 0.05 };
40
+ };
41
+ const successStats = calcStats('task_success_rate');
42
+ const latencyStats = calcStats('query_latency');
43
+ if (recentMetrics.length === 0) {
44
+ return {
45
+ personaId: id,
46
+ successRate: successStats.mean,
47
+ averageLatency: latencyStats.mean,
48
+ sampleSize: 0,
49
+ recommendation: 'maintain',
50
+ };
51
+ }
52
+ const successMetrics = recentMetrics.filter((m) => m.metric_name === 'task_success_rate');
53
+ const latencyMetrics = recentMetrics.filter((m) => m.metric_name === 'query_latency');
54
+ const avgSuccess = successMetrics.length > 0
55
+ ? successMetrics.reduce((sum, m) => sum + Number(m.metric_value), 0) / successMetrics.length
56
+ : successStats.mean;
57
+ const avgLatency = latencyMetrics.length > 0
58
+ ? latencyMetrics.reduce((sum, m) => sum + Number(m.metric_value), 0) / latencyMetrics.length
59
+ : latencyStats.mean;
60
+ let recommendation = 'maintain';
61
+ const criticalThreshold = successStats.mean - 2.5 * successStats.stdDev;
62
+ const accuracyThreshold = successStats.mean - 1.0 * successStats.stdDev;
63
+ const efficiencyThreshold = latencyStats.mean + 2.0 * latencyStats.stdDev;
64
+ if (avgSuccess < criticalThreshold) {
65
+ recommendation = 'critical_intervention';
66
+ }
67
+ else if (avgSuccess < accuracyThreshold) {
68
+ recommendation = 'optimize_accuracy';
69
+ }
70
+ else if (avgLatency > efficiencyThreshold) {
71
+ recommendation = 'optimize_efficiency';
72
+ }
73
+ return {
74
+ personaId: id,
75
+ successRate: avgSuccess,
76
+ averageLatency: avgLatency,
77
+ sampleSize: recentMetrics.length,
78
+ recommendation,
79
+ };
80
+ }
81
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Utility function to apply a "FOR UPDATE" lock only where supported (Not in SQLite)
3
+ */
4
+ export declare function withLock(query: any, trx: any): any;
@@ -0,0 +1,25 @@
1
+ /// <reference types="./db-utils.d.ts" />
2
+ /**
3
+ * Utility function to apply a "FOR UPDATE" lock only where supported (Not in SQLite)
4
+ */
5
+ export function withLock(query, trx) {
6
+ if (!trx || typeof trx.getExecutor !== 'function') {
7
+ // If we're using a mock or a version of Kysely without getExecutor
8
+ // we default to no lock to prevent failures in tests
9
+ return query;
10
+ }
11
+ try {
12
+ const executor = trx.getExecutor();
13
+ const adapterName = executor?.adapter?.constructor?.name ||
14
+ executor?.dialect?.constructor?.name ||
15
+ '';
16
+ if (adapterName.toLowerCase().includes('sqlite')) {
17
+ return query;
18
+ }
19
+ }
20
+ catch (error) {
21
+ // Fallback if execution fails for some reason
22
+ return query;
23
+ }
24
+ return query.forUpdate();
25
+ }
@@ -117,6 +117,7 @@ export class AgentSchemaHelper {
117
117
  .addColumn('tool_name', 'text', (col) => col.notNull())
118
118
  .addColumn('arguments', 'text', (col) => col.notNull())
119
119
  .addColumn('outcome', 'text')
120
+ .addColumn('error', 'text')
120
121
  .addColumn('status', 'text', (col) => col.notNull().defaultTo('pending'))
121
122
  .addColumn('duration_ms', 'integer')
122
123
  .addColumn('metadata', 'text')
@@ -89,6 +89,8 @@ export async function setupTestSchema(db) {
89
89
  .on('comments')
90
90
  .column('user_id')
91
91
  .execute();
92
+ // Initialize agent schema
93
+ await db.agent.schema.initializeSchema();
92
94
  // Initialize NOORMME to discover the schema
93
95
  // Temporarily enable warnings to see discovery errors
94
96
  const originalWarn = console.warn;
@@ -385,6 +385,14 @@ export interface AgentPersona {
385
385
  createdAt: Date;
386
386
  updatedAt: Date;
387
387
  }
388
+ export interface PersonaMutation {
389
+ id: string;
390
+ timestamp: number;
391
+ type: 'role_update' | 'policy_update' | 'capability_update';
392
+ previousState: Partial<AgentPersona>;
393
+ newState: Partial<AgentPersona>;
394
+ reason: string;
395
+ }
388
396
  export interface AgentQuota {
389
397
  id: string | number;
390
398
  targetType: 'persona' | 'swarm' | 'global';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "noormme",
3
- "version": "1.2.3",
3
+ "version": "1.2.5",
4
4
  "description": "NOORMME - The Agentic Data Engine. High-fidelity persistence and cognitive governance for Autonomous AI Agents.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -60,48 +60,6 @@
60
60
  "default": "./dist/cjs/cli/index.js"
61
61
  }
62
62
  },
63
- "scripts": {
64
- "clean": "rm -rf dist & rm -rf test/node/dist & rm -rf test/browser/bundle.js & rm -rf helpers",
65
- "bench:ts": "pnpm build && cd ./test/ts-benchmarks && node --experimental-strip-types ./index.ts",
66
- "test": "jest",
67
- "test:watch": "jest --watch",
68
- "test:coverage": "jest --coverage",
69
- "test:unit": "jest tests/unit",
70
- "test:integration": "jest tests/integration",
71
- "test:cli": "jest tests/cli",
72
- "test:original": "pnpm build && pnpm test:node:build && pnpm test:node:run && pnpm test:typings && pnpm test:esmimports && pnpm test:exports",
73
- "test:node:build": "tsc -p test/node",
74
- "test:node": "pnpm build && pnpm test:node:build && pnpm test:node:run",
75
- "test:node:run": "mocha --timeout 15000 test/node/dist/**/*.test.js",
76
- "test:browser:build": "rm -rf test/browser/bundle.js && esbuild test/browser/main.ts --bundle --outfile=test/browser/bundle.js",
77
- "test:browser": "pnpm build && pnpm test:browser:build && node test/browser/test.js",
78
- "test:bun": "pnpm build && bun link && cd test/bun && bun install && bun run test",
79
- "test:cloudflare-workers": "pnpm build && pnpm -r test --filter kysely-cloudflare-workers-test",
80
- "test:deno": "deno run --allow-env --allow-read --allow-net --no-lock test/deno/local.test.ts && deno run --allow-env --allow-read --allow-net --no-lock test/deno/cdn.test.ts",
81
- "test:typings": "tsd test/typings",
82
- "test:esmimports": "node scripts/check-esm-imports.js",
83
- "test:esbuild": "esbuild --bundle --platform=node --external:pg-native dist/esm/index.js --outfile=/dev/null",
84
- "test:exports": "attw --pack . && node scripts/check-exports.js",
85
- "test:jsdocs": "deno check --doc-only --no-lock --unstable-sloppy-imports --config=\"deno.check.json\" ./src",
86
- "test:outdatedts": "pnpm build && cd test/outdated-ts && pnpm i && pnpm test",
87
- "prettier": "prettier --write 'src/**/*.ts' 'test/**/*.ts'",
88
- "build": "pnpm clean && (pnpm build:esm & pnpm build:cjs) && pnpm script:module-fixup && pnpm script:copy-interface-doc",
89
- "build:esm": "tsc -p tsconfig.json && pnpm script:add-deno-type-references",
90
- "build:cjs": "tsc -p tsconfig-cjs.json",
91
- "script:module-fixup": "node scripts/module-fixup.js",
92
- "script:copy-interface-doc": "node scripts/copy-interface-documentation.js",
93
- "script:add-deno-type-references": "node scripts/add-deno-type-references.js",
94
- "script:align-site-version": "node --experimental-strip-types scripts/align-site-version.mts",
95
- "script:generate-site-examples": "node scripts/generate-site-examples.js",
96
- "script:exclude-test-files-for-backwards-compat": "node --experimental-strip-types scripts/exclude-test-files-for-backwards-compat.mts",
97
- "prepublishOnly": "pnpm build",
98
- "version": "pnpm script:align-site-version && git add .",
99
- "postversion": "pnpm publish --no-git-checks",
100
- "prepack": "pnpm build",
101
- "postpack": "echo 'Package ready for npm publish'",
102
- "publish:dry-run": "pnpm build && npm pack --dry-run",
103
- "publish:check": "pnpm build && npm publish --dry-run"
104
- },
105
63
  "author": "NOORMME Team",
106
64
  "license": "MIT",
107
65
  "devDependencies": {
@@ -136,7 +94,6 @@
136
94
  "tsd": "^0.33.0",
137
95
  "typescript": "~5.9.2"
138
96
  },
139
- "packageManager": "pnpm@10.16.1+sha512.0e155aa2629db8672b49e8475da6226aa4bdea85fdcdfdc15350874946d4f3c91faaf64cbdc4a5d1ab8002f473d5c3fcedcd197989cf0390f9badd3c04678706",
140
97
  "dependencies": {
141
98
  "better-sqlite3": "^12.4.1",
142
99
  "chalk": "^5.0.0",
@@ -149,5 +106,44 @@
149
106
  },
150
107
  "bin": {
151
108
  "noormme": "./dist/cjs/cli/index.js"
109
+ },
110
+ "scripts": {
111
+ "clean": "rm -rf dist & rm -rf test/node/dist & rm -rf test/browser/bundle.js & rm -rf helpers",
112
+ "bench:ts": "pnpm build && cd ./test/ts-benchmarks && node --experimental-strip-types ./index.ts",
113
+ "test": "jest",
114
+ "test:watch": "jest --watch",
115
+ "test:coverage": "jest --coverage",
116
+ "test:unit": "jest tests/unit",
117
+ "test:integration": "jest tests/integration",
118
+ "test:cli": "jest tests/cli",
119
+ "test:original": "pnpm build && pnpm test:node:build && pnpm test:node:run && pnpm test:typings && pnpm test:esmimports && pnpm test:exports",
120
+ "test:node:build": "tsc -p test/node",
121
+ "test:node": "pnpm build && pnpm test:node:build && pnpm test:node:run",
122
+ "test:node:run": "mocha --timeout 15000 test/node/dist/**/*.test.js",
123
+ "test:browser:build": "rm -rf test/browser/bundle.js && esbuild test/browser/main.ts --bundle --outfile=test/browser/bundle.js",
124
+ "test:browser": "pnpm build && pnpm test:browser:build && node test/browser/test.js",
125
+ "test:bun": "pnpm build && bun link && cd test/bun && bun install && bun run test",
126
+ "test:cloudflare-workers": "pnpm build && pnpm -r test --filter kysely-cloudflare-workers-test",
127
+ "test:deno": "deno run --allow-env --allow-read --allow-net --no-lock test/deno/local.test.ts && deno run --allow-env --allow-read --allow-net --no-lock test/deno/cdn.test.ts",
128
+ "test:typings": "tsd test/typings",
129
+ "test:esmimports": "node scripts/check-esm-imports.js",
130
+ "test:esbuild": "esbuild --bundle --platform=node --external:pg-native dist/esm/index.js --outfile=/dev/null",
131
+ "test:exports": "attw --pack . && node scripts/check-exports.js",
132
+ "test:jsdocs": "deno check --doc-only --no-lock --unstable-sloppy-imports --config=\"deno.check.json\" ./src",
133
+ "test:outdatedts": "pnpm build && cd test/outdated-ts && pnpm i && pnpm test",
134
+ "prettier": "prettier --write 'src/**/*.ts' 'test/**/*.ts'",
135
+ "build": "pnpm clean && (pnpm build:esm & pnpm build:cjs) && pnpm script:module-fixup && pnpm script:copy-interface-doc",
136
+ "build:esm": "tsc -p tsconfig.json && pnpm script:add-deno-type-references",
137
+ "build:cjs": "tsc -p tsconfig-cjs.json",
138
+ "script:module-fixup": "node scripts/module-fixup.js",
139
+ "script:copy-interface-doc": "node scripts/copy-interface-documentation.js",
140
+ "script:add-deno-type-references": "node scripts/add-deno-type-references.js",
141
+ "script:align-site-version": "node --experimental-strip-types scripts/align-site-version.mts",
142
+ "script:generate-site-examples": "node scripts/generate-site-examples.js",
143
+ "script:exclude-test-files-for-backwards-compat": "node --experimental-strip-types scripts/exclude-test-files-for-backwards-compat.mts",
144
+ "version": "pnpm script:align-site-version && git add .",
145
+ "postversion": "pnpm publish --no-git-checks",
146
+ "publish:dry-run": "pnpm build && npm pack --dry-run",
147
+ "publish:check": "pnpm build && npm publish --dry-run"
152
148
  }
153
149
  }