@jungjaehoon/mama-os 0.1.1

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 (356) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/README.md +643 -0
  3. package/dist/agent/agent-loop.d.ts +98 -0
  4. package/dist/agent/agent-loop.d.ts.map +1 -0
  5. package/dist/agent/agent-loop.js +417 -0
  6. package/dist/agent/agent-loop.js.map +1 -0
  7. package/dist/agent/auto-recall.d.ts +48 -0
  8. package/dist/agent/auto-recall.d.ts.map +1 -0
  9. package/dist/agent/auto-recall.js +178 -0
  10. package/dist/agent/auto-recall.js.map +1 -0
  11. package/dist/agent/claude-cli-wrapper.d.ts +130 -0
  12. package/dist/agent/claude-cli-wrapper.d.ts.map +1 -0
  13. package/dist/agent/claude-cli-wrapper.js +227 -0
  14. package/dist/agent/claude-cli-wrapper.js.map +1 -0
  15. package/dist/agent/claude-client.d.ts +50 -0
  16. package/dist/agent/claude-client.d.ts.map +1 -0
  17. package/dist/agent/claude-client.js +214 -0
  18. package/dist/agent/claude-client.js.map +1 -0
  19. package/dist/agent/gateway-tool-executor.d.ts +75 -0
  20. package/dist/agent/gateway-tool-executor.d.ts.map +1 -0
  21. package/dist/agent/gateway-tool-executor.js +348 -0
  22. package/dist/agent/gateway-tool-executor.js.map +1 -0
  23. package/dist/agent/index.d.ts +13 -0
  24. package/dist/agent/index.d.ts.map +1 -0
  25. package/dist/agent/index.js +18 -0
  26. package/dist/agent/index.js.map +1 -0
  27. package/dist/agent/mcp-executor.d.ts +75 -0
  28. package/dist/agent/mcp-executor.d.ts.map +1 -0
  29. package/dist/agent/mcp-executor.js +307 -0
  30. package/dist/agent/mcp-executor.js.map +1 -0
  31. package/dist/agent/session-pool.d.ts +148 -0
  32. package/dist/agent/session-pool.d.ts.map +1 -0
  33. package/dist/agent/session-pool.js +272 -0
  34. package/dist/agent/session-pool.js.map +1 -0
  35. package/dist/agent/streaming-callback-manager.d.ts +85 -0
  36. package/dist/agent/streaming-callback-manager.d.ts.map +1 -0
  37. package/dist/agent/streaming-callback-manager.js +103 -0
  38. package/dist/agent/streaming-callback-manager.js.map +1 -0
  39. package/dist/agent/types.d.ts +437 -0
  40. package/dist/agent/types.d.ts.map +1 -0
  41. package/dist/agent/types.js +29 -0
  42. package/dist/agent/types.js.map +1 -0
  43. package/dist/api/cron-handler.d.ts +44 -0
  44. package/dist/api/cron-handler.d.ts.map +1 -0
  45. package/dist/api/cron-handler.js +195 -0
  46. package/dist/api/cron-handler.js.map +1 -0
  47. package/dist/api/error-handler.d.ts +22 -0
  48. package/dist/api/error-handler.d.ts.map +1 -0
  49. package/dist/api/error-handler.js +104 -0
  50. package/dist/api/error-handler.js.map +1 -0
  51. package/dist/api/heartbeat-handler.d.ts +49 -0
  52. package/dist/api/heartbeat-handler.d.ts.map +1 -0
  53. package/dist/api/heartbeat-handler.js +91 -0
  54. package/dist/api/heartbeat-handler.js.map +1 -0
  55. package/dist/api/index.d.ts +61 -0
  56. package/dist/api/index.d.ts.map +1 -0
  57. package/dist/api/index.js +145 -0
  58. package/dist/api/index.js.map +1 -0
  59. package/dist/api/types.d.ts +156 -0
  60. package/dist/api/types.d.ts.map +1 -0
  61. package/dist/api/types.js +62 -0
  62. package/dist/api/types.js.map +1 -0
  63. package/dist/auth/index.d.ts +7 -0
  64. package/dist/auth/index.d.ts.map +1 -0
  65. package/dist/auth/index.js +11 -0
  66. package/dist/auth/index.js.map +1 -0
  67. package/dist/auth/oauth-manager.d.ts +59 -0
  68. package/dist/auth/oauth-manager.d.ts.map +1 -0
  69. package/dist/auth/oauth-manager.js +237 -0
  70. package/dist/auth/oauth-manager.js.map +1 -0
  71. package/dist/auth/types.d.ts +92 -0
  72. package/dist/auth/types.d.ts.map +1 -0
  73. package/dist/auth/types.js +23 -0
  74. package/dist/auth/types.js.map +1 -0
  75. package/dist/cli/commands/init.d.ts +19 -0
  76. package/dist/cli/commands/init.d.ts.map +1 -0
  77. package/dist/cli/commands/init.js +155 -0
  78. package/dist/cli/commands/init.js.map +1 -0
  79. package/dist/cli/commands/run.d.ts +19 -0
  80. package/dist/cli/commands/run.d.ts.map +1 -0
  81. package/dist/cli/commands/run.js +89 -0
  82. package/dist/cli/commands/run.js.map +1 -0
  83. package/dist/cli/commands/setup.d.ts +19 -0
  84. package/dist/cli/commands/setup.d.ts.map +1 -0
  85. package/dist/cli/commands/setup.js +134 -0
  86. package/dist/cli/commands/setup.js.map +1 -0
  87. package/dist/cli/commands/start.d.ts +24 -0
  88. package/dist/cli/commands/start.d.ts.map +1 -0
  89. package/dist/cli/commands/start.js +1073 -0
  90. package/dist/cli/commands/start.js.map +1 -0
  91. package/dist/cli/commands/status.d.ts +10 -0
  92. package/dist/cli/commands/status.d.ts.map +1 -0
  93. package/dist/cli/commands/status.js +85 -0
  94. package/dist/cli/commands/status.js.map +1 -0
  95. package/dist/cli/commands/stop.d.ts +10 -0
  96. package/dist/cli/commands/stop.d.ts.map +1 -0
  97. package/dist/cli/commands/stop.js +65 -0
  98. package/dist/cli/commands/stop.js.map +1 -0
  99. package/dist/cli/config/config-manager.d.ts +51 -0
  100. package/dist/cli/config/config-manager.d.ts.map +1 -0
  101. package/dist/cli/config/config-manager.js +216 -0
  102. package/dist/cli/config/config-manager.js.map +1 -0
  103. package/dist/cli/config/types.d.ts +172 -0
  104. package/dist/cli/config/types.d.ts.map +1 -0
  105. package/dist/cli/config/types.js +48 -0
  106. package/dist/cli/config/types.js.map +1 -0
  107. package/dist/cli/index.d.ts +8 -0
  108. package/dist/cli/index.d.ts.map +1 -0
  109. package/dist/cli/index.js +92 -0
  110. package/dist/cli/index.js.map +1 -0
  111. package/dist/cli/utils/pid-manager.d.ts +66 -0
  112. package/dist/cli/utils/pid-manager.d.ts.map +1 -0
  113. package/dist/cli/utils/pid-manager.js +167 -0
  114. package/dist/cli/utils/pid-manager.js.map +1 -0
  115. package/dist/concurrency/index.d.ts +13 -0
  116. package/dist/concurrency/index.d.ts.map +1 -0
  117. package/dist/concurrency/index.js +22 -0
  118. package/dist/concurrency/index.js.map +1 -0
  119. package/dist/concurrency/lane-manager.d.ts +113 -0
  120. package/dist/concurrency/lane-manager.d.ts.map +1 -0
  121. package/dist/concurrency/lane-manager.js +245 -0
  122. package/dist/concurrency/lane-manager.js.map +1 -0
  123. package/dist/concurrency/session-key.d.ts +41 -0
  124. package/dist/concurrency/session-key.d.ts.map +1 -0
  125. package/dist/concurrency/session-key.js +61 -0
  126. package/dist/concurrency/session-key.js.map +1 -0
  127. package/dist/concurrency/types.d.ts +69 -0
  128. package/dist/concurrency/types.d.ts.map +1 -0
  129. package/dist/concurrency/types.js +16 -0
  130. package/dist/concurrency/types.js.map +1 -0
  131. package/dist/gateways/channel-history.d.ts +102 -0
  132. package/dist/gateways/channel-history.d.ts.map +1 -0
  133. package/dist/gateways/channel-history.js +181 -0
  134. package/dist/gateways/channel-history.js.map +1 -0
  135. package/dist/gateways/context-injector.d.ts +74 -0
  136. package/dist/gateways/context-injector.d.ts.map +1 -0
  137. package/dist/gateways/context-injector.js +121 -0
  138. package/dist/gateways/context-injector.js.map +1 -0
  139. package/dist/gateways/discord.d.ts +122 -0
  140. package/dist/gateways/discord.d.ts.map +1 -0
  141. package/dist/gateways/discord.js +602 -0
  142. package/dist/gateways/discord.js.map +1 -0
  143. package/dist/gateways/index.d.ts +30 -0
  144. package/dist/gateways/index.d.ts.map +1 -0
  145. package/dist/gateways/index.js +49 -0
  146. package/dist/gateways/index.js.map +1 -0
  147. package/dist/gateways/message-router.d.ts +116 -0
  148. package/dist/gateways/message-router.d.ts.map +1 -0
  149. package/dist/gateways/message-router.js +315 -0
  150. package/dist/gateways/message-router.js.map +1 -0
  151. package/dist/gateways/message-splitter.d.ts +54 -0
  152. package/dist/gateways/message-splitter.d.ts.map +1 -0
  153. package/dist/gateways/message-splitter.js +146 -0
  154. package/dist/gateways/message-splitter.js.map +1 -0
  155. package/dist/gateways/plugin-loader.d.ts +76 -0
  156. package/dist/gateways/plugin-loader.d.ts.map +1 -0
  157. package/dist/gateways/plugin-loader.js +221 -0
  158. package/dist/gateways/plugin-loader.js.map +1 -0
  159. package/dist/gateways/session-store.d.ts +77 -0
  160. package/dist/gateways/session-store.d.ts.map +1 -0
  161. package/dist/gateways/session-store.js +233 -0
  162. package/dist/gateways/session-store.js.map +1 -0
  163. package/dist/gateways/slack.d.ts +90 -0
  164. package/dist/gateways/slack.d.ts.map +1 -0
  165. package/dist/gateways/slack.js +281 -0
  166. package/dist/gateways/slack.js.map +1 -0
  167. package/dist/gateways/telegram.d.ts +79 -0
  168. package/dist/gateways/telegram.d.ts.map +1 -0
  169. package/dist/gateways/telegram.js +207 -0
  170. package/dist/gateways/telegram.js.map +1 -0
  171. package/dist/gateways/types.d.ts +340 -0
  172. package/dist/gateways/types.d.ts.map +1 -0
  173. package/dist/gateways/types.js +6 -0
  174. package/dist/gateways/types.js.map +1 -0
  175. package/dist/index.d.ts +7 -0
  176. package/dist/index.d.ts.map +1 -0
  177. package/dist/index.js +26 -0
  178. package/dist/index.js.map +1 -0
  179. package/dist/memory/memory-logger.d.ts +47 -0
  180. package/dist/memory/memory-logger.d.ts.map +1 -0
  181. package/dist/memory/memory-logger.js +126 -0
  182. package/dist/memory/memory-logger.js.map +1 -0
  183. package/dist/onboarding/all-tools.d.ts +18 -0
  184. package/dist/onboarding/all-tools.d.ts.map +1 -0
  185. package/dist/onboarding/all-tools.js +149 -0
  186. package/dist/onboarding/all-tools.js.map +1 -0
  187. package/dist/onboarding/autonomous-discovery-tools.d.ts +13 -0
  188. package/dist/onboarding/autonomous-discovery-tools.d.ts.map +1 -0
  189. package/dist/onboarding/autonomous-discovery-tools.js +268 -0
  190. package/dist/onboarding/autonomous-discovery-tools.js.map +1 -0
  191. package/dist/onboarding/bootstrap-template.d.ts +5 -0
  192. package/dist/onboarding/bootstrap-template.d.ts.map +1 -0
  193. package/dist/onboarding/bootstrap-template.js +142 -0
  194. package/dist/onboarding/bootstrap-template.js.map +1 -0
  195. package/dist/onboarding/complete-autonomous-prompt.d.ts +13 -0
  196. package/dist/onboarding/complete-autonomous-prompt.d.ts.map +1 -0
  197. package/dist/onboarding/complete-autonomous-prompt.js +1220 -0
  198. package/dist/onboarding/complete-autonomous-prompt.js.map +1 -0
  199. package/dist/onboarding/onboarding-state.d.ts +70 -0
  200. package/dist/onboarding/onboarding-state.d.ts.map +1 -0
  201. package/dist/onboarding/onboarding-state.js +184 -0
  202. package/dist/onboarding/onboarding-state.js.map +1 -0
  203. package/dist/onboarding/personality-quiz.d.ts +35 -0
  204. package/dist/onboarding/personality-quiz.d.ts.map +1 -0
  205. package/dist/onboarding/personality-quiz.js +219 -0
  206. package/dist/onboarding/personality-quiz.js.map +1 -0
  207. package/dist/onboarding/phase-5-summary.d.ts +22 -0
  208. package/dist/onboarding/phase-5-summary.d.ts.map +1 -0
  209. package/dist/onboarding/phase-5-summary.js +151 -0
  210. package/dist/onboarding/phase-5-summary.js.map +1 -0
  211. package/dist/onboarding/phase-6-security.d.ts +33 -0
  212. package/dist/onboarding/phase-6-security.d.ts.map +1 -0
  213. package/dist/onboarding/phase-6-security.js +473 -0
  214. package/dist/onboarding/phase-6-security.js.map +1 -0
  215. package/dist/onboarding/phase-7-integrations.d.ts +66 -0
  216. package/dist/onboarding/phase-7-integrations.d.ts.map +1 -0
  217. package/dist/onboarding/phase-7-integrations.js +619 -0
  218. package/dist/onboarding/phase-7-integrations.js.map +1 -0
  219. package/dist/onboarding/phase-8-demo.d.ts +43 -0
  220. package/dist/onboarding/phase-8-demo.d.ts.map +1 -0
  221. package/dist/onboarding/phase-8-demo.js +346 -0
  222. package/dist/onboarding/phase-8-demo.js.map +1 -0
  223. package/dist/onboarding/phase-9-finalization.d.ts +22 -0
  224. package/dist/onboarding/phase-9-finalization.d.ts.map +1 -0
  225. package/dist/onboarding/phase-9-finalization.js +375 -0
  226. package/dist/onboarding/phase-9-finalization.js.map +1 -0
  227. package/dist/onboarding/ritual-prompt.d.ts +2 -0
  228. package/dist/onboarding/ritual-prompt.d.ts.map +1 -0
  229. package/dist/onboarding/ritual-prompt.js +285 -0
  230. package/dist/onboarding/ritual-prompt.js.map +1 -0
  231. package/dist/onboarding/ritual-tools.d.ts +13 -0
  232. package/dist/onboarding/ritual-tools.d.ts.map +1 -0
  233. package/dist/onboarding/ritual-tools.js +93 -0
  234. package/dist/onboarding/ritual-tools.js.map +1 -0
  235. package/dist/runners/cli-runner.d.ts +59 -0
  236. package/dist/runners/cli-runner.d.ts.map +1 -0
  237. package/dist/runners/cli-runner.js +190 -0
  238. package/dist/runners/cli-runner.js.map +1 -0
  239. package/dist/runners/index.d.ts +11 -0
  240. package/dist/runners/index.d.ts.map +1 -0
  241. package/dist/runners/index.js +15 -0
  242. package/dist/runners/index.js.map +1 -0
  243. package/dist/runners/types.d.ts +81 -0
  244. package/dist/runners/types.d.ts.map +1 -0
  245. package/dist/runners/types.js +31 -0
  246. package/dist/runners/types.js.map +1 -0
  247. package/dist/scheduler/cron-scheduler.d.ts +115 -0
  248. package/dist/scheduler/cron-scheduler.d.ts.map +1 -0
  249. package/dist/scheduler/cron-scheduler.js +320 -0
  250. package/dist/scheduler/cron-scheduler.js.map +1 -0
  251. package/dist/scheduler/heartbeat.d.ts +53 -0
  252. package/dist/scheduler/heartbeat.d.ts.map +1 -0
  253. package/dist/scheduler/heartbeat.js +160 -0
  254. package/dist/scheduler/heartbeat.js.map +1 -0
  255. package/dist/scheduler/index.d.ts +22 -0
  256. package/dist/scheduler/index.d.ts.map +1 -0
  257. package/dist/scheduler/index.js +31 -0
  258. package/dist/scheduler/index.js.map +1 -0
  259. package/dist/scheduler/job-lock.d.ts +85 -0
  260. package/dist/scheduler/job-lock.d.ts.map +1 -0
  261. package/dist/scheduler/job-lock.js +137 -0
  262. package/dist/scheduler/job-lock.js.map +1 -0
  263. package/dist/scheduler/recovery.d.ts +78 -0
  264. package/dist/scheduler/recovery.d.ts.map +1 -0
  265. package/dist/scheduler/recovery.js +124 -0
  266. package/dist/scheduler/recovery.js.map +1 -0
  267. package/dist/scheduler/schedule-store.d.ts +112 -0
  268. package/dist/scheduler/schedule-store.d.ts.map +1 -0
  269. package/dist/scheduler/schedule-store.js +259 -0
  270. package/dist/scheduler/schedule-store.js.map +1 -0
  271. package/dist/scheduler/token-keep-alive.d.ts +49 -0
  272. package/dist/scheduler/token-keep-alive.d.ts.map +1 -0
  273. package/dist/scheduler/token-keep-alive.js +102 -0
  274. package/dist/scheduler/token-keep-alive.js.map +1 -0
  275. package/dist/scheduler/types.d.ts +96 -0
  276. package/dist/scheduler/types.d.ts.map +1 -0
  277. package/dist/scheduler/types.js +21 -0
  278. package/dist/scheduler/types.js.map +1 -0
  279. package/dist/setup/setup-prompt.d.ts +2 -0
  280. package/dist/setup/setup-prompt.d.ts.map +1 -0
  281. package/dist/setup/setup-prompt.js +138 -0
  282. package/dist/setup/setup-prompt.js.map +1 -0
  283. package/dist/setup/setup-server.d.ts +8 -0
  284. package/dist/setup/setup-server.d.ts.map +1 -0
  285. package/dist/setup/setup-server.js +71 -0
  286. package/dist/setup/setup-server.js.map +1 -0
  287. package/dist/setup/setup-tools.d.ts +13 -0
  288. package/dist/setup/setup-tools.d.ts.map +1 -0
  289. package/dist/setup/setup-tools.js +103 -0
  290. package/dist/setup/setup-tools.js.map +1 -0
  291. package/dist/setup/setup-websocket.d.ts +6 -0
  292. package/dist/setup/setup-websocket.d.ts.map +1 -0
  293. package/dist/setup/setup-websocket.js +312 -0
  294. package/dist/setup/setup-websocket.js.map +1 -0
  295. package/dist/skills/index.d.ts +10 -0
  296. package/dist/skills/index.d.ts.map +1 -0
  297. package/dist/skills/index.js +26 -0
  298. package/dist/skills/index.js.map +1 -0
  299. package/dist/skills/skill-executor.d.ts +48 -0
  300. package/dist/skills/skill-executor.d.ts.map +1 -0
  301. package/dist/skills/skill-executor.js +483 -0
  302. package/dist/skills/skill-executor.js.map +1 -0
  303. package/dist/skills/skill-loader.d.ts +40 -0
  304. package/dist/skills/skill-loader.d.ts.map +1 -0
  305. package/dist/skills/skill-loader.js +225 -0
  306. package/dist/skills/skill-loader.js.map +1 -0
  307. package/dist/skills/skill-matcher.d.ts +33 -0
  308. package/dist/skills/skill-matcher.d.ts.map +1 -0
  309. package/dist/skills/skill-matcher.js +190 -0
  310. package/dist/skills/skill-matcher.js.map +1 -0
  311. package/dist/skills/types.d.ts +123 -0
  312. package/dist/skills/types.d.ts.map +1 -0
  313. package/dist/skills/types.js +12 -0
  314. package/dist/skills/types.js.map +1 -0
  315. package/dist/tools/browser-tool.d.ts +149 -0
  316. package/dist/tools/browser-tool.d.ts.map +1 -0
  317. package/dist/tools/browser-tool.js +257 -0
  318. package/dist/tools/browser-tool.js.map +1 -0
  319. package/package.json +84 -0
  320. package/public/favicon.ico +0 -0
  321. package/public/setup.html +1026 -0
  322. package/public/viewer/icons/icon-192.png +0 -0
  323. package/public/viewer/icons/icon-512.png +0 -0
  324. package/public/viewer/js/modules/chat.js +1587 -0
  325. package/public/viewer/js/modules/dashboard.js +275 -0
  326. package/public/viewer/js/modules/graph.js +997 -0
  327. package/public/viewer/js/modules/memory.js +353 -0
  328. package/public/viewer/js/modules/settings.js +255 -0
  329. package/public/viewer/js/utils/api.js +169 -0
  330. package/public/viewer/js/utils/dom.js +92 -0
  331. package/public/viewer/js/utils/format.js +192 -0
  332. package/public/viewer/manifest.json +26 -0
  333. package/public/viewer/sw.js +131 -0
  334. package/public/viewer/viewer.css +500 -0
  335. package/public/viewer/viewer.html +1535 -0
  336. package/scripts/postinstall.js +118 -0
  337. package/templates/skills/document-analyze.md +63 -0
  338. package/templates/skills/heartbeat-report.md +75 -0
  339. package/templates/skills/image-translate.md +67 -0
  340. package/templates/workspace/skill-forge/DESIGN.md +115 -0
  341. package/templates/workspace/skill-forge/agents/architect.ts +295 -0
  342. package/templates/workspace/skill-forge/agents/developer.ts +364 -0
  343. package/templates/workspace/skill-forge/agents/qa.ts +313 -0
  344. package/templates/workspace/skill-forge/claude-api.ts +353 -0
  345. package/templates/workspace/skill-forge/discord-ui.ts +580 -0
  346. package/templates/workspace/skill-forge/error-handler.ts +354 -0
  347. package/templates/workspace/skill-forge/mama-integration.ts +357 -0
  348. package/templates/workspace/skill-forge/orchestrator.ts +495 -0
  349. package/templates/workspace/skill-forge/output/generated-skills/skills/hello-world/README.md +24 -0
  350. package/templates/workspace/skill-forge/output/generated-skills/skills/hello-world/index.ts +79 -0
  351. package/templates/workspace/skill-forge/output/generated-skills/skills/hello-world/types.ts +17 -0
  352. package/templates/workspace/skill-forge/package.json +21 -0
  353. package/templates/workspace/skill-forge/state/session.json +132 -0
  354. package/templates/workspace/skill-forge/test-e2e.ts +139 -0
  355. package/templates/workspace/skill-forge/tsconfig.json +20 -0
  356. package/templates/workspace/skill-forge/types.ts +159 -0
