axon-code 2.4.0 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (644) hide show
  1. package/dist/auth/snapshot.d.ts +24 -0
  2. package/dist/auth/snapshot.d.ts.map +1 -0
  3. package/dist/auth/snapshot.js +144 -0
  4. package/dist/auth/snapshot.js.map +1 -0
  5. package/dist/cli.js +3 -1
  6. package/dist/cli.js.map +1 -1
  7. package/dist/config/axon-md-parser.d.ts.map +1 -1
  8. package/dist/config/axon-md-parser.js +21 -4
  9. package/dist/config/axon-md-parser.js.map +1 -1
  10. package/dist/config/index.d.ts +39 -21
  11. package/dist/config/index.d.ts.map +1 -1
  12. package/dist/config/index.js +14 -2
  13. package/dist/config/index.js.map +1 -1
  14. package/dist/context/enhanced.d.ts.map +1 -1
  15. package/dist/context/enhanced.js +5 -0
  16. package/dist/context/enhanced.js.map +1 -1
  17. package/dist/core/client.d.ts +7 -2
  18. package/dist/core/client.d.ts.map +1 -1
  19. package/dist/core/client.js +50 -18
  20. package/dist/core/client.js.map +1 -1
  21. package/dist/core/loop.d.ts +47 -8
  22. package/dist/core/loop.d.ts.map +1 -1
  23. package/dist/core/loop.js +333 -149
  24. package/dist/core/loop.js.map +1 -1
  25. package/dist/core/max-tokens.d.ts +24 -0
  26. package/dist/core/max-tokens.d.ts.map +1 -0
  27. package/dist/core/max-tokens.js +69 -0
  28. package/dist/core/max-tokens.js.map +1 -0
  29. package/dist/core/session.d.ts.map +1 -1
  30. package/dist/core/session.js +7 -14
  31. package/dist/core/session.js.map +1 -1
  32. package/dist/daemon/config.d.ts +6 -6
  33. package/dist/daemon/executor.d.ts.map +1 -1
  34. package/dist/daemon/executor.js +24 -30
  35. package/dist/daemon/executor.js.map +1 -1
  36. package/dist/goals/goal-store.d.ts +1 -1
  37. package/dist/goals/goal-store.d.ts.map +1 -1
  38. package/dist/goals/goal-store.js.map +1 -1
  39. package/dist/hooks/auto-verify.d.ts +86 -0
  40. package/dist/hooks/auto-verify.d.ts.map +1 -0
  41. package/dist/hooks/auto-verify.js +297 -0
  42. package/dist/hooks/auto-verify.js.map +1 -0
  43. package/dist/mcp/config.d.ts +16 -16
  44. package/dist/media/index.d.ts +2 -1
  45. package/dist/media/index.d.ts.map +1 -1
  46. package/dist/media/index.js +5 -3
  47. package/dist/media/index.js.map +1 -1
  48. package/dist/media/office-visual.d.ts +66 -0
  49. package/dist/media/office-visual.d.ts.map +1 -0
  50. package/dist/media/office-visual.js +409 -0
  51. package/dist/media/office-visual.js.map +1 -0
  52. package/dist/media/office.d.ts +17 -0
  53. package/dist/media/office.d.ts.map +1 -1
  54. package/dist/media/office.js +227 -2
  55. package/dist/media/office.js.map +1 -1
  56. package/dist/memory/long-term-store.d.ts +6 -0
  57. package/dist/memory/long-term-store.d.ts.map +1 -1
  58. package/dist/memory/long-term-store.js +66 -48
  59. package/dist/memory/long-term-store.js.map +1 -1
  60. package/dist/memory/memory-search.d.ts +9 -3
  61. package/dist/memory/memory-search.d.ts.map +1 -1
  62. package/dist/memory/memory-search.js +58 -12
  63. package/dist/memory/memory-search.js.map +1 -1
  64. package/dist/memory/memory-sync.d.ts +7 -0
  65. package/dist/memory/memory-sync.d.ts.map +1 -1
  66. package/dist/memory/memory-sync.js +92 -0
  67. package/dist/memory/memory-sync.js.map +1 -1
  68. package/dist/memory/notebook.d.ts +7 -0
  69. package/dist/memory/notebook.d.ts.map +1 -1
  70. package/dist/memory/notebook.js +624 -24
  71. package/dist/memory/notebook.js.map +1 -1
  72. package/dist/models/config.d.ts.map +1 -1
  73. package/dist/models/config.js +7 -4
  74. package/dist/models/config.js.map +1 -1
  75. package/dist/models/index.d.ts +1 -0
  76. package/dist/models/index.d.ts.map +1 -1
  77. package/dist/models/index.js +1 -0
  78. package/dist/models/index.js.map +1 -1
  79. package/dist/models/model-limits.d.ts +13 -0
  80. package/dist/models/model-limits.d.ts.map +1 -0
  81. package/dist/models/model-limits.js +79 -0
  82. package/dist/models/model-limits.js.map +1 -0
  83. package/dist/network/discovery.d.ts +2 -0
  84. package/dist/network/discovery.d.ts.map +1 -1
  85. package/dist/network/discovery.js +10 -5
  86. package/dist/network/discovery.js.map +1 -1
  87. package/dist/network/global-proxy.d.ts +7 -0
  88. package/dist/network/global-proxy.d.ts.map +1 -1
  89. package/dist/network/global-proxy.js +67 -0
  90. package/dist/network/global-proxy.js.map +1 -1
  91. package/dist/network/index.d.ts +6 -1
  92. package/dist/network/index.d.ts.map +1 -1
  93. package/dist/network/index.js +16 -11
  94. package/dist/network/index.js.map +1 -1
  95. package/dist/network/transport.d.ts +41 -4
  96. package/dist/network/transport.d.ts.map +1 -1
  97. package/dist/network/transport.js +234 -61
  98. package/dist/network/transport.js.map +1 -1
  99. package/dist/network/types.d.ts +19 -1
  100. package/dist/network/types.d.ts.map +1 -1
  101. package/dist/network/types.js.map +1 -1
  102. package/dist/notifications/cmux.d.ts +115 -0
  103. package/dist/notifications/cmux.d.ts.map +1 -0
  104. package/dist/notifications/cmux.js +436 -0
  105. package/dist/notifications/cmux.js.map +1 -0
  106. package/dist/prompt/attachments.d.ts +8 -0
  107. package/dist/prompt/attachments.d.ts.map +1 -1
  108. package/dist/prompt/attachments.js +74 -2
  109. package/dist/prompt/attachments.js.map +1 -1
  110. package/dist/prompt/builder.js +1 -1
  111. package/dist/prompt/builder.js.map +1 -1
  112. package/dist/prompt/cache.d.ts +1 -6
  113. package/dist/prompt/cache.d.ts.map +1 -1
  114. package/dist/prompt/cache.js +37 -7
  115. package/dist/prompt/cache.js.map +1 -1
  116. package/dist/prompt/templates.d.ts +1 -1
  117. package/dist/prompt/templates.d.ts.map +1 -1
  118. package/dist/prompt/templates.js +4 -3
  119. package/dist/prompt/templates.js.map +1 -1
  120. package/dist/prompt/types.d.ts +3 -1
  121. package/dist/prompt/types.d.ts.map +1 -1
  122. package/dist/prompt/types.js.map +1 -1
  123. package/dist/proxy/server.d.ts.map +1 -1
  124. package/dist/proxy/server.js +32 -11
  125. package/dist/proxy/server.js.map +1 -1
  126. package/dist/search/ripgrep.d.ts.map +1 -1
  127. package/dist/search/ripgrep.js +11 -0
  128. package/dist/search/ripgrep.js.map +1 -1
  129. package/dist/session/index.d.ts +3 -0
  130. package/dist/session/index.d.ts.map +1 -1
  131. package/dist/session/index.js +1 -0
  132. package/dist/session/index.js.map +1 -1
  133. package/dist/skills/builtin/algorithmic-art/LICENSE.txt +202 -0
  134. package/dist/skills/builtin/algorithmic-art/SKILL.md +405 -0
  135. package/dist/skills/builtin/algorithmic-art/templates/generator_template.js +223 -0
  136. package/dist/skills/builtin/algorithmic-art/templates/viewer.html +599 -0
  137. package/dist/skills/builtin/analyze-logs/SKILL.md +75 -0
  138. package/dist/skills/builtin/audit-official/SKILL.md +81 -0
  139. package/dist/skills/builtin/brand-guidelines/LICENSE.txt +202 -0
  140. package/dist/skills/builtin/brand-guidelines/SKILL.md +73 -0
  141. package/dist/skills/builtin/build-portable/SKILL.md +53 -0
  142. package/dist/skills/builtin/canvas-design/SKILL.md +130 -0
  143. package/dist/skills/builtin/changelog/SKILL.md +65 -0
  144. package/dist/skills/builtin/code-review/SKILL.md +75 -0
  145. package/dist/skills/builtin/doc-coauthoring/SKILL.md +375 -0
  146. package/dist/skills/builtin/doctor/SKILL.md +166 -0
  147. package/dist/skills/builtin/docx/LICENSE.txt +30 -0
  148. package/dist/skills/builtin/docx/SKILL.md +590 -0
  149. package/dist/skills/builtin/docx/scripts/__init__.py +1 -0
  150. package/dist/skills/builtin/docx/scripts/accept_changes.py +135 -0
  151. package/dist/skills/builtin/docx/scripts/comment.py +318 -0
  152. package/dist/skills/builtin/docx/scripts/office/helpers/__init__.py +0 -0
  153. package/dist/skills/builtin/docx/scripts/office/helpers/merge_runs.py +199 -0
  154. package/dist/skills/builtin/docx/scripts/office/helpers/simplify_redlines.py +197 -0
  155. package/dist/skills/builtin/docx/scripts/office/pack.py +159 -0
  156. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  157. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  158. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  159. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  160. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  161. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  162. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  163. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  164. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  165. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  166. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  167. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  168. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  169. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  170. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  171. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  172. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  173. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  174. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  175. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  176. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  177. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  178. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  179. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  180. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  181. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  182. package/dist/skills/builtin/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  183. package/dist/skills/builtin/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  184. package/dist/skills/builtin/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  185. package/dist/skills/builtin/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  186. package/dist/skills/builtin/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  187. package/dist/skills/builtin/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  188. package/dist/skills/builtin/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  189. package/dist/skills/builtin/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  190. package/dist/skills/builtin/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  191. package/dist/skills/builtin/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  192. package/dist/skills/builtin/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  193. package/dist/skills/builtin/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  194. package/dist/skills/builtin/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  195. package/dist/skills/builtin/docx/scripts/office/soffice.py +183 -0
  196. package/dist/skills/builtin/docx/scripts/office/unpack.py +132 -0
  197. package/dist/skills/builtin/docx/scripts/office/validate.py +111 -0
  198. package/dist/skills/builtin/docx/scripts/office/validators/__init__.py +15 -0
  199. package/dist/skills/builtin/docx/scripts/office/validators/base.py +847 -0
  200. package/dist/skills/builtin/docx/scripts/office/validators/docx.py +446 -0
  201. package/dist/skills/builtin/docx/scripts/office/validators/pptx.py +275 -0
  202. package/dist/skills/builtin/docx/scripts/office/validators/redlining.py +247 -0
  203. package/dist/skills/builtin/docx/scripts/templates/comments.xml +3 -0
  204. package/dist/skills/builtin/docx/scripts/templates/commentsExtended.xml +3 -0
  205. package/dist/skills/builtin/docx/scripts/templates/commentsExtensible.xml +3 -0
  206. package/dist/skills/builtin/docx/scripts/templates/commentsIds.xml +3 -0
  207. package/dist/skills/builtin/docx/scripts/templates/people.xml +3 -0
  208. package/dist/skills/builtin/frontend-design/LICENSE.txt +177 -0
  209. package/dist/skills/builtin/frontend-design/SKILL.md +42 -0
  210. package/dist/skills/builtin/i18n-check/SKILL.md +56 -0
  211. package/dist/skills/builtin/internal-comms/LICENSE.txt +202 -0
  212. package/dist/skills/builtin/internal-comms/SKILL.md +32 -0
  213. package/dist/skills/builtin/internal-comms/examples/3p-updates.md +47 -0
  214. package/dist/skills/builtin/internal-comms/examples/company-newsletter.md +65 -0
  215. package/dist/skills/builtin/internal-comms/examples/faq-answers.md +30 -0
  216. package/dist/skills/builtin/internal-comms/examples/general-comms.md +16 -0
  217. package/dist/skills/builtin/mcp-builder/LICENSE.txt +202 -0
  218. package/dist/skills/builtin/mcp-builder/SKILL.md +236 -0
  219. package/dist/skills/builtin/mcp-builder/reference/evaluation.md +602 -0
  220. package/dist/skills/builtin/mcp-builder/reference/mcp_best_practices.md +249 -0
  221. package/dist/skills/builtin/mcp-builder/reference/node_mcp_server.md +970 -0
  222. package/dist/skills/builtin/mcp-builder/reference/python_mcp_server.md +719 -0
  223. package/dist/skills/builtin/mcp-builder/scripts/connections.py +151 -0
  224. package/dist/skills/builtin/mcp-builder/scripts/evaluation.py +373 -0
  225. package/dist/skills/builtin/mcp-builder/scripts/example_evaluation.xml +22 -0
  226. package/dist/skills/builtin/mcp-builder/scripts/requirements.txt +2 -0
  227. package/dist/skills/builtin/pdf/LICENSE.txt +30 -0
  228. package/dist/skills/builtin/pdf/SKILL.md +314 -0
  229. package/dist/skills/builtin/pdf/forms.md +294 -0
  230. package/dist/skills/builtin/pdf/reference.md +612 -0
  231. package/dist/skills/builtin/pdf/scripts/check_bounding_boxes.py +65 -0
  232. package/dist/skills/builtin/pdf/scripts/check_fillable_fields.py +11 -0
  233. package/dist/skills/builtin/pdf/scripts/convert_pdf_to_images.py +33 -0
  234. package/dist/skills/builtin/pdf/scripts/create_validation_image.py +37 -0
  235. package/dist/skills/builtin/pdf/scripts/extract_form_field_info.py +122 -0
  236. package/dist/skills/builtin/pdf/scripts/extract_form_structure.py +115 -0
  237. package/dist/skills/builtin/pdf/scripts/fill_fillable_fields.py +98 -0
  238. package/dist/skills/builtin/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
  239. package/dist/skills/builtin/pptx/LICENSE.txt +30 -0
  240. package/dist/skills/builtin/pptx/SKILL.md +232 -0
  241. package/dist/skills/builtin/pptx/editing.md +205 -0
  242. package/dist/skills/builtin/pptx/pptxgenjs.md +420 -0
  243. package/dist/skills/builtin/pptx/scripts/__init__.py +0 -0
  244. package/dist/skills/builtin/pptx/scripts/add_slide.py +195 -0
  245. package/dist/skills/builtin/pptx/scripts/clean.py +286 -0
  246. package/dist/skills/builtin/pptx/scripts/office/helpers/__init__.py +0 -0
  247. package/dist/skills/builtin/pptx/scripts/office/helpers/merge_runs.py +199 -0
  248. package/dist/skills/builtin/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
  249. package/dist/skills/builtin/pptx/scripts/office/pack.py +159 -0
  250. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  251. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  252. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  253. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  254. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  255. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  256. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  257. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  258. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  259. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  260. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  261. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  262. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  263. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  264. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  265. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  266. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  267. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  268. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  269. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  270. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  271. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  272. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  273. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  274. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  275. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  276. package/dist/skills/builtin/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  277. package/dist/skills/builtin/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  278. package/dist/skills/builtin/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  279. package/dist/skills/builtin/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  280. package/dist/skills/builtin/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  281. package/dist/skills/builtin/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
  282. package/dist/skills/builtin/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  283. package/dist/skills/builtin/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  284. package/dist/skills/builtin/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  285. package/dist/skills/builtin/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  286. package/dist/skills/builtin/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  287. package/dist/skills/builtin/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  288. package/dist/skills/builtin/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  289. package/dist/skills/builtin/pptx/scripts/office/soffice.py +183 -0
  290. package/dist/skills/builtin/pptx/scripts/office/unpack.py +132 -0
  291. package/dist/skills/builtin/pptx/scripts/office/validate.py +111 -0
  292. package/dist/skills/builtin/pptx/scripts/office/validators/__init__.py +15 -0
  293. package/dist/skills/builtin/pptx/scripts/office/validators/base.py +847 -0
  294. package/dist/skills/builtin/pptx/scripts/office/validators/docx.py +446 -0
  295. package/dist/skills/builtin/pptx/scripts/office/validators/pptx.py +275 -0
  296. package/dist/skills/builtin/pptx/scripts/office/validators/redlining.py +247 -0
  297. package/dist/skills/builtin/pptx/scripts/thumbnail.py +289 -0
  298. package/dist/skills/builtin/promo-video/SKILL.md +124 -0
  299. package/dist/skills/builtin/promote/SKILL.md +77 -0
  300. package/dist/skills/builtin/skill-creator/LICENSE.txt +202 -0
  301. package/dist/skills/builtin/skill-creator/SKILL.md +598 -0
  302. package/dist/skills/builtin/skill-creator/agents/analyzer.md +274 -0
  303. package/dist/skills/builtin/skill-creator/agents/comparator.md +202 -0
  304. package/dist/skills/builtin/skill-creator/agents/grader.md +223 -0
  305. package/dist/skills/builtin/skill-creator/assets/eval_review.html +146 -0
  306. package/dist/skills/builtin/skill-creator/eval-viewer/generate_review.py +471 -0
  307. package/dist/skills/builtin/skill-creator/eval-viewer/viewer.html +1325 -0
  308. package/dist/skills/builtin/skill-creator/references/schemas.md +430 -0
  309. package/dist/skills/builtin/skill-creator/scripts/__init__.py +0 -0
  310. package/dist/skills/builtin/skill-creator/scripts/aggregate_benchmark.py +401 -0
  311. package/dist/skills/builtin/skill-creator/scripts/generate_report.py +326 -0
  312. package/dist/skills/builtin/skill-creator/scripts/improve_description.py +248 -0
  313. package/dist/skills/builtin/skill-creator/scripts/package_skill.py +136 -0
  314. package/dist/skills/builtin/skill-creator/scripts/quick_validate.py +103 -0
  315. package/dist/skills/builtin/skill-creator/scripts/run_eval.py +310 -0
  316. package/dist/skills/builtin/skill-creator/scripts/run_loop.py +332 -0
  317. package/dist/skills/builtin/skill-creator/scripts/utils.py +47 -0
  318. package/dist/skills/builtin/slack-gif-creator/LICENSE.txt +202 -0
  319. package/dist/skills/builtin/slack-gif-creator/SKILL.md +254 -0
  320. package/dist/skills/builtin/slack-gif-creator/core/easing.py +234 -0
  321. package/dist/skills/builtin/slack-gif-creator/core/frame_composer.py +176 -0
  322. package/dist/skills/builtin/slack-gif-creator/core/gif_builder.py +269 -0
  323. package/dist/skills/builtin/slack-gif-creator/core/validators.py +136 -0
  324. package/dist/skills/builtin/slack-gif-creator/requirements.txt +4 -0
  325. package/dist/skills/builtin/sync-version/SKILL.md +39 -0
  326. package/dist/skills/builtin/theme-factory/LICENSE.txt +202 -0
  327. package/dist/skills/builtin/theme-factory/SKILL.md +59 -0
  328. package/dist/skills/builtin/theme-factory/theme-showcase.pdf +0 -0
  329. package/dist/skills/builtin/theme-factory/themes/arctic-frost.md +19 -0
  330. package/dist/skills/builtin/theme-factory/themes/botanical-garden.md +19 -0
  331. package/dist/skills/builtin/theme-factory/themes/desert-rose.md +19 -0
  332. package/dist/skills/builtin/theme-factory/themes/forest-canopy.md +19 -0
  333. package/dist/skills/builtin/theme-factory/themes/golden-hour.md +19 -0
  334. package/dist/skills/builtin/theme-factory/themes/midnight-galaxy.md +19 -0
  335. package/dist/skills/builtin/theme-factory/themes/modern-minimalist.md +19 -0
  336. package/dist/skills/builtin/theme-factory/themes/ocean-depths.md +19 -0
  337. package/dist/skills/builtin/theme-factory/themes/sunset-boulevard.md +19 -0
  338. package/dist/skills/builtin/theme-factory/themes/tech-innovation.md +19 -0
  339. package/dist/skills/builtin/web-artifacts-builder/LICENSE.txt +202 -0
  340. package/dist/skills/builtin/web-artifacts-builder/SKILL.md +74 -0
  341. package/dist/skills/builtin/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
  342. package/dist/skills/builtin/web-artifacts-builder/scripts/init-artifact.sh +322 -0
  343. package/dist/skills/builtin/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  344. package/dist/skills/builtin/webapp-testing/LICENSE.txt +202 -0
  345. package/dist/skills/builtin/webapp-testing/SKILL.md +96 -0
  346. package/dist/skills/builtin/webapp-testing/examples/console_logging.py +35 -0
  347. package/dist/skills/builtin/webapp-testing/examples/element_discovery.py +40 -0
  348. package/dist/skills/builtin/webapp-testing/examples/static_html_automation.py +33 -0
  349. package/dist/skills/builtin/webapp-testing/scripts/with_server.py +106 -0
  350. package/dist/skills/builtin/xlsx/LICENSE.txt +30 -0
  351. package/dist/skills/builtin/xlsx/SKILL.md +292 -0
  352. package/dist/skills/builtin/xlsx/scripts/office/helpers/__init__.py +0 -0
  353. package/dist/skills/builtin/xlsx/scripts/office/helpers/merge_runs.py +199 -0
  354. package/dist/skills/builtin/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
  355. package/dist/skills/builtin/xlsx/scripts/office/pack.py +159 -0
  356. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  357. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  358. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  359. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  360. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  361. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  362. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  363. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  364. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  365. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  366. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  367. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  368. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  369. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  370. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  371. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  372. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  373. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  374. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  375. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  376. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  377. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  378. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  379. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  380. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  381. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  382. package/dist/skills/builtin/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  383. package/dist/skills/builtin/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  384. package/dist/skills/builtin/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  385. package/dist/skills/builtin/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  386. package/dist/skills/builtin/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  387. package/dist/skills/builtin/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  388. package/dist/skills/builtin/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  389. package/dist/skills/builtin/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  390. package/dist/skills/builtin/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  391. package/dist/skills/builtin/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  392. package/dist/skills/builtin/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  393. package/dist/skills/builtin/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  394. package/dist/skills/builtin/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  395. package/dist/skills/builtin/xlsx/scripts/office/soffice.py +183 -0
  396. package/dist/skills/builtin/xlsx/scripts/office/unpack.py +132 -0
  397. package/dist/skills/builtin/xlsx/scripts/office/validate.py +111 -0
  398. package/dist/skills/builtin/xlsx/scripts/office/validators/__init__.py +15 -0
  399. package/dist/skills/builtin/xlsx/scripts/office/validators/base.py +847 -0
  400. package/dist/skills/builtin/xlsx/scripts/office/validators/docx.py +446 -0
  401. package/dist/skills/builtin/xlsx/scripts/office/validators/pptx.py +275 -0
  402. package/dist/skills/builtin/xlsx/scripts/office/validators/redlining.py +247 -0
  403. package/dist/skills/builtin/xlsx/scripts/recalc.py +184 -0
  404. package/dist/tools/agent.d.ts +8 -0
  405. package/dist/tools/agent.d.ts.map +1 -1
  406. package/dist/tools/agent.js +66 -2
  407. package/dist/tools/agent.js.map +1 -1
  408. package/dist/tools/base.d.ts +16 -0
  409. package/dist/tools/base.d.ts.map +1 -1
  410. package/dist/tools/base.js +32 -0
  411. package/dist/tools/base.js.map +1 -1
  412. package/dist/tools/bash.d.ts.map +1 -1
  413. package/dist/tools/bash.js +8 -0
  414. package/dist/tools/bash.js.map +1 -1
  415. package/dist/tools/file.d.ts +3 -1
  416. package/dist/tools/file.d.ts.map +1 -1
  417. package/dist/tools/file.js +176 -117
  418. package/dist/tools/file.js.map +1 -1
  419. package/dist/tools/generate-design.d.ts +5 -1
  420. package/dist/tools/generate-design.d.ts.map +1 -1
  421. package/dist/tools/generate-design.js +25 -3
  422. package/dist/tools/generate-design.js.map +1 -1
  423. package/dist/tools/goal.d.ts +1 -1
  424. package/dist/tools/goal.d.ts.map +1 -1
  425. package/dist/tools/goal.js +18 -9
  426. package/dist/tools/goal.js.map +1 -1
  427. package/dist/tools/index.d.ts +7 -0
  428. package/dist/tools/index.d.ts.map +1 -1
  429. package/dist/tools/index.js +74 -5
  430. package/dist/tools/index.js.map +1 -1
  431. package/dist/tools/mcp.d.ts.map +1 -1
  432. package/dist/tools/mcp.js +5 -0
  433. package/dist/tools/mcp.js.map +1 -1
  434. package/dist/tools/memory-search.d.ts +1 -1
  435. package/dist/tools/memory-search.d.ts.map +1 -1
  436. package/dist/tools/memory-search.js +1 -1
  437. package/dist/tools/memory-search.js.map +1 -1
  438. package/dist/tools/network-agent.js +2 -1
  439. package/dist/tools/network-agent.js.map +1 -1
  440. package/dist/tools/notebook-write.d.ts.map +1 -1
  441. package/dist/tools/notebook-write.js +3 -1
  442. package/dist/tools/notebook-write.js.map +1 -1
  443. package/dist/tools/schedule.d.ts.map +1 -1
  444. package/dist/tools/schedule.js +2 -26
  445. package/dist/tools/schedule.js.map +1 -1
  446. package/dist/tools/skill.d.ts +1 -7
  447. package/dist/tools/skill.d.ts.map +1 -1
  448. package/dist/tools/skill.js +225 -61
  449. package/dist/tools/skill.js.map +1 -1
  450. package/dist/types/messages.d.ts +1 -5
  451. package/dist/types/messages.d.ts.map +1 -1
  452. package/dist/web/server/api-manager.d.ts +9 -4
  453. package/dist/web/server/api-manager.d.ts.map +1 -1
  454. package/dist/web/server/api-manager.js +173 -63
  455. package/dist/web/server/api-manager.js.map +1 -1
  456. package/dist/web/server/app-manager.d.ts +71 -0
  457. package/dist/web/server/app-manager.d.ts.map +1 -0
  458. package/dist/web/server/app-manager.js +364 -0
  459. package/dist/web/server/app-manager.js.map +1 -0
  460. package/dist/web/server/channels/bridge.d.ts.map +1 -1
  461. package/dist/web/server/channels/bridge.js +2 -1
  462. package/dist/web/server/channels/bridge.js.map +1 -1
  463. package/dist/web/server/codex-auth-manager.d.ts +43 -0
  464. package/dist/web/server/codex-auth-manager.d.ts.map +1 -0
  465. package/dist/web/server/codex-auth-manager.js +429 -0
  466. package/dist/web/server/codex-auth-manager.js.map +1 -0
  467. package/dist/web/server/conversation.d.ts +34 -5
  468. package/dist/web/server/conversation.d.ts.map +1 -1
  469. package/dist/web/server/conversation.js +435 -142
  470. package/dist/web/server/conversation.js.map +1 -1
  471. package/dist/web/server/image-attachments.d.ts +23 -0
  472. package/dist/web/server/image-attachments.d.ts.map +1 -0
  473. package/dist/web/server/image-attachments.js +93 -0
  474. package/dist/web/server/image-attachments.js.map +1 -0
  475. package/dist/web/server/index.d.ts.map +1 -1
  476. package/dist/web/server/index.js +28 -0
  477. package/dist/web/server/index.js.map +1 -1
  478. package/dist/web/server/routes/__tests__/app-api.test.d.ts +5 -0
  479. package/dist/web/server/routes/__tests__/app-api.test.d.ts.map +1 -0
  480. package/dist/web/server/routes/__tests__/app-api.test.js +48 -0
  481. package/dist/web/server/routes/__tests__/app-api.test.js.map +1 -0
  482. package/dist/web/server/routes/__tests__/tunnel-api.test.d.ts +2 -0
  483. package/dist/web/server/routes/__tests__/tunnel-api.test.d.ts.map +1 -0
  484. package/dist/web/server/routes/__tests__/tunnel-api.test.js +96 -0
  485. package/dist/web/server/routes/__tests__/tunnel-api.test.js.map +1 -0
  486. package/dist/web/server/routes/ai-editor.d.ts.map +1 -1
  487. package/dist/web/server/routes/ai-editor.js +9 -45
  488. package/dist/web/server/routes/ai-editor.js.map +1 -1
  489. package/dist/web/server/routes/ai-hover.d.ts.map +1 -1
  490. package/dist/web/server/routes/ai-hover.js +6 -23
  491. package/dist/web/server/routes/ai-hover.js.map +1 -1
  492. package/dist/web/server/routes/api.d.ts.map +1 -1
  493. package/dist/web/server/routes/api.js +27 -23
  494. package/dist/web/server/routes/api.js.map +1 -1
  495. package/dist/web/server/routes/app-api.d.ts +8 -0
  496. package/dist/web/server/routes/app-api.d.ts.map +1 -0
  497. package/dist/web/server/routes/app-api.js +191 -0
  498. package/dist/web/server/routes/app-api.js.map +1 -0
  499. package/dist/web/server/routes/auth.d.ts.map +1 -1
  500. package/dist/web/server/routes/auth.js +306 -5
  501. package/dist/web/server/routes/auth.js.map +1 -1
  502. package/dist/web/server/routes/autocomplete-api.d.ts.map +1 -1
  503. package/dist/web/server/routes/autocomplete-api.js +5 -43
  504. package/dist/web/server/routes/autocomplete-api.js.map +1 -1
  505. package/dist/web/server/routes/axon-cloud.d.ts.map +1 -1
  506. package/dist/web/server/routes/axon-cloud.js +352 -1
  507. package/dist/web/server/routes/axon-cloud.js.map +1 -1
  508. package/dist/web/server/routes/config-api.d.ts.map +1 -1
  509. package/dist/web/server/routes/config-api.js +12 -20
  510. package/dist/web/server/routes/config-api.js.map +1 -1
  511. package/dist/web/server/routes/download-proxy.d.ts.map +1 -1
  512. package/dist/web/server/routes/download-proxy.js +234 -12
  513. package/dist/web/server/routes/download-proxy.js.map +1 -1
  514. package/dist/web/server/routes/network-api.d.ts +1 -0
  515. package/dist/web/server/routes/network-api.d.ts.map +1 -1
  516. package/dist/web/server/routes/network-api.js +36 -11
  517. package/dist/web/server/routes/network-api.js.map +1 -1
  518. package/dist/web/server/routes/port-forward.d.ts.map +1 -1
  519. package/dist/web/server/routes/port-forward.js +3 -2
  520. package/dist/web/server/routes/port-forward.js.map +1 -1
  521. package/dist/web/server/routes/schedule-api.d.ts.map +1 -1
  522. package/dist/web/server/routes/schedule-api.js +5 -1
  523. package/dist/web/server/routes/schedule-api.js.map +1 -1
  524. package/dist/web/server/routes/tunnel-api.d.ts +14 -0
  525. package/dist/web/server/routes/tunnel-api.d.ts.map +1 -0
  526. package/dist/web/server/routes/tunnel-api.js +52 -0
  527. package/dist/web/server/routes/tunnel-api.js.map +1 -0
  528. package/dist/web/server/runtime/api-connection-test.d.ts +18 -0
  529. package/dist/web/server/runtime/api-connection-test.d.ts.map +1 -0
  530. package/dist/web/server/runtime/api-connection-test.js +62 -0
  531. package/dist/web/server/runtime/api-connection-test.js.map +1 -0
  532. package/dist/web/server/runtime/codex-client.d.ts +35 -0
  533. package/dist/web/server/runtime/codex-client.d.ts.map +1 -0
  534. package/dist/web/server/runtime/codex-client.js +1202 -0
  535. package/dist/web/server/runtime/codex-client.js.map +1 -0
  536. package/dist/web/server/runtime/factory.d.ts +3 -0
  537. package/dist/web/server/runtime/factory.d.ts.map +1 -0
  538. package/dist/web/server/runtime/factory.js +16 -0
  539. package/dist/web/server/runtime/factory.js.map +1 -0
  540. package/dist/web/server/runtime/runtime-model-catalog.d.ts +10 -0
  541. package/dist/web/server/runtime/runtime-model-catalog.d.ts.map +1 -0
  542. package/dist/web/server/runtime/runtime-model-catalog.js +85 -0
  543. package/dist/web/server/runtime/runtime-model-catalog.js.map +1 -0
  544. package/dist/web/server/runtime/runtime-model-list.d.ts +24 -0
  545. package/dist/web/server/runtime/runtime-model-list.d.ts.map +1 -0
  546. package/dist/web/server/runtime/runtime-model-list.js +43 -0
  547. package/dist/web/server/runtime/runtime-model-list.js.map +1 -0
  548. package/dist/web/server/runtime/runtime-selection.d.ts +17 -0
  549. package/dist/web/server/runtime/runtime-selection.d.ts.map +1 -0
  550. package/dist/web/server/runtime/runtime-selection.js +35 -0
  551. package/dist/web/server/runtime/runtime-selection.js.map +1 -0
  552. package/dist/web/server/runtime/tool-input-normalizer.d.ts +3 -0
  553. package/dist/web/server/runtime/tool-input-normalizer.d.ts.map +1 -0
  554. package/dist/web/server/runtime/tool-input-normalizer.js +52 -0
  555. package/dist/web/server/runtime/tool-input-normalizer.js.map +1 -0
  556. package/dist/web/server/runtime/types.d.ts +102 -0
  557. package/dist/web/server/runtime/types.d.ts.map +1 -0
  558. package/dist/web/server/runtime/types.js +2 -0
  559. package/dist/web/server/runtime/types.js.map +1 -0
  560. package/dist/web/server/runtime/utility-client.d.ts +5 -0
  561. package/dist/web/server/runtime/utility-client.d.ts.map +1 -0
  562. package/dist/web/server/runtime/utility-client.js +68 -0
  563. package/dist/web/server/runtime/utility-client.js.map +1 -0
  564. package/dist/web/server/services/axon-cloud-service.d.ts +24 -0
  565. package/dist/web/server/services/axon-cloud-service.d.ts.map +1 -1
  566. package/dist/web/server/services/axon-cloud-service.js +93 -0
  567. package/dist/web/server/services/axon-cloud-service.js.map +1 -1
  568. package/dist/web/server/services/config-service.d.ts +8 -2
  569. package/dist/web/server/services/config-service.d.ts.map +1 -1
  570. package/dist/web/server/services/config-service.js +51 -0
  571. package/dist/web/server/services/config-service.js.map +1 -1
  572. package/dist/web/server/services/gemini-image-service.d.ts +20 -1
  573. package/dist/web/server/services/gemini-image-service.d.ts.map +1 -1
  574. package/dist/web/server/services/gemini-image-service.js +121 -13
  575. package/dist/web/server/services/gemini-image-service.js.map +1 -1
  576. package/dist/web/server/session-manager.d.ts +10 -0
  577. package/dist/web/server/session-manager.d.ts.map +1 -1
  578. package/dist/web/server/session-manager.js +39 -0
  579. package/dist/web/server/session-manager.js.map +1 -1
  580. package/dist/web/server/slash-commands.d.ts.map +1 -1
  581. package/dist/web/server/slash-commands.js +127 -25
  582. package/dist/web/server/slash-commands.js.map +1 -1
  583. package/dist/web/server/task-manager.d.ts +4 -15
  584. package/dist/web/server/task-manager.d.ts.map +1 -1
  585. package/dist/web/server/task-manager.js +11 -4
  586. package/dist/web/server/task-manager.js.map +1 -1
  587. package/dist/web/server/tunnel.d.ts +47 -0
  588. package/dist/web/server/tunnel.d.ts.map +1 -0
  589. package/dist/web/server/tunnel.js +165 -0
  590. package/dist/web/server/tunnel.js.map +1 -0
  591. package/dist/web/server/user-interaction.d.ts +10 -0
  592. package/dist/web/server/user-interaction.d.ts.map +1 -1
  593. package/dist/web/server/user-interaction.js +28 -0
  594. package/dist/web/server/user-interaction.js.map +1 -1
  595. package/dist/web/server/web-auth.d.ts +35 -3
  596. package/dist/web/server/web-auth.d.ts.map +1 -1
  597. package/dist/web/server/web-auth.js +302 -29
  598. package/dist/web/server/web-auth.js.map +1 -1
  599. package/dist/web/server/web-scheduler.d.ts.map +1 -1
  600. package/dist/web/server/web-scheduler.js +9 -0
  601. package/dist/web/server/web-scheduler.js.map +1 -1
  602. package/dist/web/server/websocket-git-handlers.d.ts.map +1 -1
  603. package/dist/web/server/websocket-git-handlers.js +5 -29
  604. package/dist/web/server/websocket-git-handlers.js.map +1 -1
  605. package/dist/web/server/websocket.d.ts.map +1 -1
  606. package/dist/web/server/websocket.js +246 -70
  607. package/dist/web/server/websocket.js.map +1 -1
  608. package/dist/web/shared/auth-summary.d.ts +28 -0
  609. package/dist/web/shared/auth-summary.d.ts.map +1 -0
  610. package/dist/web/shared/auth-summary.js +56 -0
  611. package/dist/web/shared/auth-summary.js.map +1 -0
  612. package/dist/web/shared/model-catalog.d.ts +31 -0
  613. package/dist/web/shared/model-catalog.d.ts.map +1 -0
  614. package/dist/web/shared/model-catalog.js +365 -0
  615. package/dist/web/shared/model-catalog.js.map +1 -0
  616. package/dist/web/shared/model-preferences.d.ts +5 -0
  617. package/dist/web/shared/model-preferences.d.ts.map +1 -0
  618. package/dist/web/shared/model-preferences.js +13 -0
  619. package/dist/web/shared/model-preferences.js.map +1 -0
  620. package/dist/web/shared/runtime-capabilities.d.ts +37 -0
  621. package/dist/web/shared/runtime-capabilities.d.ts.map +1 -0
  622. package/dist/web/shared/runtime-capabilities.js +101 -0
  623. package/dist/web/shared/runtime-capabilities.js.map +1 -0
  624. package/dist/web/shared/setup-runtime.d.ts +50 -0
  625. package/dist/web/shared/setup-runtime.d.ts.map +1 -0
  626. package/dist/web/shared/setup-runtime.js +214 -0
  627. package/dist/web/shared/setup-runtime.js.map +1 -0
  628. package/dist/web/shared/thinking-config.d.ts +20 -0
  629. package/dist/web/shared/thinking-config.d.ts.map +1 -0
  630. package/dist/web/shared/thinking-config.js +104 -0
  631. package/dist/web/shared/thinking-config.js.map +1 -0
  632. package/dist/web/shared/types.d.ts +30 -2
  633. package/dist/web/shared/types.d.ts.map +1 -1
  634. package/dist/web/shared/types.js.map +1 -1
  635. package/electron/main.cjs +15 -3
  636. package/package.json +6 -2
  637. package/src/web/client/dist/assets/index-B2M5Nr-5.js +736 -0
  638. package/src/web/client/dist/assets/index-COEqamS-.css +32 -0
  639. package/src/web/client/dist/icons/icon-192.png +0 -0
  640. package/src/web/client/dist/icons/icon-512.png +0 -0
  641. package/src/web/client/dist/index.html +31 -0
  642. package/src/web/client/dist/logo.png +0 -0
  643. package/src/web/client/dist/manifest.webmanifest +25 -0
  644. package/src/web/client/dist/sw.js +78 -0
