@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.
- package/README.md +7 -15
- package/SENTINEL.md +4 -7
- package/dist/cli-new/components/App.js +16 -63
- package/dist/cli-new/components/App.js.map +1 -1
- package/dist/cli-new/components/ApprovalDialog.js +2 -1
- package/dist/cli-new/components/ApprovalDialog.js.map +1 -1
- package/dist/cli-new/components/Banner.js +4 -3
- package/dist/cli-new/components/Banner.js.map +1 -1
- package/dist/cli-new/components/ChatArea.js +6 -7
- package/dist/cli-new/components/ChatArea.js.map +1 -1
- package/dist/cli-new/components/Header.js +13 -7
- package/dist/cli-new/components/Header.js.map +1 -1
- package/dist/cli-new/components/InputArea.js +73 -12
- package/dist/cli-new/components/InputArea.js.map +1 -1
- package/dist/cli-new/components/MessageBubble.js +26 -18
- package/dist/cli-new/components/MessageBubble.js.map +1 -1
- package/dist/cli-new/components/SessionSwitcher.js +4 -7
- package/dist/cli-new/components/SessionSwitcher.js.map +1 -1
- package/dist/cli-new/components/SetupWizard.js +80 -257
- package/dist/cli-new/components/SetupWizard.js.map +1 -1
- package/dist/cli-new/components/ToolCallDisplay.js +20 -5
- package/dist/cli-new/components/ToolCallDisplay.js.map +1 -1
- package/dist/cli-new/components/WizardSteps.js +22 -0
- package/dist/cli-new/components/WizardSteps.js.map +1 -0
- package/dist/cli-new/constants/SetupConstants.js +42 -0
- package/dist/cli-new/constants/SetupConstants.js.map +1 -0
- package/dist/cli-new/hooks/useGit.js +19 -62
- package/dist/cli-new/hooks/useGit.js.map +1 -1
- package/dist/cli-new/hooks/useMarie.js +26 -18
- package/dist/cli-new/hooks/useMarie.js.map +1 -1
- package/dist/cli-new/hooks/useSessions.js +1 -1
- package/dist/cli-new/hooks/useSessions.js.map +1 -1
- package/dist/cli-new/hooks/useSetupWizard.js +88 -0
- package/dist/cli-new/hooks/useSetupWizard.js.map +1 -0
- package/dist/cli-new/hooks/useUpdateCheck.js +4 -3
- package/dist/cli-new/hooks/useUpdateCheck.js.map +1 -1
- package/dist/cli-new/index.js +2 -4
- package/dist/cli-new/index.js.map +1 -1
- package/dist/cli-new/services/CommandService.js +104 -0
- package/dist/cli-new/services/CommandService.js.map +1 -0
- package/dist/cli-new/services/GitService.js +91 -0
- package/dist/cli-new/services/GitService.js.map +1 -0
- package/dist/cli-new/services/MarieService.js +77 -0
- package/dist/cli-new/services/MarieService.js.map +1 -0
- package/dist/cli-new/services/auth-server.js +128 -0
- package/dist/cli-new/services/auth-server.js.map +1 -0
- package/dist/cli-new/utils/version.js +24 -0
- package/dist/cli-new/utils/version.js.map +1 -0
- package/dist/monolith/adapters/CliMarieAdapter.js +12 -11
- package/dist/monolith/adapters/CliMarieAdapter.js.map +1 -1
- package/dist/monolith/cli/CliFileSystemPort.js +17 -3
- package/dist/monolith/cli/CliFileSystemPort.js.map +1 -1
- package/dist/monolith/cli/MarieToolDefinitionsCLI.js +39 -31
- package/dist/monolith/cli/MarieToolDefinitionsCLI.js.map +1 -1
- package/dist/monolith/cli/index.js +5 -20
- package/dist/monolith/cli/index.js.map +1 -1
- package/dist/monolith/cli/services/JoyAutomationServiceCLI.js +15 -62
- package/dist/monolith/cli/services/JoyAutomationServiceCLI.js.map +1 -1
- package/dist/monolith/cli/storage.js +142 -72
- package/dist/monolith/cli/storage.js.map +1 -1
- package/dist/monolith/domain/joy/RitualService.js +44 -46
- package/dist/monolith/domain/joy/RitualService.js.map +1 -1
- package/dist/monolith/domain/marie/MarieCortex.js +148 -0
- package/dist/monolith/domain/marie/MarieCortex.js.map +1 -0
- package/dist/monolith/domain/marie/PersonalityRenderer.js +97 -0
- package/dist/monolith/domain/marie/PersonalityRenderer.js.map +1 -0
- package/dist/monolith/infrastructure/Configuration.js +68 -0
- package/dist/monolith/infrastructure/Configuration.js.map +1 -0
- package/dist/monolith/infrastructure/CoreInfrastructure.js +204 -0
- package/dist/monolith/infrastructure/CoreInfrastructure.js.map +1 -0
- package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js +3 -3
- package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js.map +1 -1
- package/dist/monolith/infrastructure/ai/context/ContextArchiveService.js +6 -27
- package/dist/monolith/infrastructure/ai/context/ContextArchiveService.js.map +1 -1
- package/dist/monolith/infrastructure/ai/context/ContextManager.js +142 -131
- package/dist/monolith/infrastructure/ai/context/ContextManager.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieEngine.js +115 -1077
- package/dist/monolith/infrastructure/ai/core/MarieEngine.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieEventDispatcher.js +1 -37
- package/dist/monolith/infrastructure/ai/core/MarieEventDispatcher.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieLockManager.js +6 -1
- package/dist/monolith/infrastructure/ai/core/MarieLockManager.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js +172 -221
- package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieSanitizer.js +292 -141
- package/dist/monolith/infrastructure/ai/core/MarieSanitizer.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js +331 -614
- package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieVitality.js +238 -0
- package/dist/monolith/infrastructure/ai/core/MarieVitality.js.map +1 -0
- package/dist/monolith/infrastructure/ai/core/SessionLogService.js +9 -2
- package/dist/monolith/infrastructure/ai/core/SessionLogService.js.map +1 -1
- package/dist/monolith/infrastructure/ai/providers/AIProvider.js +402 -1
- package/dist/monolith/infrastructure/ai/providers/AIProvider.js.map +1 -1
- package/dist/monolith/infrastructure/ai/providers/DreamBeesProvider.js +114 -0
- package/dist/monolith/infrastructure/ai/providers/DreamBeesProvider.js.map +1 -0
- package/dist/monolith/infrastructure/ai/providers/OpenRouterProvider.js +426 -392
- package/dist/monolith/infrastructure/ai/providers/OpenRouterProvider.js.map +1 -1
- package/dist/monolith/infrastructure/ai/providers/OpenRouterStreamParser.js +235 -241
- package/dist/monolith/infrastructure/ai/providers/OpenRouterStreamParser.js.map +1 -1
- package/dist/monolith/infrastructure/ai/workerAi.js +185 -0
- package/dist/monolith/infrastructure/ai/workerAi.js.map +1 -0
- package/dist/monolith/infrastructure/config/ConfigService.js +216 -503
- package/dist/monolith/infrastructure/config/ConfigService.js.map +1 -1
- package/dist/monolith/infrastructure/joy/CognitiveRituals.js +4 -165
- package/dist/monolith/infrastructure/joy/CognitiveRituals.js.map +1 -1
- package/dist/monolith/infrastructure/joy/JoyTools.js +14 -47
- package/dist/monolith/infrastructure/joy/JoyTools.js.map +1 -1
- package/dist/monolith/infrastructure/persistence/MarieMindAutonomics.js +4 -0
- package/dist/monolith/infrastructure/persistence/MarieMindAutonomics.js.map +1 -0
- package/dist/monolith/infrastructure/persistence/MarieMindEngine.js +11 -0
- package/dist/monolith/infrastructure/persistence/MarieMindEngine.js.map +1 -0
- package/dist/monolith/infrastructure/persistence/NoormmeAutonomics.js +123 -106
- package/dist/monolith/infrastructure/persistence/NoormmeAutonomics.js.map +1 -1
- package/dist/monolith/infrastructure/persistence/NoormmeEngine.js +508 -63
- package/dist/monolith/infrastructure/persistence/NoormmeEngine.js.map +1 -1
- package/dist/monolith/infrastructure/persistence/NoormmeSchema.js +68 -39
- package/dist/monolith/infrastructure/persistence/NoormmeSchema.js.map +1 -1
- package/dist/monolith/infrastructure/persistence/NoormmeSeeder.js +80 -67
- package/dist/monolith/infrastructure/persistence/NoormmeSeeder.js.map +1 -1
- package/dist/monolith/infrastructure/persistence/NoormmeTools.js +122 -75
- package/dist/monolith/infrastructure/persistence/NoormmeTools.js.map +1 -1
- package/dist/monolith/infrastructure/services/MarieMemoryStore.js +133 -134
- package/dist/monolith/infrastructure/services/MarieMemoryStore.js.map +1 -1
- package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js +6 -30
- package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js.map +1 -1
- package/dist/monolith/infrastructure/tools/PureStreamParser.js +68 -80
- package/dist/monolith/infrastructure/tools/PureStreamParser.js.map +1 -1
- package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js +12 -11
- package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js.map +1 -1
- package/dist/monolith/infrastructure/tools/SovereignTools.js +326 -0
- package/dist/monolith/infrastructure/tools/SovereignTools.js.map +1 -0
- package/dist/monolith/infrastructure/tools/ToolRegistry.js +45 -26
- package/dist/monolith/infrastructure/tools/ToolRegistry.js.map +1 -1
- package/dist/monolith/infrastructure/tools/definitions/AnalysisTools.js +39 -153
- package/dist/monolith/infrastructure/tools/definitions/AnalysisTools.js.map +1 -1
- package/dist/monolith/infrastructure/tools/definitions/AutomationTools.js +31 -46
- package/dist/monolith/infrastructure/tools/definitions/AutomationTools.js.map +1 -1
- package/dist/monolith/infrastructure/tools/definitions/ContextTools.js +41 -13
- package/dist/monolith/infrastructure/tools/definitions/ContextTools.js.map +1 -1
- package/dist/monolith/infrastructure/tools/definitions/CoreTools.js +10 -14
- package/dist/monolith/infrastructure/tools/definitions/CoreTools.js.map +1 -1
- package/dist/monolith/infrastructure/tools/definitions/DiagnosticTools.js +39 -70
- package/dist/monolith/infrastructure/tools/definitions/DiagnosticTools.js.map +1 -1
- package/dist/monolith/infrastructure/tools/definitions/NavigationTools.js +30 -181
- package/dist/monolith/infrastructure/tools/definitions/NavigationTools.js.map +1 -1
- package/dist/monolith/infrastructure/tools/definitions/PlanningTools.js +12 -9
- package/dist/monolith/infrastructure/tools/definitions/PlanningTools.js.map +1 -1
- package/dist/monolith/plumbing/Plumbing.js +238 -0
- package/dist/monolith/plumbing/Plumbing.js.map +1 -0
- package/dist/monolith/plumbing/PlumbingAnalysis.js +109 -0
- package/dist/monolith/plumbing/PlumbingAnalysis.js.map +1 -0
- package/dist/monolith/plumbing/PlumbingSystem.js +169 -0
- package/dist/monolith/plumbing/PlumbingSystem.js.map +1 -0
- package/dist/monolith/plumbing/analysis/ComplexityService.js +30 -34
- package/dist/monolith/plumbing/analysis/ComplexityService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/DependencyService.js +55 -44
- package/dist/monolith/plumbing/analysis/DependencyService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/DiscoveryService.js +40 -42
- package/dist/monolith/plumbing/analysis/DiscoveryService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/JoyMapService.js +52 -56
- package/dist/monolith/plumbing/analysis/JoyMapService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/LintService.js +118 -118
- package/dist/monolith/plumbing/analysis/LintService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/MarieSentinelService.js +278 -268
- package/dist/monolith/plumbing/analysis/MarieSentinelService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/QualityGuardrailService.js +116 -114
- package/dist/monolith/plumbing/analysis/QualityGuardrailService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/SurgicalMender.js +57 -59
- package/dist/monolith/plumbing/analysis/SurgicalMender.js.map +1 -1
- package/dist/monolith/plumbing/analysis/TestService.js +89 -89
- package/dist/monolith/plumbing/analysis/TestService.js.map +1 -1
- package/dist/monolith/plumbing/filesystem/FileService.js +123 -195
- package/dist/monolith/plumbing/filesystem/FileService.js.map +1 -1
- package/dist/monolith/plumbing/filesystem/PathResolver.js +7 -8
- package/dist/monolith/plumbing/filesystem/PathResolver.js.map +1 -1
- package/dist/monolith/plumbing/git/GitService.js +4 -4
- package/dist/monolith/plumbing/git/GitService.js.map +1 -1
- package/dist/monolith/plumbing/lsp/SymbolService.js +5 -34
- package/dist/monolith/plumbing/lsp/SymbolService.js.map +1 -1
- package/dist/monolith/plumbing/terminal/ProcessRegistry.js +20 -22
- package/dist/monolith/plumbing/terminal/ProcessRegistry.js.map +1 -1
- package/dist/monolith/plumbing/terminal/TerminalService.js +127 -141
- package/dist/monolith/plumbing/terminal/TerminalService.js.map +1 -1
- package/dist/monolith/plumbing/utils/EnvironmentUtils.js +3 -23
- package/dist/monolith/plumbing/utils/EnvironmentUtils.js.map +1 -1
- package/dist/monolith/plumbing/utils/JsonUtils.js +252 -311
- package/dist/monolith/plumbing/utils/JsonUtils.js.map +1 -1
- package/dist/monolith/plumbing/utils/PlumbingCore.js +549 -0
- package/dist/monolith/plumbing/utils/PlumbingCore.js.map +1 -0
- package/dist/monolith/plumbing/utils/PrefixTree.js +61 -114
- package/dist/monolith/plumbing/utils/PrefixTree.js.map +1 -1
- package/dist/monolith/plumbing/utils/StreamTagDetector.js +89 -127
- package/dist/monolith/plumbing/utils/StreamTagDetector.js.map +1 -1
- package/dist/monolith/plumbing/utils/StringUtils.js +87 -89
- package/dist/monolith/plumbing/utils/StringUtils.js.map +1 -1
- package/dist/monolith/runtime/MarieRuntime.js +76 -499
- package/dist/monolith/runtime/MarieRuntime.js.map +1 -1
- package/dist/monolith/runtime/RuntimeAdapterBase.js +1 -1
- package/dist/monolith/runtime/RuntimeAdapterBase.js.map +1 -1
- package/dist/monolith/runtime/providerFactory.js +1 -7
- package/dist/monolith/runtime/providerFactory.js.map +1 -1
- package/dist/monolith/services/HealthService.js +29 -32
- package/dist/monolith/services/HealthService.js.map +1 -1
- package/dist/monolith/services/JoyAutomationService.js +58 -95
- package/dist/monolith/services/JoyAutomationService.js.map +1 -1
- package/dist/monolith/services/MarieAutomationService.js +59 -0
- package/dist/monolith/services/MarieAutomationService.js.map +1 -0
- package/dist/monolith/services/MarieGhostService.js +46 -173
- package/dist/monolith/services/MarieGhostService.js.map +1 -1
- package/dist/monolith/services/MarieServices.js +102 -0
- package/dist/monolith/services/MarieServices.js.map +1 -0
- package/dist/monolith/services/MarieTypes.js +2 -0
- package/dist/monolith/services/MarieTypes.js.map +1 -0
- package/dist/monolith/services/UpdateService.js +47 -49
- package/dist/monolith/services/UpdateService.js.map +1 -1
- package/dist/prompts.js +11 -5
- package/dist/prompts.js.map +1 -1
- package/dist/test_prefix_tree.js +9 -9
- package/dist/test_prefix_tree.js.map +1 -1
- package/package.json +18 -89
- package/run_test.js +5 -0
- package/.marie_visual_verify_1771225696548/progress_bar_check.txt +0 -1
- package/dist/extension.cjs +0 -1155
- package/dist/extension.js +0 -474
- package/dist/extension.js.map +0 -1
- package/dist/monolith/adapters/VscodeMarieAdapter.js +0 -81
- package/dist/monolith/adapters/VscodeMarieAdapter.js.map +0 -1
- package/dist/monolith/infrastructure/ai/core/GhostPort.js +0 -2
- package/dist/monolith/infrastructure/ai/core/GhostPort.js.map +0 -1
- package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js +0 -33
- package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js.map +0 -1
- package/dist/monolith/infrastructure/ai/providers/AnthropicProvider.js +0 -154
- package/dist/monolith/infrastructure/ai/providers/AnthropicProvider.js.map +0 -1
- package/dist/monolith/infrastructure/ai/providers/CerebrasProvider.js +0 -214
- package/dist/monolith/infrastructure/ai/providers/CerebrasProvider.js.map +0 -1
- package/dist/monolith/plumbing/ui/DecorationService.js +0 -54
- package/dist/monolith/plumbing/ui/DecorationService.js.map +0 -1
- package/dist/monolith/services/JoyLogService.js +0 -48
- package/dist/monolith/services/JoyLogService.js.map +0 -1
- package/dist/monolith/services/JoyService.js +0 -209
- package/dist/monolith/services/JoyService.js.map +0 -1
- package/dist/monolith/services/MarieSCMProvider.js +0 -41
- package/dist/monolith/services/MarieSCMProvider.js.map +0 -1
- package/dist/webview-ui/main.css +0 -1
- package/dist/webview-ui/main.js +0 -108
- package/lint_output.txt +0 -705
- package/lint_output_v2.txt +0 -711
- package/test-mind-p6.sqlite +0 -0
- package/test-mind-p6.sqlite-shm +0 -0
- package/test-mind-p6.sqlite-wal +0 -0
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Manages core table structures and migrations for Marie.
|
|
3
3
|
*/
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
await db.execute(`
|
|
4
|
+
export async function initializeSchema(db) {
|
|
5
|
+
// console.log("[NoormmeSchema] Initializing Core Tables...");
|
|
6
|
+
// 1. Core Agentic Tables (Snake Case)
|
|
7
|
+
await db.execute(`
|
|
9
8
|
CREATE TABLE IF NOT EXISTS agent_rules (
|
|
10
9
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
11
10
|
table_name TEXT NOT NULL,
|
|
@@ -19,7 +18,7 @@ export class NoormmeSchema {
|
|
|
19
18
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
20
19
|
)
|
|
21
20
|
`);
|
|
22
|
-
|
|
21
|
+
await db.execute(`
|
|
23
22
|
CREATE TABLE IF NOT EXISTS agent_resource_usage (
|
|
24
23
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
25
24
|
session_id TEXT,
|
|
@@ -33,7 +32,7 @@ export class NoormmeSchema {
|
|
|
33
32
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
34
33
|
)
|
|
35
34
|
`);
|
|
36
|
-
|
|
35
|
+
await db.execute(`
|
|
37
36
|
CREATE TABLE IF NOT EXISTS agent_capabilities (
|
|
38
37
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
39
38
|
name TEXT NOT NULL,
|
|
@@ -46,7 +45,7 @@ export class NoormmeSchema {
|
|
|
46
45
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
47
46
|
)
|
|
48
47
|
`);
|
|
49
|
-
|
|
48
|
+
await db.execute(`
|
|
50
49
|
CREATE TABLE IF NOT EXISTS agent_goals (
|
|
51
50
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
52
51
|
session_id TEXT,
|
|
@@ -59,7 +58,7 @@ export class NoormmeSchema {
|
|
|
59
58
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
60
59
|
)
|
|
61
60
|
`);
|
|
62
|
-
|
|
61
|
+
await db.execute(`
|
|
63
62
|
CREATE TABLE IF NOT EXISTS agent_logic_probes (
|
|
64
63
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
65
64
|
name TEXT NOT NULL UNIQUE,
|
|
@@ -70,11 +69,11 @@ export class NoormmeSchema {
|
|
|
70
69
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
71
70
|
)
|
|
72
71
|
`);
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
// 2. Initialize NOORMME Agentic Tables (Cortex, Memory, etc.)
|
|
73
|
+
await db.agent.schema.initializeSchema();
|
|
74
|
+
await db.agent.cortex.evolution.setupTelemetryTables();
|
|
75
|
+
// 3. User Interaction Tables
|
|
76
|
+
await db.execute(`
|
|
78
77
|
CREATE TABLE IF NOT EXISTS sessions (
|
|
79
78
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
80
79
|
sessionId TEXT,
|
|
@@ -84,7 +83,7 @@ export class NoormmeSchema {
|
|
|
84
83
|
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
85
84
|
)
|
|
86
85
|
`);
|
|
87
|
-
|
|
86
|
+
await db.execute(`
|
|
88
87
|
CREATE TABLE IF NOT EXISTS session_metadata (
|
|
89
88
|
id TEXT PRIMARY KEY,
|
|
90
89
|
title TEXT,
|
|
@@ -92,12 +91,12 @@ export class NoormmeSchema {
|
|
|
92
91
|
isPinned BOOLEAN
|
|
93
92
|
)
|
|
94
93
|
`);
|
|
95
|
-
|
|
94
|
+
await db.execute(`
|
|
96
95
|
CREATE TABLE IF NOT EXISTS current_session (
|
|
97
96
|
id TEXT PRIMARY KEY
|
|
98
97
|
)
|
|
99
98
|
`);
|
|
100
|
-
|
|
99
|
+
await db.execute(`
|
|
101
100
|
CREATE TABLE IF NOT EXISTS anchors (
|
|
102
101
|
id TEXT PRIMARY KEY,
|
|
103
102
|
label TEXT,
|
|
@@ -106,13 +105,13 @@ export class NoormmeSchema {
|
|
|
106
105
|
timestamp BIGINT
|
|
107
106
|
)
|
|
108
107
|
`);
|
|
109
|
-
|
|
108
|
+
await db.execute(`
|
|
110
109
|
CREATE TABLE IF NOT EXISTS telemetry (
|
|
111
110
|
key TEXT PRIMARY KEY,
|
|
112
111
|
value TEXT
|
|
113
112
|
)
|
|
114
113
|
`);
|
|
115
|
-
|
|
114
|
+
await db.execute(`
|
|
116
115
|
CREATE TABLE IF NOT EXISTS agent_post_mortems (
|
|
117
116
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
118
117
|
session_id TEXT,
|
|
@@ -125,26 +124,56 @@ export class NoormmeSchema {
|
|
|
125
124
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
126
125
|
)
|
|
127
126
|
`);
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
127
|
+
await db.refreshSchema();
|
|
128
|
+
// 4. Migrations & Patches
|
|
129
|
+
await applyPatches(db);
|
|
130
|
+
// Refresh schema again after patches so Kysely knows about new columns
|
|
131
|
+
await db.refreshSchema();
|
|
132
|
+
}
|
|
133
|
+
async function applyPatches(db) {
|
|
134
|
+
// Ensure agent_policies has an 'is_enabled' column
|
|
135
|
+
try {
|
|
136
|
+
await db.execute("ALTER TABLE agent_policies ADD COLUMN is_enabled INTEGER DEFAULT 1");
|
|
137
|
+
}
|
|
138
|
+
catch (e) { }
|
|
139
|
+
// Ensure agent_personas has a 'status' column
|
|
140
|
+
try {
|
|
141
|
+
await db.execute("ALTER TABLE agent_personas ADD COLUMN status TEXT DEFAULT 'active'");
|
|
142
|
+
}
|
|
143
|
+
catch (e) { }
|
|
144
|
+
// Ensure agent_actions has an 'error' column
|
|
145
|
+
try {
|
|
146
|
+
await db.execute("ALTER TABLE agent_actions ADD COLUMN error TEXT");
|
|
147
|
+
}
|
|
148
|
+
catch (e) { }
|
|
149
|
+
// Ensure agent_session_evolution has 'metadata' column (required by CognitiveSynthesizer)
|
|
150
|
+
try {
|
|
151
|
+
await db.execute("ALTER TABLE agent_session_evolution ADD COLUMN metadata TEXT");
|
|
152
|
+
}
|
|
153
|
+
catch (e) { }
|
|
154
|
+
// Ensure agent_telemetry_events has 'metadata' column (required by TelemetryOrchestrator)
|
|
155
|
+
try {
|
|
156
|
+
await db.execute("ALTER TABLE agent_telemetry_events ADD COLUMN metadata TEXT");
|
|
157
|
+
}
|
|
158
|
+
catch (e) { }
|
|
159
|
+
// Ensure agent_knowledge_base has 'status' column (required by CuriosityEngine)
|
|
160
|
+
try {
|
|
161
|
+
await db.execute("ALTER TABLE agent_knowledge_base ADD COLUMN status TEXT DEFAULT 'proposed'");
|
|
162
|
+
}
|
|
163
|
+
catch (e) { }
|
|
164
|
+
// Ensure agent_rituals has 'locked_until' column (required by RitualOrchestrator)
|
|
165
|
+
try {
|
|
166
|
+
await db.execute("ALTER TABLE agent_rituals ADD COLUMN locked_until TIMESTAMP");
|
|
167
|
+
}
|
|
168
|
+
catch (e) { }
|
|
169
|
+
// Ensure agent_actions has 'input_summary' and 'output_summary' columns
|
|
170
|
+
try {
|
|
171
|
+
await db.execute("ALTER TABLE agent_actions ADD COLUMN input_summary TEXT");
|
|
131
172
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
await db.execute("ALTER TABLE agent_policies ADD COLUMN is_enabled INTEGER DEFAULT 1");
|
|
136
|
-
}
|
|
137
|
-
catch (e) { }
|
|
138
|
-
// Ensure agent_personas has a 'status' column
|
|
139
|
-
try {
|
|
140
|
-
await db.execute("ALTER TABLE agent_personas ADD COLUMN status TEXT DEFAULT 'active'");
|
|
141
|
-
}
|
|
142
|
-
catch (e) { }
|
|
143
|
-
// Ensure agent_actions has an 'error' column
|
|
144
|
-
try {
|
|
145
|
-
await db.execute("ALTER TABLE agent_actions ADD COLUMN error TEXT");
|
|
146
|
-
}
|
|
147
|
-
catch (e) { }
|
|
173
|
+
catch (e) { }
|
|
174
|
+
try {
|
|
175
|
+
await db.execute("ALTER TABLE agent_actions ADD COLUMN output_summary TEXT");
|
|
148
176
|
}
|
|
177
|
+
catch (e) { }
|
|
149
178
|
}
|
|
150
179
|
//# sourceMappingURL=NoormmeSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoormmeSchema.js","sourceRoot":"","sources":["../../../../src/monolith/infrastructure/persistence/NoormmeSchema.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"NoormmeSchema.js","sourceRoot":"","sources":["../../../../src/monolith/infrastructure/persistence/NoormmeSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Handles initial data seeding and default policies for Noormme DB.
|
|
3
3
|
*/
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
await db.execute(`
|
|
4
|
+
export async function seedDefaults(db) {
|
|
5
|
+
try {
|
|
6
|
+
// console.log("[NoormmeSeeder] Checking for initial data...");
|
|
7
|
+
// 1. Governance Policies - ONLY seed if TRULY empty
|
|
8
|
+
const allPolicies = await db.agent.cortex.policies.getActivePolicies();
|
|
9
|
+
if (allPolicies.length === 0) {
|
|
10
|
+
// console.log("[NoormmeSeeder] Seeding baseline governance policies...");
|
|
11
|
+
await db.execute(`
|
|
13
12
|
INSERT INTO agent_policies (name, type, definition, is_enabled, created_at, updated_at)
|
|
14
13
|
VALUES
|
|
15
14
|
('hourly_budget', 'budget', '{"threshold": 1.0}', 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
|
@@ -17,65 +16,79 @@ export class NoormmeSeeder {
|
|
|
17
16
|
('min_success_rate', 'safety', '{"threshold": 0.6}', 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
|
|
18
17
|
('reliability_floor', 'integrity', '{"threshold": 0.7}', 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
|
19
18
|
`);
|
|
20
|
-
}
|
|
21
|
-
// 2. Personas - ONLY seed if TRULY empty to avoid overwriting user personas
|
|
22
|
-
const allPersonas = await db.agent.cortex.personas.listPersonas();
|
|
23
|
-
if (allPersonas.length === 0) {
|
|
24
|
-
console.log("[NoormmeSeeder] Initializing Sovereign Marie persona...");
|
|
25
|
-
await db.agent.cortex.personas.upsertPersona("Marie-Base", {
|
|
26
|
-
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.",
|
|
27
|
-
policies: ["concise_output", "accuracy_first", "shounen_momentum", "entropy_ratchet"],
|
|
28
|
-
metadata: {
|
|
29
|
-
is_base: true,
|
|
30
|
-
version: "2.0.0",
|
|
31
|
-
complexity: "high",
|
|
32
|
-
alignment: "sovereign"
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
// 3. Logic Probes
|
|
37
|
-
const probeCountResult = await db.execute("SELECT COUNT(*) as count FROM agent_logic_probes");
|
|
38
|
-
const probeCount = probeCountResult.rows?.[0]?.count ?? 0;
|
|
39
|
-
if (probeCount === 0) {
|
|
40
|
-
console.log("[NoormmeSeeder] Seeding logic probes...");
|
|
41
|
-
await db.agent.cortex.tests.registerProbe("Schema Consistency", "audit:check_schema_consistency");
|
|
42
|
-
await db.agent.cortex.tests.registerProbe("Memory Integrity", "audit:check_memory_integrity");
|
|
43
|
-
await db.agent.cortex.tests.registerProbe("Session Coherence", "audit:check_session_coherence");
|
|
44
|
-
await db.agent.cortex.tests.registerProbe("Data Integrity", "audit:check_data_integrity");
|
|
45
|
-
await db.agent.cortex.tests.registerProbe("Performance Drift", "audit:check_performance_drift");
|
|
46
|
-
}
|
|
47
|
-
// 4. Global Policies - ONLY define if missing
|
|
48
|
-
console.log("[NoormmeSeeder] Ensuring global safety policies...");
|
|
49
|
-
const enforcer = db.agent.cortex.policies;
|
|
50
|
-
const existingPolicies = await enforcer.getActivePolicies();
|
|
51
|
-
const existingNames = existingPolicies.map(p => p.name);
|
|
52
|
-
if (!existingNames.includes("Global Turn Budget")) {
|
|
53
|
-
await enforcer.definePolicy("Global Turn Budget", "performance", { limit: 0.05, metricName: "turn_cost", period: "daily" });
|
|
54
|
-
}
|
|
55
|
-
if (!existingNames.includes("Shounen Momentum")) {
|
|
56
|
-
await enforcer.definePolicy("Shounen Momentum", "performance", {
|
|
57
|
-
max_wait_ms: 5000,
|
|
58
|
-
spirit_pressure_gravity: true,
|
|
59
|
-
description: "Ensures rapid, high-intensity execution rhythm."
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
if (!existingNames.includes("Entropy Ratchet")) {
|
|
63
|
-
await enforcer.definePolicy("Entropy Ratchet", "safety", {
|
|
64
|
-
max_entropy_increase: 0,
|
|
65
|
-
strict_mode: true,
|
|
66
|
-
description: "Prevents technical debt from rising across any strike."
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
if (!existingNames.includes("Root Directory Protection")) {
|
|
70
|
-
await enforcer.definePolicy("Root Directory Protection", "safety", { pattern: "(etc|bin|usr|var|/$)", mustMatch: false });
|
|
71
|
-
}
|
|
72
|
-
if (!existingNames.includes("Privacy Shield")) {
|
|
73
|
-
await enforcer.definePolicy("Privacy Shield", "privacy", { pattern: "(api[_-]?key|secret|password|token)", mustMatch: false });
|
|
74
|
-
}
|
|
75
19
|
}
|
|
76
|
-
|
|
77
|
-
|
|
20
|
+
// 2. Personas - ONLY seed if TRULY empty to avoid overwriting user personas
|
|
21
|
+
const allPersonas = await db.agent.cortex.personas.listPersonas();
|
|
22
|
+
if (allPersonas.length === 0) {
|
|
23
|
+
// console.log("[NoormmeSeeder] Initializing Sovereign Marie persona...");
|
|
24
|
+
await db.agent.cortex.personas.upsertPersona("Marie-Base", {
|
|
25
|
+
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.",
|
|
26
|
+
policies: [
|
|
27
|
+
"concise_output",
|
|
28
|
+
"accuracy_first",
|
|
29
|
+
"shounen_momentum",
|
|
30
|
+
"entropy_ratchet",
|
|
31
|
+
],
|
|
32
|
+
metadata: {
|
|
33
|
+
is_base: true,
|
|
34
|
+
version: "2.0.0",
|
|
35
|
+
complexity: "high",
|
|
36
|
+
alignment: "sovereign",
|
|
37
|
+
},
|
|
38
|
+
});
|
|
78
39
|
}
|
|
40
|
+
// 3. Logic Probes
|
|
41
|
+
const probeCountResult = (await db.execute("SELECT COUNT(*) as count FROM agent_logic_probes"));
|
|
42
|
+
const probeCount = probeCountResult.rows?.[0]?.count ?? 0;
|
|
43
|
+
if (probeCount === 0) {
|
|
44
|
+
// console.log("[NoormmeSeeder] Seeding logic probes...");
|
|
45
|
+
await db.agent.cortex.tests.registerProbe("Schema Consistency", "audit:check_schema_consistency");
|
|
46
|
+
await db.agent.cortex.tests.registerProbe("Memory Integrity", "audit:check_memory_integrity");
|
|
47
|
+
await db.agent.cortex.tests.registerProbe("Session Coherence", "audit:check_session_coherence");
|
|
48
|
+
await db.agent.cortex.tests.registerProbe("Data Integrity", "audit:check_data_integrity");
|
|
49
|
+
await db.agent.cortex.tests.registerProbe("Performance Drift", "audit:check_performance_drift");
|
|
50
|
+
}
|
|
51
|
+
// 4. Global Policies - ONLY define if missing
|
|
52
|
+
// console.log("[NoormmeSeeder] Ensuring global safety policies...");
|
|
53
|
+
const enforcer = db.agent.cortex.policies;
|
|
54
|
+
const existingPolicies = await enforcer.getActivePolicies();
|
|
55
|
+
const existingNames = existingPolicies.map((p) => p.name);
|
|
56
|
+
if (!existingNames.includes("Global Turn Budget")) {
|
|
57
|
+
await enforcer.definePolicy("Global Turn Budget", "performance", {
|
|
58
|
+
limit: 0.05,
|
|
59
|
+
metricName: "turn_cost",
|
|
60
|
+
period: "daily",
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (!existingNames.includes("Shounen Momentum")) {
|
|
64
|
+
await enforcer.definePolicy("Shounen Momentum", "performance", {
|
|
65
|
+
max_wait_ms: 5000,
|
|
66
|
+
spirit_pressure_gravity: true,
|
|
67
|
+
description: "Ensures rapid, high-intensity execution rhythm.",
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (!existingNames.includes("Entropy Ratchet")) {
|
|
71
|
+
await enforcer.definePolicy("Entropy Ratchet", "safety", {
|
|
72
|
+
max_entropy_increase: 0,
|
|
73
|
+
strict_mode: true,
|
|
74
|
+
description: "Prevents technical debt from rising across any strike.",
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (!existingNames.includes("Root Directory Protection")) {
|
|
78
|
+
await enforcer.definePolicy("Root Directory Protection", "safety", {
|
|
79
|
+
pattern: "(etc|bin|usr|var|/$)",
|
|
80
|
+
mustMatch: false,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
if (!existingNames.includes("Privacy Shield")) {
|
|
84
|
+
await enforcer.definePolicy("Privacy Shield", "privacy", {
|
|
85
|
+
pattern: "(api[_-]?key|secret|password|token)",
|
|
86
|
+
mustMatch: false,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
91
|
+
// console.warn("[NoormmeSeeder] Failed to seed defaults", e);
|
|
79
92
|
}
|
|
80
93
|
}
|
|
81
94
|
//# sourceMappingURL=NoormmeSeeder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoormmeSeeder.js","sourceRoot":"","sources":["../../../../src/monolith/infrastructure/persistence/NoormmeSeeder.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"NoormmeSeeder.js","sourceRoot":"","sources":["../../../../src/monolith/infrastructure/persistence/NoormmeSeeder.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAW;IAC5C,IAAI,CAAC;QACH,+DAA+D;QAE/D,oDAAoD;QACpD,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,0EAA0E;YAC1E,MAAM,EAAE,CAAC,OAAO,CAAC;;;;;;;SAOd,CAAC,CAAC;QACP,CAAC;QAED,4EAA4E;QAC5E,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,0EAA0E;YAC1E,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,EAAE;gBACzD,IAAI,EAAE,8OAA8O;gBACpP,QAAQ,EAAE;oBACR,gBAAgB;oBAChB,gBAAgB;oBAChB,kBAAkB;oBAClB,iBAAiB;iBAClB;gBACD,QAAQ,EAAE;oBACR,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,MAAM;oBAClB,SAAS,EAAE,WAAW;iBACvB;aACF,CAAC,CAAC;QACL,CAAC;QAED,kBAAkB;QAClB,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CACxC,kDAAkD,CACnD,CAAQ,CAAC;QACV,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAC1D,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACrB,0DAA0D;YAC1D,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CACvC,oBAAoB,EACpB,gCAAgC,CACjC,CAAC;YACF,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CACvC,kBAAkB,EAClB,8BAA8B,CAC/B,CAAC;YACF,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CACvC,mBAAmB,EACnB,+BAA+B,CAChC,CAAC;YACF,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CACvC,gBAAgB,EAChB,4BAA4B,CAC7B,CAAC;YACF,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CACvC,mBAAmB,EACnB,+BAA+B,CAChC,CAAC;QACJ,CAAC;QAED,8CAA8C;QAC9C,qEAAqE;QACrE,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1C,MAAM,gBAAgB,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC5D,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAClD,MAAM,QAAQ,CAAC,YAAY,CAAC,oBAAoB,EAAE,aAAa,EAAE;gBAC/D,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,WAAW;gBACvB,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAChD,MAAM,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE,aAAa,EAAE;gBAC7D,WAAW,EAAE,IAAI;gBACjB,uBAAuB,EAAE,IAAI;gBAC7B,WAAW,EAAE,iDAAiD;aAC/D,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/C,MAAM,QAAQ,CAAC,YAAY,CAAC,iBAAiB,EAAE,QAAQ,EAAE;gBACvD,oBAAoB,EAAE,CAAC;gBACvB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,wDAAwD;aACtE,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;YACzD,MAAM,QAAQ,CAAC,YAAY,CAAC,2BAA2B,EAAE,QAAQ,EAAE;gBACjE,OAAO,EAAE,sBAAsB;gBAC/B,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC9C,MAAM,QAAQ,CAAC,YAAY,CAAC,gBAAgB,EAAE,SAAS,EAAE;gBACvD,OAAO,EAAE,qCAAqC;gBAC9C,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,8DAA8D;IAChE,CAAC;AACH,CAAC"}
|