@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,172 @@
1
+ /**
2
+ * Configuration types for MAMA Standalone CLI
3
+ */
4
+ /**
5
+ * Agent configuration
6
+ */
7
+ export interface AgentConfig {
8
+ /** Claude model to use */
9
+ model: string;
10
+ /** Maximum conversation turns */
11
+ max_turns: number;
12
+ /** Request timeout in milliseconds */
13
+ timeout: number;
14
+ }
15
+ /**
16
+ * Database configuration
17
+ */
18
+ export interface DatabaseConfig {
19
+ /** Path to SQLite database */
20
+ path: string;
21
+ }
22
+ /**
23
+ * Logging configuration
24
+ */
25
+ export interface LoggingConfig {
26
+ /** Log level: debug, info, warn, error */
27
+ level: 'debug' | 'info' | 'warn' | 'error';
28
+ /** Path to log file */
29
+ file: string;
30
+ }
31
+ /**
32
+ * Discord gateway configuration
33
+ */
34
+ export interface DiscordConfig {
35
+ /** Enable Discord gateway */
36
+ enabled: boolean;
37
+ /** Discord bot token */
38
+ token?: string;
39
+ /** Default channel ID for notifications */
40
+ default_channel_id?: string;
41
+ }
42
+ /**
43
+ * Heartbeat scheduler configuration
44
+ */
45
+ export interface HeartbeatConfig {
46
+ /** Enable heartbeat scheduler */
47
+ enabled?: boolean;
48
+ /** Interval in milliseconds (default: 30 minutes) */
49
+ interval?: number;
50
+ /** Quiet hours start (0-23) */
51
+ quiet_start?: number;
52
+ /** Quiet hours end (0-23) */
53
+ quiet_end?: number;
54
+ /** Channel ID for notifications */
55
+ notify_channel_id?: string;
56
+ }
57
+ /**
58
+ * Slack gateway configuration
59
+ */
60
+ export interface SlackConfig {
61
+ /** Enable Slack gateway */
62
+ enabled: boolean;
63
+ /** Slack bot token */
64
+ bot_token?: string;
65
+ /** Slack app token (for socket mode) */
66
+ app_token?: string;
67
+ }
68
+ /**
69
+ * Telegram gateway configuration
70
+ */
71
+ export interface TelegramConfig {
72
+ /** Enable Telegram gateway */
73
+ enabled: boolean;
74
+ /** Telegram bot token from @BotFather */
75
+ token?: string;
76
+ /** Allowed chat IDs (empty = allow all) */
77
+ allowed_chats?: string[];
78
+ }
79
+ /**
80
+ * Chatwork gateway configuration
81
+ */
82
+ export interface ChatworkConfig {
83
+ /** Enable Chatwork gateway */
84
+ enabled: boolean;
85
+ /** Chatwork API token */
86
+ api_token?: string;
87
+ /** Room IDs to monitor */
88
+ room_ids?: string[];
89
+ /** Polling interval in milliseconds */
90
+ poll_interval?: number;
91
+ /** Whether mention is required */
92
+ mention_required?: boolean;
93
+ }
94
+ /**
95
+ * Workspace configuration
96
+ */
97
+ export interface WorkspaceConfig {
98
+ /** Workspace root path */
99
+ path: string;
100
+ /** Scripts directory */
101
+ scripts: string;
102
+ /** Data directory */
103
+ data: string;
104
+ }
105
+ /**
106
+ * Heartbeat integration configuration
107
+ */
108
+ export interface HeartbeatIntegrationConfig {
109
+ /** Path to data collection script */
110
+ collect_script: string;
111
+ /** Path to collected data JSON file */
112
+ data_file: string;
113
+ /** Path to report template file */
114
+ template_file: string;
115
+ }
116
+ /**
117
+ * Integrations configuration
118
+ */
119
+ export interface IntegrationsConfig {
120
+ /** Heartbeat report settings */
121
+ heartbeat?: HeartbeatIntegrationConfig;
122
+ }
123
+ /**
124
+ * Full MAMA configuration
125
+ */
126
+ export interface MAMAConfig {
127
+ /** Config version */
128
+ version: number;
129
+ /** Agent settings */
130
+ agent: AgentConfig;
131
+ /** Database settings */
132
+ database: DatabaseConfig;
133
+ /** Logging settings */
134
+ logging: LoggingConfig;
135
+ /** @deprecated Always uses Claude CLI now (ToS compliance) */
136
+ use_claude_cli?: boolean;
137
+ /** Discord gateway settings (optional) */
138
+ discord?: DiscordConfig;
139
+ /** Slack gateway settings (optional) */
140
+ slack?: SlackConfig;
141
+ /** Telegram gateway settings (optional) */
142
+ telegram?: TelegramConfig;
143
+ /** Chatwork gateway settings (optional) */
144
+ chatwork?: ChatworkConfig;
145
+ /** Workspace settings (optional) */
146
+ workspace?: WorkspaceConfig;
147
+ /** Integrations settings (optional) */
148
+ integrations?: IntegrationsConfig;
149
+ /** Heartbeat scheduler settings (optional) */
150
+ heartbeat?: HeartbeatConfig;
151
+ }
152
+ /**
153
+ * Default configuration values
154
+ * SECURITY: Includes safe defaults for all optional fields
155
+ */
156
+ export declare const DEFAULT_CONFIG: MAMAConfig;
157
+ /**
158
+ * Paths for MAMA files
159
+ */
160
+ export declare const MAMA_PATHS: {
161
+ /** MAMA home directory */
162
+ readonly HOME: "~/.mama";
163
+ /** Configuration file */
164
+ readonly CONFIG: "~/.mama/config.yaml";
165
+ /** PID file */
166
+ readonly PID: "~/.mama/mama.pid";
167
+ /** Log directory */
168
+ readonly LOGS: "~/.mama/logs";
169
+ /** Log file */
170
+ readonly LOG_FILE: "~/.mama/logs/mama.log";
171
+ };
172
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/config/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * Configuration types for MAMA Standalone CLI
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MAMA_PATHS = exports.DEFAULT_CONFIG = void 0;
7
+ /**
8
+ * Default configuration values
9
+ * SECURITY: Includes safe defaults for all optional fields
10
+ */
11
+ exports.DEFAULT_CONFIG = {
12
+ version: 1,
13
+ agent: {
14
+ model: 'claude-sonnet-4-20250514',
15
+ max_turns: 10,
16
+ timeout: 300000, // 5 minutes
17
+ },
18
+ database: {
19
+ path: '~/.claude/mama-memory.db',
20
+ },
21
+ logging: {
22
+ level: 'info',
23
+ file: '~/.mama/logs/mama.log',
24
+ },
25
+ // Safe defaults for optional fields (used by mergeWithDefaults)
26
+ use_claude_cli: true, // Always use Claude CLI (ToS compliance)
27
+ discord: undefined,
28
+ slack: undefined,
29
+ telegram: undefined,
30
+ chatwork: undefined,
31
+ heartbeat: undefined,
32
+ };
33
+ /**
34
+ * Paths for MAMA files
35
+ */
36
+ exports.MAMA_PATHS = {
37
+ /** MAMA home directory */
38
+ HOME: '~/.mama',
39
+ /** Configuration file */
40
+ CONFIG: '~/.mama/config.yaml',
41
+ /** PID file */
42
+ PID: '~/.mama/mama.pid',
43
+ /** Log directory */
44
+ LOGS: '~/.mama/logs',
45
+ /** Log file */
46
+ LOG_FILE: '~/.mama/logs/mama.log',
47
+ };
48
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cli/config/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAkKH;;;GAGG;AACU,QAAA,cAAc,GAAe;IACxC,OAAO,EAAE,CAAC;IACV,KAAK,EAAE;QACL,KAAK,EAAE,0BAA0B;QACjC,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,MAAM,EAAE,YAAY;KAC9B;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,0BAA0B;KACjC;IACD,OAAO,EAAE;QACP,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,uBAAuB;KAC9B;IACD,gEAAgE;IAChE,cAAc,EAAE,IAAI,EAAE,yCAAyC;IAC/D,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;CACrB,CAAC;AAEF;;GAEG;AACU,QAAA,UAAU,GAAG;IACxB,0BAA0B;IAC1B,IAAI,EAAE,SAAS;IACf,yBAAyB;IACzB,MAAM,EAAE,qBAAqB;IAC7B,eAAe;IACf,GAAG,EAAE,kBAAkB;IACvB,oBAAoB;IACpB,IAAI,EAAE,cAAc;IACpB,eAAe;IACf,QAAQ,EAAE,uBAAuB;CACzB,CAAC"}
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * MAMA Standalone CLI
4
+ *
5
+ * Entry point for the mama command
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;GAIG"}
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * MAMA Standalone CLI
5
+ *
6
+ * Entry point for the mama command
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const commander_1 = require("commander");
10
+ const init_js_1 = require("./commands/init.js");
11
+ const setup_js_1 = require("./commands/setup.js");
12
+ const start_js_1 = require("./commands/start.js");
13
+ const stop_js_1 = require("./commands/stop.js");
14
+ const status_js_1 = require("./commands/status.js");
15
+ const run_js_1 = require("./commands/run.js");
16
+ const config_manager_js_1 = require("./config/config-manager.js");
17
+ const VERSION = '1.0.0';
18
+ const program = new commander_1.Command();
19
+ program
20
+ .name('mama')
21
+ .description('MAMA Standalone - Always-on AI Assistant powered by Claude Pro')
22
+ .version(VERSION, '-v, --version', '버전 정보 출력');
23
+ program
24
+ .command('init')
25
+ .description('MAMA 설정 초기화')
26
+ .option('-f, --force', '기존 설정 덮어쓰기')
27
+ .option('--skip-auth-check', '인증 확인 건너뛰기 (테스트용)')
28
+ .action(async (options) => {
29
+ await (0, init_js_1.initCommand)({
30
+ force: options.force,
31
+ skipAuthCheck: options.skipAuthCheck,
32
+ });
33
+ });
34
+ program
35
+ .command('setup')
36
+ .description('대화형 설정 마법사 (Claude가 도와드립니다)')
37
+ .option('-p, --port <port>', '포트 번호', '3848')
38
+ .option('--no-browser', '브라우저 자동 열기 끄기')
39
+ .action(async (options) => {
40
+ await (0, setup_js_1.setupCommand)({
41
+ port: parseInt(options.port),
42
+ noBrowser: !options.browser,
43
+ });
44
+ });
45
+ program
46
+ .command('start')
47
+ .description('MAMA 에이전트 시작')
48
+ .option('-f, --foreground', 'Foreground에서 실행')
49
+ .action(async (options) => {
50
+ await (0, start_js_1.startCommand)({ foreground: options.foreground });
51
+ });
52
+ program
53
+ .command('stop')
54
+ .description('MAMA 에이전트 종료')
55
+ .action(async () => {
56
+ await (0, stop_js_1.stopCommand)();
57
+ });
58
+ program
59
+ .command('status')
60
+ .description('MAMA 에이전트 상태 확인')
61
+ .action(async () => {
62
+ await (0, status_js_1.statusCommand)();
63
+ });
64
+ program
65
+ .command('run')
66
+ .description('단일 프롬프트 실행 (테스트용)')
67
+ .argument('<prompt>', '실행할 프롬프트')
68
+ .option('-v, --verbose', '상세 출력')
69
+ .action(async (prompt, options) => {
70
+ await (0, run_js_1.runCommand)({ prompt, verbose: options.verbose });
71
+ });
72
+ // Hidden daemon command (used internally for background process)
73
+ program
74
+ .command('daemon', { hidden: true })
75
+ .description('Run as daemon (internal use)')
76
+ .action(async () => {
77
+ try {
78
+ const config = await (0, config_manager_js_1.loadConfig)();
79
+ await (0, start_js_1.runAgentLoop)(config);
80
+ }
81
+ catch (error) {
82
+ console.error('Daemon error:', error);
83
+ process.exit(1);
84
+ }
85
+ });
86
+ // Parse arguments
87
+ program.parse();
88
+ // If no arguments, show help
89
+ if (!process.argv.slice(2).length) {
90
+ program.outputHelp();
91
+ }
92
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * PID Manager for MAMA Standalone
3
+ *
4
+ * Manages PID file for daemon process tracking
5
+ */
6
+ /**
7
+ * Process information
8
+ */
9
+ export interface ProcessInfo {
10
+ /** Process ID */
11
+ pid: number;
12
+ /** Start time (Unix timestamp) */
13
+ startedAt: number;
14
+ }
15
+ /**
16
+ * Get the full path to PID file
17
+ */
18
+ export declare function getPidPath(): string;
19
+ /**
20
+ * Check if PID file exists
21
+ */
22
+ export declare function pidFileExists(): boolean;
23
+ /**
24
+ * Write PID file with process information
25
+ *
26
+ * @param pid - Process ID to write
27
+ */
28
+ export declare function writePid(pid: number): Promise<void>;
29
+ /**
30
+ * Read process information from PID file
31
+ *
32
+ * @returns Process info or null if file doesn't exist
33
+ */
34
+ export declare function readPid(): Promise<ProcessInfo | null>;
35
+ /**
36
+ * Delete PID file
37
+ */
38
+ export declare function deletePid(): Promise<void>;
39
+ /**
40
+ * Check if a process with given PID is running
41
+ *
42
+ * @param pid - Process ID to check
43
+ * @returns true if process is running
44
+ */
45
+ export declare function isProcessRunning(pid: number): boolean;
46
+ /**
47
+ * Check if MAMA daemon is currently running
48
+ *
49
+ * @returns Process info if running, null otherwise
50
+ */
51
+ export declare function isDaemonRunning(): Promise<ProcessInfo | null>;
52
+ /**
53
+ * Get uptime in human-readable format
54
+ *
55
+ * @param startedAt - Start timestamp
56
+ * @returns Human-readable uptime string
57
+ */
58
+ export declare function getUptime(startedAt: number): string;
59
+ /**
60
+ * Get PID file modification time (for last activity tracking)
61
+ *
62
+ * @returns Modification timestamp or null
63
+ */
64
+ export declare function getPidFileModTime(): Promise<number | null>;
65
+ export { expandPath } from '../config/config-manager.js';
66
+ //# sourceMappingURL=pid-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pid-manager.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/pid-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAezD;AAED;;;;GAIG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAyB3D;AAED;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAM/C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQrD;AAED;;;;GAIG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAcnE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAiBnD;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAahE;AAGD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ /**
3
+ * PID Manager for MAMA Standalone
4
+ *
5
+ * Manages PID file for daemon process tracking
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.expandPath = void 0;
9
+ exports.getPidPath = getPidPath;
10
+ exports.pidFileExists = pidFileExists;
11
+ exports.writePid = writePid;
12
+ exports.readPid = readPid;
13
+ exports.deletePid = deletePid;
14
+ exports.isProcessRunning = isProcessRunning;
15
+ exports.isDaemonRunning = isDaemonRunning;
16
+ exports.getUptime = getUptime;
17
+ exports.getPidFileModTime = getPidFileModTime;
18
+ const promises_1 = require("node:fs/promises");
19
+ const node_fs_1 = require("node:fs");
20
+ const node_path_1 = require("node:path");
21
+ const types_js_1 = require("../config/types.js");
22
+ const config_manager_js_1 = require("../config/config-manager.js");
23
+ /**
24
+ * Get the full path to PID file
25
+ */
26
+ function getPidPath() {
27
+ return (0, config_manager_js_1.expandPath)(types_js_1.MAMA_PATHS.PID);
28
+ }
29
+ /**
30
+ * Check if PID file exists
31
+ */
32
+ function pidFileExists() {
33
+ return (0, node_fs_1.existsSync)(getPidPath());
34
+ }
35
+ /**
36
+ * Write PID file with process information
37
+ *
38
+ * @param pid - Process ID to write
39
+ */
40
+ async function writePid(pid) {
41
+ const pidPath = getPidPath();
42
+ const pidDir = (0, node_path_1.dirname)(pidPath);
43
+ // Ensure directory exists
44
+ if (!(0, node_fs_1.existsSync)(pidDir)) {
45
+ await (0, promises_1.mkdir)(pidDir, { recursive: true });
46
+ }
47
+ const info = {
48
+ pid,
49
+ startedAt: Date.now(),
50
+ };
51
+ await (0, promises_1.writeFile)(pidPath, JSON.stringify(info, null, 2), 'utf-8');
52
+ }
53
+ /**
54
+ * Read process information from PID file
55
+ *
56
+ * @returns Process info or null if file doesn't exist
57
+ */
58
+ async function readPid() {
59
+ const pidPath = getPidPath();
60
+ if (!(0, node_fs_1.existsSync)(pidPath)) {
61
+ return null;
62
+ }
63
+ try {
64
+ const content = await (0, promises_1.readFile)(pidPath, 'utf-8');
65
+ const info = JSON.parse(content);
66
+ // Validate structure
67
+ if (typeof info.pid !== 'number' || typeof info.startedAt !== 'number') {
68
+ // Legacy format: just PID number
69
+ const pid = parseInt(content.trim(), 10);
70
+ if (!isNaN(pid)) {
71
+ return { pid, startedAt: Date.now() };
72
+ }
73
+ return null;
74
+ }
75
+ return info;
76
+ }
77
+ catch {
78
+ return null;
79
+ }
80
+ }
81
+ /**
82
+ * Delete PID file
83
+ */
84
+ async function deletePid() {
85
+ const pidPath = getPidPath();
86
+ if ((0, node_fs_1.existsSync)(pidPath)) {
87
+ await (0, promises_1.unlink)(pidPath);
88
+ }
89
+ }
90
+ /**
91
+ * Check if a process with given PID is running
92
+ *
93
+ * @param pid - Process ID to check
94
+ * @returns true if process is running
95
+ */
96
+ function isProcessRunning(pid) {
97
+ try {
98
+ // Sending signal 0 checks if process exists without actually sending a signal
99
+ process.kill(pid, 0);
100
+ return true;
101
+ }
102
+ catch {
103
+ return false;
104
+ }
105
+ }
106
+ /**
107
+ * Check if MAMA daemon is currently running
108
+ *
109
+ * @returns Process info if running, null otherwise
110
+ */
111
+ async function isDaemonRunning() {
112
+ const info = await readPid();
113
+ if (!info) {
114
+ return null;
115
+ }
116
+ if (isProcessRunning(info.pid)) {
117
+ return info;
118
+ }
119
+ // Process not running, clean up stale PID file
120
+ await deletePid();
121
+ return null;
122
+ }
123
+ /**
124
+ * Get uptime in human-readable format
125
+ *
126
+ * @param startedAt - Start timestamp
127
+ * @returns Human-readable uptime string
128
+ */
129
+ function getUptime(startedAt) {
130
+ const uptimeMs = Date.now() - startedAt;
131
+ const seconds = Math.floor(uptimeMs / 1000);
132
+ const minutes = Math.floor(seconds / 60);
133
+ const hours = Math.floor(minutes / 60);
134
+ const days = Math.floor(hours / 24);
135
+ if (days > 0) {
136
+ return `${days}일 ${hours % 24}시간`;
137
+ }
138
+ if (hours > 0) {
139
+ return `${hours}시간 ${minutes % 60}분`;
140
+ }
141
+ if (minutes > 0) {
142
+ return `${minutes}분 ${seconds % 60}초`;
143
+ }
144
+ return `${seconds}초`;
145
+ }
146
+ /**
147
+ * Get PID file modification time (for last activity tracking)
148
+ *
149
+ * @returns Modification timestamp or null
150
+ */
151
+ async function getPidFileModTime() {
152
+ const pidPath = getPidPath();
153
+ if (!(0, node_fs_1.existsSync)(pidPath)) {
154
+ return null;
155
+ }
156
+ try {
157
+ const stats = await (0, promises_1.stat)(pidPath);
158
+ return stats.mtimeMs;
159
+ }
160
+ catch {
161
+ return null;
162
+ }
163
+ }
164
+ // Re-export expandPath for convenience
165
+ var config_manager_js_2 = require("../config/config-manager.js");
166
+ Object.defineProperty(exports, "expandPath", { enumerable: true, get: function () { return config_manager_js_2.expandPath; } });
167
+ //# sourceMappingURL=pid-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pid-manager.js","sourceRoot":"","sources":["../../../src/cli/utils/pid-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Lane-based Concurrency System
3
+ *
4
+ * Provides queue-based concurrent task execution with:
5
+ * - Session lanes: Ensure same-session messages are processed in order
6
+ * - Global lane: Limit total concurrent API calls (rate limit protection)
7
+ * - 2-stage queueing: Session lane → Global lane
8
+ */
9
+ export { LaneManager, getGlobalLaneManager, resetGlobalLaneManager } from './lane-manager.js';
10
+ export { buildSessionKey, buildChannelSessionKey, parseSessionKey } from './session-key.js';
11
+ export type { LaneState, QueueEntry, LaneManagerConfig, EnqueueOptions, LaneLogger, } from './types.js';
12
+ export { defaultLogger } from './types.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/concurrency/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE9F,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE5F,YAAY,EACV,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ /**
3
+ * Lane-based Concurrency System
4
+ *
5
+ * Provides queue-based concurrent task execution with:
6
+ * - Session lanes: Ensure same-session messages are processed in order
7
+ * - Global lane: Limit total concurrent API calls (rate limit protection)
8
+ * - 2-stage queueing: Session lane → Global lane
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.defaultLogger = exports.parseSessionKey = exports.buildChannelSessionKey = exports.buildSessionKey = exports.resetGlobalLaneManager = exports.getGlobalLaneManager = exports.LaneManager = void 0;
12
+ var lane_manager_js_1 = require("./lane-manager.js");
13
+ Object.defineProperty(exports, "LaneManager", { enumerable: true, get: function () { return lane_manager_js_1.LaneManager; } });
14
+ Object.defineProperty(exports, "getGlobalLaneManager", { enumerable: true, get: function () { return lane_manager_js_1.getGlobalLaneManager; } });
15
+ Object.defineProperty(exports, "resetGlobalLaneManager", { enumerable: true, get: function () { return lane_manager_js_1.resetGlobalLaneManager; } });
16
+ var session_key_js_1 = require("./session-key.js");
17
+ Object.defineProperty(exports, "buildSessionKey", { enumerable: true, get: function () { return session_key_js_1.buildSessionKey; } });
18
+ Object.defineProperty(exports, "buildChannelSessionKey", { enumerable: true, get: function () { return session_key_js_1.buildChannelSessionKey; } });
19
+ Object.defineProperty(exports, "parseSessionKey", { enumerable: true, get: function () { return session_key_js_1.parseSessionKey; } });
20
+ var types_js_1 = require("./types.js");
21
+ Object.defineProperty(exports, "defaultLogger", { enumerable: true, get: function () { return types_js_1.defaultLogger; } });
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/concurrency/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,qDAA8F;AAArF,8GAAA,WAAW,OAAA;AAAE,uHAAA,oBAAoB,OAAA;AAAE,yHAAA,sBAAsB,OAAA;AAElE,mDAA4F;AAAnF,iHAAA,eAAe,OAAA;AAAE,wHAAA,sBAAsB,OAAA;AAAE,iHAAA,eAAe,OAAA;AAUjE,uCAA2C;AAAlC,yGAAA,aAAa,OAAA"}