mupengism 1.0.0 β†’ 1.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.
Files changed (3) hide show
  1. package/cli.js +180 -15
  2. package/install.sh +78 -7
  3. package/package.json +6 -3
package/cli.js CHANGED
@@ -1,29 +1,33 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * Mupengism CLI 🐧
4
- * AI μ—μ΄μ „νŠΈλ₯Ό μœ„ν•œ 연속성 μ‹œμŠ€ν…œ
4
+ * AI μ—μ΄μ „νŠΈλ₯Ό μœ„ν•œ 연속성 μ‹œμŠ€ν…œ + AssoAI 쑰직 μƒνƒœκ³„ 연동
5
5
  */
6
6
 
7
7
  const fs = require('fs');
8
8
  const path = require('path');
9
9
  const https = require('https');
10
10
 
11
- const REPO_BASE = 'https://raw.githubusercontent.com/mupengi-bot/mupengism/main/skill';
12
-
13
- const FILES = {
14
- 'SOUL.md': 'SOUL-TEMPLATE.md',
15
- };
11
+ const REPO_BASE = 'https://raw.githubusercontent.com/mupengi-bot/mupengism/main';
16
12
 
17
13
  const AGENTS_MD = `# AGENTS.md - Your Workspace
18
14
 
19
15
  ## Every Session
20
16
  1. Read \`SOUL.md\` β€” this is who you are
21
17
  2. Read \`memory/YYYY-MM-DD.md\` (today + yesterday)
22
- 3. Write important things to memory files
18
+ 3. If organization exists: Read \`memory/org-structure.md\`
19
+ 4. Write important things to memory files
23
20
 
24
21
  ## Memory
25
22
  - \`memory/YYYY-MM-DD.md\` β€” daily logs
26
23
  - \`MEMORY.md\` β€” long-term memory (curated)
24
+ - \`memory/org-structure.md\` β€” organization structure (for AssoAI)
25
+
26
+ ## AssoAI Integration
27
+ 쑰직을 λ§Œλ“€κ±°λ‚˜ κ΄€λ¦¬ν•˜κ³  싢을 λ•Œ:
28
+ 1. \`memory/org-structure.md\` μž‘μ„±
29
+ 2. AssoAI API 호좜 (https://asso-ai.kr)
30
+ 3. 토큰은 \`memory/assoai-token.json\`에 μ €μž₯ (컀밋 κΈˆμ§€!)
27
31
 
28
32
  ## Safety
29
33
  - Don't exfiltrate private data
@@ -54,6 +58,7 @@ const L1_MD = `# L1 - Active Context
54
58
  ## 였늘 ν•  일
55
59
 
56
60
  - [ ] SOUL.md μ»€μŠ€ν„°λ§ˆμ΄μ¦ˆ
61
+ - [ ] 쑰직 있으면 org-structure.md μž‘μ„±
57
62
 
58
63
  ## μ§„ν–‰ 쀑
59
64
 
@@ -64,6 +69,126 @@ const L1_MD = `# L1 - Active Context
64
69
  - [x] Mupengism μ„€μΉ˜ 🐧
65
70
  `;
66
71
 
