@mastra/code-sdk 0.0.0-aggregate-trace-20261015182851

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 (749) hide show
  1. package/LICENSE.md +32 -0
  2. package/README.md +284 -0
  3. package/dist/acp/agent.d.ts +48 -0
  4. package/dist/acp/agent.d.ts.map +1 -0
  5. package/dist/acp/agent.js +416 -0
  6. package/dist/acp/agent.js.map +1 -0
  7. package/dist/acp/errors.d.ts +3 -0
  8. package/dist/acp/errors.d.ts.map +1 -0
  9. package/dist/acp/errors.js +14 -0
  10. package/dist/acp/errors.js.map +1 -0
  11. package/dist/acp/event-mapper.d.ts +28 -0
  12. package/dist/acp/event-mapper.d.ts.map +1 -0
  13. package/dist/acp/event-mapper.js +279 -0
  14. package/dist/acp/event-mapper.js.map +1 -0
  15. package/dist/acp/index.d.ts +9 -0
  16. package/dist/acp/index.d.ts.map +1 -0
  17. package/dist/acp/index.js +24 -0
  18. package/dist/acp/index.js.map +1 -0
  19. package/dist/acp/runtime.d.ts +5 -0
  20. package/dist/acp/runtime.d.ts.map +1 -0
  21. package/dist/acp/runtime.js +91 -0
  22. package/dist/acp/runtime.js.map +1 -0
  23. package/dist/acp/server.d.ts +4 -0
  24. package/dist/acp/server.d.ts.map +1 -0
  25. package/dist/acp/server.js +38 -0
  26. package/dist/acp/server.js.map +1 -0
  27. package/dist/acp/skills.d.ts +6 -0
  28. package/dist/acp/skills.d.ts.map +1 -0
  29. package/dist/acp/skills.js +33 -0
  30. package/dist/acp/skills.js.map +1 -0
  31. package/dist/acp.d.ts +2 -0
  32. package/dist/acp.d.ts.map +1 -0
  33. package/dist/acp.js +2 -0
  34. package/dist/agent-connections/messaging-processor.d.ts +17 -0
  35. package/dist/agent-connections/messaging-processor.d.ts.map +1 -0
  36. package/dist/agent-connections/messaging-processor.js +134 -0
  37. package/dist/agent-connections/messaging-processor.js.map +1 -0
  38. package/dist/agent-connections/ownership.d.ts +24 -0
  39. package/dist/agent-connections/ownership.d.ts.map +1 -0
  40. package/dist/agent-connections/ownership.js +99 -0
  41. package/dist/agent-connections/ownership.js.map +1 -0
  42. package/dist/agent-connections/registry.d.ts +20 -0
  43. package/dist/agent-connections/registry.d.ts.map +1 -0
  44. package/dist/agent-connections/registry.js +170 -0
  45. package/dist/agent-connections/registry.js.map +1 -0
  46. package/dist/agent-connections/session-advertisement.d.ts +27 -0
  47. package/dist/agent-connections/session-advertisement.d.ts.map +1 -0
  48. package/dist/agent-connections/session-advertisement.js +89 -0
  49. package/dist/agent-connections/session-advertisement.js.map +1 -0
  50. package/dist/agent-connections/signal-provider.d.ts +141 -0
  51. package/dist/agent-connections/signal-provider.d.ts.map +1 -0
  52. package/dist/agent-connections/signal-provider.js +38 -0
  53. package/dist/agent-connections/signal-provider.js.map +1 -0
  54. package/dist/agent-connections/state-processor.d.ts +23 -0
  55. package/dist/agent-connections/state-processor.d.ts.map +1 -0
  56. package/dist/agent-connections/state-processor.js +273 -0
  57. package/dist/agent-connections/state-processor.js.map +1 -0
  58. package/dist/agent-connections/thread-state.d.ts +41 -0
  59. package/dist/agent-connections/thread-state.d.ts.map +1 -0
  60. package/dist/agent-connections/thread-state.js +160 -0
  61. package/dist/agent-connections/thread-state.js.map +1 -0
  62. package/dist/agent-connections/tools.d.ts +133 -0
  63. package/dist/agent-connections/tools.d.ts.map +1 -0
  64. package/dist/agent-connections/tools.js +552 -0
  65. package/dist/agent-connections/tools.js.map +1 -0
  66. package/dist/agent-connections/types.d.ts +99 -0
  67. package/dist/agent-connections/types.d.ts.map +1 -0
  68. package/dist/agent-connections/types.js +7 -0
  69. package/dist/agent-connections/types.js.map +1 -0
  70. package/dist/agent-connections/untrusted-text.d.ts +5 -0
  71. package/dist/agent-connections/untrusted-text.d.ts.map +1 -0
  72. package/dist/agent-connections/untrusted-text.js +22 -0
  73. package/dist/agent-connections/untrusted-text.js.map +1 -0
  74. package/dist/agents/background-completion-events.d.ts +16 -0
  75. package/dist/agents/background-completion-events.d.ts.map +1 -0
  76. package/dist/agents/background-completion-events.js +19 -0
  77. package/dist/agents/background-completion-events.js.map +1 -0
  78. package/dist/agents/background-completion.d.ts +9 -0
  79. package/dist/agents/background-completion.d.ts.map +1 -0
  80. package/dist/agents/background-completion.js +59 -0
  81. package/dist/agents/background-completion.js.map +1 -0
  82. package/dist/agents/context-audit.d.ts +84 -0
  83. package/dist/agents/context-audit.d.ts.map +1 -0
  84. package/dist/agents/context-audit.js +118 -0
  85. package/dist/agents/context-audit.js.map +1 -0
  86. package/dist/agents/credential-resolver.d.ts +67 -0
  87. package/dist/agents/credential-resolver.d.ts.map +1 -0
  88. package/dist/agents/credential-resolver.js +136 -0
  89. package/dist/agents/credential-resolver.js.map +1 -0
  90. package/dist/agents/custom-provider-source.d.ts +35 -0
  91. package/dist/agents/custom-provider-source.d.ts.map +1 -0
  92. package/dist/agents/custom-provider-source.js +25 -0
  93. package/dist/agents/custom-provider-source.js.map +1 -0
  94. package/dist/agents/instructions.d.ts +40 -0
  95. package/dist/agents/instructions.d.ts.map +1 -0
  96. package/dist/agents/instructions.js +63 -0
  97. package/dist/agents/instructions.js.map +1 -0
  98. package/dist/agents/mastracode-gateway.d.ts +76 -0
  99. package/dist/agents/mastracode-gateway.d.ts.map +1 -0
  100. package/dist/agents/mastracode-gateway.js +434 -0
  101. package/dist/agents/mastracode-gateway.js.map +1 -0
  102. package/dist/agents/memory.d.ts +39 -0
  103. package/dist/agents/memory.d.ts.map +1 -0
  104. package/dist/agents/memory.js +266 -0
  105. package/dist/agents/memory.js.map +1 -0
  106. package/dist/agents/model.d.ts +123 -0
  107. package/dist/agents/model.d.ts.map +1 -0
  108. package/dist/agents/model.js +295 -0
  109. package/dist/agents/model.js.map +1 -0
  110. package/dist/agents/modes/build.d.ts +12 -0
  111. package/dist/agents/modes/build.d.ts.map +1 -0
  112. package/dist/agents/modes/build.js +36 -0
  113. package/dist/agents/modes/build.js.map +1 -0
  114. package/dist/agents/modes/explore.d.ts +10 -0
  115. package/dist/agents/modes/explore.d.ts.map +1 -0
  116. package/dist/agents/modes/explore.js +28 -0
  117. package/dist/agents/modes/explore.js.map +1 -0
  118. package/dist/agents/modes/plan.d.ts +8 -0
  119. package/dist/agents/modes/plan.d.ts.map +1 -0
  120. package/dist/agents/modes/plan.js +46 -0
  121. package/dist/agents/modes/plan.js.map +1 -0
  122. package/dist/agents/prompts/agent-instructions.d.ts +99 -0
  123. package/dist/agents/prompts/agent-instructions.d.ts.map +1 -0
  124. package/dist/agents/prompts/agent-instructions.js +275 -0
  125. package/dist/agents/prompts/agent-instructions.js.map +1 -0
  126. package/dist/agents/prompts/build.d.ts +12 -0
  127. package/dist/agents/prompts/build.d.ts.map +1 -0
  128. package/dist/agents/prompts/build.js +76 -0
  129. package/dist/agents/prompts/build.js.map +1 -0
  130. package/dist/agents/prompts/fast.d.ts +5 -0
  131. package/dist/agents/prompts/fast.d.ts.map +1 -0
  132. package/dist/agents/prompts/fast.js +26 -0
  133. package/dist/agents/prompts/fast.js.map +1 -0
  134. package/dist/agents/prompts/index.d.ts +54 -0
  135. package/dist/agents/prompts/index.d.ts.map +1 -0
  136. package/dist/agents/prompts/index.js +127 -0
  137. package/dist/agents/prompts/index.js.map +1 -0
  138. package/dist/agents/prompts/model.d.ts +5 -0
  139. package/dist/agents/prompts/model.d.ts.map +1 -0
  140. package/dist/agents/prompts/model.js +23 -0
  141. package/dist/agents/prompts/model.js.map +1 -0
  142. package/dist/agents/prompts/plan.d.ts +8 -0
  143. package/dist/agents/prompts/plan.d.ts.map +1 -0
  144. package/dist/agents/prompts/plan.js +129 -0
  145. package/dist/agents/prompts/plan.js.map +1 -0
  146. package/dist/agents/prompts/tool-guidance.d.ts +18 -0
  147. package/dist/agents/prompts/tool-guidance.d.ts.map +1 -0
  148. package/dist/agents/prompts/tool-guidance.js +181 -0
  149. package/dist/agents/prompts/tool-guidance.js.map +1 -0
  150. package/dist/agents/sandbox-filesystem.d.ts +151 -0
  151. package/dist/agents/sandbox-filesystem.d.ts.map +1 -0
  152. package/dist/agents/sandbox-filesystem.js +581 -0
  153. package/dist/agents/sandbox-filesystem.js.map +1 -0
  154. package/dist/agents/subagents/execute.d.ts +3 -0
  155. package/dist/agents/subagents/execute.d.ts.map +1 -0
  156. package/dist/agents/subagents/execute.js +27 -0
  157. package/dist/agents/subagents/execute.js.map +1 -0
  158. package/dist/agents/subagents/explore.d.ts +3 -0
  159. package/dist/agents/subagents/explore.d.ts.map +1 -0
  160. package/dist/agents/subagents/explore.js +18 -0
  161. package/dist/agents/subagents/explore.js.map +1 -0
  162. package/dist/agents/subagents/plan.d.ts +3 -0
  163. package/dist/agents/subagents/plan.d.ts.map +1 -0
  164. package/dist/agents/subagents/plan.js +18 -0
  165. package/dist/agents/subagents/plan.js.map +1 -0
  166. package/dist/agents/thread-caveman-state.d.ts +17 -0
  167. package/dist/agents/thread-caveman-state.d.ts.map +1 -0
  168. package/dist/agents/thread-caveman-state.js +107 -0
  169. package/dist/agents/thread-caveman-state.js.map +1 -0
  170. package/dist/agents/tool-availability.d.ts +12 -0
  171. package/dist/agents/tool-availability.d.ts.map +1 -0
  172. package/dist/agents/tool-availability.js +129 -0
  173. package/dist/agents/tool-availability.js.map +1 -0
  174. package/dist/agents/tools.d.ts +37 -0
  175. package/dist/agents/tools.d.ts.map +1 -0
  176. package/dist/agents/tools.js +131 -0
  177. package/dist/agents/tools.js.map +1 -0
  178. package/dist/agents/workflow-builder-agent.d.ts +2 -0
  179. package/dist/agents/workflow-builder-agent.d.ts.map +1 -0
  180. package/dist/agents/workflow-builder-agent.js +82 -0
  181. package/dist/agents/workflow-builder-agent.js.map +1 -0
  182. package/dist/agents/workspace.d.ts +33 -0
  183. package/dist/agents/workspace.d.ts.map +1 -0
  184. package/dist/agents/workspace.js +208 -0
  185. package/dist/agents/workspace.js.map +1 -0
  186. package/dist/analytics.d.ts +18 -0
  187. package/dist/analytics.d.ts.map +1 -0
  188. package/dist/analytics.js +162 -0
  189. package/dist/analytics.js.map +1 -0
  190. package/dist/auth/account-rotation-processor.d.ts +182 -0
  191. package/dist/auth/account-rotation-processor.d.ts.map +1 -0
  192. package/dist/auth/account-rotation-processor.js +609 -0
  193. package/dist/auth/account-rotation-processor.js.map +1 -0
  194. package/dist/auth/account-routing-context.d.ts +13 -0
  195. package/dist/auth/account-routing-context.d.ts.map +1 -0
  196. package/dist/auth/account-routing-context.js +41 -0
  197. package/dist/auth/account-routing-context.js.map +1 -0
  198. package/dist/auth/authorization-input.d.ts +16 -0
  199. package/dist/auth/authorization-input.d.ts.map +1 -0
  200. package/dist/auth/authorization-input.js +42 -0
  201. package/dist/auth/authorization-input.js.map +1 -0
  202. package/dist/auth/device-code.d.ts +93 -0
  203. package/dist/auth/device-code.d.ts.map +1 -0
  204. package/dist/auth/device-code.js +129 -0
  205. package/dist/auth/device-code.js.map +1 -0
  206. package/dist/auth/index.d.ts +13 -0
  207. package/dist/auth/index.d.ts.map +1 -0
  208. package/dist/auth/index.js +9 -0
  209. package/dist/auth/pkce.d.ts +13 -0
  210. package/dist/auth/pkce.d.ts.map +1 -0
  211. package/dist/auth/pkce.js +32 -0
  212. package/dist/auth/pkce.js.map +1 -0
  213. package/dist/auth/provider-auth-error.d.ts +12 -0
  214. package/dist/auth/provider-auth-error.d.ts.map +1 -0
  215. package/dist/auth/provider-auth-error.js +16 -0
  216. package/dist/auth/provider-auth-error.js.map +1 -0
  217. package/dist/auth/providers/anthropic.d.ts +40 -0
  218. package/dist/auth/providers/anthropic.d.ts.map +1 -0
  219. package/dist/auth/providers/anthropic.js +120 -0
  220. package/dist/auth/providers/anthropic.js.map +1 -0
  221. package/dist/auth/providers/github-copilot.d.ts +154 -0
  222. package/dist/auth/providers/github-copilot.d.ts.map +1 -0
  223. package/dist/auth/providers/github-copilot.js +362 -0
  224. package/dist/auth/providers/github-copilot.js.map +1 -0
  225. package/dist/auth/providers/kimi-coding.d.ts +38 -0
  226. package/dist/auth/providers/kimi-coding.d.ts.map +1 -0
  227. package/dist/auth/providers/kimi-coding.js +228 -0
  228. package/dist/auth/providers/kimi-coding.js.map +1 -0
  229. package/dist/auth/providers/openai-codex.d.ts +141 -0
  230. package/dist/auth/providers/openai-codex.d.ts.map +1 -0
  231. package/dist/auth/providers/openai-codex.js +533 -0
  232. package/dist/auth/providers/openai-codex.js.map +1 -0
  233. package/dist/auth/providers/xai.d.ts +64 -0
  234. package/dist/auth/providers/xai.d.ts.map +1 -0
  235. package/dist/auth/providers/xai.js +226 -0
  236. package/dist/auth/providers/xai.js.map +1 -0
  237. package/dist/auth/storage.d.ts +214 -0
  238. package/dist/auth/storage.d.ts.map +1 -0
  239. package/dist/auth/storage.js +774 -0
  240. package/dist/auth/storage.js.map +1 -0
  241. package/dist/auth/types.d.ts +164 -0
  242. package/dist/auth/types.d.ts.map +1 -0
  243. package/dist/auth/types.js +1 -0
  244. package/dist/clipboard/index.d.ts +26 -0
  245. package/dist/clipboard/index.d.ts.map +1 -0
  246. package/dist/clipboard/index.js +226 -0
  247. package/dist/clipboard/index.js.map +1 -0
  248. package/dist/constants.d.ts +12 -0
  249. package/dist/constants.d.ts.map +1 -0
  250. package/dist/constants.js +20 -0
  251. package/dist/constants.js.map +1 -0
  252. package/dist/error-classification.d.ts +10 -0
  253. package/dist/error-classification.d.ts.map +1 -0
  254. package/dist/error-classification.js +22 -0
  255. package/dist/error-classification.js.map +1 -0
  256. package/dist/evals/context-builder.d.ts +41 -0
  257. package/dist/evals/context-builder.d.ts.map +1 -0
  258. package/dist/evals/context-builder.js +161 -0
  259. package/dist/evals/context-builder.js.map +1 -0
  260. package/dist/evals/index.d.ts +4 -0
  261. package/dist/evals/index.d.ts.map +1 -0
  262. package/dist/evals/index.js +5 -0
  263. package/dist/evals/scorers/classify-command.d.ts +31 -0
  264. package/dist/evals/scorers/classify-command.d.ts.map +1 -0
  265. package/dist/evals/scorers/classify-command.js +73 -0
  266. package/dist/evals/scorers/classify-command.js.map +1 -0
  267. package/dist/evals/scorers/efficiency.d.ts +44 -0
  268. package/dist/evals/scorers/efficiency.d.ts.map +1 -0
  269. package/dist/evals/scorers/efficiency.js +259 -0
  270. package/dist/evals/scorers/efficiency.js.map +1 -0
  271. package/dist/evals/scorers/extract-tools.d.ts +25 -0
  272. package/dist/evals/scorers/extract-tools.d.ts.map +1 -0
  273. package/dist/evals/scorers/extract-tools.js +60 -0
  274. package/dist/evals/scorers/extract-tools.js.map +1 -0
  275. package/dist/evals/scorers/index.d.ts +3 -0
  276. package/dist/evals/scorers/index.d.ts.map +1 -0
  277. package/dist/evals/scorers/index.js +3 -0
  278. package/dist/evals/scorers/outcome.d.ts +49 -0
  279. package/dist/evals/scorers/outcome.d.ts.map +1 -0
  280. package/dist/evals/scorers/outcome.js +347 -0
  281. package/dist/evals/scorers/outcome.js.map +1 -0
  282. package/dist/experimental-agent.d.ts +11 -0
  283. package/dist/experimental-agent.d.ts.map +1 -0
  284. package/dist/experimental-agent.js +36 -0
  285. package/dist/experimental-agent.js.map +1 -0
  286. package/dist/goal-manager.d.ts +114 -0
  287. package/dist/goal-manager.d.ts.map +1 -0
  288. package/dist/goal-manager.js +354 -0
  289. package/dist/goal-manager.js.map +1 -0
  290. package/dist/goal-signal.d.ts +14 -0
  291. package/dist/goal-signal.d.ts.map +1 -0
  292. package/dist/goal-signal.js +17 -0
  293. package/dist/goal-signal.js.map +1 -0
  294. package/dist/headless/cli.d.ts +48 -0
  295. package/dist/headless/cli.d.ts.map +1 -0
  296. package/dist/headless/cli.js +239 -0
  297. package/dist/headless/cli.js.map +1 -0
  298. package/dist/headless/flags.d.ts +33 -0
  299. package/dist/headless/flags.d.ts.map +1 -0
  300. package/dist/headless/flags.js +203 -0
  301. package/dist/headless/flags.js.map +1 -0
  302. package/dist/headless/format.d.ts +39 -0
  303. package/dist/headless/format.d.ts.map +1 -0
  304. package/dist/headless/format.js +85 -0
  305. package/dist/headless/format.js.map +1 -0
  306. package/dist/headless/index.d.ts +25 -0
  307. package/dist/headless/index.d.ts.map +1 -0
  308. package/dist/headless/index.js +6 -0
  309. package/dist/headless/policy.d.ts +17 -0
  310. package/dist/headless/policy.d.ts.map +1 -0
  311. package/dist/headless/policy.js +42 -0
  312. package/dist/headless/policy.js.map +1 -0
  313. package/dist/headless/run-mc.d.ts +7 -0
  314. package/dist/headless/run-mc.d.ts.map +1 -0
  315. package/dist/headless/run-mc.js +408 -0
  316. package/dist/headless/run-mc.js.map +1 -0
  317. package/dist/headless/types.d.ts +174 -0
  318. package/dist/headless/types.d.ts.map +1 -0
  319. package/dist/headless/types.js +19 -0
  320. package/dist/headless/types.js.map +1 -0
  321. package/dist/hooks/config.d.ts +11 -0
  322. package/dist/hooks/config.d.ts.map +1 -0
  323. package/dist/hooks/config.js +80 -0
  324. package/dist/hooks/config.js.map +1 -0
  325. package/dist/hooks/executor.d.ts +13 -0
  326. package/dist/hooks/executor.d.ts.map +1 -0
  327. package/dist/hooks/executor.js +129 -0
  328. package/dist/hooks/executor.js.map +1 -0
  329. package/dist/hooks/index.d.ts +6 -0
  330. package/dist/hooks/index.d.ts.map +1 -0
  331. package/dist/hooks/index.js +5 -0
  332. package/dist/hooks/manager.d.ts +54 -0
  333. package/dist/hooks/manager.d.ts.map +1 -0
  334. package/dist/hooks/manager.js +241 -0
  335. package/dist/hooks/manager.js.map +1 -0
  336. package/dist/hooks/types.d.ts +172 -0
  337. package/dist/hooks/types.d.ts.map +1 -0
  338. package/dist/hooks/types.js +8 -0
  339. package/dist/hooks/types.js.map +1 -0
  340. package/dist/index.d.ts +463 -0
  341. package/dist/index.d.ts.map +1 -0
  342. package/dist/index.js +1305 -0
  343. package/dist/index.js.map +1 -0
  344. package/dist/ipc/ipc-reporter.d.ts +14 -0
  345. package/dist/ipc/ipc-reporter.d.ts.map +1 -0
  346. package/dist/ipc/ipc-reporter.js +21 -0
  347. package/dist/ipc/ipc-reporter.js.map +1 -0
  348. package/dist/knowledge-inspector.d.ts +123 -0
  349. package/dist/knowledge-inspector.d.ts.map +1 -0
  350. package/dist/knowledge-inspector.js +516 -0
  351. package/dist/knowledge-inspector.js.map +1 -0
  352. package/dist/knowledge-scope.d.ts +35 -0
  353. package/dist/knowledge-scope.d.ts.map +1 -0
  354. package/dist/knowledge-scope.js +47 -0
  355. package/dist/knowledge-scope.js.map +1 -0
  356. package/dist/lsp/client.d.ts +56 -0
  357. package/dist/lsp/client.d.ts.map +1 -0
  358. package/dist/lsp/client.js +251 -0
  359. package/dist/lsp/client.js.map +1 -0
  360. package/dist/lsp/index.d.ts +4 -0
  361. package/dist/lsp/index.d.ts.map +1 -0
  362. package/dist/lsp/index.js +4 -0
  363. package/dist/lsp/language.d.ts +9 -0
  364. package/dist/lsp/language.d.ts.map +1 -0
  365. package/dist/lsp/language.js +44 -0
  366. package/dist/lsp/language.js.map +1 -0
  367. package/dist/lsp/manager.d.ts +34 -0
  368. package/dist/lsp/manager.d.ts.map +1 -0
  369. package/dist/lsp/manager.js +82 -0
  370. package/dist/lsp/manager.js.map +1 -0
  371. package/dist/lsp/server.d.ts +27 -0
  372. package/dist/lsp/server.d.ts.map +1 -0
  373. package/dist/lsp/server.js +159 -0
  374. package/dist/lsp/server.js.map +1 -0
  375. package/dist/lsp/workspace.d.ts +9 -0
  376. package/dist/lsp/workspace.d.ts.map +1 -0
  377. package/dist/lsp/workspace.js +55 -0
  378. package/dist/lsp/workspace.js.map +1 -0
  379. package/dist/mcp/config.d.ts +77 -0
  380. package/dist/mcp/config.d.ts.map +1 -0
  381. package/dist/mcp/config.js +316 -0
  382. package/dist/mcp/config.js.map +1 -0
  383. package/dist/mcp/index.d.ts +6 -0
  384. package/dist/mcp/index.d.ts.map +1 -0
  385. package/dist/mcp/index.js +3 -0
  386. package/dist/mcp/manager.d.ts +102 -0
  387. package/dist/mcp/manager.d.ts.map +1 -0
  388. package/dist/mcp/manager.js +650 -0
  389. package/dist/mcp/manager.js.map +1 -0
  390. package/dist/mcp/state.d.ts +35 -0
  391. package/dist/mcp/state.d.ts.map +1 -0
  392. package/dist/mcp/state.js +97 -0
  393. package/dist/mcp/state.js.map +1 -0
  394. package/dist/mcp/types.d.ts +139 -0
  395. package/dist/mcp/types.d.ts.map +1 -0
  396. package/dist/mcp/types.js +1 -0
  397. package/dist/onboarding/custom-packs.d.ts +7 -0
  398. package/dist/onboarding/custom-packs.d.ts.map +1 -0
  399. package/dist/onboarding/custom-packs.js +20 -0
  400. package/dist/onboarding/custom-packs.js.map +1 -0
  401. package/dist/onboarding/custom-providers.d.ts +4 -0
  402. package/dist/onboarding/custom-providers.d.ts.map +1 -0
  403. package/dist/onboarding/custom-providers.js +30 -0
  404. package/dist/onboarding/custom-providers.js.map +1 -0
  405. package/dist/onboarding/index.d.ts +5 -0
  406. package/dist/onboarding/index.d.ts.map +1 -0
  407. package/dist/onboarding/index.js +3 -0
  408. package/dist/onboarding/om-settings.d.ts +47 -0
  409. package/dist/onboarding/om-settings.d.ts.map +1 -0
  410. package/dist/onboarding/om-settings.js +83 -0
  411. package/dist/onboarding/om-settings.js.map +1 -0
  412. package/dist/onboarding/pack-activation.d.ts +52 -0
  413. package/dist/onboarding/pack-activation.d.ts.map +1 -0
  414. package/dist/onboarding/pack-activation.js +108 -0
  415. package/dist/onboarding/pack-activation.js.map +1 -0
  416. package/dist/onboarding/packs.d.ts +102 -0
  417. package/dist/onboarding/packs.d.ts.map +1 -0
  418. package/dist/onboarding/packs.js +278 -0
  419. package/dist/onboarding/packs.js.map +1 -0
  420. package/dist/onboarding/settings.d.ts +538 -0
  421. package/dist/onboarding/settings.d.ts.map +1 -0
  422. package/dist/onboarding/settings.js +1060 -0
  423. package/dist/onboarding/settings.js.map +1 -0
  424. package/dist/permissions.d.ts +55 -0
  425. package/dist/permissions.d.ts.map +1 -0
  426. package/dist/permissions.js +142 -0
  427. package/dist/permissions.js.map +1 -0
  428. package/dist/plugin.d.ts +156 -0
  429. package/dist/plugin.d.ts.map +1 -0
  430. package/dist/plugin.js +30 -0
  431. package/dist/plugin.js.map +1 -0
  432. package/dist/plugins/dependencies.d.ts +9 -0
  433. package/dist/plugins/dependencies.d.ts.map +1 -0
  434. package/dist/plugins/dependencies.js +87 -0
  435. package/dist/plugins/dependencies.js.map +1 -0
  436. package/dist/plugins/install.d.ts +21 -0
  437. package/dist/plugins/install.d.ts.map +1 -0
  438. package/dist/plugins/install.js +190 -0
  439. package/dist/plugins/install.js.map +1 -0
  440. package/dist/plugins/loader.d.ts +19 -0
  441. package/dist/plugins/loader.d.ts.map +1 -0
  442. package/dist/plugins/loader.js +260 -0
  443. package/dist/plugins/loader.js.map +1 -0
  444. package/dist/plugins/manager.d.ts +98 -0
  445. package/dist/plugins/manager.d.ts.map +1 -0
  446. package/dist/plugins/manager.js +456 -0
  447. package/dist/plugins/manager.js.map +1 -0
  448. package/dist/plugins/manifest.d.ts +14 -0
  449. package/dist/plugins/manifest.d.ts.map +1 -0
  450. package/dist/plugins/manifest.js +50 -0
  451. package/dist/plugins/manifest.js.map +1 -0
  452. package/dist/plugins/package-link.d.ts +3 -0
  453. package/dist/plugins/package-link.d.ts.map +1 -0
  454. package/dist/plugins/package-link.js +61 -0
  455. package/dist/plugins/package-link.js.map +1 -0
  456. package/dist/plugins/paths.d.ts +10 -0
  457. package/dist/plugins/paths.d.ts.map +1 -0
  458. package/dist/plugins/paths.js +25 -0
  459. package/dist/plugins/paths.js.map +1 -0
  460. package/dist/plugins/registry.d.ts +8 -0
  461. package/dist/plugins/registry.d.ts.map +1 -0
  462. package/dist/plugins/registry.js +112 -0
  463. package/dist/plugins/registry.js.map +1 -0
  464. package/dist/plugins/scaffold.d.ts +10 -0
  465. package/dist/plugins/scaffold.d.ts.map +1 -0
  466. package/dist/plugins/scaffold.js +116 -0
  467. package/dist/plugins/scaffold.js.map +1 -0
  468. package/dist/plugins/signal-lane.d.ts +58 -0
  469. package/dist/plugins/signal-lane.d.ts.map +1 -0
  470. package/dist/plugins/signal-lane.js +166 -0
  471. package/dist/plugins/signal-lane.js.map +1 -0
  472. package/dist/plugins/types.d.ts +81 -0
  473. package/dist/plugins/types.d.ts.map +1 -0
  474. package/dist/plugins/types.js +1 -0
  475. package/dist/process-memory-diagnostics.d.ts +135 -0
  476. package/dist/process-memory-diagnostics.d.ts.map +1 -0
  477. package/dist/process-memory-diagnostics.js +499 -0
  478. package/dist/process-memory-diagnostics.js.map +1 -0
  479. package/dist/processors/plan-rejection-abort.d.ts +12 -0
  480. package/dist/processors/plan-rejection-abort.d.ts.map +1 -0
  481. package/dist/processors/plan-rejection-abort.js +54 -0
  482. package/dist/processors/plan-rejection-abort.js.map +1 -0
  483. package/dist/providers/amazon-bedrock-gateway.d.ts +47 -0
  484. package/dist/providers/amazon-bedrock-gateway.d.ts.map +1 -0
  485. package/dist/providers/amazon-bedrock-gateway.js +144 -0
  486. package/dist/providers/amazon-bedrock-gateway.js.map +1 -0
  487. package/dist/providers/amazon-bedrock.d.ts +28 -0
  488. package/dist/providers/amazon-bedrock.d.ts.map +1 -0
  489. package/dist/providers/amazon-bedrock.js +102 -0
  490. package/dist/providers/amazon-bedrock.js.map +1 -0
  491. package/dist/providers/anthropic-prompt-cache.d.ts +19 -0
  492. package/dist/providers/anthropic-prompt-cache.d.ts.map +1 -0
  493. package/dist/providers/anthropic-prompt-cache.js +11 -0
  494. package/dist/providers/anthropic-prompt-cache.js.map +1 -0
  495. package/dist/providers/anthropic-thinking.d.ts +5 -0
  496. package/dist/providers/anthropic-thinking.d.ts.map +1 -0
  497. package/dist/providers/anthropic-thinking.js +25 -0
  498. package/dist/providers/anthropic-thinking.js.map +1 -0
  499. package/dist/providers/claude-max.d.ts +67 -0
  500. package/dist/providers/claude-max.d.ts.map +1 -0
  501. package/dist/providers/claude-max.js +226 -0
  502. package/dist/providers/claude-max.js.map +1 -0
  503. package/dist/providers/github-copilot-gateway.d.ts +35 -0
  504. package/dist/providers/github-copilot-gateway.d.ts.map +1 -0
  505. package/dist/providers/github-copilot-gateway.js +61 -0
  506. package/dist/providers/github-copilot-gateway.js.map +1 -0
  507. package/dist/providers/github-copilot.d.ts +60 -0
  508. package/dist/providers/github-copilot.d.ts.map +1 -0
  509. package/dist/providers/github-copilot.js +318 -0
  510. package/dist/providers/github-copilot.js.map +1 -0
  511. package/dist/providers/google-thinking.d.ts +31 -0
  512. package/dist/providers/google-thinking.d.ts.map +1 -0
  513. package/dist/providers/google-thinking.js +67 -0
  514. package/dist/providers/google-thinking.js.map +1 -0
  515. package/dist/providers/kimi-coding.d.ts +14 -0
  516. package/dist/providers/kimi-coding.d.ts.map +1 -0
  517. package/dist/providers/kimi-coding.js +78 -0
  518. package/dist/providers/kimi-coding.js.map +1 -0
  519. package/dist/providers/model-ids.d.ts +30 -0
  520. package/dist/providers/model-ids.d.ts.map +1 -0
  521. package/dist/providers/model-ids.js +79 -0
  522. package/dist/providers/model-ids.js.map +1 -0
  523. package/dist/providers/openai-codex.d.ts +84 -0
  524. package/dist/providers/openai-codex.d.ts.map +1 -0
  525. package/dist/providers/openai-codex.js +347 -0
  526. package/dist/providers/openai-codex.js.map +1 -0
  527. package/dist/providers/provider-thinking.d.ts +23 -0
  528. package/dist/providers/provider-thinking.d.ts.map +1 -0
  529. package/dist/providers/provider-thinking.js +64 -0
  530. package/dist/providers/provider-thinking.js.map +1 -0
  531. package/dist/providers/thinking-request.d.ts +14 -0
  532. package/dist/providers/thinking-request.d.ts.map +1 -0
  533. package/dist/providers/thinking-request.js +90 -0
  534. package/dist/providers/thinking-request.js.map +1 -0
  535. package/dist/providers/xai.d.ts +33 -0
  536. package/dist/providers/xai.d.ts.map +1 -0
  537. package/dist/providers/xai.js +71 -0
  538. package/dist/providers/xai.js.map +1 -0
  539. package/dist/schedules/index.d.ts +10 -0
  540. package/dist/schedules/index.d.ts.map +1 -0
  541. package/dist/schedules/index.js +6 -0
  542. package/dist/schedules/interval.d.ts +49 -0
  543. package/dist/schedules/interval.d.ts.map +1 -0
  544. package/dist/schedules/interval.js +215 -0
  545. package/dist/schedules/interval.js.map +1 -0
  546. package/dist/schedules/prompt.d.ts +36 -0
  547. package/dist/schedules/prompt.d.ts.map +1 -0
  548. package/dist/schedules/prompt.js +39 -0
  549. package/dist/schedules/prompt.js.map +1 -0
  550. package/dist/schedules/run-script.d.ts +8 -0
  551. package/dist/schedules/run-script.d.ts.map +1 -0
  552. package/dist/schedules/run-script.js +83 -0
  553. package/dist/schedules/run-script.js.map +1 -0
  554. package/dist/schedules/scheduler.d.ts +101 -0
  555. package/dist/schedules/scheduler.d.ts.map +1 -0
  556. package/dist/schedules/scheduler.js +169 -0
  557. package/dist/schedules/scheduler.js.map +1 -0
  558. package/dist/schedules/tools.d.ts +57 -0
  559. package/dist/schedules/tools.d.ts.map +1 -0
  560. package/dist/schedules/tools.js +220 -0
  561. package/dist/schedules/tools.js.map +1 -0
  562. package/dist/schema.d.ts +499 -0
  563. package/dist/schema.d.ts.map +1 -0
  564. package/dist/schema.js +134 -0
  565. package/dist/schema.js.map +1 -0
  566. package/dist/theme-palette.d.ts +17 -0
  567. package/dist/theme-palette.d.ts.map +1 -0
  568. package/dist/theme-palette.js +21 -0
  569. package/dist/theme-palette.js.map +1 -0
  570. package/dist/thinking-catalog.d.ts +4 -0
  571. package/dist/thinking-catalog.d.ts.map +1 -0
  572. package/dist/thinking-catalog.js +13 -0
  573. package/dist/thinking-catalog.js.map +1 -0
  574. package/dist/thinking.d.ts +37 -0
  575. package/dist/thinking.d.ts.map +1 -0
  576. package/dist/thinking.js +137 -0
  577. package/dist/thinking.js.map +1 -0
  578. package/dist/tool-names.d.ts +77 -0
  579. package/dist/tool-names.d.ts.map +1 -0
  580. package/dist/tool-names.js +56 -0
  581. package/dist/tool-names.js.map +1 -0
  582. package/dist/tools/index.d.ts +6 -0
  583. package/dist/tools/index.d.ts.map +1 -0
  584. package/dist/tools/index.js +3 -0
  585. package/dist/tools/request-sandbox-access.d.ts +6 -0
  586. package/dist/tools/request-sandbox-access.d.ts.map +1 -0
  587. package/dist/tools/request-sandbox-access.js +80 -0
  588. package/dist/tools/request-sandbox-access.js.map +1 -0
  589. package/dist/tools/utils.d.ts +20 -0
  590. package/dist/tools/utils.d.ts.map +1 -0
  591. package/dist/tools/utils.js +32 -0
  592. package/dist/tools/utils.js.map +1 -0
  593. package/dist/tools/web-search.d.ts +114 -0
  594. package/dist/tools/web-search.d.ts.map +1 -0
  595. package/dist/tools/web-search.js +155 -0
  596. package/dist/tools/web-search.js.map +1 -0
  597. package/dist/tools/workflows/create-workflow.d.ts +7 -0
  598. package/dist/tools/workflows/create-workflow.d.ts.map +1 -0
  599. package/dist/tools/workflows/create-workflow.js +81 -0
  600. package/dist/tools/workflows/create-workflow.js.map +1 -0
  601. package/dist/tools/workflows/delete-workflow.d.ts +7 -0
  602. package/dist/tools/workflows/delete-workflow.d.ts.map +1 -0
  603. package/dist/tools/workflows/delete-workflow.js +21 -0
  604. package/dist/tools/workflows/delete-workflow.js.map +1 -0
  605. package/dist/tools/workflows/ephemeral-memory.d.ts +28 -0
  606. package/dist/tools/workflows/ephemeral-memory.d.ts.map +1 -0
  607. package/dist/tools/workflows/ephemeral-memory.js +44 -0
  608. package/dist/tools/workflows/ephemeral-memory.js.map +1 -0
  609. package/dist/tools/workflows/extract-json-schema.d.ts +12 -0
  610. package/dist/tools/workflows/extract-json-schema.d.ts.map +1 -0
  611. package/dist/tools/workflows/extract-json-schema.js +22 -0
  612. package/dist/tools/workflows/extract-json-schema.js.map +1 -0
  613. package/dist/tools/workflows/get-workflow.d.ts +11 -0
  614. package/dist/tools/workflows/get-workflow.d.ts.map +1 -0
  615. package/dist/tools/workflows/get-workflow.js +34 -0
  616. package/dist/tools/workflows/get-workflow.js.map +1 -0
  617. package/dist/tools/workflows/list-available-agents.d.ts +8 -0
  618. package/dist/tools/workflows/list-available-agents.d.ts.map +1 -0
  619. package/dist/tools/workflows/list-available-agents.js +32 -0
  620. package/dist/tools/workflows/list-available-agents.js.map +1 -0
  621. package/dist/tools/workflows/list-available-classifiers.d.ts +19 -0
  622. package/dist/tools/workflows/list-available-classifiers.d.ts.map +1 -0
  623. package/dist/tools/workflows/list-available-classifiers.js +56 -0
  624. package/dist/tools/workflows/list-available-classifiers.js.map +1 -0
  625. package/dist/tools/workflows/list-available-tools.d.ts +9 -0
  626. package/dist/tools/workflows/list-available-tools.d.ts.map +1 -0
  627. package/dist/tools/workflows/list-available-tools.js +40 -0
  628. package/dist/tools/workflows/list-available-tools.js.map +1 -0
  629. package/dist/tools/workflows/list-available-workflows.d.ts +9 -0
  630. package/dist/tools/workflows/list-available-workflows.d.ts.map +1 -0
  631. package/dist/tools/workflows/list-available-workflows.js +32 -0
  632. package/dist/tools/workflows/list-available-workflows.js.map +1 -0
  633. package/dist/tools/workflows/list-workflows.d.ts +9 -0
  634. package/dist/tools/workflows/list-workflows.d.ts.map +1 -0
  635. package/dist/tools/workflows/list-workflows.js +33 -0
  636. package/dist/tools/workflows/list-workflows.js.map +1 -0
  637. package/dist/tools/workflows/run-workflow.d.ts +9 -0
  638. package/dist/tools/workflows/run-workflow.d.ts.map +1 -0
  639. package/dist/tools/workflows/run-workflow.js +52 -0
  640. package/dist/tools/workflows/run-workflow.js.map +1 -0
  641. package/dist/tools/workflows/save-workflow.d.ts +1125 -0
  642. package/dist/tools/workflows/save-workflow.d.ts.map +1 -0
  643. package/dist/tools/workflows/save-workflow.js +28 -0
  644. package/dist/tools/workflows/save-workflow.js.map +1 -0
  645. package/dist/tools/workflows/tool-ids.d.ts +16 -0
  646. package/dist/tools/workflows/tool-ids.d.ts.map +1 -0
  647. package/dist/tools/workflows/tool-ids.js +20 -0
  648. package/dist/tools/workflows/tool-ids.js.map +1 -0
  649. package/dist/utils/binaries.d.ts +7 -0
  650. package/dist/utils/binaries.d.ts.map +1 -0
  651. package/dist/utils/binaries.js +78 -0
  652. package/dist/utils/binaries.js.map +1 -0
  653. package/dist/utils/debug-log.d.ts +12 -0
  654. package/dist/utils/debug-log.d.ts.map +1 -0
  655. package/dist/utils/debug-log.js +59 -0
  656. package/dist/utils/debug-log.js.map +1 -0
  657. package/dist/utils/discarding-scores-storage.d.ts +33 -0
  658. package/dist/utils/discarding-scores-storage.d.ts.map +1 -0
  659. package/dist/utils/discarding-scores-storage.js +54 -0
  660. package/dist/utils/discarding-scores-storage.js.map +1 -0
  661. package/dist/utils/errors.d.ts +36 -0
  662. package/dist/utils/errors.d.ts.map +1 -0
  663. package/dist/utils/errors.js +196 -0
  664. package/dist/utils/errors.js.map +1 -0
  665. package/dist/utils/gateway-sync.d.ts +26 -0
  666. package/dist/utils/gateway-sync.d.ts.map +1 -0
  667. package/dist/utils/gateway-sync.js +61 -0
  668. package/dist/utils/gateway-sync.js.map +1 -0
  669. package/dist/utils/maintenance-lock.d.ts +42 -0
  670. package/dist/utils/maintenance-lock.d.ts.map +1 -0
  671. package/dist/utils/maintenance-lock.js +199 -0
  672. package/dist/utils/maintenance-lock.js.map +1 -0
  673. package/dist/utils/notification-dispatch.d.ts +59 -0
  674. package/dist/utils/notification-dispatch.d.ts.map +1 -0
  675. package/dist/utils/notification-dispatch.js +109 -0
  676. package/dist/utils/notification-dispatch.js.map +1 -0
  677. package/dist/utils/open-url.d.ts +10 -0
  678. package/dist/utils/open-url.d.ts.map +1 -0
  679. package/dist/utils/open-url.js +30 -0
  680. package/dist/utils/open-url.js.map +1 -0
  681. package/dist/utils/path-security.d.ts +2 -0
  682. package/dist/utils/path-security.d.ts.map +1 -0
  683. package/dist/utils/path-security.js +10 -0
  684. package/dist/utils/path-security.js.map +1 -0
  685. package/dist/utils/plan-diff.d.ts +25 -0
  686. package/dist/utils/plan-diff.d.ts.map +1 -0
  687. package/dist/utils/plan-diff.js +62 -0
  688. package/dist/utils/plan-diff.js.map +1 -0
  689. package/dist/utils/plans.d.ts +59 -0
  690. package/dist/utils/plans.d.ts.map +1 -0
  691. package/dist/utils/plans.js +117 -0
  692. package/dist/utils/plans.js.map +1 -0
  693. package/dist/utils/project.d.ts +160 -0
  694. package/dist/utils/project.d.ts.map +1 -0
  695. package/dist/utils/project.js +364 -0
  696. package/dist/utils/project.js.map +1 -0
  697. package/dist/utils/prune-cli.d.ts +24 -0
  698. package/dist/utils/prune-cli.d.ts.map +1 -0
  699. package/dist/utils/prune-cli.js +125 -0
  700. package/dist/utils/prune-cli.js.map +1 -0
  701. package/dist/utils/signals-pubsub.d.ts +101 -0
  702. package/dist/utils/signals-pubsub.d.ts.map +1 -0
  703. package/dist/utils/signals-pubsub.js +410 -0
  704. package/dist/utils/signals-pubsub.js.map +1 -0
  705. package/dist/utils/slash-command-loader.d.ts +52 -0
  706. package/dist/utils/slash-command-loader.d.ts.map +1 -0
  707. package/dist/utils/slash-command-loader.js +142 -0
  708. package/dist/utils/slash-command-loader.js.map +1 -0
  709. package/dist/utils/slash-command-processor.d.ts +14 -0
  710. package/dist/utils/slash-command-processor.d.ts.map +1 -0
  711. package/dist/utils/slash-command-processor.js +109 -0
  712. package/dist/utils/slash-command-processor.js.map +1 -0
  713. package/dist/utils/stdin-pipe.d.ts +33 -0
  714. package/dist/utils/stdin-pipe.d.ts.map +1 -0
  715. package/dist/utils/stdin-pipe.js +96 -0
  716. package/dist/utils/stdin-pipe.js.map +1 -0
  717. package/dist/utils/storage-factory.d.ts +50 -0
  718. package/dist/utils/storage-factory.d.ts.map +1 -0
  719. package/dist/utils/storage-factory.js +121 -0
  720. package/dist/utils/storage-factory.js.map +1 -0
  721. package/dist/utils/storage-maintenance.d.ts +121 -0
  722. package/dist/utils/storage-maintenance.d.ts.map +1 -0
  723. package/dist/utils/storage-maintenance.js +355 -0
  724. package/dist/utils/storage-maintenance.js.map +1 -0
  725. package/dist/utils/thread-lock.d.ts +26 -0
  726. package/dist/utils/thread-lock.d.ts.map +1 -0
  727. package/dist/utils/thread-lock.js +112 -0
  728. package/dist/utils/thread-lock.js.map +1 -0
  729. package/dist/utils/token-estimator.d.ts +3 -0
  730. package/dist/utils/token-estimator.d.ts.map +1 -0
  731. package/dist/utils/token-estimator.js +21 -0
  732. package/dist/utils/token-estimator.js.map +1 -0
  733. package/dist/utils/update-check.d.ts +151 -0
  734. package/dist/utils/update-check.d.ts.map +1 -0
  735. package/dist/utils/update-check.js +432 -0
  736. package/dist/utils/update-check.js.map +1 -0
  737. package/dist/voice/stt-registry.d.ts +64 -0
  738. package/dist/voice/stt-registry.d.ts.map +1 -0
  739. package/dist/voice/stt-registry.js +144 -0
  740. package/dist/voice/stt-registry.js.map +1 -0
  741. package/dist/workflows/register-primitives.d.ts +52 -0
  742. package/dist/workflows/register-primitives.d.ts.map +1 -0
  743. package/dist/workflows/register-primitives.js +40 -0
  744. package/dist/workflows/register-primitives.js.map +1 -0
  745. package/dist/workflows/service.d.ts +64 -0
  746. package/dist/workflows/service.d.ts.map +1 -0
  747. package/dist/workflows/service.js +53 -0
  748. package/dist/workflows/service.js.map +1 -0
  749. package/package.json +107 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xai.d.ts","sourceRoot":"","sources":["../../../src/auth/providers/xai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAyB,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAwEjG;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,gBAAgB,CAAA;CAAE,GACrD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,qBAAqB,CAAA;CAAE,GACzE;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgC5G;AAsDD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAgB9B;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAWxF;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,WAAW,EACpB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAgB3B;AAgBD,eAAO,MAAM,gBAAgB,EAAE,sBA2B9B,CAAC"}
