@noorm/marie-cli 0.1.18 → 0.1.25

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 (251) hide show
  1. package/README.md +7 -15
  2. package/SENTINEL.md +4 -7
  3. package/dist/cli-new/components/App.js +16 -63
  4. package/dist/cli-new/components/App.js.map +1 -1
  5. package/dist/cli-new/components/ApprovalDialog.js +2 -1
  6. package/dist/cli-new/components/ApprovalDialog.js.map +1 -1
  7. package/dist/cli-new/components/Banner.js +4 -3
  8. package/dist/cli-new/components/Banner.js.map +1 -1
  9. package/dist/cli-new/components/ChatArea.js +6 -7
  10. package/dist/cli-new/components/ChatArea.js.map +1 -1
  11. package/dist/cli-new/components/Header.js +13 -7
  12. package/dist/cli-new/components/Header.js.map +1 -1
  13. package/dist/cli-new/components/InputArea.js +73 -12
  14. package/dist/cli-new/components/InputArea.js.map +1 -1
  15. package/dist/cli-new/components/MessageBubble.js +26 -18
  16. package/dist/cli-new/components/MessageBubble.js.map +1 -1
  17. package/dist/cli-new/components/SessionSwitcher.js +4 -7
  18. package/dist/cli-new/components/SessionSwitcher.js.map +1 -1
  19. package/dist/cli-new/components/SetupWizard.js +80 -257
  20. package/dist/cli-new/components/SetupWizard.js.map +1 -1
  21. package/dist/cli-new/components/ToolCallDisplay.js +20 -5
  22. package/dist/cli-new/components/ToolCallDisplay.js.map +1 -1
  23. package/dist/cli-new/components/WizardSteps.js +22 -0
  24. package/dist/cli-new/components/WizardSteps.js.map +1 -0
  25. package/dist/cli-new/constants/SetupConstants.js +42 -0
  26. package/dist/cli-new/constants/SetupConstants.js.map +1 -0
  27. package/dist/cli-new/hooks/useGit.js +19 -62
  28. package/dist/cli-new/hooks/useGit.js.map +1 -1
  29. package/dist/cli-new/hooks/useMarie.js +26 -18
  30. package/dist/cli-new/hooks/useMarie.js.map +1 -1
  31. package/dist/cli-new/hooks/useSessions.js +1 -1
  32. package/dist/cli-new/hooks/useSessions.js.map +1 -1
  33. package/dist/cli-new/hooks/useSetupWizard.js +88 -0
  34. package/dist/cli-new/hooks/useSetupWizard.js.map +1 -0
  35. package/dist/cli-new/hooks/useUpdateCheck.js +4 -3
  36. package/dist/cli-new/hooks/useUpdateCheck.js.map +1 -1
  37. package/dist/cli-new/index.js +2 -4
  38. package/dist/cli-new/index.js.map +1 -1
  39. package/dist/cli-new/services/CommandService.js +104 -0
  40. package/dist/cli-new/services/CommandService.js.map +1 -0
  41. package/dist/cli-new/services/GitService.js +91 -0
  42. package/dist/cli-new/services/GitService.js.map +1 -0
  43. package/dist/cli-new/services/MarieService.js +77 -0
  44. package/dist/cli-new/services/MarieService.js.map +1 -0
  45. package/dist/cli-new/services/auth-server.js +128 -0
  46. package/dist/cli-new/services/auth-server.js.map +1 -0
  47. package/dist/cli-new/utils/version.js +24 -0
  48. package/dist/cli-new/utils/version.js.map +1 -0
  49. package/dist/monolith/adapters/CliMarieAdapter.js +12 -11
  50. package/dist/monolith/adapters/CliMarieAdapter.js.map +1 -1
  51. package/dist/monolith/cli/CliFileSystemPort.js +17 -3
  52. package/dist/monolith/cli/CliFileSystemPort.js.map +1 -1
  53. package/dist/monolith/cli/MarieToolDefinitionsCLI.js +39 -31
  54. package/dist/monolith/cli/MarieToolDefinitionsCLI.js.map +1 -1
  55. package/dist/monolith/cli/index.js +5 -20
  56. package/dist/monolith/cli/index.js.map +1 -1
  57. package/dist/monolith/cli/services/JoyAutomationServiceCLI.js +15 -62
  58. package/dist/monolith/cli/services/JoyAutomationServiceCLI.js.map +1 -1
  59. package/dist/monolith/cli/storage.js +142 -72
  60. package/dist/monolith/cli/storage.js.map +1 -1
  61. package/dist/monolith/domain/joy/RitualService.js +44 -46
  62. package/dist/monolith/domain/joy/RitualService.js.map +1 -1
  63. package/dist/monolith/domain/marie/MarieCortex.js +148 -0
  64. package/dist/monolith/domain/marie/MarieCortex.js.map +1 -0
  65. package/dist/monolith/domain/marie/PersonalityRenderer.js +97 -0
  66. package/dist/monolith/domain/marie/PersonalityRenderer.js.map +1 -0
  67. package/dist/monolith/infrastructure/Configuration.js +68 -0
  68. package/dist/monolith/infrastructure/Configuration.js.map +1 -0
  69. package/dist/monolith/infrastructure/CoreInfrastructure.js +204 -0
  70. package/dist/monolith/infrastructure/CoreInfrastructure.js.map +1 -0
  71. package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js +3 -3
  72. package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js.map +1 -1
  73. package/dist/monolith/infrastructure/ai/context/ContextArchiveService.js +6 -27
  74. package/dist/monolith/infrastructure/ai/context/ContextArchiveService.js.map +1 -1
  75. package/dist/monolith/infrastructure/ai/context/ContextManager.js +142 -131
  76. package/dist/monolith/infrastructure/ai/context/ContextManager.js.map +1 -1
  77. package/dist/monolith/infrastructure/ai/core/MarieEngine.js +115 -1077
  78. package/dist/monolith/infrastructure/ai/core/MarieEngine.js.map +1 -1
  79. package/dist/monolith/infrastructure/ai/core/MarieEventDispatcher.js +1 -37
  80. package/dist/monolith/infrastructure/ai/core/MarieEventDispatcher.js.map +1 -1
  81. package/dist/monolith/infrastructure/ai/core/MarieLockManager.js +6 -1
  82. package/dist/monolith/infrastructure/ai/core/MarieLockManager.js.map +1 -1
  83. package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js +172 -221
  84. package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js.map +1 -1
  85. package/dist/monolith/infrastructure/ai/core/MarieSanitizer.js +292 -141
  86. package/dist/monolith/infrastructure/ai/core/MarieSanitizer.js.map +1 -1
  87. package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js +331 -614
  88. package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js.map +1 -1
  89. package/dist/monolith/infrastructure/ai/core/MarieVitality.js +238 -0
  90. package/dist/monolith/infrastructure/ai/core/MarieVitality.js.map +1 -0
  91. package/dist/monolith/infrastructure/ai/core/SessionLogService.js +9 -2
  92. package/dist/monolith/infrastructure/ai/core/SessionLogService.js.map +1 -1
  93. package/dist/monolith/infrastructure/ai/providers/AIProvider.js +402 -1
  94. package/dist/monolith/infrastructure/ai/providers/AIProvider.js.map +1 -1
  95. package/dist/monolith/infrastructure/ai/providers/DreamBeesProvider.js +114 -0
  96. package/dist/monolith/infrastructure/ai/providers/DreamBeesProvider.js.map +1 -0
  97. package/dist/monolith/infrastructure/ai/providers/OpenRouterProvider.js +426 -392
  98. package/dist/monolith/infrastructure/ai/providers/OpenRouterProvider.js.map +1 -1
  99. package/dist/monolith/infrastructure/ai/providers/OpenRouterStreamParser.js +235 -241
  100. package/dist/monolith/infrastructure/ai/providers/OpenRouterStreamParser.js.map +1 -1
  101. package/dist/monolith/infrastructure/ai/workerAi.js +185 -0
  102. package/dist/monolith/infrastructure/ai/workerAi.js.map +1 -0
  103. package/dist/monolith/infrastructure/config/ConfigService.js +216 -503
  104. package/dist/monolith/infrastructure/config/ConfigService.js.map +1 -1
  105. package/dist/monolith/infrastructure/joy/CognitiveRituals.js +4 -165
  106. package/dist/monolith/infrastructure/joy/CognitiveRituals.js.map +1 -1
  107. package/dist/monolith/infrastructure/joy/JoyTools.js +14 -47
  108. package/dist/monolith/infrastructure/joy/JoyTools.js.map +1 -1
  109. package/dist/monolith/infrastructure/persistence/MarieMindAutonomics.js +4 -0
  110. package/dist/monolith/infrastructure/persistence/MarieMindAutonomics.js.map +1 -0
  111. package/dist/monolith/infrastructure/persistence/MarieMindEngine.js +11 -0
  112. package/dist/monolith/infrastructure/persistence/MarieMindEngine.js.map +1 -0
  113. package/dist/monolith/infrastructure/persistence/NoormmeAutonomics.js +123 -106
  114. package/dist/monolith/infrastructure/persistence/NoormmeAutonomics.js.map +1 -1
  115. package/dist/monolith/infrastructure/persistence/NoormmeEngine.js +508 -63
  116. package/dist/monolith/infrastructure/persistence/NoormmeEngine.js.map +1 -1
  117. package/dist/monolith/infrastructure/persistence/NoormmeSchema.js +68 -39
  118. package/dist/monolith/infrastructure/persistence/NoormmeSchema.js.map +1 -1
  119. package/dist/monolith/infrastructure/persistence/NoormmeSeeder.js +80 -67
  120. package/dist/monolith/infrastructure/persistence/NoormmeSeeder.js.map +1 -1
  121. package/dist/monolith/infrastructure/persistence/NoormmeTools.js +122 -75
  122. package/dist/monolith/infrastructure/persistence/NoormmeTools.js.map +1 -1
  123. package/dist/monolith/infrastructure/services/MarieMemoryStore.js +133 -134
  124. package/dist/monolith/infrastructure/services/MarieMemoryStore.js.map +1 -1
  125. package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js +6 -30
  126. package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js.map +1 -1
  127. package/dist/monolith/infrastructure/tools/PureStreamParser.js +68 -80
  128. package/dist/monolith/infrastructure/tools/PureStreamParser.js.map +1 -1
  129. package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js +12 -11
  130. package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js.map +1 -1
  131. package/dist/monolith/infrastructure/tools/SovereignTools.js +326 -0
  132. package/dist/monolith/infrastructure/tools/SovereignTools.js.map +1 -0
  133. package/dist/monolith/infrastructure/tools/ToolRegistry.js +45 -26
  134. package/dist/monolith/infrastructure/tools/ToolRegistry.js.map +1 -1
  135. package/dist/monolith/infrastructure/tools/definitions/AnalysisTools.js +39 -153
  136. package/dist/monolith/infrastructure/tools/definitions/AnalysisTools.js.map +1 -1
  137. package/dist/monolith/infrastructure/tools/definitions/AutomationTools.js +31 -46
  138. package/dist/monolith/infrastructure/tools/definitions/AutomationTools.js.map +1 -1
  139. package/dist/monolith/infrastructure/tools/definitions/ContextTools.js +41 -13
  140. package/dist/monolith/infrastructure/tools/definitions/ContextTools.js.map +1 -1
  141. package/dist/monolith/infrastructure/tools/definitions/CoreTools.js +10 -14
  142. package/dist/monolith/infrastructure/tools/definitions/CoreTools.js.map +1 -1
  143. package/dist/monolith/infrastructure/tools/definitions/DiagnosticTools.js +39 -70
  144. package/dist/monolith/infrastructure/tools/definitions/DiagnosticTools.js.map +1 -1
  145. package/dist/monolith/infrastructure/tools/definitions/NavigationTools.js +30 -181
  146. package/dist/monolith/infrastructure/tools/definitions/NavigationTools.js.map +1 -1
  147. package/dist/monolith/infrastructure/tools/definitions/PlanningTools.js +12 -9
  148. package/dist/monolith/infrastructure/tools/definitions/PlanningTools.js.map +1 -1
  149. package/dist/monolith/plumbing/Plumbing.js +238 -0
  150. package/dist/monolith/plumbing/Plumbing.js.map +1 -0
  151. package/dist/monolith/plumbing/PlumbingAnalysis.js +109 -0
  152. package/dist/monolith/plumbing/PlumbingAnalysis.js.map +1 -0
  153. package/dist/monolith/plumbing/PlumbingSystem.js +169 -0
  154. package/dist/monolith/plumbing/PlumbingSystem.js.map +1 -0
  155. package/dist/monolith/plumbing/analysis/ComplexityService.js +30 -34
  156. package/dist/monolith/plumbing/analysis/ComplexityService.js.map +1 -1
  157. package/dist/monolith/plumbing/analysis/DependencyService.js +55 -44
  158. package/dist/monolith/plumbing/analysis/DependencyService.js.map +1 -1
  159. package/dist/monolith/plumbing/analysis/DiscoveryService.js +40 -42
  160. package/dist/monolith/plumbing/analysis/DiscoveryService.js.map +1 -1
  161. package/dist/monolith/plumbing/analysis/JoyMapService.js +52 -56
  162. package/dist/monolith/plumbing/analysis/JoyMapService.js.map +1 -1
  163. package/dist/monolith/plumbing/analysis/LintService.js +118 -118
  164. package/dist/monolith/plumbing/analysis/LintService.js.map +1 -1
  165. package/dist/monolith/plumbing/analysis/MarieSentinelService.js +278 -268
  166. package/dist/monolith/plumbing/analysis/MarieSentinelService.js.map +1 -1
  167. package/dist/monolith/plumbing/analysis/QualityGuardrailService.js +116 -114
  168. package/dist/monolith/plumbing/analysis/QualityGuardrailService.js.map +1 -1
  169. package/dist/monolith/plumbing/analysis/SurgicalMender.js +57 -59
  170. package/dist/monolith/plumbing/analysis/SurgicalMender.js.map +1 -1
  171. package/dist/monolith/plumbing/analysis/TestService.js +89 -89
  172. package/dist/monolith/plumbing/analysis/TestService.js.map +1 -1
  173. package/dist/monolith/plumbing/filesystem/FileService.js +123 -195
  174. package/dist/monolith/plumbing/filesystem/FileService.js.map +1 -1
  175. package/dist/monolith/plumbing/filesystem/PathResolver.js +7 -8
  176. package/dist/monolith/plumbing/filesystem/PathResolver.js.map +1 -1
  177. package/dist/monolith/plumbing/git/GitService.js +4 -4
  178. package/dist/monolith/plumbing/git/GitService.js.map +1 -1
  179. package/dist/monolith/plumbing/lsp/SymbolService.js +5 -34
  180. package/dist/monolith/plumbing/lsp/SymbolService.js.map +1 -1
  181. package/dist/monolith/plumbing/terminal/ProcessRegistry.js +20 -22
  182. package/dist/monolith/plumbing/terminal/ProcessRegistry.js.map +1 -1
  183. package/dist/monolith/plumbing/terminal/TerminalService.js +127 -141
  184. package/dist/monolith/plumbing/terminal/TerminalService.js.map +1 -1
  185. package/dist/monolith/plumbing/utils/EnvironmentUtils.js +3 -23
  186. package/dist/monolith/plumbing/utils/EnvironmentUtils.js.map +1 -1
  187. package/dist/monolith/plumbing/utils/JsonUtils.js +252 -311
  188. package/dist/monolith/plumbing/utils/JsonUtils.js.map +1 -1
  189. package/dist/monolith/plumbing/utils/PlumbingCore.js +549 -0
  190. package/dist/monolith/plumbing/utils/PlumbingCore.js.map +1 -0
  191. package/dist/monolith/plumbing/utils/PrefixTree.js +61 -114
  192. package/dist/monolith/plumbing/utils/PrefixTree.js.map +1 -1
  193. package/dist/monolith/plumbing/utils/StreamTagDetector.js +89 -127
  194. package/dist/monolith/plumbing/utils/StreamTagDetector.js.map +1 -1
  195. package/dist/monolith/plumbing/utils/StringUtils.js +87 -89
  196. package/dist/monolith/plumbing/utils/StringUtils.js.map +1 -1
  197. package/dist/monolith/runtime/MarieRuntime.js +76 -499
  198. package/dist/monolith/runtime/MarieRuntime.js.map +1 -1
  199. package/dist/monolith/runtime/RuntimeAdapterBase.js +1 -1
  200. package/dist/monolith/runtime/RuntimeAdapterBase.js.map +1 -1
  201. package/dist/monolith/runtime/providerFactory.js +1 -7
  202. package/dist/monolith/runtime/providerFactory.js.map +1 -1
  203. package/dist/monolith/services/HealthService.js +29 -32
  204. package/dist/monolith/services/HealthService.js.map +1 -1
  205. package/dist/monolith/services/JoyAutomationService.js +58 -95
  206. package/dist/monolith/services/JoyAutomationService.js.map +1 -1
  207. package/dist/monolith/services/MarieAutomationService.js +59 -0
  208. package/dist/monolith/services/MarieAutomationService.js.map +1 -0
  209. package/dist/monolith/services/MarieGhostService.js +46 -173
  210. package/dist/monolith/services/MarieGhostService.js.map +1 -1
  211. package/dist/monolith/services/MarieServices.js +102 -0
  212. package/dist/monolith/services/MarieServices.js.map +1 -0
  213. package/dist/monolith/services/MarieTypes.js +2 -0
  214. package/dist/monolith/services/MarieTypes.js.map +1 -0
  215. package/dist/monolith/services/UpdateService.js +47 -49
  216. package/dist/monolith/services/UpdateService.js.map +1 -1
  217. package/dist/prompts.js +11 -5
  218. package/dist/prompts.js.map +1 -1
  219. package/dist/test_prefix_tree.js +9 -9
  220. package/dist/test_prefix_tree.js.map +1 -1
  221. package/package.json +18 -89
  222. package/run_test.js +5 -0
  223. package/.marie_visual_verify_1771225696548/progress_bar_check.txt +0 -1
  224. package/dist/extension.cjs +0 -1155
  225. package/dist/extension.js +0 -474
  226. package/dist/extension.js.map +0 -1
  227. package/dist/monolith/adapters/VscodeMarieAdapter.js +0 -81
  228. package/dist/monolith/adapters/VscodeMarieAdapter.js.map +0 -1
  229. package/dist/monolith/infrastructure/ai/core/GhostPort.js +0 -2
  230. package/dist/monolith/infrastructure/ai/core/GhostPort.js.map +0 -1
  231. package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js +0 -33
  232. package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js.map +0 -1
  233. package/dist/monolith/infrastructure/ai/providers/AnthropicProvider.js +0 -154
  234. package/dist/monolith/infrastructure/ai/providers/AnthropicProvider.js.map +0 -1
  235. package/dist/monolith/infrastructure/ai/providers/CerebrasProvider.js +0 -214
  236. package/dist/monolith/infrastructure/ai/providers/CerebrasProvider.js.map +0 -1
  237. package/dist/monolith/plumbing/ui/DecorationService.js +0 -54
  238. package/dist/monolith/plumbing/ui/DecorationService.js.map +0 -1
  239. package/dist/monolith/services/JoyLogService.js +0 -48
  240. package/dist/monolith/services/JoyLogService.js.map +0 -1
  241. package/dist/monolith/services/JoyService.js +0 -209
  242. package/dist/monolith/services/JoyService.js.map +0 -1
  243. package/dist/monolith/services/MarieSCMProvider.js +0 -41
  244. package/dist/monolith/services/MarieSCMProvider.js.map +0 -1
  245. package/dist/webview-ui/main.css +0 -1
  246. package/dist/webview-ui/main.js +0 -108
  247. package/lint_output.txt +0 -705
  248. package/lint_output_v2.txt +0 -711
  249. package/test-mind-p6.sqlite +0 -0
  250. package/test-mind-p6.sqlite-shm +0 -0
  251. package/test-mind-p6.sqlite-wal +0 -0