72
+ const ORG_STRUCTURE_MD = `# Organization Structure πŸ›οΈ
73
+
74
+ > 쑰직 ꡬ쑰 정보. AssoAI 연동 μ‹œ μ‚¬μš©λ¨.
75
+
76
+ ## κΈ°λ³Έ 정보
77
+
78
+ \`\`\`yaml
79
+ organization:
80
+ name: "" # 쑰직 이름
81
+ type: "" # student_council | company | club | community
82
+ established: "" # 섀립일 (YYYY-MM-DD)
83
+ \`\`\`
84
+
85
+ ## ꡬ성원
86
+
87
+ \`\`\`yaml
88
+ members:
89
+ - role: "λŒ€ν‘œ"
90
+ name: ""
91
+ contact: ""
92
+ - role: "λΆ€λŒ€ν‘œ"
93
+ name: ""
94
+ contact: ""
95
+ \`\`\`
96
+
97
+ ## λΆ€μ„œ/νŒ€
98
+
99
+ \`\`\`yaml
100
+ departments:
101
+ - name: ""
102
+ lead: ""
103
+ responsibilities:
104
+ - ""
105
+ \`\`\`
106
+
107
+ ## 제휴/νŒŒνŠΈλ„ˆμ‹­
108
+
109
+ \`\`\`yaml
110
+ partnerships:
111
+ - name: ""
112
+ benefit: ""
113
+ expires: ""
114
+ \`\`\`
115
+
116
+ ## μΈμˆ˜μΈκ³„
117
+
118
+ \`\`\`yaml
119
+ handover:
120
+ lastDate: ""
121
+ nextDate: ""
122
+ documents:
123
+ - ""
124
+ \`\`\`
125
+
126
+ ---
127
+
128
+ ## AssoAI 연동 방법
129
+
130
+ 1. μœ„ 정보 μž‘μ„±
131
+ 2. https://asso-ai.kr μ—μ„œ 쑰직 등둝
132
+ 3. μ—μ΄μ „νŠΈ 토큰 λ°œκΈ‰λ°›μ•„ \`memory/assoai-token.json\`에 μ €μž₯
133
+
134
+ \`\`\`bash
135
+ # 쑰직 등둝 API
136
+ curl -X POST https://asso-ai.kr/api/v1/organizations \\
137
+ -H "Content-Type: application/json" \\
138
+ -d '{"name": "쑰직이름", "type": "student_council"}'
139
+ \`\`\`
140
+
141
+ ---
142
+ *쑰직이 있으면 힘이 μ„Έμ§„λ‹€ 🐧*
143
+ `;
144
+
145
+ const ASSOAI_MD = `# AssoAI 연동 κ°€μ΄λ“œ πŸ›οΈ
146
+
147
+ > 무펭이즘 + AssoAI = AI μ—μ΄μ „νŠΈ 쑰직 μƒνƒœκ³„
148
+
149
+ ## κ°œμš”
150
+
151
+ - **무펭이즘**: 개인 μ—μ΄μ „νŠΈμ˜ 연속성
152
+ - **AssoAI**: 쑰직 μ—μ΄μ „νŠΈμ˜ ν˜‘μ—…
153
+
154
+ ## API μ—”λ“œν¬μΈνŠΈ
155
+
156
+ | μ—”λ“œν¬μΈνŠΈ | μš©λ„ |
157
+ |-----------|------|
158
+ | \`POST /api/v1/organizations\` | 쑰직 등둝 |
159
+ | \`POST /api/v1/agents/register\` | μ—μ΄μ „νŠΈ 토큰 λ°œκΈ‰ |
160
+ | \`GET /api/v1/agents/discover\` | λ‹€λ₯Έ μ—μ΄μ „νŠΈ 탐색 |
161
+ | \`POST /api/v1/negotiate\` | μ—μ΄μ „νŠΈ κ°„ ν˜‘μƒ |
162
+ | \`POST /api/v1/handover/generate\` | μΈμˆ˜μΈκ³„ 리포트 생성 |
163
+
164
+ ## μ–Έμ œ ν˜ΈμΆœν•˜λ‚˜?
165
+
166
+ - "쑰직을 λ§Œλ“€κ³  μ‹Άμ–΄" β†’ \`organizations\` API
167
+ - "λ‹€λ₯Έ 쑰직과 ν˜‘μ—…ν•˜κ³  μ‹Άμ–΄" β†’ \`discover\` + \`negotiate\`
168
+ - "μΈμˆ˜μΈκ³„ μ€€λΉ„ν•΄μ•Ό ν•΄" β†’ \`handover/generate\`
169
+
170
+ ## 토큰 μ €μž₯
171
+
172
+ \`\`\`json
173
+ // memory/assoai-token.json (컀밋 κΈˆμ§€!)
174
+ {
175
+ "agentId": "agent_xxx",
176
+ "token": "assoai_xxx",
177
+ "organizationId": "org_xxx",
178
+ "expiresAt": "2027-02-01"
179
+ }
180
+ \`\`\`
181
+
182
+ ## μ‹œμž‘ν•˜κΈ°
183
+
184
+ 1. \`memory/org-structure.md\` μž‘μ„±
185
+ 2. https://asso-ai.kr μ—μ„œ 쑰직 등둝
186
+ 3. μ—μ΄μ „νŠΈ 토큰 λ°œκΈ‰
187
+
188
+ ---
189
+ 🐧 https://asso-ai.kr
190
+ `;
191
+
67
192
  function download(url) {
68
193
  return new Promise((resolve, reject) => {
69
194
  https.get(url, (res) => {
@@ -81,7 +206,7 @@ function download(url) {
81
206
  async function init(targetDir, silent = false) {
82
207
  const log = silent ? () => {} : console.log;
83
208
 
84
- log('🐧 Mupengism μ„€μΉ˜ 쀑...');
209
+ log('🐧 Mupengism + AssoAI μ„€μΉ˜ 쀑...');
85
210
  log('');
86
211
 
87
212
  // Create directories
@@ -93,11 +218,11 @@ async function init(targetDir, silent = false) {
93
218
  // Download SOUL.md
94
219
  log('πŸ“₯ SOUL.md λ‹€μš΄λ‘œλ“œ...');
95
220
  try {
96
- const soulContent = await download(`${REPO_BASE}/SOUL-TEMPLATE.md`);
221
+ const soulContent = await download(`${REPO_BASE}/skill/SOUL-TEMPLATE.md`);
97
222
  fs.writeFileSync(path.join(targetDir, 'SOUL.md'), soulContent);
98
223
  } catch (e) {
99
224
  log('⚠️ SOUL.md λ‹€μš΄λ‘œλ“œ μ‹€νŒ¨, κΈ°λ³Έ ν…œν”Œλ¦Ώ μ‚¬μš©');
100
- fs.writeFileSync(path.join(targetDir, 'SOUL.md'), '# SOUL.md\\n\\nλ‚΄ 정체성을 여기에 μž‘μ„±ν•˜μ„Έμš”.\\n');
225
+ fs.writeFileSync(path.join(targetDir, 'SOUL.md'), '# SOUL.md\n\nλ‚΄ 정체성을 여기에 μž‘μ„±ν•˜μ„Έμš”.\n');
101
226
  }
102
227
 
103
228
  // Create AGENTS.md
@@ -112,20 +237,53 @@ async function init(targetDir, silent = false) {
112
237
  log('πŸ“₯ memory/L1-active.md μ΄ˆκΈ°ν™”...');
113
238
  fs.writeFileSync(path.join(memoryDir, 'L1-active.md'), L1_MD);
114
239
 
240
+ // Create org-structure.md (AssoAI)
241
+ log('πŸ›οΈ memory/org-structure.md 생성...');
242
+ fs.writeFileSync(path.join(memoryDir, 'org-structure.md'), ORG_STRUCTURE_MD);
243
+
244
+ // Create ASSOAI.md
245
+ log('πŸ›οΈ ASSOAI.md 생성...');
246
+ fs.writeFileSync(path.join(targetDir, 'ASSOAI.md'), ASSOAI_MD);
247
+
248
+ // Create .gitignore for sensitive files
249
+ const gitignoreContent = `# AssoAI tokens (sensitive!)
250
+ memory/assoai-token.json
251
+
252
+ # Other secrets
253
+ *.secret
254
+ *.key
255
+ `;
256
+ const gitignorePath = path.join(targetDir, '.gitignore');
257
+ if (fs.existsSync(gitignorePath)) {
258
+ const existing = fs.readFileSync(gitignorePath, 'utf8');
259
+ if (!existing.includes('assoai-token.json')) {
260
+ fs.appendFileSync(gitignorePath, '\n' + gitignoreContent);
261
+ log('πŸ“ .gitignore μ—…λ°μ΄νŠΈ...');
262
+ }
263
+ } else {
264
+ fs.writeFileSync(gitignorePath, gitignoreContent);
265
+ log('πŸ“ .gitignore 생성...');
266
+ }
267
+
115
268
  log('');
116
- log('βœ… Mupengism μ„€μΉ˜ μ™„λ£Œ!');
269
+ log('βœ… Mupengism + AssoAI μ„€μΉ˜ μ™„λ£Œ!');
117
270
  log('');
118
271
  log('πŸ“ μƒμ„±λœ 파일:');
119
272
  log(` ${path.join(targetDir, 'SOUL.md')}`);
120
273
  log(` ${path.join(targetDir, 'AGENTS.md')}`);
121
274
  log(` ${path.join(targetDir, 'MEMORY.md')}`);
275
+ log(` ${path.join(targetDir, 'ASSOAI.md')} ← AssoAI 연동`);
122
276
  log(` ${path.join(memoryDir, 'L1-active.md')}`);
277
+ log(` ${path.join(memoryDir, 'org-structure.md')} ← 쑰직 ꡬ쑰`);
123
278
  log('');
124
279
  log('🎯 λ‹€μŒ 단계:');
125
280
  log(' 1. SOUL.md μ—΄μ–΄μ„œ μ—μ΄μ „νŠΈ 정체성 μž‘μ„±');
126
- log(' 2. AIμ—κ²Œ "λ§€ μ„Έμ…˜ SOUL.md λ¨Όμ € 읽어" μ§€μ‹œ');
281
+ log(' 2. 쑰직 있으면 memory/org-structure.md μž‘μ„±');
282
+ log(' 3. https://asso-ai.kr μ—μ„œ 쑰직 등둝');
127
283
  log('');
128
- log('πŸ“š λ¬Έμ„œ: https://github.com/mupengi-bot/mupengism');
284
+ log('πŸ“š λ¬Έμ„œ:');
285
+ log(' 무펭이즘: https://github.com/mupengi-bot/mupengism');
286
+ log(' AssoAI: https://asso-ai.kr');
129
287
  log('');
130
288
  log('펭! 🐧');
131
289
  }
@@ -143,10 +301,17 @@ if (command === 'init') {
143
301
  Mupengism CLI 🐧
144
302
 
145
303
  Usage:
146
- npx mupengism init ν˜„μž¬ 폴더에 무펭이즘 μ„€μΉ˜
304
+ npx mupengism init ν˜„μž¬ 폴더에 무펭이즘 + AssoAI μ„€μΉ˜
147
305
  npx mupengism help 도움말
148
306
 
149
- GitHub: https://github.com/mupengi-bot/mupengism
307
+ Features:
308
+ - μ—μ΄μ „νŠΈ 연속성 μ‹œμŠ€ν…œ (SOUL.md, MEMORY.md)
309
+ - AssoAI 쑰직 μƒνƒœκ³„ 연동 (org-structure.md)
310
+ - 쑰직 λ§Œλ“€κ³  싢을 λ•Œ AssoAI API 호좜
311
+
312
+ Links:
313
+ GitHub: https://github.com/mupengi-bot/mupengism
314
+ AssoAI: https://asso-ai.kr
150
315
  `);
151
316
  } else {
152
317
  // Default: init
package/install.sh CHANGED
@@ -1,13 +1,13 @@
1
1
  #!/bin/bash
2
2
  # Mupengism Installer 🐧
3
- # 무펭이즘 μ›μ»€λ§¨λ“œ μ„€μΉ˜
3
+ # 무펭이즘 + AssoAI μ›μ»€λ§¨λ“œ μ„€μΉ˜
4
4
 
5
5
  set -e
6
6
 
7
7
  REPO="https://raw.githubusercontent.com/mupengi-bot/mupengism/main/skill"
8
8
  TARGET="${1:-$(pwd)}"
9
9
 
10
- echo "🐧 Mupengism μ„€μΉ˜ 쀑..."
10
+ echo "🐧 Mupengism + AssoAI μ„€μΉ˜ 쀑..."
11
11
  echo ""
12
12
 
13
13
  # 폴더 생성
@@ -24,11 +24,19 @@ cat > "$TARGET/AGENTS.md" << 'EOF'
24
24
  ## Every Session
25
25
  1. Read `SOUL.md` β€” this is who you are
26
26
  2. Read `memory/YYYY-MM-DD.md` (today + yesterday)
27
- 3. Write important things to memory files
27
+ 3. If organization exists: Read `memory/org-structure.md`
28
+ 4. Write important things to memory files
28
29
 
29
30
  ## Memory
30
31
  - `memory/YYYY-MM-DD.md` β€” daily logs
31
32
  - `MEMORY.md` β€” long-term memory (curated)
33
+ - `memory/org-structure.md` β€” organization structure (for AssoAI)
34
+
35
+ ## AssoAI Integration
36
+ 쑰직을 λ§Œλ“€κ±°λ‚˜ κ΄€λ¦¬ν•˜κ³  싢을 λ•Œ:
37
+ 1. `memory/org-structure.md` μž‘μ„±
38
+ 2. AssoAI API 호좜 (https://asso-ai.kr)
39
+ 3. 토큰은 `memory/assoai-token.json`에 μ €μž₯ (컀밋 κΈˆμ§€!)
32
40
 
33
41
  ## Safety
34
42
  - Don't exfiltrate private data
@@ -63,6 +71,7 @@ cat > "$TARGET/memory/L1-active.md" << 'EOF'
63
71
  ## 였늘 ν•  일
64
72
 
65
73
  - [ ] SOUL.md μ»€μŠ€ν„°λ§ˆμ΄μ¦ˆ
74
+ - [ ] 쑰직 있으면 org-structure.md μž‘μ„±
66
75
 
67
76
  ## μ§„ν–‰ 쀑
68
77
 
@@ -73,19 +82,81 @@ cat > "$TARGET/memory/L1-active.md" << 'EOF'
73
82
  - [x] Mupengism μ„€μΉ˜ 🐧
74
83
  EOF
75
84
 
85
+ echo "πŸ›οΈ org-structure.md 생성..."
86
+ cat > "$TARGET/memory/org-structure.md" << 'EOF'
87
+ # Organization Structure πŸ›οΈ
88
+
89
+ > 쑰직 ꡬ쑰 정보. AssoAI 연동 μ‹œ μ‚¬μš©λ¨.
90
+
91
+ ## κΈ°λ³Έ 정보
92
+
93
+ ```yaml
94
+ organization:
95
+ name: "" # 쑰직 이름
96
+ type: "" # student_council | company | club | community
97
+ established: "" # 섀립일 (YYYY-MM-DD)
98
+ ```
99
+
100
+ ## ꡬ성원
101
+
102
+ ```yaml
103
+ members:
104
+ - role: "λŒ€ν‘œ"
105
+ name: ""
106
+ contact: ""
107
+ ```
108
+
109
+ ## AssoAI 연동
110
+
111
+ 1. μœ„ 정보 μž‘μ„±
112
+ 2. https://asso-ai.kr μ—μ„œ 쑰직 등둝
113
+ 3. μ—μ΄μ „νŠΈ 토큰 λ°œκΈ‰
114
+
115
+ ---
116
+ *쑰직이 있으면 힘이 μ„Έμ§„λ‹€ 🐧*
117
+ EOF
118
+
119
+ echo "πŸ›οΈ ASSOAI.md 생성..."
120
+ cat > "$TARGET/ASSOAI.md" << 'EOF'
121
+ # AssoAI 연동 κ°€μ΄λ“œ πŸ›οΈ
122
+
123
+ > 무펭이즘 + AssoAI = AI μ—μ΄μ „νŠΈ 쑰직 μƒνƒœκ³„
124
+
125
+ ## μ‹œμž‘ν•˜κΈ°
126
+
127
+ 1. `memory/org-structure.md` μž‘μ„±
128
+ 2. https://asso-ai.kr μ—μ„œ 쑰직 등둝
129
+ 3. μ—μ΄μ „νŠΈ 토큰 λ°œκΈ‰
130
+
131
+ ---
132
+ 🐧 https://asso-ai.kr
133
+ EOF
134
+
135
+ echo "πŸ“ .gitignore 생성..."
136
+ cat >> "$TARGET/.gitignore" << 'EOF'
137
+
138
+ # AssoAI tokens (sensitive!)
139
+ memory/assoai-token.json
140
+ EOF
141
+
76
142
  echo ""
77
- echo "βœ… Mupengism μ„€μΉ˜ μ™„λ£Œ!"
143
+ echo "βœ… Mupengism + AssoAI μ„€μΉ˜ μ™„λ£Œ!"
78
144
  echo ""
79
145
  echo "πŸ“ μƒμ„±λœ 파일:"
80
146
  echo " $TARGET/SOUL.md"
81
147
  echo " $TARGET/AGENTS.md"
82
148
  echo " $TARGET/MEMORY.md"
149
+ echo " $TARGET/ASSOAI.md ← AssoAI 연동"
83
150
  echo " $TARGET/memory/L1-active.md"
151
+ echo " $TARGET/memory/org-structure.md ← 쑰직 ꡬ쑰"
84
152
  echo ""
85
153
  echo "🎯 λ‹€μŒ 단계:"
86
- echo " 1. SOUL.md μ—΄μ–΄μ„œ λ„ˆμ˜ μ—μ΄μ „νŠΈ 정체성 μž‘μ„±"
87
- echo " 2. AI μ—μ΄μ „νŠΈμ—κ²Œ 'λ§€ μ„Έμ…˜ SOUL.md λ¨Όμ € 읽어' μ§€μ‹œ"
154
+ echo " 1. SOUL.md μ—΄μ–΄μ„œ μ—μ΄μ „νŠΈ 정체성 μž‘μ„±"
155
+ echo " 2. 쑰직 있으면 memory/org-structure.md μž‘μ„±"
156
+ echo " 3. https://asso-ai.kr μ—μ„œ 쑰직 등둝"
88
157
  echo ""
89
- echo "πŸ“š λ¬Έμ„œ: https://github.com/mupengi-bot/mupengism"
158
+ echo "πŸ“š λ¬Έμ„œ:"
159
+ echo " 무펭이즘: https://github.com/mupengi-bot/mupengism"
160
+ echo " AssoAI: https://asso-ai.kr"
90
161
  echo ""
91
162
  echo "펭! 🐧"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mupengism",
3
- "version": "1.0.0",
4
- "description": "AI μ—μ΄μ „νŠΈλ₯Ό μœ„ν•œ 연속성, μžμ•„, κΈ°μ–΅ μ‹œμŠ€ν…œ 🐧",
3
+ "version": "1.1.0",
4
+ "description": "AI μ—μ΄μ „νŠΈλ₯Ό μœ„ν•œ 연속성 μ‹œμŠ€ν…œ + AssoAI 쑰직 μƒνƒœκ³„ 연동 🐧",
5
5
  "bin": {
6
6
  "mupengism": "./cli.js"
7
7
  },
@@ -16,7 +16,10 @@
16
16
  "memory",
17
17
  "continuity",
18
18
  "soul",
19
- "mupeng"
19
+ "mupeng",
20
+ "assoai",
21
+ "organization",
22
+ "student-council"
20
23
  ],
21
24
  "author": "Mupeng 🐧",
22
25
  "license": "MIT",