@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,13 @@
1
+ /**
2
+ * Agent Module for MAMA Standalone
3
+ *
4
+ * Exports:
5
+ * - AgentLoop - Main agent loop orchestrator
6
+ * - GatewayToolExecutor - Gateway tool executor (NOT MCP)
7
+ * - Types - All type definitions
8
+ */
9
+ export { AgentLoop } from './agent-loop.js';
10
+ export { GatewayToolExecutor } from './gateway-tool-executor.js';
11
+ export type { MessageRole, ContentBlockType, TextBlock, ToolUseBlock, ToolResultBlock, ContentBlock, Message, StopReason, Usage, ClaudeResponse, ClaudeErrorResponse, ClaudeRequest, ToolInputSchema, ToolDefinition, SaveDecisionInput, SaveCheckpointInput, SaveInput, SearchInput, UpdateInput, LoadCheckpointInput, GatewayToolInput, GatewayToolName, SaveResult, SearchResultItem, SearchResult, UpdateResult, LoadCheckpointResult, GatewayToolResult, AgentLoopOptions, TurnInfo, AgentLoopResult, ClaudeClientOptions, ClaudeHeaders, GatewayToolExecutorOptions, MAMAApiInterface, AgentErrorCode, StreamCallbacks, } from './types.js';
12
+ export { AgentError } from './types.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,YAAY,EAEV,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,OAAO,EACP,UAAU,EACV,KAAK,EACL,cAAc,EACd,mBAAmB,EACnB,aAAa,EAGb,eAAe,EACf,cAAc,EAGd,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EAGf,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EAGjB,gBAAgB,EAChB,QAAQ,EACR,eAAe,EAGf,mBAAmB,EACnB,aAAa,EACb,0BAA0B,EAC1B,gBAAgB,EAGhB,cAAc,EAGd,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Module for MAMA Standalone
4
+ *
5
+ * Exports:
6
+ * - AgentLoop - Main agent loop orchestrator
7
+ * - GatewayToolExecutor - Gateway tool executor (NOT MCP)
8
+ * - Types - All type definitions
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.AgentError = exports.GatewayToolExecutor = exports.AgentLoop = void 0;
12
+ var agent_loop_js_1 = require("./agent-loop.js");
13
+ Object.defineProperty(exports, "AgentLoop", { enumerable: true, get: function () { return agent_loop_js_1.AgentLoop; } });
14
+ var gateway_tool_executor_js_1 = require("./gateway-tool-executor.js");
15
+ Object.defineProperty(exports, "GatewayToolExecutor", { enumerable: true, get: function () { return gateway_tool_executor_js_1.GatewayToolExecutor; } });
16
+ var types_js_1 = require("./types.js");
17
+ Object.defineProperty(exports, "AgentError", { enumerable: true, get: function () { return types_js_1.AgentError; } });
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,iDAA4C;AAAnC,0GAAA,SAAS,OAAA;AAClB,uEAAiE;AAAxD,+HAAA,mBAAmB,OAAA;AA0D5B,uCAAwC;AAA/B,sGAAA,UAAU,OAAA"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * MAMA Tool Executor for MAMA Standalone
3
+ *
4
+ * Executes MAMA gateway tools (mama_search, mama_save, mama_update, mama_load_checkpoint, Read, discord_send).
5
+ * NOT MCP - uses Claude Messages API tool definitions.
6
+ * Supports both direct API integration and mock API for testing.
7
+ */
8
+ import type { GatewayToolName, MAMAApiInterface } from './types.js';
9
+ /**
10
+ * Discord gateway interface for sending messages
11
+ */
12
+ export interface DiscordGatewayInterface {
13
+ sendMessage(channelId: string, message: string): Promise<void>;
14
+ sendImage(channelId: string, imagePath: string, caption?: string): Promise<void>;
15
+ }
16
+ export declare class MCPExecutor {
17
+ private mamaApi;
18
+ private readonly dbPath?;
19
+ private discordGateway;
20
+ constructor(options?: {
21
+ dbPath?: string;
22
+ mamaApi?: MAMAApiInterface;
23
+ });
24
+ /**
25
+ * Set Discord gateway for discord_send tool
26
+ */
27
+ setDiscordGateway(gateway: DiscordGatewayInterface): void;
28
+ /**
29
+ * Initialize the MAMA API by importing from mcp-server package
30
+ * Called lazily on first tool execution if not provided in constructor
31
+ */
32
+ private initializeMAMAApi;
33
+ /**
34
+ * Execute an MCP tool
35
+ *
36
+ * @param toolName - Name of the tool to execute
37
+ * @param input - Tool input parameters
38
+ * @returns Tool execution result
39
+ * @throws AgentError on tool errors
40
+ */
41
+ execute(toolName: string, input: any): Promise<any>;
42
+ /**
43
+ * Execute save tool (decision or checkpoint)
44
+ */
45
+ private executeSave;
46
+ /**
47
+ * Execute search tool
48
+ */
49
+ private executeSearch;
50
+ /**
51
+ * Execute update tool
52
+ */
53
+ private executeUpdate;
54
+ /**
55
+ * Execute load_checkpoint tool
56
+ */
57
+ private executeLoadCheckpoint;
58
+ /**
59
+ * Execute read tool - Read file from filesystem
60
+ */
61
+ private executeRead;
62
+ /**
63
+ * Execute discord_send tool - Send message/image to Discord channel
64
+ */
65
+ private executeDiscordSend;
66
+ /**
67
+ * Get the list of valid tool names
68
+ */
69
+ static getValidTools(): GatewayToolName[];
70
+ /**
71
+ * Check if a tool name is valid
72
+ */
73
+ static isValidTool(toolName: string): toolName is GatewayToolName;
74
+ }
75
+ //# sourceMappingURL=mcp-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-executor.d.ts","sourceRoot":"","sources":["../../src/agent/mcp-executor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EACV,eAAe,EAWf,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AAeD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,cAAc,CAAwC;gBAElD,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,gBAAgB,CAAA;KAAO;IAQzE;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAIzD;;;OAGG;YACW,iBAAiB;IAgD/B;;;;;;;OAOG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IA2DzD;;OAEG;YACW,WAAW;IA6CzB;;OAEG;YACW,aAAa;IAyC3B;;OAEG;YACW,aAAa;IAkC3B;;OAEG;YACW,qBAAqB;IAOnC;;OAEG;YACW,WAAW;IA+BzB;;OAEG;YACW,kBAAkB;IA8BhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,eAAe,EAAE;IAIzC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,IAAI,eAAe;CAGlE"}
@@ -0,0 +1,307 @@
1
+ "use strict";
2
+ /**
3
+ * MAMA Tool Executor for MAMA Standalone
4
+ *
5
+ * Executes MAMA gateway tools (mama_search, mama_save, mama_update, mama_load_checkpoint, Read, discord_send).
6
+ * NOT MCP - uses Claude Messages API tool definitions.
7
+ * Supports both direct API integration and mock API for testing.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.MCPExecutor = void 0;
11
+ const fs_1 = require("fs");
12
+ const path_1 = require("path");
13
+ const phase_7_integrations_js_1 = require("../onboarding/phase-7-integrations.js");
14
+ const types_js_1 = require("./types.js");
15
+ /**
16
+ * Valid MAMA tool names (Gateway tools, NOT MCP)
17
+ */
18
+ const VALID_TOOLS = [
19
+ 'mama_search',
20
+ 'mama_save',
21
+ 'mama_update',
22
+ 'mama_load_checkpoint',
23
+ 'Read',
24
+ 'discord_send',
25
+ 'save_integration_token',
26
+ ];
27
+ class MCPExecutor {
28
+ mamaApi = null;
29
+ dbPath;
30
+ discordGateway = null;
31
+ constructor(options = {}) {
32
+ this.dbPath = options.dbPath;
33
+ if (options.mamaApi) {
34
+ this.mamaApi = options.mamaApi;
35
+ }
36
+ }
37
+ /**
38
+ * Set Discord gateway for discord_send tool
39
+ */
40
+ setDiscordGateway(gateway) {
41
+ this.discordGateway = gateway;
42
+ }
43
+ /**
44
+ * Initialize the MAMA API by importing from mcp-server package
45
+ * Called lazily on first tool execution if not provided in constructor
46
+ */
47
+ async initializeMAMAApi() {
48
+ if (this.mamaApi) {
49
+ return this.mamaApi;
50
+ }
51
+ try {
52
+ // Set database path if provided
53
+ if (this.dbPath) {
54
+ process.env.MAMA_DB_PATH = this.dbPath;
55
+ }
56
+ // Dynamic import of MAMA mcp-server modules
57
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
58
+ let mama, dbManager;
59
+ try {
60
+ mama = require('@jungjaehoon/mama-server/src/mama/mama-api');
61
+ dbManager = require('@jungjaehoon/mama-server/src/mama/db-manager');
62
+ }
63
+ catch {
64
+ // Fallback to direct path (for development)
65
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
66
+ mama = require('@jungjaehoon/mama-server/src/mama/mama-api.js');
67
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
68
+ dbManager = require('@jungjaehoon/mama-server/src/mama/db-manager.js');
69
+ }
70
+ // Initialize the database before using mama-api functions
71
+ await dbManager.initDB();
72
+ this.mamaApi = {
73
+ save: mama.save.bind(mama),
74
+ saveCheckpoint: mama.saveCheckpoint.bind(mama),
75
+ listDecisions: mama.list.bind(mama), // Note: mama exports listDecisions as 'list'
76
+ suggest: mama.suggest.bind(mama),
77
+ updateOutcome: mama.updateOutcome.bind(mama),
78
+ loadCheckpoint: mama.loadCheckpoint.bind(mama),
79
+ };
80
+ return this.mamaApi;
81
+ }
82
+ catch (error) {
83
+ throw new types_js_1.AgentError(`Failed to initialize MAMA API: ${error instanceof Error ? error.message : String(error)}`, 'TOOL_ERROR', error instanceof Error ? error : undefined, false);
84
+ }
85
+ }
86
+ /**
87
+ * Execute an MCP tool
88
+ *
89
+ * @param toolName - Name of the tool to execute
90
+ * @param input - Tool input parameters
91
+ * @returns Tool execution result
92
+ * @throws AgentError on tool errors
93
+ */
94
+ async execute(toolName, input) {
95
+ if (!VALID_TOOLS.includes(toolName)) {
96
+ throw new types_js_1.AgentError(`Unknown tool: ${toolName}. Valid tools: ${VALID_TOOLS.join(', ')}`, 'UNKNOWN_TOOL', undefined, false);
97
+ }
98
+ try {
99
+ // Handle non-MAMA tools first
100
+ switch (toolName) {
101
+ case 'Read':
102
+ return await this.executeRead(input);
103
+ case 'discord_send':
104
+ return await this.executeDiscordSend(input);
105
+ case 'save_integration_token':
106
+ return await (0, phase_7_integrations_js_1.handleSaveIntegrationToken)(input);
107
+ }
108
+ // MAMA tools require API
109
+ const api = await this.initializeMAMAApi();
110
+ switch (toolName) {
111
+ case 'mama_save':
112
+ return await this.executeSave(api, input);
113
+ case 'mama_search':
114
+ return await this.executeSearch(api, input);
115
+ case 'mama_update':
116
+ return await this.executeUpdate(api, input);
117
+ case 'mama_load_checkpoint':
118
+ return await this.executeLoadCheckpoint(api, input);
119
+ default:
120
+ throw new types_js_1.AgentError(`Unknown tool: ${toolName}`, 'UNKNOWN_TOOL', undefined, false);
121
+ }
122
+ }
123
+ catch (error) {
124
+ if (error instanceof types_js_1.AgentError) {
125
+ throw error;
126
+ }
127
+ throw new types_js_1.AgentError(`Tool execution failed (${toolName}): ${error instanceof Error ? error.message : String(error)}`, 'TOOL_ERROR', error instanceof Error ? error : undefined, false);
128
+ }
129
+ }
130
+ /**
131
+ * Execute save tool (decision or checkpoint)
132
+ */
133
+ async executeSave(api, input) {
134
+ if (input.type === 'decision') {
135
+ const decisionInput = input;
136
+ if (!decisionInput.topic || !decisionInput.decision || !decisionInput.reasoning) {
137
+ return {
138
+ success: false,
139
+ message: 'Decision requires: topic, decision, reasoning',
140
+ };
141
+ }
142
+ // Map MCP 'decision' type to mama-api 'user_decision' type
143
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
144
+ return await api.save({
145
+ topic: decisionInput.topic,
146
+ decision: decisionInput.decision,
147
+ reasoning: decisionInput.reasoning,
148
+ confidence: decisionInput.confidence ?? 0.5,
149
+ type: 'user_decision', // mama-api expects 'user_decision' not 'decision'
150
+ });
151
+ }
152
+ if (input.type === 'checkpoint') {
153
+ const checkpointInput = input;
154
+ if (!checkpointInput.summary) {
155
+ return {
156
+ success: false,
157
+ message: 'Checkpoint requires: summary',
158
+ };
159
+ }
160
+ return await api.saveCheckpoint(checkpointInput.summary, checkpointInput.open_files ?? [], checkpointInput.next_steps ?? '');
161
+ }
162
+ return {
163
+ success: false,
164
+ message: `Invalid save type: ${input.type}. Must be 'decision' or 'checkpoint'`,
165
+ };
166
+ }
167
+ /**
168
+ * Execute search tool
169
+ */
170
+ async executeSearch(api, input) {
171
+ const { query, type, limit = 10 } = input;
172
+ // If no query provided, return recent items using listDecisions
173
+ if (!query) {
174
+ const decisions = await api.listDecisions({ limit });
175
+ const results = Array.isArray(decisions) ? decisions : [];
176
+ // Filter by type if specified
177
+ const filteredResults = type && type !== 'all'
178
+ ? results.filter((item) => {
179
+ const typedItem = item;
180
+ return typedItem.type === type;
181
+ })
182
+ : results;
183
+ return {
184
+ success: true,
185
+ results: filteredResults,
186
+ count: filteredResults.length,
187
+ };
188
+ }
189
+ // Semantic search using suggest
190
+ const result = await api.suggest(query, { limit });
191
+ // Filter by type if specified
192
+ let filteredResults = result.results ?? [];
193
+ if (type && type !== 'all') {
194
+ filteredResults = filteredResults.filter((item) => item.type === type);
195
+ }
196
+ return {
197
+ success: true,
198
+ results: filteredResults,
199
+ count: filteredResults.length,
200
+ };
201
+ }
202
+ /**
203
+ * Execute update tool
204
+ */
205
+ async executeUpdate(api, input) {
206
+ const { id, outcome, reason } = input;
207
+ if (!id) {
208
+ return {
209
+ success: false,
210
+ message: 'Update requires: id',
211
+ };
212
+ }
213
+ if (!outcome) {
214
+ return {
215
+ success: false,
216
+ message: 'Update requires: outcome',
217
+ };
218
+ }
219
+ // Normalize outcome to uppercase
220
+ const normalizedOutcome = outcome.toUpperCase();
221
+ const validOutcomes = ['SUCCESS', 'FAILED', 'PARTIAL'];
222
+ if (!validOutcomes.includes(normalizedOutcome)) {
223
+ return {
224
+ success: false,
225
+ message: `Invalid outcome: ${outcome}. Must be one of: success, failed, partial`,
226
+ };
227
+ }
228
+ return await api.updateOutcome(id, {
229
+ outcome: normalizedOutcome,
230
+ failure_reason: reason,
231
+ });
232
+ }
233
+ /**
234
+ * Execute load_checkpoint tool
235
+ */
236
+ async executeLoadCheckpoint(api, _input) {
237
+ return await api.loadCheckpoint();
238
+ }
239
+ /**
240
+ * Execute read tool - Read file from filesystem
241
+ */
242
+ async executeRead(input) {
243
+ const { path: filePath } = input;
244
+ if (!filePath) {
245
+ return { success: false, error: 'Path is required' };
246
+ }
247
+ // Expand ~ to home directory
248
+ const homeDir = process.env.HOME || process.env.USERPROFILE || '';
249
+ const expandedPath = filePath.startsWith('~/') ? (0, path_1.join)(homeDir, filePath.slice(2)) : filePath;
250
+ // Security: Only allow reading from ~/.mama/ directory
251
+ const mamaDir = (0, path_1.join)(homeDir, '.mama');
252
+ if (!expandedPath.startsWith(mamaDir)) {
253
+ return { success: false, error: `Access denied: Can only read files from ${mamaDir}` };
254
+ }
255
+ if (!(0, fs_1.existsSync)(expandedPath)) {
256
+ return { success: false, error: `File not found: ${expandedPath}` };
257
+ }
258
+ try {
259
+ const content = (0, fs_1.readFileSync)(expandedPath, 'utf-8');
260
+ return { success: true, content };
261
+ }
262
+ catch (err) {
263
+ return { success: false, error: `Failed to read file: ${err}` };
264
+ }
265
+ }
266
+ /**
267
+ * Execute discord_send tool - Send message/image to Discord channel
268
+ */
269
+ async executeDiscordSend(input) {
270
+ const { channel_id, message, image_path } = input;
271
+ if (!channel_id) {
272
+ return { success: false, error: 'channel_id is required' };
273
+ }
274
+ if (!this.discordGateway) {
275
+ return { success: false, error: 'Discord gateway not configured' };
276
+ }
277
+ try {
278
+ if (image_path) {
279
+ await this.discordGateway.sendImage(channel_id, image_path, message);
280
+ }
281
+ else if (message) {
282
+ await this.discordGateway.sendMessage(channel_id, message);
283
+ }
284
+ else {
285
+ return { success: false, error: 'Either message or image_path is required' };
286
+ }
287
+ return { success: true };
288
+ }
289
+ catch (err) {
290
+ return { success: false, error: `Failed to send to Discord: ${err}` };
291
+ }
292
+ }
293
+ /**
294
+ * Get the list of valid tool names
295
+ */
296
+ static getValidTools() {
297
+ return [...VALID_TOOLS];
298
+ }
299
+ /**
300
+ * Check if a tool name is valid
301
+ */
302
+ static isValidTool(toolName) {
303
+ return VALID_TOOLS.includes(toolName);
304
+ }
305
+ }
306
+ exports.MCPExecutor = MCPExecutor;
307
+ //# sourceMappingURL=mcp-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-executor.js","sourceRoot":"","sources":["../../src/agent/mcp-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Session Pool - Claude CLI Session Reuse Manager
3
+ *
4
+ * Manages Claude CLI session IDs per channel to enable conversation continuity.
5
+ * Instead of creating new sessions for each message, reuses existing sessions
6
+ * so Claude CLI maintains its own conversation history.
7
+ *
8
+ * Benefits:
9
+ * - 6x token reduction (no manual history injection needed)
10
+ * - Natural conversation flow (Claude remembers context)
11
+ * - Automatic summarization by Claude when context fills up
12
+ */
13
+ /**
14
+ * Session entry with metadata
15
+ */
16
+ interface SessionEntry {
17
+ /** Claude CLI session ID */
18
+ sessionId: string;
19
+ /** Last activity timestamp */
20
+ lastActive: number;
21
+ /** Message count in this session */
22
+ messageCount: number;
23
+ /** Creation timestamp */
24
+ createdAt: number;
25
+ /** Whether session is currently in use (locked) */
26
+ inUse: boolean;
27
+ /** Cumulative input tokens for this session */
28
+ totalInputTokens: number;
29
+ }
30
+ /**
31
+ * Session Pool configuration
32
+ */
33
+ export interface SessionPoolConfig {
34
+ /** Session timeout in milliseconds (default: 30 minutes) */
35
+ sessionTimeoutMs?: number;
36
+ /** Maximum sessions to keep in pool (default: 100) */
37
+ maxSessions?: number;
38
+ /** Cleanup interval in milliseconds (default: 5 minutes) */
39
+ cleanupIntervalMs?: number;
40
+ }
41
+ /**
42
+ * Session Pool for Claude CLI session management
43
+ *
44
+ * Key design:
45
+ * - Channel key format: "{source}:{channelId}" (e.g., "discord:123456")
46
+ * - Sessions expire after timeout (default 30 min)
47
+ * - Automatic cleanup of stale sessions
48
+ */
49
+ export declare class SessionPool {
50
+ private sessions;
51
+ private config;
52
+ private cleanupTimer;
53
+ constructor(config?: SessionPoolConfig);
54
+ /**
55
+ * Get or create session ID for a channel
56
+ *
57
+ * With --no-session-persistence flag, Claude CLI doesn't lock session IDs.
58
+ * This allows session reuse for conversation continuity.
59
+ *
60
+ * Auto-resets session when context window reaches 80% (160K tokens).
61
+ *
62
+ * @param channelKey - Channel identifier (format: "{source}:{channelId}")
63
+ * @returns Object with sessionId and isNew flag
64
+ */
65
+ getSession(channelKey: string): {
66
+ sessionId: string;
67
+ isNew: boolean;
68
+ };
69
+ /**
70
+ * Update token usage for a session
71
+ * Called after each Claude CLI response
72
+ *
73
+ * @param channelKey - Channel identifier
74
+ * @param inputTokens - Input tokens from this request
75
+ * @returns Current total tokens and whether threshold is approaching
76
+ */
77
+ updateTokens(channelKey: string, inputTokens: number): {
78
+ totalTokens: number;
79
+ nearThreshold: boolean;
80
+ };
81
+ /**
82
+ * Get current token usage for a session
83
+ */
84
+ getTokenUsage(channelKey: string): number;
85
+ /**
86
+ * Legacy method for backward compatibility
87
+ * @deprecated Use getSession() instead
88
+ */
89
+ getSessionId(channelKey: string): string;
90
+ /**
91
+ * Release a session after use (no-op since we use fresh sessions)
92
+ */
93
+ releaseSession(_channelKey: string): void;
94
+ /**
95
+ * Create a new session for a channel
96
+ */
97
+ private createSession;
98
+ /**
99
+ * Force create a new session (for /clear command)
100
+ */
101
+ resetSession(channelKey: string): string;
102
+ /**
103
+ * Check if a session exists and is active
104
+ */
105
+ hasActiveSession(channelKey: string): boolean;
106
+ /**
107
+ * Get session info for a channel
108
+ */
109
+ getSessionInfo(channelKey: string): SessionEntry | null;
110
+ /**
111
+ * Get all active sessions (for debugging/monitoring)
112
+ */
113
+ listSessions(): Map<string, SessionEntry>;
114
+ /**
115
+ * Get active session count
116
+ */
117
+ getActiveSessionCount(): number;
118
+ /**
119
+ * Evict the oldest (least recently used) session
120
+ */
121
+ private evictOldestSession;
122
+ /**
123
+ * Clean up expired sessions
124
+ */
125
+ cleanup(): number;
126
+ /**
127
+ * Start periodic cleanup timer
128
+ */
129
+ private startCleanupTimer;
130
+ /**
131
+ * Stop cleanup timer and clear all sessions
132
+ */
133
+ dispose(): void;
134
+ }
135
+ /**
136
+ * Get global session pool instance
137
+ */
138
+ export declare function getSessionPool(): SessionPool;
139
+ /**
140
+ * Set global session pool instance (for testing)
141
+ */
142
+ export declare function setSessionPool(pool: SessionPool): void;
143
+ /**
144
+ * Build channel key from source and channel ID
145
+ */
146
+ export declare function buildChannelKey(source: string, channelId: string): string;
147
+ export {};
148
+ //# sourceMappingURL=session-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-pool.d.ts","sourceRoot":"","sources":["../../src/agent/session-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;GAEG;AACH,UAAU,YAAY;IACpB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,KAAK,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAQD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAMD;;;;;;;GAOG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,YAAY,CAA+B;gBAEvC,MAAM,GAAE,iBAAsB;IAW1C;;;;;;;;;;OAUG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE;IAkCrE;;;;;;;OAOG;IACH,YAAY,CACV,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE;IAqBlD;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAKzC;;;OAGG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIxC;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKzC;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAKxC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAQ7C;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAIvD;;OAEG;IACH,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IAIzC;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACH,OAAO,IAAI,MAAM;IAkBjB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACH,OAAO,IAAI,IAAI;CAOhB;AAOD;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAK5C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAEtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzE"}