noormme 1.2.0 → 1.2.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 (132) 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 +9 -3
  32. package/dist/cjs/agentic/improvement/GovernanceManager.js +232 -92
  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 +21 -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/telemetry/CognitiveSynthesizer.d.ts +5 -0
  52. package/dist/cjs/agentic/telemetry/CognitiveSynthesizer.js +54 -12
  53. package/dist/cjs/agentic/telemetry/EventHarvester.d.ts +1 -1
  54. package/dist/cjs/agentic/telemetry/EventHarvester.js +10 -3
  55. package/dist/cjs/agentic/telemetry/ResearchAlchemist.d.ts +7 -2
  56. package/dist/cjs/agentic/telemetry/ResearchAlchemist.js +49 -8
  57. package/dist/cjs/agentic/telemetry/TelemetryOrchestrator.d.ts +4 -1
  58. package/dist/cjs/agentic/telemetry/TelemetryOrchestrator.js +38 -11
  59. package/dist/cjs/cli/commands/inspect.js +40 -1
  60. package/dist/cjs/cli/commands/watch.js +31 -25
  61. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +15 -5
  62. package/dist/cjs/helpers/agent-schema.js +1 -0
  63. package/dist/cjs/migration/data_migrator.js +4 -4
  64. package/dist/cjs/migration/schema_differ.js +37 -15
  65. package/dist/cjs/types/index.d.ts +12 -0
  66. package/dist/cjs/util/safe-sql-helpers.js +7 -10
  67. package/dist/esm/agentic/ActionJournal.d.ts +5 -2
  68. package/dist/esm/agentic/ActionJournal.js +13 -5
  69. package/dist/esm/agentic/CapabilityManager.d.ts +7 -0
  70. package/dist/esm/agentic/CapabilityManager.js +84 -7
  71. package/dist/esm/agentic/CognitiveRepository.js +3 -6
  72. package/dist/esm/agentic/Cortex.d.ts +4 -0
  73. package/dist/esm/agentic/Cortex.js +38 -17
  74. package/dist/esm/agentic/EpisodicMemory.d.ts +5 -1
  75. package/dist/esm/agentic/EpisodicMemory.js +11 -4
  76. package/dist/esm/agentic/PersonaManager.js +37 -31
  77. package/dist/esm/agentic/PolicyEnforcer.d.ts +6 -1
  78. package/dist/esm/agentic/PolicyEnforcer.js +74 -17
  79. package/dist/esm/agentic/ResourceMonitor.d.ts +9 -0
  80. package/dist/esm/agentic/ResourceMonitor.js +36 -2
  81. package/dist/esm/agentic/SessionManager.js +24 -17
  82. package/dist/esm/agentic/VectorIndexer.d.ts +1 -0
  83. package/dist/esm/agentic/VectorIndexer.js +26 -17
  84. package/dist/esm/agentic/improvement/AblationEngine.d.ts +4 -6
  85. package/dist/esm/agentic/improvement/AblationEngine.js +57 -37
  86. package/dist/esm/agentic/improvement/ActionRefiner.js +30 -14
  87. package/dist/esm/agentic/improvement/ConflictResolver.d.ts +3 -1
  88. package/dist/esm/agentic/improvement/ConflictResolver.js +59 -47
  89. package/dist/esm/agentic/improvement/CortexJanitor.js +11 -0
  90. package/dist/esm/agentic/improvement/CuriosityEngine.d.ts +1 -1
  91. package/dist/esm/agentic/improvement/CuriosityEngine.js +48 -21
  92. package/dist/esm/agentic/improvement/EvolutionRitual.js +26 -14
  93. package/dist/esm/agentic/improvement/EvolutionaryPilot.js +16 -4
  94. package/dist/esm/agentic/improvement/GoalArchitect.d.ts +6 -2
  95. package/dist/esm/agentic/improvement/GoalArchitect.js +72 -34
  96. package/dist/esm/agentic/improvement/GovernanceManager.d.ts +9 -3
  97. package/dist/esm/agentic/improvement/GovernanceManager.js +232 -92
  98. package/dist/esm/agentic/improvement/HiveLink.d.ts +7 -3
  99. package/dist/esm/agentic/improvement/HiveLink.js +135 -113
  100. package/dist/esm/agentic/improvement/KnowledgeDistiller.js +43 -35
  101. package/dist/esm/agentic/improvement/QuotaManager.d.ts +41 -0
  102. package/dist/esm/agentic/improvement/QuotaManager.js +182 -0
  103. package/dist/esm/agentic/improvement/RecursiveReasoner.js +50 -25
  104. package/dist/esm/agentic/improvement/ReflectionEngine.d.ts +4 -1
  105. package/dist/esm/agentic/improvement/ReflectionEngine.js +3 -1
  106. package/dist/esm/agentic/improvement/RitualOrchestrator.js +27 -16
  107. package/dist/esm/agentic/improvement/RuleEngine.d.ts +1 -1
  108. package/dist/esm/agentic/improvement/RuleEngine.js +10 -4
  109. package/dist/esm/agentic/improvement/SelfEvolution.js +21 -17
  110. package/dist/esm/agentic/improvement/SelfTestRegistry.d.ts +5 -0
  111. package/dist/esm/agentic/improvement/SelfTestRegistry.js +129 -109
  112. package/dist/esm/agentic/improvement/SkillSynthesizer.d.ts +1 -0
  113. package/dist/esm/agentic/improvement/SkillSynthesizer.js +22 -13
  114. package/dist/esm/agentic/improvement/StrategicPlanner.d.ts +1 -0
  115. package/dist/esm/agentic/improvement/StrategicPlanner.js +26 -19
  116. package/dist/esm/agentic/telemetry/CognitiveSynthesizer.d.ts +5 -0
  117. package/dist/esm/agentic/telemetry/CognitiveSynthesizer.js +54 -12
  118. package/dist/esm/agentic/telemetry/EventHarvester.d.ts +1 -1
  119. package/dist/esm/agentic/telemetry/EventHarvester.js +10 -3
  120. package/dist/esm/agentic/telemetry/ResearchAlchemist.d.ts +7 -2
  121. package/dist/esm/agentic/telemetry/ResearchAlchemist.js +49 -8
  122. package/dist/esm/agentic/telemetry/TelemetryOrchestrator.d.ts +4 -1
  123. package/dist/esm/agentic/telemetry/TelemetryOrchestrator.js +38 -11
  124. package/dist/esm/cli/commands/inspect.js +40 -1
  125. package/dist/esm/cli/commands/watch.js +31 -25
  126. package/dist/esm/dialect/sqlite/sqlite-introspector.js +15 -5
  127. package/dist/esm/helpers/agent-schema.js +1 -0
  128. package/dist/esm/migration/data_migrator.js +4 -4
  129. package/dist/esm/migration/schema_differ.js +37 -15
  130. package/dist/esm/types/index.d.ts +12 -0
  131. package/dist/esm/util/safe-sql-helpers.js +7 -10
  132. package/package.json +1 -1
