openbotgate 1.0.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 (425) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +293 -0
  3. package/bin/openbotgate.js +31 -0
  4. package/dist/config/config.d.ts +56 -0
  5. package/dist/config/config.d.ts.map +1 -0
  6. package/dist/config/config.js +136 -0
  7. package/dist/config/config.js.map +1 -0
  8. package/dist/debug.d.ts +2 -0
  9. package/dist/debug.d.ts.map +1 -0
  10. package/dist/debug.js +33 -0
  11. package/dist/debug.js.map +1 -0
  12. package/dist/gateway/bluebubbles.d.ts +12 -0
  13. package/dist/gateway/bluebubbles.d.ts.map +1 -0
  14. package/dist/gateway/bluebubbles.js +80 -0
  15. package/dist/gateway/bluebubbles.js.map +1 -0
  16. package/dist/gateway/catalog.d.ts +10 -0
  17. package/dist/gateway/catalog.d.ts.map +1 -0
  18. package/dist/gateway/catalog.js +28 -0
  19. package/dist/gateway/catalog.js.map +1 -0
  20. package/dist/gateway/discord.d.ts +12 -0
  21. package/dist/gateway/discord.d.ts.map +1 -0
  22. package/dist/gateway/discord.js +83 -0
  23. package/dist/gateway/discord.js.map +1 -0
  24. package/dist/gateway/feishu.d.ts +35 -0
  25. package/dist/gateway/feishu.d.ts.map +1 -0
  26. package/dist/gateway/feishu.js +290 -0
  27. package/dist/gateway/feishu.js.map +1 -0
  28. package/dist/gateway/googlechat.d.ts +11 -0
  29. package/dist/gateway/googlechat.d.ts.map +1 -0
  30. package/dist/gateway/googlechat.js +92 -0
  31. package/dist/gateway/googlechat.js.map +1 -0
  32. package/dist/gateway/imessage.d.ts +12 -0
  33. package/dist/gateway/imessage.d.ts.map +1 -0
  34. package/dist/gateway/imessage.js +84 -0
  35. package/dist/gateway/imessage.js.map +1 -0
  36. package/dist/gateway/index.d.ts +9 -0
  37. package/dist/gateway/index.d.ts.map +1 -0
  38. package/dist/gateway/index.js +27 -0
  39. package/dist/gateway/index.js.map +1 -0
  40. package/dist/gateway/line.d.ts +13 -0
  41. package/dist/gateway/line.d.ts.map +1 -0
  42. package/dist/gateway/line.js +80 -0
  43. package/dist/gateway/line.js.map +1 -0
  44. package/dist/gateway/matrix.d.ts +12 -0
  45. package/dist/gateway/matrix.d.ts.map +1 -0
  46. package/dist/gateway/matrix.js +105 -0
  47. package/dist/gateway/matrix.js.map +1 -0
  48. package/dist/gateway/mattermost.d.ts +14 -0
  49. package/dist/gateway/mattermost.d.ts.map +1 -0
  50. package/dist/gateway/mattermost.js +92 -0
  51. package/dist/gateway/mattermost.js.map +1 -0
  52. package/dist/gateway/msteams.d.ts +12 -0
  53. package/dist/gateway/msteams.d.ts.map +1 -0
  54. package/dist/gateway/msteams.js +119 -0
  55. package/dist/gateway/msteams.js.map +1 -0
  56. package/dist/gateway/nextcloud-talk.d.ts +11 -0
  57. package/dist/gateway/nextcloud-talk.d.ts.map +1 -0
  58. package/dist/gateway/nextcloud-talk.js +93 -0
  59. package/dist/gateway/nextcloud-talk.js.map +1 -0
  60. package/dist/gateway/nostr.d.ts +15 -0
  61. package/dist/gateway/nostr.d.ts.map +1 -0
  62. package/dist/gateway/nostr.js +95 -0
  63. package/dist/gateway/nostr.js.map +1 -0
  64. package/dist/gateway/qq-guild.d.ts +14 -0
  65. package/dist/gateway/qq-guild.d.ts.map +1 -0
  66. package/dist/gateway/qq-guild.js +121 -0
  67. package/dist/gateway/qq-guild.js.map +1 -0
  68. package/dist/gateway/qq.d.ts +14 -0
  69. package/dist/gateway/qq.d.ts.map +1 -0
  70. package/dist/gateway/qq.js +121 -0
  71. package/dist/gateway/qq.js.map +1 -0
  72. package/dist/gateway/registry.d.ts +4 -0
  73. package/dist/gateway/registry.d.ts.map +1 -0
  74. package/dist/gateway/registry.js +38 -0
  75. package/dist/gateway/registry.js.map +1 -0
  76. package/dist/gateway/signal.d.ts +12 -0
  77. package/dist/gateway/signal.d.ts.map +1 -0
  78. package/dist/gateway/signal.js +80 -0
  79. package/dist/gateway/signal.js.map +1 -0
  80. package/dist/gateway/slack.d.ts +12 -0
  81. package/dist/gateway/slack.d.ts.map +1 -0
  82. package/dist/gateway/slack.js +83 -0
  83. package/dist/gateway/slack.js.map +1 -0
  84. package/dist/gateway/stub.d.ts +7 -0
  85. package/dist/gateway/stub.d.ts.map +1 -0
  86. package/dist/gateway/stub.js +23 -0
  87. package/dist/gateway/stub.js.map +1 -0
  88. package/dist/gateway/telegram.d.ts +12 -0
  89. package/dist/gateway/telegram.d.ts.map +1 -0
  90. package/dist/gateway/telegram.js +61 -0
  91. package/dist/gateway/telegram.js.map +1 -0
  92. package/dist/gateway/tlon.d.ts +12 -0
  93. package/dist/gateway/tlon.d.ts.map +1 -0
  94. package/dist/gateway/tlon.js +105 -0
  95. package/dist/gateway/tlon.js.map +1 -0
  96. package/dist/gateway/types.d.ts +21 -0
  97. package/dist/gateway/types.d.ts.map +1 -0
  98. package/dist/gateway/types.js +3 -0
  99. package/dist/gateway/types.js.map +1 -0
  100. package/dist/gateway/whatsapp.d.ts +12 -0
  101. package/dist/gateway/whatsapp.d.ts.map +1 -0
  102. package/dist/gateway/whatsapp.js +81 -0
  103. package/dist/gateway/whatsapp.js.map +1 -0
  104. package/dist/gateway/zalo.d.ts +12 -0
  105. package/dist/gateway/zalo.d.ts.map +1 -0
  106. package/dist/gateway/zalo.js +77 -0
  107. package/dist/gateway/zalo.js.map +1 -0
  108. package/dist/gateway/zalouser.d.ts +12 -0
  109. package/dist/gateway/zalouser.d.ts.map +1 -0
  110. package/dist/gateway/zalouser.js +85 -0
  111. package/dist/gateway/zalouser.js.map +1 -0
  112. package/dist/handler/code/agent.d.ts +10 -0
  113. package/dist/handler/code/agent.d.ts.map +1 -0
  114. package/dist/handler/code/agent.js +63 -0
  115. package/dist/handler/code/agent.js.map +1 -0
  116. package/dist/handler/code/code.d.ts +15 -0
  117. package/dist/handler/code/code.d.ts.map +1 -0
  118. package/dist/handler/code/code.js +129 -0
  119. package/dist/handler/code/code.js.map +1 -0
  120. package/dist/handler/code/model.d.ts +10 -0
  121. package/dist/handler/code/model.d.ts.map +1 -0
  122. package/dist/handler/code/model.js +63 -0
  123. package/dist/handler/code/model.js.map +1 -0
  124. package/dist/handler/code/new.d.ts +7 -0
  125. package/dist/handler/code/new.d.ts.map +1 -0
  126. package/dist/handler/code/new.js +27 -0
  127. package/dist/handler/code/new.js.map +1 -0
  128. package/dist/handler/code/opencode.d.ts +12 -0
  129. package/dist/handler/code/opencode.d.ts.map +1 -0
  130. package/dist/handler/code/opencode.js +88 -0
  131. package/dist/handler/code/opencode.js.map +1 -0
  132. package/dist/handler/code/session.d.ts +9 -0
  133. package/dist/handler/code/session.d.ts.map +1 -0
  134. package/dist/handler/code/session.js +55 -0
  135. package/dist/handler/code/session.js.map +1 -0
  136. package/dist/handler/code/workspace.d.ts +10 -0
  137. package/dist/handler/code/workspace.d.ts.map +1 -0
  138. package/dist/handler/code/workspace.js +80 -0
  139. package/dist/handler/code/workspace.js.map +1 -0
  140. package/dist/handler/commands/agent.d.ts +10 -0
  141. package/dist/handler/commands/agent.d.ts.map +1 -0
  142. package/dist/handler/commands/agent.js +63 -0
  143. package/dist/handler/commands/agent.js.map +1 -0
  144. package/dist/handler/commands/async.d.ts +3 -0
  145. package/dist/handler/commands/async.d.ts.map +1 -0
  146. package/dist/handler/commands/async.js +30 -0
  147. package/dist/handler/commands/async.js.map +1 -0
  148. package/dist/handler/commands/claude.d.ts +3 -0
  149. package/dist/handler/commands/claude.d.ts.map +1 -0
  150. package/dist/handler/commands/claude.js +19 -0
  151. package/dist/handler/commands/claude.js.map +1 -0
  152. package/dist/handler/commands/code.d.ts +15 -0
  153. package/dist/handler/commands/code.d.ts.map +1 -0
  154. package/dist/handler/commands/code.js +133 -0
  155. package/dist/handler/commands/code.js.map +1 -0
  156. package/dist/handler/commands/git.d.ts +3 -0
  157. package/dist/handler/commands/git.d.ts.map +1 -0
  158. package/dist/handler/commands/git.js +25 -0
  159. package/dist/handler/commands/git.js.map +1 -0
  160. package/dist/handler/commands/help.d.ts +3 -0
  161. package/dist/handler/commands/help.d.ts.map +1 -0
  162. package/dist/handler/commands/help.js +49 -0
  163. package/dist/handler/commands/help.js.map +1 -0
  164. package/dist/handler/commands/index.d.ts +10 -0
  165. package/dist/handler/commands/index.d.ts.map +1 -0
  166. package/dist/handler/commands/index.js +43 -0
  167. package/dist/handler/commands/index.js.map +1 -0
  168. package/dist/handler/commands/model.d.ts +10 -0
  169. package/dist/handler/commands/model.d.ts.map +1 -0
  170. package/dist/handler/commands/model.js +63 -0
  171. package/dist/handler/commands/model.js.map +1 -0
  172. package/dist/handler/commands/new.d.ts +3 -0
  173. package/dist/handler/commands/new.d.ts.map +1 -0
  174. package/dist/handler/commands/new.js +25 -0
  175. package/dist/handler/commands/new.js.map +1 -0
  176. package/dist/handler/commands/opencode.d.ts +12 -0
  177. package/dist/handler/commands/opencode.d.ts.map +1 -0
  178. package/dist/handler/commands/opencode.js +131 -0
  179. package/dist/handler/commands/opencode.js.map +1 -0
  180. package/dist/handler/commands/session.d.ts +9 -0
  181. package/dist/handler/commands/session.d.ts.map +1 -0
  182. package/dist/handler/commands/session.js +55 -0
  183. package/dist/handler/commands/session.js.map +1 -0
  184. package/dist/handler/commands/shell.d.ts +11 -0
  185. package/dist/handler/commands/shell.d.ts.map +1 -0
  186. package/dist/handler/commands/shell.js +142 -0
  187. package/dist/handler/commands/shell.js.map +1 -0
  188. package/dist/handler/commands/status.d.ts +3 -0
  189. package/dist/handler/commands/status.d.ts.map +1 -0
  190. package/dist/handler/commands/status.js +21 -0
  191. package/dist/handler/commands/status.js.map +1 -0
  192. package/dist/handler/commands/sync.d.ts +3 -0
  193. package/dist/handler/commands/sync.d.ts.map +1 -0
  194. package/dist/handler/commands/sync.js +26 -0
  195. package/dist/handler/commands/sync.js.map +1 -0
  196. package/dist/handler/commands/tasks.d.ts +10 -0
  197. package/dist/handler/commands/tasks.d.ts.map +1 -0
  198. package/dist/handler/commands/tasks.js +58 -0
  199. package/dist/handler/commands/tasks.js.map +1 -0
  200. package/dist/handler/commands/utils.d.ts +10 -0
  201. package/dist/handler/commands/utils.d.ts.map +1 -0
  202. package/dist/handler/commands/utils.js +63 -0
  203. package/dist/handler/commands/utils.js.map +1 -0
  204. package/dist/handler/commands/workspace.d.ts +10 -0
  205. package/dist/handler/commands/workspace.d.ts.map +1 -0
  206. package/dist/handler/commands/workspace.js +80 -0
  207. package/dist/handler/commands/workspace.js.map +1 -0
  208. package/dist/handler/dedup.d.ts +3 -0
  209. package/dist/handler/dedup.d.ts.map +1 -0
  210. package/dist/handler/dedup.js +29 -0
  211. package/dist/handler/dedup.js.map +1 -0
  212. package/dist/handler/index.d.ts +21 -0
  213. package/dist/handler/index.d.ts.map +1 -0
  214. package/dist/handler/index.js +189 -0
  215. package/dist/handler/index.js.map +1 -0
  216. package/dist/handler/parse.d.ts +30 -0
  217. package/dist/handler/parse.d.ts.map +1 -0
  218. package/dist/handler/parse.js +57 -0
  219. package/dist/handler/parse.js.map +1 -0
  220. package/dist/handler/session/agent.d.ts +10 -0
  221. package/dist/handler/session/agent.d.ts.map +1 -0
  222. package/dist/handler/session/agent.js +63 -0
  223. package/dist/handler/session/agent.js.map +1 -0
  224. package/dist/handler/session/model.d.ts +10 -0
  225. package/dist/handler/session/model.d.ts.map +1 -0
  226. package/dist/handler/session/model.js +63 -0
  227. package/dist/handler/session/model.js.map +1 -0
  228. package/dist/handler/session/new.d.ts +3 -0
  229. package/dist/handler/session/new.d.ts.map +1 -0
  230. package/dist/handler/session/new.js +25 -0
  231. package/dist/handler/session/new.js.map +1 -0
  232. package/dist/handler/session/session.d.ts +9 -0
  233. package/dist/handler/session/session.d.ts.map +1 -0
  234. package/dist/handler/session/session.js +55 -0
  235. package/dist/handler/session/session.js.map +1 -0
  236. package/dist/handler/session/workspace.d.ts +10 -0
  237. package/dist/handler/session/workspace.d.ts.map +1 -0
  238. package/dist/handler/session/workspace.js +80 -0
  239. package/dist/handler/session/workspace.js.map +1 -0
  240. package/dist/handler/shell/git.d.ts +3 -0
  241. package/dist/handler/shell/git.d.ts.map +1 -0
  242. package/dist/handler/shell/git.js +25 -0
  243. package/dist/handler/shell/git.js.map +1 -0
  244. package/dist/handler/shell/runShell.d.ts +7 -0
  245. package/dist/handler/shell/runShell.d.ts.map +1 -0
  246. package/dist/handler/shell/runShell.js +42 -0
  247. package/dist/handler/shell/runShell.js.map +1 -0
  248. package/dist/handler/shell/utils.d.ts +10 -0
  249. package/dist/handler/shell/utils.d.ts.map +1 -0
  250. package/dist/handler/shell/utils.js +63 -0
  251. package/dist/handler/shell/utils.js.map +1 -0
  252. package/dist/handler/streamHandler.d.ts +9 -0
  253. package/dist/handler/streamHandler.d.ts.map +1 -0
  254. package/dist/handler/streamHandler.js +49 -0
  255. package/dist/handler/streamHandler.js.map +1 -0
  256. package/dist/handler/types.d.ts +36 -0
  257. package/dist/handler/types.d.ts.map +1 -0
  258. package/dist/handler/types.js +3 -0
  259. package/dist/handler/types.js.map +1 -0
  260. package/dist/handlers/messageHandler.d.ts +3 -0
  261. package/dist/handlers/messageHandler.d.ts.map +1 -0
  262. package/dist/handlers/messageHandler.js +249 -0
  263. package/dist/handlers/messageHandler.js.map +1 -0
  264. package/dist/handlers/messageHandlerOfficial.d.ts +2 -0
  265. package/dist/handlers/messageHandlerOfficial.d.ts.map +1 -0
  266. package/dist/handlers/messageHandlerOfficial.js +302 -0
  267. package/dist/handlers/messageHandlerOfficial.js.map +1 -0
  268. package/dist/handlers/messageHandlerV2.d.ts +2 -0
  269. package/dist/handlers/messageHandlerV2.d.ts.map +1 -0
  270. package/dist/handlers/messageHandlerV2.js +250 -0
  271. package/dist/handlers/messageHandlerV2.js.map +1 -0
  272. package/dist/helloWorld.d.ts +5 -0
  273. package/dist/helloWorld.d.ts.map +1 -0
  274. package/dist/helloWorld.js +19 -0
  275. package/dist/helloWorld.js.map +1 -0
  276. package/dist/index.d.ts +2 -0
  277. package/dist/index.d.ts.map +1 -0
  278. package/dist/index.js +25 -0
  279. package/dist/index.js.map +1 -0
  280. package/dist/indexOfficial.d.ts +4 -0
  281. package/dist/indexOfficial.d.ts.map +1 -0
  282. package/dist/indexOfficial.js +92 -0
  283. package/dist/indexOfficial.js.map +1 -0
  284. package/dist/indexV2.d.ts +4 -0
  285. package/dist/indexV2.d.ts.map +1 -0
  286. package/dist/indexV2.js +109 -0
  287. package/dist/indexV2.js.map +1 -0
  288. package/dist/runtime/cliTools.d.ts +17 -0
  289. package/dist/runtime/cliTools.d.ts.map +1 -0
  290. package/dist/runtime/cliTools.js +97 -0
  291. package/dist/runtime/cliTools.js.map +1 -0
  292. package/dist/runtime/executor.d.ts +27 -0
  293. package/dist/runtime/executor.d.ts.map +1 -0
  294. package/dist/runtime/executor.js +108 -0
  295. package/dist/runtime/executor.js.map +1 -0
  296. package/dist/runtime/sessionManager.d.ts +42 -0
  297. package/dist/runtime/sessionManager.d.ts.map +1 -0
  298. package/dist/runtime/sessionManager.js +161 -0
  299. package/dist/runtime/sessionManager.js.map +1 -0
  300. package/dist/runtime/streamHandler.d.ts +9 -0
  301. package/dist/runtime/streamHandler.d.ts.map +1 -0
  302. package/dist/runtime/streamHandler.js +49 -0
  303. package/dist/runtime/streamHandler.js.map +1 -0
  304. package/dist/runtime/taskManager.d.ts +26 -0
  305. package/dist/runtime/taskManager.d.ts.map +1 -0
  306. package/dist/runtime/taskManager.js +153 -0
  307. package/dist/runtime/taskManager.js.map +1 -0
  308. package/dist/runtime/tools/base.d.ts +81 -0
  309. package/dist/runtime/tools/base.d.ts.map +1 -0
  310. package/dist/runtime/tools/base.js +100 -0
  311. package/dist/runtime/tools/base.js.map +1 -0
  312. package/dist/runtime/tools/claudecode.d.ts +19 -0
  313. package/dist/runtime/tools/claudecode.d.ts.map +1 -0
  314. package/dist/runtime/tools/claudecode.js +59 -0
  315. package/dist/runtime/tools/claudecode.js.map +1 -0
  316. package/dist/runtime/tools/codex.d.ts +19 -0
  317. package/dist/runtime/tools/codex.d.ts.map +1 -0
  318. package/dist/runtime/tools/codex.js +68 -0
  319. package/dist/runtime/tools/codex.js.map +1 -0
  320. package/dist/runtime/tools/cursor.d.ts +15 -0
  321. package/dist/runtime/tools/cursor.d.ts.map +1 -0
  322. package/dist/runtime/tools/cursor.js +33 -0
  323. package/dist/runtime/tools/cursor.js.map +1 -0
  324. package/dist/runtime/tools/cursorcode.d.ts +20 -0
  325. package/dist/runtime/tools/cursorcode.d.ts.map +1 -0
  326. package/dist/runtime/tools/cursorcode.js +99 -0
  327. package/dist/runtime/tools/cursorcode.js.map +1 -0
  328. package/dist/runtime/tools/geminicode.d.ts +20 -0
  329. package/dist/runtime/tools/geminicode.d.ts.map +1 -0
  330. package/dist/runtime/tools/geminicode.js +65 -0
  331. package/dist/runtime/tools/geminicode.js.map +1 -0
  332. package/dist/runtime/tools/index.d.ts +11 -0
  333. package/dist/runtime/tools/index.d.ts.map +1 -0
  334. package/dist/runtime/tools/index.js +36 -0
  335. package/dist/runtime/tools/index.js.map +1 -0
  336. package/dist/runtime/tools/kimi.d.ts +16 -0
  337. package/dist/runtime/tools/kimi.d.ts.map +1 -0
  338. package/dist/runtime/tools/kimi.js +32 -0
  339. package/dist/runtime/tools/kimi.js.map +1 -0
  340. package/dist/runtime/tools/kimicode.d.ts +16 -0
  341. package/dist/runtime/tools/kimicode.d.ts.map +1 -0
  342. package/dist/runtime/tools/kimicode.js +43 -0
  343. package/dist/runtime/tools/kimicode.js.map +1 -0
  344. package/dist/runtime/tools/nanobot.d.ts +19 -0
  345. package/dist/runtime/tools/nanobot.d.ts.map +1 -0
  346. package/dist/runtime/tools/nanobot.js +94 -0
  347. package/dist/runtime/tools/nanobot.js.map +1 -0
  348. package/dist/runtime/tools/openaicodex.d.ts +17 -0
  349. package/dist/runtime/tools/openaicodex.d.ts.map +1 -0
  350. package/dist/runtime/tools/openaicodex.js +54 -0
  351. package/dist/runtime/tools/openaicodex.js.map +1 -0
  352. package/dist/runtime/tools/openclaw.d.ts +24 -0
  353. package/dist/runtime/tools/openclaw.d.ts.map +1 -0
  354. package/dist/runtime/tools/openclaw.js +88 -0
  355. package/dist/runtime/tools/openclaw.js.map +1 -0
  356. package/dist/runtime/tools/opencode.d.ts +23 -0
  357. package/dist/runtime/tools/opencode.d.ts.map +1 -0
  358. package/dist/runtime/tools/opencode.js +82 -0
  359. package/dist/runtime/tools/opencode.js.map +1 -0
  360. package/dist/runtime/tools/qwencode.d.ts +17 -0
  361. package/dist/runtime/tools/qwencode.d.ts.map +1 -0
  362. package/dist/runtime/tools/qwencode.js +49 -0
  363. package/dist/runtime/tools/qwencode.js.map +1 -0
  364. package/dist/runtime/tools/registerAll.d.ts +9 -0
  365. package/dist/runtime/tools/registerAll.d.ts.map +1 -0
  366. package/dist/runtime/tools/registerAll.js +29 -0
  367. package/dist/runtime/tools/registerAll.js.map +1 -0
  368. package/dist/runtime/tools/registry.d.ts +21 -0
  369. package/dist/runtime/tools/registry.d.ts.map +1 -0
  370. package/dist/runtime/tools/registry.js +41 -0
  371. package/dist/runtime/tools/registry.js.map +1 -0
  372. package/dist/runtime/tools/types.d.ts +67 -0
  373. package/dist/runtime/tools/types.d.ts.map +1 -0
  374. package/dist/runtime/tools/types.js +3 -0
  375. package/dist/runtime/tools/types.js.map +1 -0
  376. package/dist/services/cliTools.d.ts +32 -0
  377. package/dist/services/cliTools.d.ts.map +1 -0
  378. package/dist/services/cliTools.js +149 -0
  379. package/dist/services/cliTools.js.map +1 -0
  380. package/dist/services/commandExecutor.d.ts +29 -0
  381. package/dist/services/commandExecutor.d.ts.map +1 -0
  382. package/dist/services/commandExecutor.js +125 -0
  383. package/dist/services/commandExecutor.js.map +1 -0
  384. package/dist/services/commandExecutor.test.d.ts +2 -0
  385. package/dist/services/commandExecutor.test.d.ts.map +1 -0
  386. package/dist/services/commandExecutor.test.js +54 -0
  387. package/dist/services/commandExecutor.test.js.map +1 -0
  388. package/dist/services/feishuService.d.ts +14 -0
  389. package/dist/services/feishuService.d.ts.map +1 -0
  390. package/dist/services/feishuService.js +103 -0
  391. package/dist/services/feishuService.js.map +1 -0
  392. package/dist/services/feishuServiceOfficial.d.ts +15 -0
  393. package/dist/services/feishuServiceOfficial.d.ts.map +1 -0
  394. package/dist/services/feishuServiceOfficial.js +167 -0
  395. package/dist/services/feishuServiceOfficial.js.map +1 -0
  396. package/dist/services/feishuServiceV2.d.ts +20 -0
  397. package/dist/services/feishuServiceV2.d.ts.map +1 -0
  398. package/dist/services/feishuServiceV2.js +222 -0
  399. package/dist/services/feishuServiceV2.js.map +1 -0
  400. package/dist/services/taskManager.d.ts +25 -0
  401. package/dist/services/taskManager.d.ts.map +1 -0
  402. package/dist/services/taskManager.js +129 -0
  403. package/dist/services/taskManager.js.map +1 -0
  404. package/dist/services/taskManagerSimple.d.ts +25 -0
  405. package/dist/services/taskManagerSimple.d.ts.map +1 -0
  406. package/dist/services/taskManagerSimple.js +147 -0
  407. package/dist/services/taskManagerSimple.js.map +1 -0
  408. package/dist/testHelloWorld.d.ts +2 -0
  409. package/dist/testHelloWorld.d.ts.map +1 -0
  410. package/dist/testHelloWorld.js +18 -0
  411. package/dist/testHelloWorld.js.map +1 -0
  412. package/dist/utils/encoding.d.ts +3 -0
  413. package/dist/utils/encoding.d.ts.map +1 -0
  414. package/dist/utils/encoding.js +110 -0
  415. package/dist/utils/encoding.js.map +1 -0
  416. package/dist/utils/logger.d.ts +19 -0
  417. package/dist/utils/logger.d.ts.map +1 -0
  418. package/dist/utils/logger.js +192 -0
  419. package/dist/utils/logger.js.map +1 -0
  420. package/dist/utils/shellEncoding.d.ts +5 -0
  421. package/dist/utils/shellEncoding.d.ts.map +1 -0
  422. package/dist/utils/shellEncoding.js +117 -0
  423. package/dist/utils/shellEncoding.js.map +1 -0
  424. package/openbotgate.example.yml +60 -0
  425. package/package.json +81 -0
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClaudeCodeAdapter = void 0;
4
+ const base_1 = require("./base");
5
+ /**
6
+ * Adapter for Claude Code CLI.
7
+ * - Execute: claude -p "prompt"
8
+ * - Session: -r <session> / -c (continue)
9
+ * - Model: --model name
10
+ * - Agent: --agent name
11
+ */
12
+ class ClaudeCodeAdapter extends base_1.BaseToolAdapter {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.name = 'claudecode';
16
+ this.commandName = 'claude';
17
+ this.displayName = 'Claude Code';
18
+ this.capabilities = {
19
+ session: true,
20
+ model: true,
21
+ agent: true,
22
+ compact: false,
23
+ listModels: false,
24
+ listSessions: false,
25
+ listAgents: false,
26
+ };
27
+ }
28
+ buildCommand(prompt, options) {
29
+ const parts = [this.getExecutable(), '-p'];
30
+ if (!options.newSession) {
31
+ if (options.sessionId) {
32
+ parts.push('-r', options.sessionId);
33
+ }
34
+ else {
35
+ parts.push('-c'); // continue last session by default
36
+ }
37
+ }
38
+ // newSession: don't pass -r or -c (start fresh)
39
+ if (options.model)
40
+ parts.push('--model', options.model);
41
+ if (options.agent)
42
+ parts.push('--agent', options.agent);
43
+ parts.push(`"${this.escapePrompt(prompt)}"`);
44
+ return parts.join(' ');
45
+ }
46
+ async listModels() {
47
+ // Claude Code has a preset list
48
+ return [
49
+ 'claude-sonnet-4-20250514',
50
+ 'claude-opus-4-20250514',
51
+ 'claude-haiku-3.5',
52
+ ];
53
+ }
54
+ async listAgents() {
55
+ return ['plan', 'build'];
56
+ }
57
+ }
58
+ exports.ClaudeCodeAdapter = ClaudeCodeAdapter;
59
+ //# sourceMappingURL=claudecode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudecode.js","sourceRoot":"","sources":["../../../src/runtime/tools/claudecode.ts"],"names":[],"mappings":";;;AAAA,iCAAyC;AAGzC;;;;;;GAMG;AACH,MAAa,iBAAkB,SAAQ,sBAAe;IAAtD;;QACW,SAAI,GAAG,YAAY,CAAC;QACpB,gBAAW,GAAG,QAAQ,CAAC;QACvB,gBAAW,GAAG,aAAa,CAAC;QAC5B,iBAAY,GAAqB;YACxC,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;SAClB,CAAC;IAiCJ,CAAC;IA/BC,YAAY,CAAC,MAAc,EAAE,OAAmB;QAC9C,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAmC;YACvD,CAAC;QACH,CAAC;QACD,gDAAgD;QAEhD,IAAI,OAAO,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,OAAO,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE7C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,gCAAgC;QAChC,OAAO;YACL,0BAA0B;YAC1B,wBAAwB;YACxB,kBAAkB;SACnB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF;AA7CD,8CA6CC"}
@@ -0,0 +1,19 @@
1
+ import { BaseToolAdapter } from './base';
2
+ import type { RunOptions, ToolCapabilities } from './types';
3
+ /**
4
+ * Adapter for OpenAI Codex CLI.
5
+ * - Execute: codex exec "prompt"
6
+ * - Resume: codex exec resume <id> "prompt"
7
+ * - Model: -m model
8
+ * - JSON output: --json
9
+ */
10
+ export declare class CodexAdapter extends BaseToolAdapter {
11
+ readonly name = "codex";
12
+ readonly commandName = "codex";
13
+ readonly displayName = "Codex";
14
+ readonly capabilities: ToolCapabilities;
15
+ buildCommand(prompt: string, options: RunOptions): string;
16
+ protected parseSessionId(output: string): string | undefined;
17
+ listModels(): Promise<string[]>;
18
+ }
19
+ //# sourceMappingURL=codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE5D;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,eAAe;IAC/C,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,WAAW,WAAW;IAC/B,QAAQ,CAAC,WAAW,WAAW;IAC/B,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAQrC;IAEF,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,MAAM;IAczD,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAiBtD,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAOtC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodexAdapter = void 0;
4
+ const base_1 = require("./base");
5
+ /**
6
+ * Adapter for OpenAI Codex CLI.
7
+ * - Execute: codex exec "prompt"
8
+ * - Resume: codex exec resume <id> "prompt"
9
+ * - Model: -m model
10
+ * - JSON output: --json
11
+ */
12
+ class CodexAdapter extends base_1.BaseToolAdapter {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.name = 'codex';
16
+ this.commandName = 'codex';
17
+ this.displayName = 'Codex';
18
+ this.capabilities = {
19
+ session: true,
20
+ model: true,
21
+ agent: false,
22
+ compact: false,
23
+ listModels: false,
24
+ listSessions: false,
25
+ listAgents: false,
26
+ };
27
+ }
28
+ buildCommand(prompt, options) {
29
+ const parts = ['codex', 'exec'];
30
+ if (options.sessionId) {
31
+ parts.push('resume', options.sessionId);
32
+ }
33
+ if (options.model)
34
+ parts.push('-m', options.model);
35
+ parts.push('--full-auto');
36
+ parts.push(`"${this.escapePrompt(prompt)}"`);
37
+ return parts.join(' ');
38
+ }
39
+ parseSessionId(output) {
40
+ // Codex JSONL output may contain session/conversation ID
41
+ try {
42
+ const lines = output.split('\n');
43
+ for (const line of lines) {
44
+ const trimmed = line.trim();
45
+ if (!trimmed.startsWith('{'))
46
+ continue;
47
+ const obj = JSON.parse(trimmed);
48
+ if (obj.conversation_id)
49
+ return obj.conversation_id;
50
+ if (obj.session_id)
51
+ return obj.session_id;
52
+ }
53
+ }
54
+ catch {
55
+ // ignore
56
+ }
57
+ return undefined;
58
+ }
59
+ async listModels() {
60
+ return [
61
+ 'o4-mini',
62
+ 'o3',
63
+ 'gpt-4.1',
64
+ ];
65
+ }
66
+ }
67
+ exports.CodexAdapter = CodexAdapter;
68
+ //# sourceMappingURL=codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/runtime/tools/codex.ts"],"names":[],"mappings":";;;AAAA,iCAAyC;AAGzC;;;;;;GAMG;AACH,MAAa,YAAa,SAAQ,sBAAe;IAAjD;;QACW,SAAI,GAAG,OAAO,CAAC;QACf,gBAAW,GAAG,OAAO,CAAC;QACtB,gBAAW,GAAG,OAAO,CAAC;QACtB,iBAAY,GAAqB;YACxC,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;SAClB,CAAC;IAwCJ,CAAC;IAtCC,YAAY,CAAC,MAAc,EAAE,OAAmB;QAC9C,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEhC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,OAAO,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE7C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAES,cAAc,CAAC,MAAc;QACrC,yDAAyD;QACzD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAChC,IAAI,GAAG,CAAC,eAAe;oBAAE,OAAO,GAAG,CAAC,eAAe,CAAC;gBACpD,IAAI,GAAG,CAAC,UAAU;oBAAE,OAAO,GAAG,CAAC,UAAU,CAAC;YAC5C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO;YACL,SAAS;YACT,IAAI;YACJ,SAAS;SACV,CAAC;IACJ,CAAC;CACF;AApDD,oCAoDC"}
@@ -0,0 +1,15 @@
1
+ import { BaseToolAdapter } from './base';
2
+ import type { RunOptions, ToolCapabilities } from './base';
3
+ /**
4
+ * Adapter for Cursor Agent CLI (headless).
5
+ * - Execute: agent -p "prompt"
6
+ * - Non-interactive / print mode; optional --force for file modifications.
7
+ */
8
+ export declare class CursorAdapter extends BaseToolAdapter {
9
+ readonly name = "cursor";
10
+ readonly commandName = "cursor";
11
+ readonly displayName = "Cursor";
12
+ readonly capabilities: ToolCapabilities;
13
+ buildCommand(prompt: string, options: RunOptions): string;
14
+ }
15
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE3D;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,eAAe;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,YAAY;IAChC,QAAQ,CAAC,WAAW,YAAY;IAChC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAQrC;IAEF,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,MAAM;CAK1D"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CursorAdapter = void 0;
4
+ const base_1 = require("./base");
5
+ /**
6
+ * Adapter for Cursor Agent CLI (headless).
7
+ * - Execute: agent -p "prompt"
8
+ * - Non-interactive / print mode; optional --force for file modifications.
9
+ */
10
+ class CursorAdapter extends base_1.BaseToolAdapter {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.name = 'cursor';
14
+ this.commandName = 'cursor';
15
+ this.displayName = 'Cursor';
16
+ this.capabilities = {
17
+ session: false,
18
+ model: false,
19
+ agent: false,
20
+ compact: false,
21
+ listModels: false,
22
+ listSessions: false,
23
+ listAgents: false,
24
+ };
25
+ }
26
+ buildCommand(prompt, options) {
27
+ const parts = ['agent', '-p'];
28
+ parts.push(`"${this.escapePrompt(prompt)}"`);
29
+ return parts.join(' ');
30
+ }
31
+ }
32
+ exports.CursorAdapter = CursorAdapter;
33
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/runtime/tools/cursor.ts"],"names":[],"mappings":";;;AAAA,iCAAyC;AAGzC;;;;GAIG;AACH,MAAa,aAAc,SAAQ,sBAAe;IAAlD;;QACW,SAAI,GAAG,QAAQ,CAAC;QAChB,gBAAW,GAAG,QAAQ,CAAC;QACvB,gBAAW,GAAG,QAAQ,CAAC;QACvB,iBAAY,GAAqB;YACxC,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;SAClB,CAAC;IAOJ,CAAC;IALC,YAAY,CAAC,MAAc,EAAE,OAAmB;QAC9C,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;CACF;AAnBD,sCAmBC"}
@@ -0,0 +1,20 @@
1
+ import { BaseToolAdapter } from './base';
2
+ import type { RunOptions, ToolCapabilities, ToolResult, SessionInfo } from './base';
3
+ /**
4
+ * Adapter for Cursor Agent CLI (headless).
5
+ * - Execute: agent -p "prompt"
6
+ * - Session: --resume <chatId>. When no sessionId, we run `agent ls` to get latest chat id then resume it.
7
+ */
8
+ export declare class CursorCodeAdapter extends BaseToolAdapter {
9
+ readonly name = "cursorcode";
10
+ readonly commandName = "cursor";
11
+ readonly displayName = "Cursor";
12
+ readonly capabilities: ToolCapabilities;
13
+ /** Cursor 实际调用的是 agent 命令,非 commandName(cursor) */
14
+ protected getDefaultExecutable(): string;
15
+ buildCommand(prompt: string, options: RunOptions): string;
16
+ listSessions(): Promise<SessionInfo[]>;
17
+ /** When no sessionId and not newSession, resolve latest chat via agent ls then run with --resume. */
18
+ execute(prompt: string, options: RunOptions): Promise<ToolResult>;
19
+ }
20
+ //# sourceMappingURL=cursorcode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursorcode.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/cursorcode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAKpF;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,YAAY;IAChC,QAAQ,CAAC,WAAW,YAAY;IAChC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAQrC;IAEF,mDAAmD;IACnD,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAIxC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,MAAM;IAWnD,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAgC5C,qGAAqG;IAC/F,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAyBxE"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CursorCodeAdapter = void 0;
4
+ const base_1 = require("./base");
5
+ const config_1 = require("../../config/config");
6
+ /** UUID pattern for Cursor chat ids */
7
+ const UUID_RE = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi;
8
+ /**
9
+ * Adapter for Cursor Agent CLI (headless).
10
+ * - Execute: agent -p "prompt"
11
+ * - Session: --resume <chatId>. When no sessionId, we run `agent ls` to get latest chat id then resume it.
12
+ */
13
+ class CursorCodeAdapter extends base_1.BaseToolAdapter {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.name = 'cursorcode';
17
+ this.commandName = 'cursor';
18
+ this.displayName = 'Cursor';
19
+ this.capabilities = {
20
+ session: true,
21
+ model: false,
22
+ agent: false,
23
+ compact: false,
24
+ listModels: false,
25
+ listSessions: true,
26
+ listAgents: false,
27
+ };
28
+ }
29
+ /** Cursor 实际调用的是 agent 命令,非 commandName(cursor) */
30
+ getDefaultExecutable() {
31
+ return 'agent';
32
+ }
33
+ buildCommand(prompt, options) {
34
+ const parts = [this.getExecutable()];
35
+ if (!options.newSession && options.sessionId) {
36
+ parts.push('--resume', options.sessionId);
37
+ }
38
+ parts.push('-p', `"${this.escapePrompt(prompt)}"`);
39
+ return parts.join(' ');
40
+ }
41
+ async listSessions() {
42
+ const output = await this.runHelper(`${this.getExecutable()} ls`, undefined);
43
+ if (!output)
44
+ return [];
45
+ const sessions = [];
46
+ const lines = output.split('\n').map(l => l.trim()).filter(Boolean);
47
+ for (const line of lines) {
48
+ const ids = line.match(UUID_RE);
49
+ if (ids && ids.length > 0) {
50
+ const id = ids[0];
51
+ const rest = line.replace(new RegExp(id, 'gi'), '').trim();
52
+ const parts = rest.split(/\s{2,}/).map(p => p.trim()).filter(Boolean);
53
+ sessions.push({
54
+ id,
55
+ title: parts[0] || rest || '',
56
+ updatedAt: parts[1] || '',
57
+ });
58
+ }
59
+ else {
60
+ const cols = line.split(/\s{2,}|\t/).map(p => p.trim()).filter(Boolean);
61
+ if (cols.length >= 1 && cols[0].length >= 10 && !cols[0].match(/^(id|chat|session)$/i)) {
62
+ sessions.push({
63
+ id: cols[0],
64
+ title: cols[1] || '',
65
+ updatedAt: cols[2] || '',
66
+ });
67
+ }
68
+ }
69
+ }
70
+ return sessions;
71
+ }
72
+ /** When no sessionId and not newSession, resolve latest chat via agent ls then run with --resume. */
73
+ async execute(prompt, options) {
74
+ if (!config_1.config.allowedCodeTools.includes(this.name)) {
75
+ return {
76
+ tool: this.name,
77
+ success: false,
78
+ output: '',
79
+ error: `${this.displayName} is not in allowed code tools`,
80
+ duration: 0,
81
+ };
82
+ }
83
+ let runOpts = options;
84
+ if (!options.newSession && !options.sessionId) {
85
+ try {
86
+ const list = await this.listSessions();
87
+ if (list.length > 0) {
88
+ runOpts = { ...options, sessionId: list[0].id };
89
+ }
90
+ }
91
+ catch {
92
+ // keep runOpts unchanged (no resume)
93
+ }
94
+ }
95
+ return super.execute(prompt, runOpts);
96
+ }
97
+ }
98
+ exports.CursorCodeAdapter = CursorCodeAdapter;
99
+ //# sourceMappingURL=cursorcode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursorcode.js","sourceRoot":"","sources":["../../../src/runtime/tools/cursorcode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { BaseToolAdapter } from './base';
2
+ import type { RunOptions, ToolCapabilities, SessionInfo } from './base';
3
+ /**
4
+ * Adapter for Gemini CLI (Gemini Code) headless mode.
5
+ * - Execute: gemini -p "prompt" (headless)
6
+ * - Model: -m / --model
7
+ * - Session: --resume (latest) / --resume <index|UUID>
8
+ * - List sessions: gemini --list-sessions
9
+ * @see https://google-gemini.github.io/gemini-cli/docs/cli/headless.html
10
+ * @see https://geminicli.com/docs/cli/session-management/
11
+ */
12
+ export declare class GeminiCodeAdapter extends BaseToolAdapter {
13
+ readonly name = "geminicode";
14
+ readonly commandName = "gemini";
15
+ readonly displayName = "Gemini Code";
16
+ readonly capabilities: ToolCapabilities;
17
+ buildCommand(prompt: string, options: RunOptions): string;
18
+ listSessions(): Promise<SessionInfo[]>;
19
+ }
20
+ //# sourceMappingURL=geminicode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geminicode.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/geminicode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAExE;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,YAAY;IAChC,QAAQ,CAAC,WAAW,iBAAiB;IACrC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAQrC;IAEF,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,MAAM;IAgBnD,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;CAoB7C"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GeminiCodeAdapter = void 0;
4
+ const base_1 = require("./base");
5
+ /**
6
+ * Adapter for Gemini CLI (Gemini Code) headless mode.
7
+ * - Execute: gemini -p "prompt" (headless)
8
+ * - Model: -m / --model
9
+ * - Session: --resume (latest) / --resume <index|UUID>
10
+ * - List sessions: gemini --list-sessions
11
+ * @see https://google-gemini.github.io/gemini-cli/docs/cli/headless.html
12
+ * @see https://geminicli.com/docs/cli/session-management/
13
+ */
14
+ class GeminiCodeAdapter extends base_1.BaseToolAdapter {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.name = 'geminicode';
18
+ this.commandName = 'gemini';
19
+ this.displayName = 'Gemini Code';
20
+ this.capabilities = {
21
+ session: true,
22
+ model: true,
23
+ agent: false,
24
+ compact: false,
25
+ listModels: false,
26
+ listSessions: true,
27
+ listAgents: false,
28
+ };
29
+ }
30
+ buildCommand(prompt, options) {
31
+ const parts = [this.getExecutable(), '-p', `"${this.escapePrompt(prompt)}"`];
32
+ if (options.model)
33
+ parts.push('-m', options.model);
34
+ if (!options.newSession) {
35
+ if (options.sessionId) {
36
+ parts.push('--resume', options.sessionId);
37
+ }
38
+ else {
39
+ parts.push('--resume'); // latest session
40
+ }
41
+ }
42
+ return parts.join(' ');
43
+ }
44
+ async listSessions() {
45
+ const output = await this.runHelper(`${this.getExecutable()} --list-sessions`);
46
+ if (!output)
47
+ return [];
48
+ // "Available sessions for this project (3):\n1. Fix bug in auth (2 days ago) [a1b2c3d4]\n..."
49
+ const lines = output.split('\n').filter(l => l.trim());
50
+ const sessions = [];
51
+ for (const line of lines) {
52
+ const match = line.match(/^\s*(\d+)\.\s+(.+?)\s+\(([^)]+)\)\s*(?:\[([^\]]+)\])?/);
53
+ if (match) {
54
+ sessions.push({
55
+ id: match[1],
56
+ title: match[2].trim(),
57
+ updatedAt: match[3].trim(),
58
+ });
59
+ }
60
+ }
61
+ return sessions;
62
+ }
63
+ }
64
+ exports.GeminiCodeAdapter = GeminiCodeAdapter;
65
+ //# sourceMappingURL=geminicode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geminicode.js","sourceRoot":"","sources":["../../../src/runtime/tools/geminicode.ts"],"names":[],"mappings":";;;AAAA,iCAAyC;AAGzC;;;;;;;;GAQG;AACH,MAAa,iBAAkB,SAAQ,sBAAe;IAAtD;;QACW,SAAI,GAAG,YAAY,CAAC;QACpB,gBAAW,GAAG,QAAQ,CAAC;QACvB,gBAAW,GAAG,aAAa,CAAC;QAC5B,iBAAY,GAAqB;YACxC,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,KAAK;SAClB,CAAC;IAsCJ,CAAC;IApCC,YAAY,CAAC,MAAc,EAAE,OAAmB;QAC9C,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE7E,IAAI,OAAO,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAEnD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB;YAC3C,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;QAC/E,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEvB,8FAA8F;QAC9F,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAkB,EAAE,CAAC;QAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YAClF,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,CAAC,IAAI,CAAC;oBACZ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;oBACZ,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;oBACtB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;iBAC3B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAlDD,8CAkDC"}
@@ -0,0 +1,11 @@
1
+ import type { ToolAdapter } from './base';
2
+ /**
3
+ * Register all built-in tool adapters with the registry.
4
+ * Add new adapters here when extending the gateway.
5
+ */
6
+ export declare function registerAll(registry: {
7
+ register(adapter: ToolAdapter): void;
8
+ }): void;
9
+ export type { ToolAdapter, ToolResult, RunOptions, SessionInfo, ToolCapabilities } from './base';
10
+ export { toolRegistry } from './registry';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAuB1C;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAIpF;AAED,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toolRegistry = void 0;
4
+ exports.registerAll = registerAll;
5
+ const opencode_1 = require("./opencode");
6
+ const claudecode_1 = require("./claudecode");
7
+ const openaicodex_1 = require("./openaicodex");
8
+ const qwencode_1 = require("./qwencode");
9
+ const kimicode_1 = require("./kimicode");
10
+ const openclaw_1 = require("./openclaw");
11
+ const nanobot_1 = require("./nanobot");
12
+ const cursorcode_1 = require("./cursorcode");
13
+ const geminicode_1 = require("./geminicode");
14
+ const ALL_ADAPTERS = [
15
+ new opencode_1.OpenCodeAdapter(),
16
+ new claudecode_1.ClaudeCodeAdapter(),
17
+ new openaicodex_1.CodexAdapter(),
18
+ new qwencode_1.QwenCodeAdapter(),
19
+ new kimicode_1.KimiAdapter(),
20
+ new openclaw_1.OpenClawAdapter(),
21
+ new nanobot_1.NanobotAdapter(),
22
+ new cursorcode_1.CursorCodeAdapter(),
23
+ new geminicode_1.GeminiCodeAdapter(),
24
+ ];
25
+ /**
26
+ * Register all built-in tool adapters with the registry.
27
+ * Add new adapters here when extending the gateway.
28
+ */
29
+ function registerAll(registry) {
30
+ for (const adapter of ALL_ADAPTERS) {
31
+ registry.register(adapter);
32
+ }
33
+ }
34
+ var registry_1 = require("./registry");
35
+ Object.defineProperty(exports, "toolRegistry", { enumerable: true, get: function () { return registry_1.toolRegistry; } });
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/tools/index.ts"],"names":[],"mappings":";;;AA2BA,kCAIC;AA9BD,yCAA6C;AAC7C,6CAAiD;AACjD,+CAA6C;AAC7C,yCAA6C;AAC7C,yCAAyC;AACzC,yCAA6C;AAC7C,uCAA2C;AAC3C,6CAAiD;AACjD,6CAAiD;AAEjD,MAAM,YAAY,GAAkB;IAClC,IAAI,0BAAe,EAAE;IACrB,IAAI,8BAAiB,EAAE;IACvB,IAAI,0BAAY,EAAE;IAClB,IAAI,0BAAe,EAAE;IACrB,IAAI,sBAAW,EAAE;IACjB,IAAI,0BAAe,EAAE;IACrB,IAAI,wBAAc,EAAE;IACpB,IAAI,8BAAiB,EAAE;IACvB,IAAI,8BAAiB,EAAE;CACxB,CAAC;AAEF;;;GAGG;AACH,SAAgB,WAAW,CAAC,QAAkD;IAC5E,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAGD,uCAA0C;AAAjC,wGAAA,YAAY,OAAA"}
@@ -0,0 +1,16 @@
1
+ import { BaseToolAdapter } from './base';
2
+ import type { RunOptions, ToolCapabilities } from './types';
3
+ /**
4
+ * Adapter for Kimi CLI (kimiai-cli).
5
+ * Simple AI assistant, no session/model/agent management.
6
+ * - Execute: kimi ask "prompt"
7
+ * - Requires OpenRouter API key (kimi config set-key)
8
+ */
9
+ export declare class KimiAdapter extends BaseToolAdapter {
10
+ readonly name = "kimi";
11
+ readonly commandName = "kimi";
12
+ readonly displayName = "Kimi";
13
+ readonly capabilities: ToolCapabilities;
14
+ buildCommand(prompt: string, _options: RunOptions): string;
15
+ }
16
+ //# sourceMappingURL=kimi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kimi.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/kimi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE5D;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,UAAU;IAC9B,QAAQ,CAAC,WAAW,UAAU;IAC9B,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAQrC;IAEF,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,MAAM;CAG3D"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KimiAdapter = void 0;
4
+ const base_1 = require("./base");
5
+ /**
6
+ * Adapter for Kimi CLI (kimiai-cli).
7
+ * Simple AI assistant, no session/model/agent management.
8
+ * - Execute: kimi ask "prompt"
9
+ * - Requires OpenRouter API key (kimi config set-key)
10
+ */
11
+ class KimiAdapter extends base_1.BaseToolAdapter {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.name = 'kimi';
15
+ this.commandName = 'kimi';
16
+ this.displayName = 'Kimi';
17
+ this.capabilities = {
18
+ session: false,
19
+ model: false,
20
+ agent: false,
21
+ compact: false,
22
+ listModels: false,
23
+ listSessions: false,
24
+ listAgents: false,
25
+ };
26
+ }
27
+ buildCommand(prompt, _options) {
28
+ return `kimi ask "${this.escapePrompt(prompt)}"`;
29
+ }
30
+ }
31
+ exports.KimiAdapter = KimiAdapter;
32
+ //# sourceMappingURL=kimi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kimi.js","sourceRoot":"","sources":["../../../src/runtime/tools/kimi.ts"],"names":[],"mappings":";;;AAAA,iCAAyC;AAGzC;;;;;GAKG;AACH,MAAa,WAAY,SAAQ,sBAAe;IAAhD;;QACW,SAAI,GAAG,MAAM,CAAC;QACd,gBAAW,GAAG,MAAM,CAAC;QACrB,gBAAW,GAAG,MAAM,CAAC;QACrB,iBAAY,GAAqB;YACxC,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;SAClB,CAAC;IAKJ,CAAC;IAHC,YAAY,CAAC,MAAc,EAAE,QAAoB;QAC/C,OAAO,aAAa,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC;IACnD,CAAC;CACF;AAjBD,kCAiBC"}
@@ -0,0 +1,16 @@
1
+ import { BaseToolAdapter } from './base';
2
+ import type { RunOptions, ToolCapabilities } from './base';
3
+ /**
4
+ * Adapter for Kimi CLI (kimiai-cli or MoonshotAI kimi-cli).
5
+ * - Execute: kimi ask "prompt"
6
+ * - Session: --session <id> / --continue (continue last, MoonshotAI kimi-cli)
7
+ * - Requires OpenRouter API key for kimiai-cli (kimi config set-key)
8
+ */
9
+ export declare class KimiAdapter extends BaseToolAdapter {
10
+ readonly name = "kimicode";
11
+ readonly commandName = "kimi";
12
+ readonly displayName = "Kimi";
13
+ readonly capabilities: ToolCapabilities;
14
+ buildCommand(prompt: string, options: RunOptions): string;
15
+ }
16
+ //# sourceMappingURL=kimicode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kimicode.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/kimicode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE3D;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,UAAU;IAC9B,QAAQ,CAAC,WAAW,UAAU;IAC9B,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAQrC;IAEF,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,MAAM;CAa1D"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KimiAdapter = void 0;
4
+ const base_1 = require("./base");
5
+ /**
6
+ * Adapter for Kimi CLI (kimiai-cli or MoonshotAI kimi-cli).
7
+ * - Execute: kimi ask "prompt"
8
+ * - Session: --session <id> / --continue (continue last, MoonshotAI kimi-cli)
9
+ * - Requires OpenRouter API key for kimiai-cli (kimi config set-key)
10
+ */
11
+ class KimiAdapter extends base_1.BaseToolAdapter {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.name = 'kimicode';
15
+ this.commandName = 'kimi';
16
+ this.displayName = 'Kimi';
17
+ this.capabilities = {
18
+ session: true,
19
+ model: false,
20
+ agent: false,
21
+ compact: false,
22
+ listModels: false,
23
+ listSessions: false,
24
+ listAgents: false,
25
+ };
26
+ }
27
+ buildCommand(prompt, options) {
28
+ const parts = [this.getExecutable(), 'ask'];
29
+ if (!options.newSession) {
30
+ if (options.sessionId) {
31
+ parts.push('--session', options.sessionId);
32
+ }
33
+ else {
34
+ parts.push('--continue'); // continue last session (MoonshotAI kimi-cli)
35
+ }
36
+ }
37
+ // newSession: don't pass --session or --continue (start fresh)
38
+ parts.push(`"${this.escapePrompt(prompt)}"`);
39
+ return parts.join(' ');
40
+ }
41
+ }
42
+ exports.KimiAdapter = KimiAdapter;
43
+ //# sourceMappingURL=kimicode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kimicode.js","sourceRoot":"","sources":["../../../src/runtime/tools/kimicode.ts"],"names":[],"mappings":";;;AAAA,iCAAyC;AAGzC;;;;;GAKG;AACH,MAAa,WAAY,SAAQ,sBAAe;IAAhD;;QACW,SAAI,GAAG,UAAU,CAAC;QAClB,gBAAW,GAAG,MAAM,CAAC;QACrB,gBAAW,GAAG,MAAM,CAAC;QACrB,iBAAY,GAAqB;YACxC,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;SAClB,CAAC;IAeJ,CAAC;IAbC,YAAY,CAAC,MAAc,EAAE,OAAmB;QAC9C,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,8CAA8C;YAC1E,CAAC;QACH,CAAC;QACD,+DAA+D;QAC/D,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;CACF;AA3BD,kCA2BC"}