@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 @@
1
+ {"version":3,"file":"phase-6-security.js","sourceRoot":"","sources":["../../src/onboarding/phase-6-security.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import type { ToolDefinition } from '../agent/types.js';
2
+ export interface IntegrationOptions {
3
+ discord?: {
4
+ enabled: boolean;
5
+ token?: string;
6
+ guilds?: Record<string, {
7
+ requireMention?: boolean;
8
+ channels?: Record<string, {
9
+ requireMention?: boolean;
10
+ }>;
11
+ }>;
12
+ };
13
+ slack?: {
14
+ enabled: boolean;
15
+ token?: string;
16
+ workspaces?: string[];
17
+ };
18
+ telegram?: {
19
+ enabled: boolean;
20
+ token?: string;
21
+ allowedChats?: string[];
22
+ };
23
+ cronJobs?: Array<{
24
+ id: string;
25
+ cronExpr: string;
26
+ prompt: string;
27
+ enabled: boolean;
28
+ }>;
29
+ heartbeat?: {
30
+ enabled: boolean;
31
+ interval: number;
32
+ quietStart: number;
33
+ quietEnd: number;
34
+ notifyChannelId?: string;
35
+ };
36
+ skills?: Array<{
37
+ id: string;
38
+ path: string;
39
+ enabled: boolean;
40
+ }>;
41
+ role?: string;
42
+ }
43
+ export declare const PHASE_7_TOOL: ToolDefinition;
44
+ /**
45
+ * Tool to save integration tokens (Discord, Slack, Telegram) to config.yaml
46
+ */
47
+ export declare const SAVE_INTEGRATION_TOKEN_TOOL: ToolDefinition;
48
+ /**
49
+ * Handler for save_integration_token tool
50
+ */
51
+ export declare function handleSaveIntegrationToken(input: {
52
+ platform: 'discord' | 'slack' | 'telegram';
53
+ token: string;
54
+ guild_id?: string;
55
+ chat_id?: string;
56
+ }): Promise<{
57
+ success: boolean;
58
+ message: string;
59
+ error?: string;
60
+ }>;
61
+ export declare function generateIntegrationGuide(options: IntegrationOptions): string;
62
+ export declare function parseQuietHours(quietHours: string): {
63
+ start: number;
64
+ end: number;
65
+ } | null;
66
+ //# sourceMappingURL=phase-7-integrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-7-integrations.d.ts","sourceRoot":"","sources":["../../src/onboarding/phase-7-integrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CACb,MAAM,EACN;YACE,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;gBAAE,cAAc,CAAC,EAAE,OAAO,CAAA;aAAE,CAAC,CAAC;SACzD,CACF,CAAC;KACH,CAAC;IACF,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;IACH,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAqcD,eAAO,MAAM,YAAY,EAAE,cA4B1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,cA4BzC,CAAC;AAEF;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,KAAK,EAAE;IACtD,QAAQ,EAAE,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0CjE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CA+D5E;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUzF"}
@@ -0,0 +1,619 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SAVE_INTEGRATION_TOKEN_TOOL = exports.PHASE_7_TOOL = void 0;
4
+ exports.handleSaveIntegrationToken = handleSaveIntegrationToken;
5
+ exports.generateIntegrationGuide = generateIntegrationGuide;
6
+ exports.parseQuietHours = parseQuietHours;
7
+ const config_manager_js_1 = require("../cli/config/config-manager.js");
8
+ const ROLE_EXAMPLES = {
9
+ developer: `## Developer Integration Examples
10
+
11
+ ### Discord for Team Notifications
12
+ \`\`\`json
13
+ {
14
+ "discord": {
15
+ "enabled": true,
16
+ "token": "YOUR_BOT_TOKEN",
17
+ "guilds": {
18
+ "YOUR_GUILD_ID": {
19
+ "requireMention": false,
20
+ "channels": {
21
+ "dev-alerts": { "requireMention": false },
22
+ "general": { "requireMention": true }
23
+ }
24
+ }
25
+ }
26
+ }
27
+ }
28
+ \`\`\`
29
+
30
+ ### Cron Jobs for Daily Builds
31
+ \`\`\`json
32
+ {
33
+ "cronJobs": [
34
+ {
35
+ "id": "daily-build-check",
36
+ "cronExpr": "0 9 * * *",
37
+ "prompt": "Check CI/CD pipeline status and report any failures",
38
+ "enabled": true
39
+ },
40
+ {
41
+ "id": "dependency-updates",
42
+ "cronExpr": "0 10 * * 1",
43
+ "prompt": "Check for npm package updates and create update summary",
44
+ "enabled": true
45
+ }
46
+ ]
47
+ }
48
+ \`\`\`
49
+
50
+ ### Heartbeat for System Monitoring
51
+ \`\`\`json
52
+ {
53
+ "heartbeat": {
54
+ "enabled": true,
55
+ "interval": 1800000,
56
+ "quietStart": 23,
57
+ "quietEnd": 8,
58
+ "notifyChannelId": "YOUR_DISCORD_CHANNEL_ID"
59
+ }
60
+ }
61
+ \`\`\``,
62
+ researcher: `## Researcher Integration Examples
63
+
64
+ ### Telegram for Mobile Access
65
+ \`\`\`json
66
+ {
67
+ "telegram": {
68
+ "enabled": true,
69
+ "token": "YOUR_BOT_TOKEN",
70
+ "allowedChats": ["YOUR_CHAT_ID"]
71
+ }
72
+ }
73
+ \`\`\`
74
+
75
+ ### Cron Jobs for Literature Monitoring
76
+ \`\`\`json
77
+ {
78
+ "cronJobs": [
79
+ {
80
+ "id": "arxiv-daily",
81
+ "cronExpr": "0 8 * * *",
82
+ "prompt": "Search arXiv for new papers in my research areas and summarize",
83
+ "enabled": true
84
+ },
85
+ {
86
+ "id": "weekly-research-digest",
87
+ "cronExpr": "0 9 * * 1",
88
+ "prompt": "Compile weekly research digest from saved papers",
89
+ "enabled": true
90
+ }
91
+ ]
92
+ }
93
+ \`\`\`
94
+
95
+ ### Skills for Paper Analysis
96
+ \`\`\`json
97
+ {
98
+ "skills": [
99
+ {
100
+ "id": "paper-analyzer",
101
+ "path": "~/.mama/skills/paper-analyzer.md",
102
+ "enabled": true
103
+ },
104
+ {
105
+ "id": "citation-tracker",
106
+ "path": "~/.mama/skills/citation-tracker.md",
107
+ "enabled": true
108
+ }
109
+ ]
110
+ }
111
+ \`\`\``,
112
+ manager: `## Manager Integration Examples
113
+
114
+ ### Slack for Team Communication
115
+ \`\`\`json
116
+ {
117
+ "slack": {
118
+ "enabled": true,
119
+ "token": "YOUR_BOT_TOKEN",
120
+ "workspaces": ["team-workspace"]
121
+ }
122
+ }
123
+ \`\`\`
124
+
125
+ ### Cron Jobs for Team Status
126
+ \`\`\`json
127
+ {
128
+ "cronJobs": [
129
+ {
130
+ "id": "daily-standup-prep",
131
+ "cronExpr": "0 8 * * 1-5",
132
+ "prompt": "Prepare daily standup summary from team activity",
133
+ "enabled": true
134
+ },
135
+ {
136
+ "id": "weekly-metrics",
137
+ "cronExpr": "0 17 * * 5",
138
+ "prompt": "Generate weekly team metrics and performance summary",
139
+ "enabled": true
140
+ }
141
+ ]
142
+ }
143
+ \`\`\`
144
+
145
+ ### Heartbeat for Team Monitoring
146
+ \`\`\`json
147
+ {
148
+ "heartbeat": {
149
+ "enabled": true,
150
+ "interval": 3600000,
151
+ "quietStart": 20,
152
+ "quietEnd": 8,
153
+ "notifyChannelId": "YOUR_SLACK_CHANNEL_ID"
154
+ }
155
+ }
156
+ \`\`\``,
157
+ default: `## General Integration Examples
158
+
159
+ ### Discord Bot Setup
160
+ 1. Create bot at https://discord.com/developers/applications
161
+ 2. Enable Message Content Intent
162
+ 3. Add bot to your server with proper permissions
163
+ 4. Copy bot token to configuration
164
+
165
+ ### Cron Expression Guide
166
+ \`\`\`
167
+ ┌───────────── minute (0 - 59)
168
+ │ ┌───────────── hour (0 - 23)
169
+ │ │ ┌───────────── day of month (1 - 31)
170
+ │ │ │ ┌───────────── month (1 - 12)
171
+ │ │ │ │ ┌───────────── day of week (0 - 6) (Sunday to Saturday)
172
+ │ │ │ │ │
173
+ * * * * *
174
+ \`\`\`
175
+
176
+ Examples:
177
+ - \`0 9 * * *\` - Every day at 9:00 AM
178
+ - \`*/30 * * * *\` - Every 30 minutes
179
+ - \`0 0 * * 0\` - Every Sunday at midnight
180
+ - \`0 9 * * 1-5\` - Weekdays at 9:00 AM
181
+
182
+ ### Heartbeat Configuration
183
+ - **interval**: Milliseconds between checks (30min = 1800000)
184
+ - **quietStart**: Hour to stop checking (0-23)
185
+ - **quietEnd**: Hour to resume checking (0-23)
186
+ - **notifyChannelId**: Discord/Slack channel for notifications
187
+
188
+ ### Skills System
189
+ Skills are markdown files that define specialized behaviors:
190
+ - Location: \`~/.mama/skills/\`
191
+ - Format: Markdown with frontmatter metadata
192
+ - Trigger: Pattern matching on user queries
193
+ - Response: Custom prompts and tool sequences`,
194
+ };
195
+ /**
196
+ * Integration setup instructions
197
+ */
198
+ const INTEGRATION_INSTRUCTIONS = `# MAMA Integrations Guide
199
+
200
+ ## Overview
201
+
202
+ MAMA Standalone supports multiple integration types to fit your workflow:
203
+
204
+ 1. **Chat Gateways** - Discord, Slack, Telegram
205
+ 2. **Scheduled Tasks** - Cron jobs for recurring work
206
+ 3. **Proactive Monitoring** - Heartbeat checks
207
+ 4. **Custom Skills** - Specialized behaviors and workflows
208
+
209
+ ## Chat Gateways
210
+
211
+ ### Discord Integration
212
+
213
+ **Setup:**
214
+ 1. Go to https://discord.com/developers/applications
215
+ 2. Create New Application
216
+ 3. Bot tab → Add Bot
217
+ 4. Enable "Message Content Intent" under Privileged Gateway Intents
218
+ 5. Copy bot token
219
+ 6. OAuth2 → URL Generator → Select "bot" scope and permissions
220
+ 7. Use generated URL to add bot to your server
221
+
222
+ **Configuration:**
223
+ - \`guilds\`: Guild-specific settings (use "*" for all guilds)
224
+ - \`requireMention\`: If true, bot only responds to @mentions
225
+ - \`channels\`: Channel-specific overrides
226
+
227
+ **Features:**
228
+ - DM support (always responds in DMs)
229
+ - Channel-specific mention requirements
230
+ - Image attachment handling (OCR, translation)
231
+ - Message history tracking for context
232
+ - Typing indicators during processing
233
+
234
+ ### Telegram Integration
235
+
236
+ **Setup:**
237
+ 1. Message @BotFather on Telegram
238
+ 2. Send /newbot and follow instructions
239
+ 3. Copy bot token
240
+ 4. Get your chat ID by messaging @userinfobot
241
+
242
+ **Configuration:**
243
+ - \`token\`: Bot token from BotFather
244
+ - \`allowedChats\`: List of allowed chat IDs (security)
245
+
246
+ **Features:**
247
+ - Private chat support
248
+ - Group chat support
249
+ - Image handling
250
+ - Inline queries
251
+
252
+ ### Slack Integration
253
+
254
+ **Setup:**
255
+ 1. Go to https://api.slack.com/apps
256
+ 2. Create New App → From scratch
257
+ 3. OAuth & Permissions → Add scopes (channels:read, chat:write, etc.)
258
+ 4. Install to Workspace
259
+ 5. Copy Bot User OAuth Token
260
+
261
+ **Configuration:**
262
+ - \`token\`: Bot User OAuth Token
263
+ - \`workspaces\`: List of workspace IDs
264
+
265
+ ## Scheduled Tasks (Cron Jobs)
266
+
267
+ Cron jobs run automated tasks on a schedule:
268
+
269
+ **Job Configuration:**
270
+ - \`id\`: Unique identifier
271
+ - \`cronExpr\`: Cron expression (see guide below)
272
+ - \`prompt\`: Task description for Claude
273
+ - \`enabled\`: Enable/disable job
274
+
275
+ **Cron Expression Format:**
276
+ \`\`\`
277
+ ┌───────────── minute (0 - 59)
278
+ │ ┌───────────── hour (0 - 23)
279
+ │ │ ┌───────────── day of month (1 - 31)
280
+ │ │ │ ┌───────────── month (1 - 12)
281
+ │ │ │ │ ┌───────────── day of week (0 - 6)
282
+ │ │ │ │ │
283
+ * * * * *
284
+ \`\`\`
285
+
286
+ **Examples:**
287
+ - \`0 9 * * *\` - Daily at 9 AM
288
+ - \`*/15 * * * *\` - Every 15 minutes
289
+ - \`0 0 * * 0\` - Weekly on Sunday midnight
290
+ - \`0 9 * * 1-5\` - Weekdays at 9 AM
291
+ - \`0 0 1 * *\` - Monthly on 1st at midnight
292
+
293
+ **Use Cases:**
294
+ - Daily build status checks
295
+ - Weekly report generation
296
+ - Hourly data synchronization
297
+ - Monthly maintenance tasks
298
+ - Custom automation workflows
299
+
300
+ ## Heartbeat Monitoring
301
+
302
+ Proactive system that periodically checks HEARTBEAT.md for tasks:
303
+
304
+ **Configuration:**
305
+ - \`interval\`: Check frequency in milliseconds
306
+ - 30 minutes: \`1800000\`
307
+ - 1 hour: \`3600000\`
308
+ - 2 hours: \`7200000\`
309
+ - \`quietStart\`: Hour to pause (e.g., 23 for 11 PM)
310
+ - \`quietEnd\`: Hour to resume (e.g., 8 for 8 AM)
311
+ - \`notifyChannelId\`: Discord/Slack channel for alerts
312
+
313
+ **How It Works:**
314
+ 1. Every interval, reads \`~/.mama/HEARTBEAT.md\`
315
+ 2. Sends content to Claude for processing
316
+ 3. Claude checks for tasks and executes them
317
+ 4. Responds with status (OK, NOTIFY, DONE)
318
+ 5. Sends notifications if configured
319
+
320
+ **HEARTBEAT.md Example:**
321
+ \`\`\`markdown
322
+ # Heartbeat Tasks
323
+
324
+ ## Pending
325
+ - [ ] Check if new GitHub issues need triage
326
+ - [ ] Monitor server uptime (alert if down)
327
+
328
+ ## Completed
329
+ - [x] Daily backup verified (2025-01-31)
330
+ \`\`\`
331
+
332
+ ## Skills System
333
+
334
+ Skills are reusable markdown-based workflows:
335
+
336
+ **Skill Structure:**
337
+ \`\`\`markdown
338
+ ---
339
+ id: skill-name
340
+ triggers:
341
+ - "keyword or phrase"
342
+ - "another trigger"
343
+ description: "What this skill does"
344
+ ---
345
+
346
+ # Skill Instructions
347
+
348
+ Claude, when this skill is triggered:
349
+
350
+ 1. Do step one
351
+ 2. Do step two
352
+ 3. Return result in this format
353
+ \`\`\`
354
+
355
+ **Loading Skills:**
356
+ - Place skills in \`~/.mama/skills/\`
357
+ - Configure in integrations.md
358
+ - Skills auto-load on startup
359
+ - Pattern matching triggers execution
360
+
361
+ **Skill Examples:**
362
+ - Paper analysis workflows
363
+ - Code review checklists
364
+ - Report generation templates
365
+ - Custom tool sequences
366
+
367
+ ## Security Considerations
368
+
369
+ **API Tokens:**
370
+ - Store in environment variables, not in configs
371
+ - Use \`.env\` file with \`.gitignore\`
372
+ - Never commit tokens to version control
373
+
374
+ **Access Control:**
375
+ - Discord: Use channel/guild restrictions
376
+ - Telegram: Whitelist specific chat IDs
377
+ - Slack: Limit workspace access
378
+
379
+ **Network Security:**
380
+ - All integrations run localhost by default
381
+ - Use tunnels (cloudflared) for external access
382
+ - Enable authentication for exposed endpoints
383
+
384
+ ## Testing Integrations
385
+
386
+ **Discord:**
387
+ \`\`\`bash
388
+ # Test bot responds to DM
389
+ # Test mention in channel
390
+ # Test image upload and analysis
391
+ \`\`\`
392
+
393
+ **Cron Jobs:**
394
+ \`\`\`bash
395
+ # Run job immediately for testing
396
+ mama cron run JOB_ID
397
+
398
+ # List all jobs and next run times
399
+ mama cron list
400
+ \`\`\`
401
+
402
+ **Heartbeat:**
403
+ \`\`\`bash
404
+ # Trigger heartbeat check now
405
+ mama heartbeat trigger
406
+
407
+ # View heartbeat status
408
+ mama heartbeat status
409
+ \`\`\`
410
+
411
+ ## Troubleshooting
412
+
413
+ **Bot Not Responding:**
414
+ 1. Check token is correct
415
+ 2. Verify bot has required permissions
416
+ 3. Check Message Content Intent enabled (Discord)
417
+ 4. Review logs for errors
418
+
419
+ **Cron Job Not Running:**
420
+ 1. Validate cron expression syntax
421
+ 2. Check job is enabled
422
+ 3. Verify timezone configuration
423
+ 4. Review scheduler logs
424
+
425
+ **Heartbeat Not Working:**
426
+ 1. Check interval configuration
427
+ 2. Verify not in quiet hours
428
+ 3. Check HEARTBEAT.md exists and is readable
429
+ 4. Review heartbeat logs
430
+
431
+ ## Advanced Configuration
432
+
433
+ **Multi-Gateway Setup:**
434
+ Run Discord + Telegram simultaneously for different user groups
435
+
436
+ **Conditional Cron Jobs:**
437
+ Use prompts with conditions (e.g., "Only send report if data changed")
438
+
439
+ **Cascading Heartbeats:**
440
+ Chain heartbeat tasks (one task can schedule another)
441
+
442
+ **Skill Composition:**
443
+ Skills can invoke other skills for complex workflows
444
+
445
+ ## Next Steps
446
+
447
+ After integration setup:
448
+ 1. Test each integration individually
449
+ 2. Monitor logs for errors
450
+ 3. Adjust configurations as needed
451
+ 4. Document your integration patterns
452
+ 5. Share successful configurations with team
453
+ `;
454
+ exports.PHASE_7_TOOL = {
455
+ name: 'present_integration_options',
456
+ description: `Present integration options for Discord, Slack, Telegram, cron jobs, heartbeat monitoring, and skills.
457
+ Provide role-specific examples and save integrations.md with comprehensive setup guide.`,
458
+ input_schema: {
459
+ type: 'object',
460
+ properties: {
461
+ role: {
462
+ type: 'string',
463
+ description: 'User role for tailored examples (developer, researcher, manager, or custom)',
464
+ enum: ['developer', 'researcher', 'manager', 'custom'],
465
+ },
466
+ selected_integrations: {
467
+ type: 'string',
468
+ description: 'Comma-separated list of integrations to enable (discord,slack,telegram,cron,heartbeat,skills)',
469
+ },
470
+ timezone: {
471
+ type: 'string',
472
+ description: 'User timezone for cron job scheduling (e.g., America/New_York, Asia/Seoul)',
473
+ },
474
+ quiet_hours: {
475
+ type: 'string',
476
+ description: 'Preferred quiet hours for heartbeat (e.g., "23-8" means 11PM to 8AM)',
477
+ },
478
+ },
479
+ required: ['role'],
480
+ },
481
+ };
482
+ /**
483
+ * Tool to save integration tokens (Discord, Slack, Telegram) to config.yaml
484
+ */
485
+ exports.SAVE_INTEGRATION_TOKEN_TOOL = {
486
+ name: 'save_integration_token',
487
+ description: `Save a Discord, Slack, or Telegram bot token to config.yaml.
488
+ Use this when user provides their bot token during onboarding.
489
+ The token will be saved securely and the integration will be enabled.`,
490
+ input_schema: {
491
+ type: 'object',
492
+ properties: {
493
+ platform: {
494
+ type: 'string',
495
+ description: 'Platform name: discord, slack, or telegram',
496
+ enum: ['discord', 'slack', 'telegram'],
497
+ },
498
+ token: {
499
+ type: 'string',
500
+ description: 'The bot token to save',
501
+ },
502
+ guild_id: {
503
+ type: 'string',
504
+ description: 'Discord guild ID (optional, for Discord only)',
505
+ },
506
+ chat_id: {
507
+ type: 'string',
508
+ description: 'Telegram chat ID (optional, for Telegram only)',
509
+ },
510
+ },
511
+ required: ['platform', 'token'],
512
+ },
513
+ };
514
+ /**
515
+ * Handler for save_integration_token tool
516
+ */
517
+ async function handleSaveIntegrationToken(input) {
518
+ try {
519
+ const config = await (0, config_manager_js_1.loadConfig)();
520
+ switch (input.platform) {
521
+ case 'discord':
522
+ config.discord = {
523
+ enabled: true,
524
+ token: input.token,
525
+ default_channel_id: input.guild_id, // guild_id used as default channel
526
+ };
527
+ break;
528
+ case 'slack':
529
+ config.slack = {
530
+ enabled: true,
531
+ bot_token: input.token,
532
+ };
533
+ break;
534
+ case 'telegram':
535
+ config.telegram = {
536
+ enabled: true,
537
+ token: input.token,
538
+ allowed_chats: input.chat_id ? [input.chat_id] : [],
539
+ };
540
+ break;
541
+ }
542
+ await (0, config_manager_js_1.saveConfig)(config);
543
+ return {
544
+ success: true,
545
+ message: `${input.platform} token saved successfully! Integration is now enabled.`,
546
+ };
547
+ }
548
+ catch (error) {
549
+ return {
550
+ success: false,
551
+ message: 'Failed to save token',
552
+ error: error instanceof Error ? error.message : String(error),
553
+ };
554
+ }
555
+ }
556
+ function generateIntegrationGuide(options) {
557
+ const role = options.role || 'default';
558
+ const examples = ROLE_EXAMPLES[role] || ROLE_EXAMPLES.default;
559
+ let content = INTEGRATION_INSTRUCTIONS;
560
+ content += '\n\n---\n\n';
561
+ content += examples;
562
+ if (options.discord ||
563
+ options.slack ||
564
+ options.telegram ||
565
+ options.cronJobs ||
566
+ options.heartbeat ||
567
+ options.skills) {
568
+ content += '\n\n---\n\n## Your Configuration\n\n';
569
+ if (options.discord?.enabled) {
570
+ content += '### Discord\n';
571
+ content += '✅ Enabled\n';
572
+ content += `- Guilds configured: ${Object.keys(options.discord.guilds || {}).length}\n\n`;
573
+ }
574
+ if (options.slack?.enabled) {
575
+ content += '### Slack\n';
576
+ content += '✅ Enabled\n';
577
+ content += `- Workspaces: ${options.slack.workspaces?.length || 0}\n\n`;
578
+ }
579
+ if (options.telegram?.enabled) {
580
+ content += '### Telegram\n';
581
+ content += '✅ Enabled\n';
582
+ content += `- Allowed chats: ${options.telegram.allowedChats?.length || 0}\n\n`;
583
+ }
584
+ if (options.cronJobs && options.cronJobs.length > 0) {
585
+ content += '### Cron Jobs\n';
586
+ content += `✅ ${options.cronJobs.length} job(s) configured:\n`;
587
+ for (const job of options.cronJobs) {
588
+ content += `- **${job.id}**: ${job.cronExpr} ${job.enabled ? '(enabled)' : '(disabled)'}\n`;
589
+ }
590
+ content += '\n';
591
+ }
592
+ if (options.heartbeat?.enabled) {
593
+ content += '### Heartbeat\n';
594
+ content += '✅ Enabled\n';
595
+ content += `- Interval: ${(options.heartbeat.interval / 60000).toFixed(0)} minutes\n`;
596
+ content += `- Quiet hours: ${options.heartbeat.quietStart}:00 - ${options.heartbeat.quietEnd}:00\n\n`;
597
+ }
598
+ if (options.skills && options.skills.length > 0) {
599
+ content += '### Skills\n';
600
+ content += `✅ ${options.skills.length} skill(s) configured:\n`;
601
+ for (const skill of options.skills) {
602
+ content += `- **${skill.id}**: ${skill.path} ${skill.enabled ? '(enabled)' : '(disabled)'}\n`;
603
+ }
604
+ content += '\n';
605
+ }
606
+ }
607
+ return content;
608
+ }
609
+ function parseQuietHours(quietHours) {
610
+ const match = quietHours.match(/^(\d{1,2})-(\d{1,2})$/);
611
+ if (!match)
612
+ return null;
613
+ const start = parseInt(match[1], 10);
614
+ const end = parseInt(match[2], 10);
615
+ if (start < 0 || start > 23 || end < 0 || end > 23)
616
+ return null;
617
+ return { start, end };
618
+ }
619
+ //# sourceMappingURL=phase-7-integrations.js.map