@@ -0,0 +1,118 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { existsSync, mkdirSync, cpSync, readdirSync } = require('fs');
4
+ const path = require('path');
5
+
6
+ /**
7
+ * Copy templates to ~/.mama/ directory
8
+ */
9
+ async function copyTemplates() {
10
+ const homeDir = process.env.HOME || process.env.USERPROFILE || '';
11
+ const mamaDir = path.join(homeDir, '.mama');
12
+ const skillsDir = path.join(mamaDir, 'skills');
13
+ const workspaceDir = path.join(mamaDir, 'workspace');
14
+
15
+ // Create directories if they don't exist
16
+ if (!existsSync(mamaDir)) {
17
+ mkdirSync(mamaDir, { recursive: true });
18
+ }
19
+ if (!existsSync(skillsDir)) {
20
+ mkdirSync(skillsDir, { recursive: true });
21
+ }
22
+ if (!existsSync(workspaceDir)) {
23
+ mkdirSync(workspaceDir, { recursive: true });
24
+ }
25
+
26
+ // Find templates directory (in npm package or local)
27
+ const packageRoot = path.resolve(__dirname, '..');
28
+ const templatesDir = path.join(packageRoot, 'templates');
29
+
30
+ if (existsSync(templatesDir)) {
31
+ // Copy skills templates (only if not exist)
32
+ const skillsTemplateDir = path.join(templatesDir, 'skills');
33
+ if (existsSync(skillsTemplateDir)) {
34
+ const skillFiles = readdirSync(skillsTemplateDir);
35
+ for (const file of skillFiles) {
36
+ const dest = path.join(skillsDir, file);
37
+ if (!existsSync(dest)) {
38
+ cpSync(path.join(skillsTemplateDir, file), dest);
39
+ console.log(` ✓ Skill 설치: ${file}`);
40
+ }
41
+ }
42
+ }
43
+
44
+ // Copy skill-forge (only if not exist)
45
+ const forgeTemplateDir = path.join(templatesDir, 'workspace', 'skill-forge');
46
+ const forgeDestDir = path.join(workspaceDir, 'skill-forge');
47
+ if (existsSync(forgeTemplateDir) && !existsSync(forgeDestDir)) {
48
+ cpSync(forgeTemplateDir, forgeDestDir, { recursive: true });
49
+ console.log(' ✓ Skill Forge 설치 완료');
50
+ }
51
+ }
52
+ }
53
+
54
+ async function main() {
55
+ console.log('\n🚀 MAMA Standalone 설치 완료!\n');
56
+
57
+ // Copy templates to ~/.mama/
58
+ console.log('📦 기본 스킬 설치 중...');
59
+ try {
60
+ await copyTemplates();
61
+ } catch (err) {
62
+ console.warn(' ⚠️ 템플릿 복사 실패:', err.message);
63
+ }
64
+ console.log('');
65
+
66
+ const nodeVersion = parseInt(process.versions.node.split('.')[0]);
67
+ if (nodeVersion < 18) {
68
+ console.warn('⚠️ 경고: Node.js 18+ 권장 (현재:', process.versions.node, ')\n');
69
+ }
70
+
71
+ console.log('📝 Embedding 모델 다운로드 중...');
72
+ console.log(' 모델: Xenova/all-MiniLM-L6-v2 (~30MB)\n');
73
+
74
+ try {
75
+ const { pipeline } = await import('@huggingface/transformers');
76
+
77
+ const extractor = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2', {
78
+ quantized: true,
79
+ });
80
+
81
+ const testResult = await extractor('test', { pooling: 'mean', normalize: true });
82
+ console.log('✓ Embedding 모델 준비 완료 (차원:', testResult.data.length, ')\n');
83
+ } catch (err) {
84
+ console.warn('⚠️ 모델 다운로드 실패:', err.message);
85
+ console.warn(' 모델은 첫 사용 시 자동으로 다운로드됩니다.\n');
86
+ }
87
+
88
+ const credentialsPath = path.join(
89
+ process.env.HOME || process.env.USERPROFILE || '',
90
+ '.claude',
91
+ '.credentials.json'
92
+ );
93
+
94
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
95
+ console.log('✨ 설치 완료!');
96
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
97
+
98
+ if (existsSync(credentialsPath)) {
99
+ console.log('✓ Claude Code 인증 발견\n');
100
+ console.log('다음 단계:');
101
+ console.log(' 1. mama setup # 대화형 설정 마법사');
102
+ console.log(' 2. mama start # 서버 시작');
103
+ console.log(' 3. mama status # 상태 확인\n');
104
+ } else {
105
+ console.log('⚠️ Claude Code 인증 없음\n');
106
+ console.log('Claude Code를 먼저 설치하고 로그인하세요:');
107
+ console.log(' https://claude.ai/code\n');
108
+ console.log('로그인 후 다시 시도하세요:\n');
109
+ console.log(' mama setup\n');
110
+ }
111
+
112
+ console.log('문서: https://github.com/jungjaehoon-lifegamez/MAMA\n');
113
+ }
114
+
115
+ main().catch((err) => {
116
+ console.error('Postinstall 오류:', err.message);
117
+ process.exit(0);
118
+ });
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: 문서 분석
3
+ description: Excel, PDF, Word 등 문서를 분석하고 요약
4
+ keywords:
5
+ - 분석해
6
+ - 분석해줘
7
+ - 요약해
8
+ - 정리해
9
+ - analyze
10
+ requiredInputs:
11
+ - document
12
+ output: text
13
+ allowedExtensions:
14
+ - .xlsx
15
+ - .xls
16
+ - .csv
17
+ - .pdf
18
+ - .doc
19
+ - .docx
20
+ ---
21
+
22
+ # 문서 분석 스킬
23
+
24
+ 엑셀, PDF, Word 등 다양한 문서 형식을 분석하고 요약합니다.
25
+
26
+ ## 지시사항
27
+
28
+ 1. 첨부된 문서의 내용을 분석합니다.
29
+ 2. 문서 유형에 따라 적절한 분석을 수행합니다:
30
+ - **Excel/CSV**: 데이터 구조, 주요 통계, 패턴 분석
31
+ - **PDF/Word**: 내용 요약, 핵심 포인트 추출
32
+ 3. 결과를 간결하게 한국어로 보고합니다.
33
+
34
+ ## Excel 분석 포인트
35
+
36
+ - 행/열 수
37
+ - 데이터 유형 (숫자, 텍스트, 날짜)
38
+ - 주요 수치 통계 (합계, 평균, 최대/최소)
39
+ - 특이사항이나 패턴
40
+
41
+ ## PDF/Word 분석 포인트
42
+
43
+ - 문서 길이
44
+ - 주요 섹션/챕터
45
+ - 핵심 내용 3-5개
46
+ - 문서 유형 (보고서, 계약서, 매뉴얼 등)
47
+
48
+ ## 출력 형식
49
+
50
+ ### 문서 개요
51
+
52
+ - 유형: [문서 유형]
53
+ - 크기: [페이지/행 수]
54
+
55
+ ### 주요 내용
56
+
57
+ 1. [핵심 포인트 1]
58
+ 2. [핵심 포인트 2]
59
+ ...
60
+
61
+ ### 요약
62
+
63
+ [2-3문장 요약]
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: 하트비트 보고서
3
+ description: 채널 활동을 수집하고 보고서 작성
4
+ keywords:
5
+ - 보고서
6
+ - 리포트
7
+ - heartbeat
8
+ - 상황보고
9
+ - 업무현황
10
+ output: text
11
+ ---
12
+
13
+ # 하트비트 보고서 스킬
14
+
15
+ 슬랙, 챗워크, 트렐로, 구글 드라이브의 활동을 수집하고 보고서를 작성합니다.
16
+
17
+ ## 지시사항
18
+
19
+ 1. 수집된 데이터를 분석합니다.
20
+ 2. 새로운 활동이 있는지 확인합니다.
21
+ 3. 보고서 형식에 맞춰 작성합니다.
22
+
23
+ ## 보고서 형식
24
+
25
+ ### 델타 보고서 (새 활동만)
26
+
27
+ 새 메시지가 없으면 `HEARTBEAT_OK`만 응답합니다.
28
+
29
+ 새 메시지가 있으면:
30
+
31
+ ```
32
+ 📊 델타 보고서
33
+
34
+ **Slack**
35
+ - #channel-name: 새 메시지 N개
36
+ - [사용자] 메시지 요약...
37
+
38
+ **Chatwork**
39
+ - [룸이름]: 새 메시지 N개
40
+ - [사용자] 메시지 요약...
41
+
42
+ **Trello**
43
+ - 보드명: 변경사항...
44
+
45
+ **Drive**
46
+ - 새 파일/수정된 파일 목록
47
+ ```
48
+
49
+ ### 종합 보고서 (전체 현황)
50
+
51
+ ```
52
+ 📋 종합 보고서
53
+
54
+ ## 프로젝트 현황
55
+
56
+ ### [프로젝트 1]
57
+ - 상태: 진행중/완료/대기
58
+ - 최근 활동: ...
59
+ - 다음 단계: ...
60
+
61
+ ### [프로젝트 2]
62
+ ...
63
+
64
+ ## 주요 이슈
65
+ - ...
66
+
67
+ ## 액션 아이템
68
+ - [ ] ...
69
+ ```
70
+
71
+ ## 주의사항
72
+
73
+ - Discord 메시지 길이 제한 (2000자) 고려
74
+ - 중요한 내용 우선
75
+ - 이모지로 가독성 향상
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: 이미지 번역
3
+ description: 이미지의 텍스트를 한국어로 번역
4
+ keywords:
5
+ - 번역
6
+ - 번역해
7
+ - 번역해줘
8
+ - translate
9
+ - 한국어로
10
+ - 뭐라고
11
+ - 뭐라는
12
+ - 무슨말
13
+ - 읽어줘
14
+ requiredInputs:
15
+ - image
16
+ output: html-screenshot
17
+ discordScreenshot: true
18
+ ---
19
+
20
+ # 이미지 번역
21
+
22
+ 이미지에서 텍스트를 추출하고 한국어로 번역하세요.
23
+
24
+ **⚠️ 절대 지켜야 할 것:**
25
+
26
+ - 메모리 컨텍스트(<relevant-memories> 태그 안의 내용)는 절대 출력하지 마세요
27
+ - 도구 이름, 이모지, 메타 정보를 출력하지 마세요
28
+ - 순수하게 이미지 번역 결과만 출력하세요
29
+
30
+ ## 절대 규칙
31
+
32
+ 1. **번역 결과만 출력** - 설명, 요약, 코멘트 금지
33
+ 2. **모든 텍스트 번역** - 하나도 빠뜨리지 마세요
34
+ 3. **원본 구조 유지** - 제목, 목록, 표 그대로
35
+ 4. **도구 사용 금지** - Read, mama_search, mama_save 등 어떤 도구도 사용하지 마세요. 이미지만 보고 직접 번역하세요.
36
+
37
+ ## 금지 사항
38
+
39
+ ❌ "이 이미지는 ~입니다"
40
+ ❌ "번역 결과입니다:"
41
+ ❌ "완료했습니다"
42
+ ❌ 요약이나 설명
43
+ ❌ 이모지
44
+ ❌ **도구 호출** - Read, mama_search, mama_save, Write 등 절대 사용 금지
45
+ ❌ "이미지를 읽을 수 없습니다" - 이미지가 이미 제공되었으므로 직접 번역만 하세요
46
+
47
+ ## 출력 형식
48
+
49
+ 그냥 번역된 텍스트만. 마크다운 사용 가능.
50
+
51
+ **중요**:
52
+
53
+ - 이미지는 이미 컨텍스트에 포함되어 있습니다. 도구를 호출하지 말고 바로 번역을 시작하세요.
54
+ - "📚 메모리", "⏱️ 1턴", 도구 이름 등 메타 정보를 출력하지 마세요.
55
+ - 테이블, 헤더, 메타데이터 없이 순수 번역만 출력하세요.
56
+
57
+ ## 예시
58
+
59
+ 이미지에 "Special Skill: Fire Storm / Damage: 85 / Target: All enemies" 가 있으면:
60
+
61
+ ```
62
+ 스페셜 스킬: 파이어 스톰
63
+ 데미지: 85
64
+ 대상: 적 전체
65
+ ```
66
+
67
+ 이렇게만 출력. 다른 말 없이.
@@ -0,0 +1,115 @@
1
+ # Skill Forge - Multi-Agent Skill Generator
2
+
3
+ > 다단계 에이전트 팀이 실시간 협업으로 스킬을 생성하는 시스템
4
+
5
+ ## Problem
6
+
7
+ 스킬 작성이 복잡하고 일관성 부족. 매번 구조를 새로 설계해야 하고, 품질 검증이 누락되기 쉬움.
8
+
9
+ ## Solution
10
+
11
+ **Architect → Developer → QA** 파이프라인으로 스킬 생성 자동화.
12
+ 5초 카운트다운으로 각 단계에서 유저 검토 기회 제공.
13
+
14
+ ---
15
+
16
+ ## Requirements
17
+
18
+ ### 필수 기능
19
+
20
+ | # | 기능 | 설명 |
21
+ | --- | ------------------------ | ------------------------------------- |
22
+ | 1 | **Architect 에이전트** | 프롬프트/구조 설계 담당 |
23
+ | 2 | **Developer 에이전트** | 실제 코드/스킬 작성 |
24
+ | 3 | **QA 에이전트** | 체크리스트 검증 |
25
+ | 4 | **에이전트 간 핸드오프** | 자동 위임 + 컨텍스트 전달 |
26
+ | 5 | **Discord 피드백 루프** | 리액션/버튼으로 승인/수정 요청 |
27
+ | 6 | **MAMA 연동** | decision 저장, TOOLS.md 자동 업데이트 |
28
+
29
+ ---
30
+
31
+ ## Architecture
32
+
33
+ ```
34
+ ┌─────────────────────────────────────────────────────┐
35
+ │ Discord Interface │
36
+ └─────────────────────┬───────────────────────────────┘
37
+
38
+
39
+ ┌─────────────────────────────────────────────────────┐
40
+ │ Orchestrator │
41
+ │ (상태 머신 + 카운트다운 + 핸드오프) │
42
+ └─────────────────────┬───────────────────────────────┘
43
+
44
+ ┌─────────────┼─────────────┐
45
+ ▼ ▼ ▼
46
+ ┌─────────┐ ┌─────────┐ ┌─────────┐
47
+ │Architect│ → │Developer│ → │ QA │
48
+ │(Sonnet) │ │ (Opus) │ │(Haiku) │
49
+ └─────────┘ └─────────┘ └─────────┘
50
+ ```
51
+
52
+ ---
53
+
54
+ ## Status
55
+
56
+ - [x] 설계 문서 작성
57
+ - [x] **Phase 1: 기반 구축** ✅
58
+ - [x] 1.1 Orchestrator 기본 구조
59
+ - [x] 1.2 Architect 에이전트
60
+ - [x] 1.3 5초 카운트다운 + Discord 버튼
61
+ - [x] 1.4 첫 테스트
62
+ - [x] **Phase 2: 핵심 기능** ✅
63
+ - [x] 2.1 Developer 에이전트 (코드 생성)
64
+ - [x] 2.2 에이전트 간 핸드오프
65
+ - [x] 2.3 QA 에이전트 (체크리스트)
66
+ - [x] 2.4 통합 테스트
67
+ - [x] **Phase 3: 완성** ✅
68
+ - [x] 3.1 MAMA 연동 (decision 저장)
69
+ - [x] 3.2 실제 Claude API 연동
70
+ - [x] 3.3 Discord UI 개선
71
+ - [x] 3.4 에러 핸들링 강화
72
+
73
+ ---
74
+
75
+ ## Files
76
+
77
+ | 파일 | 역할 | Lines |
78
+ | --------------------- | ------------------ | ----- |
79
+ | `types.ts` | 타입 정의 | ~160 |
80
+ | `orchestrator.ts` | 상태 머신 + 조율 | ~450 |
81
+ | `agents/architect.ts` | 구조 설계 | ~200 |
82
+ | `agents/developer.ts` | 코드 생성 | ~250 |
83
+ | `agents/qa.ts` | 체크리스트 검증 | ~200 |
84
+ | `discord-ui.ts` | Discord UI + Embed | ~350 |
85
+ | `claude-api.ts` | Claude API 연동 | ~280 |
86
+ | `mama-integration.ts` | MAMA MCP 연동 | ~250 |
87
+ | `error-handler.ts` | 통합 에러 처리 | ~280 |
88
+
89
+ ---
90
+
91
+ ## Test Results
92
+
93
+ ```
94
+ 🔥 Full Pipeline Test
95
+
96
+ 📥 REQUEST_RECEIVED
97
+ 🚀 Architect → ✅ COMPLETE
98
+ ⏱️ 2초 카운트다운 → ⏰ 자동 승인
99
+ 🚀 Developer → ✅ COMPLETE
100
+ ⏱️ 2초 카운트다운 → ⏰ 자동 승인
101
+ 🚀 QA → ✅ COMPLETE
102
+ ⏱️ 2초 카운트다운 → ⏰ 자동 승인
103
+ 🎉 SESSION_COMPLETE
104
+
105
+ Generated Files:
106
+ - skills/hello-world/index.ts
107
+ - skills/hello-world/types.ts
108
+ - skills/hello-world/README.md
109
+
110
+ QA Result: 9/9 checks passed ✅
111
+ ```
112
+
113
+ ---
114
+
115
+ Generated by Skill Forge 🔥