@jingyi0605/codingns 0.1.1 → 0.1.3

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 (251) hide show
  1. package/README.md +14 -0
  2. package/dist/public/assets/{TerminalPage-CVG1cGAJ.js → TerminalPage-Nq5sPc5c.js} +19 -19
  3. package/dist/public/assets/index-9hnprhO7.css +1 -0
  4. package/dist/public/assets/index-BTpmuKhG.js +108 -0
  5. package/dist/public/index.html +2 -2
  6. package/dist/server/config/env.js +24 -3
  7. package/dist/server/config/env.js.map +1 -1
  8. package/dist/server/config/opencode-base-url-resolver.d.ts +13 -8
  9. package/dist/server/config/opencode-base-url-resolver.js +117 -147
  10. package/dist/server/config/opencode-base-url-resolver.js.map +1 -1
  11. package/dist/server/config/opencode-system-probe-helper-client.d.ts +18 -0
  12. package/dist/server/config/opencode-system-probe-helper-client.js +127 -0
  13. package/dist/server/config/opencode-system-probe-helper-client.js.map +1 -0
  14. package/dist/server/config/opencode-system-probe-helper-process.d.ts +1 -0
  15. package/dist/server/config/opencode-system-probe-helper-process.js +208 -0
  16. package/dist/server/config/opencode-system-probe-helper-process.js.map +1 -0
  17. package/dist/server/modules/git/git-command-helper-client.d.ts +25 -0
  18. package/dist/server/modules/git/git-command-helper-client.js +143 -0
  19. package/dist/server/modules/git/git-command-helper-client.js.map +1 -0
  20. package/dist/server/modules/git/git-command-helper-process.d.ts +1 -0
  21. package/dist/server/modules/git/git-command-helper-process.js +237 -0
  22. package/dist/server/modules/git/git-command-helper-process.js.map +1 -0
  23. package/dist/server/modules/git/git-command-runner.d.ts +8 -0
  24. package/dist/server/modules/git/git-command-runner.js +77 -6
  25. package/dist/server/modules/git/git-command-runner.js.map +1 -1
  26. package/dist/server/modules/git/git-controller.d.ts +4 -0
  27. package/dist/server/modules/git/git-controller.js +4 -1
  28. package/dist/server/modules/git/git-controller.js.map +1 -1
  29. package/dist/server/modules/git/git-read-service.d.ts +2 -1
  30. package/dist/server/modules/git/git-read-service.js +30 -0
  31. package/dist/server/modules/git/git-read-service.js.map +1 -1
  32. package/dist/server/modules/git/git-write-service.d.ts +1 -1
  33. package/dist/server/modules/git/git-write-service.js +8 -7
  34. package/dist/server/modules/git/git-write-service.js.map +1 -1
  35. package/dist/server/modules/git/types.d.ts +5 -0
  36. package/dist/server/modules/preferences/common.d.ts +2 -0
  37. package/dist/server/modules/preferences/common.js +13 -0
  38. package/dist/server/modules/preferences/common.js.map +1 -0
  39. package/dist/server/modules/preferences/profile-controller.d.ts +11 -0
  40. package/dist/server/modules/preferences/profile-controller.js +14 -0
  41. package/dist/server/modules/preferences/profile-controller.js.map +1 -0
  42. package/dist/server/modules/preferences/profile-service.d.ts +17 -0
  43. package/dist/server/modules/preferences/profile-service.js +213 -0
  44. package/dist/server/modules/preferences/profile-service.js.map +1 -0
  45. package/dist/server/modules/preferences/quick-phrase-controller.js +2 -12
  46. package/dist/server/modules/preferences/quick-phrase-controller.js.map +1 -1
  47. package/dist/server/modules/provider/codex-model-options.js +26 -165
  48. package/dist/server/modules/provider/codex-model-options.js.map +1 -1
  49. package/dist/server/modules/provider/opencode-model-options.js +6 -71
  50. package/dist/server/modules/provider/opencode-model-options.js.map +1 -1
  51. package/dist/server/modules/provider/provider-controller.d.ts +2 -0
  52. package/dist/server/modules/provider/provider-controller.js +21 -1
  53. package/dist/server/modules/provider/provider-controller.js.map +1 -1
  54. package/dist/server/modules/provider/provider-discovery-helper-client.d.ts +25 -0
  55. package/dist/server/modules/provider/provider-discovery-helper-client.js +114 -0
  56. package/dist/server/modules/provider/provider-discovery-helper-client.js.map +1 -0
  57. package/dist/server/modules/provider/provider-discovery-helper-process.d.ts +1 -0
  58. package/dist/server/modules/provider/provider-discovery-helper-process.js +296 -0
  59. package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -0
  60. package/dist/server/modules/sessions/claude-runtime-helper-client.d.ts +28 -0
  61. package/dist/server/modules/sessions/claude-runtime-helper-client.js +221 -0
  62. package/dist/server/modules/sessions/claude-runtime-helper-client.js.map +1 -0
  63. package/dist/server/modules/sessions/claude-runtime-helper-process.d.ts +1 -0
  64. package/dist/server/modules/sessions/claude-runtime-helper-process.js +146 -0
  65. package/dist/server/modules/sessions/claude-runtime-helper-process.js.map +1 -0
  66. package/dist/server/modules/sessions/codex-app-server-helper-client.d.ts +17 -0
  67. package/dist/server/modules/sessions/codex-app-server-helper-client.js +260 -0
  68. package/dist/server/modules/sessions/codex-app-server-helper-client.js.map +1 -0
  69. package/dist/server/modules/sessions/codex-app-server-helper-process.d.ts +1 -0
  70. package/dist/server/modules/sessions/codex-app-server-helper-process.js +484 -0
  71. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -0
  72. package/dist/server/modules/sessions/session-activity-authority-service.d.ts +52 -0
  73. package/dist/server/modules/sessions/session-activity-authority-service.js +377 -0
  74. package/dist/server/modules/sessions/session-activity-authority-service.js.map +1 -0
  75. package/dist/server/modules/sessions/session-activity-inspector.js +80 -40
  76. package/dist/server/modules/sessions/session-activity-inspector.js.map +1 -1
  77. package/dist/server/modules/sessions/session-controller.d.ts +15 -1
  78. package/dist/server/modules/sessions/session-controller.js +14 -1
  79. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  80. package/dist/server/modules/sessions/session-history-service.d.ts +4 -2
  81. package/dist/server/modules/sessions/session-history-service.js +167 -44
  82. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  83. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +42 -4
  84. package/dist/server/modules/sessions/session-live-runtime-service.js +343 -51
  85. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  86. package/dist/server/modules/sessions/session-permission-request-service.d.ts +175 -0
  87. package/dist/server/modules/sessions/session-permission-request-service.js +1615 -0
  88. package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -0
  89. package/dist/server/modules/sessions/session-provider-error-mapper.js +14 -0
  90. package/dist/server/modules/sessions/session-provider-error-mapper.js.map +1 -1
  91. package/dist/server/modules/terminal/command-template-service.d.ts +6 -2
  92. package/dist/server/modules/terminal/command-template-service.js +91 -5
  93. package/dist/server/modules/terminal/command-template-service.js.map +1 -1
  94. package/dist/server/modules/terminal/runtime/adapters/conpty-control-helper-client.d.ts +24 -0
  95. package/dist/server/modules/terminal/runtime/adapters/conpty-control-helper-client.js +104 -0
  96. package/dist/server/modules/terminal/runtime/adapters/conpty-control-helper-client.js.map +1 -0
  97. package/dist/server/modules/terminal/runtime/adapters/conpty-control-helper-process.d.ts +1 -0
  98. package/dist/server/modules/terminal/runtime/adapters/conpty-control-helper-process.js +96 -0
  99. package/dist/server/modules/terminal/runtime/adapters/conpty-control-helper-process.js.map +1 -0
  100. package/dist/server/modules/terminal/runtime/adapters/conpty-runtime-adapter.d.ts +37 -0
  101. package/dist/server/modules/terminal/runtime/adapters/conpty-runtime-adapter.js +123 -0
  102. package/dist/server/modules/terminal/runtime/adapters/conpty-runtime-adapter.js.map +1 -0
  103. package/dist/server/modules/terminal/runtime/adapters/embedded-pty-runtime-adapter.d.ts +12 -5
  104. package/dist/server/modules/terminal/runtime/adapters/embedded-pty-runtime-adapter.js +44 -4
  105. package/dist/server/modules/terminal/runtime/adapters/embedded-pty-runtime-adapter.js.map +1 -1
  106. package/dist/server/modules/terminal/runtime/adapters/tmux-helper-client.d.ts +14 -0
  107. package/dist/server/modules/terminal/runtime/adapters/tmux-helper-client.js +105 -0
  108. package/dist/server/modules/terminal/runtime/adapters/tmux-helper-client.js.map +1 -0
  109. package/dist/server/modules/terminal/runtime/adapters/tmux-helper-process.d.ts +1 -0
  110. package/dist/server/modules/terminal/runtime/adapters/tmux-helper-process.js +67 -0
  111. package/dist/server/modules/terminal/runtime/adapters/tmux-helper-process.js.map +1 -0
  112. package/dist/server/modules/terminal/runtime/adapters/tmux-runtime-adapter.d.ts +8 -12
  113. package/dist/server/modules/terminal/runtime/adapters/tmux-runtime-adapter.js +112 -21
  114. package/dist/server/modules/terminal/runtime/adapters/tmux-runtime-adapter.js.map +1 -1
  115. package/dist/server/modules/terminal/runtime/conpty-runtime-shared.d.ts +25 -0
  116. package/dist/server/modules/terminal/runtime/conpty-runtime-shared.js +124 -0
  117. package/dist/server/modules/terminal/runtime/conpty-runtime-shared.js.map +1 -0
  118. package/dist/server/modules/terminal/runtime/conpty-session-agent-process.d.ts +1 -0
  119. package/dist/server/modules/terminal/runtime/conpty-session-agent-process.js +205 -0
  120. package/dist/server/modules/terminal/runtime/conpty-session-agent-process.js.map +1 -0
  121. package/dist/server/modules/terminal/runtime/conpty-session-attach-client.d.ts +1 -0
  122. package/dist/server/modules/terminal/runtime/conpty-session-attach-client.js +108 -0
  123. package/dist/server/modules/terminal/runtime/conpty-session-attach-client.js.map +1 -0
  124. package/dist/server/modules/terminal/runtime/conpty-session-control-client.d.ts +1 -0
  125. package/dist/server/modules/terminal/runtime/conpty-session-control-client.js +90 -0
  126. package/dist/server/modules/terminal/runtime/conpty-session-control-client.js.map +1 -0
  127. package/dist/server/modules/terminal/runtime/pty-broker-agent-process.d.ts +1 -0
  128. package/dist/server/modules/terminal/runtime/pty-broker-agent-process.js +179 -0
  129. package/dist/server/modules/terminal/runtime/pty-broker-agent-process.js.map +1 -0
  130. package/dist/server/modules/terminal/runtime/pty-broker-client.d.ts +29 -0
  131. package/dist/server/modules/terminal/runtime/pty-broker-client.js +169 -0
  132. package/dist/server/modules/terminal/runtime/pty-broker-client.js.map +1 -0
  133. package/dist/server/modules/terminal/runtime/pty-broker-shared.d.ts +22 -0
  134. package/dist/server/modules/terminal/runtime/pty-broker-shared.js +123 -0
  135. package/dist/server/modules/terminal/runtime/pty-broker-shared.js.map +1 -0
  136. package/dist/server/modules/terminal/runtime/pty-host-attachment-manager.d.ts +1 -0
  137. package/dist/server/modules/terminal/runtime/pty-host-attachment-manager.js +11 -1
  138. package/dist/server/modules/terminal/runtime/pty-host-attachment-manager.js.map +1 -1
  139. package/dist/server/modules/terminal/runtime/terminal-log-file-store.d.ts +1 -0
  140. package/dist/server/modules/terminal/runtime/terminal-log-file-store.js +7 -1
  141. package/dist/server/modules/terminal/runtime/terminal-log-file-store.js.map +1 -1
  142. package/dist/server/modules/terminal/runtime/terminal-log-spooler.js +3 -2
  143. package/dist/server/modules/terminal/runtime/terminal-log-spooler.js.map +1 -1
  144. package/dist/server/modules/terminal/runtime/terminal-runtime-adapter.d.ts +5 -3
  145. package/dist/server/modules/terminal/runtime/terminal-runtime-manager.d.ts +11 -5
  146. package/dist/server/modules/terminal/runtime/terminal-runtime-manager.js +110 -13
  147. package/dist/server/modules/terminal/runtime/terminal-runtime-manager.js.map +1 -1
  148. package/dist/server/modules/terminal/template-reverse-proxy-service.d.ts +10 -0
  149. package/dist/server/modules/terminal/template-reverse-proxy-service.js +320 -0
  150. package/dist/server/modules/terminal/template-reverse-proxy-service.js.map +1 -0
  151. package/dist/server/modules/terminal/terminal-controller.d.ts +1 -0
  152. package/dist/server/modules/terminal/terminal-controller.js +23 -7
  153. package/dist/server/modules/terminal/terminal-controller.js.map +1 -1
  154. package/dist/server/modules/terminal/terminal-service.d.ts +30 -14
  155. package/dist/server/modules/terminal/terminal-service.js +260 -51
  156. package/dist/server/modules/terminal/terminal-service.js.map +1 -1
  157. package/dist/server/modules/terminal/terminal-shell.d.ts +4 -0
  158. package/dist/server/modules/terminal/terminal-shell.js +165 -18
  159. package/dist/server/modules/terminal/terminal-shell.js.map +1 -1
  160. package/dist/server/modules/workbench/workspace-file-watcher.d.ts +30 -0
  161. package/dist/server/modules/workbench/workspace-file-watcher.js +137 -0
  162. package/dist/server/modules/workbench/workspace-file-watcher.js.map +1 -0
  163. package/dist/server/modules/workbench/workspace-panel-snapshot-service.js +48 -7
  164. package/dist/server/modules/workbench/workspace-panel-snapshot-service.js.map +1 -1
  165. package/dist/server/routes/git.js +1 -0
  166. package/dist/server/routes/git.js.map +1 -1
  167. package/dist/server/routes/preferences.d.ts +2 -1
  168. package/dist/server/routes/preferences.js +3 -1
  169. package/dist/server/routes/preferences.js.map +1 -1
  170. package/dist/server/routes/proxy.d.ts +3 -0
  171. package/dist/server/routes/proxy.js +24 -0
  172. package/dist/server/routes/proxy.js.map +1 -0
  173. package/dist/server/routes/sessions.js +2 -0
  174. package/dist/server/routes/sessions.js.map +1 -1
  175. package/dist/server/server/create-server.d.ts +4 -0
  176. package/dist/server/server/create-server.js +29 -5
  177. package/dist/server/server/create-server.js.map +1 -1
  178. package/dist/server/shared/utils/command-launch.d.ts +6 -0
  179. package/dist/server/shared/utils/command-launch.js +39 -0
  180. package/dist/server/shared/utils/command-launch.js.map +1 -0
  181. package/dist/server/shared/utils/perf-log.d.ts +1 -0
  182. package/dist/server/shared/utils/perf-log.js +8 -2
  183. package/dist/server/shared/utils/perf-log.js.map +1 -1
  184. package/dist/server/shared/utils/permission-debug-log.d.ts +2 -0
  185. package/dist/server/shared/utils/permission-debug-log.js +40 -0
  186. package/dist/server/shared/utils/permission-debug-log.js.map +1 -0
  187. package/dist/server/shared/utils/terminal-debug-log.d.ts +4 -0
  188. package/dist/server/shared/utils/terminal-debug-log.js +71 -0
  189. package/dist/server/shared/utils/terminal-debug-log.js.map +1 -0
  190. package/dist/server/storage/repositories/terminal-command-template-repository.d.ts +1 -0
  191. package/dist/server/storage/repositories/terminal-command-template-repository.js +34 -3
  192. package/dist/server/storage/repositories/terminal-command-template-repository.js.map +1 -1
  193. package/dist/server/storage/repositories/user-preference-profile-repository.d.ts +8 -0
  194. package/dist/server/storage/repositories/user-preference-profile-repository.js +46 -0
  195. package/dist/server/storage/repositories/user-preference-profile-repository.js.map +1 -0
  196. package/dist/server/storage/sqlite/client.js +27 -0
  197. package/dist/server/storage/sqlite/client.js.map +1 -1
  198. package/dist/server/storage/sqlite/schema.sql +15 -0
  199. package/dist/server/types/domain.d.ts +30 -1
  200. package/dist/server/ws/terminal-ws-hub.d.ts +2 -0
  201. package/dist/server/ws/terminal-ws-hub.js +42 -5
  202. package/dist/server/ws/terminal-ws-hub.js.map +1 -1
  203. package/dist/server/ws/workbench-ws-hub.d.ts +9 -1
  204. package/dist/server/ws/workbench-ws-hub.js +132 -21
  205. package/dist/server/ws/workbench-ws-hub.js.map +1 -1
  206. package/dist/server/ws/ws-server.d.ts +22 -1
  207. package/dist/server/ws/ws-server.js +82 -44
  208. package/dist/server/ws/ws-server.js.map +1 -1
  209. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js +42 -0
  210. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js.map +1 -1
  211. package/node_modules/@codingns/session-sync-core/dist/patch-builder.d.ts +30 -0
  212. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js +103 -0
  213. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js.map +1 -0
  214. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +1 -1
  215. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +167 -7
  216. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +1 -1
  217. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +1 -1
  218. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +1 -1
  219. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
  220. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.d.ts +1 -0
  221. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.js +8 -0
  222. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.js.map +1 -0
  223. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js +31 -0
  224. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js.map +1 -1
  225. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +1 -1
  226. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +8 -4
  227. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -1
  228. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.d.ts +1 -0
  229. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js +15 -0
  230. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js.map +1 -1
  231. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.d.ts +5 -0
  232. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js +85 -1
  233. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js.map +1 -1
  234. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +25 -0
  235. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +718 -17
  236. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  237. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.d.ts +3 -0
  238. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js +106 -23
  239. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js.map +1 -1
  240. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.d.ts +3 -0
  241. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js +19 -0
  242. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js.map +1 -1
  243. package/node_modules/@codingns/session-sync-core/dist/runtime/types.d.ts +3 -0
  244. package/node_modules/@codingns/session-sync-core/dist/services.d.ts +1 -1
  245. package/node_modules/@codingns/session-sync-core/dist/services.js +2 -2
  246. package/node_modules/@codingns/session-sync-core/dist/services.js.map +1 -1
  247. package/node_modules/@codingns/session-sync-core/dist/types.d.ts +1 -1
  248. package/package.json +3 -2
  249. package/scripts/postinstall.mjs +15 -8
  250. package/dist/public/assets/index-BUPByQPG.css +0 -1
  251. package/dist/public/assets/index-D1CwTkI2.js +0 -106
