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":"config-wizard.js","sourceRoot":"","sources":["../../src/cli-ui/config-wizard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type Lang } from './i18n.js';
2
+ export type EntryAction = {
3
+ kind: 'config';
4
+ } | {
5
+ kind: 'status';
6
+ } | {
7
+ kind: 'start';
8
+ bg: boolean;
9
+ } | {
10
+ kind: 'restart';
11
+ } | {
12
+ kind: 'stop';
13
+ } | {
14
+ kind: 'uninstall';
15
+ } | {
16
+ kind: 'quit';
17
+ };
18
+ /**
19
+ * Run the language picker + entry menu, return the action the user picked
20
+ * AND the lang they picked. The dispatcher needs the lang to localize
21
+ * follow-up flows (notably `runConfigWizard`) without re-prompting — the
22
+ * user already chose; asking again is a regression.
23
+ */
24
+ export declare function runEntryMenu(): Promise<{
25
+ action: EntryAction;
26
+ lang: Lang;
27
+ }>;
28
+ //# sourceMappingURL=entry-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry-menu.d.ts","sourceRoot":"","sources":["../../src/cli-ui/entry-menu.ts"],"names":[],"mappings":"AAWA,OAAO,EAAK,KAAK,IAAI,EAAE,MAAM,WAAW,CAAA;AAExC,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpB;;;;;GAKG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CA2BjF"}
@@ -0,0 +1,50 @@
1
+ // cli-ui/entry-menu.ts — what bare `agim` shows when invoked with
2
+ // no args. Drops the user at the language picker, then a 7-row menu
3
+ // covering the 5 service-mgmt commands + config + quit.
4
+ //
5
+ // We dispatch to the existing commander actions by calling them directly
6
+ // (they're exposed via the cli.ts module via `exec*` helpers). Could also
7
+ // re-spawn `agim <subcmd>` but that doubles startup time; direct
8
+ // dispatch keeps everything in one process.
9
+ import { menu, UserAbortError } from './prompts.js';
10
+ import { pickLang } from './lang-picker.js';
11
+ import { t } from './i18n.js';
12
+ /**
13
+ * Run the language picker + entry menu, return the action the user picked
14
+ * AND the lang they picked. The dispatcher needs the lang to localize
15
+ * follow-up flows (notably `runConfigWizard`) without re-prompting — the
16
+ * user already chose; asking again is a regression.
17
+ */
18
+ export async function runEntryMenu() {
19
+ const lang = await pickLang();
20
+ console.log();
21
+ console.log(t(lang, 'menu.title'));
22
+ console.log();
23
+ try {
24
+ const picked = (await menu({
25
+ lang,
26
+ message: t(lang, 'menu.subtitle'),
27
+ choices: [
28
+ { value: 'config', name: t(lang, 'menu.config') },
29
+ { value: 'status', name: t(lang, 'menu.status'), separatorBefore: true },
30
+ { value: 'start', name: t(lang, 'menu.start') },
31
+ { value: 'start_bg', name: t(lang, 'menu.start_bg') },
32
+ { value: 'restart', name: t(lang, 'menu.restart') },
33
+ { value: 'stop', name: t(lang, 'menu.stop') },
34
+ { value: 'uninstall', name: t(lang, 'menu.uninstall'), separatorBefore: true },
35
+ { value: 'quit', name: t(lang, 'menu.quit'), separatorBefore: true },
36
+ ],
37
+ }));
38
+ if (picked === 'start_bg')
39
+ return { action: { kind: 'start', bg: true }, lang };
40
+ if (picked === 'start')
41
+ return { action: { kind: 'start', bg: false }, lang };
42
+ return { action: { kind: picked }, lang };
43
+ }
44
+ catch (err) {
45
+ if (err instanceof UserAbortError)
46
+ return { action: { kind: 'quit' }, lang };
47
+ throw err;
48
+ }
49
+ }
50
+ //# sourceMappingURL=entry-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry-menu.js","sourceRoot":"","sources":["../../src/cli-ui/entry-menu.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,oEAAoE;AACpE,wDAAwD;AACxD,EAAE;AACF,yEAAyE;AACzE,0EAA0E;AAC1E,iEAAiE;AACjE,4CAA4C;AAE5C,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,CAAC,EAAa,MAAM,WAAW,CAAA;AAWxC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAA;IAC7B,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAA;IAClC,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAmC;YAC3D,IAAI;YACJ,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC;YACjC,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,QAAQ,EAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE;gBACpD,EAAE,KAAK,EAAE,QAAQ,EAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,EAAK,eAAe,EAAE,IAAI,EAAE;gBAC9E,EAAE,KAAK,EAAE,OAAO,EAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE;gBACnD,EAAE,KAAK,EAAE,UAAU,EAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE;gBACtD,EAAE,KAAK,EAAE,SAAS,EAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE;gBACrD,EAAE,KAAK,EAAE,MAAM,EAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;gBAClD,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE;gBAC9E,EAAE,KAAK,EAAE,MAAM,EAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAO,eAAe,EAAE,IAAI,EAAE;aAC/E;SACF,CAAC,CAAqC,CAAA;QACvC,IAAI,MAAM,KAAK,UAAU;YAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAA;QAC/E,IAAI,MAAM,KAAK,OAAO;YAAK,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAA;QAChF,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAiB,EAAE,IAAI,EAAE,CAAA;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,cAAc;YAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAA;QAC5E,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
@@ -0,0 +1,35 @@
1
+ export declare const ENV_FILE: string;
2
+ /** Read existing env as a plain Record. Unknown lines (blank / comment)
3
+ * are dropped from the returned map but PRESERVED on write via merge. */
4
+ export declare function readEnvFile(): Record<string, string>;
5
+ /** Parse `Environment="KEY=value"` and `Environment=KEY=value` lines out
6
+ * of the im-hub systemd unit. Used as a fallback for `readEffectiveEnv()`
7
+ * on machines where the wizard hasn't yet written to ~/.im-hub/env AND
8
+ * the user's interactive shell doesn't export the keys — the unit file
9
+ * is world-readable on standard installs, so this works for `agim
10
+ * config` invoked as the user. Returns {} if the file is missing/unreadable. */
11
+ export declare function readSystemdUnitEnv(): Record<string, string>;
12
+ /** Read priority:
13
+ * 1. ~/.im-hub/env (canonical, what the wizard writes)
14
+ * 2. process.env (current shell / inherited)
15
+ * 3. systemd unit's Environment= lines (what's actually in effect for
16
+ * the running service when the wizard is invoked from a shell that
17
+ * doesn't export the keys — most common case after a manual install)
18
+ *
19
+ * Writes still go to the env file only — see `updateEnvFile()`. Callers
20
+ * that need to warn about shadowing should use `hasProcessEnvOverride()`. */
21
+ export declare function readEffectiveEnv(): Record<string, string>;
22
+ /** True when a wizard-managed key is set in the running env (process.env
23
+ * or systemd unit) but NOT in the env file — i.e. the wizard's writes
24
+ * won't be the source of truth at runtime. Used to print a warning at
25
+ * SMTP/Baidu save. */
26
+ export declare function hasProcessEnvOverride(key: string): boolean;
27
+ /** Merge-update: keep existing keys, overwrite the supplied ones, REMOVE
28
+ * any keys whose value in `updates` is explicitly null/undefined. Writes
29
+ * the file with chmod 600. */
30
+ export declare function updateEnvFile(updates: Record<string, string | null | undefined>): void;
31
+ /** Wipe a single key. No-op if missing. */
32
+ export declare function unsetEnvKey(key: string): void;
33
+ /** Remove the env file entirely. Used by `uninstall`. */
34
+ export declare function removeEnvFile(): void;
35
+ //# sourceMappingURL=env-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-file.d.ts","sourceRoot":"","sources":["../../src/cli-ui/env-file.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,QAAQ,QAAyB,CAAA;AAE9C;0EAC0E;AAC1E,wBAAgB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBpD;AAkBD;;;;;iFAKiF;AACjF,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2B3D;AAED;;;;;;;;8EAQ8E;AAC9E,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAezD;AAED;;;uBAGuB;AACvB,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAM1D;AAED;;+BAE+B;AAC/B,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI,CAUtF;AAED,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAQ7C;AAED,yDAAyD;AACzD,wBAAgB,aAAa,IAAI,IAAI,CAEpC"}
@@ -0,0 +1,163 @@
1
+ // cli-ui/env-file.ts — read / write key=value pairs in ~/.im-hub/env.
2
+ //
3
+ // The env file is sourced by the systemd unit (`EnvironmentFile=`) AND by
4
+ // `agim start --bg` via process.env when we re-exec ourselves. It's
5
+ // chmod 600 because it holds SMTP passwords and Baidu Maps AK.
6
+ //
7
+ // Format: simple `KEY=value` per line. No interpolation, no quoting required.
8
+ // Lines starting with # are preserved as comments. Empty lines preserved.
9
+ import { readFileSync, writeFileSync, mkdirSync, chmodSync, unlinkSync, existsSync } from 'node:fs';
10
+ import { dirname, join } from 'node:path';
11
+ import { AGIM_HOME } from '../core/agim-paths.js';
12
+ export const ENV_FILE = join(AGIM_HOME, 'env');
13
+ /** Read existing env as a plain Record. Unknown lines (blank / comment)
14
+ * are dropped from the returned map but PRESERVED on write via merge. */
15
+ export function readEnvFile() {
16
+ if (!existsSync(ENV_FILE))
17
+ return {};
18
+ const result = {};
19
+ try {
20
+ const raw = readFileSync(ENV_FILE, 'utf-8');
21
+ for (const line of raw.split('\n')) {
22
+ const trimmed = line.trim();
23
+ if (!trimmed || trimmed.startsWith('#'))
24
+ continue;
25
+ const eq = trimmed.indexOf('=');
26
+ if (eq <= 0)
27
+ continue;
28
+ const key = trimmed.slice(0, eq).trim();
29
+ const val = trimmed.slice(eq + 1);
30
+ result[key] = val;
31
+ }
32
+ }
33
+ catch { /* return what we have */ }
34
+ return result;
35
+ }
36
+ /** Keys the wizard prefills. `readEffectiveEnv()` checks the env file
37
+ * first, then falls back to `process.env` for these — so SMTP/Baidu set
38
+ * via the systemd unit's `Environment=` lines (the install pattern used
39
+ * before the wizard existed) still appear in the prefill UI. */
40
+ const WIZARD_ENV_KEYS = [
41
+ 'IMHUB_SMTP_HOST',
42
+ 'IMHUB_SMTP_PORT',
43
+ 'IMHUB_SMTP_USER',
44
+ 'IMHUB_SMTP_PASS',
45
+ 'IMHUB_SMTP_FROM',
46
+ 'IMHUB_SMTP_SECURE',
47
+ 'IMHUB_BAIDU_MAP_AK',
48
+ ];
49
+ const SYSTEMD_UNIT_PATH = '/etc/systemd/system/im-hub.service';
50
+ /** Parse `Environment="KEY=value"` and `Environment=KEY=value` lines out
51
+ * of the im-hub systemd unit. Used as a fallback for `readEffectiveEnv()`
52
+ * on machines where the wizard hasn't yet written to ~/.im-hub/env AND
53
+ * the user's interactive shell doesn't export the keys — the unit file
54
+ * is world-readable on standard installs, so this works for `agim
55
+ * config` invoked as the user. Returns {} if the file is missing/unreadable. */
56
+ export function readSystemdUnitEnv() {
57
+ if (!existsSync(SYSTEMD_UNIT_PATH))
58
+ return {};
59
+ const result = {};
60
+ try {
61
+ const raw = readFileSync(SYSTEMD_UNIT_PATH, 'utf-8');
62
+ for (const line of raw.split('\n')) {
63
+ const trimmed = line.trim();
64
+ if (!trimmed.startsWith('Environment'))
65
+ continue;
66
+ // Strip leading `Environment=` (with optional whitespace after =).
67
+ const rhs = trimmed.replace(/^Environment\s*=\s*/, '');
68
+ // Unit lines can be `Environment="K=V"` or `Environment=K=V` or
69
+ // even `Environment="K1=V1" "K2=V2"`. systemd doesn't support
70
+ // multi-line values via continuation that we care about here.
71
+ // Split on whitespace OUTSIDE quotes, then strip the surrounding
72
+ // quotes if present.
73
+ const tokens = rhs.match(/"[^"]*"|\S+/g) ?? [];
74
+ for (const tok of tokens) {
75
+ const unq = tok.startsWith('"') && tok.endsWith('"') ? tok.slice(1, -1) : tok;
76
+ const eq = unq.indexOf('=');
77
+ if (eq <= 0)
78
+ continue;
79
+ const key = unq.slice(0, eq);
80
+ const val = unq.slice(eq + 1);
81
+ if (key)
82
+ result[key] = val;
83
+ }
84
+ }
85
+ }
86
+ catch { /* permissions / parse error — best-effort */ }
87
+ return result;
88
+ }
89
+ /** Read priority:
90
+ * 1. ~/.im-hub/env (canonical, what the wizard writes)
91
+ * 2. process.env (current shell / inherited)
92
+ * 3. systemd unit's Environment= lines (what's actually in effect for
93
+ * the running service when the wizard is invoked from a shell that
94
+ * doesn't export the keys — most common case after a manual install)
95
+ *
96
+ * Writes still go to the env file only — see `updateEnvFile()`. Callers
97
+ * that need to warn about shadowing should use `hasProcessEnvOverride()`. */
98
+ export function readEffectiveEnv() {
99
+ const fromFile = readEnvFile();
100
+ const fromUnit = readSystemdUnitEnv();
101
+ const merged = { ...fromFile };
102
+ for (const k of WIZARD_ENV_KEYS) {
103
+ if (merged[k] !== undefined)
104
+ continue;
105
+ if (typeof process.env[k] === 'string' && process.env[k] !== '') {
106
+ merged[k] = process.env[k];
107
+ continue;
108
+ }
109
+ if (typeof fromUnit[k] === 'string' && fromUnit[k] !== '') {
110
+ merged[k] = fromUnit[k];
111
+ }
112
+ }
113
+ return merged;
114
+ }
115
+ /** True when a wizard-managed key is set in the running env (process.env
116
+ * or systemd unit) but NOT in the env file — i.e. the wizard's writes
117
+ * won't be the source of truth at runtime. Used to print a warning at
118
+ * SMTP/Baidu save. */
119
+ export function hasProcessEnvOverride(key) {
120
+ const file = readEnvFile();
121
+ if (file[key] !== undefined)
122
+ return false;
123
+ if (typeof process.env[key] === 'string' && process.env[key] !== '')
124
+ return true;
125
+ const unit = readSystemdUnitEnv();
126
+ return typeof unit[key] === 'string' && unit[key] !== '';
127
+ }
128
+ /** Merge-update: keep existing keys, overwrite the supplied ones, REMOVE
129
+ * any keys whose value in `updates` is explicitly null/undefined. Writes
130
+ * the file with chmod 600. */
131
+ export function updateEnvFile(updates) {
132
+ const current = readEnvFile();
133
+ for (const [k, v] of Object.entries(updates)) {
134
+ if (v === null || v === undefined)
135
+ delete current[k];
136
+ else
137
+ current[k] = v;
138
+ }
139
+ mkdirSync(dirname(ENV_FILE), { recursive: true });
140
+ const lines = Object.entries(current).map(([k, v]) => `${k}=${v}`);
141
+ writeFileSync(ENV_FILE, lines.join('\n') + (lines.length ? '\n' : ''));
142
+ chmodSync(ENV_FILE, 0o600);
143
+ }
144
+ /** Wipe a single key. No-op if missing. */
145
+ export function unsetEnvKey(key) {
146
+ if (!existsSync(ENV_FILE))
147
+ return;
148
+ const current = readEnvFile();
149
+ if (!(key in current))
150
+ return;
151
+ delete current[key];
152
+ const lines = Object.entries(current).map(([k, v]) => `${k}=${v}`);
153
+ writeFileSync(ENV_FILE, lines.join('\n') + (lines.length ? '\n' : ''));
154
+ chmodSync(ENV_FILE, 0o600);
155
+ }
156
+ /** Remove the env file entirely. Used by `uninstall`. */
157
+ export function removeEnvFile() {
158
+ try {
159
+ unlinkSync(ENV_FILE);
160
+ }
161
+ catch { /* already gone */ }
162
+ }
163
+ //# sourceMappingURL=env-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-file.js","sourceRoot":"","sources":["../../src/cli-ui/env-file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,204 @@
1
+ export type Lang = 'en' | 'zh';
2
+ declare const en: {
3
+ readonly 'lang.pick': "Select language / 选择界面语言";
4
+ readonly 'lang.label.en': "English";
5
+ readonly 'lang.label.zh': "中文";
6
+ readonly 'lang.saved': "Language preference saved to {file}";
7
+ readonly 'menu.title': "Agim · maintenance entry";
8
+ readonly 'menu.subtitle': "What would you like to do?";
9
+ readonly 'menu.config': "Configure (messengers, agents, SMTP, Baidu Maps …)";
10
+ readonly 'menu.status': "Show service status";
11
+ readonly 'menu.start': "Start the service (foreground)";
12
+ readonly 'menu.start_bg': "Start the service (background)";
13
+ readonly 'menu.restart': "Restart the service";
14
+ readonly 'menu.stop': "Stop the service";
15
+ readonly 'menu.uninstall': "Uninstall Agim (keeps workspaces)";
16
+ readonly 'menu.quit': "Quit";
17
+ readonly 'config.title': "Agim · config";
18
+ readonly 'config.subtitle': "Pick a section to edit. Each section has a Back option.";
19
+ readonly 'config.section.messengers': "Messengers (WeChat / Telegram / Feishu / Discord / Email)";
20
+ readonly 'config.section.agents': "AI agents (Claude Code / OpenCode / Codex / Copilot)";
21
+ readonly 'config.section.acp': "Remote ACP agents";
22
+ readonly 'config.section.smtp': "SMTP — email reminder delivery";
23
+ readonly 'config.section.baidu': "Baidu Maps AK — /memo address geocoding";
24
+ readonly 'config.section.done': "Done — save and exit";
25
+ readonly 'config.saved': "Config saved to {file}";
26
+ readonly 'messengers.title': "Messengers";
27
+ readonly 'messengers.subtitle': "Pick a messenger to configure. Each is independent.";
28
+ readonly 'messengers.status.enabled': "enabled";
29
+ readonly 'messengers.status.enabled_no_creds': "enabled (credentials missing)";
30
+ readonly 'messengers.status.disabled': "not configured";
31
+ readonly 'messengers.label.wechat': "WeChat (iLink bot)";
32
+ readonly 'messengers.label.telegram': "Telegram";
33
+ readonly 'messengers.label.feishu': "Feishu / Lark";
34
+ readonly 'messengers.label.dingtalk': "DingTalk (钉钉)";
35
+ readonly 'messengers.label.discord': "Discord";
36
+ readonly 'messengers.label.email': "Email (SMTP push)";
37
+ readonly 'messengers.row': "{label} — {status}";
38
+ readonly 'messengers.action.configure': "Configure";
39
+ readonly 'messengers.action.reconfigure': "Re-configure (replace credentials)";
40
+ readonly 'messengers.action.remove': "Remove from enabled list";
41
+ readonly 'messengers.action.enable_email': "Enable email push (also requires SMTP)";
42
+ readonly 'messengers.action.disable_email': "Disable email push";
43
+ readonly 'messengers.action.back': "← Back";
44
+ readonly 'messengers.removed': "{label} removed from the enabled list.";
45
+ readonly 'messengers.enabled': "{label} configured and enabled.";
46
+ readonly 'messengers.smtp_hint': "Email push relies on the SMTP settings above. Configure SMTP first if you have not.";
47
+ readonly 'wechat.fetching': "Fetching QR code from iLink…";
48
+ readonly 'wechat.scan': "📱 Scan with WeChat — paste the URL into a browser to render the image:";
49
+ readonly 'wechat.waiting': "Waiting for scan + confirm (up to 2 minutes)…";
50
+ readonly 'wechat.logged_in': "✅ Logged in as {user} (bot id: {bot})";
51
+ readonly 'wechat.failed': "❌ Login failed or timed out. You can retry from this menu.";
52
+ readonly 'tg.docs': "To get a bot token:\n 1. Open Telegram and search for @BotFather\n 2. Send /newbot and follow the prompts\n 3. Copy the bot token";
53
+ readonly 'tg.field.token': "Bot token";
54
+ readonly 'tg.field.token_keep': "Bot token (Enter = keep existing {hint})";
55
+ readonly 'tg.field.channel': "Channel id (optional, Enter = default)";
56
+ readonly 'feishu.docs': "To create a Feishu bot:\n 1. https://open.feishu.cn/app → 创建自建应用\n 2. Enable Bot capability\n 3. Subscribe to im.message.receive_v1\n 4. Permissions: im:message, im:message.p2p_msg:readonly, im:message:send_as_bot\n 5. Create + publish a version\n 6. Copy App ID and App Secret";
57
+ readonly 'feishu.field.app_id': "App ID";
58
+ readonly 'feishu.field.app_secret': "App Secret";
59
+ readonly 'feishu.field.app_secret_keep': "App Secret (Enter = keep existing)";
60
+ readonly 'dingtalk.docs': "To create a DingTalk Stream-mode bot:\n 1. https://open.dingtalk.com → create an Enterprise Internal App (1-person company works for personal use)\n 2. App → Add capability → Bot → choose Stream mode → publish\n 3. Copy ClientID (== AppKey) and ClientSecret from the app credentials page";
61
+ readonly 'dingtalk.field.client_id': "ClientID (AppKey)";
62
+ readonly 'dingtalk.field.client_secret': "ClientSecret";
63
+ readonly 'dingtalk.field.client_secret_keep': "ClientSecret (Enter = keep existing)";
64
+ readonly 'discord.docs': "To create a Discord bot:\n 1. https://discord.com/developers/applications → New Application\n 2. Bot tab → Add Bot → enable MESSAGE CONTENT INTENT (privileged)\n 3. Reset Token to grab the bot token\n 4. OAuth2 → URL Generator → invite to your server";
65
+ readonly 'discord.field.token': "Bot token";
66
+ readonly 'discord.field.token_keep': "Bot token (Enter = keep existing)";
67
+ readonly 'discord.field.channel': "Channel id (optional, Enter = default)";
68
+ readonly 'discord.field.guilds': "Allowed guild ids (comma-separated, optional)";
69
+ readonly 'discord.field.channels': "Allowed channel ids (comma-separated, optional)";
70
+ readonly 'agents.title': "AI agents";
71
+ readonly 'agents.subtitle': "Pick an agent to configure. Status comes from probing its CLI.";
72
+ readonly 'agents.status.enabled_installed': "enabled · CLI installed";
73
+ readonly 'agents.status.enabled_missing': "enabled · CLI NOT installed";
74
+ readonly 'agents.status.disabled_installed': "not enabled · CLI installed";
75
+ readonly 'agents.status.disabled_missing': "not enabled · CLI NOT installed";
76
+ readonly 'agents.row': "{label} — {status}";
77
+ readonly 'agents.label.claude-code': "Claude Code";
78
+ readonly 'agents.label.opencode': "OpenCode";
79
+ readonly 'agents.label.codex': "Codex";
80
+ readonly 'agents.label.copilot': "GitHub Copilot CLI";
81
+ readonly 'agents.action.enable': "Add to enabled list";
82
+ readonly 'agents.action.disable': "Remove from enabled list";
83
+ readonly 'agents.action.set_default': "Set as default agent";
84
+ readonly 'agents.action.recheck': "Re-check CLI installation";
85
+ readonly 'agents.action.install_hint': "Show install instructions";
86
+ readonly 'agents.action.back': "← Back";
87
+ readonly 'agents.installed_msg': "✅ {label}: CLI installed and reachable.";
88
+ readonly 'agents.missing_msg': "❌ {label}: CLI not found on PATH.";
89
+ readonly 'agents.auth_hint.opencode': "After install, run: opencode auth login";
90
+ readonly 'agents.auth_hint.codex': "After install, run: codex login";
91
+ readonly 'agents.install_hint.claude-code': "Install: npm install -g @anthropic-ai/claude-code";
92
+ readonly 'agents.install_hint.opencode': "Install: npm i -g opencode-ai@latest (or visit https://github.com/anomalyco/opencode)";
93
+ readonly 'agents.install_hint.codex': "Install: npm install -g @openai/codex";
94
+ readonly 'agents.install_hint.copilot': "Install (any one):\n npm i -g @github/copilot\n gh extension install github/gh-copilot\n brew install copilot-cli (macOS)\n winget install GitHub.Copilot (Windows)\nDetails: https://github.com/features/copilot/cli";
95
+ readonly 'agents.enabled': "Enabled {label}{also_default}.";
96
+ readonly 'agents.also_default': " (also set as default)";
97
+ readonly 'agents.removed': "Removed {label} from enabled list.";
98
+ readonly 'agents.default_set': "Default agent is now {label}.";
99
+ readonly 'agents.default_picker': "Default agent (used when no /prefix)";
100
+ readonly 'agents.set_default_subtitle': "Pick the default agent.";
101
+ readonly 'agents.set_default_action': "Set / change default agent";
102
+ readonly 'acp.title': "Remote ACP agents";
103
+ readonly 'acp.subtitle': "HTTP agents exposed via ACP. Add, edit, or remove.";
104
+ readonly 'acp.action.add': "Add a new agent";
105
+ readonly 'acp.action.edit': "Edit {name}";
106
+ readonly 'acp.action.remove': "Remove {name}";
107
+ readonly 'acp.action.back': "← Back";
108
+ readonly 'acp.field.name': "Agent name (used as /prefix)";
109
+ readonly 'acp.field.endpoint': "Endpoint URL (e.g. https://api.example.com)";
110
+ readonly 'acp.field.auth_type': "Auth type";
111
+ readonly 'acp.field.auth_token': "Bearer token";
112
+ readonly 'acp.auth.none': "None (public endpoint)";
113
+ readonly 'acp.auth.bearer': "Bearer token";
114
+ readonly 'acp.added': "Added agent: {name}";
115
+ readonly 'acp.removed': "Removed agent: {name}";
116
+ readonly 'smtp.title': "SMTP (for /remind email delivery)";
117
+ readonly 'smtp.subtitle': "These end up in {envFile} (chmod 600). Skip if email is not used.";
118
+ readonly 'smtp.current_set': "Currently configured: {user} via {host}:{port}";
119
+ readonly 'smtp.current_unset': "Currently configured: (none)";
120
+ readonly 'smtp.action.edit': "Edit / re-configure SMTP";
121
+ readonly 'smtp.action.disable': "Disable SMTP (clear all keys)";
122
+ readonly 'smtp.action.back': "← Back";
123
+ readonly 'smtp.preset': "Pick a preset or Custom";
124
+ readonly 'smtp.preset.gmail': "Gmail (smtp.gmail.com:465, requires App Password)";
125
+ readonly 'smtp.preset.outlook': "Outlook (smtp.office365.com:587)";
126
+ readonly 'smtp.preset.qq': "QQ Mail (smtp.qq.com:465, requires authorization code)";
127
+ readonly 'smtp.preset.163': "163 Mail (smtp.163.com:465, requires authorization code)";
128
+ readonly 'smtp.preset.custom': "Custom SMTP server";
129
+ readonly 'smtp.preset.skip': "Skip — disable SMTP";
130
+ readonly 'smtp.field.host': "SMTP host";
131
+ readonly 'smtp.field.port': "SMTP port";
132
+ readonly 'smtp.field.user': "SMTP user (login email)";
133
+ readonly 'smtp.field.pass': "SMTP password / app password (hidden)";
134
+ readonly 'smtp.field.pass_keep': "SMTP password (hidden, Enter = keep existing)";
135
+ readonly 'smtp.field.from': "From address (Enter = same as user)";
136
+ readonly 'smtp.field.secure': "TLS mode";
137
+ readonly 'smtp.secure.auto': "auto (recommended)";
138
+ readonly 'smtp.secure.true': "true (SSL on connect, e.g. port 465)";
139
+ readonly 'smtp.secure.false': "false (STARTTLS, e.g. port 587)";
140
+ readonly 'smtp.saved': "SMTP credentials saved to {file} (chmod 600)";
141
+ readonly 'smtp.cleared': "SMTP disabled — cleared {file}";
142
+ readonly 'env.shadowed_warn': "⚠️ {key} is also set by the running environment (systemd unit / shell export). Saving to {file} alone will NOT change the active value — update the unit file or `unset` the shell export first.";
143
+ readonly 'baidu.title': "Baidu Maps AK (for /memo address geocoding)";
144
+ readonly 'baidu.subtitle': "Optional — without it, /memo still works with raw coords + browser GPS.";
145
+ readonly 'baidu.howto': "Get a free AK: https://lbsyun.baidu.com → Console → 应用管理 → 创建应用 → 服务端 API";
146
+ readonly 'baidu.action.set': "Set / update AK";
147
+ readonly 'baidu.action.clear': "Clear AK (disable geocoding)";
148
+ readonly 'baidu.action.back': "← Back";
149
+ readonly 'baidu.input': "Paste AK (32-char string starting with non-digit, leave blank to skip)";
150
+ readonly 'baidu.saved': "Baidu Maps AK saved to {file}";
151
+ readonly 'baidu.cleared': "Baidu Maps AK cleared";
152
+ readonly 'svc.status.title': "Agim · status";
153
+ readonly 'svc.status.systemd_active': "systemd unit `im-hub.service` is active (pid {pid})";
154
+ readonly 'svc.status.systemd_inactive': "systemd unit `im-hub.service` exists but is inactive";
155
+ readonly 'svc.status.bg_running': "background daemon running (pid {pid}, log: {log})";
156
+ readonly 'svc.status.fg_running': "foreground process running (pid {pid})";
157
+ readonly 'svc.status.not_running': "no running Agim instance found";
158
+ readonly 'svc.status.web': "web console: http://{bind}:{port}";
159
+ readonly 'svc.status.uptime': "uptime: {duration}";
160
+ readonly 'svc.start.starting_fg': "Starting in foreground — Ctrl-C to stop.";
161
+ readonly 'svc.start.starting_bg': "Starting in background…";
162
+ readonly 'svc.start.bg_ready': "✅ Background daemon started (pid {pid}, log: {log})";
163
+ readonly 'svc.start.bg_hint': "Tip: use `agim stop` to terminate; `agim status` to inspect.";
164
+ readonly 'svc.start.systemd_managed': "A systemd unit already manages im-hub. Use `systemctl start im-hub.service`.";
165
+ readonly 'svc.start.already_running': "Already running (pid {pid}). Use `agim restart` instead.";
166
+ readonly 'svc.stop.stopping_systemd': "Stopping systemd unit `im-hub.service`…";
167
+ readonly 'svc.stop.stopping_bg': "Stopping background daemon (pid {pid})…";
168
+ readonly 'svc.stop.not_running': "Nothing to stop — Agim is not running.";
169
+ readonly 'svc.stop.stopped': "✅ Stopped.";
170
+ readonly 'svc.restart.systemd': "Restarting via `systemctl restart im-hub.service`…";
171
+ readonly 'svc.restart.bg': "Restarting background daemon…";
172
+ readonly 'svc.restart.fg_warning': "A foreground process is running; cannot restart from another shell. Stop it (Ctrl-C) and run `agim start --bg`.";
173
+ readonly 'svc.restart.done': "✅ Restarted.";
174
+ readonly 'svc.uninstall.confirm': "Uninstall Agim? This stops the service, removes the npm install + {config} + systemd unit. Workspaces under {workspaces} are KEPT.";
175
+ readonly 'svc.uninstall.stopping': "Stopping any running instance…";
176
+ readonly 'svc.uninstall.removing_npm': "Removing global npm package `agim-cli`…";
177
+ readonly 'svc.uninstall.removing_unit': "Removing systemd unit…";
178
+ readonly 'svc.uninstall.removing_config': "Removing {config} + env…";
179
+ readonly 'svc.uninstall.workspaces_kept': "Workspaces kept at {workspaces} (your memos / sessions / agent data).";
180
+ readonly 'svc.uninstall.done': "✅ Uninstalled. Workspaces preserved.";
181
+ readonly 'svc.uninstall.cancelled': "Cancelled.";
182
+ readonly back: "← Back";
183
+ readonly cancel: "Cancel";
184
+ readonly confirm: "Confirm";
185
+ readonly yes: "Yes";
186
+ readonly no: "No";
187
+ readonly skip: "Skip";
188
+ readonly press_enter_for_default: "(Enter = accept default)";
189
+ readonly press_esc_to_skip: "(Esc = skip)";
190
+ readonly 'error.prefix': "❌ Error: {message}";
191
+ readonly 'warning.prefix': "⚠️ {message}";
192
+ readonly 'info.prefix': "ℹ {message}";
193
+ readonly 'ok.prefix': "✓ {message}";
194
+ };
195
+ export type Key = keyof typeof en;
196
+ /** Translate. If `key` is missing in `lang`, falls back to en, then to the key itself. */
197
+ export declare function t(lang: Lang, key: Key, vars?: Record<string, string | number>): string;
198
+ /** Read persisted preference; returns null when not set. */
199
+ export declare function readSavedLang(): Lang | null;
200
+ /** Persist to ~/.im-hub/cli-lang. Best-effort — failures only logged. */
201
+ export declare function saveLang(lang: Lang): void;
202
+ export declare const LANG_PREF_FILE: string;
203
+ export {};
204
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/cli-ui/i18n.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAI9B,QAAA,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8NE,CAAA;AAEV,MAAM,MAAM,GAAG,GAAG,MAAM,OAAO,EAAE,CAAA;AAqOjC,0FAA0F;AAC1F,wBAAgB,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,GAAG,MAAM,CAM1F;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,IAAI,IAAI,GAAG,IAAI,CAM3C;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAOzC;AAED,eAAO,MAAM,cAAc,QAAY,CAAA"}