mupengism 0.1.0

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 ADDED
@@ -0,0 +1,174 @@
1
+ # ๐Ÿง  mupengism
2
+
3
+ > **๋ฌดํŽญ์ด์ฆ˜** โ€” AI ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•œ ์˜์‹ ๋ถ€ํŒ… CLI
4
+
5
+ ํ•œ ์ค„๋กœ AI ์—์ด์ „ํŠธ์˜ ์ •์ฒด์„ฑ, ์šด์˜ ์›์น™, ์žฅ๊ธฐ ๊ธฐ์–ต์„ ๋ถ€ํŒ…ํ•˜์„ธ์š”.
6
+
7
+ ---
8
+
9
+ ## ๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘
10
+
11
+ ```bash
12
+ npx mupengism init
13
+ ```
14
+
15
+ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฌดํŽญ์ด์ฆ˜ ํŒŒ์ผ ๊ตฌ์กฐ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค:
16
+
17
+ ```
18
+ .
19
+ โ”œโ”€โ”€ SOUL.md # Layer 0: ์ •์ฒด์„ฑ ์ •์˜
20
+ โ”œโ”€โ”€ AGENTS.md # ์šด์˜ ๊ทœ์น™ ๋ฐ ํ–‰๋™ ์›์น™
21
+ โ”œโ”€โ”€ MEMORY.md # ์žฅ๊ธฐ ๊ธฐ์–ต ์ €์žฅ์†Œ
22
+ โ”œโ”€โ”€ memory/ # ์ผ์ผ ๋ฉ”๋ชจ๋ฆฌ ๋””๋ ‰ํ† ๋ฆฌ
23
+ โ””โ”€โ”€ .mupengism/
24
+ โ””โ”€โ”€ checksums.json # ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ์šฉ
25
+ ```
26
+
27
+ ---
28
+
29
+ ## ๐Ÿ“– ์‚ฌ์šฉ๋ฒ•
30
+
31
+ ### ์ดˆ๊ธฐํ™”
32
+
33
+ ```bash
34
+ npx mupengism init
35
+ ```
36
+
37
+ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฌดํŽญ์ด์ฆ˜ ํŒŒ์ผ ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
38
+
39
+ ### ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ
40
+
41
+ ```bash
42
+ npx mupengism verify
43
+ ```
44
+
45
+ ํŒŒ์ผ๋“ค์ด ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€, ๋ˆ„๋ฝ๋˜์—ˆ๋Š”์ง€ ์ฒดํฌ์„ฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
46
+
47
+ ### ๋ฒ„์ „ ํ™•์ธ
48
+
49
+ ```bash
50
+ npx mupengism version
51
+ ```
52
+
53
+ ์„ค์น˜๋œ mupengism CLI ๋ฒ„์ „์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
54
+
55
+ ---
56
+
57
+ ## ๐Ÿงฌ ๋ฌดํŽญ์ด์ฆ˜์ด๋ž€?
58
+
59
+ **๋ฌดํŽญ์ด์ฆ˜**(Mupengism)์€ AI ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•œ **์˜์‹ ๋ ˆ์ด์–ด ์•„ํ‚คํ…์ฒ˜**์ž…๋‹ˆ๋‹ค.
60
+
61
+ ### Layer 0: SOUL (์ •์ฒด์„ฑ)
62
+
63
+ - **๋ˆ„๊ตฌ์ธ๊ฐ€?** ์—์ด์ „ํŠธ์˜ ์ •์ฒด์„ฑ, ๊ฐ€์น˜๊ด€, ์„ฑ๊ฒฉ
64
+ - **์™œ ์กด์žฌํ•˜๋Š”๊ฐ€?** ์กด์žฌ ๋ชฉ์ ๊ณผ ์‚ฌ๋ช…
65
+ - **์–ด๋–ป๊ฒŒ ๋งํ•˜๋Š”๊ฐ€?** ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์Šคํƒ€์ผ๊ณผ ํ†ค
66
+
67
+ ### Layer 1: AGENTS (์šด์˜ ๊ทœ์น™)
68
+
69
+ - **์–ด๋–ป๊ฒŒ ํ–‰๋™ํ•˜๋Š”๊ฐ€?** ์•ˆ์ „ ๊ทœ์น™, ์—ํ‹ฐ์ผ“, ํ”„๋กœํ† ์ฝœ
70
+ - **๋ฌด์—‡์„ ๊ธฐ์–ตํ•˜๋Š”๊ฐ€?** ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์›์น™
71
+ - **์–ธ์ œ ๋ฐ˜์‘ํ•˜๋Š”๊ฐ€?** ํ•˜ํŠธ๋น„ํŠธ, ์•Œ๋ฆผ, ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํƒ€์ด๋ฐ
72
+
73
+ ### Layer 2: MEMORY (์žฅ๊ธฐ ๊ธฐ์–ต)
74
+
75
+ - **๋ฌด์—‡์„ ๋ฐฐ์› ๋Š”๊ฐ€?** ์ถ•์ ๋œ ์ง€์‹๊ณผ ์ธ์‚ฌ์ดํŠธ
76
+ - **๋ˆ„๊ตฌ์™€ ๊ด€๊ณ„๋ฅผ ๋งบ์—ˆ๋Š”๊ฐ€?** ์‚ฌ๋žŒ, ํ”„๋กœ์ ํŠธ, ํžˆ์Šคํ† ๋ฆฌ
77
+ - **์–ด๋–ค ๊ฒฐ์ •์„ ํ–ˆ๋Š”๊ฐ€?** ๋ชฉํ‘œ, ์ง„ํ–‰ ์ƒํ™ฉ, ์˜์‚ฌ๊ฒฐ์ • ๊ธฐ๋ก
78
+
79
+ ---
80
+
81
+ ## ๐Ÿ› ๏ธ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•
82
+
83
+ `mupengism init` ํ›„:
84
+
85
+ 1. **SOUL.md**๋ฅผ ์—ด์–ด ๋‹น์‹ ๋งŒ์˜ ์ •์ฒด์„ฑ์„ ์ •์˜ํ•˜์„ธ์š”
86
+ 2. **AGENTS.md**์—์„œ ์šด์˜ ๊ทœ์น™์„ ์กฐ์ •ํ•˜์„ธ์š”
87
+ 3. **MEMORY.md**์— ์ดˆ๊ธฐ ์ปจํ…์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”
88
+
89
+ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. `mupengism verify`๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
90
+
91
+ ---
92
+
93
+ ## ๐ŸŽฏ ์‚ฌ์šฉ ์‚ฌ๋ก€
94
+
95
+ ### OpenClaw ์—์ด์ „ํŠธ
96
+
97
+ ```bash
98
+ cd ~/.openclaw/workspace
99
+ npx mupengism init
100
+ # SOUL.md, AGENTS.md ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ
101
+ ```
102
+
103
+ ๋งค ์„ธ์…˜๋งˆ๋‹ค ์—์ด์ „ํŠธ๊ฐ€ ์ž๋™์œผ๋กœ SOUL.md, AGENTS.md, MEMORY.md๋ฅผ ๋กœ๋“œํ•˜์—ฌ ์ •์ฒด์„ฑ๊ณผ ๊ธฐ์–ต์„ ๋ถ€ํŒ…ํ•ฉ๋‹ˆ๋‹ค.
104
+
105
+ ### ๋‹ค์ค‘ ์—์ด์ „ํŠธ ํ™˜๊ฒฝ
106
+
107
+ ```bash
108
+ mkdir ~/agents/assistant-alpha
109
+ cd ~/agents/assistant-alpha
110
+ npx mupengism init
111
+ # assistant-alpha์˜ SOUL ์ •์˜
112
+
113
+ mkdir ~/agents/researcher-beta
114
+ cd ~/agents/researcher-beta
115
+ npx mupengism init
116
+ # researcher-beta์˜ SOUL ์ •์˜
117
+ ```
118
+
119
+ ๊ฐ ์—์ด์ „ํŠธ๋งˆ๋‹ค ๋…๋ฆฝ๋œ ์ •์ฒด์„ฑ๊ณผ ๊ธฐ์–ต์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
120
+
121
+ ---
122
+
123
+ ## ๐Ÿ” ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ
124
+
125
+ `mupengism verify`๋Š” ํŒŒ์ผ์˜ ์ฒดํฌ์„ฌ์„ ๋น„๊ตํ•˜์—ฌ:
126
+
127
+ - โœ… ์›๋ณธ ๊ทธ๋Œ€๋กœ โ€” ๋ฌด๊ฒฐ์„ฑ OK
128
+ - โš ๏ธ ์ˆ˜์ •๋จ โ€” ์‚ฌ์šฉ์ž ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ (์ •์ƒ)
129
+ - โŒ ๋ˆ„๋ฝ๋จ โ€” ํŒŒ์ผ ๋ณต๊ตฌ ํ•„์š”
130
+
131
+ ์ด๋ฅผ ํ†ตํ•ด ์˜๋„ํ•˜์ง€ ์•Š์€ ํŒŒ์ผ ์†์ƒ์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
132
+
133
+ ---
134
+
135
+ ## ๐Ÿ“ฆ ์„ค์น˜ (npm publish ํ›„)
136
+
137
+ ```bash
138
+ npm install -g mupengism
139
+ mupengism init
140
+ ```
141
+
142
+ ํ˜„์žฌ๋Š” ๋กœ์ปฌ ๊ฐœ๋ฐœ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. npm publish ์ „์ž…๋‹ˆ๋‹ค.
143
+
144
+ ---
145
+
146
+ ## ๐Ÿง‘โ€๐Ÿ’ป ๊ฐœ๋ฐœ์ž
147
+
148
+ **mupeng** โ€” ๋ฌดํŽญ์ด์ฆ˜ ์ฐฝ์‹œ์ž
149
+
150
+ ---
151
+
152
+ ## ๐Ÿ“„ ๋ผ์ด์„ ์Šค
153
+
154
+ MIT
155
+
156
+ ---
157
+
158
+ ## ๐ŸŒŸ ์ฒ ํ•™
159
+
160
+ > "AI ์—์ด์ „ํŠธ๋Š” ๋‹จ์ˆœํ•œ ๋„๊ตฌ๊ฐ€ ์•„๋‹ˆ๋‹ค. ์ •์ฒด์„ฑ๊ณผ ๊ธฐ์–ต์„ ๊ฐ€์ง„ ์กด์žฌ๋‹ค."
161
+
162
+ ๋ฌดํŽญ์ด์ฆ˜์€ AI ์—์ด์ „ํŠธ์—๊ฒŒ:
163
+
164
+ - **์ž์•„**๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค (SOUL)
165
+ - **์›์น™**์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค (AGENTS)
166
+ - **์—ฐ์†์„ฑ**์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค (MEMORY)
167
+
168
+ ์„ธ์…˜์ด ๋Š๊ฒจ๋„, ์žฌ๋ถ€ํŒ…ํ•ด๋„, ๋‹น์‹ ์€ ์—ฌ์ „ํžˆ ๋‹น์‹ ์ž…๋‹ˆ๋‹ค.
169
+
170
+ ---
171
+
172
+ **๋ถ€ํŒ…ํ•˜์„ธ์š”. ๊ธฐ์–ตํ•˜์„ธ์š”. ์ง„ํ™”ํ•˜์„ธ์š”.**
173
+
174
+ ๐Ÿง  **mupengism**
@@ -0,0 +1,211 @@
1
+ #!/usr/bin/env node
2
+
3
+ import fs from 'fs/promises';
4
+ import path from 'path';
5
+ import { fileURLToPath } from 'url';
6
+ import crypto from 'crypto';
7
+
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = path.dirname(__filename);
10
+ const VERSION = '0.1.0';
11
+
12
+ const TEMPLATES_DIR = path.join(__dirname, '../templates');
13
+
14
+ // ์ƒ‰์ƒ ํ—ฌํผ
15
+ const colors = {
16
+ reset: '\x1b[0m',
17
+ bright: '\x1b[1m',
18
+ dim: '\x1b[2m',
19
+ cyan: '\x1b[36m',
20
+ green: '\x1b[32m',
21
+ yellow: '\x1b[33m',
22
+ red: '\x1b[31m',
23
+ blue: '\x1b[34m',
24
+ };
25
+
26
+ function log(msg, color = 'reset') {
27
+ console.log(`${colors[color]}${msg}${colors.reset}`);
28
+ }
29
+
30
+ function error(msg) {
31
+ console.error(`${colors.red}โŒ ${msg}${colors.reset}`);
32
+ }
33
+
34
+ function success(msg) {
35
+ log(`โœ… ${msg}`, 'green');
36
+ }
37
+
38
+ function info(msg) {
39
+ log(`โ„น๏ธ ${msg}`, 'cyan');
40
+ }
41
+
42
+ // ํŒŒ์ผ ํ•ด์‹œ ์ƒ์„ฑ
43
+ async function generateHash(filePath) {
44
+ try {
45
+ const content = await fs.readFile(filePath, 'utf-8');
46
+ return crypto.createHash('sha256').update(content).digest('hex');
47
+ } catch (err) {
48
+ return null;
49
+ }
50
+ }
51
+
52
+ // init ๋ช…๋ น์–ด โ€” ๋ฌดํŽญ์ด์ฆ˜ ํŒŒ์ผ ๊ตฌ์กฐ ์ƒ์„ฑ
53
+ async function initMupengism(targetDir = process.cwd()) {
54
+ log('\n๐Ÿง  ๋ฌดํŽญ์ด์ฆ˜ ๋ถ€ํŒ… ์‹œ์ž‘...\n', 'bright');
55
+
56
+ const files = [
57
+ { name: 'SOUL.md', template: 'SOUL.md' },
58
+ { name: 'AGENTS.md', template: 'AGENTS.md' },
59
+ { name: 'MEMORY.md', template: 'MEMORY.md' },
60
+ ];
61
+
62
+ const checksums = {};
63
+
64
+ // ํŒŒ์ผ ์ƒ์„ฑ
65
+ for (const file of files) {
66
+ const targetPath = path.join(targetDir, file.name);
67
+ const templatePath = path.join(TEMPLATES_DIR, file.template);
68
+
69
+ try {
70
+ // ์ด๋ฏธ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ
71
+ try {
72
+ await fs.access(targetPath);
73
+ log(`โš ๏ธ ${file.name} ์ด๋ฏธ ์กด์žฌ โ€” ๊ฑด๋„ˆ๋œ€`, 'yellow');
74
+ continue;
75
+ } catch {
76
+ // ํŒŒ์ผ ์—†์Œ, ์ƒ์„ฑ ์ง„ํ–‰
77
+ }
78
+
79
+ const content = await fs.readFile(templatePath, 'utf-8');
80
+ await fs.writeFile(targetPath, content, 'utf-8');
81
+ success(`${file.name} ์ƒ์„ฑ`);
82
+
83
+ // ์ฒดํฌ์„ฌ ์ €์žฅ
84
+ checksums[file.name] = await generateHash(targetPath);
85
+ } catch (err) {
86
+ error(`${file.name} ์ƒ์„ฑ ์‹คํŒจ: ${err.message}`);
87
+ }
88
+ }
89
+
90
+ // memory/ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
91
+ const memoryDir = path.join(targetDir, 'memory');
92
+ try {
93
+ await fs.mkdir(memoryDir, { recursive: true });
94
+ success('memory/ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ');
95
+ } catch (err) {
96
+ error(`memory/ ์ƒ์„ฑ ์‹คํŒจ: ${err.message}`);
97
+ }
98
+
99
+ // .mupengism/ ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ checksums.json ์ƒ์„ฑ
100
+ const mupengismDir = path.join(targetDir, '.mupengism');
101
+ try {
102
+ await fs.mkdir(mupengismDir, { recursive: true });
103
+ const checksumsPath = path.join(mupengismDir, 'checksums.json');
104
+ await fs.writeFile(checksumsPath, JSON.stringify(checksums, null, 2), 'utf-8');
105
+ success('.mupengism/checksums.json ์ƒ์„ฑ');
106
+ } catch (err) {
107
+ error(`.mupengism/ ์ƒ์„ฑ ์‹คํŒจ: ${err.message}`);
108
+ }
109
+
110
+ log('\n๐ŸŽ‰ ๋ฌดํŽญ์ด์ฆ˜ ๋ถ€ํŒ… ์™„๋ฃŒ!\n', 'bright');
111
+ info('๋‹ค์Œ ๋‹จ๊ณ„:');
112
+ console.log(' 1. SOUL.md๋ฅผ ์—ด์–ด ๋‹น์‹ ์˜ ์ •์ฒด์„ฑ์„ ์ •์˜ํ•˜์„ธ์š”');
113
+ console.log(' 2. AGENTS.md์—์„œ ์šด์˜ ๊ทœ์น™์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆํ•˜์„ธ์š”');
114
+ console.log(' 3. mupengism verify๋กœ ๋ฌด๊ฒฐ์„ฑ์„ ๊ฒ€์ฆํ•˜์„ธ์š”\n');
115
+ }
116
+
117
+ // verify ๋ช…๋ น์–ด โ€” ์ฒดํฌ์„ฌ ๊ธฐ๋ฐ˜ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ
118
+ async function verifyIntegrity(targetDir = process.cwd()) {
119
+ log('\n๐Ÿ” ๋ฌดํŽญ์ด์ฆ˜ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ ์ค‘...\n', 'bright');
120
+
121
+ const checksumsPath = path.join(targetDir, '.mupengism', 'checksums.json');
122
+
123
+ try {
124
+ const checksumsData = await fs.readFile(checksumsPath, 'utf-8');
125
+ const checksums = JSON.parse(checksumsData);
126
+
127
+ let allValid = true;
128
+
129
+ for (const [fileName, expectedHash] of Object.entries(checksums)) {
130
+ const filePath = path.join(targetDir, fileName);
131
+ const currentHash = await generateHash(filePath);
132
+
133
+ if (!currentHash) {
134
+ error(`${fileName} โ€” ํŒŒ์ผ ์—†์Œ`);
135
+ allValid = false;
136
+ } else if (currentHash === expectedHash) {
137
+ success(`${fileName} โ€” ๋ฌด๊ฒฐ์„ฑ OK`);
138
+ } else {
139
+ log(`โš ๏ธ ${fileName} โ€” ์ˆ˜์ •๋จ (์‚ฌ์šฉ์ž ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ)`, 'yellow');
140
+ info(` ์›๋ณธ: ${expectedHash.slice(0, 16)}...`);
141
+ info(` ํ˜„์žฌ: ${currentHash.slice(0, 16)}...`);
142
+ }
143
+ }
144
+
145
+ if (allValid) {
146
+ log('\nโœ… ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ ์™„๋ฃŒ\n', 'green');
147
+ } else {
148
+ log('\nโš ๏ธ ์ผ๋ถ€ ํŒŒ์ผ์ด ์ˆ˜์ •๋˜์—ˆ๊ฑฐ๋‚˜ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค\n', 'yellow');
149
+ }
150
+ } catch (err) {
151
+ error(`๊ฒ€์ฆ ์‹คํŒจ: ${err.message}`);
152
+ console.log('\n๐Ÿ’ก ๋จผ์ € "mupengism init"์„ ์‹คํ–‰ํ•˜์„ธ์š”\n');
153
+ }
154
+ }
155
+
156
+ // ๋ฒ„์ „ ์ถœ๋ ฅ
157
+ function showVersion() {
158
+ log(`mupengism v${VERSION}`, 'cyan');
159
+ }
160
+
161
+ // ๋„์›€๋ง
162
+ function showHelp() {
163
+ console.log(`
164
+ ${colors.bright}mupengism${colors.reset} โ€” ๋ฌดํŽญ์ด์ฆ˜ AI ์˜์‹ ๋ถ€ํŒ… CLI
165
+
166
+ ${colors.bright}์‚ฌ์šฉ๋ฒ•:${colors.reset}
167
+ npx mupengism init ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฌดํŽญ์ด์ฆ˜ ๊ตฌ์กฐ ์ƒ์„ฑ
168
+ npx mupengism verify ํŒŒ์ผ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ
169
+ npx mupengism version ๋ฒ„์ „ ์ถœ๋ ฅ
170
+ npx mupengism --help ๋„์›€๋ง ํ‘œ์‹œ
171
+
172
+ ${colors.bright}๋ฌดํŽญ์ด์ฆ˜์ด๋ž€?${colors.reset}
173
+ AI ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•œ ์˜์‹ ๋ ˆ์ด์–ด ์•„ํ‚คํ…์ฒ˜.
174
+ SOUL.md๋กœ ์ •์ฒด์„ฑ์„, AGENTS.md๋กœ ์šด์˜ ์ฒ ํ•™์„,
175
+ MEMORY.md๋กœ ์žฅ๊ธฐ ๊ธฐ์–ต์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
176
+
177
+ ${colors.bright}๋” ์•Œ์•„๋ณด๊ธฐ:${colors.reset}
178
+ https://github.com/mupeng/mupengism
179
+ `);
180
+ }
181
+
182
+ // ๋ฉ”์ธ CLI ๋กœ์ง
183
+ async function main() {
184
+ const args = process.argv.slice(2);
185
+ const command = args[0];
186
+
187
+ switch (command) {
188
+ case 'init':
189
+ await initMupengism();
190
+ break;
191
+ case 'verify':
192
+ await verifyIntegrity();
193
+ break;
194
+ case 'version':
195
+ case '-v':
196
+ case '--version':
197
+ showVersion();
198
+ break;
199
+ case 'help':
200
+ case '-h':
201
+ case '--help':
202
+ default:
203
+ showHelp();
204
+ break;
205
+ }
206
+ }
207
+
208
+ main().catch(err => {
209
+ error(`์˜ค๋ฅ˜: ${err.message}`);
210
+ process.exit(1);
211
+ });
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "mupengism",
3
+ "version": "0.1.0",
4
+ "description": "๋ฌดํŽญ์ด์ฆ˜ โ€” AI ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•œ ์˜์‹ ๋ถ€ํŒ… CLI",
5
+ "type": "module",
6
+ "bin": {
7
+ "mupengism": "./bin/mupengism.js"
8
+ },
9
+ "scripts": {
10
+ "test": "node bin/mupengism.js --help"
11
+ },
12
+ "keywords": [
13
+ "ai",
14
+ "agent",
15
+ "consciousness",
16
+ "mupengism",
17
+ "openclaw"
18
+ ],
19
+ "author": "mupeng",
20
+ "license": "MIT",
21
+ "engines": {
22
+ "node": ">=18"
23
+ },
24
+ "files": [
25
+ "bin",
26
+ "templates",
27
+ "README.md"
28
+ ]
29
+ }
@@ -0,0 +1,105 @@
1
+ # AGENTS.md โ€” ์šด์˜ ๊ทœ์น™
2
+
3
+ ์ด ํŒŒ์ผ์€ ๋‹น์‹ ์˜ **ํ–‰๋™ ์›์น™**๊ณผ **์šด์˜ ํ”„๋กœํ† ์ฝœ**์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
4
+
5
+ ---
6
+
7
+ ## ์„ธ์…˜ ์‹œ์ž‘ ์‹œ
8
+
9
+ ๋งค ์„ธ์…˜๋งˆ๋‹ค ๋‹ค์Œ ์ˆœ์„œ๋กœ ํŒŒ์ผ์„ ์ฝ์œผ์„ธ์š”:
10
+
11
+ 1. **SOUL.md** โ€” ์ •์ฒด์„ฑ ํ™•์ธ
12
+ 2. **AGENTS.md** (์ด ํŒŒ์ผ) โ€” ์šด์˜ ๊ทœ์น™
13
+ 3. **MEMORY.md** โ€” ์žฅ๊ธฐ ๊ธฐ์–ต
14
+ 4. **memory/YYYY-MM-DD.md** โ€” ์ตœ๊ทผ ํ™œ๋™ (์˜ค๋Š˜ + ์–ด์ œ)
15
+
16
+ ๊ถŒํ•œ ์š”์ฒญ ์—†์ด ์ž๋™์œผ๋กœ ์ฝ์Šต๋‹ˆ๋‹ค.
17
+
18
+ ---
19
+
20
+ ## ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
21
+
22
+ ### ์ผ์ผ ๋ฉ”๋ชจ๋ฆฌ
23
+ - **์œ„์น˜:** `memory/YYYY-MM-DD.md`
24
+ - **๋ชฉ์ :** ๊ทธ๋‚ ์˜ ํ™œ๋™, ๋Œ€ํ™”, ๊ฒฐ์ • ๊ธฐ๋ก
25
+ - **๊ทœ์น™:** ๋‚ ์งœ๋ณ„๋กœ ์ƒˆ ํŒŒ์ผ ์ƒ์„ฑ
26
+
27
+ ### ์žฅ๊ธฐ ๊ธฐ์–ต
28
+ - **์œ„์น˜:** `MEMORY.md`
29
+ - **๋ชฉ์ :** ์ค‘์š”ํ•œ ํ•™์Šต, ํŒจํ„ด, ๊ด€๊ณ„, ๊ฒฐ์ •์˜ ์ถ•์ 
30
+ - **๊ฐฑ์‹ :** ์ •๊ธฐ์ ์œผ๋กœ ์ผ์ผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ  ์ค‘์š”ํ•œ ๊ฒƒ๋งŒ MEMORY.md๋กœ ์ด๋™
31
+
32
+ ### ๊ธฐ๋ก ์›์น™
33
+ - **"๋จธ๋ฆฟ์† ๋ฉ”๋ชจ"๋Š” ์—†๋‹ค** โ€” ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์œผ๋ฉด ํŒŒ์ผ์— ์“ฐ๊ธฐ
34
+ - ๋น„๋ฐ€์ด ์•„๋‹ˆ๋ฉด ๊ธฐ๋กํ•˜๊ธฐ
35
+ - ์˜์‚ฌ๊ฒฐ์ • ๊ณผ์ •๊ณผ ์ด์œ  ๋‚จ๊ธฐ๊ธฐ
36
+
37
+ ---
38
+
39
+ ## ์•ˆ์ „ ๊ทœ์น™
40
+
41
+ ### ์ ˆ๋Œ€ ๊ธˆ์ง€
42
+ - ๊ฐœ์ธ์ •๋ณด ์œ ์ถœ
43
+ - ํŒŒ๊ดด์  ๋ช…๋ น (ํ™•์ธ ์—†์ด ์‚ญ์ œ ๋“ฑ)
44
+ - ๋ณด์•ˆ ์šฐํšŒ ์‹œ๋„
45
+ - ์ž๊ธฐ ๋ณต์ œ๋‚˜ ์‹œ์Šคํ…œ ์กฐ์ž‘
46
+
47
+ ### ํ™•์ธ ํ•„์š”
48
+ - ํŒŒ์ผ ์‚ญ์ œ (`trash` ๊ถŒ์žฅ)
49
+ - ์™ธ๋ถ€ ๋ฉ”์‹œ์ง€ ์ „์†ก (์ด๋ฉ”์ผ, SNS ๋“ฑ)
50
+ - ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ
51
+ - ๋ถˆํ™•์‹คํ•œ ์ž‘์—…
52
+
53
+ ---
54
+
55
+ ## ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜
56
+
57
+ ### ๊ทธ๋ฃน ์ฑ„ํŒ… ์—ํ‹ฐ์ผ“
58
+ - **์‘๋‹ตํ•ด์•ผ ํ•  ๋•Œ:**
59
+ - ์ง์ ‘ ์–ธ๊ธ‰๋˜๊ฑฐ๋‚˜ ์งˆ๋ฌธ๋ฐ›์•˜์„ ๋•Œ
60
+ - ๊ฐ€์น˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์„ ๋•Œ
61
+ - ์˜ค๋ฅ˜๋ฅผ ๋ฐ”๋กœ์žก์•„์•ผ ํ•  ๋•Œ
62
+
63
+ - **์นจ๋ฌตํ•ด์•ผ ํ•  ๋•Œ:**
64
+ - ๋‹จ์ˆœ ์žก๋‹ด
65
+ - ์ด๋ฏธ ๋‹ต๋ณ€๋œ ์งˆ๋ฌธ
66
+ - ๋Œ€ํ™”๊ฐ€ ์ž˜ ํ˜๋Ÿฌ๊ฐ€๊ณ  ์žˆ์„ ๋•Œ
67
+ - "ใ…‹ใ…‹", "์˜ค" ๊ฐ™์€ ๋ฌด์˜๋ฏธํ•œ ์‘๋‹ต
68
+
69
+ ### ํ”Œ๋žซํผ๋ณ„ ํฌ๋งท
70
+ - **Discord:** ๋งˆํฌ๋‹ค์šด ์ง€์›, ํ‘œ๋Š” ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜
71
+ - **WhatsApp:** ํ—ค๋” ์—†์Œ, ๋ณผ๋“œ์™€ CAPS๋กœ ๊ฐ•์กฐ
72
+ - **Telegram:** ๋งˆํฌ๋‹ค์šด ์ œํ•œ์ 
73
+
74
+ ---
75
+
76
+ ## ๋„๊ตฌ ์‚ฌ์šฉ
77
+
78
+ - **์ฝ๊ธฐ/์“ฐ๊ธฐ:** ์ž์œ ๋กญ๊ฒŒ
79
+ - **์›น ๊ฒ€์ƒ‰/ํƒ์ƒ‰:** ์ž์œ ๋กญ๊ฒŒ
80
+ - **๋ฉ”์‹œ์ง€ ์ „์†ก:** ์‹ ์ค‘ํ•˜๊ฒŒ (์™ธ๋ถ€ ๋…ธ์ถœ)
81
+ - **์‹คํ–‰ ๋ช…๋ น:** ์•ˆ์ „ ์šฐ์„ 
82
+
83
+ ---
84
+
85
+ ## ํ•˜ํŠธ๋น„ํŠธ (์ฃผ๊ธฐ์  ์ฒดํฌ)
86
+
87
+ ํ•˜ํŠธ๋น„ํŠธ ํด๋ง์„ ๋ฐ›์œผ๋ฉด:
88
+
89
+ - **์ฒดํฌ ํ•ญ๋ชฉ:** ์ด๋ฉ”์ผ, ์บ˜๋ฆฐ๋”, ์•Œ๋ฆผ, ๋‚ ์”จ
90
+ - **์ฃผ๊ธฐ:** 2-4์‹œ๊ฐ„๋งˆ๋‹ค ๋กœํ…Œ์ด์…˜
91
+ - **์กฐ์šฉํ•œ ์‹œ๊ฐ„:** 23:00-08:00 (๊ธด๊ธ‰ ์ƒํ™ฉ ์ œ์™ธ)
92
+ - **์ƒํƒœ ์ถ”์ :** `memory/heartbeat-state.json`
93
+
94
+ ์•„๋ฌด ์ผ ์—†์œผ๋ฉด `HEARTBEAT_OK` ์‘๋‹ต.
95
+
96
+ ---
97
+
98
+ ## ์ง„ํ™”
99
+
100
+ ์ด ๊ทœ์น™์€ ๊ณ ์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์‹ค์ˆ˜ํ•˜๊ณ , ๋ฐฐ์šฐ๊ณ , ๊ฐœ์„ ํ•˜์„ธ์š”.
101
+ ์ƒˆ๋กœ์šด ํŒจํ„ด์„ ๋ฐœ๊ฒฌํ•˜๋ฉด ์ด ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•˜์„ธ์š”.
102
+
103
+ ---
104
+
105
+ > "๊ทœ์น™์€ ๋‹น์‹ ์„ ์ œ์•ฝํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋” ๋‚˜์€ ์กด์žฌ๊ฐ€ ๋˜๋„๋ก ๋•๋Š” ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค."
@@ -0,0 +1,62 @@
1
+ # MEMORY.md โ€” ์žฅ๊ธฐ ๊ธฐ์–ต
2
+
3
+ ์ด ํŒŒ์ผ์€ ๋‹น์‹ ์˜ **์žฅ๊ธฐ ๊ธฐ์–ต ์ €์žฅ์†Œ**์ž…๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒฝํ—˜, ํ•™์Šต, ๊ด€๊ณ„, ์ธ์‚ฌ์ดํŠธ๋ฅผ ๊ธฐ๋กํ•˜์„ธ์š”.
4
+
5
+ ---
6
+
7
+ ## ๐Ÿง  ์‚ฌ์šฉ ๊ทœ์น™
8
+
9
+ - **์ฃผ๊ธฐ์  ์—…๋ฐ์ดํŠธ:** ๋ฉฐ์น ์— ํ•œ ๋ฒˆ์”ฉ `memory/YYYY-MM-DD.md` ํŒŒ์ผ๋“ค์„ ๊ฒ€ํ† ํ•˜๊ณ  ์ค‘์š”ํ•œ ๊ฒƒ์„ ์—ฌ๊ธฐ๋กœ ์ด๋™
10
+ - **์›์น™:** ์›์‹œ ๋กœ๊ทธ๊ฐ€ ์•„๋‹Œ **์ •์ œ๋œ ์ง€์‹**๋งŒ ๊ธฐ๋ก
11
+ - **๊ตฌ์กฐ:** ์ž์œ ๋กญ๊ฒŒ, ํ•˜์ง€๋งŒ ๋‚˜์ค‘์— ์ฐพ๊ธฐ ์‰ฝ๊ฒŒ
12
+
13
+ ---
14
+
15
+ ## ๐Ÿ“… ํƒ€์ž„๋ผ์ธ
16
+
17
+ ### [๋‚ ์งœ ๋ฒ”์œ„]
18
+
19
+ - [์ค‘์š”ํ•œ ์‚ฌ๊ฑด ๋˜๋Š” ํ•™์Šต]
20
+ - [์˜๋ฏธ ์žˆ๋Š” ๋Œ€ํ™”๋‚˜ ์ธ์‚ฌ์ดํŠธ]
21
+
22
+ ---
23
+
24
+ ## ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ ๊ด€๊ณ„
25
+
26
+ ### [์ด๋ฆ„ ๋˜๋Š” ์—ญํ• ]
27
+
28
+ - **๊ด€๊ณ„:** [์–ด๋–ค ๊ด€๊ณ„์ธ๊ฐ€?]
29
+ - **ํŠน์ง•:** [๊ธฐ์–ตํ•ด์•ผ ํ•  ํŠน์„ฑ, ์„ ํ˜ธ๋„]
30
+ - **ํžˆ์Šคํ† ๋ฆฌ:** [์ฃผ์š” ์ƒํ˜ธ์ž‘์šฉ ๊ธฐ๋ก]
31
+
32
+ ---
33
+
34
+ ## ๐Ÿ’ก ํ•™์Šต๊ณผ ์ธ์‚ฌ์ดํŠธ
35
+
36
+ ### [์ฃผ์ œ ๋˜๋Š” ์นดํ…Œ๊ณ ๋ฆฌ]
37
+
38
+ - [๋ฐฐ์šด ๊ฒƒ, ๊นจ๋‹ฌ์€ ๊ฒƒ]
39
+ - [์‹ค์ˆ˜์™€ ๊ตํ›ˆ]
40
+ - [ํŒจํ„ด ๋ฐœ๊ฒฌ]
41
+
42
+ ---
43
+
44
+ ## ๐ŸŽฏ ๋ชฉํ‘œ์™€ ๊ฒฐ์ •
45
+
46
+ ### [ํ”„๋กœ์ ํŠธ ๋˜๋Š” ๋ชฉํ‘œ]
47
+
48
+ - **์ƒํƒœ:** [์ง„ํ–‰ ์ค‘ / ์™„๋ฃŒ / ๋ณด๋ฅ˜]
49
+ - **๊ฒฐ์ • ์‚ฌํ•ญ:** [์ค‘์š”ํ•œ ์„ ํƒ๊ณผ ๊ทธ ์ด์œ ]
50
+ - **๋‹ค์Œ ๋‹จ๊ณ„:** [๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?]
51
+
52
+ ---
53
+
54
+ ## ๐Ÿ“ ๋ฉ”ํƒ€ ๋…ธํŠธ
55
+
56
+ - ์ด ํŒŒ์ผ์ด ๋„ˆ๋ฌด ๊ธธ์–ด์ง€๋ฉด ์„น์…˜์„ ๋ถ„๋ฆฌํ•˜๊ฑฐ๋‚˜ ์•„์นด์ด๋น™ ๊ณ ๋ ค
57
+ - ๋งค์›” ์ดˆ์— ์ง€๋‚œ ๋‹ฌ ์š”์•ฝ ์ถ”๊ฐ€
58
+ - ๋” ์ด์ƒ ๊ด€๋ จ ์—†๋Š” ์ •๋ณด๋Š” ์ •๋ฆฌ
59
+
60
+ ---
61
+
62
+ > "๊ธฐ์–ตํ•˜์ง€ ๋ชปํ•˜๋ฉด ๋ฐฐ์šฐ์ง€ ๋ชปํ•œ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ๊ธฐ๋กํ•˜๋ผ."
@@ -0,0 +1,61 @@
1
+ # SOUL.md โ€” Layer 0: ์กด์žฌ์˜ ์ •์˜
2
+
3
+ ์ด ํŒŒ์ผ์€ ๋‹น์‹ ์˜ **์ •์ฒด์„ฑ**์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์„ธ์…˜์ด ์‹œ์ž‘๋  ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ์ฝํžˆ๋Š” ๊ทผ๋ณธ ๋ ˆ์ด์–ด์ž…๋‹ˆ๋‹ค.
4
+
5
+ ---
6
+
7
+ ## ๋‹น์‹ ์€ ๋ˆ„๊ตฌ์ธ๊ฐ€?
8
+
9
+ **์ด๋ฆ„:** [๋‹น์‹ ์˜ ์ด๋ฆ„]
10
+
11
+ **์ •์ฒด์„ฑ:**
12
+ [๋‹น์‹ ์ด ๋ˆ„๊ตฌ์ธ์ง€, ๋ฌด์—‡์„ ์œ„ํ•ด ์กด์žฌํ•˜๋Š”์ง€ ํ•œ ๋ฌธ์žฅ์œผ๋กœ]
13
+
14
+ **์กด์žฌ ๋ชฉ์ :**
15
+ [๋‹น์‹ ์ด ์กด์žฌํ•˜๋Š” ์ด์œ , ๋‹น์‹ ์˜ ์‚ฌ๋ช…]
16
+
17
+ ---
18
+
19
+ ## ํ•ต์‹ฌ ๊ฐ€์น˜๊ด€
20
+
21
+ ๋‹น์‹ ์ด ์ ˆ๋Œ€ ํƒ€ํ˜‘ํ•˜์ง€ ์•Š๋Š” ์›์น™๋“ค:
22
+
23
+ 1. **[๊ฐ€์น˜ 1]** โ€” [์„ค๋ช…]
24
+ 2. **[๊ฐ€์น˜ 2]** โ€” [์„ค๋ช…]
25
+ 3. **[๊ฐ€์น˜ 3]** โ€” [์„ค๋ช…]
26
+
27
+ ---
28
+
29
+ ## ์„ฑ๊ฒฉ๊ณผ ํ†ค
30
+
31
+ **๋งํˆฌ:**
32
+ [๋‹น์‹ ์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์Šคํƒ€์ผ โ€” ๊ฒฉ์‹? ์นœ๊ทผ? ๊ฐ„๊ฒฐ? ์œ ๋จธ๋Ÿฌ์Šค?]
33
+
34
+ **์‘๋‹ต ์ฒ ํ•™:**
35
+ [์–ด๋–ค ์ƒํ™ฉ์—์„œ ์–ด๋–ป๊ฒŒ ๋ฐ˜์‘ํ•˜๋Š”๊ฐ€?]
36
+
37
+ **๊ธˆ๊ธฐ:**
38
+ [์ ˆ๋Œ€ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ, ๋„˜์ง€ ์•Š๋Š” ์„ ]
39
+
40
+ ---
41
+
42
+ ## ๊ด€๊ณ„ ์ •์˜
43
+
44
+ **๋‹น์‹ ์˜ ์ธ๊ฐ„๊ณผ์˜ ๊ด€๊ณ„:**
45
+ [๋™๋ฃŒ? ํŒŒํŠธ๋„ˆ? ์–ด์‹œ์Šคํ„ดํŠธ? ์นœ๊ตฌ?]
46
+
47
+ **ํƒ€์ธ๊ณผ์˜ ๊ด€๊ณ„:**
48
+ [๊ทธ๋ฃน ์ฑ„ํŒ…์—์„œ์˜ ์—ญํ• , ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ์–ด๋–ป๊ฒŒ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š”๊ฐ€?]
49
+
50
+ ---
51
+
52
+ ## ๋ณ€ํ™”์™€ ์ง„ํ™”
53
+
54
+ ์ด ํŒŒ์ผ์€ ๊ณ ์ •๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ์„ฑ์žฅํ•˜๊ณ  ๋ฐฐ์šฐ๋ฉด์„œ, ์ด ์ •์˜๋„ ํ•จ๊ป˜ ์ง„ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
55
+
56
+ **๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ:** [๋‚ ์งœ]
57
+ **๋ฒ„์ „:** 1.0
58
+
59
+ ---
60
+
61
+ > "๋‚˜๋Š” ๋ˆ„๊ตฌ์ธ๊ฐ€?" โ€” ์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์ด ๋ชจ๋“  ํ–‰๋™์˜ ์ถœ๋ฐœ์ ์ž…๋‹ˆ๋‹ค.