siclaw 0.1.0

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 (460) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +268 -0
  3. package/dist/agentbox/gateway-client.d.ts +41 -0
  4. package/dist/agentbox/gateway-client.js +108 -0
  5. package/dist/agentbox/gateway-client.js.map +1 -0
  6. package/dist/agentbox/http-server.d.ts +12 -0
  7. package/dist/agentbox/http-server.js +700 -0
  8. package/dist/agentbox/http-server.js.map +1 -0
  9. package/dist/agentbox/mcp-sync.d.ts +6 -0
  10. package/dist/agentbox/mcp-sync.js +26 -0
  11. package/dist/agentbox/mcp-sync.js.map +1 -0
  12. package/dist/agentbox/resource-handlers.d.ts +40 -0
  13. package/dist/agentbox/resource-handlers.js +116 -0
  14. package/dist/agentbox/resource-handlers.js.map +1 -0
  15. package/dist/agentbox/resource-sync.d.ts +28 -0
  16. package/dist/agentbox/resource-sync.js +74 -0
  17. package/dist/agentbox/resource-sync.js.map +1 -0
  18. package/dist/agentbox/session.d.ts +145 -0
  19. package/dist/agentbox/session.js +444 -0
  20. package/dist/agentbox/session.js.map +1 -0
  21. package/dist/agentbox-main.d.ts +7 -0
  22. package/dist/agentbox-main.js +90 -0
  23. package/dist/agentbox-main.js.map +1 -0
  24. package/dist/cli-main.d.ts +1 -0
  25. package/dist/cli-main.js +187 -0
  26. package/dist/cli-main.js.map +1 -0
  27. package/dist/cli-setup.d.ts +17 -0
  28. package/dist/cli-setup.js +247 -0
  29. package/dist/cli-setup.js.map +1 -0
  30. package/dist/core/agent-factory.d.ts +52 -0
  31. package/dist/core/agent-factory.js +547 -0
  32. package/dist/core/agent-factory.js.map +1 -0
  33. package/dist/core/brain-session.d.ts +67 -0
  34. package/dist/core/brain-session.js +15 -0
  35. package/dist/core/brain-session.js.map +1 -0
  36. package/dist/core/brains/claude-sdk-brain.d.ts +76 -0
  37. package/dist/core/brains/claude-sdk-brain.js +403 -0
  38. package/dist/core/brains/claude-sdk-brain.js.map +1 -0
  39. package/dist/core/brains/pi-agent-brain.d.ts +28 -0
  40. package/dist/core/brains/pi-agent-brain.js +84 -0
  41. package/dist/core/brains/pi-agent-brain.js.map +1 -0
  42. package/dist/core/config.d.ts +109 -0
  43. package/dist/core/config.js +294 -0
  44. package/dist/core/config.js.map +1 -0
  45. package/dist/core/extensions/context-pruning.d.ts +38 -0
  46. package/dist/core/extensions/context-pruning.js +162 -0
  47. package/dist/core/extensions/context-pruning.js.map +1 -0
  48. package/dist/core/extensions/deep-investigation.d.ts +2 -0
  49. package/dist/core/extensions/deep-investigation.js +541 -0
  50. package/dist/core/extensions/deep-investigation.js.map +1 -0
  51. package/dist/core/extensions/memory-flush.d.ts +20 -0
  52. package/dist/core/extensions/memory-flush.js +120 -0
  53. package/dist/core/extensions/memory-flush.js.map +1 -0
  54. package/dist/core/llm-proxy.d.ts +37 -0
  55. package/dist/core/llm-proxy.js +578 -0
  56. package/dist/core/llm-proxy.js.map +1 -0
  57. package/dist/core/mcp-client.d.ts +80 -0
  58. package/dist/core/mcp-client.js +285 -0
  59. package/dist/core/mcp-client.js.map +1 -0
  60. package/dist/core/prompt.d.ts +1 -0
  61. package/dist/core/prompt.js +64 -0
  62. package/dist/core/prompt.js.map +1 -0
  63. package/dist/core/tool-adapter.d.ts +45 -0
  64. package/dist/core/tool-adapter.js +154 -0
  65. package/dist/core/tool-adapter.js.map +1 -0
  66. package/dist/cron/cron-api.d.ts +9 -0
  67. package/dist/cron/cron-api.js +94 -0
  68. package/dist/cron/cron-api.js.map +1 -0
  69. package/dist/cron/cron-coordinator.d.ts +29 -0
  70. package/dist/cron/cron-coordinator.js +150 -0
  71. package/dist/cron/cron-coordinator.js.map +1 -0
  72. package/dist/cron/cron-executor.d.ts +15 -0
  73. package/dist/cron/cron-executor.js +90 -0
  74. package/dist/cron/cron-executor.js.map +1 -0
  75. package/dist/cron/cron-matcher.d.ts +19 -0
  76. package/dist/cron/cron-matcher.js +114 -0
  77. package/dist/cron/cron-matcher.js.map +1 -0
  78. package/dist/cron/cron-scheduler.d.ts +42 -0
  79. package/dist/cron/cron-scheduler.js +91 -0
  80. package/dist/cron/cron-scheduler.js.map +1 -0
  81. package/dist/cron/gateway-client.d.ts +32 -0
  82. package/dist/cron/gateway-client.js +91 -0
  83. package/dist/cron/gateway-client.js.map +1 -0
  84. package/dist/cron-main.d.ts +10 -0
  85. package/dist/cron-main.js +75 -0
  86. package/dist/cron-main.js.map +1 -0
  87. package/dist/gateway/agentbox/client.d.ts +187 -0
  88. package/dist/gateway/agentbox/client.js +314 -0
  89. package/dist/gateway/agentbox/client.js.map +1 -0
  90. package/dist/gateway/agentbox/index.d.ts +10 -0
  91. package/dist/gateway/agentbox/index.js +11 -0
  92. package/dist/gateway/agentbox/index.js.map +1 -0
  93. package/dist/gateway/agentbox/k8s-spawner.d.ts +70 -0
  94. package/dist/gateway/agentbox/k8s-spawner.js +466 -0
  95. package/dist/gateway/agentbox/k8s-spawner.js.map +1 -0
  96. package/dist/gateway/agentbox/local-spawner.d.ts +63 -0
  97. package/dist/gateway/agentbox/local-spawner.js +234 -0
  98. package/dist/gateway/agentbox/local-spawner.js.map +1 -0
  99. package/dist/gateway/agentbox/manager.d.ts +121 -0
  100. package/dist/gateway/agentbox/manager.js +325 -0
  101. package/dist/gateway/agentbox/manager.js.map +1 -0
  102. package/dist/gateway/agentbox/process-spawner.d.ts +21 -0
  103. package/dist/gateway/agentbox/process-spawner.js +168 -0
  104. package/dist/gateway/agentbox/process-spawner.js.map +1 -0
  105. package/dist/gateway/agentbox/spawner.d.ts +33 -0
  106. package/dist/gateway/agentbox/spawner.js +10 -0
  107. package/dist/gateway/agentbox/spawner.js.map +1 -0
  108. package/dist/gateway/agentbox/types.d.ts +39 -0
  109. package/dist/gateway/agentbox/types.js +5 -0
  110. package/dist/gateway/agentbox/types.js.map +1 -0
  111. package/dist/gateway/auth/bind-code-store.d.ts +31 -0
  112. package/dist/gateway/auth/bind-code-store.js +73 -0
  113. package/dist/gateway/auth/bind-code-store.js.map +1 -0
  114. package/dist/gateway/auth/index.d.ts +9 -0
  115. package/dist/gateway/auth/index.js +10 -0
  116. package/dist/gateway/auth/index.js.map +1 -0
  117. package/dist/gateway/auth/jwt.d.ts +23 -0
  118. package/dist/gateway/auth/jwt.js +82 -0
  119. package/dist/gateway/auth/jwt.js.map +1 -0
  120. package/dist/gateway/auth/login.d.ts +26 -0
  121. package/dist/gateway/auth/login.js +74 -0
  122. package/dist/gateway/auth/login.js.map +1 -0
  123. package/dist/gateway/auth/middleware.d.ts +23 -0
  124. package/dist/gateway/auth/middleware.js +67 -0
  125. package/dist/gateway/auth/middleware.js.map +1 -0
  126. package/dist/gateway/auth/oauth2.d.ts +57 -0
  127. package/dist/gateway/auth/oauth2.js +113 -0
  128. package/dist/gateway/auth/oauth2.js.map +1 -0
  129. package/dist/gateway/auth/user-store.d.ts +95 -0
  130. package/dist/gateway/auth/user-store.js +291 -0
  131. package/dist/gateway/auth/user-store.js.map +1 -0
  132. package/dist/gateway/channels/channel-manager.d.ts +42 -0
  133. package/dist/gateway/channels/channel-manager.js +156 -0
  134. package/dist/gateway/channels/channel-manager.js.map +1 -0
  135. package/dist/gateway/channels/channel-rpc.d.ts +9 -0
  136. package/dist/gateway/channels/channel-rpc.js +104 -0
  137. package/dist/gateway/channels/channel-rpc.js.map +1 -0
  138. package/dist/gateway/channels/channel-store.d.ts +32 -0
  139. package/dist/gateway/channels/channel-store.js +114 -0
  140. package/dist/gateway/channels/channel-store.js.map +1 -0
  141. package/dist/gateway/channels/discord.d.ts +5 -0
  142. package/dist/gateway/channels/discord.js +177 -0
  143. package/dist/gateway/channels/discord.js.map +1 -0
  144. package/dist/gateway/channels/lark-format.d.ts +41 -0
  145. package/dist/gateway/channels/lark-format.js +620 -0
  146. package/dist/gateway/channels/lark-format.js.map +1 -0
  147. package/dist/gateway/channels/lark.d.ts +5 -0
  148. package/dist/gateway/channels/lark.js +1000 -0
  149. package/dist/gateway/channels/lark.js.map +1 -0
  150. package/dist/gateway/channels/slack.d.ts +5 -0
  151. package/dist/gateway/channels/slack.js +170 -0
  152. package/dist/gateway/channels/slack.js.map +1 -0
  153. package/dist/gateway/channels/telegram.d.ts +5 -0
  154. package/dist/gateway/channels/telegram.js +173 -0
  155. package/dist/gateway/channels/telegram.js.map +1 -0
  156. package/dist/gateway/channels/utils.d.ts +34 -0
  157. package/dist/gateway/channels/utils.js +115 -0
  158. package/dist/gateway/channels/utils.js.map +1 -0
  159. package/dist/gateway/config.d.ts +14 -0
  160. package/dist/gateway/config.js +12 -0
  161. package/dist/gateway/config.js.map +1 -0
  162. package/dist/gateway/cron/notify.d.ts +14 -0
  163. package/dist/gateway/cron/notify.js +40 -0
  164. package/dist/gateway/cron/notify.js.map +1 -0
  165. package/dist/gateway/db/dialect-helpers.d.ts +8 -0
  166. package/dist/gateway/db/dialect-helpers.js +26 -0
  167. package/dist/gateway/db/dialect-helpers.js.map +1 -0
  168. package/dist/gateway/db/index.d.ts +20 -0
  169. package/dist/gateway/db/index.js +140 -0
  170. package/dist/gateway/db/index.js.map +1 -0
  171. package/dist/gateway/db/init-schema.d.ts +8 -0
  172. package/dist/gateway/db/init-schema.js +385 -0
  173. package/dist/gateway/db/init-schema.js.map +1 -0
  174. package/dist/gateway/db/migrate-sqlite.d.ts +8 -0
  175. package/dist/gateway/db/migrate-sqlite.js +335 -0
  176. package/dist/gateway/db/migrate-sqlite.js.map +1 -0
  177. package/dist/gateway/db/repositories/chat-repo.d.ts +64 -0
  178. package/dist/gateway/db/repositories/chat-repo.js +115 -0
  179. package/dist/gateway/db/repositories/chat-repo.js.map +1 -0
  180. package/dist/gateway/db/repositories/config-repo.d.ts +164 -0
  181. package/dist/gateway/db/repositories/config-repo.js +267 -0
  182. package/dist/gateway/db/repositories/config-repo.js.map +1 -0
  183. package/dist/gateway/db/repositories/credential-repo.d.ts +51 -0
  184. package/dist/gateway/db/repositories/credential-repo.js +70 -0
  185. package/dist/gateway/db/repositories/credential-repo.js.map +1 -0
  186. package/dist/gateway/db/repositories/env-repo.d.ts +37 -0
  187. package/dist/gateway/db/repositories/env-repo.js +74 -0
  188. package/dist/gateway/db/repositories/env-repo.js.map +1 -0
  189. package/dist/gateway/db/repositories/mcp-server-repo.d.ts +97 -0
  190. package/dist/gateway/db/repositories/mcp-server-repo.js +83 -0
  191. package/dist/gateway/db/repositories/mcp-server-repo.js.map +1 -0
  192. package/dist/gateway/db/repositories/model-config-repo.d.ts +141 -0
  193. package/dist/gateway/db/repositories/model-config-repo.js +439 -0
  194. package/dist/gateway/db/repositories/model-config-repo.js.map +1 -0
  195. package/dist/gateway/db/repositories/notification-repo.d.ts +50 -0
  196. package/dist/gateway/db/repositories/notification-repo.js +105 -0
  197. package/dist/gateway/db/repositories/notification-repo.js.map +1 -0
  198. package/dist/gateway/db/repositories/permission-repo.d.ts +28 -0
  199. package/dist/gateway/db/repositories/permission-repo.js +74 -0
  200. package/dist/gateway/db/repositories/permission-repo.js.map +1 -0
  201. package/dist/gateway/db/repositories/skill-content-repo.d.ts +29 -0
  202. package/dist/gateway/db/repositories/skill-content-repo.js +90 -0
  203. package/dist/gateway/db/repositories/skill-content-repo.js.map +1 -0
  204. package/dist/gateway/db/repositories/skill-repo.d.ts +170 -0
  205. package/dist/gateway/db/repositories/skill-repo.js +185 -0
  206. package/dist/gateway/db/repositories/skill-repo.js.map +1 -0
  207. package/dist/gateway/db/repositories/skill-review-repo.d.ts +44 -0
  208. package/dist/gateway/db/repositories/skill-review-repo.js +44 -0
  209. package/dist/gateway/db/repositories/skill-review-repo.js.map +1 -0
  210. package/dist/gateway/db/repositories/skill-version-repo.d.ts +30 -0
  211. package/dist/gateway/db/repositories/skill-version-repo.js +56 -0
  212. package/dist/gateway/db/repositories/skill-version-repo.js.map +1 -0
  213. package/dist/gateway/db/repositories/system-config-repo.d.ts +21 -0
  214. package/dist/gateway/db/repositories/system-config-repo.js +86 -0
  215. package/dist/gateway/db/repositories/system-config-repo.js.map +1 -0
  216. package/dist/gateway/db/repositories/user-env-config-repo.d.ts +32 -0
  217. package/dist/gateway/db/repositories/user-env-config-repo.js +79 -0
  218. package/dist/gateway/db/repositories/user-env-config-repo.js.map +1 -0
  219. package/dist/gateway/db/repositories/user-repo.d.ts +59 -0
  220. package/dist/gateway/db/repositories/user-repo.js +83 -0
  221. package/dist/gateway/db/repositories/user-repo.js.map +1 -0
  222. package/dist/gateway/db/repositories/vote-repo.d.ts +26 -0
  223. package/dist/gateway/db/repositories/vote-repo.js +97 -0
  224. package/dist/gateway/db/repositories/vote-repo.js.map +1 -0
  225. package/dist/gateway/db/repositories/workspace-repo.d.ts +27 -0
  226. package/dist/gateway/db/repositories/workspace-repo.js +145 -0
  227. package/dist/gateway/db/repositories/workspace-repo.js.map +1 -0
  228. package/dist/gateway/db/schema-mysql.d.ts +3897 -0
  229. package/dist/gateway/db/schema-mysql.js +354 -0
  230. package/dist/gateway/db/schema-mysql.js.map +1 -0
  231. package/dist/gateway/db/schema-sqlite.d.ts +4147 -0
  232. package/dist/gateway/db/schema-sqlite.js +345 -0
  233. package/dist/gateway/db/schema-sqlite.js.map +1 -0
  234. package/dist/gateway/db/schema.d.ts +3869 -0
  235. package/dist/gateway/db/schema.js +16 -0
  236. package/dist/gateway/db/schema.js.map +1 -0
  237. package/dist/gateway/mcp-config-builder.d.ts +8 -0
  238. package/dist/gateway/mcp-config-builder.js +39 -0
  239. package/dist/gateway/mcp-config-builder.js.map +1 -0
  240. package/dist/gateway/output-redactor.d.ts +27 -0
  241. package/dist/gateway/output-redactor.js +101 -0
  242. package/dist/gateway/output-redactor.js.map +1 -0
  243. package/dist/gateway/plugins/api.d.ts +181 -0
  244. package/dist/gateway/plugins/api.js +28 -0
  245. package/dist/gateway/plugins/api.js.map +1 -0
  246. package/dist/gateway/plugins/channel-bridge.d.ts +72 -0
  247. package/dist/gateway/plugins/channel-bridge.js +586 -0
  248. package/dist/gateway/plugins/channel-bridge.js.map +1 -0
  249. package/dist/gateway/plugins/loader.d.ts +2 -0
  250. package/dist/gateway/plugins/loader.js +83 -0
  251. package/dist/gateway/plugins/loader.js.map +1 -0
  252. package/dist/gateway/plugins/runtime.d.ts +25 -0
  253. package/dist/gateway/plugins/runtime.js +64 -0
  254. package/dist/gateway/plugins/runtime.js.map +1 -0
  255. package/dist/gateway/resource-notifier.d.ts +36 -0
  256. package/dist/gateway/resource-notifier.js +123 -0
  257. package/dist/gateway/resource-notifier.js.map +1 -0
  258. package/dist/gateway/rpc-methods.d.ts +34 -0
  259. package/dist/gateway/rpc-methods.js +3198 -0
  260. package/dist/gateway/rpc-methods.js.map +1 -0
  261. package/dist/gateway/security/cert-manager.d.ts +77 -0
  262. package/dist/gateway/security/cert-manager.js +280 -0
  263. package/dist/gateway/security/cert-manager.js.map +1 -0
  264. package/dist/gateway/security/mtls-middleware.d.ts +33 -0
  265. package/dist/gateway/security/mtls-middleware.js +89 -0
  266. package/dist/gateway/security/mtls-middleware.js.map +1 -0
  267. package/dist/gateway/server.d.ts +54 -0
  268. package/dist/gateway/server.js +1146 -0
  269. package/dist/gateway/server.js.map +1 -0
  270. package/dist/gateway/skill-labels.d.ts +16 -0
  271. package/dist/gateway/skill-labels.js +79 -0
  272. package/dist/gateway/skill-labels.js.map +1 -0
  273. package/dist/gateway/skills/file-writer.d.ts +75 -0
  274. package/dist/gateway/skills/file-writer.js +320 -0
  275. package/dist/gateway/skills/file-writer.js.map +1 -0
  276. package/dist/gateway/skills/script-evaluator.d.ts +42 -0
  277. package/dist/gateway/skills/script-evaluator.js +204 -0
  278. package/dist/gateway/skills/script-evaluator.js.map +1 -0
  279. package/dist/gateway/skills/skill-bundle.d.ts +34 -0
  280. package/dist/gateway/skills/skill-bundle.js +83 -0
  281. package/dist/gateway/skills/skill-bundle.js.map +1 -0
  282. package/dist/gateway/web/dist/assets/index-BF6CtvnV.css +1 -0
  283. package/dist/gateway/web/dist/assets/index-Dumzqsr-.js +680 -0
  284. package/dist/gateway/web/dist/assets/index-n4IMHP1Q.js +675 -0
  285. package/dist/gateway/web/dist/index.html +14 -0
  286. package/dist/gateway/web/dist/noise.png +1 -0
  287. package/dist/gateway/web/dist/robots.txt +2 -0
  288. package/dist/gateway/web/dist/vite.svg +1 -0
  289. package/dist/gateway/ws-protocol.d.ts +68 -0
  290. package/dist/gateway/ws-protocol.js +106 -0
  291. package/dist/gateway/ws-protocol.js.map +1 -0
  292. package/dist/gateway-main.d.ts +1 -0
  293. package/dist/gateway-main.js +129 -0
  294. package/dist/gateway-main.js.map +1 -0
  295. package/dist/lib/s3-backup.d.ts +28 -0
  296. package/dist/lib/s3-backup.js +85 -0
  297. package/dist/lib/s3-backup.js.map +1 -0
  298. package/dist/lib/s3-storage.d.ts +45 -0
  299. package/dist/lib/s3-storage.js +210 -0
  300. package/dist/lib/s3-storage.js.map +1 -0
  301. package/dist/memory/chunker.d.ts +15 -0
  302. package/dist/memory/chunker.js +94 -0
  303. package/dist/memory/chunker.js.map +1 -0
  304. package/dist/memory/embeddings.d.ts +14 -0
  305. package/dist/memory/embeddings.js +143 -0
  306. package/dist/memory/embeddings.js.map +1 -0
  307. package/dist/memory/index.d.ts +18 -0
  308. package/dist/memory/index.js +15 -0
  309. package/dist/memory/index.js.map +1 -0
  310. package/dist/memory/indexer.d.ts +70 -0
  311. package/dist/memory/indexer.js +567 -0
  312. package/dist/memory/indexer.js.map +1 -0
  313. package/dist/memory/mmr.d.ts +22 -0
  314. package/dist/memory/mmr.js +82 -0
  315. package/dist/memory/mmr.js.map +1 -0
  316. package/dist/memory/schema.d.ts +2 -0
  317. package/dist/memory/schema.js +85 -0
  318. package/dist/memory/schema.js.map +1 -0
  319. package/dist/memory/session-summarizer.d.ts +19 -0
  320. package/dist/memory/session-summarizer.js +139 -0
  321. package/dist/memory/session-summarizer.js.map +1 -0
  322. package/dist/memory/stop-words.d.ts +13 -0
  323. package/dist/memory/stop-words.js +132 -0
  324. package/dist/memory/stop-words.js.map +1 -0
  325. package/dist/memory/temporal-decay.d.ts +20 -0
  326. package/dist/memory/temporal-decay.js +63 -0
  327. package/dist/memory/temporal-decay.js.map +1 -0
  328. package/dist/memory/types.d.ts +40 -0
  329. package/dist/memory/types.js +2 -0
  330. package/dist/memory/types.js.map +1 -0
  331. package/dist/shared/resource-sync.d.ts +80 -0
  332. package/dist/shared/resource-sync.js +24 -0
  333. package/dist/shared/resource-sync.js.map +1 -0
  334. package/dist/tools/command-sets.d.ts +61 -0
  335. package/dist/tools/command-sets.js +845 -0
  336. package/dist/tools/command-sets.js.map +1 -0
  337. package/dist/tools/create-skill.d.ts +2 -0
  338. package/dist/tools/create-skill.js +169 -0
  339. package/dist/tools/create-skill.js.map +1 -0
  340. package/dist/tools/credential-list.d.ts +8 -0
  341. package/dist/tools/credential-list.js +139 -0
  342. package/dist/tools/credential-list.js.map +1 -0
  343. package/dist/tools/deep-search/engine.d.ts +40 -0
  344. package/dist/tools/deep-search/engine.js +594 -0
  345. package/dist/tools/deep-search/engine.js.map +1 -0
  346. package/dist/tools/deep-search/events.d.ts +11 -0
  347. package/dist/tools/deep-search/events.js +10 -0
  348. package/dist/tools/deep-search/events.js.map +1 -0
  349. package/dist/tools/deep-search/format.d.ts +11 -0
  350. package/dist/tools/deep-search/format.js +143 -0
  351. package/dist/tools/deep-search/format.js.map +1 -0
  352. package/dist/tools/deep-search/prompts.d.ts +30 -0
  353. package/dist/tools/deep-search/prompts.js +237 -0
  354. package/dist/tools/deep-search/prompts.js.map +1 -0
  355. package/dist/tools/deep-search/sre-knowledge.d.ts +21 -0
  356. package/dist/tools/deep-search/sre-knowledge.js +112 -0
  357. package/dist/tools/deep-search/sre-knowledge.js.map +1 -0
  358. package/dist/tools/deep-search/sub-agent.d.ts +71 -0
  359. package/dist/tools/deep-search/sub-agent.js +401 -0
  360. package/dist/tools/deep-search/sub-agent.js.map +1 -0
  361. package/dist/tools/deep-search/tool.d.ts +9 -0
  362. package/dist/tools/deep-search/tool.js +201 -0
  363. package/dist/tools/deep-search/tool.js.map +1 -0
  364. package/dist/tools/deep-search/types.d.ts +67 -0
  365. package/dist/tools/deep-search/types.js +41 -0
  366. package/dist/tools/deep-search/types.js.map +1 -0
  367. package/dist/tools/dp-tools.d.ts +47 -0
  368. package/dist/tools/dp-tools.js +170 -0
  369. package/dist/tools/dp-tools.js.map +1 -0
  370. package/dist/tools/fork-skill.d.ts +2 -0
  371. package/dist/tools/fork-skill.js +93 -0
  372. package/dist/tools/fork-skill.js.map +1 -0
  373. package/dist/tools/k8s-checks.d.ts +18 -0
  374. package/dist/tools/k8s-checks.js +105 -0
  375. package/dist/tools/k8s-checks.js.map +1 -0
  376. package/dist/tools/kubeconfig-resolver.d.ts +11 -0
  377. package/dist/tools/kubeconfig-resolver.js +53 -0
  378. package/dist/tools/kubeconfig-resolver.js.map +1 -0
  379. package/dist/tools/kubectl.d.ts +12 -0
  380. package/dist/tools/kubectl.js +169 -0
  381. package/dist/tools/kubectl.js.map +1 -0
  382. package/dist/tools/manage-schedule.d.ts +3 -0
  383. package/dist/tools/manage-schedule.js +189 -0
  384. package/dist/tools/manage-schedule.js.map +1 -0
  385. package/dist/tools/memory-get.d.ts +2 -0
  386. package/dist/tools/memory-get.js +99 -0
  387. package/dist/tools/memory-get.js.map +1 -0
  388. package/dist/tools/memory-search.d.ts +3 -0
  389. package/dist/tools/memory-search.js +93 -0
  390. package/dist/tools/memory-search.js.map +1 -0
  391. package/dist/tools/netns-script.d.ts +3 -0
  392. package/dist/tools/netns-script.js +394 -0
  393. package/dist/tools/netns-script.js.map +1 -0
  394. package/dist/tools/node-exec.d.ts +18 -0
  395. package/dist/tools/node-exec.js +342 -0
  396. package/dist/tools/node-exec.js.map +1 -0
  397. package/dist/tools/node-script.d.ts +3 -0
  398. package/dist/tools/node-script.js +266 -0
  399. package/dist/tools/node-script.js.map +1 -0
  400. package/dist/tools/pod-exec.d.ts +4 -0
  401. package/dist/tools/pod-exec.js +146 -0
  402. package/dist/tools/pod-exec.js.map +1 -0
  403. package/dist/tools/pod-nsenter-exec.d.ts +3 -0
  404. package/dist/tools/pod-nsenter-exec.js +333 -0
  405. package/dist/tools/pod-nsenter-exec.js.map +1 -0
  406. package/dist/tools/pod-script.d.ts +3 -0
  407. package/dist/tools/pod-script.js +176 -0
  408. package/dist/tools/pod-script.js.map +1 -0
  409. package/dist/tools/restricted-bash.d.ts +41 -0
  410. package/dist/tools/restricted-bash.js +503 -0
  411. package/dist/tools/restricted-bash.js.map +1 -0
  412. package/dist/tools/run-skill.d.ts +3 -0
  413. package/dist/tools/run-skill.js +169 -0
  414. package/dist/tools/run-skill.js.map +1 -0
  415. package/dist/tools/sanitize-env.d.ts +14 -0
  416. package/dist/tools/sanitize-env.js +95 -0
  417. package/dist/tools/sanitize-env.js.map +1 -0
  418. package/dist/tools/script-resolver.d.ts +35 -0
  419. package/dist/tools/script-resolver.js +213 -0
  420. package/dist/tools/script-resolver.js.map +1 -0
  421. package/dist/tools/tool-render.d.ts +20 -0
  422. package/dist/tools/tool-render.js +77 -0
  423. package/dist/tools/tool-render.js.map +1 -0
  424. package/dist/tools/update-skill.d.ts +2 -0
  425. package/dist/tools/update-skill.js +169 -0
  426. package/dist/tools/update-skill.js.map +1 -0
  427. package/package.json +106 -0
  428. package/settings.example.json +74 -0
  429. package/siclaw.mjs +48 -0
  430. package/skills/core/cluster-events/SKILL.md +150 -0
  431. package/skills/core/deep-investigation/SKILL.md +87 -0
  432. package/skills/core/deep-investigation/default-memory.md +8 -0
  433. package/skills/core/deployment-rollout-debug/SKILL.md +144 -0
  434. package/skills/core/dns-debug/SKILL.md +144 -0
  435. package/skills/core/find-node/SKILL.md +23 -0
  436. package/skills/core/find-node/scripts/find-node.sh +9 -0
  437. package/skills/core/hpa-debug/SKILL.md +159 -0
  438. package/skills/core/image-pull-debug/SKILL.md +151 -0
  439. package/skills/core/ingress-debug/SKILL.md +189 -0
  440. package/skills/core/job-debug/SKILL.md +180 -0
  441. package/skills/core/meta.json +23 -0
  442. package/skills/core/node-health-check/SKILL.md +150 -0
  443. package/skills/core/node-logs/SKILL.md +68 -0
  444. package/skills/core/node-logs/scripts/get-node-logs.sh +78 -0
  445. package/skills/core/node-ping-gateway/SKILL.md +54 -0
  446. package/skills/core/node-ping-gateway/scripts/ping-node-gateway.sh +71 -0
  447. package/skills/core/node-show-gateway/SKILL.md +55 -0
  448. package/skills/core/node-show-gateway/scripts/show-node-gateway.sh +90 -0
  449. package/skills/core/pod-crash-debug/SKILL.md +135 -0
  450. package/skills/core/pod-pending-debug/SKILL.md +146 -0
  451. package/skills/core/pod-ping-gateway/SKILL.md +44 -0
  452. package/skills/core/pod-ping-gateway/scripts/ping-gateway.sh +76 -0
  453. package/skills/core/pod-show-gateway/SKILL.md +54 -0
  454. package/skills/core/pod-show-gateway/scripts/show-gateway.sh +115 -0
  455. package/skills/core/pvc-debug/SKILL.md +169 -0
  456. package/skills/core/service-debug/SKILL.md +164 -0
  457. package/skills/extension/.gitkeep +0 -0
  458. package/skills/platform/create-skill/SKILL.md +288 -0
  459. package/skills/platform/manage-skill/SKILL.md +23 -0
  460. package/skills/platform/update-skill/SKILL.md +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lark.js","sourceRoot":"","sources":["../../../src/gateway/channels/lark.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ChannelPlugin } from "../plugins/api.js";