@@ -3,17 +3,22 @@
3
3
  * 处理 AI 向用户提问并等待回答
4
4
  */
5
5
  import { randomUUID } from 'crypto';
6
+ import { getCmuxBridge } from '../../notifications/cmux.js';
6
7
  /**
7
8
  * 用户交互处理器
8
9
  */
9
10
  export class UserInteractionHandler {
10
11
  pendingQuestions = new Map();
11
12
  ws = null;
13
+ wsVersion = 0;
12
14
  sessionId = null;
13
15
  /**
14
16
  * 设置 WebSocket 连接
15
17
  */
16
18
  setWebSocket(ws) {
19
+ if (this.ws !== ws) {
20
+ this.wsVersion += 1;
21
+ }
17
22
  this.ws = ws;
18
23
  }
19
24
  /**
@@ -45,6 +50,7 @@ export class UserInteractionHandler {
45
50
  resolve,
46
51
  reject,
47
52
  payload,
53
+ deliveredWebSocketVersion: null,
48
54
  };
49
55
  // 设置超时
50
56
  if (config.timeout && config.timeout > 0) {
@@ -58,7 +64,10 @@ export class UserInteractionHandler {
58
64
  type: 'user_question',
59
65
  payload: { ...payload, sessionId: this.sessionId },
60
66
  }));
67
+ pending.deliveredWebSocketVersion = this.wsVersion;
61
68
  console.log(`[UserInteraction] Sending question: ${config.header} (${requestId}), session: ${this.sessionId}`);
69
+ // cmux 集成:Agent 等待用户输入时通知 cmux 终端
70
+ getCmuxBridge().onWaitingForInput(config.question);
62
71
  }
63
72
  catch (error) {
64
73
  this.cleanup(requestId);
@@ -129,5 +138,24 @@ export class UserInteractionHandler {
129
138
  getPendingPayloads() {
130
139
  return Array.from(this.pendingQuestions.values()).map(p => p.payload);
131
140
  }
141
+ /**
142
+ * 获取当前 ws 还未收到的待处理问题。
143
+ * 用于会话恢复时补发,避免把已经实时送达当前连接的问题再发一遍。
144
+ */
145
+ getUndeliveredPayloadsForCurrentWebSocket() {
146
+ return Array.from(this.pendingQuestions.values())
147
+ .filter((pending) => pending.deliveredWebSocketVersion !== this.wsVersion)
148
+ .map((pending) => pending.payload);
149
+ }
150
+ /**
151
+ * 标记某个问题已经送达当前 ws。
152
+ */
153
+ markDeliveredToCurrentWebSocket(requestId) {
154
+ const pending = this.pendingQuestions.get(requestId);
155
+ if (!pending) {
156
+ return;
157
+ }
158
+ pending.deliveredWebSocketVersion = this.wsVersion;
159
+ }
132
160
  }