@@ -1 +1 @@
1
- {"version":3,"file":"git-write-service.js","sourceRoot":"","sources":["../../../../src/modules/git/git-write-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAW5D,MAAM,OAAO,eAAe;IAEP;IACA;IACA;IAHnB,YACmB,gBAAkC,EAClC,kBAAsC,EACtC,cAA8B;QAF9B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,mBAAc,GAAd,cAAc,CAAgB;IAC9C,CAAC;IAEJ,KAAK,CAAC,KAAK,CAAC,WAAmB,EAAE,OAAiB;QAChD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEvF,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,EAAE;YAChF,WAAW;YACX,SAAS,EAAE,gBAAgB;SAC5B,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,OAAiB;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClG,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAErG,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,QAAQ,CAAC;oBACjB,UAAU,EAAE,GAAG;oBACf,SAAS,EAAE,YAAY;oBACvB,MAAM,EAAE,yBAAyB,MAAM,EAAE;oBACzC,KAAK,EAAE,SAAS;iBACjB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAC7B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EACxB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,EAC3C;YACE,WAAW;YACX,SAAS,EAAE,kBAAkB;SAC9B,CACF,CAAC;QAEF,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,OAAiB;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1C,MAAM,eAAe,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC,CAAC,CAAC;QACpF,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,MAAM,gBAAgB,GAAa,EAAE,CAAC;QAEtC,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAErC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,QAAQ,CAAC;oBACjB,UAAU,EAAE,GAAG;oBACf,SAAS,EAAE,gBAAgB;oBAC3B,MAAM,EAAE,6CAA6C,MAAM,EAAE;oBAC7D,KAAK,EAAE,SAAS;iBACjB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC5C,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YAED,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1B,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,EAAE;oBAC5F,WAAW;oBACX,SAAS,EAAE,kBAAkB;iBAC9B,CAAC,CAAC;YACL,CAAC;YAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,EAAE;oBACrF,WAAW;oBACX,SAAS,EAAE,kBAAkB;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,QAAQ,CAAC;oBACjB,UAAU,EAAE,GAAG;oBACf,SAAS,EAAE,oBAAoB;oBAC/B,MAAM,EAAE,KAAK,CAAC,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,KAAkB;QAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CACjD,IAAI,CAAC,QAAQ,EACb,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,EACnC;YACE,WAAW;YACX,SAAS,EAAE,iBAAiB;SAC7B,CACF,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,QAAQ,CAAC;gBACjB,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,sBAAsB;gBACjC,MAAM,EAAE,wCAAwC;aACjD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,mBAAmB,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAE/F,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE;gBAChF,SAAS,EAAE,MAAM;gBACjB,WAAW;gBACX,SAAS,EAAE,iBAAiB;aAC7B,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;gBACvF,WAAW;gBACX,SAAS,EAAE,iBAAiB;aAC7B,CAAC,CAAC;YAEH,OAAO;gBACL,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE;aACrC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,QAAQ,CAAC;oBACjB,UAAU,EAAE,GAAG;oBACf,SAAS,EAAE,mBAAmB;oBAC9B,MAAM,EAAE,KAAK,CAAC,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,WAAmB,EACnB,UAAkB,EAClB,MAAe;QAEf,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QAE5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,IAAI,QAAQ,CAAC;gBACjB,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,eAAe;gBAC1B,MAAM,EAAE,yBAAyB;gBACjC,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAC5C,IAAI,CAAC,QAAQ,EACb,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAC5E;YACE,gBAAgB,EAAE,IAAI;YACtB,SAAS,EAAE,MAAM;YACjB,WAAW;YACX,SAAS,EAAE,uBAAuB;SACnC,CACF,CAAC;QAEF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,oBAAoB,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,UAAU,CACd,WAAmB,EACnB,MAAqC;QAErC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAC/C,IAAI,CAAC,QAAQ,EACb,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC/B;YACE,gBAAgB,EAAE,IAAI;YACtB,WAAW;YACX,SAAS,EAAE,qBAAqB;SACjC,CACF,CAAC;QAEF,IAAI,SAAS,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACzD,MAAM,IAAI,QAAQ,CAAC;gBACjB,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,kBAAkB;gBAC7B,MAAM,EAAE,iCAAiC;aAC1C,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GACR,MAAM,KAAK,OAAO;YAChB,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC;YACrB,CAAC,CAAC,MAAM,KAAK,MAAM;gBACjB,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC;gBAChD,CAAC,CAAC,MAAM,KAAK,MAAM;oBACjB,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC;oBACnC,CAAC,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;YAClE,gBAAgB,EAAE,IAAI;YACtB,SAAS,EAAE,MAAM;YACjB,WAAW;YACX,SAAS,EAAE,qBAAqB;SACjC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO;YACL,MAAM;YACN,OAAO,EAAE,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC;YAClD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;SAC7B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;YACvF,gBAAgB,EAAE,IAAI;YACtB,WAAW;YACX,SAAS,EAAE,yBAAyB;SACrC,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3D,MAAM,IAAI,QAAQ,CAAC;gBACjB,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,iBAAiB;gBAC5B,MAAM,EAAE,6BAA6B;aACtC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CACzD,IAAI,CAAC,QAAQ,EACb,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,EACrC;YACE,gBAAgB,EAAE,IAAI;YACtB,WAAW;YACX,SAAS,EAAE,yBAAyB;SACrC,CACF,CAAC;QACF,MAAM,aAAa,GACjB,mBAAmB,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CACjD,IAAI,CAAC,QAAQ,EACb,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAC7B;YACE,gBAAgB,EAAE,IAAI;YACtB,SAAS,EAAE,MAAM;YACjB,WAAW;YACX,SAAS,EAAE,yBAAyB;SACrC,CACF,CAAC;QAEF,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,QAAQ,CAAC;gBACjB,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,iBAAiB;gBAC5B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,yBAAyB;aAC5F,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,OAAO,EAAE,kBAAkB;YAC3B,UAAU;YACV,aAAa;SACd,CAAC;IACJ,CAAC;CACF;AAED,SAAS,aAAa,CACpB,QAAgB,EAChB,OAAiB,EACjB,KAAyB;IAEzB,MAAM,iBAAiB,GAAG,OAAO;SAC9B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SAC9B,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAE/D,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,QAAQ,CAAC;YACjB,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,gBAAgB;YAC3B,MAAM,EAAE,qCAAqC;YAC7C,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAkB;IAC7C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAChF,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;SACvD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc;IAC1C,IAAI,4CAA4C,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,QAAQ,CAAC;YAClB,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,kBAAkB;YAC7B,MAAM,EAAE,yBAAyB;SAClC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,qCAAqC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,QAAQ,CAAC;YAClB,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,iBAAiB;YAC5B,MAAM,EAAE,2CAA2C;SACpD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,QAAQ,CAAC;QAClB,UAAU,EAAE,GAAG;QACf,SAAS,EAAE,mBAAmB;QAC9B,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,sBAAsB;KAChD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,MAAqC,EAAE,MAAc;IAC3E,IAAI,gFAAgF,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAClG,OAAO,IAAI,QAAQ,CAAC;YAClB,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,wBAAwB;YACnC,MAAM,EAAE,8BAA8B;SACvC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,0CAA0C,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,OAAO,IAAI,QAAQ,CAAC;YAClB,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,kBAAkB;YAC7B,MAAM,EAAE,uCAAuC;SAChD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,4DAA4D,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9E,OAAO,IAAI,QAAQ,CAAC;YAClB,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,iBAAiB;YAC5B,MAAM,EAAE,yDAAyD;SAClE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,6IAA6I,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/J,OAAO,IAAI,QAAQ,CAAC;YAClB,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,mBAAmB;YAC9B,MAAM,EAAE,+BAA+B;SACxC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,QAAQ,CAAC;QAClB,UAAU,EAAE,GAAG;QACf,SAAS,EACP,MAAM,KAAK,MAAM;YACf,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,MAAM,KAAK,MAAM;gBACjB,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,mBAAmB;QAC3B,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,oBAAoB;KAC9C,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAqC,EAAE,MAAc;IAC/E,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,aAAa,MAAM,SAAS,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,MAAM,MAAM,aAAa,CAAC;IACnC,CAAC;IAED,OAAO,MAAM,MAAM,qBAAqB,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"git-write-service.js","sourceRoot":"","sources":["../../../../src/modules/git/git-write-service.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,11 @@ export interface GitRemoteSyncResult {
92
92
  stdout: string;
93
93
  stderr: string;
94
94
  }
95
+ export interface GitRemoteItem {
96
+ name: string;
97
+ fetchUrl: string;
98
+ pushUrl: string;
99
+ }
95
100
  export interface GitUndoCommitResult {
96
101
  summary: string;
97
102
  commitHash: string;
@@ -0,0 +1,2 @@
1
+ import type { FastifyRequest } from "fastify";
2
+ export declare function requireUserId(request: FastifyRequest): string;
@@ -0,0 +1,13 @@
1
+ import { AppError } from "../../shared/errors/app-error.js";
2
+ export function requireUserId(request) {
3
+ const userId = request.auth?.user.userId;
4
+ if (!userId) {
5
+ throw new AppError({
6
+ statusCode: 401,
7
+ errorCode: "UNAUTHORIZED",
8
+ detail: "当前请求缺乏登录信息"
9
+ });
10
+ }
11
+ return userId;
12
+ }
13
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/modules/preferences/common.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,MAAM,UAAU,aAAa,CAAC,OAAuB;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC;YACjB,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,cAAc;YACzB,MAAM,EAAE,YAAY;SACrB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { FastifyReply, FastifyRequest } from "fastify";
2
+ import type { PreferenceProfilePatchInput } from "./profile-service.js";
3
+ import { PreferenceProfileService } from "./profile-service.js";
4
+ export declare class ProfileController {
5
+ private readonly profileService;
6
+ constructor(profileService: PreferenceProfileService);
7
+ readonly read: (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
8
+ readonly update: (request: FastifyRequest<{
9
+ Body: PreferenceProfilePatchInput;
10
+ }>, reply: FastifyReply) => Promise<void>;
11
+ }
@@ -0,0 +1,14 @@
1
+ import { requireUserId } from "./common.js";
2
+ export class ProfileController {
3
+ profileService;
4
+ constructor(profileService) {
5
+ this.profileService = profileService;
6
+ }
7
+ read = async (request, reply) => {
8
+ reply.send(this.profileService.getProfile(requireUserId(request)));
9
+ };
10
+ update = async (request, reply) => {
11
+ reply.send(this.profileService.updateProfile(requireUserId(request), request.body ?? {}));
12
+ };
13
+ }
14
+ //# sourceMappingURL=profile-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-controller.js","sourceRoot":"","sources":["../../../../src/modules/preferences/profile-controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,cAAwC;QAAxC,mBAAc,GAAd,cAAc,CAA0B;IAAG,CAAC;IAEhE,IAAI,GAAG,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAiB,EAAE;QACpF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;IAEO,MAAM,GAAG,KAAK,EACrB,OAA8D,EAC9D,KAAmB,EACJ,EAAE;QACjB,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAC9E,CAAC;IACJ,CAAC,CAAC;CACH"}
@@ -0,0 +1,17 @@
1
+ import type { UserPreferenceProfile } from "../../types/domain.js";
2
+ import type { UserPreferenceProfileRepository } from "../../storage/repositories/user-preference-profile-repository.js";
3
+ export interface PreferenceProfilePatchInput {
4
+ language?: string;
5
+ theme?: string;
6
+ defaultPermissionMode?: string;
7
+ providers?: unknown;
8
+ }
9
+ export interface PreferenceProfileView extends UserPreferenceProfile {
10
+ updatedAt: string | null;
11
+ }
12
+ export declare class PreferenceProfileService {
13
+ private readonly repository;
14
+ constructor(repository: UserPreferenceProfileRepository);
15
+ getProfile(userId: string): PreferenceProfileView;
16
+ updateProfile(userId: string, input: PreferenceProfilePatchInput): PreferenceProfileView;
17
+ }
@@ -0,0 +1,213 @@
1
+ import { AppError } from "../../shared/errors/app-error.js";
2
+ import { nowIso } from "../../shared/utils/time.js";
3
+ const SUPPORTED_LANGUAGES = ["zh-CN", "en-US"];
4
+ const SUPPORTED_THEMES = ["light", "dark", "sky-blue", "eye-green"];
5
+ const SUPPORTED_PERMISSION_MODES = [
6
+ "default",
7
+ "acceptEdits",
8
+ "bypassPermissions"
9
+ ];
10
+ const SUPPORTED_REASONING_LEVELS = new Set(["low", "medium", "high", "xhigh"]);
11
+ const PROVIDER_IDS = ["claude-code", "codex", "opencode"];
12
+ const DEFAULT_LANGUAGE = "zh-CN";
13
+ const DEFAULT_THEME = "light";
14
+ const DEFAULT_PERMISSION_MODE = "default";
15
+ const DEFAULT_PROVIDER_PROFILE = {
16
+ defaultModel: null,
17
+ defaultReasoningLevel: null
18
+ };
19
+ export class PreferenceProfileService {
20
+ repository;
21
+ constructor(repository) {
22
+ this.repository = repository;
23
+ }
24
+ getProfile(userId) {
25
+ const record = this.repository.findByUserId(userId);
26
+ if (!record) {
27
+ return createDefaultProfileView();
28
+ }
29
+ return toProfileView(record);
30
+ }
31
+ updateProfile(userId, input) {
32
+ const record = this.repository.findByUserId(userId);
33
+ const baseProfile = record ? toProfile(record) : createDefaultProfile();
34
+ const providersPatch = normalizeProvidersPatch(input.providers);
35
+ const nextProfile = {
36
+ language: input.language !== undefined ? normalizeLanguage(input.language) : baseProfile.language,
37
+ theme: input.theme !== undefined ? normalizeTheme(input.theme) : baseProfile.theme,
38
+ defaultPermissionMode: input.defaultPermissionMode !== undefined
39
+ ? normalizePermissionMode(input.defaultPermissionMode)
40
+ : baseProfile.defaultPermissionMode,
41
+ providers: mergeProviders(baseProfile.providers, providersPatch)
42
+ };
43
+ const timestamp = nowIso();
44
+ const nextRecord = {
45
+ userId,
46
+ ...nextProfile,
47
+ createdAt: record?.createdAt ?? timestamp,
48
+ updatedAt: timestamp
49
+ };
50
+ this.repository.upsert(nextRecord);
51
+ return toProfileView(nextRecord);
52
+ }
53
+ }
54
+ function toProfile(record) {
55
+ return {
56
+ language: record.language,
57
+ theme: record.theme,
58
+ defaultPermissionMode: record.defaultPermissionMode,
59
+ providers: buildProvidersRecord(record.providers)
60
+ };
61
+ }
62
+ function toProfileView(record) {
63
+ return {
64
+ ...toProfile(record),
65
+ updatedAt: record.updatedAt
66
+ };
67
+ }
68
+ function createDefaultProfile() {
69
+ return {
70
+ language: DEFAULT_LANGUAGE,
71
+ theme: DEFAULT_THEME,
72
+ defaultPermissionMode: DEFAULT_PERMISSION_MODE,
73
+ providers: buildProvidersRecord()
74
+ };
75
+ }
76
+ function createDefaultProfileView() {
77
+ return {
78
+ ...createDefaultProfile(),
79
+ updatedAt: null
80
+ };
81
+ }
82
+ function buildProvidersRecord(source) {
83
+ const result = {};
84
+ for (const providerId of PROVIDER_IDS) {
85
+ const sourceEntry = source?.[providerId];
86
+ result[providerId] = {
87
+ defaultModel: sourceEntry?.defaultModel ?? DEFAULT_PROVIDER_PROFILE.defaultModel,
88
+ defaultReasoningLevel: sourceEntry?.defaultReasoningLevel ?? DEFAULT_PROVIDER_PROFILE.defaultReasoningLevel
89
+ };
90
+ }
91
+ return result;
92
+ }
93
+ function normalizeProvidersPatch(input) {
94
+ if (input === undefined) {
95
+ return undefined;
96
+ }
97
+ if (typeof input !== "object" || input === null) {
98
+ throw new AppError({
99
+ statusCode: 400,
100
+ errorCode: "INVALID_INPUT",
101
+ detail: "providers 必须是对象",
102
+ field: "providers"
103
+ });
104
+ }
105
+ const patch = {};
106
+ let hasEntries = false;
107
+ for (const [key, value] of Object.entries(input)) {
108
+ if (!PROVIDER_IDS.includes(key)) {
109
+ throw new AppError({
110
+ statusCode: 400,
111
+ errorCode: "INVALID_INPUT",
112
+ detail: "providers 只允许 claude-code、codex、opencode",
113
+ field: "providers"
114
+ });
115
+ }
116
+ if (typeof value !== "object" || value === null) {
117
+ throw new AppError({
118
+ statusCode: 400,
119
+ errorCode: "INVALID_INPUT",
120
+ detail: `providers.${key} 必须是对象`,
121
+ field: `providers.${key}`
122
+ });
123
+ }
124
+ patch[key] = value;
125
+ hasEntries = true;
126
+ }
127
+ return hasEntries ? patch : {};
128
+ }
129
+ function mergeProviders(current, patch) {
130
+ const result = {};
131
+ for (const providerId of PROVIDER_IDS) {
132
+ const previous = current[providerId] ?? DEFAULT_PROVIDER_PROFILE;
133
+ const patchEntry = patch?.[providerId];
134
+ let nextModel = previous.defaultModel;
135
+ let nextReasoningLevel = previous.defaultReasoningLevel;
136
+ if (patchEntry && Object.prototype.hasOwnProperty.call(patchEntry, "defaultModel")) {
137
+ nextModel = normalizeProviderModel(patchEntry.defaultModel, providerId);
138
+ }
139
+ if (patchEntry && Object.prototype.hasOwnProperty.call(patchEntry, "defaultReasoningLevel")) {
140
+ nextReasoningLevel = normalizeProviderReasoningLevel(patchEntry.defaultReasoningLevel, providerId);
141
+ }
142
+ result[providerId] = {
143
+ defaultModel: nextModel,
144
+ defaultReasoningLevel: nextReasoningLevel
145
+ };
146
+ }
147
+ return result;
148
+ }
149
+ function normalizeLanguage(value) {
150
+ if (typeof value !== "string") {
151
+ throw invalidField("language", "language 只允许为 zh-CN 或 en-US");
152
+ }
153
+ const normalized = value.trim();
154
+ if (!SUPPORTED_LANGUAGES.includes(normalized)) {
155
+ throw invalidField("language", "language 只允许为 zh-CN 或 en-US");
156
+ }
157
+ return normalized;
158
+ }
159
+ function normalizeTheme(value) {
160
+ if (typeof value !== "string") {
161
+ throw invalidField("theme", "theme 只允许为 light、dark、sky-blue 或 eye-green");
162
+ }
163
+ const normalized = value.trim();
164
+ if (!SUPPORTED_THEMES.includes(normalized)) {
165
+ throw invalidField("theme", "theme 只允许为 light、dark、sky-blue 或 eye-green");
166
+ }
167
+ return normalized;
168
+ }
169
+ function normalizePermissionMode(value) {
170
+ if (typeof value !== "string") {
171
+ throw invalidField("defaultPermissionMode", "defaultPermissionMode 只允许为 default、acceptEdits 或 bypassPermissions");
172
+ }
173
+ const normalized = value.trim();
174
+ if (!SUPPORTED_PERMISSION_MODES.includes(normalized)) {
175
+ throw invalidField("defaultPermissionMode", "defaultPermissionMode 只允许为 default、acceptEdits 或 bypassPermissions");
176
+ }
177
+ return normalized;
178
+ }
179
+ function normalizeProviderModel(value, providerId) {
180
+ if (value === null) {
181
+ return null;
182
+ }
183
+ if (typeof value !== "string") {
184
+ throw invalidField(`providers.${providerId}.defaultModel`, `providers.${providerId}.defaultModel 只允许为字符串或 null`);
185
+ }
186
+ const normalized = value.trim();
187
+ if (!normalized) {
188
+ throw invalidField(`providers.${providerId}.defaultModel`, `providers.${providerId}.defaultModel 不能为空`);
189
+ }
190
+ return normalized;
191
+ }
192
+ function normalizeProviderReasoningLevel(value, providerId) {
193
+ if (value === null) {
194
+ return null;
195
+ }
196
+ if (typeof value !== "string") {
197
+ throw invalidField(`providers.${providerId}.defaultReasoningLevel`, `providers.${providerId}.defaultReasoningLevel 只允许为字符串或 null`);
198
+ }
199
+ const normalized = value.trim();
200
+ if (!SUPPORTED_REASONING_LEVELS.has(normalized)) {
201
+ throw invalidField(`providers.${providerId}.defaultReasoningLevel`, `providers.${providerId}.defaultReasoningLevel 只允许为 low、medium、high 或 xhigh`);
202
+ }
203
+ return normalized;
204
+ }
205
+ function invalidField(field, detail) {
206
+ return new AppError({
207
+ statusCode: 400,
208
+ errorCode: "INVALID_INPUT",
209
+ detail,
210
+ field
211
+ });
212
+ }
213
+ //# sourceMappingURL=profile-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-service.js","sourceRoot":"","sources":["../../../../src/modules/preferences/profile-service.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,5 @@
1
1
  import { AppError } from "../../shared/errors/app-error.js";
2
- function requireUserId(request) {
3
- const userId = request.auth?.user.userId;
4
- if (!userId) {
5
- throw new AppError({
6
- statusCode: 401,
7
- errorCode: "UNAUTHORIZED",
8
- detail: "当前请求缺少有效登录态"
9
- });
10
- }
11
- return userId;
12
- }
2
+ import { requireUserId } from "./common.js";
13
3
  export class QuickPhraseController {
14
4
  quickPhraseService;
15
5
  constructor(quickPhraseService) {
@@ -25,7 +15,7 @@ export class QuickPhraseController {
25
15
  throw new AppError({
26
16
  statusCode: 400,
27
17
  errorCode: "INVALID_INPUT",
28
- detail: "更新快捷短语必须提供 items 数组",
18
+ detail: "更新快捷短语请提供 items 数组",
29
19
  field: "items"
30
20
  });
31
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"quick-phrase-controller.js","sourceRoot":"","sources":["../../../../src/modules/preferences/quick-phrase-controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAU5D,SAAS,aAAa,CAAC,OAAuB;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC;YACjB,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,cAAc;YACzB,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;IAAG,CAAC;IAE9D,IAAI,GAAG,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAiB,EAAE;QACpF,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAClE,CAAC,CAAC;IACL,CAAC,CAAC;IAEO,OAAO,GAAG,KAAK,EACtB,OAA0D,EAC1D,KAAmB,EACJ,EAAE;QACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,QAAQ,CAAC;gBACjB,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,eAAe;gBAC1B,MAAM,EAAE,qBAAqB;gBAC7B,KAAK,EAAE,OAAO;aACf,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;SACzF,CAAC,CAAC;IACL,CAAC,CAAC;CACH"}
1
+ {"version":3,"file":"quick-phrase-controller.js","sourceRoot":"","sources":["../../../../src/modules/preferences/quick-phrase-controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAS5C,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;IAAG,CAAC;IAE9D,IAAI,GAAG,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAiB,EAAE;QACpF,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAClE,CAAC,CAAC;IACL,CAAC,CAAC;IAEO,OAAO,GAAG,KAAK,EACtB,OAA0D,EAC1D,KAAmB,EACJ,EAAE;QACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,QAAQ,CAAC;gBACjB,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,eAAe;gBAC1B,MAAM,EAAE,oBAAoB;gBAC5B,KAAK,EAAE,OAAO;aACf,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;SACzF,CAAC,CAAC;IACL,CAAC,CAAC;CACH"}
@@ -1,5 +1,4 @@
1
- import { spawn } from "node:child_process";
2
- import { createInterface } from "node:readline";
1
+ import { ProviderDiscoveryHelperClient } from "./provider-discovery-helper-client.js";
3
2
  const PROVIDER_DEFAULT_MODEL_ID = "provider-default";
4
3
  const DEFAULT_TIMEOUT_MS = 5_000;
5
4
  const DEFAULT_CACHE_TTL_MS = 5_000;
@@ -12,6 +11,7 @@ const VISIBLE_CODEX_MODEL_IDS = new Set([
12
11
  "gpt-5.1-codex-mini"
13
12
  ]);
14
13
  const REASONING_EFFORTS = new Set(["low", "medium", "high", "xhigh"]);
14
+ const providerDiscoveryHelperClient = new ProviderDiscoveryHelperClient();
15
15
  export class CodexModelOptionsService {
16
16
  options;
17
17
  timeoutMs;
@@ -54,136 +54,16 @@ export class CodexModelOptionsService {
54
54
  };
55
55
  }
56
56
  readAppServerState() {
57
- return new Promise((resolve, reject) => {
58
- const child = spawn(this.options.commandPath, ["app-server"], {
59
- env: process.env,
60
- stdio: ["pipe", "pipe", "pipe"]
61
- });
62
- const stdout = createInterface({ input: child.stdout });
63
- const stderrChunks = [];
64
- let settled = false;
65
- let configResult = null;
66
- let modelResult = null;
67
- const timeout = setTimeout(() => {
68
- finishWithError(new Error("CODEX_APP_SERVER_TIMEOUT"));
69
- }, this.timeoutMs);
70
- function cleanup() {
71
- clearTimeout(timeout);
72
- stdout.close();
73
- if (!child.killed) {
74
- child.kill("SIGTERM");
75
- }
76
- }
77
- function finishWithError(error) {
78
- if (settled) {
79
- return;
80
- }
81
- settled = true;
82
- cleanup();
83
- reject(error);
84
- }
85
- function finishWithValue(value) {
86
- if (settled) {
87
- return;
88
- }
89
- settled = true;
90
- cleanup();
91
- resolve(value);
92
- }
93
- child.on("error", (error) => {
94
- finishWithError(error);
95
- });
96
- child.stderr.on("data", (chunk) => {
97
- stderrChunks.push(chunk.toString("utf8"));
98
- });
99
- child.on("exit", (code) => {
100
- if (settled) {
101
- return;
102
- }
103
- const stderr = stderrChunks.join("").trim();
104
- const detail = stderr || `codex app-server exited with code ${code ?? "unknown"}`;
105
- finishWithError(new Error(detail));
106
- });
107
- stdout.on("line", (line) => {
108
- const trimmed = line.trim();
109
- if (trimmed.length === 0) {
110
- return;
111
- }
112
- let parsed;
113
- try {
114
- parsed = JSON.parse(trimmed);
115
- }
116
- catch {
117
- return;
118
- }
119
- const responseId = String(parsed.id ?? "");
120
- if (parsed.error && typeof parsed.error === "object") {
121
- const message = normalizeText(parsed.error.message);
122
- if (responseId === "config.read" || responseId === "model.list") {
123
- finishWithError(new Error(message ?? `CODEX_APP_SERVER_${responseId}_FAILED`));
124
- }
125
- return;
126
- }
127
- if (responseId === "config.read") {
128
- const result = normalizeConfigReadResult(parsed.result);
129
- if (!result) {
130
- finishWithError(new Error("CODEX_CONFIG_READ_INVALID"));
131
- return;
132
- }
133
- configResult = result;
134
- }
135
- else if (responseId === "model.list") {
136
- const result = normalizeModelListResult(parsed.result);
137
- if (!result) {
138
- finishWithError(new Error("CODEX_MODEL_LIST_INVALID"));
139
- return;
140
- }
141
- modelResult = result;
142
- }
143
- if (configResult && modelResult) {
144
- finishWithValue({
145
- config: configResult,
146
- models: modelResult
147
- });
148
- }
149
- });
150
- const requests = [
151
- {
152
- jsonrpc: "2.0",
153
- id: "initialize",
154
- method: "initialize",
155
- params: {
156
- clientInfo: {
157
- name: "codingns-host",
158
- version: "0.0.0"
159
- },
160
- capabilities: null
161
- }
162
- },
163
- {
164
- jsonrpc: "2.0",
165
- method: "initialized",
166
- params: {}
167
- },
168
- {
169
- jsonrpc: "2.0",
170
- id: "config.read",
171
- method: "config/read",
172
- params: {}
173
- },
174
- {
175
- jsonrpc: "2.0",
176
- id: "model.list",
177
- method: "model/list",
178
- params: {
179
- includeHidden: false,
180
- limit: 100
181
- }
182
- }
183
- ];
184
- requests.forEach((request) => {
185
- child.stdin.write(`${JSON.stringify(request)}\n`);
186
- });
57
+ return providerDiscoveryHelperClient.readCodexAppServerState({
58
+ commandPath: this.options.commandPath,
59
+ timeoutMs: this.timeoutMs
60
+ }).then((result) => {
61
+ return {
62
+ config: result.config,
63
+ models: result.models
64
+ .map((entry) => normalizeModelListItem(entry))
65
+ .filter((entry) => entry !== null)
66
+ };
187
67
  });
188
68
  }
189
69
  }
@@ -237,47 +117,28 @@ function createFallbackCodexModelOptions(currentModel) {
237
117
  }
238
118
  ];
239
119
  }
240
- function normalizeConfigReadResult(input) {
241
- if (!input || typeof input !== "object") {
242
- return null;
243
- }
244
- const result = input;
245
- const config = result.config && typeof result.config === "object"
246
- ? result.config
247
- : result;
248
- return {
249
- model: normalizeText(config.model),
250
- modelReasoningEffort: normalizeText(config.model_reasoning_effort ?? config.modelReasoningEffort)
251
- };
252
- }
253
- function normalizeModelListResult(input) {
254
- if (!input || typeof input !== "object") {
255
- return null;
256
- }
257
- const data = input.data;
258
- if (!Array.isArray(data)) {
259
- return null;
260
- }
261
- return data
262
- .map((item) => normalizeModelListItem(item))
263
- .filter((item) => Boolean(item));
264
- }
265
120
  function normalizeModelListItem(input) {
266
121
  if (!input || typeof input !== "object") {
267
122
  return null;
268
123
  }
269
- const item = input;
270
- const model = normalizeText(item.model);
271
- if (!model) {
124
+ const entry = input;
125
+ const model = normalizeText(entry.model);
126
+ const displayName = normalizeText(entry.displayName);
127
+ if (!model || !displayName) {
272
128
  return null;
273
129
  }
130
+ const supportedReasoningEfforts = Array.isArray(entry.supportedReasoningEfforts)
131
+ ? entry.supportedReasoningEfforts
132
+ .filter((item) => !!item && typeof item === "object")
133
+ .map((item) => ({
134
+ reasoningEffort: normalizeText(item.reasoningEffort) ?? undefined
135
+ }))
136
+ : undefined;
274
137
  return {
275
138
  model,
276
- displayName: normalizeText(item.displayName) ?? model,
277
- hidden: Boolean(item.hidden),
278
- supportedReasoningEfforts: Array.isArray(item.supportedReasoningEfforts)
279
- ? item.supportedReasoningEfforts
280
- : undefined
139
+ displayName,
140
+ hidden: Boolean(entry.hidden),
141
+ supportedReasoningEfforts
281
142
  };
282
143
  }
283
144
  function normalizeText(value) {