agim-cli 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/CHANGELOG.md +1234 -0
  2. package/LICENSE +21 -0
  3. package/README.md +422 -0
  4. package/README.zh-CN.md +414 -0
  5. package/dist/cli-ui/cmd-handlers.d.ts +11 -0
  6. package/dist/cli-ui/cmd-handlers.d.ts.map +1 -0
  7. package/dist/cli-ui/cmd-handlers.js +240 -0
  8. package/dist/cli-ui/cmd-handlers.js.map +1 -0
  9. package/dist/cli-ui/config-wizard.d.ts +3 -0
  10. package/dist/cli-ui/config-wizard.d.ts.map +1 -0
  11. package/dist/cli-ui/config-wizard.js +851 -0
  12. package/dist/cli-ui/config-wizard.js.map +1 -0
  13. package/dist/cli-ui/entry-menu.d.ts +28 -0
  14. package/dist/cli-ui/entry-menu.d.ts.map +1 -0
  15. package/dist/cli-ui/entry-menu.js +50 -0
  16. package/dist/cli-ui/entry-menu.js.map +1 -0
  17. package/dist/cli-ui/env-file.d.ts +35 -0
  18. package/dist/cli-ui/env-file.d.ts.map +1 -0
  19. package/dist/cli-ui/env-file.js +163 -0
  20. package/dist/cli-ui/env-file.js.map +1 -0
  21. package/dist/cli-ui/i18n.d.ts +204 -0
  22. package/dist/cli-ui/i18n.d.ts.map +1 -0
  23. package/dist/cli-ui/i18n.js +455 -0
  24. package/dist/cli-ui/i18n.js.map +1 -0
  25. package/dist/cli-ui/lang-picker.d.ts +10 -0
  26. package/dist/cli-ui/lang-picker.d.ts.map +1 -0
  27. package/dist/cli-ui/lang-picker.js +33 -0
  28. package/dist/cli-ui/lang-picker.js.map +1 -0
  29. package/dist/cli-ui/paths.d.ts +4 -0
  30. package/dist/cli-ui/paths.d.ts.map +1 -0
  31. package/dist/cli-ui/paths.js +11 -0
  32. package/dist/cli-ui/paths.js.map +1 -0
  33. package/dist/cli-ui/prompts.d.ts +65 -0
  34. package/dist/cli-ui/prompts.d.ts.map +1 -0
  35. package/dist/cli-ui/prompts.js +125 -0
  36. package/dist/cli-ui/prompts.js.map +1 -0
  37. package/dist/cli-ui/service.d.ts +41 -0
  38. package/dist/cli-ui/service.d.ts.map +1 -0
  39. package/dist/cli-ui/service.js +241 -0
  40. package/dist/cli-ui/service.js.map +1 -0
  41. package/dist/cli.d.ts +3 -0
  42. package/dist/cli.d.ts.map +1 -0
  43. package/dist/cli.js +1143 -0
  44. package/dist/cli.js.map +1 -0
  45. package/dist/core/acp-server.d.ts +8 -0
  46. package/dist/core/acp-server.d.ts.map +1 -0
  47. package/dist/core/acp-server.js +266 -0
  48. package/dist/core/acp-server.js.map +1 -0
  49. package/dist/core/agent-base.d.ts +94 -0
  50. package/dist/core/agent-base.d.ts.map +1 -0
  51. package/dist/core/agent-base.js +373 -0
  52. package/dist/core/agent-base.js.map +1 -0
  53. package/dist/core/agent-cwd.d.ts +48 -0
  54. package/dist/core/agent-cwd.d.ts.map +1 -0
  55. package/dist/core/agent-cwd.js +181 -0
  56. package/dist/core/agent-cwd.js.map +1 -0
  57. package/dist/core/agent-helper.d.ts +65 -0
  58. package/dist/core/agent-helper.d.ts.map +1 -0
  59. package/dist/core/agent-helper.js +150 -0
  60. package/dist/core/agent-helper.js.map +1 -0
  61. package/dist/core/agim-paths.d.ts +10 -0
  62. package/dist/core/agim-paths.d.ts.map +1 -0
  63. package/dist/core/agim-paths.js +64 -0
  64. package/dist/core/agim-paths.js.map +1 -0
  65. package/dist/core/approval-bus.d.ts +300 -0
  66. package/dist/core/approval-bus.d.ts.map +1 -0
  67. package/dist/core/approval-bus.js +990 -0
  68. package/dist/core/approval-bus.js.map +1 -0
  69. package/dist/core/approval-router.d.ts +101 -0
  70. package/dist/core/approval-router.d.ts.map +1 -0
  71. package/dist/core/approval-router.js +540 -0
  72. package/dist/core/approval-router.js.map +1 -0
  73. package/dist/core/audit-log.d.ts +55 -0
  74. package/dist/core/audit-log.d.ts.map +1 -0
  75. package/dist/core/audit-log.js +203 -0
  76. package/dist/core/audit-log.js.map +1 -0
  77. package/dist/core/bgjob-reader.d.ts +65 -0
  78. package/dist/core/bgjob-reader.d.ts.map +1 -0
  79. package/dist/core/bgjob-reader.js +212 -0
  80. package/dist/core/bgjob-reader.js.map +1 -0
  81. package/dist/core/circuit-breaker.d.ts +37 -0
  82. package/dist/core/circuit-breaker.d.ts.map +1 -0
  83. package/dist/core/circuit-breaker.js +115 -0
  84. package/dist/core/circuit-breaker.js.map +1 -0
  85. package/dist/core/commands/agent.d.ts +4 -0
  86. package/dist/core/commands/agent.d.ts.map +1 -0
  87. package/dist/core/commands/agent.js +40 -0
  88. package/dist/core/commands/agent.js.map +1 -0
  89. package/dist/core/commands/approval.d.ts +3 -0
  90. package/dist/core/commands/approval.d.ts.map +1 -0
  91. package/dist/core/commands/approval.js +85 -0
  92. package/dist/core/commands/approval.js.map +1 -0
  93. package/dist/core/commands/audit.d.ts +3 -0
  94. package/dist/core/commands/audit.d.ts.map +1 -0
  95. package/dist/core/commands/audit.js +84 -0
  96. package/dist/core/commands/audit.js.map +1 -0
  97. package/dist/core/commands/builtin.d.ts +3 -0
  98. package/dist/core/commands/builtin.d.ts.map +1 -0
  99. package/dist/core/commands/builtin.js +304 -0
  100. package/dist/core/commands/builtin.js.map +1 -0
  101. package/dist/core/commands/cron.d.ts +3 -0
  102. package/dist/core/commands/cron.d.ts.map +1 -0
  103. package/dist/core/commands/cron.js +128 -0
  104. package/dist/core/commands/cron.js.map +1 -0
  105. package/dist/core/commands/job.d.ts +3 -0
  106. package/dist/core/commands/job.d.ts.map +1 -0
  107. package/dist/core/commands/job.js +195 -0
  108. package/dist/core/commands/job.js.map +1 -0
  109. package/dist/core/commands/memo.d.ts +3 -0
  110. package/dist/core/commands/memo.d.ts.map +1 -0
  111. package/dist/core/commands/memo.js +151 -0
  112. package/dist/core/commands/memo.js.map +1 -0
  113. package/dist/core/commands/model.d.ts +9 -0
  114. package/dist/core/commands/model.d.ts.map +1 -0
  115. package/dist/core/commands/model.js +183 -0
  116. package/dist/core/commands/model.js.map +1 -0
  117. package/dist/core/commands/plan.d.ts +3 -0
  118. package/dist/core/commands/plan.d.ts.map +1 -0
  119. package/dist/core/commands/plan.js +75 -0
  120. package/dist/core/commands/plan.js.map +1 -0
  121. package/dist/core/commands/remind.d.ts +3 -0
  122. package/dist/core/commands/remind.d.ts.map +1 -0
  123. package/dist/core/commands/remind.js +271 -0
  124. package/dist/core/commands/remind.js.map +1 -0
  125. package/dist/core/commands/router.d.ts +3 -0
  126. package/dist/core/commands/router.d.ts.map +1 -0
  127. package/dist/core/commands/router.js +71 -0
  128. package/dist/core/commands/router.js.map +1 -0
  129. package/dist/core/commands/sessions.d.ts +3 -0
  130. package/dist/core/commands/sessions.d.ts.map +1 -0
  131. package/dist/core/commands/sessions.js +88 -0
  132. package/dist/core/commands/sessions.js.map +1 -0
  133. package/dist/core/commands/stats.d.ts +3 -0
  134. package/dist/core/commands/stats.d.ts.map +1 -0
  135. package/dist/core/commands/stats.js +73 -0
  136. package/dist/core/commands/stats.js.map +1 -0
  137. package/dist/core/commands/think.d.ts +3 -0
  138. package/dist/core/commands/think.d.ts.map +1 -0
  139. package/dist/core/commands/think.js +28 -0
  140. package/dist/core/commands/think.js.map +1 -0
  141. package/dist/core/commands/workspaces.d.ts +3 -0
  142. package/dist/core/commands/workspaces.d.ts.map +1 -0
  143. package/dist/core/commands/workspaces.js +47 -0
  144. package/dist/core/commands/workspaces.js.map +1 -0
  145. package/dist/core/config-schema.d.ts +60 -0
  146. package/dist/core/config-schema.d.ts.map +1 -0
  147. package/dist/core/config-schema.js +75 -0
  148. package/dist/core/config-schema.js.map +1 -0
  149. package/dist/core/coord-systems.d.ts +65 -0
  150. package/dist/core/coord-systems.d.ts.map +1 -0
  151. package/dist/core/coord-systems.js +229 -0
  152. package/dist/core/coord-systems.js.map +1 -0
  153. package/dist/core/cron.d.ts +29 -0
  154. package/dist/core/cron.d.ts.map +1 -0
  155. package/dist/core/cron.js +184 -0
  156. package/dist/core/cron.js.map +1 -0
  157. package/dist/core/event-bus.d.ts +80 -0
  158. package/dist/core/event-bus.d.ts.map +1 -0
  159. package/dist/core/event-bus.js +62 -0
  160. package/dist/core/event-bus.js.map +1 -0
  161. package/dist/core/intent-llm.d.ts +27 -0
  162. package/dist/core/intent-llm.d.ts.map +1 -0
  163. package/dist/core/intent-llm.js +170 -0
  164. package/dist/core/intent-llm.js.map +1 -0
  165. package/dist/core/intent.d.ts +12 -0
  166. package/dist/core/intent.d.ts.map +1 -0
  167. package/dist/core/intent.js +187 -0
  168. package/dist/core/intent.js.map +1 -0
  169. package/dist/core/job-board.d.ts +82 -0
  170. package/dist/core/job-board.d.ts.map +1 -0
  171. package/dist/core/job-board.js +379 -0
  172. package/dist/core/job-board.js.map +1 -0
  173. package/dist/core/location-context.d.ts +32 -0
  174. package/dist/core/location-context.d.ts.map +1 -0
  175. package/dist/core/location-context.js +69 -0
  176. package/dist/core/location-context.js.map +1 -0
  177. package/dist/core/location-token.d.ts +57 -0
  178. package/dist/core/location-token.d.ts.map +1 -0
  179. package/dist/core/location-token.js +128 -0
  180. package/dist/core/location-token.js.map +1 -0
  181. package/dist/core/logger.d.ts +6 -0
  182. package/dist/core/logger.d.ts.map +1 -0
  183. package/dist/core/logger.js +54 -0
  184. package/dist/core/logger.js.map +1 -0
  185. package/dist/core/memo-rpc.d.ts +13 -0
  186. package/dist/core/memo-rpc.d.ts.map +1 -0
  187. package/dist/core/memo-rpc.js +288 -0
  188. package/dist/core/memo-rpc.js.map +1 -0
  189. package/dist/core/memos.d.ts +163 -0
  190. package/dist/core/memos.d.ts.map +1 -0
  191. package/dist/core/memos.js +502 -0
  192. package/dist/core/memos.js.map +1 -0
  193. package/dist/core/metrics.d.ts +55 -0
  194. package/dist/core/metrics.d.ts.map +1 -0
  195. package/dist/core/metrics.js +291 -0
  196. package/dist/core/metrics.js.map +1 -0
  197. package/dist/core/onboarding.d.ts +99 -0
  198. package/dist/core/onboarding.d.ts.map +1 -0
  199. package/dist/core/onboarding.js +426 -0
  200. package/dist/core/onboarding.js.map +1 -0
  201. package/dist/core/pending-reminder.d.ts +25 -0
  202. package/dist/core/pending-reminder.d.ts.map +1 -0
  203. package/dist/core/pending-reminder.js +53 -0
  204. package/dist/core/pending-reminder.js.map +1 -0
  205. package/dist/core/rate-limiter.d.ts +44 -0
  206. package/dist/core/rate-limiter.d.ts.map +1 -0
  207. package/dist/core/rate-limiter.js +115 -0
  208. package/dist/core/rate-limiter.js.map +1 -0
  209. package/dist/core/registry.d.ts +32 -0
  210. package/dist/core/registry.d.ts.map +1 -0
  211. package/dist/core/registry.js +126 -0
  212. package/dist/core/registry.js.map +1 -0
  213. package/dist/core/remind-intent.d.ts +25 -0
  214. package/dist/core/remind-intent.d.ts.map +1 -0
  215. package/dist/core/remind-intent.js +196 -0
  216. package/dist/core/remind-intent.js.map +1 -0
  217. package/dist/core/reminder-rpc.d.ts +17 -0
  218. package/dist/core/reminder-rpc.d.ts.map +1 -0
  219. package/dist/core/reminder-rpc.js +169 -0
  220. package/dist/core/reminder-rpc.js.map +1 -0
  221. package/dist/core/reminders.d.ts +159 -0
  222. package/dist/core/reminders.d.ts.map +1 -0
  223. package/dist/core/reminders.js +977 -0
  224. package/dist/core/reminders.js.map +1 -0
  225. package/dist/core/router.d.ts +55 -0
  226. package/dist/core/router.d.ts.map +1 -0
  227. package/dist/core/router.js +497 -0
  228. package/dist/core/router.js.map +1 -0
  229. package/dist/core/schedule.d.ts +65 -0
  230. package/dist/core/schedule.d.ts.map +1 -0
  231. package/dist/core/schedule.js +323 -0
  232. package/dist/core/schedule.js.map +1 -0
  233. package/dist/core/session.d.ts +182 -0
  234. package/dist/core/session.d.ts.map +1 -0
  235. package/dist/core/session.js +807 -0
  236. package/dist/core/session.js.map +1 -0
  237. package/dist/core/sqlite-helper.d.ts +37 -0
  238. package/dist/core/sqlite-helper.d.ts.map +1 -0
  239. package/dist/core/sqlite-helper.js +79 -0
  240. package/dist/core/sqlite-helper.js.map +1 -0
  241. package/dist/core/transcribe.d.ts +25 -0
  242. package/dist/core/transcribe.d.ts.map +1 -0
  243. package/dist/core/transcribe.js +217 -0
  244. package/dist/core/transcribe.js.map +1 -0
  245. package/dist/core/types.d.ts +360 -0
  246. package/dist/core/types.d.ts.map +1 -0
  247. package/dist/core/types.js +3 -0
  248. package/dist/core/types.js.map +1 -0
  249. package/dist/core/workspace.d.ts +67 -0
  250. package/dist/core/workspace.d.ts.map +1 -0
  251. package/dist/core/workspace.js +113 -0
  252. package/dist/core/workspace.js.map +1 -0
  253. package/dist/index.d.ts +5 -0
  254. package/dist/index.d.ts.map +1 -0
  255. package/dist/index.js +6 -0
  256. package/dist/index.js.map +1 -0
  257. package/dist/plugins/agents/acp/acp-adapter.d.ts +16 -0
  258. package/dist/plugins/agents/acp/acp-adapter.d.ts.map +1 -0
  259. package/dist/plugins/agents/acp/acp-adapter.js +49 -0
  260. package/dist/plugins/agents/acp/acp-adapter.js.map +1 -0
  261. package/dist/plugins/agents/acp/acp-client.d.ts +32 -0
  262. package/dist/plugins/agents/acp/acp-client.d.ts.map +1 -0
  263. package/dist/plugins/agents/acp/acp-client.js +177 -0
  264. package/dist/plugins/agents/acp/acp-client.js.map +1 -0
  265. package/dist/plugins/agents/acp/discovery.d.ts +19 -0
  266. package/dist/plugins/agents/acp/discovery.d.ts.map +1 -0
  267. package/dist/plugins/agents/acp/discovery.js +111 -0
  268. package/dist/plugins/agents/acp/discovery.js.map +1 -0
  269. package/dist/plugins/agents/acp/index.d.ts +4 -0
  270. package/dist/plugins/agents/acp/index.d.ts.map +1 -0
  271. package/dist/plugins/agents/acp/index.js +4 -0
  272. package/dist/plugins/agents/acp/index.js.map +1 -0
  273. package/dist/plugins/agents/acp/types.d.ts +62 -0
  274. package/dist/plugins/agents/acp/types.d.ts.map +1 -0
  275. package/dist/plugins/agents/acp/types.js +5 -0
  276. package/dist/plugins/agents/acp/types.js.map +1 -0
  277. package/dist/plugins/agents/claude-code/index.d.ts +25 -0
  278. package/dist/plugins/agents/claude-code/index.d.ts.map +1 -0
  279. package/dist/plugins/agents/claude-code/index.js +184 -0
  280. package/dist/plugins/agents/claude-code/index.js.map +1 -0
  281. package/dist/plugins/agents/claude-code/mcp-approval-server.d.ts +59 -0
  282. package/dist/plugins/agents/claude-code/mcp-approval-server.d.ts.map +1 -0
  283. package/dist/plugins/agents/claude-code/mcp-approval-server.js +645 -0
  284. package/dist/plugins/agents/claude-code/mcp-approval-server.js.map +1 -0
  285. package/dist/plugins/agents/codex/build-mcp-cli-args.d.ts +28 -0
  286. package/dist/plugins/agents/codex/build-mcp-cli-args.d.ts.map +1 -0
  287. package/dist/plugins/agents/codex/build-mcp-cli-args.js +74 -0
  288. package/dist/plugins/agents/codex/build-mcp-cli-args.js.map +1 -0
  289. package/dist/plugins/agents/codex/index.d.ts +53 -0
  290. package/dist/plugins/agents/codex/index.d.ts.map +1 -0
  291. package/dist/plugins/agents/codex/index.js +341 -0
  292. package/dist/plugins/agents/codex/index.js.map +1 -0
  293. package/dist/plugins/agents/copilot/index.d.ts +35 -0
  294. package/dist/plugins/agents/copilot/index.d.ts.map +1 -0
  295. package/dist/plugins/agents/copilot/index.js +182 -0
  296. package/dist/plugins/agents/copilot/index.js.map +1 -0
  297. package/dist/plugins/agents/opencode/ensure-mcp-config.d.ts +11 -0
  298. package/dist/plugins/agents/opencode/ensure-mcp-config.d.ts.map +1 -0
  299. package/dist/plugins/agents/opencode/ensure-mcp-config.js +100 -0
  300. package/dist/plugins/agents/opencode/ensure-mcp-config.js.map +1 -0
  301. package/dist/plugins/agents/opencode/index.d.ts +5 -0
  302. package/dist/plugins/agents/opencode/index.d.ts.map +1 -0
  303. package/dist/plugins/agents/opencode/index.js +30 -0
  304. package/dist/plugins/agents/opencode/index.js.map +1 -0
  305. package/dist/plugins/agents/opencode/opencode-http-adapter.d.ts +166 -0
  306. package/dist/plugins/agents/opencode/opencode-http-adapter.d.ts.map +1 -0
  307. package/dist/plugins/agents/opencode/opencode-http-adapter.js +682 -0
  308. package/dist/plugins/agents/opencode/opencode-http-adapter.js.map +1 -0
  309. package/dist/plugins/agents/opencode/opencode-stdio-adapter.d.ts +32 -0
  310. package/dist/plugins/agents/opencode/opencode-stdio-adapter.d.ts.map +1 -0
  311. package/dist/plugins/agents/opencode/opencode-stdio-adapter.js +137 -0
  312. package/dist/plugins/agents/opencode/opencode-stdio-adapter.js.map +1 -0
  313. package/dist/plugins/agents/opencode/serve-manager.d.ts +27 -0
  314. package/dist/plugins/agents/opencode/serve-manager.d.ts.map +1 -0
  315. package/dist/plugins/agents/opencode/serve-manager.js +194 -0
  316. package/dist/plugins/agents/opencode/serve-manager.js.map +1 -0
  317. package/dist/plugins/messengers/dingtalk/dingtalk-adapter.d.ts +57 -0
  318. package/dist/plugins/messengers/dingtalk/dingtalk-adapter.d.ts.map +1 -0
  319. package/dist/plugins/messengers/dingtalk/dingtalk-adapter.js +409 -0
  320. package/dist/plugins/messengers/dingtalk/dingtalk-adapter.js.map +1 -0
  321. package/dist/plugins/messengers/dingtalk/dingtalk-client.d.ts +48 -0
  322. package/dist/plugins/messengers/dingtalk/dingtalk-client.d.ts.map +1 -0
  323. package/dist/plugins/messengers/dingtalk/dingtalk-client.js +236 -0
  324. package/dist/plugins/messengers/dingtalk/dingtalk-client.js.map +1 -0
  325. package/dist/plugins/messengers/dingtalk/index.d.ts +3 -0
  326. package/dist/plugins/messengers/dingtalk/index.d.ts.map +1 -0
  327. package/dist/plugins/messengers/dingtalk/index.js +3 -0
  328. package/dist/plugins/messengers/dingtalk/index.js.map +1 -0
  329. package/dist/plugins/messengers/dingtalk/link-coords.d.ts +23 -0
  330. package/dist/plugins/messengers/dingtalk/link-coords.d.ts.map +1 -0
  331. package/dist/plugins/messengers/dingtalk/link-coords.js +89 -0
  332. package/dist/plugins/messengers/dingtalk/link-coords.js.map +1 -0
  333. package/dist/plugins/messengers/dingtalk/media-store.d.ts +16 -0
  334. package/dist/plugins/messengers/dingtalk/media-store.d.ts.map +1 -0
  335. package/dist/plugins/messengers/dingtalk/media-store.js +77 -0
  336. package/dist/plugins/messengers/dingtalk/media-store.js.map +1 -0
  337. package/dist/plugins/messengers/dingtalk/types.d.ts +82 -0
  338. package/dist/plugins/messengers/dingtalk/types.d.ts.map +1 -0
  339. package/dist/plugins/messengers/dingtalk/types.js +14 -0
  340. package/dist/plugins/messengers/dingtalk/types.js.map +1 -0
  341. package/dist/plugins/messengers/discord/discord-adapter.d.ts +21 -0
  342. package/dist/plugins/messengers/discord/discord-adapter.d.ts.map +1 -0
  343. package/dist/plugins/messengers/discord/discord-adapter.js +238 -0
  344. package/dist/plugins/messengers/discord/discord-adapter.js.map +1 -0
  345. package/dist/plugins/messengers/discord/index.d.ts +4 -0
  346. package/dist/plugins/messengers/discord/index.d.ts.map +1 -0
  347. package/dist/plugins/messengers/discord/index.js +4 -0
  348. package/dist/plugins/messengers/discord/index.js.map +1 -0
  349. package/dist/plugins/messengers/discord/markdown-to-discord.d.ts +11 -0
  350. package/dist/plugins/messengers/discord/markdown-to-discord.d.ts.map +1 -0
  351. package/dist/plugins/messengers/discord/markdown-to-discord.js +59 -0
  352. package/dist/plugins/messengers/discord/markdown-to-discord.js.map +1 -0
  353. package/dist/plugins/messengers/discord/types.d.ts +9 -0
  354. package/dist/plugins/messengers/discord/types.d.ts.map +1 -0
  355. package/dist/plugins/messengers/discord/types.js +3 -0
  356. package/dist/plugins/messengers/discord/types.js.map +1 -0
  357. package/dist/plugins/messengers/email/email-adapter.d.ts +33 -0
  358. package/dist/plugins/messengers/email/email-adapter.d.ts.map +1 -0
  359. package/dist/plugins/messengers/email/email-adapter.js +137 -0
  360. package/dist/plugins/messengers/email/email-adapter.js.map +1 -0
  361. package/dist/plugins/messengers/feishu/card-builder.d.ts +23 -0
  362. package/dist/plugins/messengers/feishu/card-builder.d.ts.map +1 -0
  363. package/dist/plugins/messengers/feishu/card-builder.js +89 -0
  364. package/dist/plugins/messengers/feishu/card-builder.js.map +1 -0
  365. package/dist/plugins/messengers/feishu/feishu-adapter.d.ts +23 -0
  366. package/dist/plugins/messengers/feishu/feishu-adapter.d.ts.map +1 -0
  367. package/dist/plugins/messengers/feishu/feishu-adapter.js +250 -0
  368. package/dist/plugins/messengers/feishu/feishu-adapter.js.map +1 -0
  369. package/dist/plugins/messengers/feishu/feishu-client.d.ts +43 -0
  370. package/dist/plugins/messengers/feishu/feishu-client.d.ts.map +1 -0
  371. package/dist/plugins/messengers/feishu/feishu-client.js +118 -0
  372. package/dist/plugins/messengers/feishu/feishu-client.js.map +1 -0
  373. package/dist/plugins/messengers/feishu/index.d.ts +4 -0
  374. package/dist/plugins/messengers/feishu/index.d.ts.map +1 -0
  375. package/dist/plugins/messengers/feishu/index.js +4 -0
  376. package/dist/plugins/messengers/feishu/index.js.map +1 -0
  377. package/dist/plugins/messengers/feishu/types.d.ts +113 -0
  378. package/dist/plugins/messengers/feishu/types.d.ts.map +1 -0
  379. package/dist/plugins/messengers/feishu/types.js +4 -0
  380. package/dist/plugins/messengers/feishu/types.js.map +1 -0
  381. package/dist/plugins/messengers/telegram/index.d.ts +4 -0
  382. package/dist/plugins/messengers/telegram/index.d.ts.map +1 -0
  383. package/dist/plugins/messengers/telegram/index.js +4 -0
  384. package/dist/plugins/messengers/telegram/index.js.map +1 -0
  385. package/dist/plugins/messengers/telegram/markdown-to-html.d.ts +5 -0
  386. package/dist/plugins/messengers/telegram/markdown-to-html.d.ts.map +1 -0
  387. package/dist/plugins/messengers/telegram/markdown-to-html.js +186 -0
  388. package/dist/plugins/messengers/telegram/markdown-to-html.js.map +1 -0
  389. package/dist/plugins/messengers/telegram/media-download.d.ts +59 -0
  390. package/dist/plugins/messengers/telegram/media-download.d.ts.map +1 -0
  391. package/dist/plugins/messengers/telegram/media-download.js +228 -0
  392. package/dist/plugins/messengers/telegram/media-download.js.map +1 -0
  393. package/dist/plugins/messengers/telegram/telegram-adapter.d.ts +77 -0
  394. package/dist/plugins/messengers/telegram/telegram-adapter.d.ts.map +1 -0
  395. package/dist/plugins/messengers/telegram/telegram-adapter.js +880 -0
  396. package/dist/plugins/messengers/telegram/telegram-adapter.js.map +1 -0
  397. package/dist/plugins/messengers/telegram/types.d.ts +47 -0
  398. package/dist/plugins/messengers/telegram/types.d.ts.map +1 -0
  399. package/dist/plugins/messengers/telegram/types.js +3 -0
  400. package/dist/plugins/messengers/telegram/types.js.map +1 -0
  401. package/dist/plugins/messengers/wechat/context-store.d.ts +18 -0
  402. package/dist/plugins/messengers/wechat/context-store.d.ts.map +1 -0
  403. package/dist/plugins/messengers/wechat/context-store.js +105 -0
  404. package/dist/plugins/messengers/wechat/context-store.js.map +1 -0
  405. package/dist/plugins/messengers/wechat/ilink-adapter.d.ts +71 -0
  406. package/dist/plugins/messengers/wechat/ilink-adapter.d.ts.map +1 -0
  407. package/dist/plugins/messengers/wechat/ilink-adapter.js +664 -0
  408. package/dist/plugins/messengers/wechat/ilink-adapter.js.map +1 -0
  409. package/dist/plugins/messengers/wechat/ilink-client.d.ts +75 -0
  410. package/dist/plugins/messengers/wechat/ilink-client.d.ts.map +1 -0
  411. package/dist/plugins/messengers/wechat/ilink-client.js +331 -0
  412. package/dist/plugins/messengers/wechat/ilink-client.js.map +1 -0
  413. package/dist/plugins/messengers/wechat/ilink-types.d.ts +181 -0
  414. package/dist/plugins/messengers/wechat/ilink-types.d.ts.map +1 -0
  415. package/dist/plugins/messengers/wechat/ilink-types.js +22 -0
  416. package/dist/plugins/messengers/wechat/ilink-types.js.map +1 -0
  417. package/dist/plugins/messengers/wechat/media-download.d.ts +32 -0
  418. package/dist/plugins/messengers/wechat/media-download.d.ts.map +1 -0
  419. package/dist/plugins/messengers/wechat/media-download.js +78 -0
  420. package/dist/plugins/messengers/wechat/media-download.js.map +1 -0
  421. package/dist/scripts/migrate-gcj02-to-wgs84.d.ts +3 -0
  422. package/dist/scripts/migrate-gcj02-to-wgs84.d.ts.map +1 -0
  423. package/dist/scripts/migrate-gcj02-to-wgs84.js +52 -0
  424. package/dist/scripts/migrate-gcj02-to-wgs84.js.map +1 -0
  425. package/dist/utils/backoff.d.ts +35 -0
  426. package/dist/utils/backoff.d.ts.map +1 -0
  427. package/dist/utils/backoff.js +59 -0
  428. package/dist/utils/backoff.js.map +1 -0
  429. package/dist/utils/cross-platform.d.ts +26 -0
  430. package/dist/utils/cross-platform.d.ts.map +1 -0
  431. package/dist/utils/cross-platform.js +58 -0
  432. package/dist/utils/cross-platform.js.map +1 -0
  433. package/dist/utils/message-split.d.ts +14 -0
  434. package/dist/utils/message-split.d.ts.map +1 -0
  435. package/dist/utils/message-split.js +65 -0
  436. package/dist/utils/message-split.js.map +1 -0
  437. package/dist/utils/safe-equal.d.ts +2 -0
  438. package/dist/utils/safe-equal.d.ts.map +1 -0
  439. package/dist/utils/safe-equal.js +11 -0
  440. package/dist/utils/safe-equal.js.map +1 -0
  441. package/dist/web/public/_app.js +196 -0
  442. package/dist/web/public/index.html +936 -0
  443. package/dist/web/public/loc.html +305 -0
  444. package/dist/web/public/login.html +106 -0
  445. package/dist/web/public/memos.html +271 -0
  446. package/dist/web/public/reminders.html +234 -0
  447. package/dist/web/public/settings.html +1355 -0
  448. package/dist/web/public/tasks.html +1835 -0
  449. package/dist/web/server.d.ts +12 -0
  450. package/dist/web/server.d.ts.map +1 -0
  451. package/dist/web/server.js +2399 -0
  452. package/dist/web/server.js.map +1 -0
  453. package/package.json +92 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-approval-server.js","sourceRoot":"","sources":["../../../../src/plugins/agents/claude-code/mcp-approval-server.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,2DAA2D;AAC3D,uBAAuB;AACvB,EAAE;AACF,+DAA+D;AAC/D,cAAc;AACd,wCAAwC;AACxC,0EAA0E;AAC1E,EAAE;AACF,gCAAgC;AAChC,EAAE;AACF,sEAAsE;AAEtE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAe,MAAM,UAAU,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,WAAW,GAAG,OAAO,CAAA;AAC3B,MAAM,SAAS,GAAG,SAAS,CAAA;AA8B3B,MAAM,cAAc;IAUW;IAAqC;IAT1D,MAAM,GAAkB,IAAI,CAAA;IAC5B,GAAG,GAAG,EAAE,CAAA;IACR,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAA;IAC3C,gBAAgB,GAAG,IAAI,GAAG,EAA8B,CAAA;IACxD,YAAY,GAAG,IAAI,GAAG,EAA0B,CAAA;IAChD,UAAU,GAAiB,IAAI,CAAA;IAC/B,MAAM,GAAG,KAAK,CAAA;IACd,cAAc,CAAe;IAErC,YAA6B,UAAkB,EAAmB,KAAa;QAAlD,eAAU,GAAV,UAAU,CAAQ;QAAmB,UAAK,GAAL,KAAK,CAAQ;QAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;IACtC,CAAC;IAEO,OAAO;QACb,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC9C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YAExB,MAAM,cAAc,GAAG,CAAC,GAAU,EAAQ,EAAE;gBAC1C,IAAI,CAAC,UAAU,GAAG,GAAG,CAAA;gBACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;gBAClB,+CAA+C;gBAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAA;gBAC9E,OAAO,EAAE,CAAA;YACX,CAAC,CAAA;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;YAClC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;gBACxB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;gBAC5C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAA;gBAC9E,CAAC,CAAC,CAAA;gBACF,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;gBACtD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;gBACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;gBAClB,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,MAAM,CAAC,KAAa;QAC1B,IAAI,CAAC,GAAG,IAAI,KAAK,CAAA;QACjB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACjC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAAE,MAAK;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAClC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;YACjC,IAAI,CAAC,IAAI;gBAAE,SAAQ;YACnB,IAAI,GAAY,CAAA;YAChB,IAAI,CAAC;gBAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC;gBACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;gBACxF,SAAQ;YACV,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,GAAY;QAC3B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAM;QAC3C,MAAM,CAAC,GAAG,GAA8B,CAAA;QACxC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAM;QAErB,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;YAC1D,IAAI,CAAC,KAAK;gBAAE,OAAM;YAClB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACjC,IAAI,CAAC,CAAC;gBAAE,OAAM;YACd,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC1B,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC3B,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;oBAC3G,CAAC,CAAC,CAAC,CAAC,YAAuC;oBAC3C,CAAC,CAAC,CAAC,CAAC,aAAa,CAAA,CAAG,mDAAmD;gBACzE,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAChD,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;gBACrE,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAClE,CAAC;YACD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;YAC1D,IAAI,CAAC,KAAK;gBAAE,OAAM;YAClB,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC1C,IAAI,CAAC,CAAC;gBAAE,OAAM;YACd,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAA;YACxB,IAAI,EAAE,EAAE,CAAC;gBACP,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;YAC3C,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAA;gBACrE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YACjC,CAAC;YACD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;YAC1D,IAAI,CAAC,KAAK;gBAAE,OAAM;YAClB,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACtC,IAAI,CAAC,CAAC;gBAAE,OAAM;YACd,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC/B,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAA;YACxB,IAAI,EAAE,EAAE,CAAC;gBACP,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;YAC3C,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAA;gBACrE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YACjC,CAAC;YACD,OAAM;QACR,CAAC;IACH,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,6DAA6D;QAC7D,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAA;QACvE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACpB,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1C,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAA;QAC9D,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAA;QAC7B,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAA;QAC9D,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED,oEAAoE;IAEpE;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,IAIb;QACC,MAAM,IAAI,CAAC,cAAc,CAAA;QACzB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,IAAI,CAAC,UAAU,EAAE,OAAO,IAAI,QAAQ,EAAE,EAAE,CAAA;QAC3G,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,EAAE,CAAA;QAC1B,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,CAAC,EAAE,CAAC;YACJ,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,IAAI,CAAA;QAEN,OAAO,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,EAAE;YACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;YAC/D,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAClC,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBAC1B,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;gBACxE,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,EAAU,EAAE,OAAgC;QAChE,MAAM,IAAI,CAAC,cAAc,CAAA;QACzB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,IAAI,CAAC,UAAU,EAAE,OAAO,IAAI,QAAQ,EAAE,EAAE,CAAA;QACzF,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,EAAE,CAAA;QAC1B,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,CAAC,EAAE,CAAC;YACJ,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK;YACL,EAAE;YACF,OAAO;SACR,CAAC,IAAI,CAAA;QACN,OAAO,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,EAAE;YAC7C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;YAC7C,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBACnC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;gBAC/D,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;yDACqD;IACrD,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,OAAgC;QAC5D,MAAM,IAAI,CAAC,cAAc,CAAA;QACzB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,IAAI,CAAC,UAAU,EAAE,OAAO,IAAI,QAAQ,EAAE,EAAE,CAAA;QACzF,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,EAAE,CAAA;QAC1B,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,CAAC,EAAE,CAAC;YACJ,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK;YACL,EAAE;YACF,OAAO;SACR,CAAC,IAAI,CAAA;QACN,OAAO,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,EAAE;YACzC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;YACzC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBAC/B,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;gBAC/D,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC3C,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAA;gBAClB,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS;oBAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;YACrG,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAAsB;IAChD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAA;IAEF,oEAAoE;IACpE,uEAAuE;IACvE,qDAAqD;IACrD,MAAM,WAAW,GAAG;QAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;QACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACjC,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,SAAS,EACT;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EACT,8EAA8E;YAC9E,uEAAuE;QACzE,WAAW;KACZ,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAA;QAC/D,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAA;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,CAAA;QAE1D,wEAAwE;QACxE,gEAAgE;QAChE,qEAAqE;QACrE,mEAAmE;QACnE,mEAAmE;QACnE,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACxC,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;qBACjE;iBACF;aACF,CAAA;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QACrE,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;aAC1D;SACF,CAAA;IACH,CAAC,CACF,CAAA;IAED,qEAAqE;IACrE,qEAAqE;IACrE,uEAAuE;IACvE,yEAAyE;IACzE,wEAAwE;IACxE,+DAA+D;IAC/D,EAAE;IACF,uEAAuE;IACvE,+EAA+E;IAC/E,wEAAwE;IACxE,0EAA0E;IAC1E,uEAAuE;IACvE,yEAAyE;IACzE,2DAA2D;IAE3D,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;QAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACpB,qFAAqF;QACrF,yDAAyD,CAC1D,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,KAAK,EAAE,IAA6B,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACrD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAA;IAC/E,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,KAAK,EAAE,IAA6B,EAAE,EAAE;QACvE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACjD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAA;IAC/E,CAAC,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,sFAAsF;YACtF,sFAAsF;YACtF,wEAAwE;YACxE,kDAAkD;YAClD,4EAA4E;YAC5E,iFAAiF;YACjF,yEAAyE;YACzE,0EAA0E;YAC1E,iDAAiD;QACnD,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;YACjG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6EAA6E,CAAC;YACxG,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;YACzG,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACxD,oGAAoG,CACrG;YACD,WAAW,EAAE,eAAe;SAC7B;KACF,EACD,YAAY,CAAC,QAAQ,CAAC,CACvB,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,qFAAqF;YACrF,+CAA+C;QACjD,WAAW,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE;KAC9C,EACD,YAAY,CAAC,MAAM,CAAC,CACrB,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,yFAAyF;YACzF,kCAAkC;QACpC,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAC3E,WAAW,EAAE,eAAe;SAC7B;KACF,EACD,YAAY,CAAC,QAAQ,CAAC,CACvB,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,0FAA0F;YAC1F,qCAAqC;QACvC,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACjE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACzE,WAAW,EAAE,eAAe;SAC7B;KACF,EACD,YAAY,CAAC,QAAQ,CAAC,CACvB,CAAA;IAED,wEAAwE;IACxE,qEAAqE;IACrE,yEAAyE;IACzE,4DAA4D;IAC5D,EAAE;IACF,wEAAwE;IACxE,yEAAyE;IACzE,oEAAoE;IACpE,iEAAiE;IACjE,wEAAwE;IACxE,mEAAmE;IACnE,oEAAoE;IACpE,uEAAuE;IACvE,qEAAqE;IACrE,+DAA+D;IAC/D,oDAAoD;IAEpD,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,sCAAsC;QAC7C,WAAW,EACT,2EAA2E;YAC3E,6FAA6F;YAC7F,2FAA2F;YAC3F,mFAAmF;YACnF,uEAAuE;YACvE,6EAA6E;YAC7E,gFAAgF;YAChF,yDAAyD;YACzD,uEAAuE;YACvE,iFAAiF;YACjF,0FAA0F;YAC1F,yEAAyE;YACzE,0FAA0F;YAC1F,6FAA6F;YAC7F,0DAA0D;YAC1D,gDAAgD;YAChD,uFAAuF;YACvF,0FAA0F;YAC1F,uCAAuC;YACvC,6CAA6C;YAC7C,2CAA2C;YAC3C,oDAAoD;YACpD,+CAA+C;YAC/C,wCAAwC;YACxC,wDAAwD;YACxD,gCAAgC;YAChC,qCAAqC;YACrC,iEAAiE;YACjE,yEAAyE;YACzE,yFAAyF;YACzF,+DAA+D;YAC/D,4EAA4E;YAC5E,sFAAsF;YACtF,wDAAwD;YACxD,yEAAyE;YACzE,iDAAiD;YACjD,uGAAuG;YACvG,4FAA4F;YAC5F,4EAA4E;YAC5E,oFAAoF;YACpF,wEAAwE;YACxE,wEAAwE;YACxE,sFAAsF;YACtF,oCAAoC;YACpC,0EAA0E;YAC1E,4FAA4F;YAC5F,wFAAwF;YACxF,gDAAgD;YAChD,gDAAgD;YAChD,kEAAkE;YAClE,uFAAuF;YACvF,8BAA8B;YAC9B,8BAA8B;YAC9B,iBAAiB;YACjB,uBAAuB;YACvB,qBAAqB;YACrB,aAAa;YACb,2EAA2E;YAC3E,8EAA8E;YAC9E,4FAA4F;YAC5F,2FAA2F;YAC3F,qEAAqE;YACrE,wDAAwD;YACxD,sFAAsF;YACtF,8CAA8C;YAC9C,6EAA6E;YAC7E,+EAA+E;YAC/E,qFAAqF;YACrF,wFAAwF;YACxF,qEAAqE;QACvE,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YAC7E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACjF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gFAAgF,CAAC;YACzH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;YAC3G,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YACnG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAChF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACxE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8EAA8E,CAAC;YACvH,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACvD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC1D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAClC,mFAAmF;gBACnF,qFAAqF;gBACrF,gEAAgE;gBAChE,uFAAuF,CACxF;YACD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YAC1G,WAAW,EAAE,eAAe;SAC7B;KACF,EACD,QAAQ,CAAC,MAAM,CAAC,CACjB,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,KAAK,EAAE,kDAAkD;QACzD,WAAW,EACT,mFAAmF;YACnF,+EAA+E;YAC/E,2CAA2C;YAC3C,gFAAgF;YAChF,oFAAoF;YACpF,wBAAwB;YACxB,uFAAuF;YACvF,kFAAkF;YAClF,0BAA0B;YAC1B,iFAAiF;YACjF,6EAA6E;YAC7E,+EAA+E;YAC/E,qFAAqF;YACrF,uFAAuF;YACvF,oFAAoF;YACpF,+EAA+E;YAC/E,gDAAgD;QAClD,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yIAAyI,CAAC;YAC/K,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mGAAmG,CAAC;YAC7J,WAAW,EAAE,eAAe;SAC7B;KACF,EACD,QAAQ,CAAC,iBAAiB,CAAC,CAC5B,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EACT,mFAAmF;YACnF,2EAA2E;YAC3E,mFAAmF;YACnF,aAAa;YACb,0DAA0D;YAC1D,6CAA6C;YAC7C,sEAAsE;YACtE,0CAA0C;YAC1C,wFAAwF;YACxF,sFAAsF;YACtF,0FAA0F;YAC1F,+EAA+E;YAC/E,mFAAmF;YACnF,uFAAuF;YACvF,iDAAiD;QACnD,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iFAAiF,CAAC;YACxH,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YACvE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACzE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACzF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yGAAyG,CAAC;YACrJ,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2EAA2E,CAAC;YACxH,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACpG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACnF,WAAW,EAAE,eAAe;SAC7B;KACF,EACD,QAAQ,CAAC,QAAQ,CAAC,CACnB,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,kCAAkC;QACzC,WAAW,EACT,oFAAoF;YACpF,6EAA6E;YAC7E,2EAA2E;YAC3E,8BAA8B;YAC9B,qFAAqF;YACrF,4FAA4F;YAC5F,kFAAkF;YAClF,wFAAwF;YACxF,uFAAuF;YACvF,4FAA4F;YAC5F,yFAAyF;YACzF,qFAAqF;YACrF,oCAAoC;YACpC,4EAA4E;YAC5E,gFAAgF;YAChF,sFAAsF;YACtF,wFAAwF;YACxF,kCAAkC;QACpC,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACrE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC5D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC9D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0GAA0G,CAAC;YACnJ,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACrC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACrC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAClD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YACtF,WAAW,EAAE,eAAe;SAC7B;KACF,EACD,QAAQ,CAAC,QAAQ,CAAC,CACnB,CAAA;IAED,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,sFAAsF;YACtF,0EAA0E;YAC1E,6FAA6F;QAC/F,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACrE,WAAW,EAAE,eAAe;SAC7B;KACF,EACD,QAAQ,CAAC,QAAQ,CAAC,CACnB,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,KAAK,UAAU,IAAI;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAA;IAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,uEAAuE;IACvE,qEAAqE;IACrE,uEAAuE;IACvE,sEAAsE;IACtE,sEAAsE;IACtE,kEAAkE;IAClE,oEAAoE;IACpE,mDAAmD;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAA;IAE5C,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAClD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAClC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAE/B,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,KAAK,IAAmB,EAAE;QACzC,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAA;IACD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC/B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAChC,CAAC;AAED,kFAAkF;AAClF,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;IACzB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACpE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACpC,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACvE,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAA;IACtD,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAA;IAAC,CAAC;AAC1B,CAAC,CAAC,EAAE,CAAA;AAEJ,IAAI,YAAY,EAAE,CAAC;IACjB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAA;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Path to the shared MCP sidecar. Same JS that claude-code uses — codex