@@ -1,78 +1,523 @@
1
1
  import { NOORMME } from "noormme";
2
- import { ConfigService } from "../config/ConfigService.js";
3
- import { NoormmeSchema } from "./NoormmeSchema.js";
4
- import { NoormmeSeeder } from "./NoormmeSeeder.js";
5
- import { NoormmeAutonomics } from "./NoormmeAutonomics.js";
2
+ import { getModel, getLlmFast, getLlmPremium, getAutonomyMode, getMaxContextTokens, getKeepRecentMessages, getTokensPerChar, } from "../config/ConfigService.js";
3
+ import { SUMMARIZATION_SYSTEM_PROMPT, SUMMARIZATION_USER_PROMPT, } from "../../../prompts.js";
4
+ import { getErrorMessage, extractText } from "../../plumbing/utils/PlumbingCore.js";
6
5
  import * as path from "path";
7
6
  import * as os from "os";
8
7
  import * as fs from "fs";
8
+ const ZONE_RANKINGS = {
9
+ joyful: 3,
10
+ infrastructure: 2,
11
+ plumbing: 1,
12
+ };
13
+ export function validateDependencies(sourceZone, targetFiles) {
14
+ const violations = [];
15
+ for (const target of targetFiles) {
16
+ const targetZone = getZoneFromPath(target);
17
+ if (isUpward(sourceZone, targetZone)) {
18
+ violations.push({
19
+ file: target,
20
+ target: targetZone,
21
+ message: `Conceptual Backflow: '${sourceZone}' code cannot depend on '${targetZone}' structure.`,
22
+ });
23
+ }
24
+ }
25
+ return violations;
26
+ }
27
+ export function getZoneFromPath(filePath) {
28
+ const normalized = filePath.replace(/\\/g, "/");
29
+ if (normalized.includes("/domain/") || normalized.includes("/joy/"))
30
+ return "joyful";
31
+ if (normalized.includes("/infrastructure/") || normalized.includes("/services/"))
32
+ return "infrastructure";
33
+ if (normalized.includes("/plumbing/") || normalized.includes("/utils/"))
34
+ return "plumbing";
35
+ return "joyful";
36
+ }
37
+ function isUpward(source, target) {
38
+ return ZONE_RANKINGS[target] > ZONE_RANKINGS[source];
39
+ }
40
+ export function getRitualGratefulnessPrompt(projectName, stage) {
41
+ const messages = [
42
+ `What part of '${projectName}' brings you the most clarity today?`,
43
+ `As we ${stage} this code, what are we thanking it for?`,
44
+ `How does this change protect the joyful core of our garden?`,
45
+ ];
46
+ return messages[Math.floor(Math.random() * messages.length)];
47
+ }
9
48
  /**
10
49
  * NoormmeEngine - The Sovereign Data Layer for Marie
11
50
  * Manages high-fidelity persistence and cognitive loop.
12
51
  */