@@ -21,10 +21,10 @@ export async function migrateTableData(sourceDb, targetDb, sourceTable, targetTa
21
21
  errors: [],
22
22
  };
23
23
  }
24
- // Keyset pagination optimization: find a numeric primary key
25
- const pkColumn = sourceTable.columns.find((c) => c.primaryKey &&
26
- (c.type.toLowerCase().includes('int') ||
27
- c.type.toLowerCase().includes('serial')))?.name;
24
+ // Keyset pagination optimization: find a primary key or a unique single-column index
25
+ const pkColumn = sourceTable.columns.find((c) => c.primaryKey)?.name ||
26
+ sourceTable.indexes.find((i) => i.unique && i.columns.length === 1)
27
+ ?.columns[0];
28
28
  let lastId = null;
29
29
  // Calculate number of batches (approximate)
30
30
  const batchCount = Math.ceil(totalRows / options.batchSize);
@@ -175,24 +175,46 @@ function compareIndexes(sourceTable, targetTable) {
175
175
  }
176
176
  function compareConstraints(sourceTable, targetTable) {
177
177
  const differences = [];
178
- // Simple comparison - just check counts for now
179
- if (sourceTable.constraints.length > targetTable.constraints.length) {
180
- differences.push({
181
- type: 'constraint_added',
182
- table: sourceTable.name,
183
- details: {
184
- message: `${sourceTable.constraints.length - targetTable.constraints.length} constraint(s) need to be added`,
185
- },
178
+ // PRODUCTION HARDENING: Deep Structural Audit
179
+ const sourceConstraints = sourceTable.constraints || [];
180
+ const targetConstraints = targetTable.constraints || [];
181
+ for (const source of sourceConstraints) {
182
+ const matching = targetConstraints.find((t) => {
183
+ const typeMatch = t.type === source.type;
184
+ const exprMatch = t.expression === source.expression;
185
+ const colsMatch = JSON.stringify(t.columns?.sort()) ===
186
+ JSON.stringify(source.columns?.sort());
187
+ return typeMatch && (source.type === 'CHECK' ? exprMatch : colsMatch);
186
188
  });
189
+ if (!matching) {
190
+ differences.push({
191
+ type: 'constraint_added',
192
+ table: sourceTable.name,
193
+ details: {
194
+ source,
195
+ message: `Constraint of type ${source.type} ${source.name ? `'${source.name}' ` : ''}needs to be added`,
196
+ },
197
+ });
198
+ }
187
199
  }
188
- else if (sourceTable.constraints.length < targetTable.constraints.length) {
189
- differences.push({
190
- type: 'constraint_removed',
191
- table: sourceTable.name,
192
- details: {
193
- message: `${targetTable.constraints.length - sourceTable.constraints.length} constraint(s) exist in target but not in source`,
194
- },
200
+ for (const target of targetConstraints) {
201
+ const matching = sourceConstraints.find((s) => {
202
+ const typeMatch = s.type === target.type;
203
+ const exprMatch = s.expression === target.expression;
204
+ const colsMatch = JSON.stringify(s.columns?.sort()) ===
205
+ JSON.stringify(target.columns?.sort());
206
+ return typeMatch && (target.type === 'CHECK' ? exprMatch : colsMatch);
195
207
  });
208
+ if (!matching) {
209
+ differences.push({
210
+ type: 'constraint_removed',
211
+ table: sourceTable.name,
212
+ details: {
213
+ target,
214
+ message: `Constraint of type ${target.type} ${target.name ? `'${target.name}' ` : ''}exists in target but not in source`,
215
+ },
216
+ });
217
+ }
196
218
  }
197
219
  return differences;
198
220
  }
@@ -385,6 +385,18 @@ export interface AgentPersona {
385
385
  createdAt: Date;
386
386
  updatedAt: Date;
387
387
  }
388
+ export interface AgentQuota {
389
+ id: string | number;
390
+ targetType: 'persona' | 'swarm' | 'global';
391
+ targetId: string | null;
392
+ metric: 'cost' | 'tokens_input' | 'tokens_output' | 'tokens_total';
393
+ limit: number;
394
+ period: 'hourly' | 'daily' | 'monthly' | 'infinite';
395
+ currentUsage: number;
396
+ metadata?: Record<string, any>;
397
+ createdAt: Date;
398
+ updatedAt: Date;
399
+ }
388
400
  export interface AgentEpoch {
389
401
  id: string | number;
390
402
  sessionId: string | number;
@@ -138,16 +138,13 @@ export function safeCaseStatement(cases, elseResult) {
138
138
  if (cases.length === 0) {
139
139
  throw new Error('At least one WHEN clause is required');
140
140
  }
141
- // Note: This function needs to be refactored to not use sql.raw()
142
- // For now, we construct the CASE statement carefully
143
- const whenClauses = cases
144
- .map((c, i) => {
145
- // Conditions must be RawBuilder instances to ensure they're safe
146
- const conditionSql = c.condition.toOperationNode();
147
- return `WHEN ${conditionSql} THEN ${c.result}`;
148
- })
149
- .join(' ');
150
- return sql.raw(`CASE ${whenClauses} ELSE ${elseResult} END`);
141
+ // PRODUCTION HARDENING: Balanced Case Construction
142
+ // We avoid sql.raw() by building the CASE statement recursively or via template fragments
143
+ let caseBuilder = sql `CASE`;
144
+ for (const c of cases) {
145
+ caseBuilder = sql `${caseBuilder} WHEN ${c.condition} THEN ${sql.val(c.result)}`;
146
+ }
147
+ return sql `${caseBuilder} ELSE ${sql.val(elseResult)} END`;
151
148
  }
152
149
  /**
153
150
  * Example usage and best practices
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "noormme",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
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",