@xopcai/xopcbot 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (535) hide show
  1. package/README.md +132 -0
  2. package/README.zh-CN.md +130 -0
  3. package/dist/__tests__/core.test.d.ts +1 -0
  4. package/dist/__tests__/core.test.js +72 -0
  5. package/dist/__tests__/core.test.js.map +1 -0
  6. package/dist/agent/fallback/__tests__/index.test.d.ts +1 -0
  7. package/dist/agent/fallback/__tests__/index.test.js +111 -0
  8. package/dist/agent/fallback/__tests__/index.test.js.map +1 -0
  9. package/dist/agent/fallback/candidates.d.ts +23 -0
  10. package/dist/agent/fallback/candidates.js +62 -0
  11. package/dist/agent/fallback/candidates.js.map +1 -0
  12. package/dist/agent/fallback/error.d.ts +22 -0
  13. package/dist/agent/fallback/error.js +27 -0
  14. package/dist/agent/fallback/error.js.map +1 -0
  15. package/dist/agent/fallback/index.d.ts +6 -0
  16. package/dist/agent/fallback/index.js +5 -0
  17. package/dist/agent/fallback/index.js.map +1 -0
  18. package/dist/agent/fallback/reason.d.ts +7 -0
  19. package/dist/agent/fallback/reason.js +78 -0
  20. package/dist/agent/fallback/reason.js.map +1 -0
  21. package/dist/agent/fallback/runner.d.ts +22 -0
  22. package/dist/agent/fallback/runner.js +34 -0
  23. package/dist/agent/fallback/runner.js.map +1 -0
  24. package/dist/agent/helpers.d.ts +38 -0
  25. package/dist/agent/helpers.js +122 -0
  26. package/dist/agent/helpers.js.map +1 -0
  27. package/dist/agent/index.d.ts +7 -0
  28. package/dist/agent/index.js +7 -0
  29. package/dist/agent/index.js.map +1 -0
  30. package/dist/agent/memory/compaction.d.ts +63 -0
  31. package/dist/agent/memory/compaction.js +233 -0
  32. package/dist/agent/memory/compaction.js.map +1 -0
  33. package/dist/agent/memory/window.d.ts +29 -0
  34. package/dist/agent/memory/window.js +64 -0
  35. package/dist/agent/memory/window.js.map +1 -0
  36. package/dist/agent/model-manager.d.ts +80 -0
  37. package/dist/agent/model-manager.js +213 -0
  38. package/dist/agent/model-manager.js.map +1 -0
  39. package/dist/agent/prompt/heartbeat.d.ts +97 -0
  40. package/dist/agent/prompt/heartbeat.js +313 -0
  41. package/dist/agent/prompt/heartbeat.js.map +1 -0
  42. package/dist/agent/prompt/index.d.ts +65 -0
  43. package/dist/agent/prompt/index.js +215 -0
  44. package/dist/agent/prompt/index.js.map +1 -0
  45. package/dist/agent/prompt/memory/index.d.ts +37 -0
  46. package/dist/agent/prompt/memory/index.js +241 -0
  47. package/dist/agent/prompt/memory/index.js.map +1 -0
  48. package/dist/agent/prompt/modes.d.ts +44 -0
  49. package/dist/agent/prompt/modes.js +167 -0
  50. package/dist/agent/prompt/modes.js.map +1 -0
  51. package/dist/agent/prompt/safety.d.ts +88 -0
  52. package/dist/agent/prompt/safety.js +290 -0
  53. package/dist/agent/prompt/safety.js.map +1 -0
  54. package/dist/agent/service.d.ts +91 -0
  55. package/dist/agent/service.js +641 -0
  56. package/dist/agent/service.js.map +1 -0
  57. package/dist/agent/session-tracker.d.ts +73 -0
  58. package/dist/agent/session-tracker.js +137 -0
  59. package/dist/agent/session-tracker.js.map +1 -0
  60. package/dist/agent/skills/__tests__/test-framework.test.d.ts +4 -0
  61. package/dist/agent/skills/__tests__/test-framework.test.js +343 -0
  62. package/dist/agent/skills/__tests__/test-framework.test.js.map +1 -0
  63. package/dist/agent/skills/config.d.ts +58 -0
  64. package/dist/agent/skills/config.js +212 -0
  65. package/dist/agent/skills/config.js.map +1 -0
  66. package/dist/agent/skills/index.d.ts +25 -0
  67. package/dist/agent/skills/index.js +349 -0
  68. package/dist/agent/skills/index.js.map +1 -0
  69. package/dist/agent/skills/installer.d.ts +38 -0
  70. package/dist/agent/skills/installer.js +352 -0
  71. package/dist/agent/skills/installer.js.map +1 -0
  72. package/dist/agent/skills/scanner.d.ts +32 -0
  73. package/dist/agent/skills/scanner.js +265 -0
  74. package/dist/agent/skills/scanner.js.map +1 -0
  75. package/dist/agent/skills/test-framework.d.ts +107 -0
  76. package/dist/agent/skills/test-framework.js +607 -0
  77. package/dist/agent/skills/test-framework.js.map +1 -0
  78. package/dist/agent/skills/types.d.ts +181 -0
  79. package/dist/agent/skills/types.js +7 -0
  80. package/dist/agent/skills/types.js.map +1 -0
  81. package/dist/agent/skills/watcher.d.ts +37 -0
  82. package/dist/agent/skills/watcher.js +124 -0
  83. package/dist/agent/skills/watcher.js.map +1 -0
  84. package/dist/agent/tools/communication.d.ts +18 -0
  85. package/dist/agent/tools/communication.js +56 -0
  86. package/dist/agent/tools/communication.js.map +1 -0
  87. package/dist/agent/tools/edit-diff.d.ts +21 -0
  88. package/dist/agent/tools/edit-diff.js +69 -0
  89. package/dist/agent/tools/edit-diff.js.map +1 -0
  90. package/dist/agent/tools/edit.d.ts +13 -0
  91. package/dist/agent/tools/edit.js +65 -0
  92. package/dist/agent/tools/edit.js.map +1 -0
  93. package/dist/agent/tools/find.d.ts +24 -0
  94. package/dist/agent/tools/find.js +99 -0
  95. package/dist/agent/tools/find.js.map +1 -0
  96. package/dist/agent/tools/grep.d.ts +33 -0
  97. package/dist/agent/tools/grep.js +183 -0
  98. package/dist/agent/tools/grep.js.map +1 -0
  99. package/dist/agent/tools/index.d.ts +13 -0
  100. package/dist/agent/tools/index.js +18 -0
  101. package/dist/agent/tools/index.js.map +1 -0
  102. package/dist/agent/tools/list-dir.d.ts +6 -0
  103. package/dist/agent/tools/list-dir.js +37 -0
  104. package/dist/agent/tools/list-dir.js.map +1 -0
  105. package/dist/agent/tools/memory-tool.d.ts +14 -0
  106. package/dist/agent/tools/memory-tool.js +81 -0
  107. package/dist/agent/tools/memory-tool.js.map +1 -0
  108. package/dist/agent/tools/path-utils.d.ts +4 -0
  109. package/dist/agent/tools/path-utils.js +13 -0
  110. package/dist/agent/tools/path-utils.js.map +1 -0
  111. package/dist/agent/tools/read.d.ts +7 -0
  112. package/dist/agent/tools/read.js +47 -0
  113. package/dist/agent/tools/read.js.map +1 -0
  114. package/dist/agent/tools/send-media.d.ts +18 -0
  115. package/dist/agent/tools/send-media.js +104 -0
  116. package/dist/agent/tools/send-media.js.map +1 -0
  117. package/dist/agent/tools/shell.d.ts +13 -0
  118. package/dist/agent/tools/shell.js +114 -0
  119. package/dist/agent/tools/shell.js.map +1 -0
  120. package/dist/agent/tools/truncate.d.ts +36 -0
  121. package/dist/agent/tools/truncate.js +98 -0
  122. package/dist/agent/tools/truncate.js.map +1 -0
  123. package/dist/agent/tools/web.d.ts +14 -0
  124. package/dist/agent/tools/web.js +109 -0
  125. package/dist/agent/tools/web.js.map +1 -0
  126. package/dist/agent/tools/write.d.ts +7 -0
  127. package/dist/agent/tools/write.js +35 -0
  128. package/dist/agent/tools/write.js.map +1 -0
  129. package/dist/agent/types.d.ts +8 -0
  130. package/dist/agent/types.js +2 -0
  131. package/dist/agent/types.js.map +1 -0
  132. package/dist/agent/typing.d.ts +9 -0
  133. package/dist/agent/typing.js +32 -0
  134. package/dist/agent/typing.js.map +1 -0
  135. package/dist/auth/index.d.ts +12 -0
  136. package/dist/auth/index.js +14 -0
  137. package/dist/auth/index.js.map +1 -0
  138. package/dist/auth/oauth/anthropic.d.ts +7 -0
  139. package/dist/auth/oauth/anthropic.js +89 -0
  140. package/dist/auth/oauth/anthropic.js.map +1 -0
  141. package/dist/auth/oauth/github-copilot.d.ts +8 -0
  142. package/dist/auth/oauth/github-copilot.js +35 -0
  143. package/dist/auth/oauth/github-copilot.js.map +1 -0
  144. package/dist/auth/oauth/google-antigravity.d.ts +7 -0
  145. package/dist/auth/oauth/google-antigravity.js +27 -0
  146. package/dist/auth/oauth/google-antigravity.js.map +1 -0
  147. package/dist/auth/oauth/google-gemini-cli.d.ts +7 -0
  148. package/dist/auth/oauth/google-gemini-cli.js +28 -0
  149. package/dist/auth/oauth/google-gemini-cli.js.map +1 -0
  150. package/dist/auth/oauth/index.d.ts +14 -0
  151. package/dist/auth/oauth/index.js +15 -0
  152. package/dist/auth/oauth/index.js.map +1 -0
  153. package/dist/auth/oauth/kimi.d.ts +8 -0
  154. package/dist/auth/oauth/kimi.js +104 -0
  155. package/dist/auth/oauth/kimi.js.map +1 -0
  156. package/dist/auth/oauth/minimax.d.ts +8 -0
  157. package/dist/auth/oauth/minimax.js +109 -0
  158. package/dist/auth/oauth/minimax.js.map +1 -0
  159. package/dist/auth/oauth/openai-codex.d.ts +7 -0
  160. package/dist/auth/oauth/openai-codex.js +33 -0
  161. package/dist/auth/oauth/openai-codex.js.map +1 -0
  162. package/dist/auth/oauth/pkce.d.ts +8 -0
  163. package/dist/auth/oauth/pkce.js +22 -0
  164. package/dist/auth/oauth/pkce.js.map +1 -0
  165. package/dist/auth/oauth/qwen.d.ts +7 -0
  166. package/dist/auth/oauth/qwen.js +114 -0
  167. package/dist/auth/oauth/qwen.js.map +1 -0
  168. package/dist/auth/oauth/types.d.ts +46 -0
  169. package/dist/auth/oauth/types.js +7 -0
  170. package/dist/auth/oauth/types.js.map +1 -0
  171. package/dist/auth/profiles/index.d.ts +16 -0
  172. package/dist/auth/profiles/index.js +17 -0
  173. package/dist/auth/profiles/index.js.map +1 -0
  174. package/dist/auth/profiles/oauth.d.ts +12 -0
  175. package/dist/auth/profiles/oauth.js +106 -0
  176. package/dist/auth/profiles/oauth.js.map +1 -0
  177. package/dist/auth/profiles/order.d.ts +19 -0
  178. package/dist/auth/profiles/order.js +63 -0
  179. package/dist/auth/profiles/order.js.map +1 -0
  180. package/dist/auth/profiles/profiles.d.ts +27 -0
  181. package/dist/auth/profiles/profiles.js +110 -0
  182. package/dist/auth/profiles/profiles.js.map +1 -0
  183. package/dist/auth/profiles/store.d.ts +17 -0
  184. package/dist/auth/profiles/store.js +234 -0
  185. package/dist/auth/profiles/store.js.map +1 -0
  186. package/dist/auth/profiles/types.d.ts +64 -0
  187. package/dist/auth/profiles/types.js +7 -0
  188. package/dist/auth/profiles/types.js.map +1 -0
  189. package/dist/auth/profiles/usage.d.ts +24 -0
  190. package/dist/auth/profiles/usage.js +99 -0
  191. package/dist/auth/profiles/usage.js.map +1 -0
  192. package/dist/auth/storage.d.ts +99 -0
  193. package/dist/auth/storage.js +315 -0
  194. package/dist/auth/storage.js.map +1 -0
  195. package/dist/bus/index.d.ts +3 -0
  196. package/dist/bus/index.js +2 -0
  197. package/dist/bus/index.js.map +1 -0
  198. package/dist/bus/queue.d.ts +20 -0
  199. package/dist/bus/queue.js +57 -0
  200. package/dist/bus/queue.js.map +1 -0
  201. package/dist/channels/__tests__/access-control.test.d.ts +4 -0
  202. package/dist/channels/__tests__/access-control.test.js +310 -0
  203. package/dist/channels/__tests__/access-control.test.js.map +1 -0
  204. package/dist/channels/__tests__/draft-stream.test.d.ts +4 -0
  205. package/dist/channels/__tests__/draft-stream.test.js +243 -0
  206. package/dist/channels/__tests__/draft-stream.test.js.map +1 -0
  207. package/dist/channels/__tests__/format.test.d.ts +4 -0
  208. package/dist/channels/__tests__/format.test.js +146 -0
  209. package/dist/channels/__tests__/format.test.js.map +1 -0
  210. package/dist/channels/__tests__/manager.test.d.ts +6 -0
  211. package/dist/channels/__tests__/manager.test.js +34 -0
  212. package/dist/channels/__tests__/manager.test.js.map +1 -0
  213. package/dist/channels/__tests__/typing-controller.test.d.ts +4 -0
  214. package/dist/channels/__tests__/typing-controller.test.js +109 -0
  215. package/dist/channels/__tests__/typing-controller.test.js.map +1 -0
  216. package/dist/channels/__tests__/update-offset-store.test.d.ts +7 -0
  217. package/dist/channels/__tests__/update-offset-store.test.js +35 -0
  218. package/dist/channels/__tests__/update-offset-store.test.js.map +1 -0
  219. package/dist/channels/access-control.d.ts +93 -0
  220. package/dist/channels/access-control.js +201 -0
  221. package/dist/channels/access-control.js.map +1 -0
  222. package/dist/channels/draft-stream.d.ts +55 -0
  223. package/dist/channels/draft-stream.js +211 -0
  224. package/dist/channels/draft-stream.js.map +1 -0
  225. package/dist/channels/format.d.ts +38 -0
  226. package/dist/channels/format.js +187 -0
  227. package/dist/channels/format.js.map +1 -0
  228. package/dist/channels/index.d.ts +22 -0
  229. package/dist/channels/index.js +23 -0
  230. package/dist/channels/index.js.map +1 -0
  231. package/dist/channels/manager.d.ts +30 -0
  232. package/dist/channels/manager.js +125 -0
  233. package/dist/channels/manager.js.map +1 -0
  234. package/dist/channels/telegram/__tests__/index.test.d.ts +4 -0
  235. package/dist/channels/telegram/__tests__/index.test.js +153 -0
  236. package/dist/channels/telegram/__tests__/index.test.js.map +1 -0
  237. package/dist/channels/telegram/__tests__/inline-keyboards.test.d.ts +4 -0
  238. package/dist/channels/telegram/__tests__/inline-keyboards.test.js +99 -0
  239. package/dist/channels/telegram/__tests__/inline-keyboards.test.js.map +1 -0
  240. package/dist/channels/telegram/client.d.ts +48 -0
  241. package/dist/channels/telegram/client.js +177 -0
  242. package/dist/channels/telegram/client.js.map +1 -0
  243. package/dist/channels/telegram/command-handler.d.ts +28 -0
  244. package/dist/channels/telegram/command-handler.js +209 -0
  245. package/dist/channels/telegram/command-handler.js.map +1 -0
  246. package/dist/channels/telegram/index.d.ts +8 -0
  247. package/dist/channels/telegram/index.js +9 -0
  248. package/dist/channels/telegram/index.js.map +1 -0
  249. package/dist/channels/telegram/inline-keyboards.d.ts +20 -0
  250. package/dist/channels/telegram/inline-keyboards.js +38 -0
  251. package/dist/channels/telegram/inline-keyboards.js.map +1 -0
  252. package/dist/channels/telegram/plugin.d.ts +33 -0
  253. package/dist/channels/telegram/plugin.js +640 -0
  254. package/dist/channels/telegram/plugin.js.map +1 -0
  255. package/dist/channels/telegram/webhook.d.ts +31 -0
  256. package/dist/channels/telegram/webhook.js +129 -0
  257. package/dist/channels/telegram/webhook.js.map +1 -0
  258. package/dist/channels/types.d.ts +186 -0
  259. package/dist/channels/types.js +7 -0
  260. package/dist/channels/types.js.map +1 -0
  261. package/dist/channels/typing-controller.d.ts +47 -0
  262. package/dist/channels/typing-controller.js +117 -0
  263. package/dist/channels/typing-controller.js.map +1 -0
  264. package/dist/channels/update-offset-store.d.ts +37 -0
  265. package/dist/channels/update-offset-store.js +165 -0
  266. package/dist/channels/update-offset-store.js.map +1 -0
  267. package/dist/channels/whatsapp/index.d.ts +4 -0
  268. package/dist/channels/whatsapp/index.js +5 -0
  269. package/dist/channels/whatsapp/index.js.map +1 -0
  270. package/dist/channels/whatsapp/plugin.d.ts +27 -0
  271. package/dist/channels/whatsapp/plugin.js +66 -0
  272. package/dist/channels/whatsapp/plugin.js.map +1 -0
  273. package/dist/cli/__tests__/registry.test.d.ts +1 -0
  274. package/dist/cli/__tests__/registry.test.js +366 -0
  275. package/dist/cli/__tests__/registry.test.js.map +1 -0
  276. package/dist/cli/commands/agent.d.ts +1 -0
  277. package/dist/cli/commands/agent.js +216 -0
  278. package/dist/cli/commands/agent.js.map +1 -0
  279. package/dist/cli/commands/auth.d.ts +6 -0
  280. package/dist/cli/commands/auth.js +440 -0
  281. package/dist/cli/commands/auth.js.map +1 -0
  282. package/dist/cli/commands/config.d.ts +1 -0
  283. package/dist/cli/commands/config.js +135 -0
  284. package/dist/cli/commands/config.js.map +1 -0
  285. package/dist/cli/commands/configure.d.ts +1 -0
  286. package/dist/cli/commands/configure.js +173 -0
  287. package/dist/cli/commands/configure.js.map +1 -0
  288. package/dist/cli/commands/cron.d.ts +1 -0
  289. package/dist/cli/commands/cron.js +81 -0
  290. package/dist/cli/commands/cron.js.map +1 -0
  291. package/dist/cli/commands/gateway.d.ts +1 -0
  292. package/dist/cli/commands/gateway.js +91 -0
  293. package/dist/cli/commands/gateway.js.map +1 -0
  294. package/dist/cli/commands/index.d.ts +0 -0
  295. package/dist/cli/commands/index.js +2 -0
  296. package/dist/cli/commands/index.js.map +1 -0
  297. package/dist/cli/commands/models.d.ts +1 -0
  298. package/dist/cli/commands/models.js +79 -0
  299. package/dist/cli/commands/models.js.map +1 -0
  300. package/dist/cli/commands/onboard.d.ts +1 -0
  301. package/dist/cli/commands/onboard.js +621 -0
  302. package/dist/cli/commands/onboard.js.map +1 -0
  303. package/dist/cli/commands/plugin.d.ts +1 -0
  304. package/dist/cli/commands/plugin.js +341 -0
  305. package/dist/cli/commands/plugin.js.map +1 -0
  306. package/dist/cli/commands/session.d.ts +1 -0
  307. package/dist/cli/commands/session.js +450 -0
  308. package/dist/cli/commands/session.js.map +1 -0
  309. package/dist/cli/commands/skills-test.d.ts +9 -0
  310. package/dist/cli/commands/skills-test.js +195 -0
  311. package/dist/cli/commands/skills-test.js.map +1 -0
  312. package/dist/cli/commands/skills.d.ts +9 -0
  313. package/dist/cli/commands/skills.js +385 -0
  314. package/dist/cli/commands/skills.js.map +1 -0
  315. package/dist/cli/index.d.ts +19 -0
  316. package/dist/cli/index.js +40 -0
  317. package/dist/cli/index.js.map +1 -0
  318. package/dist/cli/registry.d.ts +43 -0
  319. package/dist/cli/registry.js +82 -0
  320. package/dist/cli/registry.js.map +1 -0
  321. package/dist/cli/templates.d.ts +19 -0
  322. package/dist/cli/templates.js +191 -0
  323. package/dist/cli/templates.js.map +1 -0
  324. package/dist/cli/utils/colors.d.ts +13 -0
  325. package/dist/cli/utils/colors.js +16 -0
  326. package/dist/cli/utils/colors.js.map +1 -0
  327. package/dist/config/__tests__/diff.test.d.ts +1 -0
  328. package/dist/config/__tests__/diff.test.js +192 -0
  329. package/dist/config/__tests__/diff.test.js.map +1 -0
  330. package/dist/config/__tests__/loader.test.d.ts +1 -0
  331. package/dist/config/__tests__/loader.test.js +356 -0
  332. package/dist/config/__tests__/loader.test.js.map +1 -0
  333. package/dist/config/__tests__/paths.test.d.ts +1 -0
  334. package/dist/config/__tests__/paths.test.js +192 -0
  335. package/dist/config/__tests__/paths.test.js.map +1 -0
  336. package/dist/config/__tests__/reload.test.d.ts +1 -0
  337. package/dist/config/__tests__/reload.test.js +374 -0
  338. package/dist/config/__tests__/reload.test.js.map +1 -0
  339. package/dist/config/__tests__/rules.test.d.ts +1 -0
  340. package/dist/config/__tests__/rules.test.js +204 -0
  341. package/dist/config/__tests__/rules.test.js.map +1 -0
  342. package/dist/config/__tests__/schema.test.d.ts +1 -0
  343. package/dist/config/__tests__/schema.test.js +672 -0
  344. package/dist/config/__tests__/schema.test.js.map +1 -0
  345. package/dist/config/diff.d.ts +7 -0
  346. package/dist/config/diff.js +46 -0
  347. package/dist/config/diff.js.map +1 -0
  348. package/dist/config/index.d.ts +6 -0
  349. package/dist/config/index.js +7 -0
  350. package/dist/config/index.js.map +1 -0
  351. package/dist/config/loader.d.ts +5 -0
  352. package/dist/config/loader.js +81 -0
  353. package/dist/config/loader.js.map +1 -0
  354. package/dist/config/paths.d.ts +35 -0
  355. package/dist/config/paths.js +79 -0
  356. package/dist/config/paths.js.map +1 -0
  357. package/dist/config/reload.d.ts +78 -0
  358. package/dist/config/reload.js +190 -0
  359. package/dist/config/reload.js.map +1 -0
  360. package/dist/config/rules.d.ts +42 -0
  361. package/dist/config/rules.js +114 -0
  362. package/dist/config/rules.js.map +1 -0
  363. package/dist/config/schema.d.ts +1340 -0
  364. package/dist/config/schema.js +611 -0
  365. package/dist/config/schema.js.map +1 -0
  366. package/dist/cron/executor.d.ts +54 -0
  367. package/dist/cron/executor.js +364 -0
  368. package/dist/cron/executor.js.map +1 -0
  369. package/dist/cron/index.d.ts +5 -0
  370. package/dist/cron/index.js +6 -0
  371. package/dist/cron/index.js.map +1 -0
  372. package/dist/cron/persistence.d.ts +61 -0
  373. package/dist/cron/persistence.js +188 -0
  374. package/dist/cron/persistence.js.map +1 -0
  375. package/dist/cron/service.d.ts +94 -0
  376. package/dist/cron/service.js +382 -0
  377. package/dist/cron/service.js.map +1 -0
  378. package/dist/cron/types.d.ts +119 -0
  379. package/dist/cron/types.js +3 -0
  380. package/dist/cron/types.js.map +1 -0
  381. package/dist/cron/validation.d.ts +144 -0
  382. package/dist/cron/validation.js +113 -0
  383. package/dist/cron/validation.js.map +1 -0
  384. package/dist/errors/__tests__/index.test.d.ts +1 -0
  385. package/dist/errors/__tests__/index.test.js +301 -0
  386. package/dist/errors/__tests__/index.test.js.map +1 -0
  387. package/dist/errors/index.d.ts +114 -0
  388. package/dist/errors/index.js +278 -0
  389. package/dist/errors/index.js.map +1 -0
  390. package/dist/gateway/hono/app.d.ts +7 -0
  391. package/dist/gateway/hono/app.js +668 -0
  392. package/dist/gateway/hono/app.js.map +1 -0
  393. package/dist/gateway/hono/index.d.ts +2 -0
  394. package/dist/gateway/hono/index.js +3 -0
  395. package/dist/gateway/hono/index.js.map +1 -0
  396. package/dist/gateway/hono/middleware/auth.d.ts +18 -0
  397. package/dist/gateway/hono/middleware/auth.js +79 -0
  398. package/dist/gateway/hono/middleware/auth.js.map +1 -0
  399. package/dist/gateway/hono/middleware/logger.d.ts +1 -0
  400. package/dist/gateway/hono/middleware/logger.js +17 -0
  401. package/dist/gateway/hono/middleware/logger.js.map +1 -0
  402. package/dist/gateway/hono/sse.d.ts +55 -0
  403. package/dist/gateway/hono/sse.js +224 -0
  404. package/dist/gateway/hono/sse.js.map +1 -0
  405. package/dist/gateway/index.d.ts +4 -0
  406. package/dist/gateway/index.js +5 -0
  407. package/dist/gateway/index.js.map +1 -0
  408. package/dist/gateway/protocol.d.ts +28 -0
  409. package/dist/gateway/protocol.js +14 -0
  410. package/dist/gateway/protocol.js.map +1 -0
  411. package/dist/gateway/server.d.ts +19 -0
  412. package/dist/gateway/server.js +64 -0
  413. package/dist/gateway/server.js.map +1 -0
  414. package/dist/gateway/service.d.ts +265 -0
  415. package/dist/gateway/service.js +621 -0
  416. package/dist/gateway/service.js.map +1 -0
  417. package/dist/gateway/static/root/assets/main-CfIxL-cL.js +2105 -0
  418. package/dist/gateway/static/root/assets/main-CfIxL-cL.js.map +1 -0
  419. package/dist/gateway/static/root/assets/main-DndcTCgX.css +1 -0
  420. package/dist/gateway/static/root/index.html +116 -0
  421. package/dist/heartbeat/index.d.ts +1 -0
  422. package/dist/heartbeat/index.js +2 -0
  423. package/dist/heartbeat/index.js.map +1 -0
  424. package/dist/heartbeat/service.d.ts +19 -0
  425. package/dist/heartbeat/service.js +61 -0
  426. package/dist/heartbeat/service.js.map +1 -0
  427. package/dist/plugin-sdk/index.d.ts +21 -0
  428. package/dist/plugin-sdk/index.js +12 -0
  429. package/dist/plugin-sdk/index.js.map +1 -0
  430. package/dist/plugins/__tests__/api.test.d.ts +1 -0
  431. package/dist/plugins/__tests__/api.test.js +164 -0
  432. package/dist/plugins/__tests__/api.test.js.map +1 -0
  433. package/dist/plugins/__tests__/hooks.test.d.ts +1 -0
  434. package/dist/plugins/__tests__/hooks.test.js +159 -0
  435. package/dist/plugins/__tests__/hooks.test.js.map +1 -0
  436. package/dist/plugins/__tests__/loader.test.d.ts +1 -0
  437. package/dist/plugins/__tests__/loader.test.js +120 -0
  438. package/dist/plugins/__tests__/loader.test.js.map +1 -0
  439. package/dist/plugins/api.d.ts +41 -0
  440. package/dist/plugins/api.js +131 -0
  441. package/dist/plugins/api.js.map +1 -0
  442. package/dist/plugins/hooks.d.ts +153 -0
  443. package/dist/plugins/hooks.js +172 -0
  444. package/dist/plugins/hooks.js.map +1 -0
  445. package/dist/plugins/index.d.ts +11 -0
  446. package/dist/plugins/index.js +16 -0
  447. package/dist/plugins/index.js.map +1 -0
  448. package/dist/plugins/install.d.ts +59 -0
  449. package/dist/plugins/install.js +324 -0
  450. package/dist/plugins/install.js.map +1 -0
  451. package/dist/plugins/loader.d.ts +84 -0
  452. package/dist/plugins/loader.js +545 -0
  453. package/dist/plugins/loader.js.map +1 -0
  454. package/dist/plugins/types.d.ts +190 -0
  455. package/dist/plugins/types.js +7 -0
  456. package/dist/plugins/types.js.map +1 -0
  457. package/dist/providers/__tests__/registry.test.d.ts +1 -0
  458. package/dist/providers/__tests__/registry.test.js +110 -0
  459. package/dist/providers/__tests__/registry.test.js.map +1 -0
  460. package/dist/providers/api-strategies.d.ts +15 -0
  461. package/dist/providers/api-strategies.js +96 -0
  462. package/dist/providers/api-strategies.js.map +1 -0
  463. package/dist/providers/auto-discovery.d.ts +84 -0
  464. package/dist/providers/auto-discovery.js +236 -0
  465. package/dist/providers/auto-discovery.js.map +1 -0
  466. package/dist/providers/config.d.ts +25 -0
  467. package/dist/providers/config.js +42 -0
  468. package/dist/providers/config.js.map +1 -0
  469. package/dist/providers/index.d.ts +25 -0
  470. package/dist/providers/index.js +55 -0
  471. package/dist/providers/index.js.map +1 -0
  472. package/dist/providers/model-catalog.d.ts +205 -0
  473. package/dist/providers/model-catalog.js +1071 -0
  474. package/dist/providers/model-catalog.js.map +1 -0
  475. package/dist/providers/models-dev-data.d.ts +11 -0
  476. package/dist/providers/models-dev-data.js +1035 -0
  477. package/dist/providers/models-dev-data.js.map +1 -0
  478. package/dist/providers/models-dev.d.ts +30 -0
  479. package/dist/providers/models-dev.js +42 -0
  480. package/dist/providers/models-dev.js.map +1 -0
  481. package/dist/providers/pi-ai.d.ts +62 -0
  482. package/dist/providers/pi-ai.js +221 -0
  483. package/dist/providers/pi-ai.js.map +1 -0
  484. package/dist/providers/provider-catalog.d.ts +173 -0
  485. package/dist/providers/provider-catalog.js +834 -0
  486. package/dist/providers/provider-catalog.js.map +1 -0
  487. package/dist/providers/registry.d.ts +155 -0
  488. package/dist/providers/registry.js +524 -0
  489. package/dist/providers/registry.js.map +1 -0
  490. package/dist/providers/types.d.ts +95 -0
  491. package/dist/providers/types.js +7 -0
  492. package/dist/providers/types.js.map +1 -0
  493. package/dist/session/chat-manager.d.ts +49 -0
  494. package/dist/session/chat-manager.js +167 -0
  495. package/dist/session/chat-manager.js.map +1 -0
  496. package/dist/session/chat-types.d.ts +53 -0
  497. package/dist/session/chat-types.js +63 -0
  498. package/dist/session/chat-types.js.map +1 -0
  499. package/dist/session/index.d.ts +5 -0
  500. package/dist/session/index.js +5 -0
  501. package/dist/session/index.js.map +1 -0
  502. package/dist/session/manager.d.ts +103 -0
  503. package/dist/session/manager.js +200 -0
  504. package/dist/session/manager.js.map +1 -0
  505. package/dist/session/store.d.ts +114 -0
  506. package/dist/session/store.js +687 -0
  507. package/dist/session/store.js.map +1 -0
  508. package/dist/session/types.d.ts +88 -0
  509. package/dist/session/types.js +10 -0
  510. package/dist/session/types.js.map +1 -0
  511. package/dist/types/index.d.ts +177 -0
  512. package/dist/types/index.js +4 -0
  513. package/dist/types/index.js.map +1 -0
  514. package/dist/types/providers.d.ts +67 -0
  515. package/dist/types/providers.js +7 -0
  516. package/dist/types/providers.js.map +1 -0
  517. package/dist/utils/frontmatter.d.ts +17 -0
  518. package/dist/utils/frontmatter.js +104 -0
  519. package/dist/utils/frontmatter.js.map +1 -0
  520. package/dist/utils/helpers.d.ts +5 -0
  521. package/dist/utils/helpers.js +36 -0
  522. package/dist/utils/helpers.js.map +1 -0
  523. package/dist/utils/index.d.ts +2 -0
  524. package/dist/utils/index.js +3 -0
  525. package/dist/utils/index.js.map +1 -0
  526. package/dist/utils/log-store.d.ts +78 -0
  527. package/dist/utils/log-store.js +432 -0
  528. package/dist/utils/log-store.js.map +1 -0
  529. package/dist/utils/logger.d.ts +127 -0
  530. package/dist/utils/logger.js +481 -0
  531. package/dist/utils/logger.js.map +1 -0
  532. package/dist/utils/logger.types.d.ts +152 -0
  533. package/dist/utils/logger.types.js +30 -0
  534. package/dist/utils/logger.types.js.map +1 -0
  535. package/package.json +93 -0