133
161
  //# sourceMappingURL=user-interaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-interaction.js","sourceRoot":"","sources":["../../../src/web/server/user-interaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-interaction.js","sourceRoot":"","sources":["../../../src/web/server/user-interaction.ts"],"names":[],"mappings":"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"}
@@ -18,11 +18,25 @@
18
18
  * 不读:环境变量、.credentials.json、config.json、Keychain、内置代理。
19
19
  * CLI 模式不受影响(CLI 继续用 src/auth/index.ts 的 initAuth/getAuth)。
20
20
  */
21
+ import { type CodexAuthConfig } from './codex-auth-manager.js';
21
22
  import type { AuthStatus } from '../shared/types.js';
23
+ import { type WebRuntimeBackend, type WebRuntimeProvider } from '../shared/model-catalog.js';
22
24
  export interface WebAuthCredentials {
23
25
  apiKey?: string;
24
26
  authToken?: string;
25
27
  baseUrl?: string;
28
+ accountId?: string;
29
+ }
30
+ interface WebUiSettings {
31
+ apiKey?: string;
32
+ authPriority: 'apiKey' | 'oauth' | 'auto';
33
+ apiBaseUrl?: string;
34
+ apiProvider?: string;
35
+ customModelName?: string;
36
+ runtimeBackend?: WebRuntimeBackend;
37
+ runtimeProvider?: 'anthropic' | 'codex';
38
+ defaultModelByBackend?: Partial<Record<WebRuntimeBackend, string>>;
39
+ customModelCatalogByBackend?: Partial<Record<WebRuntimeBackend, string[]>>;
26
40
  }