3
+ * just talks to it over a different transport (stdio either way; the
4
+ * difference is who launches it). Kept in claude-code/ to avoid copying
5
+ * 700 lines.
6
+ */
7
+ export declare const CODEX_MCP_SIDECAR_PATH: string;
8
+ export interface CodexMcpEnvInput {
9
+ sockPath: string;
10
+ runId: string;
11
+ /** Override sidecar path for tests. */
12
+ sidecarPath?: string;
13
+ /** Override node binary for tests. Production uses process.execPath. */
14
+ nodeBinary?: string;
15
+ }
16
+ /**
17
+ * Build the `-c` argument list that registers the imhub MCP server inline
18
+ * for one `codex exec` invocation. Returns a flat array suitable for
19
+ * splicing into the codex argv (each `-c` and its key=value are separate
20
+ * argv entries — codex's clap parser requires it).
21
+ *
22
+ * Example output (formatted):
23
+ * -c mcp_servers.imhub.command="/usr/bin/node"
24
+ * -c mcp_servers.imhub.args=["/path/to/mcp-approval-server.js"]
25
+ * -c mcp_servers.imhub.env={IMHUB_APPROVAL_SOCK="/tmp/foo.sock",IMHUB_RUN_ID="abc-123"}
26
+ */
27
+ export declare function buildCodexMcpCliArgs(input: CodexMcpEnvInput): string[];
28
+ //# sourceMappingURL=build-mcp-cli-args.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-mcp-cli-args.d.ts","sourceRoot":"","sources":["../../../../src/plugins/agents/codex/build-mcp-cli-args.ts"],"names":[],"mappings":"AA+BA;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAElC,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAgBtE"}
@@ -0,0 +1,74 @@
1
+ // build-mcp-cli-args.ts — translate {sockPath, runId} into the `-c` CLI
2
+ // args that register the imhub MCP server inline with `codex exec`.
3
+ //
4
+ // Why CLI args (not the global ~/.codex/config.toml):
5
+ //
6
+ // The runId is per-spawn (one per IM thread, registered with approvalBus
7
+ // for that spawn only). Writing it to the user's persistent config would
8
+ // leak across spawns and pollute their hand-edited toml. codex's `-c key=
9
+ // value` flag accepts inline TOML and merges over the persisted config
10
+ // for THAT INVOCATION only — exactly what we need.
11
+ //
12
+ // Verified against codex 0.130.0: `-c 'mcp_servers.imhub.command="..."'`
13
+ // + `-c 'mcp_servers.imhub.args=["..."]'` + `-c 'mcp_servers.imhub.env={
14
+ // K="v"}'` causes codex to spawn the MCP child with that command and env.
15
+ // The MCP child receives ONLY the env we list there (no parent-process
16
+ // inheritance), which is fine because mcp-approval-server.ts reads just
17
+ // IMHUB_APPROVAL_SOCK and IMHUB_RUN_ID, and we hand it the absolute node
18
+ // binary path so it doesn't need PATH.
19
+ //
20
+ // TOML escaping: values are wrapped with JSON.stringify, which yields a
21
+ // quoted string matching TOML's basic-string grammar (backslash + double-
22
+ // quote both escape correctly in both formats). String arrays go through
23
+ // JSON.stringify too — TOML accepts the JSON-compatible `["a", "b"]` form.
24
+ // We do NOT cover edge cases like control chars or non-BMP code points
25
+ // because socket paths and UUIDs never contain them.
26
+ import { fileURLToPath } from 'node:url';
27
+ import { dirname, join } from 'node:path';
28
+ const __dirname = dirname(fileURLToPath(import.meta.url));
29
+ /**
30
+ * Path to the shared MCP sidecar. Same JS that claude-code uses — codex
31
+ * just talks to it over a different transport (stdio either way; the
32
+ * difference is who launches it). Kept in claude-code/ to avoid copying
33
+ * 700 lines.
34
+ */
35
+ export const CODEX_MCP_SIDECAR_PATH = join(__dirname, '..', 'claude-code', 'mcp-approval-server.js');
36
+ /**
37
+ * Build the `-c` argument list that registers the imhub MCP server inline
38
+ * for one `codex exec` invocation. Returns a flat array suitable for
39
+ * splicing into the codex argv (each `-c` and its key=value are separate
40
+ * argv entries — codex's clap parser requires it).
41
+ *
42
+ * Example output (formatted):
43
+ * -c mcp_servers.imhub.command="/usr/bin/node"
44
+ * -c mcp_servers.imhub.args=["/path/to/mcp-approval-server.js"]
45
+ * -c mcp_servers.imhub.env={IMHUB_APPROVAL_SOCK="/tmp/foo.sock",IMHUB_RUN_ID="abc-123"}
46
+ */
47
+ export function buildCodexMcpCliArgs(input) {
48
+ const node = input.nodeBinary ?? process.execPath;
49
+ const sidecar = input.sidecarPath ?? CODEX_MCP_SIDECAR_PATH;
50
+ const commandVal = JSON.stringify(node);
51
+ const argsVal = JSON.stringify([sidecar]);
52
+ const envVal = formatTomlInlineEnv({
53
+ IMHUB_APPROVAL_SOCK: input.sockPath,
54
+ IMHUB_RUN_ID: input.runId,
55
+ });
56
+ return [
57
+ '-c', `mcp_servers.imhub.command=${commandVal}`,
58
+ '-c', `mcp_servers.imhub.args=${argsVal}`,
59
+ '-c', `mcp_servers.imhub.env=${envVal}`,
60
+ ];
61
+ }
62
+ /**
63
+ * Render `{K="v", K2="v2"}` for codex's `-c` inline TOML. Keys are emitted
64
+ * in insertion order. Values are JSON-stringified (TOML basic-string
65
+ * grammar is a strict subset of JSON-string grammar for these inputs).
66
+ *
67
+ * No keys are quoted because we control the names — they're ASCII
68
+ * bareword identifiers (IMHUB_* and similar).
69
+ */
70
+ function formatTomlInlineEnv(env) {
71
+ const pairs = Object.entries(env).map(([k, v]) => `${k}=${JSON.stringify(v)}`);
72
+ return `{${pairs.join(',')}}`;
73
+ }
74
+ //# sourceMappingURL=build-mcp-cli-args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-mcp-cli-args.js","sourceRoot":"","sources":["../../../../src/plugins/agents/codex/build-mcp-cli-args.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,oEAAoE;AACpE,EAAE;AACF,sDAAsD;AACtD,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,yEAAyE;AACzE,qDAAqD;AACrD,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,yCAAyC;AACzC,EAAE;AACF,wEAAwE;AACxE,0EAA0E;AAC1E,yEAAyE;AACzE,2EAA2E;AAC3E,uEAAuE;AACvE,qDAAqD;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CACxC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB,CACzD,CAAA;AAWD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAuB;IAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAA;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,IAAI,sBAAsB,CAAA;IAE3D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,mBAAmB,EAAE,KAAK,CAAC,QAAQ;QACnC,YAAY,EAAE,KAAK,CAAC,KAAK;KAC1B,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,6BAA6B,UAAU,EAAE;QAC/C,IAAI,EAAE,0BAA0B,OAAO,EAAE;QACzC,IAAI,EAAE,yBAAyB,MAAM,EAAE;KACxC,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,GAA2B;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC9E,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;AAC/B,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { AgentBase, type SpawnPlan } from '../../../core/agent-base.js';
2
+ import type { AgentSendOpts } from '../../../core/types.js';
3
+ export declare class CodexAdapter extends AgentBase {
4
+ readonly name = "codex";
5
+ readonly aliases: string[];
6
+ /**
7
+ * Override to bypass the codex wrapper's broken stdio handling — see
8
+ * resolveCodexBinary() above. Falls back to "codex" (PATH lookup) if
9
+ * native binary resolution fails.
10
+ *
11
+ * commandName drives `isAvailable()` (--version probe) AND the spawn binary,
12
+ * so resolving here gets us both at once.
13
+ */
14
+ protected get commandName(): string;
15
+ /**
16
+ * Build the codex argv WITHOUT MCP -c flags. prepareCommand prepends MCP
17
+ * args separately so the order is: `<-c global flags...> exec [resume <id>]
18
+ * <exec flags...> <prompt>`. Codex's clap requires global flags ahead of
19
+ * the subcommand, and the prompt has to be the trailing positional.
20
+ */
21
+ protected buildArgs(prompt: string, opts: AgentSendOpts): string[];
22
+ /**
23
+ * codex reads its project-level AGENTS.md from spawn cwd, so for IM calls we
24
+ * pin to ~/.im-hub-workspaces/codex/. Non-IM calls (web/scheduler) keep
25
+ * cwd undefined and inherit im-hub's cwd. See agent-cwd.ts for rationale.
26
+ *
27
+ * MCP sidecar injection: when we have an IM thread + the bus is up, prepend
28
+ * `-c mcp_servers.imhub.{command,args,env}=...` to register the imhub MCP
29
+ * sidecar for this invocation only. The runId env entry is registered on
30
+ * the bus first so reminder.* RPCs from the sidecar route back to the
31
+ * correct RunContext. Cleanup unregisters the runId after the spawn exits.
32
+ *
33
+ * Fallback path (no IM context, bus down, or IMHUB_APPROVAL_DISABLED=1):
34
+ * just buildArgs(prompt, opts) — codex still works, just without imhub
35
+ * MCP tools. Matches the existing claude-code/opencode fallback shape.
36
+ */
37
+ protected prepareCommand(prompt: string, opts: AgentSendOpts): Promise<SpawnPlan>;
38
+ protected extractText(event: unknown): string;
39
+ /**
40
+ * Side-channel hook: capture session id (`thread.started`) and usage
41
+ * (`turn.completed.usage`) without disrupting the text stream.
42
+ */
43
+ protected inspectEvent(event: unknown, opts: AgentSendOpts): void;
44
+ protected handleError(_code: number, _stderr: string, errorMessage: string): string | null;
45
+ }
46
+ export declare const codexAdapter: CodexAdapter;
47
+ export declare const _testInternals: {
48
+ buildArgs(adapter: CodexAdapter, prompt: string, opts?: AgentSendOpts): string[];
49
+ prepareCommand(adapter: CodexAdapter, prompt: string, opts: AgentSendOpts): Promise<SpawnPlan>;
50
+ extractText(adapter: CodexAdapter, event: unknown): string;
51
+ inspectEvent(adapter: CodexAdapter, event: unknown, opts: AgentSendOpts): void;
52
+ };
53
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/agents/codex/index.ts"],"names":[],"mappings":"AAqDA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AA8H3D,qBAAa,YAAa,SAAQ,SAAS;IACzC,QAAQ,CAAC,IAAI,WAAU;IACvB,QAAQ,CAAC,OAAO,WAA+B;IAE/C;;;;;;;OAOG;IACH,SAAS,KAAK,WAAW,IAAI,MAAM,CAElC;IAED;;;;;OAKG;IACH,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM,EAAE;IA8ClE;;;;;;;;;;;;;;OAcG;cACa,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAqCvF,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAW7C;;;OAGG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAqBjE,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAS3F;AAED,eAAO,MAAM,YAAY,cAAqB,CAAA;AAI9C,eAAO,MAAM,cAAc;uBACN,YAAY,UAAU,MAAM,SAAQ,aAAa,GAAQ,MAAM,EAAE;4BAItD,YAAY,UAAU,MAAM,QAAQ,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;yBAI/E,YAAY,SAAS,OAAO,GAAG,MAAM;0BAIpC,YAAY,SAAS,OAAO,QAAQ,aAAa,GAAG,IAAI;CAI/E,CAAA"}
@@ -0,0 +1,341 @@
1
+ // OpenAI Codex CLI agent adapter — `codex exec --json` driver.
2
+ //
3
+ // Multi-turn continuity (mirrors the opencode pattern):
4
+ //
5
+ // First turn — no opts.agentSessionId yet. Spawn `codex exec --json …`.
6
+ // The adapter watches for `thread.started.thread_id` and
7
+ // reports it back via opts.onAgentSessionId so cli persists
8
+ // it on the im-hub Session row (codexSessionId).
9
+ // Later turns — opts.agentSessionId is the captured UUID. We spawn
10
+ // `codex exec resume <id> --json …` so codex continues from
11
+ // its own ~/.codex/sessions store. router.callAgentWithHistory
12
+ // honours agentSessionResume by zeroing effectiveHistory so
13
+ // we don't double-feed prior turns.
14
+ //
15
+ // Cwd: pinned to ~/.im-hub-workspaces/codex/ for IM calls (per agent-cwd.ts);
16
+ // codex reads its project AGENTS.md from cwd just like opencode.
17
+ //
18
+ // Usage roll-up: `turn.completed.usage` carries token counts (no cost). We
19
+ // forward input/output tokens via opts.onUsage so /stats reflects real codex
20
+ // usage. costUsd stays undefined until codex surfaces pricing.
21
+ //
22
+ // Approval / sandbox model (current):
23
+ // - `codex exec` has NO external approval hook (no --ask-for-approval
24
+ // equivalent). Confirmed against codex CLI 0.x — only `-s` sandbox
25
+ // mode + `--dangerously-bypass-approvals-and-sandbox` exist. So we
26
+ // CANNOT route per-tool approvals through approval-bus the way
27
+ // claude-code (MCP sidecar) and opencode (SSE bus) do.
28
+ // - Best we can do today: pin sandbox to `workspace-write` by default
29
+ // (cwd-scoped writes only, NO auto-approval — codex's internal policy
30
+ // decides each call), and flip to `read-only` when session.planMode
31
+ // is on. This gives us a "safety floor" rather than a true gate.
32
+ // - True per-tool approval would require running codex via `codex
33
+ // mcp-server` (stdio MCP) and putting our own approval-bus shim
34
+ // between the MCP client and codex. Tracked as a future iteration.
35
+ //
36
+ // MCP imhub sidecar (v0.4.0):
37
+ // - When IM context is present and approvalBus is up, prepareCommand
38
+ // injects `-c mcp_servers.imhub.{command,args,env}=...` ahead of the
39
+ // `exec` subcommand. codex spawns the sidecar as a stdio MCP child
40
+ // and the model gets access to the 9 imhub tools (reminder + memo +
41
+ // request_location_capture). The `request` approval-prompt tool is
42
+ // exposed too but codex has no `--permission-prompt-tool` knob, so
43
+ // codex won't auto-invoke it; it's harmless to include.
44
+ // - Per-spawn runId is set on the bus and passed via the MCP env table,
45
+ // so reminder.* RPCs route back to the originating IM thread.
46
+ // - No write to ~/.codex/config.toml — inline -c args merge over the
47
+ // persisted config for this invocation only. The user's hand-edited
48
+ // toml is left alone.
49
+ import { execSync } from 'node:child_process';
50
+ import { randomUUID } from 'node:crypto';
51
+ import { existsSync, realpathSync } from 'node:fs';
52
+ import { dirname, join } from 'node:path';
53
+ import { AgentBase } from '../../../core/agent-base.js';
54
+ import { approvalBus } from '../../../core/approval-bus.js';
55
+ import { resolveAgentCwd } from '../../../core/agent-cwd.js';
56
+ import { logger as rootLogger } from '../../../core/logger.js';
57
+ import { buildCodexMcpCliArgs } from './build-mcp-cli-args.js';
58
+ const log = rootLogger.child({ component: 'agent.codex' });
59
+ /**
60
+ * Codex's `bin/codex.js` wrapper (npm install -g @openai/codex) drops all
61
+ * stdout when the parent spawns it with `stdio: ['ignore', 'pipe', 'pipe']`
62
+ * — the wrapper relays its own stdio to the native binary via
63
+ * `stdio: 'inherit'`, and that handoff fails to forward data through a
64
+ * piped fd back to the grandparent. The native binary works fine when
65
+ * called directly.
66
+ *
67
+ * Resolution: at startup, follow `which codex` → real path of wrapper →
68
+ * `<codex-pkg>/node_modules/@openai/codex-<triple>/vendor/<triple>/codex/codex`.
69
+ * Cache the result. If anything in the chain is missing (different install
70
+ * layout, unsupported triple), fall back to the wrapper name and hope for
71
+ * the best — at least the user sees a failure rather than silent 0-byte.
72
+ *
73
+ * Probed once per process; the cache lives module-level.
74
+ */
75
+ let cachedBinary = null;
76
+ let probed = false;
77
+ function resolveCodexBinary() {
78
+ if (probed)
79
+ return cachedBinary ?? 'codex';
80
+ probed = true;
81
+ try {
82
+ const wrapper = execSync('command -v codex', { encoding: 'utf8' }).trim();
83
+ if (!wrapper)
84
+ return 'codex';
85
+ const wrapperReal = realpathSync(wrapper);
86
+ // wrapperReal e.g. /usr/local/lib/node_modules/@openai/codex/bin/codex.js
87
+ const codexPkgRoot = dirname(dirname(wrapperReal));
88
+ const triple = pickTriple(process.platform, process.arch);
89
+ if (!triple) {
90
+ log.warn({ platform: process.platform, arch: process.arch }, 'codex: unsupported platform, falling back to wrapper (stdio pipe bug applies)');
91
+ return 'codex';
92
+ }
93
+ const platformPkg = pickPlatformPackage(process.platform, process.arch);
94
+ if (!platformPkg)
95
+ return 'codex';
96
+ const candidates = [
97
+ join(codexPkgRoot, 'node_modules', platformPkg, 'vendor', triple, 'codex', 'codex'),
98
+ join(codexPkgRoot, 'vendor', triple, 'codex', 'codex'),
99
+ ];
100
+ for (const cand of candidates) {
101
+ if (existsSync(cand)) {
102
+ cachedBinary = cand;
103
+ log.info({ binary: cand }, 'codex: resolved native binary, bypassing wrapper');
104
+ return cand;
105
+ }
106
+ }
107
+ log.warn({ tried: candidates }, 'codex: native binary not found, using wrapper (may break in IM)');
108
+ }
109
+ catch (err) {
110
+ log.warn({ err: String(err) }, 'codex: binary resolution failed, using wrapper');
111
+ }
112
+ return 'codex';
113
+ }
114
+ function pickTriple(platform, arch) {
115
+ if (platform === 'linux') {
116
+ if (arch === 'x64')
117
+ return 'x86_64-unknown-linux-musl';
118
+ if (arch === 'arm64')
119
+ return 'aarch64-unknown-linux-musl';
120
+ }
121
+ if (platform === 'darwin') {
122
+ if (arch === 'x64')
123
+ return 'x86_64-apple-darwin';
124
+ if (arch === 'arm64')
125
+ return 'aarch64-apple-darwin';
126
+ }
127
+ if (platform === 'win32') {
128
+ if (arch === 'x64')
129
+ return 'x86_64-pc-windows-msvc';
130
+ if (arch === 'arm64')
131
+ return 'aarch64-pc-windows-msvc';
132
+ }
133
+ return null;
134
+ }
135
+ function pickPlatformPackage(platform, arch) {
136
+ const archKey = arch === 'arm64' ? 'arm64' : arch === 'x64' ? 'x64' : null;
137
+ if (!archKey)
138
+ return null;
139
+ if (platform === 'linux')
140
+ return `@openai/codex-linux-${archKey}`;
141
+ if (platform === 'darwin')
142
+ return `@openai/codex-darwin-${archKey}`;
143
+ if (platform === 'win32')
144
+ return `@openai/codex-win32-${archKey}`;
145
+ return null;
146
+ }
147
+ /**
148
+ * Common flags every spawn carries. Sandbox mode is intentionally absent
149
+ * here — it's added per-spawn by buildArgs based on opts.planMode so plan
150
+ * runs go read-only and normal runs land at workspace-write.
151
+ *
152
+ * Why not `--full-auto`? --full-auto = `-s workspace-write` + auto-approval
153
+ * of every internal prompt. That's stronger than we want for an IM-driven
154
+ * agent — codex's own policy engine can still ask the user "do this risky
155
+ * thing?" and we'd rather see those prompts surface (codex emits them as
156
+ * `turn.message` events on the JSON stream) than have them silently
157
+ * answered yes. workspace-write WITHOUT --full-auto preserves codex's
158
+ * internal decisioning while keeping the OS-level write fence.
159
+ */
160
+ const BASE_FLAGS = ['--json', '--skip-git-repo-check'];
161
+ export class CodexAdapter extends AgentBase {
162
+ name = 'codex';
163
+ aliases = ['cx', 'openai', 'codexcli'];
164
+ /**
165
+ * Override to bypass the codex wrapper's broken stdio handling — see
166
+ * resolveCodexBinary() above. Falls back to "codex" (PATH lookup) if
167
+ * native binary resolution fails.
168
+ *
169
+ * commandName drives `isAvailable()` (--version probe) AND the spawn binary,
170
+ * so resolving here gets us both at once.
171
+ */
172
+ get commandName() {
173
+ return resolveCodexBinary();
174
+ }
175
+ /**
176
+ * Build the codex argv WITHOUT MCP -c flags. prepareCommand prepends MCP
177
+ * args separately so the order is: `<-c global flags...> exec [resume <id>]
178
+ * <exec flags...> <prompt>`. Codex's clap requires global flags ahead of
179
+ * the subcommand, and the prompt has to be the trailing positional.
180
+ */
181
+ buildArgs(prompt, opts) {
182
+ // session.planMode → -s read-only sandbox. Best-available approximation
183
+ // of "agent only plans, doesn't act"; codex still emits write attempts
184
+ // as events but the OS layer rejects them. See file header for the
185
+ // approval-model discussion.
186
+ //
187
+ // `-s/--sandbox` is ONLY valid on the initial `exec` invocation. The
188
+ // `exec resume` subcommand (codex 0.130+) inherits the sandbox policy
189
+ // from the original session and rejects `-s` with "unexpected argument".
190
+ // So we splice sandboxFlags onto fresh starts only.
191
+ //
192
+ // MCP tool approval: codex's MCP integration auto-cancels every tool
193
+ // call in non-interactive (`exec --json`) mode because there's no TUI
194
+ // to render the approval prompt. Result: every imhub_save_memo/etc.
195
+ // call returns `"user cancelled MCP tool call"` and the model gives up.
196
+ // The ONLY way codex 0.130 lets MCP calls through non-interactively is
197
+ // `--dangerously-bypass-approvals-and-sandbox` which also disables the
198
+ // sandbox layer.
199
+ //
200
+ // Trade-off: IM-spawned codex gains imhub MCP tool access at the cost
201
+ // of the workspace-write sandbox. Acceptable for our use because:
202
+ // - the IM user IS the same trust principal as the host
203
+ // - codex never had per-tool approval cards in im-hub anyway (no CLI
204
+ // hook; it always ran bash/edit autonomously within sandbox)
205
+ // - users who want sandbox back can set IMHUB_CODEX_SAFE_MODE=1, at
206
+ // the cost of MCP tools being unusable
207
+ // planMode users similarly fall back to safe-mode (`-s read-only` only,
208
+ // no bypass) because plan runs shouldn't be acting anyway.
209
+ const wantBypass = process.env.IMHUB_CODEX_SAFE_MODE !== '1' &&
210
+ !opts.planMode &&
211
+ process.env.IMHUB_APPROVAL_DISABLED !== '1';
212
+ const sandboxMode = opts.planMode ? 'read-only' : 'workspace-write';
213
+ if (opts.agentSessionId && opts.agentSessionResume) {
214
+ // `codex exec resume <UUID> [OPTIONS] [PROMPT]` — SESSION_ID is a
215
+ // positional immediately after `resume`. No -s here (resume inherits
216
+ // sandbox from original session).
217
+ const flags = wantBypass ? ['--dangerously-bypass-approvals-and-sandbox'] : [];
218
+ return ['exec', 'resume', opts.agentSessionId, ...BASE_FLAGS, ...flags, prompt];
219
+ }
220
+ const sandboxFlags = wantBypass
221
+ ? ['--dangerously-bypass-approvals-and-sandbox']
222
+ : ['-s', sandboxMode];
223
+ return ['exec', ...BASE_FLAGS, ...sandboxFlags, prompt];
224
+ }
225
+ /**
226
+ * codex reads its project-level AGENTS.md from spawn cwd, so for IM calls we
227
+ * pin to ~/.im-hub-workspaces/codex/. Non-IM calls (web/scheduler) keep
228
+ * cwd undefined and inherit im-hub's cwd. See agent-cwd.ts for rationale.
229
+ *
230
+ * MCP sidecar injection: when we have an IM thread + the bus is up, prepend
231
+ * `-c mcp_servers.imhub.{command,args,env}=...` to register the imhub MCP
232
+ * sidecar for this invocation only. The runId env entry is registered on
233
+ * the bus first so reminder.* RPCs from the sidecar route back to the
234
+ * correct RunContext. Cleanup unregisters the runId after the spawn exits.
235
+ *
236
+ * Fallback path (no IM context, bus down, or IMHUB_APPROVAL_DISABLED=1):
237
+ * just buildArgs(prompt, opts) — codex still works, just without imhub
238
+ * MCP tools. Matches the existing claude-code/opencode fallback shape.
239
+ */
240
+ async prepareCommand(prompt, opts) {
241
+ const cwd = resolveAgentCwd(this.name, opts);
242
+ const baseArgs = this.buildArgs(prompt, opts);
243
+ if (process.env.IMHUB_APPROVAL_DISABLED === '1') {
244
+ return { args: baseArgs, cwd };
245
+ }
246
+ const sockPath = approvalBus.getSocketPath();
247
+ const { threadId, platform, channelId, userId } = opts;
248
+ if (!sockPath || !threadId || !platform || !channelId) {
249
+ // Non-IM call (web/scheduler/intent-llm) OR bus not started yet —
250
+ // run codex without registering the MCP sidecar. The reminder tools
251
+ // wouldn't have a thread to address anyway.
252
+ return { args: baseArgs, cwd };
253
+ }
254
+ const runId = randomUUID();
255
+ const mcpArgs = buildCodexMcpCliArgs({ sockPath, runId });
256
+ approvalBus.registerRun(runId, {
257
+ threadId, platform, userId: userId ?? '', channelId,
258
+ });
259
+ log.info({ event: 'codex.mcp.run_registered', runId, threadId, platform }, 'Codex run registered with bus for imhub MCP tools');
260
+ return {
261
+ // -c flags belong BEFORE `exec`; baseArgs starts with `exec` so the
262
+ // simple prefix-splice is correct.
263
+ args: [...mcpArgs, ...baseArgs],
264
+ cwd,
265
+ cleanup: () => {
266
+ approvalBus.unregisterRun(runId);
267
+ },
268
+ };
269
+ }
270
+ extractText(event) {
271
+ const e = event;
272
+ // codex 0.128 emits assistant text inside item.completed where item.type
273
+ // is "agent_message". The pre-v1 adapter looked for {type:"message"},
274
+ // which never fires, so all output was being dropped on the floor.
275
+ if (e.type === 'item.completed' && e.item?.type === 'agent_message' && e.item.text) {
276
+ return e.item.text;
277
+ }
278
+ return '';
279
+ }
280
+ /**
281
+ * Side-channel hook: capture session id (`thread.started`) and usage
282
+ * (`turn.completed.usage`) without disrupting the text stream.
283
+ */
284
+ inspectEvent(event, opts) {
285
+ const e = event;
286
+ if (e.type === 'thread.started' && e.thread_id && opts.onAgentSessionId) {
287
+ try {
288
+ opts.onAgentSessionId(e.thread_id);
289
+ }
290
+ catch { /* userland callback safety */ }
291
+ }
292
+ if (e.type === 'turn.completed' && e.usage && opts.onUsage) {
293
+ const u = e.usage;
294
+ const delta = {};
295
+ if (typeof u.input_tokens === 'number' && Number.isFinite(u.input_tokens)) {
296
+ delta.tokensInput = u.input_tokens;
297
+ }
298
+ if (typeof u.output_tokens === 'number' && Number.isFinite(u.output_tokens)) {
299
+ delta.tokensOutput = u.output_tokens;
300
+ }
301
+ // codex doesn't surface cost; leave delta.costUsd undefined.
302
+ if (delta.tokensInput !== undefined || delta.tokensOutput !== undefined) {
303
+ try {
304
+ opts.onUsage(delta);
305
+ }
306
+ catch { /* userland callback safety */ }
307
+ }
308
+ }
309
+ }
310
+ handleError(_code, _stderr, errorMessage) {
311
+ if (errorMessage.includes('expired') || errorMessage.includes('过期')) {
312
+ return '❌ Codex 账号已过期\n\n请运行 `codex login` 重新登录。';
313
+ }
314
+ if (errorMessage.includes('not found') || errorMessage.includes('不存在')) {
315
+ return '❌ Codex 用户不存在,请重新登录\n\n请运行 `codex login` 重新登录。';
316
+ }
317
+ return null;
318
+ }
319
+ }
320
+ export const codexAdapter = new CodexAdapter();
321
+ // Test-only escape hatch — drives the protected hooks without going through
322
+ // the spawnStream pipeline.
323
+ export const _testInternals = {
324
+ buildArgs(adapter, prompt, opts = {}) {
325
+ // @ts-expect-error — protected; tests reach in deliberately
326
+ return adapter.buildArgs(prompt, opts);
327
+ },
328
+ async prepareCommand(adapter, prompt, opts) {
329
+ // @ts-expect-error
330
+ return adapter.prepareCommand(prompt, opts);
331
+ },
332
+ extractText(adapter, event) {
333
+ // @ts-expect-error
334
+ return adapter.extractText(event);
335
+ },
336
+ inspectEvent(adapter, event, opts) {
337
+ // @ts-expect-error
338
+ adapter.inspectEvent(event, opts);
339
+ },
340
+ };
341
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/agents/codex/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { AgentBase } from '../../../core/agent-base.js';
2
+ /**
3
+ * Copilot adapter built on AgentBase. Differs from the other CLI agents
4
+ * in two ways:
5
+ * 1. The binary path is discovered async (gh / standalone / VSCode)
6
+ * 2. The CLI is not JSONL — its stdout is plain text
7
+ *
8
+ * AgentBase already handles plain text via the JSON.parse fallback (yields
9
+ * the line verbatim). We override commandName/buildArgs/extractText after
10
+ * resolving the install, and use isAvailable() to short-circuit when no
11
+ * install was found.
12
+ */
13
+ declare class CopilotAdapter extends AgentBase {
14
+ readonly name = "copilot";
15
+ readonly aliases: string[];
16
+ /** Resolved install, populated by isAvailable() and reused by spawn calls. */
17
+ private resolvedInstall;
18
+ protected get commandName(): string;
19
+ protected buildArgs(prompt: string): string[];
20
+ protected extractText(event: unknown): string;
21
+ isAvailable(): Promise<boolean>;
22
+ healthCheck(): Promise<{
23
+ ok: boolean;
24
+ latencyMs?: number;
25
+ }>;
26
+ protected handleError(_code: number, stderr: string, _errorMessage: string): string | null;
27
+ protected notAvailableMessage(): string;
28
+ sendPrompt(sessionId: string, prompt: string, history?: import('../../../core/types.js').ChatMessage[], _opts?: {
29
+ model?: string;
30
+ variant?: string;
31
+ }): AsyncGenerator<string>;
32
+ }
33
+ export declare const copilotAdapter: CopilotAdapter;
34
+ export {};
35
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/agents/copilot/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAgGvD;;;;;;;;;;GAUG;AACH,cAAM,cAAe,SAAQ,SAAS;IACpC,QAAQ,CAAC,IAAI,aAAY;IACzB,QAAQ,CAAC,OAAO,WAAyC;IAEzD,8EAA8E;IAC9E,OAAO,CAAC,eAAe,CAA8B;IAErD,SAAS,KAAK,WAAW,IAAI,MAAM,CAQlC;IAED,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAS7C,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAYvC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,WAAW,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAMjE,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAY1F,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAchC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,wBAAwB,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,MAAM,CAAC;CAQrL;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAA"}