@@ -0,0 +1,32 @@
1
+ export function createTypingController(params) {
2
+ const { onStart, onStop, intervalSeconds = 5 } = params;
3
+ let typingTimer = null;
4
+ let stopped = false;
5
+ const start = () => {
6
+ if (stopped)
7
+ return;
8
+ if (typingTimer)
9
+ return;
10
+ onStart();
11
+ typingTimer = setInterval(() => {
12
+ if (stopped) {
13
+ stop();
14
+ }
15
+ else {
16
+ onStart();
17
+ }
18
+ }, intervalSeconds * 1000);
19
+ };
20
+ const stop = () => {
21
+ if (typingTimer) {
22
+ clearInterval(typingTimer);
23
+ typingTimer = null;
24
+ }
25
+ if (!stopped) {
26
+ onStop();
27
+ }
28
+ stopped = true;
29
+ };
30
+ return { start, stop };
31
+ }
32
+ //# sourceMappingURL=typing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typing.js","sourceRoot":"","sources":["../../src/agent/typing.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,sBAAsB,CAAC,MAItC;IACC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;IACxD,IAAI,WAAW,GAA0B,IAAI,CAAC;IAC9C,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,OAAO;YAAE,OAAO;QACpB,IAAI,WAAW;YAAE,OAAO;QAExB,OAAO,EAAE,CAAC;QACV,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,EAAE,CAAC;YACT,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,IAAI,WAAW,EAAE,CAAC;YAChB,aAAa,CAAC,WAAW,CAAC,CAAC;YAC3B,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,EAAE,CAAC;QACX,CAAC;QACD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Auth Module
3
+ *
4
+ * Authentication storage and management.
5
+ *
6
+ * Features:
7
+ * - AuthStorage: Simple credential storage
8
+ * - Auth Profiles: Advanced profile management with OAuth, round-robin, cooldown
9
+ */
10
+ export { AuthStorage, type AuthEntry, type AuthStorageOptions } from './storage.js';
11
+ export * from './oauth/index.js';
12
+ export * from './profiles/index.js';
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Auth Module
3
+ *
4
+ * Authentication storage and management.
5
+ *
6
+ * Features:
7
+ * - AuthStorage: Simple credential storage
8
+ * - Auth Profiles: Advanced profile management with OAuth, round-robin, cooldown
9
+ */
10
+ export { AuthStorage } from './storage.js';
11
+ export * from './oauth/index.js';
12
+ // Auth Profiles (new architecture based on openclaw)
13
+ export * from './profiles/index.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAA2C,MAAM,cAAc,CAAC;AACpF,cAAc,kBAAkB,CAAC;AAEjC,qDAAqD;AACrD,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Anthropic OAuth flow (Claude Pro/Max)
3
+ */
4
+ import type { OAuthCredentials, OAuthProviderInterface } from './types.js';
5
+ export declare function loginAnthropic(onAuthUrl: (url: string) => void, onPromptCode: () => Promise<string>): Promise<OAuthCredentials>;
6
+ export declare function refreshAnthropicToken(refreshToken: string): Promise<OAuthCredentials>;
7
+ export declare const anthropicOAuthProvider: OAuthProviderInterface;
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Anthropic OAuth flow (Claude Pro/Max)
3
+ */
4
+ import { generatePKCE } from './pkce.js';
5
+ const decode = (s) => atob(s);
6
+ const CLIENT_ID = decode("OWQxYzI1MGEtZTYxYi00NGQ5LTg4ZWQtNTk0NGQxOTYyZjVl");
7
+ const AUTHORIZE_URL = "https://claude.ai/oauth/authorize";
8
+ const TOKEN_URL = "https://console.anthropic.com/v1/oauth/token";
9
+ const REDIRECT_URI = "https://console.anthropic.com/oauth/code/callback";
10
+ const SCOPES = "org:create_api_key user:profile user:inference";
11
+ export async function loginAnthropic(onAuthUrl, onPromptCode) {
12
+ const { verifier, challenge } = await generatePKCE();
13
+ const authParams = new URLSearchParams({
14
+ code: "true",
15
+ client_id: CLIENT_ID,
16
+ response_type: "code",
17
+ redirect_uri: REDIRECT_URI,
18
+ scope: SCOPES,
19
+ code_challenge: challenge,
20
+ code_challenge_method: "S256",
21
+ state: verifier,
22
+ });
23
+ const authUrl = `${AUTHORIZE_URL}?${authParams.toString()}`;
24
+ onAuthUrl(authUrl);
25
+ const authCode = await onPromptCode();
26
+ const splits = authCode.split("#");
27
+ const code = splits[0];
28
+ const state = splits[1];
29
+ const tokenResponse = await fetch(TOKEN_URL, {
30
+ method: "POST",
31
+ headers: {
32
+ "Content-Type": "application/json",
33
+ },
34
+ body: JSON.stringify({
35
+ grant_type: "authorization_code",
36
+ client_id: CLIENT_ID,
37
+ code: code,
38
+ state: state,
39
+ redirect_uri: REDIRECT_URI,
40
+ code_verifier: verifier,
41
+ }),
42
+ });
43
+ if (!tokenResponse.ok) {
44
+ const error = await tokenResponse.text();
45
+ throw new Error(`Token exchange failed: ${error}`);
46
+ }
47
+ const tokenData = (await tokenResponse.json());
48
+ const expiresAt = Date.now() + tokenData.expires_in * 1000 - 5 * 60 * 1000;
49
+ return {
50
+ refresh: tokenData.refresh_token,
51
+ access: tokenData.access_token,
52
+ expires: expiresAt,
53
+ };
54
+ }
55
+ export async function refreshAnthropicToken(refreshToken) {
56
+ const response = await fetch(TOKEN_URL, {
57
+ method: "POST",
58
+ headers: { "Content-Type": "application/json" },
59
+ body: JSON.stringify({
60
+ grant_type: "refresh_token",
61
+ client_id: CLIENT_ID,
62
+ refresh_token: refreshToken,
63
+ }),
64
+ });
65
+ if (!response.ok) {
66
+ const error = await response.text();
67
+ throw new Error(`Anthropic token refresh failed: ${error}`);
68
+ }
69
+ const data = (await response.json());
70
+ return {
71
+ refresh: data.refresh_token,
72
+ access: data.access_token,
73
+ expires: Date.now() + data.expires_in * 1000 - 5 * 60 * 1000,
74
+ };
75
+ }
76
+ export const anthropicOAuthProvider = {
77
+ id: "anthropic",
78
+ name: "Anthropic (Claude Pro/Max)",
79
+ async login(callbacks) {
80
+ return loginAnthropic((url) => callbacks.onAuth({ url }), () => callbacks.onPrompt({ message: "Paste the authorization code:" }));
81
+ },
82
+ async refreshToken(credentials) {
83
+ return refreshAnthropicToken(credentials.refresh);
84
+ },
85
+ getApiKey(credentials) {
86
+ return credentials.access;
87
+ },
88
+ };
89
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/auth/oauth/anthropic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * GitHub Copilot OAuth Provider
3
+ *
4
+ * OAuth authentication for GitHub Copilot.
5
+ * Uses device code flow for authentication.
6
+ */
7
+ import type { OAuthProviderInterface } from './types.js';
8
+ export declare const githubCopilotOAuthProvider: OAuthProviderInterface;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * GitHub Copilot OAuth Provider
3
+ *
4
+ * OAuth authentication for GitHub Copilot.
5
+ * Uses device code flow for authentication.
6
+ */
7
+ export const githubCopilotOAuthProvider = {
8
+ id: 'github-copilot',
9
+ name: 'GitHub Copilot',
10
+ usesCallbackServer: false,
11
+ async login(callbacks) {
12
+ const { loginGitHubCopilot } = await import('@mariozechner/pi-ai');
13
+ const creds = await loginGitHubCopilot({
14
+ onAuth: (url, instructions) => {
15
+ callbacks.onAuth({ url, instructions });
16
+ },
17
+ onPrompt: async (prompt) => callbacks.onPrompt(prompt),
18
+ onProgress: (msg) => callbacks.onProgress?.(msg),
19
+ signal: callbacks.signal,
20
+ });
21
+ return {
22
+ access: creds.access,
23
+ refresh: creds.refresh,
24
+ expires: creds.expires,
25
+ };
26
+ },
27
+ async refreshToken(_credentials) {
28
+ // GitHub Copilot tokens don't support refresh
29
+ throw new Error('GitHub Copilot tokens do not support refresh. Please re-authenticate.');
30
+ },
31
+ getApiKey(credentials) {
32
+ return credentials.access;
33
+ },
34
+ };
35
+ //# sourceMappingURL=github-copilot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-copilot.js","sourceRoot":"","sources":["../../../src/auth/oauth/github-copilot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,0BAA0B,GAA2B;IACjE,EAAE,EAAE,gBAAgB;IACpB,IAAI,EAAE,gBAAgB;IACtB,kBAAkB,EAAE,KAAK;IAEzB,KAAK,CAAC,KAAK,CAAC,SAA8B;QACzC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC;YACtC,MAAM,EAAE,CAAC,GAAW,EAAE,YAAqB,EAAE,EAAE;gBAC9C,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtD,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC;YAChD,MAAM,EAAE,SAAS,CAAC,MAAM;SACxB,CAAC,CAAC;QAEH,OAAO;YACN,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;SACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,YAA8B;QAChD,8CAA8C;QAC9C,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC1F,CAAC;IAED,SAAS,CAAC,WAA6B;QACtC,OAAO,WAAW,CAAC,MAAM,CAAC;IAC3B,CAAC;CACD,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Google Antigravity OAuth Provider
3
+ *
4
+ * OAuth authentication for Google Antigravity (Gemini 3, Claude, GPT-OSS).
5
+ */
6
+ import type { OAuthProviderInterface } from './types.js';
7
+ export declare const googleAntigravityOAuthProvider: OAuthProviderInterface;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Google Antigravity OAuth Provider
3
+ *
4
+ * OAuth authentication for Google Antigravity (Gemini 3, Claude, GPT-OSS).
5
+ */
6
+ export const googleAntigravityOAuthProvider = {
7
+ id: 'google-antigravity',
8
+ name: 'Google Antigravity',
9
+ usesCallbackServer: true,
10
+ async login(callbacks) {
11
+ const { loginAntigravity } = await import('@mariozechner/pi-ai');
12
+ const creds = await loginAntigravity((info) => callbacks.onAuth(info), (msg) => callbacks.onProgress?.(msg), callbacks.onManualCodeInput);
13
+ return {
14
+ access: creds.access,
15
+ refresh: creds.refresh,
16
+ expires: creds.expires,
17
+ };
18
+ },
19
+ async refreshToken(credentials) {
20
+ const { refreshOAuthToken } = await import('@mariozechner/pi-ai');
21
+ return refreshOAuthToken('google-antigravity', credentials);
22
+ },
23
+ getApiKey(credentials) {
24
+ return credentials.access;
25
+ },
26
+ };
27
+ //# sourceMappingURL=google-antigravity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-antigravity.js","sourceRoot":"","sources":["../../../src/auth/oauth/google-antigravity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,CAAC,MAAM,8BAA8B,GAA2B;IACrE,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,oBAAoB;IAC1B,kBAAkB,EAAE,IAAI;IAExB,KAAK,CAAC,KAAK,CAAC,SAA8B;QACzC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,gBAAgB,CACnC,CAAC,IAA4C,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EACxE,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,EAC5C,SAAS,CAAC,iBAAiB,CAC3B,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;SACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAA6B;QAC/C,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAClE,OAAO,iBAAiB,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;IAC7D,CAAC;IAED,SAAS,CAAC,WAA6B;QACtC,OAAO,WAAW,CAAC,MAAM,CAAC;IAC3B,CAAC;CACD,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Google Gemini CLI OAuth Provider
3
+ *
4
+ * OAuth authentication for Google Gemini CLI (Cloud Code Assist).
5
+ */
6
+ import type { OAuthProviderInterface } from './types.js';
7
+ export declare const googleGeminiCliOAuthProvider: OAuthProviderInterface;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Google Gemini CLI OAuth Provider
3
+ *
4
+ * OAuth authentication for Google Gemini CLI (Cloud Code Assist).
5
+ */
6
+ // Use dynamic import to avoid type issues
7
+ export const googleGeminiCliOAuthProvider = {
8
+ id: 'google-gemini-cli',
9
+ name: 'Google Gemini CLI',
10
+ usesCallbackServer: true,
11
+ async login(callbacks) {
12
+ const { loginGeminiCli } = await import('@mariozechner/pi-ai');
13
+ const creds = await loginGeminiCli((info) => callbacks.onAuth(info), (msg) => callbacks.onProgress?.(msg), callbacks.onManualCodeInput);
14
+ return {
15
+ access: creds.access,
16
+ refresh: creds.refresh,
17
+ expires: creds.expires,
18
+ };
19
+ },
20
+ async refreshToken(credentials) {
21
+ const { refreshOAuthToken } = await import('@mariozechner/pi-ai');
22
+ return refreshOAuthToken('google-gemini-cli', credentials);
23
+ },
24
+ getApiKey(credentials) {
25
+ return credentials.access;
26
+ },
27
+ };
28
+ //# sourceMappingURL=google-gemini-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-gemini-cli.js","sourceRoot":"","sources":["../../../src/auth/oauth/google-gemini-cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,0CAA0C;AAC1C,MAAM,CAAC,MAAM,4BAA4B,GAA2B;IACnE,EAAE,EAAE,mBAAmB;IACvB,IAAI,EAAE,mBAAmB;IACzB,kBAAkB,EAAE,IAAI;IAExB,KAAK,CAAC,KAAK,CAAC,SAA8B;QACzC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,cAAc,CACjC,CAAC,IAA4C,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EACxE,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,EAC5C,SAAS,CAAC,iBAAiB,CAC3B,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;SACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAA6B;QAC/C,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAClE,OAAO,iBAAiB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS,CAAC,WAA6B;QACtC,OAAO,WAAW,CAAC,MAAM,CAAC;IAC3B,CAAC;CACD,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * OAuth Providers Index
3
+ *
4
+ * Export all OAuth providers.
5
+ */
6
+ export * from './types.js';
7
+ export * from './anthropic.js';
8
+ export * from './qwen.js';
9
+ export * from './minimax.js';
10
+ export * from './kimi.js';
11
+ export * from './github-copilot.js';
12
+ export * from './google-gemini-cli.js';
13
+ export * from './google-antigravity.js';
14
+ export * from './openai-codex.js';
@@ -0,0 +1,15 @@
1
+ /**
2
+ * OAuth Providers Index
3
+ *
4
+ * Export all OAuth providers.
5
+ */
6
+ export * from './types.js';
7
+ export * from './anthropic.js';
8
+ export * from './qwen.js';
9
+ export * from './minimax.js';
10
+ export * from './kimi.js';
11
+ export * from './github-copilot.js';
12
+ export * from './google-gemini-cli.js';
13
+ export * from './google-antigravity.js';
14
+ export * from './openai-codex.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/oauth/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Kimi (Moonshot AI) OAuth Provider
3
+ *
4
+ * OAuth 2.0 authentication for Kimi Platform.
5
+ * https://platform.moonshot.cn/
6
+ */
7
+ import type { OAuthProviderInterface } from './types.js';
8
+ export declare const kimiOAuthProvider: OAuthProviderInterface;
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Kimi (Moonshot AI) OAuth Provider
3
+ *
4
+ * OAuth 2.0 authentication for Kimi Platform.
5
+ * https://platform.moonshot.cn/
6
+ */
7
+ const KIMI_OAUTH_BASE_URL = 'https://platform.moonshot.cn';
8
+ const KIMI_OAUTH_AUTHORIZE_URL = `${KIMI_OAUTH_BASE_URL}/oauth/authorize`;
9
+ const KIMI_OAUTH_TOKEN_URL = `${KIMI_OAUTH_BASE_URL}/oauth/token`;
10
+ const KIMI_OAUTH_CLIENT_ID = 'your_client_id'; // Users need to register their own app
11
+ export const kimiOAuthProvider = {
12
+ id: 'kimi',
13
+ name: 'Kimi (月之暗面)',
14
+ usesCallbackServer: true,
15
+ async login(callbacks) {
16
+ // Kimi uses authorization code flow with PKCE
17
+ const codeVerifier = generateCodeVerifier();
18
+ const codeChallenge = await generateCodeChallenge(codeVerifier);
19
+ const authUrl = new URL(KIMI_OAUTH_AUTHORIZE_URL);
20
+ authUrl.searchParams.set('client_id', KIMI_OAUTH_CLIENT_ID);
21
+ authUrl.searchParams.set('redirect_uri', 'http://localhost:3000/callback');
22
+ authUrl.searchParams.set('response_type', 'code');
23
+ authUrl.searchParams.set('scope', 'api');
24
+ authUrl.searchParams.set('code_challenge', codeChallenge);
25
+ authUrl.searchParams.set('code_challenge_method', 'S256');
26
+ callbacks.onAuth({
27
+ url: authUrl.toString(),
28
+ instructions: 'Please authorize the application and enter the code shown.',
29
+ });
30
+ const code = await callbacks.onPrompt({
31
+ message: 'Enter the authorization code:',
32
+ });
33
+ const tokenResponse = await fetch(KIMI_OAUTH_TOKEN_URL, {
34
+ method: 'POST',
35
+ headers: {
36
+ 'Content-Type': 'application/x-www-form-urlencoded',
37
+ },
38
+ body: new URLSearchParams({
39
+ grant_type: 'authorization_code',
40
+ client_id: KIMI_OAUTH_CLIENT_ID,
41
+ code,
42
+ redirect_uri: 'http://localhost:3000/callback',
43
+ code_verifier: codeVerifier,
44
+ }),
45
+ });
46
+ if (!tokenResponse.ok) {
47
+ const error = await tokenResponse.text();
48
+ throw new Error(`Token exchange failed: ${error}`);
49
+ }
50
+ const tokenData = await tokenResponse.json();
51
+ return {
52
+ access: tokenData.access_token,
53
+ refresh: tokenData.refresh_token,
54
+ expires: Date.now() + tokenData.expires_in * 1000,
55
+ };
56
+ },
57
+ async refreshToken(credentials) {
58
+ if (!credentials.refresh) {
59
+ throw new Error('Kimi OAuth refresh token missing. Re-authenticate.');
60
+ }
61
+ const response = await fetch(KIMI_OAUTH_TOKEN_URL, {
62
+ method: 'POST',
63
+ headers: {
64
+ 'Content-Type': 'application/x-www-form-urlencoded',
65
+ },
66
+ body: new URLSearchParams({
67
+ grant_type: 'refresh_token',
68
+ client_id: KIMI_OAUTH_CLIENT_ID,
69
+ refresh_token: credentials.refresh,
70
+ }),
71
+ });
72
+ if (!response.ok) {
73
+ const text = await response.text();
74
+ throw new Error(`Kimi OAuth refresh failed: ${text}`);
75
+ }
76
+ const payload = await response.json();
77
+ return {
78
+ ...credentials,
79
+ access: payload.access_token,
80
+ refresh: payload.refresh_token || credentials.refresh,
81
+ expires: Date.now() + payload.expires_in * 1000,
82
+ };
83
+ },
84
+ getApiKey(credentials) {
85
+ return credentials.access;
86
+ },
87
+ };
88
+ function generateCodeVerifier() {
89
+ const array = new Uint8Array(32);
90
+ crypto.getRandomValues(array);
91
+ return base64UrlEncode(array);
92
+ }
93
+ async function generateCodeChallenge(verifier) {
94
+ const encoder = new TextEncoder();
95
+ const data = encoder.encode(verifier);
96
+ const digest = await crypto.subtle.digest('SHA-256', data);
97
+ return base64UrlEncode(new Uint8Array(digest));
98
+ }
99
+ function base64UrlEncode(buffer) {
100
+ let str = '';
101
+ buffer.forEach(b => str += String.fromCharCode(b));
102
+ return btoa(str).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
103
+ }
104
+ //# sourceMappingURL=kimi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kimi.js","sourceRoot":"","sources":["../../../src/auth/oauth/kimi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MiniMax OAuth Provider
3
+ *
4
+ * OAuth 2.0 authentication for MiniMax Platform.
5
+ * https://platform.minimaxi.com/
6
+ */
7
+ import type { OAuthProviderInterface } from './types.js';
8
+ export declare const minimaxOAuthProvider: OAuthProviderInterface;
@@ -0,0 +1,109 @@
1
+ /**
2
+ * MiniMax OAuth Provider
3
+ *
4
+ * OAuth 2.0 authentication for MiniMax Platform.
5
+ * https://platform.minimaxi.com/
6
+ */
7
+ const MINIMAX_OAUTH_BASE_URL = 'https://platform.minimaxi.com';
8
+ const MINIMAX_OAUTH_AUTHORIZE_URL = `${MINIMAX_OAUTH_BASE_URL}/oauth/authorize`;
9
+ const MINIMAX_OAUTH_TOKEN_URL = `${MINIMAX_OAUTH_BASE_URL}/oauth/token`;
10
+ const MINIMAX_OAUTH_CLIENT_ID = 'your_client_id'; // Users need to register their own app
11
+ export const minimaxOAuthProvider = {
12
+ id: 'minimax',
13
+ name: 'MiniMax',
14
+ usesCallbackServer: true,
15
+ async login(callbacks) {
16
+ // MiniMax uses authorization code flow
17
+ // First, generate a device code or authorization URL
18
+ // For simplicity, we'll use a manual code flow
19
+ const codeVerifier = generateCodeVerifier();
20
+ const codeChallenge = await generateCodeChallenge(codeVerifier);
21
+ const authUrl = new URL(MINIMAX_OAUTH_AUTHORIZE_URL);
22
+ authUrl.searchParams.set('client_id', MINIMAX_OAUTH_CLIENT_ID);
23
+ authUrl.searchParams.set('redirect_uri', 'http://localhost:3000/callback');
24
+ authUrl.searchParams.set('response_type', 'code');
25
+ authUrl.searchParams.set('scope', 'api');
26
+ authUrl.searchParams.set('code_challenge', codeChallenge);
27
+ authUrl.searchParams.set('code_challenge_method', 'S256');
28
+ // Show user the auth URL
29
+ callbacks.onAuth({
30
+ url: authUrl.toString(),
31
+ instructions: 'Please authorize the application and enter the code shown.',
32
+ });
33
+ // Prompt for the authorization code
34
+ const code = await callbacks.onPrompt({
35
+ message: 'Enter the authorization code:',
36
+ });
37
+ // Exchange code for token
38
+ const tokenResponse = await fetch(MINIMAX_OAUTH_TOKEN_URL, {
39
+ method: 'POST',
40
+ headers: {
41
+ 'Content-Type': 'application/x-www-form-urlencoded',
42
+ },
43
+ body: new URLSearchParams({
44
+ grant_type: 'authorization_code',
45
+ client_id: MINIMAX_OAUTH_CLIENT_ID,
46
+ code,
47
+ redirect_uri: 'http://localhost:3000/callback',
48
+ code_verifier: codeVerifier,
49
+ }),
50
+ });
51
+ if (!tokenResponse.ok) {
52
+ const error = await tokenResponse.text();
53
+ throw new Error(`Token exchange failed: ${error}`);
54
+ }
55
+ const tokenData = await tokenResponse.json();
56
+ return {
57
+ access: tokenData.access_token,
58
+ refresh: tokenData.refresh_token,
59
+ expires: Date.now() + tokenData.expires_in * 1000,
60
+ };
61
+ },
62
+ async refreshToken(credentials) {
63
+ if (!credentials.refresh) {
64
+ throw new Error('MiniMax OAuth refresh token missing. Re-authenticate.');
65
+ }
66
+ const response = await fetch(MINIMAX_OAUTH_TOKEN_URL, {
67
+ method: 'POST',
68
+ headers: {
69
+ 'Content-Type': 'application/x-www-form-urlencoded',
70
+ },
71
+ body: new URLSearchParams({
72
+ grant_type: 'refresh_token',
73
+ client_id: MINIMAX_OAUTH_CLIENT_ID,
74
+ refresh_token: credentials.refresh,
75
+ }),
76
+ });
77
+ if (!response.ok) {
78
+ const text = await response.text();
79
+ throw new Error(`MiniMax OAuth refresh failed: ${text}`);
80
+ }
81
+ const payload = await response.json();
82
+ return {
83
+ ...credentials,
84
+ access: payload.access_token,
85
+ refresh: payload.refresh_token || credentials.refresh,
86
+ expires: Date.now() + payload.expires_in * 1000,
87
+ };
88
+ },
89
+ getApiKey(credentials) {
90
+ return credentials.access;
91
+ },
92
+ };
93
+ function generateCodeVerifier() {
94
+ const array = new Uint8Array(32);
95
+ crypto.getRandomValues(array);
96
+ return base64UrlEncode(array);
97
+ }
98
+ async function generateCodeChallenge(verifier) {
99
+ const encoder = new TextEncoder();
100
+ const data = encoder.encode(verifier);
101
+ const digest = await crypto.subtle.digest('SHA-256', data);
102
+ return base64UrlEncode(new Uint8Array(digest));
103
+ }
104
+ function base64UrlEncode(buffer) {
105
+ let str = '';
106
+ buffer.forEach(b => str += String.fromCharCode(b));
107
+ return btoa(str).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
108
+ }
109
+ //# sourceMappingURL=minimax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimax.js","sourceRoot":"","sources":["../../../src/auth/oauth/minimax.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,sBAAsB,GAAG,+BAA+B,CAAC;AAC/D,MAAM,2BAA2B,GAAG,GAAG,sBAAsB,kBAAkB,CAAC;AAChF,MAAM,uBAAuB,GAAG,GAAG,sBAAsB,cAAc,CAAC;AACxE,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,CAAC,uCAAuC;AAEzF,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC3D,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,SAAS;IACf,kBAAkB,EAAE,IAAI;IAExB,KAAK,CAAC,KAAK,CAAC,SAA8B;QACzC,uCAAuC;QACvC,qDAAqD;QAErD,+CAA+C;QAC/C,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAEhE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACrD,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;QAC/D,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAC;QAC3E,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAC1D,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QAE1D,yBAAyB;QACzB,SAAS,CAAC,MAAM,CAAC;YAChB,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE;YACvB,YAAY,EAAE,4DAA4D;SAC1E,CAAC,CAAC;QAEH,oCAAoC;QACpC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC;YACrC,OAAO,EAAE,+BAA+B;SACxC,CAAC,CAAC;QAEH,0BAA0B;QAC1B,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,uBAAuB,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACR,cAAc,EAAE,mCAAmC;aACnD;YACD,IAAI,EAAE,IAAI,eAAe,CAAC;gBACzB,UAAU,EAAE,oBAAoB;gBAChC,SAAS,EAAE,uBAAuB;gBAClC,IAAI;gBACJ,YAAY,EAAE,gCAAgC;gBAC9C,aAAa,EAAE,YAAY;aAC3B,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,EAIzC,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,SAAS,CAAC,YAAY;YAC9B,OAAO,EAAE,SAAS,CAAC,aAAa;YAChC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,UAAU,GAAG,IAAI;SACjD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAA6B;QAC/C,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,uBAAuB,EAAE;YACrD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACR,cAAc,EAAE,mCAAmC;aACnD;YACD,IAAI,EAAE,IAAI,eAAe,CAAC;gBACzB,UAAU,EAAE,eAAe;gBAC3B,SAAS,EAAE,uBAAuB;gBAClC,aAAa,EAAE,WAAW,CAAC,OAAO;aAClC,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAIlC,CAAC;QAEF,OAAO;YACN,GAAG,WAAW;YACd,MAAM,EAAE,OAAO,CAAC,YAAY;YAC5B,OAAO,EAAE,OAAO,CAAC,aAAa,IAAI,WAAW,CAAC,OAAO;YACrD,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI;SAC/C,CAAC;IACH,CAAC;IAED,SAAS,CAAC,WAA6B;QACtC,OAAO,WAAW,CAAC,MAAM,CAAC;IAC3B,CAAC;CACD,CAAC;AAEF,SAAS,oBAAoB;IAC5B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,QAAgB;IACpD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,OAAO,eAAe,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,eAAe,CAAC,MAAkB;IAC1C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * OpenAI Codex OAuth Provider
3
+ *
4
+ * OAuth authentication for OpenAI Codex (ChatGPT Plus/Pro Subscription).
5
+ */
6
+ import type { OAuthProviderInterface } from './types.js';
7
+ export declare const openaiCodexOAuthProvider: OAuthProviderInterface;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * OpenAI Codex OAuth Provider
3
+ *
4
+ * OAuth authentication for OpenAI Codex (ChatGPT Plus/Pro Subscription).
5
+ */
6
+ export const openaiCodexOAuthProvider = {
7
+ id: 'openai-codex',
8
+ name: 'OpenAI Codex',
9
+ usesCallbackServer: true,
10
+ async login(callbacks) {
11
+ const { loginOpenAICodex } = await import('@mariozechner/pi-ai');
12
+ const creds = await loginOpenAICodex({
13
+ onAuth: (info) => callbacks.onAuth(info),
14
+ onPrompt: async (prompt) => callbacks.onPrompt(prompt),
15
+ onProgress: (msg) => callbacks.onProgress?.(msg),
16
+ onManualCodeInput: callbacks.onManualCodeInput,
17
+ originator: 'xopcbot',
18
+ });
19
+ return {
20
+ access: creds.access,
21
+ refresh: creds.refresh,
22
+ expires: creds.expires,
23
+ };
24
+ },
25
+ async refreshToken(credentials) {
26
+ const { refreshOAuthToken } = await import('@mariozechner/pi-ai');
27
+ return refreshOAuthToken('openai-codex', credentials);
28
+ },
29
+ getApiKey(credentials) {
30
+ return credentials.access;
31
+ },
32
+ };
33
+ //# sourceMappingURL=openai-codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-codex.js","sourceRoot":"","sources":["../../../src/auth/oauth/openai-codex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC/D,EAAE,EAAE,cAAc;IAClB,IAAI,EAAE,cAAc;IACpB,kBAAkB,EAAE,IAAI;IAExB,KAAK,CAAC,KAAK,CAAC,SAA8B;QACzC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC;YACpC,MAAM,EAAE,CAAC,IAA4C,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;YAChF,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtD,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC;YAChD,iBAAiB,EAAE,SAAS,CAAC,iBAAiB;YAC9C,UAAU,EAAE,SAAS;SACrB,CAAC,CAAC;QAEH,OAAO;YACN,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;SACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAA6B;QAC/C,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAClE,OAAO,iBAAiB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IAED,SAAS,CAAC,WAA6B;QACtC,OAAO,WAAW,CAAC,MAAM,CAAC;IAC3B,CAAC;CACD,CAAC"}