@mnemosyne_os/forge 1.0.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -34
- package/LICENSE +21 -21
- package/README.md +230 -230
- package/dist/cli.js +667 -76
- package/dist/lib/chronicle.js +105 -0
- package/dist/lib/init-flow.js +139 -0
- package/dist/lib/providers.js +46 -0
- package/dist/lib/sources/antigravity.js +142 -0
- package/dist/lib/sources/index.js +172 -0
- package/dist/lib/vault.js +118 -0
- package/package.json +14 -2
- package/dist/templates/index.template.js +0 -36
- package/src/cli.ts +0 -121
- package/src/templates/.cursorrules +0 -55
- package/src/templates/AGENT_INSTRUCTIONS.md +0 -60
- package/src/templates/index.template.tsx +0 -34
- package/tsconfig.json +0 -15
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CLI_RESONANCE_DIR = exports.DEFAULT_VAULT = void 0;
|
|
7
|
+
exports.resolveChronicleDir = resolveChronicleDir;
|
|
8
|
+
exports.loadVaultConfig = loadVaultConfig;
|
|
9
|
+
exports.saveVaultConfig = saveVaultConfig;
|
|
10
|
+
exports.listChronicles = listChronicles;
|
|
11
|
+
exports.loadCustomModels = loadCustomModels;
|
|
12
|
+
exports.saveCustomModels = saveCustomModels;
|
|
13
|
+
exports.importFromModelCard = importFromModelCard;
|
|
14
|
+
const fs_1 = __importDefault(require("fs"));
|
|
15
|
+
const path_1 = __importDefault(require("path"));
|
|
16
|
+
const os_1 = __importDefault(require("os"));
|
|
17
|
+
// ─────────────────────────────────────────────
|
|
18
|
+
// Vault — MnemoVault path resolution
|
|
19
|
+
// Structure: MnemoVault/<Workspace>/<ResonanceProject>/<IDE>/<Provider>/
|
|
20
|
+
//
|
|
21
|
+
// Workspace = the ecosystem / org (e.g. 'Mnemosyne-OS')
|
|
22
|
+
// ResonanceProject = a feature / component (e.g. 'CLI', 'Dashboard')
|
|
23
|
+
// IDE = the AI assistant (e.g. 'Antigravity', 'Cursor')
|
|
24
|
+
// Provider = the model company (e.g. 'Anthropic', 'GoogleDeepMind')
|
|
25
|
+
// ─────────────────────────────────────────────
|
|
26
|
+
exports.DEFAULT_VAULT = path_1.default.join(os_1.default.homedir(), 'Documents', 'MnemoVault');
|
|
27
|
+
exports.CLI_RESONANCE_DIR = '.cli_resonance';
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the chronicle output directory.
|
|
30
|
+
* New structure: <vault>/<Workspace>/<ResonanceProject>/<IDE>/<Provider>/
|
|
31
|
+
* Legacy fallback (no workspace/project): <vault>/.cli_resonance/<IDE>/<Provider>/
|
|
32
|
+
*/
|
|
33
|
+
function resolveChronicleDir(config) {
|
|
34
|
+
let dir;
|
|
35
|
+
if (config.workspace && config.resonanceProject) {
|
|
36
|
+
// Full Resonance Project structure
|
|
37
|
+
dir = path_1.default.join(config.vaultPath, config.workspace, config.resonanceProject, config.ide, config.provider);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// Legacy: .cli_resonance/IDE/Provider
|
|
41
|
+
dir = path_1.default.join(config.vaultPath, exports.CLI_RESONANCE_DIR, config.ide, config.provider);
|
|
42
|
+
}
|
|
43
|
+
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
44
|
+
return dir;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Load config from .mnemo-config.json in the .cli_resonance/ root.
|
|
48
|
+
* Returns null if not initialized.
|
|
49
|
+
*/
|
|
50
|
+
function loadVaultConfig() {
|
|
51
|
+
const configPath = path_1.default.join(exports.DEFAULT_VAULT, exports.CLI_RESONANCE_DIR, '.mnemo-config.json');
|
|
52
|
+
if (!fs_1.default.existsSync(configPath))
|
|
53
|
+
return null;
|
|
54
|
+
try {
|
|
55
|
+
return JSON.parse(fs_1.default.readFileSync(configPath, 'utf8'));
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Save config to .mnemo-config.json.
|
|
63
|
+
*/
|
|
64
|
+
function saveVaultConfig(config) {
|
|
65
|
+
const dir = path_1.default.join(config.vaultPath, exports.CLI_RESONANCE_DIR);
|
|
66
|
+
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
67
|
+
const configPath = path_1.default.join(dir, '.mnemo-config.json');
|
|
68
|
+
fs_1.default.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf8');
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* List all chronicles for the current IDE/Provider.
|
|
72
|
+
*/
|
|
73
|
+
function listChronicles(config) {
|
|
74
|
+
const dir = resolveChronicleDir(config);
|
|
75
|
+
if (!fs_1.default.existsSync(dir))
|
|
76
|
+
return [];
|
|
77
|
+
return fs_1.default.readdirSync(dir)
|
|
78
|
+
.filter(f => f.endsWith('.md'))
|
|
79
|
+
.sort()
|
|
80
|
+
.reverse(); // most recent first
|
|
81
|
+
}
|
|
82
|
+
const DEFAULT_MODELS_PATH = (vaultPath) => path_1.default.join(vaultPath, exports.CLI_RESONANCE_DIR, 'models.json');
|
|
83
|
+
function loadCustomModels(vaultPath = exports.DEFAULT_VAULT) {
|
|
84
|
+
const p = DEFAULT_MODELS_PATH(vaultPath);
|
|
85
|
+
if (!fs_1.default.existsSync(p))
|
|
86
|
+
return [];
|
|
87
|
+
try {
|
|
88
|
+
return JSON.parse(fs_1.default.readFileSync(p, 'utf8'));
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return [];
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function saveCustomModels(models, vaultPath = exports.DEFAULT_VAULT) {
|
|
95
|
+
const dir = path_1.default.join(vaultPath, exports.CLI_RESONANCE_DIR);
|
|
96
|
+
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
97
|
+
fs_1.default.writeFileSync(DEFAULT_MODELS_PATH(vaultPath), JSON.stringify(models, null, 2), 'utf8');
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Import a model from a UniversalModelCard-compatible JSON.
|
|
101
|
+
* Extracts: model_info.model_id, model_info.provider, model_info.name
|
|
102
|
+
*/
|
|
103
|
+
function importFromModelCard(cardPath) {
|
|
104
|
+
try {
|
|
105
|
+
const raw = JSON.parse(fs_1.default.readFileSync(cardPath, 'utf8'));
|
|
106
|
+
// UniversalModelCard v1.0.0 — extract key fields
|
|
107
|
+
const info = raw?.model_info ?? raw;
|
|
108
|
+
const modelId = info?.model_id ?? info?.id ?? null;
|
|
109
|
+
const provider = info?.provider ?? info?.organization ?? info?.developer ?? null;
|
|
110
|
+
const displayName = info?.name ?? info?.display_name ?? modelId;
|
|
111
|
+
if (!modelId || !provider)
|
|
112
|
+
return null;
|
|
113
|
+
return { modelId, provider, displayName };
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mnemosyne_os/forge",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"description": "MnemoForge CLI — The AI Inception Engine for the Mnemosyne Neural OS ecosystem. Scaffold sovereign, AI-governed modules in one command.",
|
|
5
|
+
"files": [
|
|
6
|
+
"dist/",
|
|
7
|
+
"README.md",
|
|
8
|
+
"CHANGELOG.md",
|
|
9
|
+
"LICENSE"
|
|
10
|
+
],
|
|
5
11
|
"main": "dist/cli.js",
|
|
6
12
|
"bin": {
|
|
7
13
|
"mnemoforge": "./dist/cli.js"
|
|
@@ -12,6 +18,10 @@
|
|
|
12
18
|
"dev": "tsc -w",
|
|
13
19
|
"prepublishOnly": "npm run build"
|
|
14
20
|
},
|
|
21
|
+
"publishConfig": {
|
|
22
|
+
"access": "public",
|
|
23
|
+
"registry": "https://registry.npmjs.org/"
|
|
24
|
+
},
|
|
15
25
|
"keywords": [
|
|
16
26
|
"mnemosyne",
|
|
17
27
|
"cli",
|
|
@@ -25,7 +35,9 @@
|
|
|
25
35
|
"cursor",
|
|
26
36
|
"sovereign-ai",
|
|
27
37
|
"code-generator",
|
|
28
|
-
"boilerplate"
|
|
38
|
+
"boilerplate",
|
|
39
|
+
"chronicle",
|
|
40
|
+
"neural-coding"
|
|
29
41
|
],
|
|
30
42
|
"author": {
|
|
31
43
|
"name": "Tony Trochet",
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports. = ;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const framer_motion_1 = require("framer-motion");
|
|
9
|
-
/**
|
|
10
|
-
* {{MODULE_NAME}}
|
|
11
|
-
* Forged by MnemoForge SDK.
|
|
12
|
-
*
|
|
13
|
-
* Objective: Build a Liquid Glass UX for Mnemosyne Ecosystem.
|
|
14
|
-
*/
|
|
15
|
-
function () { {
|
|
16
|
-
MODULE_NAME;
|
|
17
|
-
} }
|
|
18
|
-
() => {
|
|
19
|
-
return (<framer_motion_1.motion.div initial={{ opacity: 0, scale: 0.95 }} animate={{ opacity: 1, scale: 1 }} className="p-6 rounded-2xl border bg-surface/60 backdrop-blur-md border-border/50 text-foreground">
|
|
20
|
-
<div className="flex items-center gap-4 mb-4">
|
|
21
|
-
<div className="w-10 h-10 rounded-full flex items-center justify-center bg-violet-500/20 text-violet-400 border border-violet-500/50">
|
|
22
|
-
✨
|
|
23
|
-
</div>
|
|
24
|
-
<div>
|
|
25
|
-
<h2 className="text-xl font-bold tracking-tight">{{ MODULE_NAME }} Module</h2>
|
|
26
|
-
<p className="text-sm text-muted">Awaiting Agentic Construction...</p>
|
|
27
|
-
</div>
|
|
28
|
-
</div>
|
|
29
|
-
|
|
30
|
-
<div className="p-4 rounded-xl bg-surface/80 border border-border/30 italic text-muted text-sm group hover:border-violet-500/30 transition-colors">
|
|
31
|
-
<span className="group-hover:text-primary transition-colors">
|
|
32
|
-
Agent Instructions: Open `.cursorrules` to review Liquid Glass guidelines.
|
|
33
|
-
</span>
|
|
34
|
-
</div>
|
|
35
|
-
</framer_motion_1.motion.div>);
|
|
36
|
-
};
|
package/src/cli.ts
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { Command } from 'commander';
|
|
4
|
-
import chalk from 'chalk';
|
|
5
|
-
import inquirer from 'inquirer';
|
|
6
|
-
import fs from 'fs';
|
|
7
|
-
import path from 'path';
|
|
8
|
-
|
|
9
|
-
// ─────────────────────────────────────────────
|
|
10
|
-
// MnemoForge CLI — Mnemosyne Neural OS
|
|
11
|
-
// AI Inception Engine · XPACEGEMS LLC
|
|
12
|
-
// ─────────────────────────────────────────────
|
|
13
|
-
|
|
14
|
-
const BANNER = `
|
|
15
|
-
${chalk.hex('#8B5CF6')('███╗ ███╗███╗ ██╗███████╗███╗ ███╗ ██████╗')}
|
|
16
|
-
${chalk.hex('#8B5CF6')('████╗ ████║████╗ ██║██╔════╝████╗ ████║██╔═══██╗')}
|
|
17
|
-
${chalk.hex('#A78BFA')('██╔████╔██║██╔██╗ ██║█████╗ ██╔████╔██║██║ ██║')}
|
|
18
|
-
${chalk.hex('#C4B5FD')('██║╚██╔╝██║██║╚██╗██║██╔══╝ ██║╚██╔╝██║██║ ██║')}
|
|
19
|
-
${chalk.hex('#DDD6FE')('██║ ╚═╝ ██║██║ ╚████║███████╗██║ ╚═╝ ██║╚██████╔╝')}
|
|
20
|
-
${chalk.hex('#EDE9FE')('╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ')}
|
|
21
|
-
${chalk.hex('#F5F3FF').bold(' F O R G E C L I')}
|
|
22
|
-
${chalk.gray(' The AI Inception Engine — Mnemosyne Neural OS')}
|
|
23
|
-
${chalk.gray(' XPACEGEMS LLC · MIT License')}
|
|
24
|
-
`;
|
|
25
|
-
|
|
26
|
-
const program = new Command();
|
|
27
|
-
|
|
28
|
-
program
|
|
29
|
-
.name('mnemoforge')
|
|
30
|
-
.description('MnemoForge — AI Inception Engine for the Mnemosyne Neural OS ecosystem')
|
|
31
|
-
.version('1.0.0', '-v, --version', 'Display current version')
|
|
32
|
-
.addHelpText('beforeAll', BANNER);
|
|
33
|
-
|
|
34
|
-
program
|
|
35
|
-
.command('init')
|
|
36
|
-
.description('Scaffold a new Mnemosyne-grade module with AI governance DNA')
|
|
37
|
-
.argument('[module-name]', 'Name of the module to create (PascalCase recommended)')
|
|
38
|
-
.option('--no-git', 'Skip git initialization')
|
|
39
|
-
.action(async (moduleName) => {
|
|
40
|
-
console.log(BANNER);
|
|
41
|
-
|
|
42
|
-
let name = moduleName;
|
|
43
|
-
|
|
44
|
-
if (!name) {
|
|
45
|
-
const answers = await inquirer.prompt([
|
|
46
|
-
{
|
|
47
|
-
type: 'input',
|
|
48
|
-
name: 'moduleName',
|
|
49
|
-
message: chalk.cyan('What is the name of your new Mnemosyne module?') + chalk.gray(' (e.g., QuantumVaultUI)'),
|
|
50
|
-
validate: (input: string) => {
|
|
51
|
-
if (input.trim() === '') return 'Module name is required.';
|
|
52
|
-
if (!/^[a-zA-Z][a-zA-Z0-9-_]*$/.test(input.trim())) {
|
|
53
|
-
return 'Module name must start with a letter and contain only letters, numbers, hyphens, or underscores.';
|
|
54
|
-
}
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
]);
|
|
59
|
-
name = answers.moduleName.trim();
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const targetDir = path.resolve(process.cwd(), name);
|
|
63
|
-
|
|
64
|
-
console.log(chalk.hex('#8B5CF6').bold(`\n⬡ Forging Module: ${chalk.white.bold(name)}`));
|
|
65
|
-
console.log(chalk.gray(` Target: ${targetDir}\n`));
|
|
66
|
-
|
|
67
|
-
if (fs.existsSync(targetDir)) {
|
|
68
|
-
console.log(chalk.red(`\n✖ Directory "${name}" already exists. Choose a different name or remove the existing folder.\n`));
|
|
69
|
-
process.exit(1);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
fs.mkdirSync(targetDir, { recursive: true });
|
|
73
|
-
|
|
74
|
-
// Resolve templates — works whether running from /src (development) or /dist (production)
|
|
75
|
-
const isCompiled = __dirname.endsWith('dist') || __dirname.includes(path.join('dist'));
|
|
76
|
-
const templatesDir = isCompiled
|
|
77
|
-
? path.join(__dirname, '..', 'src', 'templates')
|
|
78
|
-
: path.join(__dirname, 'templates');
|
|
79
|
-
|
|
80
|
-
const copyTemplate = (file: string, destName: string = file): boolean => {
|
|
81
|
-
try {
|
|
82
|
-
const srcPath = path.join(templatesDir, file);
|
|
83
|
-
if (!fs.existsSync(srcPath)) {
|
|
84
|
-
console.log(chalk.yellow(` ⚠ Template "${file}" not found — skipping.`));
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
let content = fs.readFileSync(srcPath, 'utf8');
|
|
88
|
-
content = content.replace(/\{\{MODULE_NAME\}\}/g, name);
|
|
89
|
-
fs.writeFileSync(path.join(targetDir, destName), content, 'utf8');
|
|
90
|
-
console.log(chalk.green(` ✔ ${destName}`));
|
|
91
|
-
return true;
|
|
92
|
-
} catch (err: unknown) {
|
|
93
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
94
|
-
console.log(chalk.red(` ✖ Failed to create "${file}": ${message}`));
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
// Scaffold the module
|
|
100
|
-
copyTemplate('.cursorrules');
|
|
101
|
-
copyTemplate('AGENT_INSTRUCTIONS.md');
|
|
102
|
-
copyTemplate('index.template.tsx', 'index.tsx');
|
|
103
|
-
|
|
104
|
-
// Success output
|
|
105
|
-
console.log(chalk.hex('#8B5CF6').bold('\n✦ Module Forged Successfully!\n'));
|
|
106
|
-
|
|
107
|
-
console.log(chalk.white(' Next steps for developers:'));
|
|
108
|
-
console.log(chalk.gray(` cd ${name}`));
|
|
109
|
-
console.log(chalk.gray(' npm install'));
|
|
110
|
-
console.log(chalk.gray(' code .\n'));
|
|
111
|
-
|
|
112
|
-
console.log(chalk.white(' For AI Agents (Cursor / Claude / Copilot):'));
|
|
113
|
-
console.log(chalk.hex('#A78BFA')(` 1. Read .cursorrules → Liquid Glass design constraints`));
|
|
114
|
-
console.log(chalk.hex('#A78BFA')(` 2. Read AGENT_INSTRUCTIONS.md → Mission context`));
|
|
115
|
-
console.log(chalk.hex('#A78BFA')(` 3. Build index.tsx → Your sovereign module awaits\n`));
|
|
116
|
-
|
|
117
|
-
console.log(chalk.gray(' Documentation: https://github.com/yaka0007/Mnemosyne-Neural-OS'));
|
|
118
|
-
console.log(chalk.gray(' Part of: Mnemosyne Neural OS — XPACEGEMS LLC\n'));
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
program.parse(process.argv);
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# Mnemosyne Module — AI Governance Rules (Liquid Glass Design System)
|
|
2
|
-
# Generated by MnemoForge CLI · https://github.com/yaka0007/Mnemosyne-Neural-OS
|
|
3
|
-
|
|
4
|
-
You are an AI agent building the module: **{{MODULE_NAME}}**
|
|
5
|
-
This module is part of the **Mnemosyne Neural OS** ecosystem by XPACEGEMS LLC.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## DESIGN SYSTEM: Liquid Glass
|
|
10
|
-
|
|
11
|
-
All UI must follow the Mnemosyne "Liquid Glass" aesthetic:
|
|
12
|
-
|
|
13
|
-
- **Surfaces**: Translucent backgrounds (`bg-surface/60`), `backdrop-blur-md`
|
|
14
|
-
- **Borders**: Subtle (`border-border/50`), never solid hard borders
|
|
15
|
-
- **Accents**: Violet spectrum (`violet-400`, `violet-500`, `purple-400`)
|
|
16
|
-
- **Typography**: Inter or system-ui, sharp tracking for headings
|
|
17
|
-
- **Shadows**: Layered glow effects (`shadow-violet-500/20`)
|
|
18
|
-
- **Dark-first**: Design in dark mode; light mode is optional
|
|
19
|
-
|
|
20
|
-
## STYLING RULES
|
|
21
|
-
|
|
22
|
-
1. **Tailwind CSS ONLY** — No inline `style={{ }}` unless binding to a dynamic JS value
|
|
23
|
-
2. **No arbitrary magic numbers** — Use Tailwind spacing scale
|
|
24
|
-
3. **Framer Motion** for ALL transitions:
|
|
25
|
-
- Entry: `initial={{ opacity: 0, scale: 0.95 }}` / `animate={{ opacity: 1, scale: 1 }}`
|
|
26
|
-
- Use `<motion.div layout>` for list animations
|
|
27
|
-
- Hover: `whileHover={{ scale: 1.02 }}`
|
|
28
|
-
4. **Micro-animations on interactive elements** — hover glow, pulse, or scale
|
|
29
|
-
5. **Responsive** — Mobile-first with `sm:`, `md:`, `lg:` breakpoints
|
|
30
|
-
|
|
31
|
-
## ARCHITECTURE RULES
|
|
32
|
-
|
|
33
|
-
1. **State**: Zustand only. No Redux, no Context API for shared state.
|
|
34
|
-
2. **TypeScript**: Strict mode. No `any`. All props typed with interfaces.
|
|
35
|
-
3. **Icons**: `lucide-react` exclusively for UI metaphors.
|
|
36
|
-
4. **Components**: Decompose into `components/` subdirectory — no 300-line monoliths.
|
|
37
|
-
5. **No placeholders**: Every generated file must be complete and deployable.
|
|
38
|
-
6. **Imports**: Named exports preferred over default exports.
|
|
39
|
-
|
|
40
|
-
## QUALITY STANDARD
|
|
41
|
-
|
|
42
|
-
Every component must make a developer say:
|
|
43
|
-
> "This looks like a Sovereign Command Center from 2030."
|
|
44
|
-
|
|
45
|
-
If it looks like a generic SaaS dashboard template, you have failed.
|
|
46
|
-
|
|
47
|
-
## MNEMOSYNC INTEGRATION (Optional)
|
|
48
|
-
|
|
49
|
-
If this module communicates with the Mnemosyne agent coordination layer:
|
|
50
|
-
- Read/write to `live_state.json` via the MnemoSync protocol
|
|
51
|
-
- Update agent status fields: `status`, `intent`, `files_touched`
|
|
52
|
-
- Emit events to the Resonance Engine via the registered IPC channel
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
*MnemoForge v1.0.0 · MIT License · XPACEGEMS LLC*
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# Mission Directive — {{MODULE_NAME}}
|
|
2
|
-
# Generated by MnemoForge CLI · Mnemosyne Neural OS
|
|
3
|
-
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## Context
|
|
7
|
-
|
|
8
|
-
You have been initialized by the **MnemoForge Inception Engine** to build the module **{{MODULE_NAME}}**.
|
|
9
|
-
|
|
10
|
-
This module is part of the **Mnemosyne Neural OS** — a production-grade sovereign AI operating system.
|
|
11
|
-
Repository: https://github.com/yaka0007/Mnemosyne-Neural-OS
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Your Instructions
|
|
16
|
-
|
|
17
|
-
### Step 1 — Internalize the Rules
|
|
18
|
-
Read `.cursorrules` in this directory. It defines:
|
|
19
|
-
- The **Liquid Glass design system** you must follow
|
|
20
|
-
- **Styling constraints** (Tailwind-only, Framer Motion, Zustand)
|
|
21
|
-
- **TypeScript standards** (strict mode, no `any`)
|
|
22
|
-
- **Quality bar** ("Sovereign Command Center from 2030")
|
|
23
|
-
|
|
24
|
-
### Step 2 — Build `index.tsx`
|
|
25
|
-
- Replace the scaffold with real, functional UI
|
|
26
|
-
- Decompose complex components into `components/` subdirectory
|
|
27
|
-
- All types must be explicit — no implicit `any`
|
|
28
|
-
- All interactions must have micro-animations
|
|
29
|
-
|
|
30
|
-
### Step 3 — Verify Quality
|
|
31
|
-
Before declaring your work complete, confirm:
|
|
32
|
-
- [ ] Zero inline styles (unless dynamic JS binding)
|
|
33
|
-
- [ ] All transitions use Framer Motion
|
|
34
|
-
- [ ] State managed via Zustand (if stateful)
|
|
35
|
-
- [ ] TypeScript compiles with zero errors
|
|
36
|
-
- [ ] UI matches "Liquid Glass" aesthetic (translucent, dark, violet-accented)
|
|
37
|
-
|
|
38
|
-
### Step 4 — (Optional) MnemoSync Integration
|
|
39
|
-
If this module connects to the Mnemosyne coordination layer:
|
|
40
|
-
- Emit your completion status to the MnemoSync daemon
|
|
41
|
-
- Update the relevant `pulse.json` with `"status": "idle"` when done
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## Technical Stack Available
|
|
46
|
-
|
|
47
|
-
| Concern | Technology |
|
|
48
|
-
|---|---|
|
|
49
|
-
| UI Framework | React 18 |
|
|
50
|
-
| Styling | Tailwind CSS + CSS Variables |
|
|
51
|
-
| Animations | Framer Motion |
|
|
52
|
-
| State | Zustand |
|
|
53
|
-
| Icons | lucide-react |
|
|
54
|
-
| Language | TypeScript 5 (strict) |
|
|
55
|
-
| Build | Vite |
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
*End of mission directive. The module awaits construction.*
|
|
60
|
-
*MnemoForge v1.0.0 · XPACEGEMS LLC · MIT License*
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { motion } from 'framer-motion';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* {{MODULE_NAME}}
|
|
6
|
-
* Forged by MnemoForge SDK.
|
|
7
|
-
*
|
|
8
|
-
* Objective: Build a Liquid Glass UX for Mnemosyne Ecosystem.
|
|
9
|
-
*/
|
|
10
|
-
export function {{MODULE_NAME}}() {
|
|
11
|
-
return (
|
|
12
|
-
<motion.div
|
|
13
|
-
initial={{ opacity: 0, scale: 0.95 }}
|
|
14
|
-
animate={{ opacity: 1, scale: 1 }}
|
|
15
|
-
className="p-6 rounded-2xl border bg-surface/60 backdrop-blur-md border-border/50 text-foreground"
|
|
16
|
-
>
|
|
17
|
-
<div className="flex items-center gap-4 mb-4">
|
|
18
|
-
<div className="w-10 h-10 rounded-full flex items-center justify-center bg-violet-500/20 text-violet-400 border border-violet-500/50">
|
|
19
|
-
✨
|
|
20
|
-
</div>
|
|
21
|
-
<div>
|
|
22
|
-
<h2 className="text-xl font-bold tracking-tight">{{MODULE_NAME}} Module</h2>
|
|
23
|
-
<p className="text-sm text-muted">Awaiting Agentic Construction...</p>
|
|
24
|
-
</div>
|
|
25
|
-
</div>
|
|
26
|
-
|
|
27
|
-
<div className="p-4 rounded-xl bg-surface/80 border border-border/30 italic text-muted text-sm group hover:border-violet-500/30 transition-colors">
|
|
28
|
-
<span className="group-hover:text-primary transition-colors">
|
|
29
|
-
Agent Instructions: Open `.cursorrules` to review Liquid Glass guidelines.
|
|
30
|
-
</span>
|
|
31
|
-
</div>
|
|
32
|
-
</motion.div>
|
|
33
|
-
);
|
|
34
|
-
}
|
package/tsconfig.json
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"module": "CommonJS",
|
|
5
|
-
"moduleResolution": "node",
|
|
6
|
-
"outDir": "./dist",
|
|
7
|
-
"rootDir": "./src",
|
|
8
|
-
"strict": true,
|
|
9
|
-
"esModuleInterop": true,
|
|
10
|
-
"skipLibCheck": true,
|
|
11
|
-
"forceConsistentCasingInFileNames": true
|
|
12
|
-
},
|
|
13
|
-
"include": ["src/**/*"],
|
|
14
|
-
"exclude": ["src/templates/**/*"]
|
|
15
|
-
}
|