@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
package/CHANGELOG.md ADDED
@@ -0,0 +1,67 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.1.0] - 2026-02-01
9
+
10
+ ### Changed
11
+
12
+ - **OpenClaw Compatibility** - Updated all Clawdbot references to OpenClaw throughout codebase
13
+ - Renamed internal references from Clawdbot patterns to OpenClaw patterns
14
+ - Updated documentation and comments for consistency
15
+
16
+ ### Added
17
+
18
+ - **Onboarding Auto-Redirect** - Automatic redirect to viewer after completing onboarding wizard
19
+ - WebSocket setup wizard enhancements for better UX
20
+ - Tool handlers for phases 7, 8, 9 of onboarding
21
+
22
+ ### Fixed
23
+
24
+ - Onboarding completion detection with proper tool handlers
25
+ - Setup WebSocket redirect message handling
26
+
27
+ ## [1.0.0] - 2026-01-28
28
+
29
+ ### Added
30
+
31
+ #### Core Foundation
32
+
33
+ - **OAuth Token Manager** - Claude Pro OAuth token reading and automatic refresh
34
+ - **Agent Loop Engine** - Claude API calls with MCP tool execution loop
35
+ - **CLI** - `mama init/start/stop/status` commands for daemon management
36
+
37
+ #### Scheduling
38
+
39
+ - **Cron Scheduler** - node-cron based job scheduling with cron expressions
40
+ - **Heartbeat API** - `/api/heartbeat` and `/api/cron` REST endpoints
41
+ - **Schedule Persistence** - SQLite-based schedule storage with crash recovery
42
+
43
+ #### Messenger Integration
44
+
45
+ - **Discord Gateway** - discord.js v14 bot with DM and channel mention support
46
+ - **Slack Gateway** - Socket Mode integration with thread context preservation
47
+ - **Message Router** - Unified message routing with session management
48
+ - **Context Injector** - Proactive MAMA decision retrieval for context-aware responses
49
+
50
+ #### Infrastructure
51
+
52
+ - **Session Store** - Conversation session management with rolling context
53
+ - **Message Splitter** - Platform-aware message chunking (2000 chars for Discord, 40000 for Slack)
54
+ - **Job Locking** - Distributed job execution safety with SQLite locks
55
+
56
+ ### Dependencies
57
+
58
+ - Requires Claude Pro subscription
59
+ - Node.js 22+
60
+ - Claude Code (OAuth token source)
61
+
62
+ ### Technical Details
63
+
64
+ - TypeScript implementation with full type definitions
65
+ - 335 unit and integration tests
66
+ - Express.js based API server
67
+ - SQLite database for persistence
package/README.md ADDED
@@ -0,0 +1,643 @@
1
+ # @jungjaehoon/mama-os
2
+
3
+ > **Your AI Operating System**
4
+ > _Control + Visibility for AI-Powered Automation_
5
+
6
+ Always-on AI assistant powered by Claude CLI with gateway integrations and autonomous agent capabilities.
7
+
8
+ ## What is MAMA OS?
9
+
10
+ MAMA OS transforms Claude into an always-on AI assistant that runs continuously on your machine. Unlike the MCP server that requires a client, MAMA OS operates independently with:
11
+
12
+ - **Gateway Integrations** - Discord, Slack, Telegram bot support
13
+ - **Autonomous Agent Loop** - Continuous conversation handling via Claude CLI (OAuth-based)
14
+ - **MAMA OS** - Built-in graph viewer and mobile chat interface
15
+ - **Skills System** - Pluggable skills for document analysis, image translation, and more
16
+ - **Cron Scheduler** - Scheduled task execution with heartbeat monitoring
17
+
18
+ **Use cases:**
19
+
20
+ - Run MAMA as a Discord/Slack/Telegram bot for your team
21
+ - Build custom workflows with the skills API
22
+ - Access Claude from anywhere via mobile chat
23
+ - Automate tasks with scheduled cron jobs
24
+
25
+ ## Installation
26
+
27
+ ```bash
28
+ # Install globally
29
+ npm install -g @jungjaehoon/mama-os
30
+
31
+ # Or use with npx (no installation)
32
+ npx @jungjaehoon/mama-os init
33
+ ```
34
+
35
+ ## Prerequisites
36
+
37
+ - **Node.js** >= 22.0.0 (required for native TypeScript support)
38
+ - **Claude CLI** - Install via `npm install -g @anthropic-ai/claude-code` and run `claude` once to authenticate
39
+ - **500MB disk space** - For embedding model cache
40
+
41
+ ## Quick Start
42
+
43
+ Get MAMA running in 30 seconds:
44
+
45
+ ```bash
46
+ # 1. Authenticate Claude CLI (one-time)
47
+ claude
48
+ # Follow OAuth prompts in browser
49
+
50
+ # 2. Initialize workspace
51
+ mama init
52
+
53
+ # 3. Start the agent
54
+ mama start
55
+
56
+ # 4. Check status
57
+ mama status
58
+ ```
59
+
60
+ MAMA will start in daemon mode and run continuously in the background.
61
+
62
+ ## CLI Commands
63
+
64
+ | Command | Description | Options |
65
+ | ------------------- | ------------------------------------ | --------------------------------------------------------------------------------------------- |
66
+ | `mama init` | Initialize MAMA workspace | `-f, --force` - Overwrite existing config<br>`--skip-auth-check` - Skip API key validation |
67
+ | `mama setup` | Interactive setup wizard with Claude | `-p, --port <port>` - Port number (default: 3847)<br>`--no-browser` - Don't auto-open browser |
68
+ | `mama start` | Start MAMA agent | `-f, --foreground` - Run in foreground (not daemon) |
69
+ | `mama stop` | Stop MAMA agent | |
70
+ | `mama status` | Check agent status | |
71
+ | `mama run <prompt>` | Execute single prompt (testing) | `-v, --verbose` - Detailed output |
72
+
73
+ ### Command Examples
74
+
75
+ ```bash
76
+ # Initialize with force (overwrites existing config)
77
+ mama init --force
78
+
79
+ # Run setup wizard on custom port
80
+ mama setup --port 8080
81
+
82
+ # Start in foreground (see logs in terminal)
83
+ mama start --foreground
84
+
85
+ # Test a single prompt
86
+ mama run "What's the weather today?" --verbose
87
+ ```
88
+
89
+ ## Gateway Integrations
90
+
91
+ MAMA Standalone supports multiple chat platforms. Configure them via the setup wizard or manually in `config.yaml`.
92
+
93
+ ### Discord Bot
94
+
95
+ **Setup Steps:**
96
+
97
+ 1. Create application at https://discord.com/developers/applications
98
+ 2. Add bot and enable **MESSAGE CONTENT INTENT**
99
+ 3. Copy bot token
100
+ 4. Invite bot to your server with permissions:
101
+ - Read Messages/View Channels
102
+ - Send Messages
103
+ - Read Message History
104
+ - Add Reactions
105
+
106
+ **Configuration:**
107
+
108
+ ```yaml
109
+ gateways:
110
+ discord:
111
+ enabled: true
112
+ token: 'YOUR_DISCORD_BOT_TOKEN'
113
+ default_channel_id: '123456789' # Optional
114
+ ```
115
+
116
+ **Usage:**
117
+
118
+ ```
119
+ # In Discord
120
+ @YourBot hello!
121
+ @YourBot analyze this image [attach image]
122
+ @YourBot /translate [image with text]
123
+ ```
124
+
125
+ ### Slack Bot
126
+
127
+ **Setup Steps:**
128
+
129
+ 1. Create app at https://api.slack.com/apps
130
+ 2. Add bot token scopes:
131
+ - `channels:history`
132
+ - `channels:read`
133
+ - `chat:write`
134
+ - `users:read`
135
+ 3. Enable Socket Mode and create app-level token
136
+ 4. Install to workspace
137
+
138
+ **Configuration:**
139
+
140
+ ```yaml
141
+ gateways:
142
+ slack:
143
+ enabled: true
144
+ bot_token: 'xoxb-...'
145
+ app_token: 'xapp-...'
146
+ ```
147
+
148
+ **Usage:**
149
+
150
+ ```
151
+ # In Slack
152
+ @mama what's the status?
153
+ @mama /report
154
+ ```
155
+
156
+ ### Telegram Bot
157
+
158
+ **Setup Steps:**
159
+
160
+ 1. Message @BotFather on Telegram
161
+ 2. Send `/newbot` and follow prompts
162
+ 3. Copy bot token
163
+ 4. Get your chat ID from @userinfobot
164
+
165
+ **Configuration:**
166
+
167
+ ```yaml
168
+ gateways:
169
+ telegram:
170
+ enabled: true
171
+ token: '123456789:ABCdefGHI...'
172
+ allowed_chat_ids:
173
+ - 987654321 # Your chat ID
174
+ ```
175
+
176
+ **Usage:**
177
+
178
+ ```
179
+ # In Telegram
180
+ /start
181
+ Hello MAMA!
182
+ /translate [send image]
183
+ ```
184
+
185
+ ## MAMA OS
186
+
187
+ Built-in web interface for managing MAMA and chatting with Claude.
188
+
189
+ **Access:** `http://localhost:3847` (default port)
190
+
191
+ ### Features
192
+
193
+ **📊 Dashboard Tab**
194
+
195
+ - Gateway status overview
196
+ - Memory statistics
197
+ - Agent configuration
198
+ - Top topics
199
+
200
+ **💬 Chat Tab**
201
+
202
+ - Real-time chat with Claude Code sessions
203
+ - Voice input (Web Speech API, Korean optimized)
204
+ - Text-to-speech with adjustable speed
205
+ - Hands-free mode (auto-listen after TTS)
206
+ - Long press to copy messages (750ms)
207
+ - Slash commands: `/save`, `/search`, `/checkpoint`, `/resume`, `/help`
208
+ - Auto-checkpoint (5-minute idle auto-save)
209
+ - Session resume with banner UI
210
+ - MCP tool display (see Read, Write, Bash execution)
211
+
212
+ **🧠 Memory Tab**
213
+
214
+ - Interactive reasoning graph visualization
215
+ - Checkpoint timeline sidebar
216
+ - Draggable detail panel
217
+ - Topic filtering and search
218
+ - Export decisions (JSON, Markdown, CSV)
219
+
220
+ **⚙️ Settings Tab**
221
+
222
+ - Configure gateway tokens
223
+ - Heartbeat scheduler settings
224
+ - Agent configuration (model, max turns, timeout)
225
+
226
+ ### Mobile Access
227
+
228
+ MAMA OS is PWA-enabled and works great on mobile:
229
+
230
+ 1. Open `http://localhost:3847` on your phone
231
+ 2. Add to home screen
232
+ 3. Use voice input for hands-free interaction
233
+
234
+ **For external access** (e.g., from phone on different network), see [Security](#security) section.
235
+
236
+ ## Skills System
237
+
238
+ MAMA includes built-in skills and supports custom skill creation.
239
+
240
+ ### Built-in Skills
241
+
242
+ **📸 Image Translation**
243
+
244
+ ```
245
+ # Discord/Telegram
246
+ [Send image with text]
247
+ MAMA: [Translates text to Korean]
248
+
249
+ # Or explicitly
250
+ /translate [image]
251
+ ```
252
+
253
+ **📄 Document Analysis**
254
+
255
+ ```
256
+ # Send Excel, PDF, or Word file
257
+ MAMA: [Analyzes and summarizes content]
258
+ ```
259
+
260
+ **📊 Heartbeat Report**
261
+
262
+ ```
263
+ /report
264
+ MAMA: [Collects activity from all gateways and creates summary]
265
+ ```
266
+
267
+ ### Skill Forge
268
+
269
+ Create custom skills with AI assistance:
270
+
271
+ ```
272
+ /forge weather-check - A skill that tells weather info
273
+
274
+ # 3 AI agents collaborate:
275
+ # 1. 🏗️ Architect - Designs structure
276
+ # 2. 💻 Developer - Writes code
277
+ # 3. 🔍 QA - Quality verification
278
+
279
+ # Each step has 5-second countdown for review
280
+ ```
281
+
282
+ Skills are stored in `workspace/skills/` and auto-loaded on startup.
283
+
284
+ ## Cron Jobs & Heartbeat
285
+
286
+ ### Cron Jobs
287
+
288
+ Schedule automated tasks:
289
+
290
+ ```
291
+ # Add cron job
292
+ /cron add "0 9 * * *" "Daily morning briefing"
293
+
294
+ # List cron jobs
295
+ /cron list
296
+
297
+ # Remove cron job
298
+ /cron remove [id]
299
+ ```
300
+
301
+ **Cron syntax:**
302
+
303
+ ```
304
+ * * * * *
305
+ │ │ │ │ │
306
+ │ │ │ │ └─ Day of week (0-7, 0 and 7 are Sunday)
307
+ │ │ │ └─── Month (1-12)
308
+ │ │ └───── Day of month (1-31)
309
+ │ └─────── Hour (0-23)
310
+ └───────── Minute (0-59)
311
+ ```
312
+
313
+ **Examples:**
314
+
315
+ ```
316
+ "0 9 * * *" # Every day at 9 AM
317
+ "0 18 * * 5" # Every Friday at 6 PM
318
+ "*/30 * * * *" # Every 30 minutes
319
+ "0 0 1 * *" # First day of every month at midnight
320
+ ```
321
+
322
+ ### Heartbeat
323
+
324
+ MAMA periodically wakes up to check for new messages across gateways.
325
+
326
+ **Configuration:**
327
+
328
+ ```yaml
329
+ heartbeat:
330
+ enabled: true
331
+ interval_minutes: 30
332
+ quiet_hours:
333
+ start: 23 # 11 PM
334
+ end: 8 # 8 AM
335
+ ```
336
+
337
+ During quiet hours, heartbeat is paused to avoid notifications.
338
+
339
+ ## Onboarding Wizard
340
+
341
+ First-time setup includes a 9-phase autonomous onboarding:
342
+
343
+ 1. **The Awakening** ✨ - MAMA is born, meets you for the first time
344
+ 2. **Getting to Know You** 💬 - Natural conversation to understand your needs
345
+ 3. **Personality Quest** 🎮 - Fun scenario-based quiz (customized to your role)
346
+ 4. **The Naming Ceremony** 🏷️ - Give MAMA a unique name and emoji
347
+ 5. **Checkpoint** ✅ - Confirm all settings before proceeding
348
+ 6. **Security Talk** 🔒 - Understand capabilities and risks (mandatory)
349
+ 7. **The Connections** 🔌 - Step-by-step Discord/Slack/Telegram setup
350
+ 8. **The Demo** 🎪 - See MAMA's capabilities in action
351
+ 9. **Grand Finale** 🎉 - Complete setup and start using MAMA
352
+
353
+ **Start onboarding:**
354
+
355
+ ```bash
356
+ mama setup
357
+ ```
358
+
359
+ The wizard runs in your browser at `http://localhost:3847` and guides you through each step with Claude CLI.
360
+
361
+ ## Architecture
362
+
363
+ ```
364
+ ┌─────────────────────────────────────────────────┐
365
+ │ MAMA Standalone Architecture │
366
+ ├─────────────────────────────────────────────────┤
367
+ │ │
368
+ │ Discord Bot Slack Bot Telegram Bot │
369
+ │ │ │ │ │
370
+ │ └─────────────┴──────────────┘ │
371
+ │ │ │
372
+ │ ┌──────────▼──────────┐ │
373
+ │ │ Message Router │ │
374
+ │ │ (Gateway Layer) │ │
375
+ │ └──────────┬──────────┘ │
376
+ │ │ │
377
+ │ ┌──────────▼──────────┐ │
378
+ │ │ Agent Loop │ │
379
+ │ │ (Claude CLI) │ │
380
+ │ └──────────┬──────────┘ │
381
+ │ │ │
382
+ │ ┌──────────▼──────────┐ │
383
+ │ │ Skills System │ │
384
+ │ │ (Pluggable) │ │
385
+ │ └──────────┬──────────┘ │
386
+ │ │ │
387
+ │ ┌──────────▼──────────┐ │
388
+ │ │ MAMA Core │ │
389
+ │ │ (Memory + DB) │ │
390
+ │ └─────────────────────┘ │
391
+ │ │ │
392
+ │ ┌──────────▼──────────┐ │
393
+ │ │ MAMA OS Viewer │ │
394
+ │ │ (Web UI) │ │
395
+ │ └─────────────────────┘ │
396
+ │ │
397
+ └─────────────────────────────────────────────────┘
398
+ ```
399
+
400
+ **Key Components:**
401
+
402
+ - **Gateway Layer** - Handles Discord/Slack/Telegram message routing
403
+ - **Agent Loop** - Continuous conversation handling via Claude CLI (OAuth-based)
404
+ - **Skills System** - Pluggable capabilities (image translation, document analysis)
405
+ - **MAMA Core** - Shared memory and database (from @jungjaehoon/mama-core)
406
+ - **MAMA OS** - Web-based management interface
407
+
408
+ ## Configuration
409
+
410
+ MAMA uses `config.yaml` in your workspace directory.
411
+
412
+ **Example configuration:**
413
+
414
+ ```yaml
415
+ # Agent settings
416
+ agent:
417
+ model: 'claude-sonnet-4-20250514'
418
+ max_turns: 10
419
+ timeout_seconds: 300
420
+
421
+ # Gateway integrations
422
+ gateways:
423
+ discord:
424
+ enabled: true
425
+ token: 'YOUR_TOKEN'
426
+ default_channel_id: '123456789'
427
+
428
+ slack:
429
+ enabled: false
430
+ bot_token: 'xoxb-...'
431
+ app_token: 'xapp-...'
432
+
433
+ telegram:
434
+ enabled: false
435
+ token: '123456:ABC...'
436
+ allowed_chat_ids: []
437
+
438
+ # Heartbeat scheduler
439
+ heartbeat:
440
+ enabled: true
441
+ interval_minutes: 30
442
+ quiet_hours:
443
+ start: 23
444
+ end: 8
445
+
446
+ # Skills
447
+ skills:
448
+ enabled: true
449
+ auto_load: true
450
+ directory: './skills'
451
+
452
+ # MAMA OS
453
+ viewer:
454
+ enabled: true
455
+ port: 3847
456
+ ```
457
+
458
+ ## Security
459
+
460
+ **IMPORTANT:** MAMA Standalone has full access to your system via Claude CLI.
461
+
462
+ ### Capabilities
463
+
464
+ MAMA can:
465
+
466
+ - 🗂️ **Read/write files** - Any file your user account can access
467
+ - ⚡ **Execute commands** - Run terminal commands (npm, git, etc.)
468
+ - 🌐 **Make network requests** - Fetch data, call APIs
469
+ - 🔌 **Send messages** - Via configured gateway integrations
470
+
471
+ ### Recommendations
472
+
473
+ **For maximum safety:**
474
+
475
+ - Run MAMA in a Docker container
476
+ - Use a dedicated user account with limited permissions
477
+ - Don't give MAMA access to production systems
478
+ - Review gateway permissions carefully
479
+
480
+ **Gateway security:**
481
+
482
+ - Discord: Use role-based permissions to limit bot access
483
+ - Slack: Only install to test workspaces initially
484
+ - Telegram: Use `allowed_chat_ids` to restrict who can interact
485
+
486
+ **External access:**
487
+
488
+ If you want to access MAMA OS from outside localhost (e.g., from your phone):
489
+
490
+ 1. **Recommended:** Use Cloudflare Zero Trust tunnel with authentication
491
+ 2. **Testing only:** Use `cloudflared tunnel --url http://localhost:3847`
492
+
493
+ ⚠️ **Never expose MAMA OS to the internet without authentication** - Anyone with access can control your system via Claude.
494
+
495
+ See [Security Guide](../../docs/guides/security.md) for detailed setup instructions.
496
+
497
+ ## Environment Variables
498
+
499
+ | Variable | Description | Default |
500
+ | ---------------- | ------------------------ | -------------------------- |
501
+ | `MAMA_DB_PATH` | SQLite database location | `~/.claude/mama-memory.db` |
502
+ | `MAMA_HTTP_PORT` | MAMA OS port | `3847` |
503
+ | `MAMA_WORKSPACE` | Workspace directory | `./mama-workspace` |
504
+
505
+ > **Note:** Authentication is handled by Claude CLI OAuth. Run `claude` once to authenticate.
506
+
507
+ ## Troubleshooting
508
+
509
+ ### Agent won't start
510
+
511
+ ```bash
512
+ # Check if already running
513
+ mama status
514
+
515
+ # Stop existing instance
516
+ mama stop
517
+
518
+ # Start in foreground to see logs
519
+ mama start --foreground
520
+ ```
521
+
522
+ ### Gateway not connecting
523
+
524
+ ```bash
525
+ # Verify token in config.yaml
526
+ cat mama-workspace/config.yaml
527
+
528
+ # Check gateway status in MAMA OS
529
+ # Open http://localhost:3847 → Dashboard tab
530
+ ```
531
+
532
+ ### Claude CLI authentication errors
533
+
534
+ ```bash
535
+ # Re-authenticate Claude CLI
536
+ claude
537
+
538
+ # Check Claude CLI status
539
+ claude --version
540
+
541
+ # Test with verbose output
542
+ mama run "test" --verbose
543
+ ```
544
+
545
+ ### Port already in use
546
+
547
+ ```bash
548
+ # Change port in config.yaml
549
+ vim mama-workspace/config.yaml
550
+
551
+ # Or use setup wizard
552
+ mama setup --port 8080
553
+ ```
554
+
555
+ ## Comparison with Other Packages
556
+
557
+ | Package | Purpose | Use When |
558
+ | ---------------------------- | ------------------------------------------- | ----------------------------------- |
559
+ | **@jungjaehoon/mama-os** | Your AI Operating System (agent + gateways) | You want Discord/Slack/Telegram bot |
560
+ | **@jungjaehoon/mama-server** | MCP server for Claude clients | You use Claude Code/Desktop |
561
+ | **@jungjaehoon/mama-core** | Shared core library | You're building custom integrations |
562
+
563
+ **Not what you're looking for?**
564
+
565
+ - **For Claude Code/Desktop:** Use [@jungjaehoon/mama-server](../mcp-server/README.md)
566
+ - **For custom integrations:** Use [@jungjaehoon/mama-core](../mama-core/README.md)
567
+ - **For the full project:** See [main README](../../README.md)
568
+
569
+ ## Development
570
+
571
+ ### Project Structure
572
+
573
+ ```
574
+ packages/standalone/
575
+ ├── src/
576
+ │ ├── cli/ # CLI commands
577
+ │ ├── agent/ # Agent loop implementation
578
+ │ ├── gateways/ # Discord, Slack, Telegram
579
+ │ ├── skills/ # Built-in skills
580
+ │ ├── onboarding/ # Setup wizard
581
+ │ └── config/ # Configuration management
582
+ ├── public/
583
+ │ └── viewer/ # MAMA OS web interface
584
+ ├── templates/ # Workspace templates
585
+ └── tests/ # Test suite
586
+ ```
587
+
588
+ ### Building from Source
589
+
590
+ ```bash
591
+ # Clone repository
592
+ git clone https://github.com/jungjaehoon-lifegamez/MAMA.git
593
+ cd MAMA
594
+
595
+ # Install dependencies
596
+ pnpm install
597
+
598
+ # Build standalone package
599
+ cd packages/standalone
600
+ pnpm build
601
+
602
+ # Link for local testing
603
+ npm link
604
+
605
+ # Test
606
+ mama init
607
+ mama start --foreground
608
+ ```
609
+
610
+ ### Running Tests
611
+
612
+ ```bash
613
+ # All tests
614
+ pnpm test
615
+
616
+ # Watch mode
617
+ pnpm test:watch
618
+
619
+ # Type checking
620
+ pnpm typecheck
621
+ ```
622
+
623
+ ## Links
624
+
625
+ - [GitHub Repository](https://github.com/jungjaehoon-lifegamez/MAMA)
626
+ - [Documentation](https://github.com/jungjaehoon-lifegamez/MAMA/tree/main/docs)
627
+ - [Issues](https://github.com/jungjaehoon-lifegamez/MAMA/issues)
628
+ - [npm Package](https://www.npmjs.com/package/@jungjaehoon/mama-os)
629
+ - [MCP Server Package](https://www.npmjs.com/package/@jungjaehoon/mama-server)
630
+
631
+ ## License
632
+
633
+ MIT - see [LICENSE](../../LICENSE)
634
+
635
+ ## Acknowledgments
636
+
637
+ MAMA was inspired by [mem0](https://github.com/mem0ai/mem0) (Apache 2.0). While MAMA is a distinct implementation focused on local-first SQLite/MCP architecture, we appreciate their pioneering work in LLM memory management.
638
+
639
+ ---
640
+
641
+ **Author:** SpineLift Team
642
+ **Version:** 0.1.0
643
+ **Last Updated:** 2026-02-01