@mastra/code-sdk 0.0.0-client-tool-results-20260912062135

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 (594) hide show
  1. package/LICENSE.md +32 -0
  2. package/README.md +37 -0
  3. package/dist/acp/agent.d.ts +35 -0
  4. package/dist/acp/agent.d.ts.map +1 -0
  5. package/dist/acp/agent.js +161 -0
  6. package/dist/acp/agent.js.map +1 -0
  7. package/dist/acp/event-mapper.d.ts +22 -0
  8. package/dist/acp/event-mapper.d.ts.map +1 -0
  9. package/dist/acp/event-mapper.js +214 -0
  10. package/dist/acp/event-mapper.js.map +1 -0
  11. package/dist/acp/index.d.ts +8 -0
  12. package/dist/acp/index.d.ts.map +1 -0
  13. package/dist/acp/index.js +65 -0
  14. package/dist/acp/index.js.map +1 -0
  15. package/dist/acp/server.d.ts +7 -0
  16. package/dist/acp/server.d.ts.map +1 -0
  17. package/dist/acp/server.js +35 -0
  18. package/dist/acp/server.js.map +1 -0
  19. package/dist/acp.d.ts +2 -0
  20. package/dist/acp.d.ts.map +1 -0
  21. package/dist/acp.js +2 -0
  22. package/dist/agents/context-audit.d.ts +84 -0
  23. package/dist/agents/context-audit.d.ts.map +1 -0
  24. package/dist/agents/context-audit.js +118 -0
  25. package/dist/agents/context-audit.js.map +1 -0
  26. package/dist/agents/credential-resolver.d.ts +63 -0
  27. package/dist/agents/credential-resolver.d.ts.map +1 -0
  28. package/dist/agents/credential-resolver.js +97 -0
  29. package/dist/agents/credential-resolver.js.map +1 -0
  30. package/dist/agents/custom-provider-source.d.ts +35 -0
  31. package/dist/agents/custom-provider-source.d.ts.map +1 -0
  32. package/dist/agents/custom-provider-source.js +25 -0
  33. package/dist/agents/custom-provider-source.js.map +1 -0
  34. package/dist/agents/instructions.d.ts +29 -0
  35. package/dist/agents/instructions.d.ts.map +1 -0
  36. package/dist/agents/instructions.js +58 -0
  37. package/dist/agents/instructions.js.map +1 -0
  38. package/dist/agents/mastracode-gateway.d.ts +74 -0
  39. package/dist/agents/mastracode-gateway.d.ts.map +1 -0
  40. package/dist/agents/mastracode-gateway.js +431 -0
  41. package/dist/agents/mastracode-gateway.js.map +1 -0
  42. package/dist/agents/memory.d.ts +30 -0
  43. package/dist/agents/memory.d.ts.map +1 -0
  44. package/dist/agents/memory.js +171 -0
  45. package/dist/agents/memory.js.map +1 -0
  46. package/dist/agents/model.d.ts +81 -0
  47. package/dist/agents/model.d.ts.map +1 -0
  48. package/dist/agents/model.js +155 -0
  49. package/dist/agents/model.js.map +1 -0
  50. package/dist/agents/modes/build.d.ts +10 -0
  51. package/dist/agents/modes/build.d.ts.map +1 -0
  52. package/dist/agents/modes/build.js +49 -0
  53. package/dist/agents/modes/build.js.map +1 -0
  54. package/dist/agents/modes/explore.d.ts +10 -0
  55. package/dist/agents/modes/explore.d.ts.map +1 -0
  56. package/dist/agents/modes/explore.js +42 -0
  57. package/dist/agents/modes/explore.js.map +1 -0
  58. package/dist/agents/modes/plan.d.ts +6 -0
  59. package/dist/agents/modes/plan.d.ts.map +1 -0
  60. package/dist/agents/modes/plan.js +42 -0
  61. package/dist/agents/modes/plan.js.map +1 -0
  62. package/dist/agents/prompts/agent-instructions.d.ts +70 -0
  63. package/dist/agents/prompts/agent-instructions.d.ts.map +1 -0
  64. package/dist/agents/prompts/agent-instructions.js +211 -0
  65. package/dist/agents/prompts/agent-instructions.js.map +1 -0
  66. package/dist/agents/prompts/build.d.ts +12 -0
  67. package/dist/agents/prompts/build.d.ts.map +1 -0
  68. package/dist/agents/prompts/build.js +76 -0
  69. package/dist/agents/prompts/build.js.map +1 -0
  70. package/dist/agents/prompts/fast.d.ts +5 -0
  71. package/dist/agents/prompts/fast.d.ts.map +1 -0
  72. package/dist/agents/prompts/fast.js +26 -0
  73. package/dist/agents/prompts/fast.js.map +1 -0
  74. package/dist/agents/prompts/index.d.ts +50 -0
  75. package/dist/agents/prompts/index.d.ts.map +1 -0
  76. package/dist/agents/prompts/index.js +119 -0
  77. package/dist/agents/prompts/index.js.map +1 -0
  78. package/dist/agents/prompts/model.d.ts +5 -0
  79. package/dist/agents/prompts/model.d.ts.map +1 -0
  80. package/dist/agents/prompts/model.js +23 -0
  81. package/dist/agents/prompts/model.js.map +1 -0
  82. package/dist/agents/prompts/plan.d.ts +6 -0
  83. package/dist/agents/prompts/plan.d.ts.map +1 -0
  84. package/dist/agents/prompts/plan.js +111 -0
  85. package/dist/agents/prompts/plan.js.map +1 -0
  86. package/dist/agents/prompts/tool-guidance.d.ts +18 -0
  87. package/dist/agents/prompts/tool-guidance.d.ts.map +1 -0
  88. package/dist/agents/prompts/tool-guidance.js +180 -0
  89. package/dist/agents/prompts/tool-guidance.js.map +1 -0
  90. package/dist/agents/sandbox-filesystem.d.ts +117 -0
  91. package/dist/agents/sandbox-filesystem.d.ts.map +1 -0
  92. package/dist/agents/sandbox-filesystem.js +356 -0
  93. package/dist/agents/sandbox-filesystem.js.map +1 -0
  94. package/dist/agents/subagents/execute.d.ts +3 -0
  95. package/dist/agents/subagents/execute.d.ts.map +1 -0
  96. package/dist/agents/subagents/execute.js +27 -0
  97. package/dist/agents/subagents/execute.js.map +1 -0
  98. package/dist/agents/subagents/explore.d.ts +3 -0
  99. package/dist/agents/subagents/explore.d.ts.map +1 -0
  100. package/dist/agents/subagents/explore.js +18 -0
  101. package/dist/agents/subagents/explore.js.map +1 -0
  102. package/dist/agents/subagents/plan.d.ts +3 -0
  103. package/dist/agents/subagents/plan.d.ts.map +1 -0
  104. package/dist/agents/subagents/plan.js +18 -0
  105. package/dist/agents/subagents/plan.js.map +1 -0
  106. package/dist/agents/thread-caveman-state.d.ts +17 -0
  107. package/dist/agents/thread-caveman-state.d.ts.map +1 -0
  108. package/dist/agents/thread-caveman-state.js +107 -0
  109. package/dist/agents/thread-caveman-state.js.map +1 -0
  110. package/dist/agents/tool-availability.d.ts +10 -0
  111. package/dist/agents/tool-availability.d.ts.map +1 -0
  112. package/dist/agents/tool-availability.js +96 -0
  113. package/dist/agents/tool-availability.js.map +1 -0
  114. package/dist/agents/tools.d.ts +36 -0
  115. package/dist/agents/tools.d.ts.map +1 -0
  116. package/dist/agents/tools.js +117 -0
  117. package/dist/agents/tools.js.map +1 -0
  118. package/dist/agents/workflow-builder-agent.d.ts +2 -0
  119. package/dist/agents/workflow-builder-agent.d.ts.map +1 -0
  120. package/dist/agents/workflow-builder-agent.js +80 -0
  121. package/dist/agents/workflow-builder-agent.js.map +1 -0
  122. package/dist/agents/workspace.d.ts +32 -0
  123. package/dist/agents/workspace.d.ts.map +1 -0
  124. package/dist/agents/workspace.js +208 -0
  125. package/dist/agents/workspace.js.map +1 -0
  126. package/dist/analytics.d.ts +18 -0
  127. package/dist/analytics.d.ts.map +1 -0
  128. package/dist/analytics.js +163 -0
  129. package/dist/analytics.js.map +1 -0
  130. package/dist/auth/authorization-input.d.ts +16 -0
  131. package/dist/auth/authorization-input.d.ts.map +1 -0
  132. package/dist/auth/authorization-input.js +42 -0
  133. package/dist/auth/authorization-input.js.map +1 -0
  134. package/dist/auth/device-code.d.ts +93 -0
  135. package/dist/auth/device-code.d.ts.map +1 -0
  136. package/dist/auth/device-code.js +129 -0
  137. package/dist/auth/device-code.js.map +1 -0
  138. package/dist/auth/index.d.ts +12 -0
  139. package/dist/auth/index.d.ts.map +1 -0
  140. package/dist/auth/index.js +8 -0
  141. package/dist/auth/pkce.d.ts +13 -0
  142. package/dist/auth/pkce.d.ts.map +1 -0
  143. package/dist/auth/pkce.js +32 -0
  144. package/dist/auth/pkce.js.map +1 -0
  145. package/dist/auth/provider-auth-error.d.ts +12 -0
  146. package/dist/auth/provider-auth-error.d.ts.map +1 -0
  147. package/dist/auth/provider-auth-error.js +16 -0
  148. package/dist/auth/provider-auth-error.js.map +1 -0
  149. package/dist/auth/providers/anthropic.d.ts +40 -0
  150. package/dist/auth/providers/anthropic.d.ts.map +1 -0
  151. package/dist/auth/providers/anthropic.js +126 -0
  152. package/dist/auth/providers/anthropic.js.map +1 -0
  153. package/dist/auth/providers/github-copilot.d.ts +154 -0
  154. package/dist/auth/providers/github-copilot.d.ts.map +1 -0
  155. package/dist/auth/providers/github-copilot.js +340 -0
  156. package/dist/auth/providers/github-copilot.js.map +1 -0
  157. package/dist/auth/providers/kimi-coding.d.ts +38 -0
  158. package/dist/auth/providers/kimi-coding.d.ts.map +1 -0
  159. package/dist/auth/providers/kimi-coding.js +232 -0
  160. package/dist/auth/providers/kimi-coding.js.map +1 -0
  161. package/dist/auth/providers/openai-codex.d.ts +139 -0
  162. package/dist/auth/providers/openai-codex.d.ts.map +1 -0
  163. package/dist/auth/providers/openai-codex.js +519 -0
  164. package/dist/auth/providers/openai-codex.js.map +1 -0
  165. package/dist/auth/providers/xai.d.ts +64 -0
  166. package/dist/auth/providers/xai.d.ts.map +1 -0
  167. package/dist/auth/providers/xai.js +205 -0
  168. package/dist/auth/providers/xai.js.map +1 -0
  169. package/dist/auth/storage.d.ts +92 -0
  170. package/dist/auth/storage.d.ts.map +1 -0
  171. package/dist/auth/storage.js +211 -0
  172. package/dist/auth/storage.js.map +1 -0
  173. package/dist/auth/types.d.ts +89 -0
  174. package/dist/auth/types.d.ts.map +1 -0
  175. package/dist/auth/types.js +1 -0
  176. package/dist/clipboard/index.d.ts +26 -0
  177. package/dist/clipboard/index.d.ts.map +1 -0
  178. package/dist/clipboard/index.js +226 -0
  179. package/dist/clipboard/index.js.map +1 -0
  180. package/dist/constants.d.ts +10 -0
  181. package/dist/constants.d.ts.map +1 -0
  182. package/dist/constants.js +18 -0
  183. package/dist/constants.js.map +1 -0
  184. package/dist/error-classification.d.ts +10 -0
  185. package/dist/error-classification.d.ts.map +1 -0
  186. package/dist/error-classification.js +22 -0
  187. package/dist/error-classification.js.map +1 -0
  188. package/dist/evals/context-builder.d.ts +41 -0
  189. package/dist/evals/context-builder.d.ts.map +1 -0
  190. package/dist/evals/context-builder.js +161 -0
  191. package/dist/evals/context-builder.js.map +1 -0
  192. package/dist/evals/index.d.ts +4 -0
  193. package/dist/evals/index.d.ts.map +1 -0
  194. package/dist/evals/index.js +5 -0
  195. package/dist/evals/scorers/classify-command.d.ts +31 -0
  196. package/dist/evals/scorers/classify-command.d.ts.map +1 -0
  197. package/dist/evals/scorers/classify-command.js +73 -0
  198. package/dist/evals/scorers/classify-command.js.map +1 -0
  199. package/dist/evals/scorers/efficiency.d.ts +44 -0
  200. package/dist/evals/scorers/efficiency.d.ts.map +1 -0
  201. package/dist/evals/scorers/efficiency.js +259 -0
  202. package/dist/evals/scorers/efficiency.js.map +1 -0
  203. package/dist/evals/scorers/extract-tools.d.ts +25 -0
  204. package/dist/evals/scorers/extract-tools.d.ts.map +1 -0
  205. package/dist/evals/scorers/extract-tools.js +60 -0
  206. package/dist/evals/scorers/extract-tools.js.map +1 -0
  207. package/dist/evals/scorers/index.d.ts +3 -0
  208. package/dist/evals/scorers/index.d.ts.map +1 -0
  209. package/dist/evals/scorers/index.js +3 -0
  210. package/dist/evals/scorers/outcome.d.ts +49 -0
  211. package/dist/evals/scorers/outcome.d.ts.map +1 -0
  212. package/dist/evals/scorers/outcome.js +347 -0
  213. package/dist/evals/scorers/outcome.js.map +1 -0
  214. package/dist/goal-manager.d.ts +78 -0
  215. package/dist/goal-manager.d.ts.map +1 -0
  216. package/dist/goal-manager.js +273 -0
  217. package/dist/goal-manager.js.map +1 -0
  218. package/dist/goal-signal.d.ts +14 -0
  219. package/dist/goal-signal.d.ts.map +1 -0
  220. package/dist/goal-signal.js +17 -0
  221. package/dist/goal-signal.js.map +1 -0
  222. package/dist/headless/cli.d.ts +42 -0
  223. package/dist/headless/cli.d.ts.map +1 -0
  224. package/dist/headless/cli.js +209 -0
  225. package/dist/headless/cli.js.map +1 -0
  226. package/dist/headless/flags.d.ts +33 -0
  227. package/dist/headless/flags.d.ts.map +1 -0
  228. package/dist/headless/flags.js +190 -0
  229. package/dist/headless/flags.js.map +1 -0
  230. package/dist/headless/format.d.ts +38 -0
  231. package/dist/headless/format.d.ts.map +1 -0
  232. package/dist/headless/format.js +89 -0
  233. package/dist/headless/format.js.map +1 -0
  234. package/dist/headless/index.d.ts +25 -0
  235. package/dist/headless/index.d.ts.map +1 -0
  236. package/dist/headless/index.js +6 -0
  237. package/dist/headless/policy.d.ts +17 -0
  238. package/dist/headless/policy.d.ts.map +1 -0
  239. package/dist/headless/policy.js +42 -0
  240. package/dist/headless/policy.js.map +1 -0
  241. package/dist/headless/run-mc.d.ts +7 -0
  242. package/dist/headless/run-mc.d.ts.map +1 -0
  243. package/dist/headless/run-mc.js +346 -0
  244. package/dist/headless/run-mc.js.map +1 -0
  245. package/dist/headless/types.d.ts +158 -0
  246. package/dist/headless/types.d.ts.map +1 -0
  247. package/dist/headless/types.js +19 -0
  248. package/dist/headless/types.js.map +1 -0
  249. package/dist/hooks/config.d.ts +11 -0
  250. package/dist/hooks/config.d.ts.map +1 -0
  251. package/dist/hooks/config.js +73 -0
  252. package/dist/hooks/config.js.map +1 -0
  253. package/dist/hooks/executor.d.ts +13 -0
  254. package/dist/hooks/executor.d.ts.map +1 -0
  255. package/dist/hooks/executor.js +129 -0
  256. package/dist/hooks/executor.js.map +1 -0
  257. package/dist/hooks/index.d.ts +6 -0
  258. package/dist/hooks/index.d.ts.map +1 -0
  259. package/dist/hooks/index.js +5 -0
  260. package/dist/hooks/manager.d.ts +54 -0
  261. package/dist/hooks/manager.d.ts.map +1 -0
  262. package/dist/hooks/manager.js +241 -0
  263. package/dist/hooks/manager.js.map +1 -0
  264. package/dist/hooks/types.d.ts +172 -0
  265. package/dist/hooks/types.d.ts.map +1 -0
  266. package/dist/hooks/types.js +8 -0
  267. package/dist/hooks/types.js.map +1 -0
  268. package/dist/index.d.ts +341 -0
  269. package/dist/index.d.ts.map +1 -0
  270. package/dist/index.js +919 -0
  271. package/dist/index.js.map +1 -0
  272. package/dist/ipc/ipc-reporter.d.ts +14 -0
  273. package/dist/ipc/ipc-reporter.d.ts.map +1 -0
  274. package/dist/ipc/ipc-reporter.js +21 -0
  275. package/dist/ipc/ipc-reporter.js.map +1 -0
  276. package/dist/knowledge-inspector.d.ts +119 -0
  277. package/dist/knowledge-inspector.d.ts.map +1 -0
  278. package/dist/knowledge-inspector.js +508 -0
  279. package/dist/knowledge-inspector.js.map +1 -0
  280. package/dist/knowledge-scope.d.ts +35 -0
  281. package/dist/knowledge-scope.d.ts.map +1 -0
  282. package/dist/knowledge-scope.js +47 -0
  283. package/dist/knowledge-scope.js.map +1 -0
  284. package/dist/lsp/client.d.ts +56 -0
  285. package/dist/lsp/client.d.ts.map +1 -0
  286. package/dist/lsp/client.js +251 -0
  287. package/dist/lsp/client.js.map +1 -0
  288. package/dist/lsp/index.d.ts +4 -0
  289. package/dist/lsp/index.d.ts.map +1 -0
  290. package/dist/lsp/index.js +4 -0
  291. package/dist/lsp/language.d.ts +9 -0
  292. package/dist/lsp/language.d.ts.map +1 -0
  293. package/dist/lsp/language.js +44 -0
  294. package/dist/lsp/language.js.map +1 -0
  295. package/dist/lsp/manager.d.ts +34 -0
  296. package/dist/lsp/manager.d.ts.map +1 -0
  297. package/dist/lsp/manager.js +82 -0
  298. package/dist/lsp/manager.js.map +1 -0
  299. package/dist/lsp/server.d.ts +27 -0
  300. package/dist/lsp/server.d.ts.map +1 -0
  301. package/dist/lsp/server.js +159 -0
  302. package/dist/lsp/server.js.map +1 -0
  303. package/dist/lsp/workspace.d.ts +9 -0
  304. package/dist/lsp/workspace.d.ts.map +1 -0
  305. package/dist/lsp/workspace.js +55 -0
  306. package/dist/lsp/workspace.js.map +1 -0
  307. package/dist/mcp/config.d.ts +62 -0
  308. package/dist/mcp/config.d.ts.map +1 -0
  309. package/dist/mcp/config.js +301 -0
  310. package/dist/mcp/config.js.map +1 -0
  311. package/dist/mcp/index.d.ts +6 -0
  312. package/dist/mcp/index.d.ts.map +1 -0
  313. package/dist/mcp/index.js +3 -0
  314. package/dist/mcp/manager.d.ts +101 -0
  315. package/dist/mcp/manager.d.ts.map +1 -0
  316. package/dist/mcp/manager.js +644 -0
  317. package/dist/mcp/manager.js.map +1 -0
  318. package/dist/mcp/state.d.ts +35 -0
  319. package/dist/mcp/state.d.ts.map +1 -0
  320. package/dist/mcp/state.js +97 -0
  321. package/dist/mcp/state.js.map +1 -0
  322. package/dist/mcp/types.d.ts +125 -0
  323. package/dist/mcp/types.d.ts.map +1 -0
  324. package/dist/mcp/types.js +1 -0
  325. package/dist/onboarding/custom-packs.d.ts +7 -0
  326. package/dist/onboarding/custom-packs.d.ts.map +1 -0
  327. package/dist/onboarding/custom-packs.js +17 -0
  328. package/dist/onboarding/custom-packs.js.map +1 -0
  329. package/dist/onboarding/custom-providers.d.ts +4 -0
  330. package/dist/onboarding/custom-providers.d.ts.map +1 -0
  331. package/dist/onboarding/custom-providers.js +30 -0
  332. package/dist/onboarding/custom-providers.js.map +1 -0
  333. package/dist/onboarding/index.d.ts +5 -0
  334. package/dist/onboarding/index.d.ts.map +1 -0
  335. package/dist/onboarding/index.js +3 -0
  336. package/dist/onboarding/om-settings.d.ts +25 -0
  337. package/dist/onboarding/om-settings.d.ts.map +1 -0
  338. package/dist/onboarding/om-settings.js +47 -0
  339. package/dist/onboarding/om-settings.js.map +1 -0
  340. package/dist/onboarding/packs.d.ts +49 -0
  341. package/dist/onboarding/packs.d.ts.map +1 -0
  342. package/dist/onboarding/packs.js +182 -0
  343. package/dist/onboarding/packs.js.map +1 -0
  344. package/dist/onboarding/settings.d.ts +438 -0
  345. package/dist/onboarding/settings.d.ts.map +1 -0
  346. package/dist/onboarding/settings.js +847 -0
  347. package/dist/onboarding/settings.js.map +1 -0
  348. package/dist/permissions.d.ts +55 -0
  349. package/dist/permissions.d.ts.map +1 -0
  350. package/dist/permissions.js +137 -0
  351. package/dist/permissions.js.map +1 -0
  352. package/dist/plugin.d.ts +144 -0
  353. package/dist/plugin.d.ts.map +1 -0
  354. package/dist/plugin.js +30 -0
  355. package/dist/plugin.js.map +1 -0
  356. package/dist/plugins/dependencies.d.ts +9 -0
  357. package/dist/plugins/dependencies.d.ts.map +1 -0
  358. package/dist/plugins/dependencies.js +88 -0
  359. package/dist/plugins/dependencies.js.map +1 -0
  360. package/dist/plugins/install.d.ts +21 -0
  361. package/dist/plugins/install.d.ts.map +1 -0
  362. package/dist/plugins/install.js +190 -0
  363. package/dist/plugins/install.js.map +1 -0
  364. package/dist/plugins/loader.d.ts +19 -0
  365. package/dist/plugins/loader.d.ts.map +1 -0
  366. package/dist/plugins/loader.js +258 -0
  367. package/dist/plugins/loader.js.map +1 -0
  368. package/dist/plugins/manager.d.ts +98 -0
  369. package/dist/plugins/manager.d.ts.map +1 -0
  370. package/dist/plugins/manager.js +456 -0
  371. package/dist/plugins/manager.js.map +1 -0
  372. package/dist/plugins/manifest.d.ts +14 -0
  373. package/dist/plugins/manifest.d.ts.map +1 -0
  374. package/dist/plugins/manifest.js +50 -0
  375. package/dist/plugins/manifest.js.map +1 -0
  376. package/dist/plugins/package-link.d.ts +3 -0
  377. package/dist/plugins/package-link.d.ts.map +1 -0
  378. package/dist/plugins/package-link.js +61 -0
  379. package/dist/plugins/package-link.js.map +1 -0
  380. package/dist/plugins/paths.d.ts +10 -0
  381. package/dist/plugins/paths.d.ts.map +1 -0
  382. package/dist/plugins/paths.js +25 -0
  383. package/dist/plugins/paths.js.map +1 -0
  384. package/dist/plugins/registry.d.ts +8 -0
  385. package/dist/plugins/registry.d.ts.map +1 -0
  386. package/dist/plugins/registry.js +112 -0
  387. package/dist/plugins/registry.js.map +1 -0
  388. package/dist/plugins/scaffold.d.ts +10 -0
  389. package/dist/plugins/scaffold.d.ts.map +1 -0
  390. package/dist/plugins/scaffold.js +116 -0
  391. package/dist/plugins/scaffold.js.map +1 -0
  392. package/dist/plugins/signal-lane.d.ts +58 -0
  393. package/dist/plugins/signal-lane.d.ts.map +1 -0
  394. package/dist/plugins/signal-lane.js +166 -0
  395. package/dist/plugins/signal-lane.js.map +1 -0
  396. package/dist/plugins/types.d.ts +81 -0
  397. package/dist/plugins/types.d.ts.map +1 -0
  398. package/dist/plugins/types.js +1 -0
  399. package/dist/process-memory-diagnostics.d.ts +135 -0
  400. package/dist/process-memory-diagnostics.d.ts.map +1 -0
  401. package/dist/process-memory-diagnostics.js +500 -0
  402. package/dist/process-memory-diagnostics.js.map +1 -0
  403. package/dist/processors/plan-rejection-abort.d.ts +12 -0
  404. package/dist/processors/plan-rejection-abort.d.ts.map +1 -0
  405. package/dist/processors/plan-rejection-abort.js +54 -0
  406. package/dist/processors/plan-rejection-abort.js.map +1 -0
  407. package/dist/providers/amazon-bedrock-gateway.d.ts +47 -0
  408. package/dist/providers/amazon-bedrock-gateway.d.ts.map +1 -0
  409. package/dist/providers/amazon-bedrock-gateway.js +153 -0
  410. package/dist/providers/amazon-bedrock-gateway.js.map +1 -0
  411. package/dist/providers/amazon-bedrock.d.ts +28 -0
  412. package/dist/providers/amazon-bedrock.d.ts.map +1 -0
  413. package/dist/providers/amazon-bedrock.js +102 -0
  414. package/dist/providers/amazon-bedrock.js.map +1 -0
  415. package/dist/providers/claude-max.d.ts +65 -0
  416. package/dist/providers/claude-max.d.ts.map +1 -0
  417. package/dist/providers/claude-max.js +252 -0
  418. package/dist/providers/claude-max.js.map +1 -0
  419. package/dist/providers/github-copilot.d.ts +60 -0
  420. package/dist/providers/github-copilot.d.ts.map +1 -0
  421. package/dist/providers/github-copilot.js +266 -0
  422. package/dist/providers/github-copilot.js.map +1 -0
  423. package/dist/providers/kimi-coding.d.ts +15 -0
  424. package/dist/providers/kimi-coding.d.ts.map +1 -0
  425. package/dist/providers/kimi-coding.js +69 -0
  426. package/dist/providers/kimi-coding.js.map +1 -0
  427. package/dist/providers/openai-codex.d.ts +73 -0
  428. package/dist/providers/openai-codex.d.ts.map +1 -0
  429. package/dist/providers/openai-codex.js +306 -0
  430. package/dist/providers/openai-codex.js.map +1 -0
  431. package/dist/providers/xai.d.ts +33 -0
  432. package/dist/providers/xai.d.ts.map +1 -0
  433. package/dist/providers/xai.js +71 -0
  434. package/dist/providers/xai.js.map +1 -0
  435. package/dist/schema.d.ts +200 -0
  436. package/dist/schema.d.ts.map +1 -0
  437. package/dist/schema.js +92 -0
  438. package/dist/schema.js.map +1 -0
  439. package/dist/theme-palette.d.ts +17 -0
  440. package/dist/theme-palette.d.ts.map +1 -0
  441. package/dist/theme-palette.js +21 -0
  442. package/dist/theme-palette.js.map +1 -0
  443. package/dist/thinking.d.ts +33 -0
  444. package/dist/thinking.d.ts.map +1 -0
  445. package/dist/thinking.js +58 -0
  446. package/dist/thinking.js.map +1 -0
  447. package/dist/tool-names.d.ts +73 -0
  448. package/dist/tool-names.d.ts.map +1 -0
  449. package/dist/tool-names.js +52 -0
  450. package/dist/tool-names.js.map +1 -0
  451. package/dist/tools/index.d.ts +6 -0
  452. package/dist/tools/index.d.ts.map +1 -0
  453. package/dist/tools/index.js +3 -0
  454. package/dist/tools/request-sandbox-access.d.ts +6 -0
  455. package/dist/tools/request-sandbox-access.d.ts.map +1 -0
  456. package/dist/tools/request-sandbox-access.js +79 -0
  457. package/dist/tools/request-sandbox-access.js.map +1 -0
  458. package/dist/tools/utils.d.ts +20 -0
  459. package/dist/tools/utils.d.ts.map +1 -0
  460. package/dist/tools/utils.js +32 -0
  461. package/dist/tools/utils.js.map +1 -0
  462. package/dist/tools/web-search.d.ts +114 -0
  463. package/dist/tools/web-search.d.ts.map +1 -0
  464. package/dist/tools/web-search.js +155 -0
  465. package/dist/tools/web-search.js.map +1 -0
  466. package/dist/tools/workflows/create-workflow.d.ts +7 -0
  467. package/dist/tools/workflows/create-workflow.d.ts.map +1 -0
  468. package/dist/tools/workflows/create-workflow.js +81 -0
  469. package/dist/tools/workflows/create-workflow.js.map +1 -0
  470. package/dist/tools/workflows/delete-workflow.d.ts +7 -0
  471. package/dist/tools/workflows/delete-workflow.d.ts.map +1 -0
  472. package/dist/tools/workflows/delete-workflow.js +21 -0
  473. package/dist/tools/workflows/delete-workflow.js.map +1 -0
  474. package/dist/tools/workflows/ephemeral-memory.d.ts +7 -0
  475. package/dist/tools/workflows/ephemeral-memory.d.ts.map +1 -0
  476. package/dist/tools/workflows/ephemeral-memory.js +45 -0
  477. package/dist/tools/workflows/ephemeral-memory.js.map +1 -0
  478. package/dist/tools/workflows/extract-json-schema.d.ts +12 -0
  479. package/dist/tools/workflows/extract-json-schema.d.ts.map +1 -0
  480. package/dist/tools/workflows/extract-json-schema.js +22 -0
  481. package/dist/tools/workflows/extract-json-schema.js.map +1 -0
  482. package/dist/tools/workflows/get-workflow.d.ts +11 -0
  483. package/dist/tools/workflows/get-workflow.d.ts.map +1 -0
  484. package/dist/tools/workflows/get-workflow.js +34 -0
  485. package/dist/tools/workflows/get-workflow.js.map +1 -0
  486. package/dist/tools/workflows/list-available-agents.d.ts +8 -0
  487. package/dist/tools/workflows/list-available-agents.d.ts.map +1 -0
  488. package/dist/tools/workflows/list-available-agents.js +32 -0
  489. package/dist/tools/workflows/list-available-agents.js.map +1 -0
  490. package/dist/tools/workflows/list-available-tools.d.ts +9 -0
  491. package/dist/tools/workflows/list-available-tools.d.ts.map +1 -0
  492. package/dist/tools/workflows/list-available-tools.js +40 -0
  493. package/dist/tools/workflows/list-available-tools.js.map +1 -0
  494. package/dist/tools/workflows/list-available-workflows.d.ts +9 -0
  495. package/dist/tools/workflows/list-available-workflows.d.ts.map +1 -0
  496. package/dist/tools/workflows/list-available-workflows.js +32 -0
  497. package/dist/tools/workflows/list-available-workflows.js.map +1 -0
  498. package/dist/tools/workflows/list-workflows.d.ts +9 -0
  499. package/dist/tools/workflows/list-workflows.d.ts.map +1 -0
  500. package/dist/tools/workflows/list-workflows.js +33 -0
  501. package/dist/tools/workflows/list-workflows.js.map +1 -0
  502. package/dist/tools/workflows/run-workflow.d.ts +9 -0
  503. package/dist/tools/workflows/run-workflow.d.ts.map +1 -0
  504. package/dist/tools/workflows/run-workflow.js +52 -0
  505. package/dist/tools/workflows/run-workflow.js.map +1 -0
  506. package/dist/tools/workflows/save-workflow.d.ts +1015 -0
  507. package/dist/tools/workflows/save-workflow.d.ts.map +1 -0
  508. package/dist/tools/workflows/save-workflow.js +28 -0
  509. package/dist/tools/workflows/save-workflow.js.map +1 -0
  510. package/dist/tools/workflows/tool-ids.d.ts +15 -0
  511. package/dist/tools/workflows/tool-ids.d.ts.map +1 -0
  512. package/dist/tools/workflows/tool-ids.js +19 -0
  513. package/dist/tools/workflows/tool-ids.js.map +1 -0
  514. package/dist/utils/binaries.d.ts +7 -0
  515. package/dist/utils/binaries.d.ts.map +1 -0
  516. package/dist/utils/binaries.js +78 -0
  517. package/dist/utils/binaries.js.map +1 -0
  518. package/dist/utils/debug-log.d.ts +12 -0
  519. package/dist/utils/debug-log.d.ts.map +1 -0
  520. package/dist/utils/debug-log.js +59 -0
  521. package/dist/utils/debug-log.js.map +1 -0
  522. package/dist/utils/errors.d.ts +36 -0
  523. package/dist/utils/errors.d.ts.map +1 -0
  524. package/dist/utils/errors.js +196 -0
  525. package/dist/utils/errors.js.map +1 -0
  526. package/dist/utils/gateway-sync.d.ts +26 -0
  527. package/dist/utils/gateway-sync.d.ts.map +1 -0
  528. package/dist/utils/gateway-sync.js +61 -0
  529. package/dist/utils/gateway-sync.js.map +1 -0
  530. package/dist/utils/path-security.d.ts +2 -0
  531. package/dist/utils/path-security.d.ts.map +1 -0
  532. package/dist/utils/path-security.js +10 -0
  533. package/dist/utils/path-security.js.map +1 -0
  534. package/dist/utils/plan-diff.d.ts +25 -0
  535. package/dist/utils/plan-diff.d.ts.map +1 -0
  536. package/dist/utils/plan-diff.js +62 -0
  537. package/dist/utils/plan-diff.js.map +1 -0
  538. package/dist/utils/plans.d.ts +59 -0
  539. package/dist/utils/plans.d.ts.map +1 -0
  540. package/dist/utils/plans.js +117 -0
  541. package/dist/utils/plans.js.map +1 -0
  542. package/dist/utils/project.d.ts +160 -0
  543. package/dist/utils/project.d.ts.map +1 -0
  544. package/dist/utils/project.js +364 -0
  545. package/dist/utils/project.js.map +1 -0
  546. package/dist/utils/signals-pubsub.d.ts +41 -0
  547. package/dist/utils/signals-pubsub.d.ts.map +1 -0
  548. package/dist/utils/signals-pubsub.js +122 -0
  549. package/dist/utils/signals-pubsub.js.map +1 -0
  550. package/dist/utils/slash-command-loader.d.ts +52 -0
  551. package/dist/utils/slash-command-loader.d.ts.map +1 -0
  552. package/dist/utils/slash-command-loader.js +142 -0
  553. package/dist/utils/slash-command-loader.js.map +1 -0
  554. package/dist/utils/slash-command-processor.d.ts +14 -0
  555. package/dist/utils/slash-command-processor.d.ts.map +1 -0
  556. package/dist/utils/slash-command-processor.js +109 -0
  557. package/dist/utils/slash-command-processor.js.map +1 -0
  558. package/dist/utils/stdin-pipe.d.ts +33 -0
  559. package/dist/utils/stdin-pipe.d.ts.map +1 -0
  560. package/dist/utils/stdin-pipe.js +96 -0
  561. package/dist/utils/stdin-pipe.js.map +1 -0
  562. package/dist/utils/storage-factory.d.ts +50 -0
  563. package/dist/utils/storage-factory.d.ts.map +1 -0
  564. package/dist/utils/storage-factory.js +121 -0
  565. package/dist/utils/storage-factory.js.map +1 -0
  566. package/dist/utils/storage-maintenance.d.ts +103 -0
  567. package/dist/utils/storage-maintenance.d.ts.map +1 -0
  568. package/dist/utils/storage-maintenance.js +274 -0
  569. package/dist/utils/storage-maintenance.js.map +1 -0
  570. package/dist/utils/thread-lock.d.ts +26 -0
  571. package/dist/utils/thread-lock.d.ts.map +1 -0
  572. package/dist/utils/thread-lock.js +112 -0
  573. package/dist/utils/thread-lock.js.map +1 -0
  574. package/dist/utils/token-estimator.d.ts +3 -0
  575. package/dist/utils/token-estimator.d.ts.map +1 -0
  576. package/dist/utils/token-estimator.js +21 -0
  577. package/dist/utils/token-estimator.js.map +1 -0
  578. package/dist/utils/update-check.d.ts +101 -0
  579. package/dist/utils/update-check.d.ts.map +1 -0
  580. package/dist/utils/update-check.js +383 -0
  581. package/dist/utils/update-check.js.map +1 -0
  582. package/dist/voice/stt-registry.d.ts +64 -0
  583. package/dist/voice/stt-registry.d.ts.map +1 -0
  584. package/dist/voice/stt-registry.js +144 -0
  585. package/dist/voice/stt-registry.js.map +1 -0
  586. package/dist/workflows/register-primitives.d.ts +52 -0
  587. package/dist/workflows/register-primitives.d.ts.map +1 -0
  588. package/dist/workflows/register-primitives.js +40 -0
  589. package/dist/workflows/register-primitives.js.map +1 -0
  590. package/dist/workflows/service.d.ts +64 -0
  591. package/dist/workflows/service.d.ts.map +1 -0
  592. package/dist/workflows/service.js +53 -0
  593. package/dist/workflows/service.js.map +1 -0
  594. package/package.json +97 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kimi-coding.js","names":[],"sources":["../../../src/auth/providers/kimi-coding.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { arch, hostname, platform, release } from 'node:os';\nimport { getCurrentVersion } from '../../utils/update-check.js';\nimport {\n abortableSleep,\n createDeviceCodePollState,\n pollDeviceCodeUntilComplete,\n stepDeviceCodePoll,\n} from '../device-code.js';\nimport type { DeviceCodePollOutcome, DeviceCodePollState } from '../device-code.js';\nimport type { OAuthCredentials, OAuthLoginCallbacks, OAuthProviderInterface } from '../types.js';\n\nconst CLIENT_ID = '17e5f671-d194-4dfb-9706-5516cb48c098';\nconst OAUTH_HOST = 'https://auth.kimi.com';\nconst DEVICE_ID_PATTERN = /^[0-9a-f]{32}$/;\nconst DEFAULT_EXPIRES_IN_SECONDS = 15 * 60;\nconst DEFAULT_POLL_INTERVAL_SECONDS = 5;\nconst REQUEST_TIMEOUT_MS = 30_000;\nconst REFRESH_MAX_RETRIES = 3;\n\nfunction asciiHeaderValue(value: string): string {\n const sanitized = value.replace(/[^\\x20-\\x7E]/g, '').trim();\n return sanitized || 'unknown';\n}\n\nconst KIMI_DEVICE_DETAILS = {\n 'X-Msh-Platform': 'mastracode',\n 'X-Msh-Version': asciiHeaderValue(getCurrentVersion()),\n 'X-Msh-Device-Name': asciiHeaderValue(hostname()),\n 'X-Msh-Device-Model': asciiHeaderValue(`${platform()} ${arch()}`),\n 'X-Msh-Os-Version': asciiHeaderValue(release()),\n};\n\nexport function createKimiCodingDeviceId(): string {\n return randomUUID().replaceAll('-', '');\n}\n\nexport function isKimiCodingDeviceId(value: unknown): value is string {\n return typeof value === 'string' && DEVICE_ID_PATTERN.test(value);\n}\n\nexport function getKimiCodingDeviceHeaders(deviceId: string): Record<string, string> {\n if (!isKimiCodingDeviceId(deviceId)) {\n throw new Error('Kimi For Coding credentials have an invalid device ID. Please reconnect the account.');\n }\n return { ...KIMI_DEVICE_DETAILS, 'X-Msh-Device-Id': deviceId };\n}\n\nfunction requestSignal(signal?: AbortSignal): AbortSignal {\n const timeout = AbortSignal.timeout(REQUEST_TIMEOUT_MS);\n return signal ? AbortSignal.any([timeout, signal]) : timeout;\n}\n\nfunction trustedHttpUrl(value: unknown): string | null {\n if (typeof value !== 'string' || !value) return null;\n try {\n const url = new URL(value);\n return url.protocol === 'https:' ? url.href : null;\n } catch {\n return null;\n }\n}\n\nasync function readJson(response: Response): Promise<Record<string, unknown> | null> {\n try {\n const value = (await response.json()) as unknown;\n return value && typeof value === 'object' ? (value as Record<string, unknown>) : null;\n } catch {\n return null;\n }\n}\n\nfunction credentialsFromTokenResponse(value: unknown, operation: string, deviceId: string): OAuthCredentials {\n const data = (value ?? {}) as Record<string, unknown>;\n const access = data.access_token;\n const refresh = data.refresh_token;\n const expiresIn = data.expires_in;\n if (\n typeof access !== 'string' ||\n !access ||\n typeof refresh !== 'string' ||\n !refresh ||\n typeof expiresIn !== 'number' ||\n !Number.isFinite(expiresIn) ||\n expiresIn <= 0\n ) {\n throw new Error(`Kimi For Coding token ${operation} response missing fields`);\n }\n return { access, refresh, expires: Date.now() + expiresIn * 1000, deviceId };\n}\n\nexport interface KimiCodingDeviceLoginPending {\n clientId: string;\n deviceId: string;\n deviceCode: string;\n userCode: string;\n url: string;\n instructions: string;\n state: DeviceCodePollState;\n}\n\nexport type KimiCodingDevicePollResult =\n | { status: 'complete'; credentials: OAuthCredentials }\n | { status: 'pending'; nextPollMs: number; pending: KimiCodingDeviceLoginPending }\n | { status: 'failed'; error: string };\n\nexport async function startKimiCodingDeviceLogin(options?: {\n signal?: AbortSignal;\n}): Promise<KimiCodingDeviceLoginPending> {\n const clientId = CLIENT_ID;\n const deviceId = createKimiCodingDeviceId();\n const response = await fetch(`${OAUTH_HOST}/api/oauth/device_authorization`, {\n method: 'POST',\n headers: {\n ...getKimiCodingDeviceHeaders(deviceId),\n 'Content-Type': 'application/x-www-form-urlencoded',\n Accept: 'application/json',\n },\n body: new URLSearchParams({ client_id: clientId }).toString(),\n signal: requestSignal(options?.signal),\n });\n if (!response.ok) {\n const text = await response.text().catch(() => '');\n throw new Error(`Kimi For Coding device authorization failed: ${response.status}${text ? ` ${text}` : ''}`);\n }\n\n const data = await readJson(response);\n const deviceCode = data?.device_code;\n const userCode = data?.user_code;\n const verificationUri = trustedHttpUrl(data?.verification_uri);\n const verificationUriComplete = trustedHttpUrl(data?.verification_uri_complete);\n if (\n typeof deviceCode !== 'string' ||\n !deviceCode ||\n typeof userCode !== 'string' ||\n !userCode ||\n !verificationUri ||\n !verificationUriComplete\n ) {\n throw new Error('Invalid Kimi For Coding device authorization response');\n }\n\n const interval = data?.interval;\n const expiresIn = data?.expires_in;\n return {\n clientId,\n deviceId,\n deviceCode,\n userCode,\n url: verificationUriComplete,\n instructions: `Enter code: ${userCode}`,\n state: createDeviceCodePollState({\n intervalSeconds:\n typeof interval === 'number' && Number.isFinite(interval) && interval > 0\n ? interval\n : DEFAULT_POLL_INTERVAL_SECONDS,\n expiresInSeconds:\n typeof expiresIn === 'number' && Number.isFinite(expiresIn) && expiresIn > 0\n ? expiresIn\n : DEFAULT_EXPIRES_IN_SECONDS,\n }),\n };\n}\n\nasync function pollKimiCodingTokenOnce(\n pending: KimiCodingDeviceLoginPending,\n signal?: AbortSignal,\n): Promise<DeviceCodePollOutcome<OAuthCredentials>> {\n const response = await fetch(`${OAUTH_HOST}/api/oauth/token`, {\n method: 'POST',\n headers: {\n ...getKimiCodingDeviceHeaders(pending.deviceId),\n 'Content-Type': 'application/x-www-form-urlencoded',\n Accept: 'application/json',\n },\n body: new URLSearchParams({\n client_id: pending.clientId,\n device_code: pending.deviceCode,\n grant_type: 'urn:ietf:params:oauth:grant-type:device_code',\n }).toString(),\n signal: requestSignal(signal),\n });\n const data = await readJson(response);\n if (response.ok && typeof data?.access_token === 'string') {\n try {\n return { status: 'complete', result: credentialsFromTokenResponse(data, 'poll', pending.deviceId) };\n } catch (error) {\n return { status: 'failed', error: error instanceof Error ? error.message : String(error) };\n }\n }\n\n const error = data?.error;\n if (error === 'authorization_pending') return { status: 'pending' };\n if (error === 'slow_down') {\n return {\n status: 'slow_down',\n intervalSeconds: typeof data?.interval === 'number' && data.interval > 0 ? data.interval : undefined,\n };\n }\n if (error === 'expired_token') {\n return { status: 'failed', error: 'Kimi For Coding authorization expired. Please restart login.' };\n }\n if (error === 'access_denied') return { status: 'failed', error: 'Kimi For Coding login was denied.' };\n const description = typeof data?.error_description === 'string' ? `: ${data.error_description}` : '';\n return {\n status: 'failed',\n error: `Kimi For Coding token request failed: ${response.status}${typeof error === 'string' ? ` ${error}${description}` : ''}`,\n };\n}\n\nexport async function pollKimiCodingDeviceLogin(\n pending: KimiCodingDeviceLoginPending,\n options?: { signal?: AbortSignal },\n): Promise<KimiCodingDevicePollResult> {\n const step = await stepDeviceCodePoll(pending.state, () => pollKimiCodingTokenOnce(pending, options?.signal));\n if (step.status === 'complete') return { status: 'complete', credentials: step.result };\n if (step.status === 'failed') return { status: 'failed', error: step.error };\n return {\n status: 'pending',\n nextPollMs: step.nextPollMs,\n pending: { ...pending, state: step.state },\n };\n}\n\nexport async function loginKimiCoding(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials> {\n const pending = await startKimiCodingDeviceLogin({ signal: callbacks.signal });\n callbacks.onAuth({ url: pending.url, instructions: pending.instructions });\n callbacks.onProgress?.('Waiting for Kimi For Coding device authorization...');\n return pollDeviceCodeUntilComplete({\n state: pending.state,\n pollOnce: () => pollKimiCodingTokenOnce(pending, callbacks.signal),\n signal: callbacks.signal,\n });\n}\n\nexport async function refreshKimiCodingToken(\n refreshToken: string,\n options: { signal?: AbortSignal; deviceId: string },\n): Promise<OAuthCredentials> {\n const clientId = CLIENT_ID;\n const deviceHeaders = getKimiCodingDeviceHeaders(options.deviceId);\n let lastError: Error | undefined;\n for (let attempt = 0; attempt <= REFRESH_MAX_RETRIES; attempt++) {\n if (attempt > 0) await abortableSleep(1000 * 2 ** (attempt - 1), options.signal);\n let response: Response;\n try {\n response = await fetch(`${OAUTH_HOST}/api/oauth/token`, {\n method: 'POST',\n headers: {\n ...deviceHeaders,\n 'Content-Type': 'application/x-www-form-urlencoded',\n Accept: 'application/json',\n },\n body: new URLSearchParams({\n client_id: clientId,\n grant_type: 'refresh_token',\n refresh_token: refreshToken,\n }).toString(),\n signal: requestSignal(options.signal),\n });\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n if (attempt === REFRESH_MAX_RETRIES) throw lastError;\n continue;\n }\n const data = await readJson(response);\n if (response.ok) return credentialsFromTokenResponse(data, 'refresh', options.deviceId);\n\n const error = typeof data?.error === 'string' ? ` ${data.error}` : '';\n lastError = new Error(`Kimi For Coding token refresh failed: ${response.status}${error}`);\n const retryable = response.status === 429 || response.status >= 500;\n if (!retryable || attempt === REFRESH_MAX_RETRIES) throw lastError;\n }\n throw lastError ?? new Error('Kimi For Coding token refresh failed');\n}\n\nexport const kimiCodingOAuthProvider: OAuthProviderInterface = {\n id: 'kimi-for-coding',\n name: 'Kimi For Coding',\n login: loginKimiCoding,\n refreshToken: credentials =>\n refreshKimiCodingToken(credentials.refresh, {\n deviceId: typeof credentials.deviceId === 'string' ? credentials.deviceId : '',\n }),\n getApiKey: credentials => credentials.access,\n};\n"],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * OpenAI Codex (ChatGPT OAuth) flow
3
+ *
4
+ * Inspired by pi-mono's OAuth implementation:
5
+ * https://github.com/badlogic/pi-mono/blob/main/packages/ai/src/utils/oauth/openai-codex.ts
6
+ *
7
+ * NOTE: This module uses Node.js crypto and http for the OAuth callback.
8
+ * It is only intended for CLI use, not browser environments.
9
+ */
10
+ import type { AuthMode, OAuthCredentials, OAuthPrompt, OAuthProviderInterface } from '../types.js';
11
+ export declare const OPENAI_CODEX_AUTH_MODES: ReadonlyArray<AuthMode>;
12
+ declare const JWT_CLAIM_PATH = "https://api.openai.com/auth";
13
+ type JwtPayload = {
14
+ chatgpt_account_id?: string;
15
+ [JWT_CLAIM_PATH]?: {
16
+ chatgpt_account_id?: string;
17
+ };
18
+ [key: string]: unknown;
19
+ };
20
+ declare function decodeJwt(token: string): JwtPayload | null;
21
+ declare function extractAccountIdFromClaims(payload: JwtPayload | null | undefined): string | null;
22
+ declare function getAccountId(tokens: {
23
+ idToken?: string;
24
+ access: string;
25
+ }, fallback?: string): string | undefined;
26
+ declare function requireAccountId(tokens: {
27
+ idToken?: string;
28
+ access: string;
29
+ }, fallback?: string): string;
30
+ declare function createAuthorizationFlow(redirectUri: string, state: string, originator?: string): Promise<{
31
+ verifier: string;
32
+ url: string;
33
+ }>;
34
+ type OAuthServerInfo = {
35
+ redirectUri: string;
36
+ warning?: string;
37
+ close: () => void;
38
+ cancelWait: () => void;
39
+ waitForCode: () => Promise<{
40
+ code: string;
41
+ } | null>;
42
+ };
43
+ type CallbackPorts = {
44
+ defaultPort: number;
45
+ fallbackPort: number;
46
+ };
47
+ declare function startLocalOAuthServer(state: string, ports?: CallbackPorts): Promise<OAuthServerInfo>;
48
+ /**
49
+ * Serializable pending state for a Codex device-code login. Safe to persist
50
+ * (e.g. a `pending jsonb` column) so polling can span HTTP requests — the
51
+ * device token response carries the `code_verifier`, so no PKCE state needs
52
+ * to be kept client-side.
53
+ */
54
+ export interface CodexDeviceLoginPending {
55
+ deviceAuthId: string;
56
+ userCode: string;
57
+ /** Verification URL for the user to open. */
58
+ url: string;
59
+ instructions: string;
60
+ /** Poll interval in ms suggested by the server. */
61
+ intervalMs: number;
62
+ /** ms epoch after which the device authorization expires. */
63
+ deadlineAt: number;
64
+ }
65
+ export type CodexDevicePollResult = {
66
+ status: 'complete';
67
+ credentials: OAuthCredentials;
68
+ } | {
69
+ status: 'pending';
70
+ nextPollMs: number;
71
+ } | {
72
+ status: 'failed';
73
+ error: string;
74
+ };
75
+ /**
76
+ * Start a Codex device-code login: request a user code and return the
77
+ * serializable pending state for subsequent polls.
78
+ */
79
+ export declare function startCodexDeviceLogin(options?: {
80
+ signal?: AbortSignal;
81
+ }): Promise<CodexDeviceLoginPending>;
82
+ /**
83
+ * Perform exactly one upstream poll for a pending Codex device login.
84
+ * The Codex device endpoint signals "still pending" via HTTP 403/404 (it is
85
+ * not an RFC 8628 error-JSON endpoint); on success it returns the
86
+ * authorization code plus server-held PKCE verifier, which we exchange
87
+ * immediately for credentials. Never throws for flow-level conditions.
88
+ */
89
+ export declare function pollCodexDeviceLogin(pending: CodexDeviceLoginPending, options?: {
90
+ signal?: AbortSignal;
91
+ }): Promise<CodexDevicePollResult>;
92
+ declare function loginOpenAICodexDevice(options: {
93
+ onAuth: (info: {
94
+ url: string;
95
+ instructions?: string;
96
+ }) => void;
97
+ onProgress?: (message: string) => void;
98
+ signal?: AbortSignal;
99
+ sleep?: (ms: number) => Promise<void>;
100
+ }): Promise<OAuthCredentials>;
101
+ /**
102
+ * Login with OpenAI Codex OAuth
103
+ *
104
+ * @param options.onAuth - Called with URL and instructions when auth starts
105
+ * @param options.onPrompt - Called to prompt user for manual code paste (fallback if no onManualCodeInput)
106
+ * @param options.onProgress - Optional progress messages
107
+ * @param options.onManualCodeInput - Optional promise that resolves with user-pasted code.
108
+ * Races with browser callback - whichever completes first wins.
109
+ * Useful for showing paste input immediately alongside browser flow.
110
+ * @param options.originator - OAuth originator parameter (defaults to "mastracode")
111
+ */
112
+ export declare function loginOpenAICodex(options: {
113
+ onAuth: (info: {
114
+ url: string;
115
+ instructions?: string;
116
+ }) => void;
117
+ onPrompt: (prompt: OAuthPrompt) => Promise<string>;
118
+ onProgress?: (message: string) => void;
119
+ onManualCodeInput?: () => Promise<string>;
120
+ signal?: AbortSignal;
121
+ originator?: string;
122
+ mode?: 'browser' | 'device';
123
+ }): Promise<OAuthCredentials>;
124
+ export declare const __testing: {
125
+ createAuthorizationFlow: typeof createAuthorizationFlow;
126
+ decodeJwt: typeof decodeJwt;
127
+ extractAccountIdFromClaims: typeof extractAccountIdFromClaims;
128
+ getAccountId: typeof getAccountId;
129
+ loginOpenAICodexDevice: typeof loginOpenAICodexDevice;
130
+ requireAccountId: typeof requireAccountId;
131
+ startLocalOAuthServer: typeof startLocalOAuthServer;
132
+ };
133
+ /**
134
+ * Refresh OpenAI Codex OAuth token
135
+ */
136
+ export declare function refreshOpenAICodexToken(refreshToken: string, previousAccountId?: string): Promise<OAuthCredentials>;
137
+ export declare const openaiCodexOAuthProvider: OAuthProviderInterface;
138
+ export {};
139
+ //# sourceMappingURL=openai-codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-codex.d.ts","sourceRoot":"","sources":["../../../src/auth/providers/openai-codex.ts"],"names":[],"mappings":"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"}