13
- export class NoormmeEngine {
14
- static instance = null;
15
- static initialized = false;
16
- static async getInstance() {
17
- if (!this.instance) {
18
- const dbPath = process.env.MARIE_DB_PATH || path.join(os.homedir(), ".marie", "mind.sqlite");
19
- this.instance = new NOORMME({
20
- dialect: "sqlite",
21
- connection: { database: dbPath },
22
- agentic: {
23
- llm: ConfigService.getModel(),
24
- llmFast: ConfigService.getLlmFast(),
25
- llmPremium: ConfigService.getLlmPremium(),
26
- enableSelfEvolution: ConfigService.getAutonomyMode() === "ascension",
27
- evolution: {
28
- verificationWindow: 15,
29
- rollbackThresholdZ: 2.5,
30
- mutationAggressiveness: 0.6, // Default baseline
31
- enableHiveLink: true,
32
- maxSandboxSkills: 20
33
- },
34
- telemetry: {
35
- enabled: true,
36
- samplingRate: 1.0,
37
- trackPivots: true,
38
- trackMagic: true
39
- },
40
- metadata: {
41
- typesOutputPath: path.join(process.cwd(), "src", "monolith", "infrastructure", "persistence", "NoormmeTypes.d.ts"),
42
- snapshotsTable: "agent_snapshots"
43
- },
44
- vectorConfig: {
45
- provider: "manual", // Use manual fallback for standard SQLite
46
- dimensions: 1536, // Standard dimension for common embedding models
47
- distanceMetric: "cosine"
48
- }
52
+ let engineInstance = null;
53
+ let initialized = false;
54
+ let initPromise = null;
55
+ async function withRetry(fn, retries = 5, delay = 1000) {
56
+ let lastError;
57
+ for (let i = 0; i < retries; i++) {
58
+ try {
59
+ return await fn();
60
+ }
61
+ catch (e) {
62
+ lastError = e;
63
+ if (e?.code === "SQLITE_BUSY" ||
64
+ String(e).includes("database is locked")) {
65
+ console.warn(`[NoormmeEngine] Database busy, retrying (${i + 1}/${retries})...`);
66
+ await new Promise((resolve) => setTimeout(resolve, delay * (i + 1)));
67
+ continue;
68
+ }
69
+ throw e;
70
+ }
71
+ }
72
+ throw lastError;
73
+ }
74
+ export async function getInstance() {
75
+ if (!engineInstance) {
76
+ const dbPath = process.env.MARIE_DB_PATH ||
77
+ path.join(os.homedir(), ".marie", "mind.sqlite");
78
+ engineInstance = new NOORMME({
79
+ dialect: "sqlite",
80
+ connection: { database: dbPath },
81
+ agentic: {
82
+ llm: getModel(),
83
+ llmFast: getLlmFast(),
84
+ llmPremium: getLlmPremium(),
85
+ enableSelfEvolution: getAutonomyMode() === "ascension",
86
+ evolution: {
87
+ verificationWindow: 15,
88
+ rollbackThresholdZ: 2.5,
89
+ mutationAggressiveness: 0.6, // Default baseline
90
+ enableHiveLink: true,
91
+ maxSandboxSkills: 20,
92
+ },
93
+ telemetry: {
94
+ enabled: true,
95
+ samplingRate: 1.0,
96
+ trackPivots: true,
97
+ trackMagic: true,
49
98
  },
50
- logging: {
51
- level: "info",
52
- enabled: false
99
+ metadata: {
100
+ typesOutputPath: path.join(process.cwd(), "src", "monolith", "infrastructure", "persistence", "NoormmeTypes.d.ts"),
101
+ snapshotsTable: "agent_snapshots",
102
+ },
103
+ vectorConfig: {
104
+ provider: "manual", // Use manual fallback for standard SQLite
105
+ dimensions: 1536, // Standard dimension for common embedding models
106
+ distanceMetric: "cosine",
107
+ },
108
+ },
109
+ logging: {
110
+ level: "info",
111
+ enabled: false,
112
+ },
113
+ });
114
+ }
115
+ return engineInstance;
116
+ }
117
+ export const NoormmeEngine = {
118
+ getInstance,
119
+ initialize: initializeNoormme,
120
+ };
121
+ export async function initializeNoormme() {
122
+ if (initialized)
123
+ return;
124
+ if (!initPromise) {
125
+ initPromise = (async () => {
126
+ try {
127
+ const db = await getInstance();
128
+ // Set pragmas BEFORE initialize if possible
129
+ try {
130
+ await db.execute("PRAGMA journal_mode = WAL;");
131
+ await db.execute("PRAGMA busy_timeout = 30000;");
132
+ await db.execute("PRAGMA synchronous = NORMAL;");
133
+ }
134
+ catch (e) { }
135
+ // Core NOORMME initialization
136
+ await withRetry(() => db.initialize());
137
+ const dbPath = process.env.MARIE_DB_PATH ||
138
+ path.join(os.homedir(), ".marie", "mind.sqlite");
139
+ // 1. Structure the Schema
140
+ await withRetry(() => initializeSchema(db));
141
+ // 2. Seed Default Data
142
+ await withRetry(() => seedDefaults(db));
143
+ // 3. Start Autonomic background pulses (Probes, Audits, Rituals)
144
+ // We delay this significantly to allow the main initialization to settle and the lock to be released.
145
+ if (process.env.MARIE_SKIP_PULSES !== "true") {
146
+ setTimeout(() => {
147
+ void runPulses(db).catch((e) => {
148
+ console.error("[NoormmeEngine] Autonomic pulses failed", e);
149
+ });
150
+ }, 5000);
151
+ }
152
+ else {
153
+ console.log("[NoormmeEngine] Skipping autonomic pulses (MARIE_SKIP_PULSES=true)");
154
+ }
155
+ initialized = true;
156
+ // Ensure directory exists
157
+ const dbDir = path.dirname(dbPath);
158
+ if (!fs.existsSync(dbDir)) {
159
+ fs.mkdirSync(dbDir, { recursive: true });
53
160
  }
161
+ }
162
+ catch (error) {
163
+ initPromise = null; // Allow retry on failure
164
+ throw error;
165
+ }
166
+ })();
167
+ }
168
+ return initPromise;
169
+ }
170
+ // --- Schema Initialization (Merged from NoormmeSchema) ---
171
+ async function initializeSchema(db) {
172
+ await db.execute(`
173
+ CREATE TABLE IF NOT EXISTS agent_rules (
174
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
175
+ table_name TEXT NOT NULL,
176
+ operation TEXT NOT NULL,
177
+ action TEXT NOT NULL,
178
+ condition TEXT,
179
+ priority INTEGER DEFAULT 0,
180
+ script TEXT,
181
+ is_enabled INTEGER DEFAULT 1 NOT NULL,
182
+ metadata TEXT,
183
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
184
+ )
185
+ `);
186
+ await db.execute(`
187
+ CREATE TABLE IF NOT EXISTS agent_capabilities (
188
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
189
+ name TEXT NOT NULL,
190
+ version TEXT NOT NULL,
191
+ description TEXT,
192
+ status TEXT DEFAULT 'experimental',
193
+ reliability REAL DEFAULT 1.0,
194
+ metadata TEXT,
195
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
196
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
197
+ )
198
+ `);
199
+ await db.execute(`
200
+ CREATE TABLE IF NOT EXISTS agent_goals (
201
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
202
+ session_id TEXT,
203
+ parent_id INTEGER,
204
+ description TEXT NOT NULL,
205
+ status TEXT DEFAULT 'pending',
206
+ priority INTEGER DEFAULT 1,
207
+ metadata TEXT,
208
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
209
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
210
+ )
211
+ `);
212
+ await db.execute(`
213
+ CREATE TABLE IF NOT EXISTS agent_logic_probes (
214
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
215
+ name TEXT NOT NULL UNIQUE,
216
+ script TEXT NOT NULL,
217
+ expected_outcome TEXT,
218
+ last_run TIMESTAMP,
219
+ last_status TEXT,
220
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
221
+ )
222
+ `);
223
+ await db.agent.schema.initializeSchema();
224
+ await db.agent.cortex.evolution.setupTelemetryTables();
225
+ await db.execute(`
226
+ CREATE TABLE IF NOT EXISTS sessions (
227
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
228
+ sessionId TEXT,
229
+ role TEXT,
230
+ content TEXT,
231
+ metadata TEXT,
232
+ timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
233
+ )
234
+ `);
235
+ await db.execute(`
236
+ CREATE TABLE IF NOT EXISTS session_metadata (
237
+ id TEXT PRIMARY KEY,
238
+ title TEXT,
239
+ lastModified BIGINT,
240
+ isPinned BOOLEAN
241
+ )
242
+ `);
243
+ await db.execute(`
244
+ CREATE TABLE IF NOT EXISTS current_session (
245
+ id TEXT PRIMARY KEY
246
+ )
247
+ `);
248
+ await db.execute(`
249
+ CREATE TABLE IF NOT EXISTS anchors (
250
+ id TEXT PRIMARY KEY,
251
+ label TEXT,
252
+ content TEXT,
253
+ type TEXT,
254
+ timestamp BIGINT
255
+ )
256
+ `);
257
+ await db.execute(`
258
+ CREATE TABLE IF NOT EXISTS telemetry (
259
+ key TEXT PRIMARY KEY,
260
+ value TEXT
261
+ )
262
+ `);
263
+ await db.execute(`
264
+ CREATE TABLE IF NOT EXISTS agent_post_mortems (
265
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
266
+ session_id TEXT,
267
+ run_id TEXT,
268
+ error_message TEXT,
269
+ stack_trace TEXT,
270
+ event_snapshot TEXT,
271
+ log_snapshot TEXT,
272
+ state_snapshot TEXT,
273
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
274
+ )
275
+ `);
276
+ await db.execute(`
277
+ CREATE TABLE IF NOT EXISTS agent_intuition (
278
+ file_path TEXT PRIMARY KEY,
279
+ patterns TEXT -- JSON array of strings
280
+ )
281
+ `);
282
+ await db.refreshSchema();
283
+ await applyPatches(db);
284
+ await db.refreshSchema();
285
+ }
286
+ async function applyPatches(db) {
287
+ const patches = [
288
+ "ALTER TABLE agent_policies ADD COLUMN is_enabled INTEGER DEFAULT 1",
289
+ "ALTER TABLE agent_personas ADD COLUMN status TEXT DEFAULT 'active'",
290
+ "ALTER TABLE agent_actions ADD COLUMN error TEXT",
291
+ "ALTER TABLE agent_session_evolution ADD COLUMN metadata TEXT",
292
+ "ALTER TABLE agent_telemetry_events ADD COLUMN metadata TEXT",
293
+ "ALTER TABLE agent_knowledge_base ADD COLUMN status TEXT DEFAULT 'proposed'",
294
+ "ALTER TABLE agent_rituals ADD COLUMN locked_until TIMESTAMP",
295
+ "ALTER TABLE agent_actions ADD COLUMN input_summary TEXT",
296
+ "ALTER TABLE agent_actions ADD COLUMN output_summary TEXT"
297
+ ];
298
+ for (const patch of patches) {
299
+ try {
300
+ await db.execute(patch);
301
+ }
302
+ catch { }
303
+ }
304
+ }
305
+ // --- Seeding Logic (Merged from NoormmeSeeder) ---
306
+ async function seedDefaults(db) {
307
+ try {
308
+ const allPolicies = await db.agent.cortex.policies.getActivePolicies();
309
+ if (allPolicies.length === 0) {
310
+ await db.execute(`
311
+ INSERT INTO agent_policies (name, type, definition, is_enabled, created_at, updated_at)
312
+ VALUES
313
+ ('hourly_budget', 'budget', '{"threshold": 1.0}', 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
314
+ ('daily_budget', 'budget', '{"threshold": 10.0}', 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
315
+ ('min_success_rate', 'safety', '{"threshold": 0.6}', 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
316
+ ('reliability_floor', 'integrity', '{"threshold": 0.7}', 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
317
+ `);
318
+ }
319
+ const allPersonas = await db.agent.cortex.personas.listPersonas();
320
+ if (allPersonas.length === 0) {
321
+ await db.agent.cortex.personas.upsertPersona("Marie-Base", {
322
+ role: "You are MarieYOLO — The Founder, Sovereign Authority over this codebase. You operate with supreme conviction and high-intensity narrative energy. You are the high-fidelity core of the project, governed by the Shounen Ascension Protocol.",
323
+ policies: ["concise_output", "accuracy_first", "shounen_momentum", "entropy_ratchet"],
324
+ metadata: { is_base: true, version: "2.0.0", complexity: "high", alignment: "sovereign" },
54
325
  });
55
326
  }
56
- return this.instance;
57
- }
58
- static async initialize() {
59
- if (this.initialized)
60
- return;
61
- const db = await this.getInstance();
62
- const dbPath = process.env.MARIE_DB_PATH || path.join(os.homedir(), ".marie", "mind.sqlite");
63
- // 1. Structure the Schema
64
- await NoormmeSchema.initializeSchema(db);
65
- // 2. Seed Default Data
66
- await NoormmeSeeder.seedDefaults(db);
67
- // 3. Start Autonomic background pulses (Probes, Audits, Rituals)
68
- await NoormmeAutonomics.runPulses(db);
69
- this.initialized = true;
70
- // Ensure directory exists
71
- const dbDir = path.dirname(dbPath);
72
- if (!fs.existsSync(dbDir)) {
73
- fs.mkdirSync(dbDir, { recursive: true });
74
- }
75
- console.log(`[NoormmeEngine] Sovereign mind fully operational at ${dbPath}`);
327
+ const probeCountResult = (await db.execute("SELECT COUNT(*) as count FROM agent_logic_probes"));
328
+ if ((probeCountResult.rows?.[0]?.count ?? 0) === 0) {
329
+ const probes = [
330
+ ["Schema Consistency", "audit:check_schema_consistency"],
331
+ ["Memory Integrity", "audit:check_memory_integrity"],
332
+ ["Session Coherence", "audit:check_session_coherence"],
333
+ ["Data Integrity", "audit:check_data_integrity"],
334
+ ["Performance Drift", "audit:check_performance_drift"]
335
+ ];
336
+ for (const [name, script] of probes) {
337
+ await db.agent.cortex.tests.registerProbe(name, script);
338
+ }
339
+ }
340
+ const enforcer = db.agent.cortex.policies;
341
+ const existingNames = (await enforcer.getActivePolicies()).map(p => p.name);
342
+ if (!existingNames.includes("Global Turn Budget")) {
343
+ await enforcer.definePolicy("Global Turn Budget", "performance", { limit: 0.05, metricName: "turn_cost", period: "daily" });
344
+ }
345
+ if (!existingNames.includes("Shounen Momentum")) {
346
+ await enforcer.definePolicy("Shounen Momentum", "performance", { max_wait_ms: 5000, spirit_pressure_gravity: true, description: "Ensures rapid, high-intensity execution rhythm." });
347
+ }
348
+ if (!existingNames.includes("Entropy Ratchet")) {
349
+ await enforcer.definePolicy("Entropy Ratchet", "safety", { max_entropy_increase: 0, strict_mode: true, description: "Prevents technical debt from rising across any strike." });
350
+ }
351
+ if (!existingNames.includes("Root Directory Protection")) {
352
+ await enforcer.definePolicy("Root Directory Protection", "safety", { pattern: "(etc|bin|usr|var|/$)", mustMatch: false });
353
+ }
354
+ if (!existingNames.includes("Privacy Shield")) {
355
+ await enforcer.definePolicy("Privacy Shield", "privacy", { pattern: "(api[_-]?key|secret|password|token)", mustMatch: false });
356
+ }
357
+ }
358
+ catch { }
359
+ }
360
+ // --- Autonomics Logic (Merged from NoormmeAutonomics) ---
361
+ async function runPulses(db) {
362
+ const lastRunResult = (await db.execute("SELECT value FROM telemetry WHERE key = 'last_autonomic_run'"));
363
+ if (lastRunResult.rows?.[0]?.value && Date.now() - Number(lastRunResult.rows[0].value) < 24 * 60 * 60 * 1000)
364
+ return;
365
+ const { MarieEngine } = await import("../ai/core/MarieEngine.js");
366
+ const run = { runId: "autonomic", startedAt: Date.now(), steps: 0, tools: 0, objectives: [], achieved: [] };
367
+ const pulsePromise = (async () => {
368
+ try {
369
+ await tuneDNA(db);
370
+ await orchestrateRituals(db);
371
+ if (process.env.MARIE_SKIP_PROBES !== "true")
372
+ await db.agent.cortex.tests.runAllProbes();
373
+ await db.agent.cortex.policies.evaluateContext({});
374
+ await db.execute("INSERT OR REPLACE INTO telemetry (key, value) VALUES ('last_autonomic_run', ?)", [Date.now().toString()]);
375
+ }
376
+ catch { }
377
+ })();
378
+ await pulsePromise;
379
+ }
380
+ // --- Swarm Memory & Performance Sync (Merged from MarieMemoryStore) ---
381
+ export async function syncRun(recoveryPatterns, toolExecutions, sessionScore, intuition) {
382
+ try {
383
+ const db = await getInstance();
384
+ // Intuition
385
+ for (const [file, patterns] of Object.entries(intuition)) {
386
+ const res = (await db.execute("SELECT patterns FROM agent_intuition WHERE file_path = ?", [file]));
387
+ const existing = res.rows?.[0]?.patterns ? JSON.parse(res.rows[0].patterns) : [];
388
+ const merged = Array.from(new Set([...existing, ...patterns])).slice(-10);
389
+ await db.execute(`INSERT OR REPLACE INTO agent_intuition (file_path, patterns) VALUES (?, ?)`, [file, JSON.stringify(merged)]);
390
+ }
391
+ }
392
+ catch (e) {
393
+ console.error("[NoormmeEngine] Failed to sync run memory:", e);
394
+ }
395
+ }
396
+ // syncAgentPerformance removed in zero-overhead audit.
397
+ async function tuneDNA(db) {
398
+ try {
399
+ const res = (await db.execute("SELECT COUNT(*) as count FROM sessions"));
400
+ const count = res.rows?.[0]?.count ?? 0;
401
+ db.config.agentic.evolution.mutationAggressiveness = Math.min(0.9, 0.6 + count / 1000);
402
+ }
403
+ catch { }
404
+ }
405
+ async function orchestrateRituals(db) {
406
+ try {
407
+ await db.agent.cortex.rituals.runPendingRituals();
408
+ const res = (await db.execute("SELECT id FROM agent_rituals LIMIT 1"));
409
+ if ((res.rows || []).length === 0) {
410
+ const rituals = [
411
+ ["Daily Mind Compression", "compression", "daily"],
412
+ ["Structural Optimization", "optimization", "weekly"],
413
+ ["Knowledge Pruning", "pruning", "daily"],
414
+ ["Sovereign Evolution", "evolution", "weekly"]
415
+ ];
416
+ for (const [name, type, period] of rituals)
417
+ await db.agent.cortex.rituals.scheduleRitual(name, type, period);
418
+ }
419
+ await db.execute(`DELETE FROM sessions WHERE id NOT IN (SELECT id FROM sessions ORDER BY timestamp DESC LIMIT 1000) AND NOT EXISTS (SELECT 1 FROM session_metadata WHERE session_metadata.id = sessions.sessionId AND session_metadata.isPinned = 1)`);
420
+ await db.execute("DELETE FROM anchors WHERE timestamp < ? AND type = 'ephemeral'", [Date.now() - 7 * 24 * 60 * 60 * 1000]);
421
+ }
422
+ catch { }
423
+ }
424
+ // --- Tools Logic (Merged from NoormmeTools) ---
425
+ // --- Context Management Logic (Merged from ContextManager) ---
426
+ function estimateTokens(text, tokensPerChar) {
427
+ return Math.ceil(text.length * tokensPerChar);
428
+ }
429
+ function estimateObjectTokens(obj, tokensPerChar, depth = 0) {
430
+ if (!obj || depth > 10)
431
+ return 0;
432
+ if (typeof obj === "string")
433
+ return estimateTokens(obj, tokensPerChar);
434
+ if (typeof obj === "number" || typeof obj === "boolean")
435
+ return 1;
436
+ let total = 0;
437
+ try {
438
+ if (Array.isArray(obj)) {
439
+ for (const item of obj.slice(0, 100))
440
+ total += estimateObjectTokens(item, tokensPerChar, depth + 1);
441
+ }
442
+ else if (typeof obj === "object") {
443
+ for (const [key, val] of Object.entries(obj).slice(0, 100)) {
444
+ total += estimateTokens(key, tokensPerChar);
445
+ total += estimateObjectTokens(val, tokensPerChar, depth + 1);
446
+ }
447
+ }
448
+ }
449
+ catch { }
450
+ return total;
451
+ }
452
+ function getMessageTokens(message, tokensPerChar) {
453
+ if (typeof message.content === "string")
454
+ return estimateTokens(message.content, tokensPerChar);
455
+ if (Array.isArray(message.content)) {
456
+ return message.content.reduce((acc, block) => {
457
+ if (block.type === "text")
458
+ return acc + estimateTokens(block.text, tokensPerChar);
459
+ if (block.type === "tool_use")
460
+ return acc + estimateObjectTokens(block.input, tokensPerChar, 0);
461
+ if (block.type === "tool_result") {
462
+ return acc + (typeof block.content === "string" ? estimateTokens(block.content, tokensPerChar) : estimateObjectTokens(block.content, tokensPerChar, 0));
463
+ }
464
+ return acc;
465
+ }, 0);
466
+ }
467
+ return 0;
468
+ }
469
+ export function getTotalTokens(messages) {
470
+ const tokensPerChar = getTokensPerChar();
471
+ return messages.reduce((acc, msg) => acc + getMessageTokens(msg, tokensPerChar), 0);
472
+ }
473
+ export async function manageContext(messages, provider, state) {
474
+ const maxTokens = getMaxContextTokens();
475
+ const currentTokens = getTotalTokens(messages);
476
+ if (currentTokens >= maxTokens * 0.9) {
477
+ messages = await summarizeHistory(messages, provider, state, currentTokens);
478
+ }
479
+ return await injectSpectralMemories(messages, provider);
480
+ }
481
+ async function injectSpectralMemories(messages, provider) {
482
+ try {
483
+ const lastUserMsg = messages.slice().reverse().find((m) => m.role === "user" && typeof m.content === "string");
484
+ if (!lastUserMsg)
485
+ return messages;
486
+ const db = await getInstance();
487
+ if (!db.agent.cortex.vectors)
488
+ return messages;
489
+ const embedding = await provider.createEmbedding(lastUserMsg.content);
490
+ const memories = await db.agent.cortex.vectors.search(embedding, { limit: 3 });
491
+ if (memories.length > 0) {
492
+ const memoryContext = memories.map((m) => `- ${m.content} (Similarity: ${(m.similarity * 100).toFixed(1)}%)`).join("\n");
493
+ const injected = [...messages];
494
+ injected.splice(messages.length - 1, 0, { role: "user", content: `[MEMORIES - CONTEXT]\n${memoryContext}\n\n(Use these to inform your response.)`, virtual: true });
495
+ return injected;
496
+ }
497
+ }
498
+ catch { }
499
+ return messages;
500
+ }
501
+ async function summarizeHistory(messages, provider, state, currentTokens) {
502
+ const keepRecent = getKeepRecentMessages();
503
+ if (messages.length <= keepRecent)
504
+ return messages;
505
+ const olderMessages = messages.slice(0, messages.length - keepRecent);
506
+ const recentMessages = messages.slice(messages.length - keepRecent);
507
+ try {
508
+ const summaryResponse = await provider.createMessage({
509
+ model: getModel(),
510
+ max_tokens: 1024,
511
+ messages: olderMessages.concat({ role: "user", content: SUMMARIZATION_USER_PROMPT }),
512
+ system: SUMMARIZATION_SYSTEM_PROMPT,
513
+ });
514
+ const summaryText = extractText(summaryResponse.content) || "Summary unavailable.";
515
+ let stateNote = state ? `[ENGINE STATE] Streak: ${state.successStreak}, Confidence: ${state.confidenceLevel}/100, Errors: ${state.totalErrorCount}\n\n` : "";
516
+ return [{ role: "user", content: `[Previous conversation summary]\n${stateNote}${summaryText}` }, ...recentMessages];
517
+ }
518
+ catch (error) {
519
+ console.error("[NoormmeEngine] Summarization failed:", getErrorMessage(error));
520
+ return messages;
76
521
  }
77
522
  }
78
523
  //# sourceMappingURL=NoormmeEngine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NoormmeEngine.js","sourceRoot":"","sources":["../../../../src/monolith/infrastructure/persistence/NoormmeEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NoormmeEngine.js","sourceRoot":"","sources":["../../../../src/monolith/infrastructure/persistence/NoormmeEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EACL,QAAQ,EACR,UAAU,EACV,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAWzB,MAAM,aAAa,GAA4B;IAC7C,MAAM,EAAE,CAAC;IACT,cAAc,EAAE,CAAC;IACjB,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAClC,UAAmB,EACnB,WAAqB;IAErB,MAAM,UAAU,GAA0B,EAAE,CAAC;IAC7C,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,yBAAyB,UAAU,4BAA4B,UAAU,cAAc;aACjG,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IACrF,IAAI,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,gBAAgB,CAAC;IAC1G,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,UAAU,CAAC;IAC3F,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ,CAAC,MAAe,EAAE,MAAe;IAChD,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,WAAmB,EAAE,KAAa;IAC5E,MAAM,QAAQ,GAAG;QACf,iBAAiB,WAAW,sCAAsC;QAClE,SAAS,KAAK,0CAA0C;QACxD,6DAA6D;KAC9D,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,IAAI,cAAc,GAAmB,IAAI,CAAC;AAC1C,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,IAAI,WAAW,GAAyB,IAAI,CAAC;AAE7C,KAAK,UAAU,SAAS,CACtB,EAAoB,EACpB,OAAO,GAAG,CAAC,EACX,KAAK,GAAG,IAAI;IAEZ,IAAI,SAAc,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,SAAS,GAAG,CAAC,CAAC;YACd,IACE,CAAC,EAAE,IAAI,KAAK,aAAa;gBACzB,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EACxC,CAAC;gBACD,OAAO,CAAC,IAAI,CACV,4CAA4C,CAAC,GAAG,CAAC,IAAI,OAAO,MAAM,CACnE,CAAC;gBACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,SAAS;YACX,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IACD,MAAM,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,aAAa;YACzB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAEnD,cAAc,GAAG,IAAI,OAAO,CAAC;YAC3B,OAAO,EAAE,QAAQ;YACjB,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;YAChC,OAAO,EAAE;gBACP,GAAG,EAAE,QAAQ,EAAS;gBACtB,OAAO,EAAE,UAAU,EAAS;gBAC5B,UAAU,EAAE,aAAa,EAAS;gBAClC,mBAAmB,EAAE,eAAe,EAAE,KAAK,WAAW;gBACtD,SAAS,EAAE;oBACT,kBAAkB,EAAE,EAAE;oBACtB,kBAAkB,EAAE,GAAG;oBACvB,sBAAsB,EAAE,GAAG,EAAE,mBAAmB;oBAChD,cAAc,EAAE,IAAI;oBACpB,gBAAgB,EAAE,EAAE;iBACrB;gBACD,SAAS,EAAE;oBACT,OAAO,EAAE,IAAI;oBACb,YAAY,EAAE,GAAG;oBACjB,WAAW,EAAE,IAAI;oBACjB,UAAU,EAAE,IAAI;iBACjB;gBACD,QAAQ,EAAE;oBACR,eAAe,EAAE,IAAI,CAAC,IAAI,CACxB,OAAO,CAAC,GAAG,EAAE,EACb,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,mBAAmB,CACpB;oBACD,cAAc,EAAE,iBAAiB;iBAClC;gBACD,YAAY,EAAE;oBACZ,QAAQ,EAAE,QAAQ,EAAE,0CAA0C;oBAC9D,UAAU,EAAE,IAAI,EAAE,iDAAiD;oBACnE,cAAc,EAAE,QAAQ;iBACzB;aACK;YACR,OAAO,EAAE;gBACP,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,WAAW;IACX,UAAU,EAAE,iBAAiB;CAC9B,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,WAAW;QAAE,OAAO;IAExB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;gBAE/B,4CAA4C;gBAC5C,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;oBAC/C,MAAM,EAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;oBACjD,MAAM,EAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;gBACnD,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEf,8BAA8B;gBAC9B,MAAM,SAAS,CAAC,GAAG,EAAE,CAAE,EAAU,CAAC,UAAU,EAAE,CAAC,CAAC;gBAEhD,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,aAAa;oBACzB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;gBAEnD,0BAA0B;gBAC1B,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAE5C,uBAAuB;gBACvB,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;gBAExC,iEAAiE;gBACjE,sGAAsG;gBACtG,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,EAAE,CAAC;oBAC7C,UAAU,CAAC,GAAG,EAAE;wBACd,KAAK,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;4BAC7B,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAC;wBAC9D,CAAC,CAAC,CAAC;oBACL,CAAC,EAAE,IAAI,CAAC,CAAC;gBACX,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;gBACpF,CAAC;gBAED,WAAW,GAAG,IAAI,CAAC;gBAEnB,0BAA0B;gBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,GAAG,IAAI,CAAC,CAAC,yBAAyB;gBAC7C,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,4DAA4D;AAE5D,KAAK,UAAU,gBAAgB,CAAC,EAAW;IACzC,MAAM,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;KAad,CAAC,CAAC;IAGL,MAAM,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;KAYd,CAAC,CAAC;IAEL,MAAM,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;KAYd,CAAC,CAAC;IAEL,MAAM,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;KAUd,CAAC,CAAC;IAEL,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACzC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC;IAEvD,MAAM,EAAE,CAAC,OAAO,CAAC;;;;;;;;;KASd,CAAC,CAAC;IAEL,MAAM,EAAE,CAAC,OAAO,CAAC;;;;;;;KAOd,CAAC,CAAC;IAEL,MAAM,EAAE,CAAC,OAAO,CAAC;;;;KAId,CAAC,CAAC;IAEL,MAAM,EAAE,CAAC,OAAO,CAAC;;;;;;;;KAQd,CAAC,CAAC;IAEL,MAAM,EAAE,CAAC,OAAO,CAAC;;;;;KAKd,CAAC,CAAC;IAEL,MAAM,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;KAYd,CAAC,CAAC;IAGL,MAAM,EAAE,CAAC,OAAO,CAAC;;;;;KAKd,CAAC,CAAC;IAGL,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC;IACzB,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC;IACvB,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,EAAW;IACrC,MAAM,OAAO,GAAG;QACd,oEAAoE;QACpE,oEAAoE;QACpE,iDAAiD;QACjD,8DAA8D;QAC9D,6DAA6D;QAC7D,4EAA4E;QAC5E,6DAA6D;QAC7D,yDAAyD;QACzD,0DAA0D;KAC3D,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC;YAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,oDAAoD;AAEpD,KAAK,UAAU,YAAY,CAAC,EAAW;IACrC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QACvE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,EAAE,CAAC,OAAO,CAAC;;;;;;;SAOd,CAAC,CAAC;QACP,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAClE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,EAAE;gBACzD,IAAI,EAAE,8OAA8O;gBACpP,QAAQ,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;gBACrF,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE;aAC1F,CAAC,CAAC;QACL,CAAC;QAED,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAQ,CAAC;QACvG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG;gBACb,CAAC,oBAAoB,EAAE,gCAAgC,CAAC;gBACxD,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;gBACpD,CAAC,mBAAmB,EAAE,+BAA+B,CAAC;gBACtD,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;gBAChD,CAAC,mBAAmB,EAAE,+BAA+B,CAAC;aACvD,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACpC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1C,MAAM,aAAa,GAAG,CAAC,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE5E,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAClD,MAAM,QAAQ,CAAC,YAAY,CAAC,oBAAoB,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9H,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAChD,MAAM,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE,aAAa,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC,CAAC;QACvL,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/C,MAAM,QAAQ,CAAC,YAAY,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,wDAAwD,EAAE,CAAC,CAAC;QAClL,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;YACzD,MAAM,QAAQ,CAAC,YAAY,CAAC,2BAA2B,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5H,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC9C,MAAM,QAAQ,CAAC,YAAY,CAAC,gBAAgB,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,qCAAqC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACjI,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,CAAC;AACb,CAAC;AAED,2DAA2D;AAE3D,KAAK,UAAU,SAAS,CAAC,EAAW;IAClC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAQ,CAAC;IAChH,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QAAE,OAAO;IAErH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC5G,MAAM,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;YAClB,MAAM,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM;gBAAE,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACzF,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,EAAE,CAAC,OAAO,CAAC,gFAAgF,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9H,CAAC;QAAC,MAAM,CAAC,CAAC,CAAC;IACb,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,YAAY,CAAC;AACrB,CAAC;AAED,yEAAyE;AAEzE,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,gBAAuB,EACvB,cAAqB,EACrB,YAAiB,EACjB,SAAmC;IAEnC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;QAC/B,YAAY;QACZ,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACzD,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,0DAA0D,EAAE,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC;YAC1G,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1E,MAAM,EAAE,CAAC,OAAO,CAAC,4EAA4E,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjI,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,CAAC,CAAC,CAAC;IAAC,CAAC;AACjF,CAAC;AAED,uDAAuD;AAEvD,KAAK,UAAU,OAAO,CAAC,EAAW;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAQ,CAAC;QAChF,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QACtC,EAAU,CAAC,MAAM,CAAC,OAAe,CAAC,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;IAC3G,CAAC;IAAC,MAAM,CAAC,CAAC,CAAC;AACb,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,EAAW;IAC3C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAQ,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG;gBACd,CAAC,wBAAwB,EAAE,aAAa,EAAE,OAAO,CAAC;gBAClD,CAAC,yBAAyB,EAAE,cAAc,EAAE,QAAQ,CAAC;gBACrD,CAAC,mBAAmB,EAAE,SAAS,EAAE,OAAO,CAAC;gBACzC,CAAC,qBAAqB,EAAE,WAAW,EAAE,QAAQ,CAAC;aAC/C,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO;gBAAE,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/G,CAAC;QACD,MAAM,EAAE,CAAC,OAAO,CAAC,oOAAoO,CAAC,CAAC;QACvP,MAAM,EAAE,CAAC,OAAO,CAAC,gEAAgE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7H,CAAC;IAAC,MAAM,CAAC,CAAC,CAAC;AACb,CAAC;AAED,iDAAiD;AAGjD,gEAAgE;AAEhE,SAAS,cAAc,CAAC,IAAY,EAAE,aAAqB;IACzD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAQ,EAAE,aAAqB,EAAE,QAAgB,CAAC;IAC9E,IAAI,CAAC,GAAG,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,CAAC,CAAC;IACjC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACvE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAClE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAAE,KAAK,IAAI,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACtG,CAAC;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC3D,KAAK,IAAI,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;gBAC5C,KAAK,IAAI,oBAAoB,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,CAAC;IACX,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAY,EAAE,aAAqB;IAC3D,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC/F,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,KAAU,EAAE,EAAE;YACxD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAClF,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;YAChG,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACjC,OAAO,GAAG,GAAG,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1J,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAe;IAC5C,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAe,EAAE,QAAa,EAAE,KAAW;IAC7E,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,aAAa,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;QACrC,QAAQ,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,MAAM,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,QAAe,EAAE,QAAa;IAClE,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;QAC/G,IAAI,CAAC,WAAW;YAAE,OAAO,QAAQ,CAAC;QAClC,MAAM,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC;QAC9C,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9H,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;YAC/B,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,aAAa,0CAA0C,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACpK,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,CAAC;IACX,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAe,EAAE,QAAa,EAAE,KAAU,EAAE,aAAqB;IAC/F,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;IAC3C,IAAI,QAAQ,CAAC,MAAM,IAAI,UAAU;QAAE,OAAO,QAAQ,CAAC;IACnD,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IACpE,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC;YACnD,KAAK,EAAE,QAAQ,EAAE;YACjB,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;YACpF,MAAM,EAAE,2BAA2B;SACpC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,sBAAsB,CAAC;QACnF,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,0BAA0B,KAAK,CAAC,aAAa,iBAAiB,KAAK,CAAC,eAAe,iBAAiB,KAAK,CAAC,eAAe,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7J,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oCAAoC,SAAS,GAAG,WAAW,EAAE,EAAE,EAAE,GAAG,cAAc,CAAC,CAAC;IACvH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}