@@ -0,0 +1,226 @@
1
+ import { createDeviceCodePollState, pollDeviceCodeUntilComplete, stepDeviceCodePoll } from "../device-code.js";
2
+ //#region src/auth/providers/xai.ts
3
+ /**
4
+ * xAI OAuth flow (Grok)
5
+ *
6
+ * Ported from pi-mono's xAI OAuth implementation:
7
+ * https://github.com/badlogic/pi-mono/blob/main/packages/ai/src/utils/oauth/xai.ts
8
+ *
9
+ * xAI uses a standard RFC 8628 device authorization grant, so the flow needs
10
+ * no inbound connection to the server. The primitives are split into
11
+ * `startXAIDeviceLogin()` / `pollXAIDeviceLogin()` so web routes can persist
12
+ * the JSON-serializable pending state between HTTP requests; the blocking
13
+ * `loginXAI()` wraps them for TUI use.
14
+ */
15
+ const CLIENT_ID = "b1a00492-073a-47ea-816f-4c329264a828";
16
+ const DEVICE_CODE_URL = "https://auth.x.ai/oauth2/device/code";
17
+ const TOKEN_URL = "https://auth.x.ai/oauth2/token";
18
+ const SCOPE = "openid profile email offline_access grok-cli:access api:access";
19
+ const DEVICE_CODE_GRANT_TYPE = "urn:ietf:params:oauth:grant-type:device_code";
20
+ const DEFAULT_TOKEN_EXPIRES_IN_SECONDS = 3600;
21
+ const REQUEST_TIMEOUT_MS = 3e4;
22
+ const REFRESH_SKEW_MS = 300 * 1e3;
23
+ async function postForm(url, params, signal) {
24
+ const timeoutSignal = AbortSignal.timeout(REQUEST_TIMEOUT_MS);
25
+ return fetch(url, {
26
+ method: "POST",
27
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
28
+ body: new URLSearchParams(params).toString(),
29
+ signal: signal ? AbortSignal.any([signal, timeoutSignal]) : timeoutSignal
30
+ });
31
+ }
32
+ /** The verification URI is opened by the user; only accept https URLs. */
33
+ function validateVerificationUri(raw) {
34
+ let parsed;
35
+ try {
36
+ parsed = new URL(raw);
37
+ } catch {
38
+ throw new Error("xAI device authorization returned an invalid verification_uri");
39
+ }
40
+ if (parsed.protocol !== "https:") throw new Error("xAI device authorization returned a non-https verification_uri");
41
+ return parsed.toString();
42
+ }
43
+ function credentialsFromTokenResponse(data, previousRefreshToken, previousIdToken) {
44
+ const record = data ?? {};
45
+ const access = record.access_token;
46
+ if (typeof access !== "string" || access.length === 0) throw new Error("xAI token response missing access_token");
47
+ const refresh = typeof record.refresh_token === "string" && record.refresh_token.length > 0 ? record.refresh_token : previousRefreshToken;
48
+ if (!refresh) throw new Error("xAI token response missing refresh_token");
49
+ const expiresIn = typeof record.expires_in === "number" && record.expires_in > 0 ? record.expires_in : DEFAULT_TOKEN_EXPIRES_IN_SECONDS;
50
+ return {
51
+ access,
52
+ refresh,
53
+ expires: Date.now() + expiresIn * 1e3 - REFRESH_SKEW_MS,
54
+ idToken: typeof record.id_token === "string" && record.id_token.length > 0 ? record.id_token : previousIdToken
55
+ };
56
+ }
57
+ /**
58
+ * Start an xAI device-code login: request a user code and return the
59
+ * serializable pending state for subsequent polls.
60
+ */
61
+ async function startXAIDeviceLogin(options) {
62
+ const response = await postForm(DEVICE_CODE_URL, {
63
+ client_id: CLIENT_ID,
64
+ scope: SCOPE
65
+ }, options?.signal);
66
+ if (!response.ok) throw new Error(`Failed to initiate xAI device authorization: ${response.status}`);
67
+ const data = await response.json();
68
+ if (!data.device_code || !data.user_code || !data.verification_uri) throw new Error("xAI device authorization response missing required fields");
69
+ const url = validateVerificationUri(data.verification_uri_complete ?? data.verification_uri);
70
+ return {
71
+ deviceCode: data.device_code,
72
+ userCode: data.user_code,
73
+ url,
74
+ instructions: `Enter code: ${data.user_code}`,
75
+ state: createDeviceCodePollState({
76
+ intervalSeconds: data.interval,
77
+ expiresInSeconds: typeof data.expires_in === "number" && data.expires_in > 0 ? data.expires_in : 600
78
+ })
79
+ };
80
+ }
81
+ async function pollXAITokenOnce(pending, signal) {
82
+ const response = await postForm(TOKEN_URL, {
83
+ grant_type: DEVICE_CODE_GRANT_TYPE,
84
+ device_code: pending.deviceCode,
85
+ client_id: CLIENT_ID
86
+ }, signal);
87
+ if (response.ok) {
88
+ const data = await response.json();
89
+ try {
90
+ return {
91
+ status: "complete",
92
+ result: credentialsFromTokenResponse(data)
93
+ };
94
+ } catch (error) {
95
+ return {
96
+ status: "failed",
97
+ error: error instanceof Error ? error.message : String(error)
98
+ };
99
+ }
100
+ }
101
+ const text = await response.text().catch(() => "");
102
+ let body = {};
103
+ try {
104
+ body = JSON.parse(text);
105
+ } catch {}
106
+ switch (body.error) {
107
+ case "authorization_pending": return {
108
+ status: "pending",
109
+ intervalSeconds: body.interval
110
+ };
111
+ case "slow_down": return {
112
+ status: "slow_down",
113
+ intervalSeconds: body.interval
114
+ };
115
+ case "access_denied":
116
+ case "authorization_denied": return {
117
+ status: "failed",
118
+ error: "xAI authorization was denied"
119
+ };
120
+ case "expired_token": return {
121
+ status: "failed",
122
+ error: "xAI device code expired before authorization completed"
123
+ };
124
+ default: return {
125
+ status: "failed",
126
+ error: `xAI device authorization failed: ${response.status}`
127
+ };
128
+ }
129
+ }
130
+ /**
131
+ * Perform exactly one upstream poll for a pending xAI device login.
132
+ * Returns the updated pending state so callers (e.g. web routes) can persist
133
+ * slow_down interval growth between polls. Never throws for flow-level
134
+ * conditions.
135
+ */
136
+ async function pollXAIDeviceLogin(pending, options) {
137
+ const step = await stepDeviceCodePoll(pending.state, () => pollXAITokenOnce(pending, options?.signal));
138
+ switch (step.status) {
139
+ case "complete": return {
140
+ status: "complete",
141
+ credentials: step.result
142
+ };
143
+ case "failed": return {
144
+ status: "failed",
145
+ error: step.error
146
+ };
147
+ case "pending":
148
+ case "slow_down": return {
149
+ status: "pending",
150
+ nextPollMs: step.nextPollMs,
151
+ pending: {
152
+ ...pending,
153
+ state: step.state
154
+ }
155
+ };
156
+ }
157
+ }
158
+ /**
159
+ * Login with xAI OAuth (device-code flow), blocking until authorized.
160
+ */
161
+ async function loginXAI(callbacks) {
162
+ const pending = await startXAIDeviceLogin({ signal: callbacks.signal });
163
+ callbacks.onAuth({
164
+ url: pending.url,
165
+ instructions: pending.instructions,
166
+ userCode: pending.userCode
167
+ });
168
+ callbacks.onProgress?.("Waiting for xAI device authorization...");
169
+ return pollDeviceCodeUntilComplete({
170
+ state: pending.state,
171
+ pollOnce: () => pollXAITokenOnce(pending, callbacks.signal),
172
+ signal: callbacks.signal
173
+ });
174
+ }
175
+ /**
176
+ * Refresh xAI OAuth token
177
+ */
178
+ async function refreshXAIToken(refreshToken, signal, previousIdToken) {
179
+ const response = await postForm(TOKEN_URL, {
180
+ grant_type: "refresh_token",
181
+ client_id: CLIENT_ID,
182
+ refresh_token: refreshToken
183
+ }, signal);
184
+ if (!response.ok) throw new Error(`xAI token refresh failed: ${response.status}`);
185
+ return credentialsFromTokenResponse(await response.json(), refreshToken, previousIdToken);
186
+ }
187
+ /** Decode the email claim out of an id_token JWT payload (no verification). */
188
+ function emailFromIdToken(idToken) {
189
+ if (typeof idToken !== "string") return void 0;
190
+ const parts = idToken.split(".");
191
+ if (parts.length !== 3) return void 0;
192
+ try {
193
+ const padded = (parts[1] ?? "").replace(/-/g, "+").replace(/_/g, "/");
194
+ const json = JSON.parse(Buffer.from(padded, "base64").toString("utf8"));
195
+ return typeof json.email === "string" && json.email.length > 0 ? json.email : void 0;
196
+ } catch {
197
+ return;
198
+ }
199
+ }
200
+ const xaiOAuthProvider = {
201
+ id: "xai",
202
+ name: "xAI (Grok)",
203
+ async login(callbacks) {
204
+ return loginXAI(callbacks);
205
+ },
206
+ async refreshToken(credentials) {
207
+ return refreshXAIToken(credentials.refresh, void 0, credentials.idToken);
208
+ },
209
+ getApiKey(credentials) {
210
+ return credentials.access;
211
+ },
212
+ getAccountLabel(credentials) {
213
+ return Promise.resolve(emailFromIdToken(credentials.idToken));
214
+ },
215
+ /**
216
+ * The account's email, read from the id token — one subscription per email,
217
+ * so this distinguishes two xAI accounts from a re-authorization of one.
218
+ */
219
+ getAccountIdentity(credentials) {
220
+ return emailFromIdToken(credentials.idToken);
221
+ }
222
+ };
223
+ //#endregion
224
+ export { loginXAI, pollXAIDeviceLogin, refreshXAIToken, startXAIDeviceLogin, xaiOAuthProvider };
225
+
226
+ //# sourceMappingURL=xai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xai.js","names":[],"sources":["../../../src/auth/providers/xai.ts"],"sourcesContent":["/**\n * xAI OAuth flow (Grok)\n *\n * Ported from pi-mono's xAI OAuth implementation:\n * https://github.com/badlogic/pi-mono/blob/main/packages/ai/src/utils/oauth/xai.ts\n *\n * xAI uses a standard RFC 8628 device authorization grant, so the flow needs\n * no inbound connection to the server. The primitives are split into\n * `startXAIDeviceLogin()` / `pollXAIDeviceLogin()` so web routes can persist\n * the JSON-serializable pending state between HTTP requests; the blocking\n * `loginXAI()` wraps them for TUI use.\n */\n\nimport { createDeviceCodePollState, pollDeviceCodeUntilComplete, stepDeviceCodePoll } from '../device-code.js';\nimport type { DeviceCodePollOutcome, DeviceCodePollState } from '../device-code.js';\nimport type { OAuthCredentials, OAuthLoginCallbacks, OAuthProviderInterface } from '../types.js';\n\nconst CLIENT_ID = 'b1a00492-073a-47ea-816f-4c329264a828';\nconst DEVICE_CODE_URL = 'https://auth.x.ai/oauth2/device/code';\nconst TOKEN_URL = 'https://auth.x.ai/oauth2/token';\nconst SCOPE = 'openid profile email offline_access grok-cli:access api:access';\nconst DEVICE_CODE_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:device_code';\nconst DEFAULT_TOKEN_EXPIRES_IN_SECONDS = 3600;\nconst REQUEST_TIMEOUT_MS = 30_000;\n// Refresh 5 minutes before actual expiry (same skew as Anthropic).\nconst REFRESH_SKEW_MS = 5 * 60 * 1000;\n\nasync function postForm(url: string, params: Record<string, string>, signal?: AbortSignal): Promise<Response> {\n const timeoutSignal = AbortSignal.timeout(REQUEST_TIMEOUT_MS);\n return fetch(url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: new URLSearchParams(params).toString(),\n signal: signal ? AbortSignal.any([signal, timeoutSignal]) : timeoutSignal,\n });\n}\n\n/** The verification URI is opened by the user; only accept https URLs. */\nfunction validateVerificationUri(raw: string): string {\n let parsed: URL;\n try {\n parsed = new URL(raw);\n } catch {\n throw new Error('xAI device authorization returned an invalid verification_uri');\n }\n if (parsed.protocol !== 'https:') {\n throw new Error('xAI device authorization returned a non-https verification_uri');\n }\n return parsed.toString();\n}\n\nfunction credentialsFromTokenResponse(\n data: unknown,\n previousRefreshToken?: string,\n previousIdToken?: string,\n): OAuthCredentials {\n const record = (data ?? {}) as Record<string, unknown>;\n const access = record.access_token;\n if (typeof access !== 'string' || access.length === 0) {\n throw new Error('xAI token response missing access_token');\n }\n\n // xAI may not rotate the refresh token on refresh; keep the previous one.\n const refresh =\n typeof record.refresh_token === 'string' && record.refresh_token.length > 0\n ? record.refresh_token\n : previousRefreshToken;\n if (!refresh) {\n throw new Error('xAI token response missing refresh_token');\n }\n\n const expiresIn =\n typeof record.expires_in === 'number' && record.expires_in > 0\n ? record.expires_in\n : DEFAULT_TOKEN_EXPIRES_IN_SECONDS;\n\n return {\n access,\n refresh,\n expires: Date.now() + expiresIn * 1000 - REFRESH_SKEW_MS,\n // Kept so the account label can resolve the email claim later; xAI's\n // refresh responses re-issue it, and the previous one is carried forward\n // when they don't.\n idToken: typeof record.id_token === 'string' && record.id_token.length > 0 ? record.id_token : previousIdToken,\n };\n}\n\n/**\n * Serializable pending state for an xAI device-code login. Safe to persist\n * (e.g. a `pending jsonb` column) so polling can span HTTP requests.\n */\nexport interface XAIDeviceLoginPending {\n deviceCode: string;\n userCode: string;\n /** Verification URL for the user to open (https-only, validated). */\n url: string;\n instructions: string;\n /** RFC 8628 poll-loop state (interval growth, deadline, slow_down count). */\n state: DeviceCodePollState;\n}\n\nexport type XAIDevicePollResult =\n | { status: 'complete'; credentials: OAuthCredentials }\n | { status: 'pending'; nextPollMs: number; pending: XAIDeviceLoginPending }\n | { status: 'failed'; error: string };\n\n/**\n * Start an xAI device-code login: request a user code and return the\n * serializable pending state for subsequent polls.\n */\nexport async function startXAIDeviceLogin(options?: { signal?: AbortSignal }): Promise<XAIDeviceLoginPending> {\n const response = await postForm(DEVICE_CODE_URL, { client_id: CLIENT_ID, scope: SCOPE }, options?.signal);\n\n if (!response.ok) {\n throw new Error(`Failed to initiate xAI device authorization: ${response.status}`);\n }\n\n const data = (await response.json()) as {\n device_code?: string;\n user_code?: string;\n verification_uri?: string;\n verification_uri_complete?: string;\n interval?: number;\n expires_in?: number;\n };\n\n if (!data.device_code || !data.user_code || !data.verification_uri) {\n throw new Error('xAI device authorization response missing required fields');\n }\n\n const url = validateVerificationUri(data.verification_uri_complete ?? data.verification_uri);\n\n return {\n deviceCode: data.device_code,\n userCode: data.user_code,\n url,\n instructions: `Enter code: ${data.user_code}`,\n state: createDeviceCodePollState({\n intervalSeconds: data.interval,\n expiresInSeconds: typeof data.expires_in === 'number' && data.expires_in > 0 ? data.expires_in : 600,\n }),\n };\n}\n\nasync function pollXAITokenOnce(\n pending: XAIDeviceLoginPending,\n signal?: AbortSignal,\n): Promise<DeviceCodePollOutcome<OAuthCredentials>> {\n const response = await postForm(\n TOKEN_URL,\n {\n grant_type: DEVICE_CODE_GRANT_TYPE,\n device_code: pending.deviceCode,\n client_id: CLIENT_ID,\n },\n signal,\n );\n\n if (response.ok) {\n const data = (await response.json()) as unknown;\n try {\n return { status: 'complete', result: credentialsFromTokenResponse(data) };\n } catch (error) {\n return { status: 'failed', error: error instanceof Error ? error.message : String(error) };\n }\n }\n\n const text = await response.text().catch(() => '');\n let body: { error?: string; interval?: number } = {};\n try {\n body = JSON.parse(text) as { error?: string; interval?: number };\n } catch {\n // Non-JSON upstream bodies are intentionally omitted from user-visible errors.\n }\n\n switch (body.error) {\n case 'authorization_pending':\n return { status: 'pending', intervalSeconds: body.interval };\n case 'slow_down':\n return { status: 'slow_down', intervalSeconds: body.interval };\n case 'access_denied':\n case 'authorization_denied':\n return { status: 'failed', error: 'xAI authorization was denied' };\n case 'expired_token':\n return { status: 'failed', error: 'xAI device code expired before authorization completed' };\n default:\n // Status only: `body.error` is untrusted upstream text (RFC 6749 does not\n // constrain it), so echoing it would render provider-controlled content\n // in the TUI. The known flow codes above are handled explicitly.\n return {\n status: 'failed',\n error: `xAI device authorization failed: ${response.status}`,\n };\n }\n}\n\n/**\n * Perform exactly one upstream poll for a pending xAI device login.\n * Returns the updated pending state so callers (e.g. web routes) can persist\n * slow_down interval growth between polls. Never throws for flow-level\n * conditions.\n */\nexport async function pollXAIDeviceLogin(\n pending: XAIDeviceLoginPending,\n options?: { signal?: AbortSignal },\n): Promise<XAIDevicePollResult> {\n const step = await stepDeviceCodePoll(pending.state, () => pollXAITokenOnce(pending, options?.signal));\n\n switch (step.status) {\n case 'complete':\n return { status: 'complete', credentials: step.result };\n case 'failed':\n return { status: 'failed', error: step.error };\n case 'pending':\n case 'slow_down':\n return {\n status: 'pending',\n nextPollMs: step.nextPollMs,\n pending: { ...pending, state: step.state },\n };\n }\n}\n\n/**\n * Login with xAI OAuth (device-code flow), blocking until authorized.\n */\nexport async function loginXAI(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials> {\n const pending = await startXAIDeviceLogin({ signal: callbacks.signal });\n\n callbacks.onAuth({ url: pending.url, instructions: pending.instructions, userCode: pending.userCode });\n callbacks.onProgress?.('Waiting for xAI device authorization...');\n\n return pollDeviceCodeUntilComplete({\n state: pending.state,\n pollOnce: () => pollXAITokenOnce(pending, callbacks.signal),\n signal: callbacks.signal,\n });\n}\n\n/**\n * Refresh xAI OAuth token\n */\nexport async function refreshXAIToken(\n refreshToken: string,\n signal?: AbortSignal,\n previousIdToken?: string,\n): Promise<OAuthCredentials> {\n const response = await postForm(\n TOKEN_URL,\n {\n grant_type: 'refresh_token',\n client_id: CLIENT_ID,\n refresh_token: refreshToken,\n },\n signal,\n );\n\n if (!response.ok) {\n throw new Error(`xAI token refresh failed: ${response.status}`);\n }\n\n return credentialsFromTokenResponse((await response.json()) as unknown, refreshToken, previousIdToken);\n}\n\n/** Decode the email claim out of an id_token JWT payload (no verification). */\nfunction emailFromIdToken(idToken: string | undefined): string | undefined {\n if (typeof idToken !== 'string') return undefined;\n const parts = idToken.split('.');\n if (parts.length !== 3) return undefined;\n try {\n const padded = (parts[1] ?? '').replace(/-/g, '+').replace(/_/g, '/');\n const json = JSON.parse(Buffer.from(padded, 'base64').toString('utf8')) as { email?: unknown };\n return typeof json.email === 'string' && json.email.length > 0 ? json.email : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport const xaiOAuthProvider: OAuthProviderInterface = {\n id: 'xai',\n name: 'xAI (Grok)',\n\n async login(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials> {\n return loginXAI(callbacks);\n },\n\n async refreshToken(credentials: OAuthCredentials): Promise<OAuthCredentials> {\n return refreshXAIToken(credentials.refresh, undefined, credentials.idToken as string | undefined);\n },\n\n getApiKey(credentials: OAuthCredentials): string {\n return credentials.access;\n },\n\n getAccountLabel(credentials: OAuthCredentials): Promise<string | undefined> {\n return Promise.resolve(emailFromIdToken(credentials.idToken as string | undefined));\n },\n\n /**\n * The account's email, read from the id token — one subscription per email,\n * so this distinguishes two xAI accounts from a re-authorization of one.\n */\n getAccountIdentity(credentials: OAuthCredentials): string | undefined {\n return emailFromIdToken(credentials.idToken as string | undefined);\n },\n};\n"],"mappings":";;;;;;;;;;;;;;AAiBA,MAAM,YAAY;AAClB,MAAM,kBAAkB;AACxB,MAAM,YAAY;AAClB,MAAM,QAAQ;AACd,MAAM,yBAAyB;AAC/B,MAAM,mCAAmC;AACzC,MAAM,qBAAqB;AAE3B,MAAM,kBAAkB,MAAS;AAEjC,eAAe,SAAS,KAAa,QAAgC,QAAyC;CAC5G,MAAM,gBAAgB,YAAY,QAAQ,kBAAkB;CAC5D,OAAO,MAAM,KAAK;EAChB,QAAQ;EACR,SAAS,EAAE,gBAAgB,oCAAoC;EAC/D,MAAM,IAAI,gBAAgB,MAAM,CAAC,CAAC,SAAS;EAC3C,QAAQ,SAAS,YAAY,IAAI,CAAC,QAAQ,aAAa,CAAC,IAAI;CAC9D,CAAC;AACH;;AAGA,SAAS,wBAAwB,KAAqB;CACpD,IAAI;CACJ,IAAI;EACF,SAAS,IAAI,IAAI,GAAG;CACtB,QAAQ;EACN,MAAM,IAAI,MAAM,+DAA+D;CACjF;CACA,IAAI,OAAO,aAAa,UACtB,MAAM,IAAI,MAAM,gEAAgE;CAElF,OAAO,OAAO,SAAS;AACzB;AAEA,SAAS,6BACP,MACA,sBACA,iBACkB;CAClB,MAAM,SAAU,QAAQ,CAAC;CACzB,MAAM,SAAS,OAAO;CACtB,IAAI,OAAO,WAAW,YAAY,OAAO,WAAW,GAClD,MAAM,IAAI,MAAM,yCAAyC;CAI3D,MAAM,UACJ,OAAO,OAAO,kBAAkB,YAAY,OAAO,cAAc,SAAS,IACtE,OAAO,gBACP;CACN,IAAI,CAAC,SACH,MAAM,IAAI,MAAM,0CAA0C;CAG5D,MAAM,YACJ,OAAO,OAAO,eAAe,YAAY,OAAO,aAAa,IACzD,OAAO,aACP;CAEN,OAAO;EACL;EACA;EACA,SAAS,KAAK,IAAI,IAAI,YAAY,MAAO;EAIzC,SAAS,OAAO,OAAO,aAAa,YAAY,OAAO,SAAS,SAAS,IAAI,OAAO,WAAW;CACjG;AACF;;;;;AAyBA,eAAsB,oBAAoB,SAAoE;CAC5G,MAAM,WAAW,MAAM,SAAS,iBAAiB;EAAE,WAAW;EAAW,OAAO;CAAM,GAAG,SAAS,MAAM;CAExG,IAAI,CAAC,SAAS,IACZ,MAAM,IAAI,MAAM,gDAAgD,SAAS,QAAQ;CAGnF,MAAM,OAAQ,MAAM,SAAS,KAAK;CASlC,IAAI,CAAC,KAAK,eAAe,CAAC,KAAK,aAAa,CAAC,KAAK,kBAChD,MAAM,IAAI,MAAM,2DAA2D;CAG7E,MAAM,MAAM,wBAAwB,KAAK,6BAA6B,KAAK,gBAAgB;CAE3F,OAAO;EACL,YAAY,KAAK;EACjB,UAAU,KAAK;EACf;EACA,cAAc,eAAe,KAAK;EAClC,OAAO,0BAA0B;GAC/B,iBAAiB,KAAK;GACtB,kBAAkB,OAAO,KAAK,eAAe,YAAY,KAAK,aAAa,IAAI,KAAK,aAAa;EACnG,CAAC;CACH;AACF;AAEA,eAAe,iBACb,SACA,QACkD;CAClD,MAAM,WAAW,MAAM,SACrB,WACA;EACE,YAAY;EACZ,aAAa,QAAQ;EACrB,WAAW;CACb,GACA,MACF;CAEA,IAAI,SAAS,IAAI;EACf,MAAM,OAAQ,MAAM,SAAS,KAAK;EAClC,IAAI;GACF,OAAO;IAAE,QAAQ;IAAY,QAAQ,6BAA6B,IAAI;GAAE;EAC1E,SAAS,OAAO;GACd,OAAO;IAAE,QAAQ;IAAU,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;GAAE;EAC3F;CACF;CAEA,MAAM,OAAO,MAAM,SAAS,KAAK,CAAC,CAAC,YAAY,EAAE;CACjD,IAAI,OAA8C,CAAC;CACnD,IAAI;EACF,OAAO,KAAK,MAAM,IAAI;CACxB,QAAQ,CAER;CAEA,QAAQ,KAAK,OAAb;EACE,KAAK,yBACH,OAAO;GAAE,QAAQ;GAAW,iBAAiB,KAAK;EAAS;EAC7D,KAAK,aACH,OAAO;GAAE,QAAQ;GAAa,iBAAiB,KAAK;EAAS;EAC/D,KAAK;EACL,KAAK,wBACH,OAAO;GAAE,QAAQ;GAAU,OAAO;EAA+B;EACnE,KAAK,iBACH,OAAO;GAAE,QAAQ;GAAU,OAAO;EAAyD;EAC7F,SAIE,OAAO;GACL,QAAQ;GACR,OAAO,oCAAoC,SAAS;EACtD;CACJ;AACF;;;;;;;AAQA,eAAsB,mBACpB,SACA,SAC8B;CAC9B,MAAM,OAAO,MAAM,mBAAmB,QAAQ,aAAa,iBAAiB,SAAS,SAAS,MAAM,CAAC;CAErG,QAAQ,KAAK,QAAb;EACE,KAAK,YACH,OAAO;GAAE,QAAQ;GAAY,aAAa,KAAK;EAAO;EACxD,KAAK,UACH,OAAO;GAAE,QAAQ;GAAU,OAAO,KAAK;EAAM;EAC/C,KAAK;EACL,KAAK,aACH,OAAO;GACL,QAAQ;GACR,YAAY,KAAK;GACjB,SAAS;IAAE,GAAG;IAAS,OAAO,KAAK;GAAM;EAC3C;CACJ;AACF;;;;AAKA,eAAsB,SAAS,WAA2D;CACxF,MAAM,UAAU,MAAM,oBAAoB,EAAE,QAAQ,UAAU,OAAO,CAAC;CAEtE,UAAU,OAAO;EAAE,KAAK,QAAQ;EAAK,cAAc,QAAQ;EAAc,UAAU,QAAQ;CAAS,CAAC;CACrG,UAAU,aAAa,yCAAyC;CAEhE,OAAO,4BAA4B;EACjC,OAAO,QAAQ;EACf,gBAAgB,iBAAiB,SAAS,UAAU,MAAM;EAC1D,QAAQ,UAAU;CACpB,CAAC;AACH;;;;AAKA,eAAsB,gBACpB,cACA,QACA,iBAC2B;CAC3B,MAAM,WAAW,MAAM,SACrB,WACA;EACE,YAAY;EACZ,WAAW;EACX,eAAe;CACjB,GACA,MACF;CAEA,IAAI,CAAC,SAAS,IACZ,MAAM,IAAI,MAAM,6BAA6B,SAAS,QAAQ;CAGhE,OAAO,6BAA8B,MAAM,SAAS,KAAK,GAAe,cAAc,eAAe;AACvG;;AAGA,SAAS,iBAAiB,SAAiD;CACzE,IAAI,OAAO,YAAY,UAAU,OAAO,KAAA;CACxC,MAAM,QAAQ,QAAQ,MAAM,GAAG;CAC/B,IAAI,MAAM,WAAW,GAAG,OAAO,KAAA;CAC/B,IAAI;EACF,MAAM,UAAU,MAAM,MAAM,GAAA,CAAI,QAAQ,MAAM,GAAG,CAAC,CAAC,QAAQ,MAAM,GAAG;EACpE,MAAM,OAAO,KAAK,MAAM,OAAO,KAAK,QAAQ,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC;EACtE,OAAO,OAAO,KAAK,UAAU,YAAY,KAAK,MAAM,SAAS,IAAI,KAAK,QAAQ,KAAA;CAChF,QAAQ;EACN;CACF;AACF;AAEA,MAAa,mBAA2C;CACtD,IAAI;CACJ,MAAM;CAEN,MAAM,MAAM,WAA2D;EACrE,OAAO,SAAS,SAAS;CAC3B;CAEA,MAAM,aAAa,aAA0D;EAC3E,OAAO,gBAAgB,YAAY,SAAS,KAAA,GAAW,YAAY,OAA6B;CAClG;CAEA,UAAU,aAAuC;EAC/C,OAAO,YAAY;CACrB;CAEA,gBAAgB,aAA4D;EAC1E,OAAO,QAAQ,QAAQ,iBAAiB,YAAY,OAA6B,CAAC;CACpF;;;;;CAMA,mBAAmB,aAAmD;EACpE,OAAO,iBAAiB,YAAY,OAA6B;CACnE;AACF"}
@@ -0,0 +1,214 @@
1
+ /**
2
+ * Credential storage for API keys and OAuth tokens.
3
+ * Handles loading, saving, and refreshing credentials from auth.json.
4
+ */
5
+ import type { AuthCredential, OAuthAccountRecord, OAuthCredentialSnapshot, OAuthCredentials, OAuthLoginCallbacks, OAuthProviderId, OAuthProviderInterface } from './types.js';
6
+ /**
7
+ * Best/default models for each OAuth provider.
8
+ * Used when auto-selecting a model after login.
9
+ */
10
+ export declare const PROVIDER_DEFAULT_MODELS: Record<OAuthProviderId, string>;
11
+ /**
12
+ * Get an OAuth provider by ID
13
+ */
14
+ export declare function getOAuthProvider(id: OAuthProviderId): OAuthProviderInterface | undefined;
15
+ /**
16
+ * Get all registered OAuth providers
17
+ */
18
+ export declare function getOAuthProviders(): OAuthProviderInterface[];
19
+ /**
20
+ * Credential storage backed by a JSON file.
21
+ */
22
+ export declare class AuthStorage {
23
+ private authPath;
24
+ private data;
25
+ private refreshPromises;
26
+ constructor(authPath?: string);
27
+ /**
28
+ * Reload credentials from disk.
29
+ */
30
+ reload(): void;
31
+ /**
32
+ * Bring auth.json up to the multi-account registry format. Runs on every
33
+ * load; saves only when something actually changed.
34
+ *
35
+ * 1. A legacy OAuth slot with no registry gets one adopted active entry
36
+ * (the slot's tokens stay put — the entry mirrors them).
37
+ * 2. When the slot's refresh token differs from the active entry's, an
38
+ * external writer (older build, another worktree) owns the slot — the
39
+ * slot wins and its tokens are adopted onto the active entry.
40
+ * 3. A registry with no active entry (hand-edited) self-heals to its first
41
+ * entry; malformed `accounts:` values are skipped, never fatal.
42
+ * 4. A registry whose legacy slot disappeared (partial write, an external
43
+ * hand-edit) self-heals by mirroring the active entry's tokens back into
44
+ * the slot, so `isLoggedIn()`/`getOAuthCredential()` keep agreeing with
45
+ * `listAccounts()`. `remove()`/`logout()` clear the registry with the
46
+ * slot, so they never leave the shape this heals.
47
+ */
48
+ private migrate;
49
+ /**
50
+ * Save credentials to disk.
51
+ */
52
+ private save;
53
+ /**
54
+ * Get credential for a provider. Registry entries (type 'oauth-account')
55
+ * live under `accounts:` keys and never surface here.
56
+ */
57
+ get(provider: string): AuthCredential | undefined;
58
+ /**
59
+ * Set credential for a provider.
60
+ */
61
+ set(provider: string, credential: AuthCredential): void;
62
+ /**
63
+ * Remove credential for a provider, including its account registry.
64
+ * Clearing only the slot would leave the registry behind, and the next
65
+ * load's migration would heal the slot back from it — resurrecting the
66
+ * provider the caller just signed out.
67
+ */
68
+ remove(provider: string): void;
69
+ /**
70
+ * List all providers with credentials.
71
+ */
72
+ list(): string[];
73
+ /**
74
+ * Check if credentials exist for a provider.
75
+ */
76
+ has(provider: string): boolean;
77
+ /**
78
+ * Check if logged in via OAuth for a provider.
79
+ */
80
+ isLoggedIn(provider: string): boolean;
81
+ /**
82
+ * Check if a stored API key exists for a provider.
83
+ * Keys are stored under `apikey:<provider>` in auth.json.
84
+ */
85
+ hasStoredApiKey(provider: string): boolean;
86
+ /**
87
+ * Get a stored API key for a provider, if any.
88
+ */
89
+ getStoredApiKey(provider: string): string | undefined;
90
+ /**
91
+ * Store an API key for a provider.
92
+ * Also sets the corresponding environment variable so model resolution can find it.
93
+ */
94
+ setStoredApiKey(provider: string, key: string, envVar?: string): void;
95
+ /**
96
+ * Load all stored API keys into process.env.
97
+ * Called at startup so model resolution can find stored keys.
98
+ * Only sets env vars that aren't already set (env vars take precedence).
99
+ */
100
+ loadStoredApiKeysIntoEnv(providerEnvVars: Record<string, string | undefined>): void;
101
+ /**
102
+ * Login to an OAuth provider. Resolves to the registered account record.
103
+ * Pass `activate: false` to add the account without making it active (the
104
+ * first account for a provider is always activated — a provider with
105
+ * accounts must have an active one).
106
+ */
107
+ login(providerId: OAuthProviderId, callbacks: OAuthLoginCallbacks, opts?: {
108
+ replaceAccountId?: string;
109
+ activate?: boolean;
110
+ }): Promise<OAuthAccountRecord>;
111
+ /**
112
+ * Logout from a provider: remove the legacy slot and every registered account.
113
+ */
114
+ logout(provider: string): void;
115
+ private accountPrefixFor;
116
+ private accountKeyFor;
117
+ /** Registry entries for a provider in JSON insertion order (malformed values skipped). */
118
+ private accountEntries;
119
+ /** Adopt a legacy slot credential as the registry's first active entry. */
120
+ private adoptSlot;
121
+ /**
122
+ * Registered OAuth accounts for a provider, in insertion order. Copies —
123
+ * callers cannot corrupt unsaved storage state by mutating a record.
124
+ */
125
+ listAccounts(providerId: string): OAuthAccountRecord[];
126
+ /**
127
+ * The provider's active registry entry, if a registry exists. A copy.
128
+ */
129
+ getActiveAccount(providerId: string): OAuthAccountRecord | undefined;
130
+ /**
131
+ * Register OAuth credentials as an account for a provider, making it active
132
+ * unless `activate: false` is passed.
133
+ *
134
+ * With `replaceAccountId` (re-authentication of a picked account), the
135
+ * target entry's tokens are replaced in place — id re-keyed to the new
136
+ * refresh-token hash, label/position/addedAt preserved — because providers
137
+ * rotate refresh tokens per authorization, so the picked account's old id
138
+ * never matches the new token hash. Re-authentication keeps the target's
139
+ * active state: an inactive account stays inactive and the currently active
140
+ * account keeps the legacy slot. Otherwise, when the new credentials
141
+ * hash to an existing entry's id (same refresh token), that entry is
142
+ * updated in place; a genuinely new account is appended and activated.
143
+ *
144
+ * `activate: false` only applies to the plain add path: the new/updated entry
145
+ * keeps the active state it had, and the previously active account stays
146
+ * active. The first account of a provider is activated regardless.
147
+ */
148
+ addAccount(providerId: string, creds: OAuthCredentials, opts?: {
149
+ label?: string;
150
+ replaceAccountId?: string;
151
+ activate?: boolean;
152
+ }): Promise<OAuthAccountRecord>;
153
+ /**
154
+ * Activate an account: move the active tokens out of the legacy slot back
155
+ * into the previously active entry, and the target's tokens into the slot
156
+ * (never copy — one home per token set). With no `instanceId`, rotate to
157
+ * the next entry in insertion order, wrapping once to the front; returns
158
+ * undefined when there is no other entry to rotate to.
159
+ */
160
+ activateAccount(providerId: string, instanceId?: string): OAuthAccountRecord | undefined;
161
+ /**
162
+ * Activate an account in memory only — the caller owns reload/save. Move the
163
+ * active tokens out of the legacy slot back into the previously active
164
+ * entry, and the target's tokens into the slot (never copy — one home per
165
+ * token set). With no `instanceId`, rotate to the next entry in insertion
166
+ * order, wrapping once to the front; returns undefined when there is no
167
+ * other entry to rotate to.
168
+ */
169
+ private activateInMemory;
170
+ /**
171
+ * Remove an account from the registry. If it was active, the next entry in
172
+ * insertion order is activated; when it was the last one, the legacy slot
173
+ * is removed too (full sign-out for that provider).
174
+ */
175
+ removeAccount(providerId: string, instanceId: string): void;
176
+ /**
177
+ * Rename an account's label.
178
+ */
179
+ renameAccount(providerId: string, instanceId: string, label: string): void;
180
+ /**
181
+ * Persist refreshed credentials for the account that initiated the refresh.
182
+ * The legacy slot is updated only if that account is still active when the
183
+ * refresh completes; otherwise a delayed refresh could overwrite a newer
184
+ * activation.
185
+ */
186
+ private persistRefreshedCredential;
187
+ /**
188
+ * Refresh one account instance through the per-instance dedupe map. Used
189
+ * for sibling refreshes during the rotation walk, so a concurrent
190
+ * `getApiKey` that reloads storage mid-walk (after the candidate was
191
+ * activated but before its refresh resolves) joins the same refresh
192
+ * instead of double-spending a single-use refresh token.
193
+ */
194
+ private refreshInstance;
195
+ /**
196
+ * Get a ready-to-use OAuth credential snapshot, auto-refreshing if needed.
197
+ * A failed refresh leaves the active account unchanged and returns undefined;
198
+ * the account-rotation processor owns switching so it can persist a visible
199
+ * account-switch notice with the request that triggered the change.
200
+ */
201
+ getOAuthCredential(providerId: string, accountInstanceId?: string): Promise<OAuthCredentialSnapshot | undefined>;
202
+ /** Get API key for a provider, refreshing OAuth tokens if needed. */
203
+ getApiKey(providerId: string, accountInstanceId?: string): Promise<string | undefined>;
204
+ /**
205
+ * Force one refresh of the active OAuth account's tokens, regardless of
206
+ * expiry. The account-rotation error processor calls this when a provider
207
+ * rejects a not-yet-expired token (401/403) — server-side clock skew and
208
+ * refresh-token races surface that way. Returns the fresh access token, or
209
+ * undefined when the refresh fails or there is no OAuth credential.
210
+ * Shares the per-instance refresh dedupe with `getApiKey`.
211
+ */
212
+ forceRefreshActiveAccount(providerId: string, accountInstanceId?: string): Promise<string | undefined>;
213
+ }
214
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/auth/storage.ts"],"names":[],"mappings":"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"}