27
41
  declare class WebAuthProvider {
28
42
  /**
@@ -31,6 +45,9 @@ declare class WebAuthProvider {
31
45
  * 这样 Railway/Docker 等容器化部署只需设置环境变量,无需持久化 settings.json。
32
46
  */
33
47
  private readSettings;
48
+ private inferRuntimeBackend;
49
+ private getStoredModelForBackend;
50
+ private getNormalizedModelMap;
34
51
  /** 防止并发刷新 */
35
52
  private refreshPromise;
36
53
  /**
@@ -43,16 +60,16 @@ declare class WebAuthProvider {
43
60
  *
44
61
  * 返回 true 表示 token 有效或已刷新成功
45
62
  */
46
- ensureValidToken(): Promise<boolean>;
63
+ ensureValidToken(runtimeBackend?: WebRuntimeBackend): Promise<boolean>;
47
64
  /**
48
65
  * 获取当前应使用的认证凭证(同步版本)
49
66
  * 注意:此方法不做 token 过期检查,调用方应先 await ensureValidToken()
50
67
  */
51
- getCredentials(): WebAuthCredentials;
68
+ getCredentials(runtimeBackend?: WebRuntimeBackend): WebAuthCredentials;
52
69
  /**
53
70
  * 是否已认证
54
71
  */
55
- isAuthenticated(): boolean;
72
+ isAuthenticated(runtimeBackend?: WebRuntimeBackend): boolean;
56
73
  /**
57
74
  * 判断当前用户是否通过 Axon Cloud 认证(apiBaseUrl 包含 chatbi.site)
58
75
  */
@@ -96,6 +113,7 @@ declare class WebAuthProvider {
96
113
  * 清除所有认证(API Key + OAuth)
97
114
  */
98
115
  clearAll(): void;
116
+ activateCodexLogin(config?: Partial<CodexAuthConfig>): Promise<void>;
99
117
  /**
100
118
  * 验证 API Key 是否有效
101
119
  */
@@ -108,6 +126,12 @@ declare class WebAuthProvider {
108
126
  * 获取 WebUI 的自定义模型名
109
127
  */
110
128
  getCustomModelName(): string | undefined;
129
+ getCodexModelName(): string | undefined;
130
+ getCodexBaseUrl(settings?: WebUiSettings): string;
131
+ getRuntimeBackend(): WebRuntimeBackend;
132
+ getRuntimeProvider(): WebRuntimeProvider;
133
+ getDefaultModelByBackend(): Partial<Record<WebRuntimeBackend, string>>;
134
+ getCustomModelCatalogByBackend(): Partial<Record<WebRuntimeBackend, string[]>>;
111
135
  /**
112
136
  * 获取认证提供商
113
137
  */
@@ -119,6 +143,14 @@ declare class WebAuthProvider {
119
143
  * - 否则降级为 authToken(让 API 返回真实错误)
120
144
  */
121
145
  private getOAuthCredentials;
146
+ private getCodexCredentials;
147
+ getCodexStatus(): {
148
+ authenticated: boolean;
149
+ displayName?: string;
150
+ email?: string;
151
+ accountId?: string;
152
+ expiresAt?: number;
153
+ };
122
154
  }
123
155
  export declare const webAuth: WebAuthProvider;
124
156
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"web-auth.d.ts","sourceRoot":"","sources":["../../../src/web/server/web-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,oBAAoB,CAAC;AAKlE,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAWD,cAAM,eAAe;IAInB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IA8CpB,aAAa;IACb,OAAO,CAAC,cAAc,CAAiC;IAEvD;;;;;;;;;OASG;IACG,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAyC1C;;;OAGG;IACH,cAAc,IAAI,kBAAkB;IA4BpC;;OAEG;IACH,eAAe,IAAI,OAAO;IAO1B;;OAEG;IACH,eAAe,IAAI,OAAO;IAK1B;;OAEG;IACH,SAAS,IAAI,UAAU;IAsBvB;;OAEG;IACH,cAAc,IAAI;QAChB,aAAa,EAAE,OAAO,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB;IAeD;;OAEG;IACH,cAAc,IAAI;QAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;IA8B9G;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAW/B;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAYrC;;OAEG;IACH,WAAW,IAAI,IAAI;IAQnB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAOhB;;OAEG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBnD;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,SAAS;IAUrC;;OAEG;IACH,kBAAkB,IAAI,MAAM,GAAG,SAAS;IAIxC;;OAEG;IACH,WAAW,IAAI,MAAM;IAUrB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;CAiB5B;AAGD,eAAO,MAAM,OAAO,iBAAwB,CAAC"}
1
+ {"version":3,"file":"web-auth.d.ts","sourceRoot":"","sources":["../../../src/web/server/web-auth.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,52 @@
21
21
  import * as fs from 'fs';
22
22
  import { configManager } from '../../config/index.js';
23
23
  import { oauthManager } from './oauth-manager.js';
24
+ import { codexAuthManager } from './codex-auth-manager.js';
24
25
  import Anthropic from '@anthropic-ai/sdk';
26
+ import { getProviderForRuntimeBackend, supportsDynamicModelCatalogForBackend, } from '../shared/model-catalog.js';
27
+ import { getDefaultBaseUrlForRuntimeBackend, getRuntimeOAuthRefreshStrategy, } from '../shared/runtime-capabilities.js';
28
+ import { normalizeRuntimeConfigShape, } from '../shared/setup-runtime.js';
29
+ function isCodexCompatibleModel(model) {
30
+ if (!model)
31
+ return false;
32
+ const normalized = model.trim();
33
+ if (!normalized)
34
+ return false;
35
+ return /^(gpt-|o\d(?:$|[-_])|codex)/i.test(normalized) || normalized.toLowerCase().includes('codex');
36
+ }
37
+ function isCodexChatGptBaseUrlCandidate(baseUrl) {
38
+ try {
39
+ const parsed = new URL(baseUrl);
40
+ const normalizedPath = parsed.pathname.replace(/\/+$/, '');
41
+ if (parsed.hostname === 'chatgpt.com' && normalizedPath === '/backend-api/codex') {
42
+ return true;
43
+ }
44
+ return /\/backend-api\/codex$/i.test(normalizedPath);
45
+ }
46
+ catch {
47
+ return false;
48
+ }
49
+ }
50
+ function isCodexApiKeyBaseUrlCandidate(baseUrl) {
51
+ try {
52
+ const parsed = new URL(baseUrl);
53
+ const normalizedPath = parsed.pathname.replace(/\/+$/, '');
54
+ if (normalizedPath === '/v1') {
55
+ return true;
56
+ }
57
+ return isCodexChatGptBaseUrlCandidate(baseUrl);
58
+ }
59
+ catch {
60
+ return false;
61
+ }
62
+ }
63
+ function isRuntimeConfigApiProvider(value) {
64
+ return value === 'anthropic'
65
+ || value === 'openai-compatible'
66
+ || value === 'axon-cloud'
67
+ || value === 'bedrock'
68
+ || value === 'vertex';
69
+ }
25
70
  // ============ WebAuthProvider ============
26
71
  class WebAuthProvider {
27
72
  // ---------- 读取 settings.json ----------
@@ -39,7 +84,12 @@ class WebAuthProvider {
39
84
  apiKey: raw.apiKey,
40
85
  authPriority: raw.authPriority || 'auto',
41
86
  apiBaseUrl: raw.apiBaseUrl,
87
+ apiProvider: raw.apiProvider,
42
88
  customModelName: raw.customModelName,
89
+ runtimeBackend: raw.runtimeBackend,
90
+ runtimeProvider: raw.runtimeProvider || 'anthropic',
91
+ defaultModelByBackend: raw.defaultModelByBackend,
92
+ customModelCatalogByBackend: raw.customModelCatalogByBackend,
43
93
  };
44
94
  // settings.json 没有 apiKey 时,回退到环境变量
45
95
  if (!result.apiKey) {
@@ -68,7 +118,61 @@ class WebAuthProvider {
68
118
  apiKey: envKey,
69
119
  authPriority: 'auto',
70
120
  apiBaseUrl: envBaseUrl,
121
+ apiProvider: undefined,
122
+ runtimeBackend: undefined,
123
+ runtimeProvider: 'anthropic',
124
+ defaultModelByBackend: undefined,
125
+ customModelCatalogByBackend: undefined,
126
+ };
127
+ }
128
+ inferRuntimeBackend(settings) {
129
+ const oauthConfig = oauthManager.getOAuthConfig();
130
+ if (settings.authPriority === 'oauth'
131
+ && oauthConfig?.subscriptionType === 'console'
132
+ && settings.runtimeProvider !== 'codex'
133
+ && (!settings.runtimeBackend || settings.runtimeBackend === 'claude-subscription')) {
134
+ return 'claude-compatible-api';
135
+ }
136
+ if (settings.apiBaseUrl?.includes('chatbi.site')) {
137
+ return 'axon-cloud';
138
+ }
139
+ return normalizeRuntimeConfigShape({
140
+ updates: {
141
+ runtimeBackend: settings.runtimeBackend,
142
+ runtimeProvider: settings.runtimeProvider,
143
+ apiProvider: isRuntimeConfigApiProvider(settings.apiProvider) ? settings.apiProvider : undefined,
144
+ authPriority: settings.authPriority,
145
+ },
146
+ }).runtimeBackend;
147
+ }
148
+ getStoredModelForBackend(backend, settings = this.readSettings()) {
149
+ const mapped = settings.defaultModelByBackend?.[backend]?.trim();
150
+ if (mapped) {
151
+ return mapped;
152
+ }
153
+ const legacyModel = settings.customModelName?.trim();
154
+ if (!legacyModel) {
155
+ return undefined;
156
+ }
157
+ if (supportsDynamicModelCatalogForBackend(backend)) {
158
+ return legacyModel;
159
+ }
160
+ const provider = getProviderForRuntimeBackend(backend);
161
+ if (provider === 'codex') {
162
+ return isCodexCompatibleModel(legacyModel) ? legacyModel : undefined;
163
+ }
164
+ return !isCodexCompatibleModel(legacyModel) ? legacyModel : undefined;
165
+ }
166
+ getNormalizedModelMap(settings = this.readSettings()) {
167
+ const runtimeBackend = this.inferRuntimeBackend(settings);
168
+ const models = {
169
+ ...(settings.defaultModelByBackend || {}),
71
170
  };
171
+ const currentModel = this.getStoredModelForBackend(runtimeBackend, settings);
172
+ if (currentModel) {
173
+ models[runtimeBackend] = currentModel;
174
+ }
175
+ return models;
72
176
  }
73
177
  // ---------- Token 有效性保障(对齐官方 NM() 语义) ----------
74
178
  /** 防止并发刷新 */
@@ -83,12 +187,38 @@ class WebAuthProvider {
83
187
  *
84
188
  * 返回 true 表示 token 有效或已刷新成功
85
189
  */
86
- async ensureValidToken() {
190
+ async ensureValidToken(runtimeBackend = this.inferRuntimeBackend(this.readSettings())) {
87
191
  const settings = this.readSettings();
88
- // OAuth 模式,不需要刷新
89
- if (settings.authPriority === 'apiKey')
90
- return true;
91
- if (settings.authPriority === 'auto' && settings.apiKey)
192
+ const refreshStrategy = getRuntimeOAuthRefreshStrategy(runtimeBackend, {
193
+ authPriority: settings.authPriority,
194
+ });
195
+ if (refreshStrategy === 'codex') {
196
+ const codexConfig = codexAuthManager.getAuthConfig();
197
+ if (!codexConfig?.accessToken)
198
+ return true;
199
+ if (!codexAuthManager.isTokenExpired())
200
+ return true;
201
+ if (this.refreshPromise) {
202
+ return this.refreshPromise;
203
+ }
204
+ this.refreshPromise = (async () => {
205
+ try {
206
+ console.log('[WebAuth] Codex token expiring soon, auto-refreshing...');
207
+ await codexAuthManager.refreshToken();
208
+ console.log('[WebAuth] Codex token refreshed successfully');
209
+ return true;
210
+ }
211
+ catch (err) {
212
+ console.error('[WebAuth] Codex token refresh failed:', err.message);
213
+ return false;
214
+ }
215
+ finally {
216
+ this.refreshPromise = null;
217
+ }
218
+ })();
219
+ return this.refreshPromise;
220
+ }
221
+ if (refreshStrategy !== 'anthropic')
92
222
  return true;
93
223
  // 检查是否有 OAuth 配置
94
224
  const config = oauthManager.getOAuthConfig();
@@ -125,38 +255,40 @@ class WebAuthProvider {
125
255
  * 获取当前应使用的认证凭证(同步版本)
126
256
  * 注意:此方法不做 token 过期检查,调用方应先 await ensureValidToken()
127
257
  */
128
- getCredentials() {
258
+ getCredentials(runtimeBackend = this.inferRuntimeBackend(this.readSettings())) {
129
259
  const settings = this.readSettings();
130
- const result = {};
131
- if (settings.apiBaseUrl) {
132
- result.baseUrl = settings.apiBaseUrl;
133
- }
134
- if (settings.authPriority === 'apiKey') {
135
- result.apiKey = settings.apiKey;
260
+ if (runtimeBackend === 'codex-subscription') {
261
+ const codexCreds = this.getCodexCredentials();
262
+ return {
263
+ apiKey: codexCreds.apiKey,
264
+ authToken: codexCreds.authToken,
265
+ accountId: codexCreds.accountId,
266
+ baseUrl: this.getCodexBaseUrl(settings),
267
+ };
136
268
  }
137
- else if (settings.authPriority === 'oauth') {
269
+ const result = {};
270
+ const isAnthropicOAuthMode = settings.authPriority === 'oauth'
271
+ && (runtimeBackend === 'claude-subscription' || runtimeBackend === 'claude-compatible-api');
272
+ if (isAnthropicOAuthMode) {
273
+ // OAuth 凭据由 Anthropic 官方颁发,必须发到 api.anthropic.com
274
+ // 不能使用用户之前配置的自定义 apiBaseUrl(可能是代理,不认 OAuth key)
138
275
  const oauthCreds = this.getOAuthCredentials();
139
276
  result.apiKey = oauthCreds.apiKey;
140
277
  result.authToken = oauthCreds.authToken;
141
278
  }
142
279
  else {
143
- // auto
144
- if (settings.apiKey) {
145
- result.apiKey = settings.apiKey;
146
- }
147
- else {
148
- const oauthCreds = this.getOAuthCredentials();
149
- result.apiKey = oauthCreds.apiKey;
150
- result.authToken = oauthCreds.authToken;
280
+ if (settings.apiBaseUrl) {
281
+ result.baseUrl = settings.apiBaseUrl;
151
282
  }
283
+ result.apiKey = settings.apiKey;
152
284
  }
153
285
  return result;
154
286
  }
155
287
  /**
156
288
  * 是否已认证
157
289
  */
158
- isAuthenticated() {
159
- const creds = this.getCredentials();
290
+ isAuthenticated(runtimeBackend) {
291
+ const creds = this.getCredentials(runtimeBackend);
160
292
  return !!(creds.apiKey || creds.authToken);
161
293
  }
162
294
  // ---------- 状态查询(给前端显示用) ----------
@@ -165,32 +297,53 @@ class WebAuthProvider {
165
297
  */
166
298
  isAxonCloudUser() {
167
299
  const settings = this.readSettings();
168
- return !!settings.apiBaseUrl && settings.apiBaseUrl.includes('chatbi.site');
300
+ return this.inferRuntimeBackend(settings) === 'axon-cloud'
301
+ || (!!settings.apiBaseUrl && settings.apiBaseUrl.includes('chatbi.site'));
169
302
  }
170
303
  /**
171
304
  * 获取认证状态(给 /api/auth/status 和 websocket 用)
172
305
  */
173
306
  getStatus() {
174
307
  const settings = this.readSettings();
308
+ const runtimeBackend = this.inferRuntimeBackend(settings);
309
+ if (runtimeBackend === 'codex-subscription') {
310
+ const codexConfig = codexAuthManager.getAuthConfig();
311
+ if (codexConfig?.accessToken || codexConfig?.apiKey || codexConfig?.authMethod === 'api_key') {
312
+ return { authenticated: true, type: 'oauth', provider: 'codex', runtimeBackend };
313
+ }
314
+ }
175
315
  // apiKey 优先检查
176
316
  if (settings.apiKey && settings.authPriority !== 'oauth') {
177
- return { authenticated: true, type: 'api_key', provider: this.getProvider() };
317
+ return { authenticated: true, type: 'api_key', provider: this.getProvider(), runtimeBackend };
178
318
  }
179
319
  // OAuth 检查
180
320
  const oauthConfig = oauthManager.getOAuthConfig();
181
321
  if (oauthConfig?.accessToken) {
182
- return { authenticated: true, type: 'oauth', provider: this.getProvider() };
322
+ return { authenticated: true, type: 'oauth', provider: this.getProvider(), runtimeBackend };
183
323
  }
184
324
  // auto 模式回退到 apiKey
185
325
  if (settings.apiKey) {
186
- return { authenticated: true, type: 'api_key', provider: this.getProvider() };
326
+ return { authenticated: true, type: 'api_key', provider: this.getProvider(), runtimeBackend };
187
327
  }
188
- return { authenticated: false, type: 'none', provider: 'anthropic' };
328
+ return { authenticated: false, type: 'none', provider: 'anthropic', runtimeBackend };
189
329
  }
190
330
  /**
191
331
  * 获取 OAuth 详细状态(给前端认证状态接口用)
192
332
  */
193
333
  getOAuthStatus() {
334
+ if (this.getRuntimeBackend() === 'codex-subscription') {
335
+ const codexStatus = this.getCodexStatus();
336
+ if (!codexStatus.authenticated) {
337
+ return { authenticated: false };
338
+ }
339
+ return {
340
+ authenticated: true,
341
+ displayName: codexStatus.displayName,
342
+ subscriptionType: 'chatgpt',
343
+ expiresAt: codexStatus.expiresAt,
344
+ scopes: ['openid', 'profile', 'email', 'offline_access'],
345
+ };
346
+ }
194
347
  const oauthConfig = oauthManager.getOAuthConfig();
195
348
  if (!oauthConfig?.accessToken) {
196
349
  return { authenticated: false };
@@ -208,6 +361,26 @@ class WebAuthProvider {
208
361
  */
209
362
  getTokenStatus() {
210
363
  const settings = this.readSettings();
364
+ const runtimeBackend = this.inferRuntimeBackend(settings);
365
+ if (runtimeBackend === 'codex-subscription') {
366
+ const codexConfig = codexAuthManager.getAuthConfig();
367
+ if (codexConfig?.accessToken) {
368
+ const isExpired = codexConfig.expiresAt ? Date.now() > codexConfig.expiresAt : false;
369
+ return {
370
+ type: 'oauth',
371
+ valid: !isExpired,
372
+ expiresAt: codexConfig.expiresAt,
373
+ scope: ['openid', 'profile', 'email', 'offline_access'],
374
+ };
375
+ }
376
+ if (codexConfig?.apiKey || codexConfig?.authMethod === 'api_key') {
377
+ return {
378
+ type: 'api_key',
379
+ valid: true,
380
+ };
381
+ }
382
+ return { type: 'none', valid: false };
383
+ }
211
384
  // API Key
212
385
  if (settings.apiKey && settings.authPriority !== 'oauth') {
213
386
  return { type: 'api_key', valid: true };
@@ -254,6 +427,8 @@ class WebAuthProvider {
254
427
  try {
255
428
  configManager.set('apiKey', key);
256
429
  configManager.set('authPriority', 'apiKey');
430
+ configManager.set('runtimeBackend', 'claude-compatible-api');
431
+ configManager.set('runtimeProvider', 'anthropic');
257
432
  return true;
258
433
  }
259
434
  catch (error) {
@@ -278,6 +453,17 @@ class WebAuthProvider {
278
453
  clearAll() {
279
454
  this.clearApiKey();
280
455
  oauthManager.clearOAuthConfig();
456
+ codexAuthManager.clearAuthConfig();
457
+ configManager.set('runtimeBackend', 'claude-subscription');
458
+ configManager.set('runtimeProvider', 'anthropic');
459
+ }
460
+ async activateCodexLogin(config) {
461
+ if (config) {
462
+ await codexAuthManager.saveAuthConfig(config);
463
+ }
464
+ configManager.set('runtimeBackend', 'codex-subscription');
465
+ configManager.set('runtimeProvider', 'codex');
466
+ configManager.set('authPriority', 'oauth');
281
467
  }
282
468
  // ---------- 验证 ----------
283
469
  /**
@@ -319,12 +505,69 @@ class WebAuthProvider {
319
505
  * 获取 WebUI 的自定义模型名
320
506
  */
321
507
  getCustomModelName() {
322
- return this.readSettings().customModelName;
508
+ return this.getStoredModelForBackend(this.getRuntimeBackend());
509
+ }
510
+ getCodexModelName() {
511
+ const customModel = this.getStoredModelForBackend(this.getRuntimeBackend());
512
+ return isCodexCompatibleModel(customModel) ? customModel : undefined;
513
+ }
514
+ getCodexBaseUrl(settings = this.readSettings()) {
515
+ const envBaseUrl = process.env.OPENAI_CODEX_BASE_URL?.trim();
516
+ if (envBaseUrl) {
517
+ return envBaseUrl.replace(/\/+$/, '');
518
+ }
519
+ const codexConfig = codexAuthManager.getAuthConfig();
520
+ const usesApiKey = !codexConfig?.accessToken && !!(codexConfig?.apiKey || codexConfig?.authMethod === 'api_key');
521
+ const configuredBaseUrl = settings.apiBaseUrl?.trim();
522
+ const isSupportedConfiguredBaseUrl = configuredBaseUrl
523
+ && (usesApiKey
524
+ ? isCodexApiKeyBaseUrlCandidate(configuredBaseUrl)
525
+ : isCodexChatGptBaseUrlCandidate(configuredBaseUrl));
526
+ if (configuredBaseUrl && isSupportedConfiguredBaseUrl) {
527
+ return configuredBaseUrl.replace(/\/+$/, '');
528
+ }
529
+ return getDefaultBaseUrlForRuntimeBackend('codex-subscription', {
530
+ useApiKey: usesApiKey,
531
+ });
532
+ }
533
+ getRuntimeBackend() {
534
+ return this.inferRuntimeBackend(this.readSettings());
535
+ }
536
+ getRuntimeProvider() {
537
+ const runtimeBackend = this.getRuntimeBackend();
538
+ const runtimeModel = this.getStoredModelForBackend(runtimeBackend);
539
+ return getProviderForRuntimeBackend(runtimeBackend, runtimeModel);
540
+ }
541
+ getDefaultModelByBackend() {
542
+ return this.getNormalizedModelMap();
543
+ }
544
+ getCustomModelCatalogByBackend() {
545
+ return this.readSettings().customModelCatalogByBackend || {};
323
546
  }
324
547
  /**
325
548
  * 获取认证提供商
326
549
  */
327
550
  getProvider() {
551
+ const runtimeBackend = this.getRuntimeBackend();
552
+ if (runtimeBackend === 'codex-subscription') {
553
+ return 'codex';
554
+ }
555
+ if (runtimeBackend === 'axon-cloud') {
556
+ return 'axon-cloud';
557
+ }
558
+ if (runtimeBackend === 'claude-subscription') {
559
+ return 'anthropic';
560
+ }
561
+ if (runtimeBackend === 'claude-compatible-api') {
562
+ const apiProvider = configManager.get('apiProvider');
563
+ if (apiProvider === 'bedrock' || apiProvider === 'vertex' || apiProvider === 'anthropic') {
564
+ return apiProvider;
565
+ }
566
+ return 'anthropic';
567
+ }
568
+ if (runtimeBackend === 'openai-compatible-api') {
569
+ return 'openai-compatible';
570
+ }
328
571
  const apiProvider = configManager.get('apiProvider');
329
572
  if (apiProvider)
330
573
  return apiProvider;
@@ -358,6 +601,36 @@ class WebAuthProvider {
358
601
  // fallback:token 没推理权限也没 API key,原样返回让 API 报错
359
602
  return { authToken: oauthConfig.accessToken };
360
603
  }
604
+ getCodexCredentials() {
605
+ const codexConfig = codexAuthManager.getAuthConfig();
606
+ if (!codexConfig)
607
+ return {};
608
+ if (codexConfig.accessToken) {
609
+ return {
610
+ authToken: codexConfig.accessToken,
611
+ accountId: codexConfig.accountId,
612
+ };
613
+ }
614
+ if (codexConfig.apiKey) {
615
+ return {
616
+ apiKey: codexConfig.apiKey,
617
+ };
618
+ }
619
+ return {};
620
+ }
621
+ getCodexStatus() {
622
+ const config = codexAuthManager.getAuthConfig();
623
+ if (!config?.accessToken && !config?.apiKey) {
624
+ return { authenticated: false };
625
+ }
626
+ return {
627
+ authenticated: true,
628
+ displayName: config.displayName || config.email || (config.apiKey ? 'API Key' : undefined),
629
+ email: config.email,
630
+ accountId: config.accountId,
631
+ expiresAt: config.expiresAt,
632
+ };
633
+ }
361
634
  }
362
635
  // 导出单例
363
636
  export const webAuth = new WebAuthProvider();