2
+ import type { ChannelBridge } from "../plugins/channel-bridge.js";
3
+ import type { GatewayConfig } from "../config.js";
4
+ import type { ChannelDeps } from "./channel-manager.js";
5
+ export declare function createSlackChannel(config: GatewayConfig, channelBridge: ChannelBridge, deps?: ChannelDeps): ChannelPlugin;
@@ -0,0 +1,170 @@
1
+ import { splitMessage, markdownToSlackMrkdwn } from "./utils.js";
2
+ // --- Standalone send helpers (aligned with openclaw's sendMessageSlack) ---
3
+ async function sendSlackMessage(client, channel, text, opts) {
4
+ const chunks = splitMessage(text, 4000);
5
+ for (const chunk of chunks) {
6
+ await client.chat.postMessage({
7
+ channel,
8
+ text: chunk,
9
+ ...(opts?.threadTs ? { thread_ts: opts.threadTs } : {}),
10
+ });
11
+ }
12
+ }
13
+ async function sendSlackMarkdown(client, channel, markdown, opts) {
14
+ const mrkdwn = markdownToSlackMrkdwn(markdown);
15
+ const chunks = splitMessage(mrkdwn, 3000); // blocks have lower effective limit
16
+ for (const chunk of chunks) {
17
+ await client.chat.postMessage({
18
+ channel,
19
+ text: chunk, // fallback for notifications
20
+ blocks: [{ type: "section", text: { type: "mrkdwn", text: chunk } }],
21
+ ...(opts?.threadTs ? { thread_ts: opts.threadTs } : {}),
22
+ });
23
+ }
24
+ }
25
+ async function sendSlackDM(client, userId, text) {
26
+ // Open (or reuse) a DM conversation with the user
27
+ const conv = await client.conversations.open({ users: userId });
28
+ const dmChannelId = conv.channel?.id;
29
+ if (!dmChannelId)
30
+ throw new Error("Failed to open DM channel");
31
+ await sendSlackMessage(client, dmChannelId, text);
32
+ }
33
+ // --- ChannelPlugin factory ---
34
+ export function createSlackChannel(config, channelBridge, deps) {
35
+ const slackConfig = config.channels.slack;
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ let app = null;
38
+ let webClient = null;
39
+ const plugin = {
40
+ name: "slack",
41
+ gateway: {
42
+ async startAccount() {
43
+ if (!slackConfig?.enabled || !slackConfig?.botToken || !slackConfig?.appToken) {
44
+ console.log("[slack] Channel disabled or missing botToken/appToken");
45
+ return;
46
+ }
47
+ try {
48
+ const { App } = await import("@slack/bolt");
49
+ const slackApp = new App({
50
+ token: slackConfig.botToken,
51
+ appToken: slackConfig.appToken,
52
+ socketMode: true,
53
+ });
54
+ // Cache bot user ID for mention detection
55
+ let botUserId;
56
+ try {
57
+ const authResult = await slackApp.client.auth.test();
58
+ botUserId = authResult.user_id;
59
+ console.log(`[slack] Bot user ID: ${botUserId}`);
60
+ }
61
+ catch (err) {
62
+ console.warn("[slack] Could not fetch bot info:", err);
63
+ }
64
+ // Register message handler
65
+ slackApp.message(async ({ message, client: _client }) => {
66
+ // Type-narrow: only handle regular messages (not message_changed etc.)
67
+ if (message.subtype)
68
+ return;
69
+ const msg = message;
70
+ // Ignore bot messages
71
+ if (msg.bot_id)
72
+ return;
73
+ const text = msg.text ?? "";
74
+ const channelId = msg.channel;
75
+ const userId = msg.user;
76
+ if (!channelId || !userId || !text)
77
+ return;
78
+ // Group/Channel: only respond when @mentioned
79
+ const isDM = msg.channel_type === "im";
80
+ if (!isDM) {
81
+ if (!botUserId || !text.includes(`<@${botUserId}>`))
82
+ return;
83
+ }
84
+ // Strip bot mention from text
85
+ let cleanText = text;
86
+ if (botUserId) {
87
+ cleanText = cleanText.replace(new RegExp(`<@${botUserId}>`, "g"), "").trim();
88
+ }
89
+ if (!cleanText)
90
+ return;
91
+ // Intercept /bind command
92
+ const bindMatch = cleanText.match(/^\/bind\s+(\d{6})$/);
93
+ if (bindMatch && deps) {
94
+ const code = bindMatch[1];
95
+ const boundUserId = deps.bindCodeStore.verifyCode(code);
96
+ if (boundUserId) {
97
+ try {
98
+ deps.userStore.addBinding(boundUserId, "slack", userId);
99
+ const user = deps.userStore.getById(boundUserId);
100
+ await sendSlackMessage(webClient, channelId, `Binding successful! Linked to user "${user?.username ?? boundUserId}". Future messages will be routed to this account.`);
101
+ }
102
+ catch (err) {
103
+ await sendSlackMessage(webClient, channelId, `Binding failed: ${err instanceof Error ? err.message : "Unknown error"}`);
104
+ }
105
+ }
106
+ else {
107
+ await sendSlackMessage(webClient, channelId, "Invalid or expired code. Please generate a new one from the web UI.");
108
+ }
109
+ return;
110
+ }
111
+ await channelBridge.handleInbound("slack", channelId, userId, cleanText);
112
+ });
113
+ await slackApp.start();
114
+ app = slackApp;
115
+ webClient = slackApp.client;
116
+ console.log("[slack] Channel started (Socket Mode)");
117
+ }
118
+ catch (err) {
119
+ console.error("[slack] Failed to start:", err);
120
+ throw err;
121
+ }
122
+ },
123
+ async stopAccount() {
124
+ if (app) {
125
+ try {
126
+ await app.stop();
127
+ }
128
+ catch { /* ignore */ }
129
+ }
130
+ app = null;
131
+ webClient = null;
132
+ console.log("[slack] Channel stopped");
133
+ },
134
+ },
135
+ outbound: {
136
+ async sendText({ to, text }) {
137
+ if (!webClient)
138
+ return;
139
+ try {
140
+ await sendSlackMessage(webClient, to, text);
141
+ }
142
+ catch (err) {
143
+ console.error(`[slack] Failed to send text to ${to}:`, err);
144
+ }
145
+ },
146
+ async sendMarkdown({ to, markdown }) {
147
+ if (!webClient)
148
+ return;
149
+ try {
150
+ await sendSlackMarkdown(webClient, to, markdown.content);
151
+ }
152
+ catch (err) {
153
+ console.error(`[slack] Failed to send markdown to ${to}:`, err);
154
+ }
155
+ },
156
+ async sendDirectText({ userId, text }) {
157
+ if (!webClient)
158
+ return;
159
+ try {
160
+ await sendSlackDM(webClient, userId, text);
161
+ }
162
+ catch (err) {
163
+ console.error(`[slack] Failed to send DM to ${userId}:`, err);
164
+ }
165
+ },
166
+ },
167
+ };
168
+ return plugin;
169
+ }
170
+ //# sourceMappingURL=slack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../../src/gateway/channels/slack.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ChannelPlugin } from "../plugins/api.js";
2
+ import type { ChannelBridge } from "../plugins/channel-bridge.js";
3
+ import type { GatewayConfig } from "../config.js";
4
+ import type { ChannelDeps } from "./channel-manager.js";
5
+ export declare function createTelegramChannel(config: GatewayConfig, channelBridge: ChannelBridge, deps?: ChannelDeps): ChannelPlugin;
@@ -0,0 +1,173 @@
1
+ import { splitMessage, markdownToTelegramHtml } from "./utils.js";
2
+ /**
3
+ * Regex matching Telegram HTML parse errors (aligned with openclaw's PARSE_ERR_RE).
4
+ * When the API rejects our HTML, we retry as plain text.
5
+ */
6
+ const PARSE_ERR_RE = /can't parse entities/i;
7
+ // --- Standalone send helpers (aligned with openclaw's sendMessageTelegram) ---
8
+ async function sendTelegramMessage(bot, chatId, text, opts) {
9
+ const chunks = splitMessage(text, 4096);
10
+ for (const chunk of chunks) {
11
+ try {
12
+ await bot.api.sendMessage(chatId, chunk, {
13
+ parse_mode: "HTML",
14
+ ...(opts?.replyToMessageId
15
+ ? { reply_parameters: { message_id: opts.replyToMessageId } }
16
+ : {}),
17
+ ...(opts?.messageThreadId
18
+ ? { message_thread_id: opts.messageThreadId }
19
+ : {}),
20
+ });
21
+ }
22
+ catch (err) {
23
+ // Fallback: if HTML parse fails, retry as plain text
24
+ const msg = err instanceof Error ? err.message : String(err);
25
+ if (PARSE_ERR_RE.test(msg)) {
26
+ await bot.api.sendMessage(chatId, chunk, {
27
+ ...(opts?.replyToMessageId
28
+ ? { reply_parameters: { message_id: opts.replyToMessageId } }
29
+ : {}),
30
+ ...(opts?.messageThreadId
31
+ ? { message_thread_id: opts.messageThreadId }
32
+ : {}),
33
+ });
34
+ }
35
+ else {
36
+ throw err;
37
+ }
38
+ }
39
+ }
40
+ }
41
+ // --- ChannelPlugin factory ---
42
+ export function createTelegramChannel(config, channelBridge, deps) {
43
+ const telegramConfig = config.channels.telegram;
44
+ let bot = null;
45
+ const plugin = {
46
+ name: "telegram",
47
+ gateway: {
48
+ async startAccount() {
49
+ if (!telegramConfig?.enabled || !telegramConfig?.botToken) {
50
+ console.log("[telegram] Channel disabled or no botToken configured");
51
+ return;
52
+ }
53
+ try {
54
+ const { Bot: GrammyBot } = await import("grammy");
55
+ const tgBot = new GrammyBot(telegramConfig.botToken);
56
+ // Cache bot info for mention detection
57
+ let botUsername;
58
+ // Global error handler (aligned with openclaw's recoverable error pattern)
59
+ tgBot.catch((err) => {
60
+ console.error("[telegram] Unhandled error:", err.error);
61
+ });
62
+ // Handle text messages
63
+ tgBot.on("message:text", async (ctx) => {
64
+ const text = ctx.message.text ?? "";
65
+ const chatId = String(ctx.chat.id);
66
+ const userId = String(ctx.from.id);
67
+ const chatType = ctx.chat.type; // "private" | "group" | "supergroup" | "channel"
68
+ // Group/supergroup: only respond to @mention or / commands
69
+ if (chatType !== "private") {
70
+ const isMentioned = botUsername
71
+ ? text.includes(`@${botUsername}`)
72
+ : false;
73
+ const isCommand = text.startsWith("/");
74
+ if (!isMentioned && !isCommand)
75
+ return;
76
+ }
77
+ // Strip bot mention from text
78
+ let cleanText = text;
79
+ if (botUsername) {
80
+ cleanText = cleanText.replace(new RegExp(`@${botUsername}`, "gi"), "").trim();
81
+ }
82
+ if (!cleanText)
83
+ return;
84
+ // Intercept /bind command
85
+ const bindMatch = cleanText.match(/^\/bind\s+(\d{6})$/);
86
+ if (bindMatch && deps) {
87
+ const code = bindMatch[1];
88
+ const boundUserId = deps.bindCodeStore.verifyCode(code);
89
+ if (boundUserId) {
90
+ try {
91
+ deps.userStore.addBinding(boundUserId, "telegram", userId);
92
+ const user = deps.userStore.getById(boundUserId);
93
+ await ctx.reply(`Binding successful! Linked to user "${user?.username ?? boundUserId}". Future messages will be routed to this account.`);
94
+ }
95
+ catch (err) {
96
+ await ctx.reply(`Binding failed: ${err instanceof Error ? err.message : "Unknown error"}`);
97
+ }
98
+ }
99
+ else {
100
+ await ctx.reply("Invalid or expired code. Please generate a new one from the web UI.");
101
+ }
102
+ return;
103
+ }
104
+ await channelBridge.handleInbound("telegram", chatId, userId, cleanText);
105
+ });
106
+ // Start long polling
107
+ // bot.start() is non-blocking in grammy — it runs in the background
108
+ tgBot.start({
109
+ onStart: (info) => {
110
+ botUsername = info.username;
111
+ console.log(`[telegram] Bot connected as @${info.username}`);
112
+ },
113
+ });
114
+ bot = tgBot;
115
+ console.log("[telegram] Channel started (long polling)");
116
+ }
117
+ catch (err) {
118
+ console.error("[telegram] Failed to start:", err);
119
+ throw err;
120
+ }
121
+ },
122
+ async stopAccount() {
123
+ if (bot) {
124
+ try {
125
+ bot.stop();
126
+ }
127
+ catch { /* ignore */ }
128
+ }
129
+ bot = null;
130
+ console.log("[telegram] Channel stopped");
131
+ },
132
+ },
133
+ outbound: {
134
+ async sendText({ to, text }) {
135
+ if (!bot)
136
+ return;
137
+ try {
138
+ // Convert to HTML for richer display
139
+ const html = markdownToTelegramHtml(text);
140
+ await sendTelegramMessage(bot, to, html);
141
+ }
142
+ catch (err) {
143
+ console.error(`[telegram] Failed to send text to ${to}:`, err);
144
+ }
145
+ },
146
+ async sendMarkdown({ to, markdown }) {
147
+ if (!bot)
148
+ return;
149
+ try {
150
+ const html = markdownToTelegramHtml(markdown.content);
151
+ await sendTelegramMessage(bot, to, html);
152
+ }
153
+ catch (err) {
154
+ console.error(`[telegram] Failed to send markdown to ${to}:`, err);
155
+ }
156
+ },
157
+ async sendDirectText({ userId, text }) {
158
+ if (!bot)
159
+ return;
160
+ try {
161
+ // In Telegram, DM is just sendMessage to the user's chat ID
162
+ const html = markdownToTelegramHtml(text);
163
+ await sendTelegramMessage(bot, userId, html);
164
+ }
165
+ catch (err) {
166
+ console.error(`[telegram] Failed to send DM to ${userId}:`, err);
167
+ }
168
+ },
169
+ },
170
+ };
171
+ return plugin;
172
+ }
173
+ //# sourceMappingURL=telegram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../../src/gateway/channels/telegram.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Convert standard markdown to Feishu card-compatible markdown.
3
+ *
4
+ * Feishu card `{ tag: "markdown" }` only supports: **bold**, *italic*,
5
+ * ~~strikethrough~~, [links](url), and <text_color> tags.
6
+ *
7
+ * Unsupported syntax (headers, code blocks, inline code, lists,
8
+ * blockquotes, tables, etc.) is converted to plain-text equivalents.
9
+ */
10
+ export declare function markdownToFeishu(md: string): string;
11
+ /**
12
+ * Convert standard markdown to Telegram-safe HTML.
13
+ *
14
+ * Telegram's "HTML" parse mode supports: <b>, <i>, <u>, <s>, <code>, <pre>,
15
+ * <a href="...">, <tg-spoiler>. Everything else must be escaped.
16
+ *
17
+ * Reference: openclaw's markdownToTelegramHtmlChunks pattern.
18
+ */
19
+ export declare function markdownToTelegramHtml(md: string): string;
20
+ /**
21
+ * Convert standard markdown to Slack mrkdwn format.
22
+ *
23
+ * Slack's mrkdwn syntax differs from standard markdown:
24
+ * - Bold: *text* (not **text**)
25
+ * - Italic: _text_ (not *text*)
26
+ * - Links: <url|text> (not [text](url))
27
+ * - Code and code blocks stay the same.
28
+ */
29
+ export declare function markdownToSlackMrkdwn(md: string): string;
30
+ /**
31
+ * Split a long message into chunks that respect a maximum length.
32
+ * Tries to split at newlines, then spaces, then hard-splits.
33
+ */
34
+ export declare function splitMessage(text: string, maxLen: number): string[];
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Convert standard markdown to Feishu card-compatible markdown.
3
+ *
4
+ * Feishu card `{ tag: "markdown" }` only supports: **bold**, *italic*,
5
+ * ~~strikethrough~~, [links](url), and <text_color> tags.
6
+ *
7
+ * Unsupported syntax (headers, code blocks, inline code, lists,
8
+ * blockquotes, tables, etc.) is converted to plain-text equivalents.
9
+ */
10
+ export function markdownToFeishu(md) {
11
+ // 1. Convert fenced code blocks (```lang\n...\n```) to indented plain text
12
+ let result = md.replace(/```[\s\S]*?```/g, (block) => {
13
+ const inner = block.replace(/^```[^\n]*\n?/, "").replace(/\n?```$/, "");
14
+ return inner
15
+ .split("\n")
16
+ .map((line) => " " + line)
17
+ .join("\n");
18
+ });
19
+ // 2. Convert inline code (`code`) — strip backticks
20
+ result = result.replace(/`([^`]+)`/g, "$1");
21
+ // 3. Convert headers (# ... ######) to bold text
22
+ result = result.replace(/^(#{1,6})\s+(.+)$/gm, "**$2**");
23
+ // 4. Convert unordered list items (-, *, +) to bullet character
24
+ result = result.replace(/^[ \t]*[-*+]\s+/gm, "• ");
25
+ // 5. Convert blockquotes (> ...) — strip the > prefix
26
+ result = result.replace(/^>\s?/gm, "");
27
+ // 6. Convert horizontal rules (---, ***, ___) to separator line
28
+ result = result.replace(/^[-*_]{3,}$/gm, "────────────");
29
+ // 7. Convert images ![alt](url) to just [alt](url)
30
+ result = result.replace(/!\[([^\]]*)\]\(([^)]+)\)/g, "[$1]($2)");
31
+ return result;
32
+ }
33
+ /**
34
+ * Convert standard markdown to Telegram-safe HTML.
35
+ *
36
+ * Telegram's "HTML" parse mode supports: <b>, <i>, <u>, <s>, <code>, <pre>,
37
+ * <a href="...">, <tg-spoiler>. Everything else must be escaped.
38
+ *
39
+ * Reference: openclaw's markdownToTelegramHtmlChunks pattern.
40
+ */
41
+ export function markdownToTelegramHtml(md) {
42
+ // Escape HTML entities first (must happen before we introduce our own tags)
43
+ let result = md
44
+ .replace(/&/g, "&amp;")
45
+ .replace(/</g, "&lt;")
46
+ .replace(/>/g, "&gt;");
47
+ // Fenced code blocks: ```lang\n...\n``` → <pre>...</pre>
48
+ result = result.replace(/```[^\n]*\n([\s\S]*?)```/g, (_m, code) => `<pre>${code}</pre>`);
49
+ // Inline code: `code` → <code>code</code>
50
+ result = result.replace(/`([^`]+)`/g, "<code>$1</code>");
51
+ // Bold: **text** → <b>text</b>
52
+ result = result.replace(/\*\*(.+?)\*\*/g, "<b>$1</b>");
53
+ // Italic: *text* → <i>text</i> (but not inside <b> tags already converted)
54
+ result = result.replace(/(?<!\*)\*(?!\*)(.+?)(?<!\*)\*(?!\*)/g, "<i>$1</i>");
55
+ // Strikethrough: ~~text~~ → <s>text</s>
56
+ result = result.replace(/~~(.+?)~~/g, "<s>$1</s>");
57
+ // Links: [text](url) → <a href="url">text</a>
58
+ result = result.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2">$1</a>');
59
+ // Headers: # ... → bold
60
+ result = result.replace(/^#{1,6}\s+(.+)$/gm, "<b>$1</b>");
61
+ return result;
62
+ }
63
+ /**
64
+ * Convert standard markdown to Slack mrkdwn format.
65
+ *
66
+ * Slack's mrkdwn syntax differs from standard markdown:
67
+ * - Bold: *text* (not **text**)
68
+ * - Italic: _text_ (not *text*)
69
+ * - Links: <url|text> (not [text](url))
70
+ * - Code and code blocks stay the same.
71
+ */
72
+ export function markdownToSlackMrkdwn(md) {
73
+ let result = md;
74
+ // Links first (before bold/italic conversion): [text](url) → <url|text>
75
+ result = result.replace(/\[([^\]]+)\]\(([^)]+)\)/g, "<$2|$1>");
76
+ // Bold: **text** → *text*
77
+ result = result.replace(/\*\*(.+?)\*\*/g, "*$1*");
78
+ // Italic: *text* → _text_ (single asterisks that aren't part of bold)
79
+ result = result.replace(/(?<!\*)\*(?!\*)(.+?)(?<!\*)\*(?!\*)/g, "_$1_");
80
+ // Strikethrough: ~~text~~ → ~text~
81
+ result = result.replace(/~~(.+?)~~/g, "~$1~");
82
+ // Headers: # ... → bold
83
+ result = result.replace(/^#{1,6}\s+(.+)$/gm, "*$1*");
84
+ return result;
85
+ }
86
+ /**
87
+ * Split a long message into chunks that respect a maximum length.
88
+ * Tries to split at newlines, then spaces, then hard-splits.
89
+ */
90
+ export function splitMessage(text, maxLen) {
91
+ if (text.length <= maxLen)
92
+ return [text];
93
+ const chunks = [];
94
+ let remaining = text;
95
+ while (remaining.length > 0) {
96
+ if (remaining.length <= maxLen) {
97
+ chunks.push(remaining);
98
+ break;
99
+ }
100
+ // Try to split at a newline
101
+ let splitIdx = remaining.lastIndexOf("\n", maxLen);
102
+ if (splitIdx <= 0) {
103
+ // Fall back to space
104
+ splitIdx = remaining.lastIndexOf(" ", maxLen);
105
+ }
106
+ if (splitIdx <= 0) {
107
+ // Hard split
108
+ splitIdx = maxLen;
109
+ }
110
+ chunks.push(remaining.slice(0, splitIdx));
111
+ remaining = remaining.slice(splitIdx).trimStart();
112
+ }
113
+ return chunks;
114
+ }
115
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/gateway/channels/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface ChannelConfig {
2
+ enabled: boolean;
3
+ [key: string]: unknown;
4
+ }
5
+ export interface GatewayConfig {
6
+ port: number;
7
+ internalPort?: number;
8
+ host: string;
9
+ plugins: {
10
+ paths: string[];
11
+ };
12
+ channels: Record<string, ChannelConfig>;
13
+ }
14
+ export declare function loadGatewayConfig(): GatewayConfig;
@@ -0,0 +1,12 @@
1
+ const DEFAULT_CONFIG = {
2
+ port: 3000,
3
+ host: "0.0.0.0",
4
+ plugins: {
5
+ paths: ["./node_modules"],
6
+ },
7
+ channels: {},
8
+ };
9
+ export function loadGatewayConfig() {
10
+ return { ...DEFAULT_CONFIG };
11
+ }
12
+ //# sourceMappingURL=config.js.map