@bryanhu/codexly 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +7 -5
  3. package/README.zh-CN.md +7 -5
  4. package/dist/{chunk-RGRRUTMD.js → chunk-G4BIMVEW.js} +67 -1
  5. package/dist/{chunk-PBPNBQQH.js → chunk-OVQSIEIK.js} +1 -1
  6. package/dist/{chunk-LZVKMW5Y.js → chunk-TVRHN6RY.js} +165 -2
  7. package/dist/{chunk-7C6JMXNO.js → chunk-XXAU2AQY.js} +275 -82
  8. package/dist/cli.js +49 -9
  9. package/dist/client/index.js +36 -2
  10. package/dist/protocol/index.js +1 -1
  11. package/dist/providers/codex/index.js +2 -2
  12. package/dist/server/index.js +4 -4
  13. package/dist/sqlite-state-worker.js +22 -5
  14. package/dist/web/.vite/manifest.json +184 -100
  15. package/dist/web/.vite/manifest.json.br +0 -0
  16. package/dist/web/.vite/manifest.json.gz +0 -0
  17. package/dist/web/assets/{button-group-C4BuwxSd.js → button-group-JQ4SKm_M.js} +1 -1
  18. package/dist/web/assets/button-group-JQ4SKm_M.js.br +0 -0
  19. package/dist/web/assets/button-group-JQ4SKm_M.js.gz +0 -0
  20. package/dist/web/assets/context-menu-BY4fW29a.js +1 -0
  21. package/dist/web/assets/context-menu-BY4fW29a.js.br +0 -0
  22. package/dist/web/assets/context-menu-BY4fW29a.js.gz +0 -0
  23. package/dist/web/assets/dist-Czw-hil0.js +1 -0
  24. package/dist/web/assets/dist-Czw-hil0.js.br +0 -0
  25. package/dist/web/assets/dist-Czw-hil0.js.gz +0 -0
  26. package/dist/web/assets/file-review-dialog-CQIeVer4.js +2 -0
  27. package/dist/web/assets/file-review-dialog-CQIeVer4.js.br +0 -0
  28. package/dist/web/assets/file-review-dialog-CQIeVer4.js.gz +0 -0
  29. package/dist/web/assets/git-history-panel-cnmuCR7N.js +2 -0
  30. package/dist/web/assets/git-history-panel-cnmuCR7N.js.br +0 -0
  31. package/dist/web/assets/git-history-panel-cnmuCR7N.js.gz +0 -0
  32. package/dist/web/assets/global-settings-dialog-BtJYh2_p.js +1 -0
  33. package/dist/web/assets/global-settings-dialog-BtJYh2_p.js.br +0 -0
  34. package/dist/web/assets/global-settings-dialog-BtJYh2_p.js.gz +0 -0
  35. package/dist/web/assets/index-BfZBHCrX.css +2 -0
  36. package/dist/web/assets/index-BfZBHCrX.css.br +0 -0
  37. package/dist/web/assets/index-BfZBHCrX.css.gz +0 -0
  38. package/dist/web/assets/index-CaTeB0Nm.js +4 -0
  39. package/dist/web/assets/index-CaTeB0Nm.js.br +0 -0
  40. package/dist/web/assets/index-CaTeB0Nm.js.gz +0 -0
  41. package/dist/web/assets/info-whxTXvIJ.js +1 -0
  42. package/dist/web/assets/info-whxTXvIJ.js.br +0 -0
  43. package/dist/web/assets/info-whxTXvIJ.js.gz +0 -0
  44. package/dist/web/assets/initial-deps-CQxWMuPh.js +1 -0
  45. package/dist/web/assets/initial-deps-CQxWMuPh.js.br +0 -0
  46. package/dist/web/assets/initial-deps-CQxWMuPh.js.gz +0 -0
  47. package/dist/web/assets/initial-deps-Ds-edw-P.js +1 -0
  48. package/dist/web/assets/initial-deps-Ds-edw-P.js.br +0 -0
  49. package/dist/web/assets/initial-deps-Ds-edw-P.js.gz +0 -0
  50. package/dist/web/assets/installed-skills-pane-mwXKrGXA.js +1 -0
  51. package/dist/web/assets/installed-skills-pane-mwXKrGXA.js.br +0 -0
  52. package/dist/web/assets/installed-skills-pane-mwXKrGXA.js.gz +0 -0
  53. package/dist/web/assets/{lazy-message-response-SxI8Oz6v.js → lazy-message-response-Biq2ok2E.js} +2 -2
  54. package/dist/web/assets/lazy-message-response-Biq2ok2E.js.br +0 -0
  55. package/dist/web/assets/lazy-message-response-Biq2ok2E.js.gz +0 -0
  56. package/dist/web/assets/mcp-management-pane-BdtuiZSq.js +1 -0
  57. package/dist/web/assets/mcp-management-pane-BdtuiZSq.js.br +0 -0
  58. package/dist/web/assets/mcp-management-pane-BdtuiZSq.js.gz +0 -0
  59. package/dist/web/assets/{message-response-CTSQq8Ae.js → message-response-CHtn6tyl.js} +1 -1
  60. package/dist/web/assets/message-response-CHtn6tyl.js.br +0 -0
  61. package/dist/web/assets/message-response-CHtn6tyl.js.gz +0 -0
  62. package/dist/web/assets/official-plugins-pane-BCxHJLaj.css +1 -0
  63. package/dist/web/assets/official-plugins-pane-BCxHJLaj.css.br +0 -0
  64. package/dist/web/assets/official-plugins-pane-BCxHJLaj.css.gz +0 -0
  65. package/dist/web/assets/official-plugins-pane-BfNSSHYd.js +1 -0
  66. package/dist/web/assets/official-plugins-pane-BfNSSHYd.js.br +0 -0
  67. package/dist/web/assets/official-plugins-pane-BfNSSHYd.js.gz +0 -0
  68. package/dist/web/assets/{project-file-popup-page-DX-AlvxF.js → project-file-popup-page-CfPvJlpw.js} +1 -1
  69. package/dist/web/assets/project-file-popup-page-CfPvJlpw.js.br +0 -0
  70. package/dist/web/assets/project-file-popup-page-CfPvJlpw.js.gz +0 -0
  71. package/dist/web/assets/{project-source-panel-i4xpffAa.js → project-source-panel-Cw_heTH4.js} +2 -2
  72. package/dist/web/assets/project-source-panel-Cw_heTH4.js.br +0 -0
  73. package/dist/web/assets/project-source-panel-Cw_heTH4.js.gz +0 -0
  74. package/dist/web/assets/{prompt-input-CL1AA6_U.js → prompt-input-C4sSOZy9.js} +1 -1
  75. package/dist/web/assets/prompt-input-C4sSOZy9.js.br +0 -0
  76. package/dist/web/assets/prompt-input-C4sSOZy9.js.gz +0 -0
  77. package/dist/web/assets/{prompt-input-controls-Qsp2rk3i.js → prompt-input-controls-CcVBHVXv.js} +1 -1
  78. package/dist/web/assets/prompt-input-controls-CcVBHVXv.js.br +0 -0
  79. package/dist/web/assets/prompt-input-controls-CcVBHVXv.js.gz +0 -0
  80. package/dist/web/assets/scheduled-task-date-time-picker-DwKbR28n.js +1 -0
  81. package/dist/web/assets/scheduled-task-date-time-picker-DwKbR28n.js.br +0 -0
  82. package/dist/web/assets/scheduled-task-date-time-picker-DwKbR28n.js.gz +0 -0
  83. package/dist/web/assets/{scheduled-task-floating-ui~scheduled-task-date-time-picker-BQ-Lfxrf.js → scheduled-task-floating-ui~scheduled-task-date-time-picker-BischM2-.js} +1 -1
  84. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-BischM2-.js.br +0 -0
  85. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-BischM2-.js.gz +0 -0
  86. package/dist/web/assets/scheduled-task-schedule-Cfuv_Kyf.js +1 -0
  87. package/dist/web/assets/scheduled-task-schedule-Cfuv_Kyf.js.br +0 -0
  88. package/dist/web/assets/scheduled-task-schedule-Cfuv_Kyf.js.gz +0 -0
  89. package/dist/web/assets/scheduled-tasks-container-CiYF44lc.js +2 -0
  90. package/dist/web/assets/scheduled-tasks-container-CiYF44lc.js.br +0 -0
  91. package/dist/web/assets/scheduled-tasks-container-CiYF44lc.js.gz +0 -0
  92. package/dist/web/assets/sheet-BNFRnQAh.js +1 -0
  93. package/dist/web/assets/sheet-BNFRnQAh.js.br +0 -0
  94. package/dist/web/assets/sheet-BNFRnQAh.js.gz +0 -0
  95. package/dist/web/assets/skills-market-container-C8okZy75.css +1 -0
  96. package/dist/web/assets/skills-market-container-C8okZy75.css.br +0 -0
  97. package/dist/web/assets/skills-market-container-C8okZy75.css.gz +0 -0
  98. package/dist/web/assets/skills-market-container-CfaZk3xM.js +2 -0
  99. package/dist/web/assets/skills-market-container-CfaZk3xM.js.br +0 -0
  100. package/dist/web/assets/skills-market-container-CfaZk3xM.js.gz +0 -0
  101. package/dist/web/assets/third-party-marketplace-pane-okgMXBqM.js +1 -0
  102. package/dist/web/assets/third-party-marketplace-pane-okgMXBqM.js.br +0 -0
  103. package/dist/web/assets/third-party-marketplace-pane-okgMXBqM.js.gz +0 -0
  104. package/dist/web/assets/workbench-composer-Bx73x_MF.js +10 -0
  105. package/dist/web/assets/workbench-composer-Bx73x_MF.js.br +0 -0
  106. package/dist/web/assets/workbench-composer-Bx73x_MF.js.gz +0 -0
  107. package/dist/web/assets/workbench-inspector-changes-DXkowHaf.js +2 -0
  108. package/dist/web/assets/workbench-inspector-changes-DXkowHaf.js.br +0 -0
  109. package/dist/web/assets/workbench-inspector-changes-DXkowHaf.js.gz +0 -0
  110. package/dist/web/assets/workbench-pet-canvas-BroOHYwq.js +1 -0
  111. package/dist/web/assets/workbench-pet-canvas-BroOHYwq.js.br +0 -0
  112. package/dist/web/assets/workbench-pet-canvas-BroOHYwq.js.gz +0 -0
  113. package/dist/web/assets/workbench-shell-DnnhILPt.js +8 -0
  114. package/dist/web/assets/workbench-shell-DnnhILPt.js.br +0 -0
  115. package/dist/web/assets/workbench-shell-DnnhILPt.js.gz +0 -0
  116. package/dist/web/index.html +5 -5
  117. package/dist/web/index.html.br +0 -0
  118. package/dist/web/index.html.gz +0 -0
  119. package/package.json +1 -1
  120. package/dist/web/assets/button-group-C4BuwxSd.js.br +0 -0
  121. package/dist/web/assets/button-group-C4BuwxSd.js.gz +0 -0
  122. package/dist/web/assets/context-menu-DBdIkdO8.js +0 -1
  123. package/dist/web/assets/context-menu-DBdIkdO8.js.br +0 -0
  124. package/dist/web/assets/context-menu-DBdIkdO8.js.gz +0 -0
  125. package/dist/web/assets/dist-B5i0uBCy.js +0 -1
  126. package/dist/web/assets/dist-B5i0uBCy.js.br +0 -0
  127. package/dist/web/assets/dist-B5i0uBCy.js.gz +0 -0
  128. package/dist/web/assets/file-review-dialog-CfW8qcnH.js +0 -2
  129. package/dist/web/assets/file-review-dialog-CfW8qcnH.js.br +0 -0
  130. package/dist/web/assets/file-review-dialog-CfW8qcnH.js.gz +0 -0
  131. package/dist/web/assets/git-history-panel-DDCwLZ_v.js +0 -2
  132. package/dist/web/assets/git-history-panel-DDCwLZ_v.js.br +0 -0
  133. package/dist/web/assets/git-history-panel-DDCwLZ_v.js.gz +0 -0
  134. package/dist/web/assets/global-settings-dialog-Cw-2IvEc.js +0 -1
  135. package/dist/web/assets/global-settings-dialog-Cw-2IvEc.js.br +0 -0
  136. package/dist/web/assets/global-settings-dialog-Cw-2IvEc.js.gz +0 -0
  137. package/dist/web/assets/index-DZEhkOZz.js +0 -4
  138. package/dist/web/assets/index-DZEhkOZz.js.br +0 -0
  139. package/dist/web/assets/index-DZEhkOZz.js.gz +0 -0
  140. package/dist/web/assets/index-mb9dY6_F.css +0 -2
  141. package/dist/web/assets/index-mb9dY6_F.css.br +0 -0
  142. package/dist/web/assets/index-mb9dY6_F.css.gz +0 -0
  143. package/dist/web/assets/initial-deps-Ccn2HMTB.js +0 -1
  144. package/dist/web/assets/initial-deps-Ccn2HMTB.js.br +0 -0
  145. package/dist/web/assets/initial-deps-Ccn2HMTB.js.gz +0 -0
  146. package/dist/web/assets/initial-deps-D1tR2tqv.js +0 -1
  147. package/dist/web/assets/initial-deps-D1tR2tqv.js.br +0 -0
  148. package/dist/web/assets/initial-deps-D1tR2tqv.js.gz +0 -0
  149. package/dist/web/assets/lazy-message-response-SxI8Oz6v.js.br +0 -0
  150. package/dist/web/assets/lazy-message-response-SxI8Oz6v.js.gz +0 -0
  151. package/dist/web/assets/message-response-CTSQq8Ae.js.br +0 -0
  152. package/dist/web/assets/message-response-CTSQq8Ae.js.gz +0 -0
  153. package/dist/web/assets/project-file-popup-page-DX-AlvxF.js.br +0 -0
  154. package/dist/web/assets/project-file-popup-page-DX-AlvxF.js.gz +0 -0
  155. package/dist/web/assets/project-source-panel-i4xpffAa.js.br +0 -0
  156. package/dist/web/assets/project-source-panel-i4xpffAa.js.gz +0 -0
  157. package/dist/web/assets/prompt-input-CL1AA6_U.js.br +0 -0
  158. package/dist/web/assets/prompt-input-CL1AA6_U.js.gz +0 -0
  159. package/dist/web/assets/prompt-input-controls-Qsp2rk3i.js.br +0 -0
  160. package/dist/web/assets/prompt-input-controls-Qsp2rk3i.js.gz +0 -0
  161. package/dist/web/assets/scheduled-task-date-time-picker-B2_XJQa7.js +0 -1
  162. package/dist/web/assets/scheduled-task-date-time-picker-B2_XJQa7.js.br +0 -0
  163. package/dist/web/assets/scheduled-task-date-time-picker-B2_XJQa7.js.gz +0 -0
  164. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-BQ-Lfxrf.js.br +0 -0
  165. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-BQ-Lfxrf.js.gz +0 -0
  166. package/dist/web/assets/scheduled-task-schedule-DVyf2brf.js +0 -1
  167. package/dist/web/assets/scheduled-task-schedule-DVyf2brf.js.br +0 -0
  168. package/dist/web/assets/scheduled-task-schedule-DVyf2brf.js.gz +0 -0
  169. package/dist/web/assets/scheduled-tasks-container-DWk8eU-x.js +0 -2
  170. package/dist/web/assets/scheduled-tasks-container-DWk8eU-x.js.br +0 -0
  171. package/dist/web/assets/scheduled-tasks-container-DWk8eU-x.js.gz +0 -0
  172. package/dist/web/assets/skills-market-container-C9djEXQt.css +0 -1
  173. package/dist/web/assets/skills-market-container-C9djEXQt.css.br +0 -0
  174. package/dist/web/assets/skills-market-container-C9djEXQt.css.gz +0 -0
  175. package/dist/web/assets/skills-market-container-DGLB9mLM.js +0 -1
  176. package/dist/web/assets/skills-market-container-DGLB9mLM.js.br +0 -0
  177. package/dist/web/assets/skills-market-container-DGLB9mLM.js.gz +0 -0
  178. package/dist/web/assets/workbench-composer-BD9Ki4HB.js +0 -10
  179. package/dist/web/assets/workbench-composer-BD9Ki4HB.js.br +0 -0
  180. package/dist/web/assets/workbench-composer-BD9Ki4HB.js.gz +0 -0
  181. package/dist/web/assets/workbench-inspector-changes-DAh6jOqk.js +0 -2
  182. package/dist/web/assets/workbench-inspector-changes-DAh6jOqk.js.br +0 -0
  183. package/dist/web/assets/workbench-inspector-changes-DAh6jOqk.js.gz +0 -0
  184. package/dist/web/assets/workbench-pet-canvas-BDehkHlv.js +0 -1
  185. package/dist/web/assets/workbench-pet-canvas-BDehkHlv.js.br +0 -0
  186. package/dist/web/assets/workbench-pet-canvas-BDehkHlv.js.gz +0 -0
  187. package/dist/web/assets/workbench-shell-3eEtoMzo.js +0 -8
  188. package/dist/web/assets/workbench-shell-3eEtoMzo.js.br +0 -0
  189. package/dist/web/assets/workbench-shell-3eEtoMzo.js.gz +0 -0
  190. /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~skills-market-container~workbench-inspecto~y5cwo2qi-DAfditVv.js → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-file-p~olri0nvu-DAfditVv.js} +0 -0
  191. /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~skills-market-container~workbench-inspecto~y5cwo2qi-DAfditVv.js.br → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-file-p~olri0nvu-DAfditVv.js.br} +0 -0
  192. /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~skills-market-container~workbench-inspecto~y5cwo2qi-DAfditVv.js.gz → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-file-p~olri0nvu-DAfditVv.js.gz} +0 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,29 @@
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.14.0] - 2026-09-08
8
+
9
+ ### 新增
10
+
11
+ - 支持从工作台浮层关闭未回答的异步问题,避免无效问题持续占用操作区域。
12
+
13
+ ### 修复
14
+
15
+ - 联动定时任务的重复规则与调度字段,切换计划类型时保持表单状态一致。
16
+ - 修复 Windows 跨盘路径的文件边界校验与项目拖拽排序,并完善跨平台全量测试。
17
+
18
+ ## [0.13.0] - 2026-09-07
19
+
20
+ ### 新增
21
+
22
+ - 重构扩展中心,支持统一管理已安装 Skills、官方 Plugins、MCP Servers 和 ClawHub 第三方市场。
23
+ - 完善定时任务调度持久化与队列恢复,支持应用重启后继续执行待处理任务。
24
+ - 为应用更新添加 npm 镜像源回退,提高版本检查、下载与安装的可用性。
25
+
26
+ ### 优化
27
+
28
+ - 优化工作台侧栏的项目搜索与导航布局,提升项目切换和常用入口的可发现性。
29
+
7
30
  ## [0.12.0] - 2026-09-05
8
31
 
9
32
  ### 新增
package/README.md CHANGED
@@ -39,9 +39,9 @@
39
39
  - Run project or temporary Codex tasks and follow responses, commands, and file changes in real time
40
40
  - Keep follow-up work in a persistent task queue, and edit queued messages and attachments before they run
41
41
  - Track active work on a task board, maintain project to-dos, and schedule persistent one-time or recurring tasks
42
- - Attach files and images, reference project files with `@`, answer MCP input requests, and ask asynchronous questions while a task runs
42
+ - Attach files and images, reference project files with `@`, answer MCP input requests, and ask or dismiss asynchronous questions while a task runs
43
43
  - Choose the model, reasoning effort, Fast mode, approval behavior, and file access level for each task
44
- - Browse and safely install compatible Skills from the ClawHub marketplace
44
+ - Manage installed Skills, official Plugins, MCP servers, and compatible third-party Skills from ClawHub in one extension center
45
45
  - Organize ordered multi-root projects, archive project or temporary tasks, and permanently delete tasks when needed
46
46
  - Inspect, preview, rename, and delete project files; review diffs; manage branches and worktrees; and commit or push changes
47
47
  - Fork a task from an AI response and continue it in a new Git worktree
@@ -71,10 +71,12 @@ On first launch, sign in with ChatGPT or configure an OpenAI-compatible service
71
71
  For regular use, install Codexly globally:
72
72
 
73
73
  ```bash
74
- npm install --global @bryanhu/codexly
74
+ npm install --global @bryanhu/codexly@latest --registry=https://registry.npmmirror.com --prefer-offline || npm install --global @bryanhu/codexly@latest --registry=https://registry.npmjs.org --prefer-offline
75
75
  codexly
76
76
  ```
77
77
 
78
+ The installation command tries the China mirror first, falls back to the official registry on failure, and reuses the npm cache. `||` works in Bash, Zsh, cmd, and PowerShell 7+. In Windows PowerShell 5.1, run the command to the right of `||` separately if the first command fails.
79
+
78
80
  ## Usage
79
81
 
80
82
  Select **New task** for work that does not need a project. For repository work, add one or more host directories as ordered project roots, create a task, and submit your request with any required files, images, project references, or Skills. Archived tasks can be restored or permanently deleted from the project task list.
@@ -104,10 +106,10 @@ Quote passwords containing shell-special characters. LAN mode uses unencrypted H
104
106
 
105
107
  Run `codexly doctor` when startup, Codex, or local data checks fail. Run `codexly --help` for the current command and option reference.
106
108
 
107
- Interactive startup and **Settings > About** check for new releases. A global installation can also be updated with:
109
+ Interactive startup and **Settings > About** check for new releases. Built-in updates try the China mirror first for version checks, package downloads, and dependency installation, falling back to the official registry on failure and reusing your npm cache. New releases may appear later while the mirror synchronizes. A global installation can also be updated with:
108
110
 
109
111
  ```bash
110
- npm install --global @bryanhu/codexly@latest
112
+ npm install --global @bryanhu/codexly@latest --registry=https://registry.npmmirror.com --prefer-offline || npm install --global @bryanhu/codexly@latest --registry=https://registry.npmjs.org --prefer-offline
111
113
  ```
112
114
 
113
115
  ## Help
package/README.zh-CN.md CHANGED
@@ -9,9 +9,9 @@ Codexly 是一个在浏览器中使用 Codex 的本地 AI 编程工作台。它
9
9
  - 运行项目任务或临时任务,实时查看回复、命令和文件变更
10
10
  - 使用持久化任务队列安排后续工作,并在执行前编辑排队消息和附件
11
11
  - 使用任务看板跟踪进行中的工作、维护项目待办,并创建持久化的一次性或周期定时任务
12
- - 添加文件与图片、使用 `@` 引用项目文件、回答 MCP 补充输入请求,并在任务执行期间异步提问
12
+ - 添加文件与图片、使用 `@` 引用项目文件、回答 MCP 补充输入请求,并在任务执行期间发起或关闭异步问题
13
13
  - 为每个任务选择模型、思考量、快速模式、审批方式和文件访问范围
14
- - ClawHub Skill 市场浏览并安全安装兼容 Skills
14
+ - 在扩展中心统一管理已安装 Skills、官方 Plugins、MCP Servers,以及来自 ClawHub 的兼容第三方 Skills
15
15
  - 组织有序的多根项目、归档项目或临时任务,并按需永久删除任务
16
16
  - 查看、预览、重命名和删除项目文件,审查差异,管理分支与 worktree,并提交或推送变更
17
17
  - 从 AI 回复处分叉任务,在新的 Git worktree 中继续工作
@@ -41,10 +41,12 @@ Codexly 会自动打开浏览器。若未打开,请访问终端输出的地址
41
41
  经常使用时可以全局安装:
42
42
 
43
43
  ```bash
44
- npm install --global @bryanhu/codexly
44
+ npm install --global @bryanhu/codexly@latest --registry=https://registry.npmmirror.com --prefer-offline || npm install --global @bryanhu/codexly@latest --registry=https://registry.npmjs.org --prefer-offline
45
45
  codexly
46
46
  ```
47
47
 
48
+ 安装命令优先使用国内镜像,失败后回退官方源,并复用 npm 缓存。`||` 适用于 Bash、Zsh、cmd 和 PowerShell 7+;Windows PowerShell 5.1 请在第一条命令失败后单独执行 `||` 右侧的命令。
49
+
48
50
  ## 使用方式
49
51
 
50
52
  不依赖项目时,直接选择“新建任务”。处理仓库时,先添加一个或多个运行端目录作为有序的项目根,再创建任务,并按需附加文件、图片、项目引用或 Skills 后提交需求。归档的任务可以从项目任务列表中恢复或永久删除。
@@ -74,10 +76,10 @@ codexly start --lan
74
76
 
75
77
  启动、Codex 或本地数据检查失败时运行 `codexly doctor`。使用 `codexly --help` 查看当前命令和选项。
76
78
 
77
- 交互式启动和“设置 > 关于”会检查新版本。全局安装也可以通过以下命令更新:
79
+ 交互式启动和“设置 > 关于”会检查新版本。内置更新的版本查询、包下载和依赖安装优先使用国内镜像,失败后回退官方源;下载和安装复用用户的 npm 缓存。镜像同步期间可能稍晚显示新版本。全局安装也可以通过以下命令更新:
78
80
 
79
81
  ```bash
80
- npm install --global @bryanhu/codexly@latest
82
+ npm install --global @bryanhu/codexly@latest --registry=https://registry.npmmirror.com --prefer-offline || npm install --global @bryanhu/codexly@latest --registry=https://registry.npmjs.org --prefer-offline
81
83
  ```
82
84
 
83
85
  ## 获取帮助
@@ -2958,6 +2958,72 @@ var OpenSkillDirectoryResponseSchema = Type.Object(
2958
2958
  { status: Type.Literal("opened") },
2959
2959
  { additionalProperties: false }
2960
2960
  );
2961
+ var OfficialPluginAuthPolicySchema = Type.Union([
2962
+ Type.Literal("ON_INSTALL"),
2963
+ Type.Literal("ON_USE")
2964
+ ]);
2965
+ var OfficialPluginSummarySchema = Type.Object(
2966
+ {
2967
+ authPolicy: OfficialPluginAuthPolicySchema,
2968
+ availability: Type.Union([Type.Literal("AVAILABLE"), Type.Literal("DISABLED_BY_ADMIN")]),
2969
+ description: Type.String(),
2970
+ developerName: Type.Union([Type.String(), Type.Null()]),
2971
+ disabledReason: Type.Union([Type.String(), Type.Null()]),
2972
+ displayName: Type.String({ minLength: 1 }),
2973
+ enabled: Type.Boolean(),
2974
+ id: Type.String({ minLength: 1 }),
2975
+ installPolicy: Type.Union([
2976
+ Type.Literal("NOT_AVAILABLE"),
2977
+ Type.Literal("AVAILABLE"),
2978
+ Type.Literal("INSTALLED_BY_DEFAULT")
2979
+ ]),
2980
+ installed: Type.Boolean(),
2981
+ localVersion: Type.Union([Type.String(), Type.Null()]),
2982
+ logoUrl: Type.Union([Type.String(), Type.Null()]),
2983
+ marketplaceName: Type.String({ minLength: 1 }),
2984
+ marketplacePath: Type.Union([Type.String(), Type.Null()]),
2985
+ name: Type.String({ minLength: 1 }),
2986
+ pluginName: Type.String({ minLength: 1 }),
2987
+ version: Type.Union([Type.String(), Type.Null()])
2988
+ },
2989
+ { additionalProperties: false }
2990
+ );
2991
+ var OfficialPluginPageSchema = Type.Object(
2992
+ { data: Type.Array(OfficialPluginSummarySchema) },
2993
+ { additionalProperties: false }
2994
+ );
2995
+ var OfficialPluginAssetSchema = Type.Object(
2996
+ { description: Type.String(), name: Type.String({ minLength: 1 }) },
2997
+ { additionalProperties: false }
2998
+ );
2999
+ var OfficialPluginAppSchema = Type.Object(
3000
+ {
3001
+ description: Type.String(),
3002
+ id: Type.String({ minLength: 1 }),
3003
+ installUrl: Type.Union([Type.String(), Type.Null()]),
3004
+ name: Type.String({ minLength: 1 })
3005
+ },
3006
+ { additionalProperties: false }
3007
+ );
3008
+ var OfficialPluginDetailSchema = Type.Object(
3009
+ {
3010
+ ...OfficialPluginSummarySchema.properties,
3011
+ apps: Type.Array(OfficialPluginAppSchema),
3012
+ hooks: Type.Array(Type.String()),
3013
+ mcpServers: Type.Array(Type.String()),
3014
+ skills: Type.Array(OfficialPluginAssetSchema),
3015
+ websiteUrl: Type.Union([Type.String(), Type.Null()])
3016
+ },
3017
+ { additionalProperties: false }
3018
+ );
3019
+ var OfficialPluginInstallResultSchema = Type.Object(
3020
+ {
3021
+ appsNeedingAuth: Type.Array(OfficialPluginAppSchema),
3022
+ authPolicy: OfficialPluginAuthPolicySchema
3023
+ },
3024
+ { additionalProperties: false }
3025
+ );
3026
+ var OfficialPluginUninstallResultSchema = Type.Object({}, { additionalProperties: false });
2961
3027
 
2962
3028
  // packages/protocol/src/project-root.ts
2963
3029
  var ProjectRootPathSchema = Type.String({
@@ -5625,4 +5691,4 @@ var EventStreamMetricsResponseSchema = Type.Object(
5625
5691
  { additionalProperties: false }
5626
5692
  );
5627
5693
 
5628
- export { AGENT_FILE_ACCEPT, AGENT_FILE_EXTENSIONS, AGENT_FILE_MEDIA_TYPES, AGENT_IMAGE_ACCEPT, AccessModeSchema, AccessStatusResponseSchema, AddAgentQueuedSubmissionRequestSchema, AddAgentQueuedSubmissionResponseSchema, AddProjectRequestSchema, AddProjectResponseSchema, AgentActivityItemSchema, AgentApprovalReviewActionSchema, AgentApprovalReviewItemSchema, AgentApprovalReviewStatusSchema, AgentApprovalsReviewerSchema, AgentAttachmentKindSchema, AgentAttachmentMediaTypeSchema, AgentAttachmentSchema, AgentAttachmentUploadResponseSchema, AgentBackgroundTerminalPageSchema, AgentBackgroundTerminalSchema, AgentCapabilitiesSchema, AgentCommandItemSchema, AgentCommandOutputOmissionSchema, AgentContextUsageSchema, AgentEventSchema, AgentFileChangeItemSchema, AgentFileChangeSchema, AgentGlobalApprovalPolicySchema, AgentGlobalSettingsResponseSchema, AgentGlobalSettingsSchema, AgentGoalSchema, AgentGoalStatusSchema, AgentGranularApprovalConfigSchema, AgentGranularApprovalPolicySchema, AgentImageMediaTypeSchema, AgentItemSchema, AgentItemStatusSchema, AgentMcpServerConnectionStatusSchema, AgentMcpServerFailureReasonSchema, AgentMcpServerPageSchema, AgentMcpServerSchema, AgentMcpServerStartupStatusSchema, AgentMessageAttachmentSchema, AgentMessageItemSchema, AgentMessagePhaseSchema, AgentMessageSkillSchema, AgentModelPageSchema, AgentModelSchema, AgentMutationErrorCodeSchema, AgentMutationErrorSchema, AgentPlanItemSchema, AgentPlanSchema, AgentPlanStepSchema, AgentPlanStepStatusSchema, AgentProjectDefaultsResponseSchema, AgentProjectDefaultsSchema, AgentPromptInputSchema, AgentProviderAccountSchema, AgentProviderConnectionMutationResponseSchema, AgentProviderConnectionRecordSchema, AgentProviderConnectionStateSchema, AgentProviderConnectionStatusSchema, AgentProviderModeSchema, AgentProviderPendingLoginSchema, AgentQueuedSubmissionPageSchema, AgentQueuedSubmissionSchema, AgentQueuedSubmissionStatusSchema, AgentReasoningEffortOptionSchema, AgentReasoningItemSchema, AgentReviewItemSchema, AgentReviewTargetSchema, AgentSandboxModeSchema, AgentSkillPageSchema, AgentSkillReferenceSchema, AgentSkillSchema, AgentSkillScopeSchema, AgentTaskPageSchema, AgentTaskSchema, AgentTaskSettingsResponseSchema, AgentTaskSettingsSchema, AgentTaskSnapshotResponseSchema, AgentTaskSnapshotSchema, AgentToolItemSchema, AgentTurnApprovalPolicySchema, AgentTurnOptionsSchema, AgentTurnSchema, AgentTurnStatusSchema, AppInfoResponseSchema, AppUpdateProgressPhaseSchema, AppUpdateProgressResponseSchema, AppUpdateProgressSchema, AppUpdateStatusSchema, ArchiveAgentTaskRequestSchema, ArchiveAgentTaskResponseSchema, CancelProviderLoginRequestSchema, ClawhubSkillDetailSchema, ClawhubSkillPageSchema, ClawhubSkillSummarySchema, ClawhubSkillVersionSchema, ClearAgentGoalResponseSchema, CommandApprovalPendingRequestSchema, CommandOutputDeltaEventSchema, CommitProjectChangesRequestSchema, CommitProjectChangesResponseSchema, CompactAgentTaskRequestSchema, CompactAgentTaskResponseSchema, ConfigureCustomProviderRequestSchema, ConfigureCustomProviderResponseSchema, ConfiguredMcpServerPageSchema, ConfiguredMcpServerSchema, ConnectionReadySchema, CreateProjectBranchRequestSchema, CreateProjectWorktreeRequestSchema, DEFAULT_AGENT_GRANULAR_APPROVAL_POLICY, DEFAULT_COMMIT_MESSAGE_MODEL, DeleteAgentQueuedSubmissionResponseSchema, DeleteAgentTaskRequestSchema, DeleteAgentTaskResponseSchema, DeleteProjectFileRequestSchema, DeleteProjectFileResponseSchema, DeleteScheduledTaskResponseSchema, EventBatchSchema, EventCheckpointSchema, EventStreamMessageSchema, EventStreamMetricsResponseSchema, EventStreamProjectMetricsSchema, FileChangeApprovalPendingRequestSchema, FileChangeUpdatedEventSchema, FilesystemRootSchema, ForkAgentTaskRequestSchema, ForkAgentTaskResponseSchema, GenerateCommitMessageRequestSchema, GenerateCommitMessageResponseSchema, GoalClearedEventSchema, GoalUpdatedEventSchema, HasPropertyKey2 as HasPropertyKey, HealthResponseSchema, HostFileEntrySchema, HostFileKindSchema, HostFileListingSchema, HostFileQuerySchema, ImportHostAttachmentRequestSchema, IndexFromPropertyKeys, InstallAppUpdateRequestSchema, InstallAppUpdateResponseSchema, InstalledSkillPageSchema, InstalledSkillSchema, InterruptAgentTurnRequestSchema, InterruptAgentTurnResponseSchema, IsArray2 as IsArray, IsAsyncIterator2 as IsAsyncIterator, IsBigInt2 as IsBigInt, IsBoolean2 as IsBoolean, IsDate2 as IsDate, IsFunction2 as IsFunction, IsInteger, IsIterator2 as IsIterator, IsKind, IsMap, IsNull2 as IsNull, IsNumber2 as IsNumber, IsObject2 as IsObject, IsPromise, IsSchema, IsSet, IsStandardObject, IsString2 as IsString, IsSymbol2 as IsSymbol, IsTemplateLiteralFinite, IsTransform, IsTypedArray, IsUint8Array2 as IsUint8Array, IsUndefined2 as IsUndefined, IsUndefined3 as IsUndefined2, IsValueType, ItemCompletedEventSchema, ItemStartedEventSchema, KeyOfPattern, KeyOfPropertyKeys, Kind, Literal, LogoutAccessResponseSchema, MAX_AGENT_ATTACHMENT_BYTES, MAX_AGENT_FILE_BYTES, MAX_AGENT_FILE_TOTAL_BYTES, MAX_AGENT_HISTORY_IMAGES, MAX_AGENT_HISTORY_IMAGE_TOTAL_BYTES, MAX_AGENT_IMAGES, MAX_AGENT_IMAGE_BYTES, MAX_AGENT_IMAGE_TOTAL_BYTES, MAX_AGENT_TEXT_BYTES, MAX_EVENT_BATCH_SIZE, MAX_REALTIME_DIFF_BYTES, MAX_REALTIME_FILE_CHANGES, McpElicitationFieldSchema, McpElicitationOptionSchema, McpElicitationPendingRequestSchema, McpElicitationResolutionSchema, MessageDeltaEventSchema, Never, Object2 as Object, OpenAgentTaskAttachmentRequestSchema, OpenAgentTaskAttachmentResponseSchema, OpenProjectRequestSchema, OpenProjectResponseSchema, OpenSkillDirectoryResponseSchema, PairAccessRequestSchema, PairAccessResponseSchema, PendingApprovalDecisionSchema, PendingPermissionCategorySchema, PendingRequestCreatedEventSchema, PendingRequestExpiredEventSchema, PendingRequestResolvedEventSchema, PendingRequestSchema, PendingRequestStatusSchema, PendingUserInputOptionSchema, PendingUserInputQuestionSchema, PermissionApprovalPendingRequestSchema, PinAgentTaskRequestSchema, PinAgentTaskResponseSchema, PlanUpdatedEventSchema, ProjectDirectoryEntrySchema, ProjectDirectoryListingSchema, ProjectDirectoryPathSchema, ProjectDirectoryQuerySchema, ProjectFileNameSchema, ProjectFileReferencePathSchema, ProjectFileSearchEntrySchema, ProjectFileSearchPageSchema, ProjectFileSearchQuerySchema, ProjectFileSearchSessionIdSchema, ProjectFileTreeEntrySchema, ProjectFileTreeQuerySchema, ProjectFileTreeSchema, ProjectGitCommitFileDiffQuerySchema, ProjectGitCommitFileDiffSchema, ProjectGitCommitFileSchema, ProjectGitCommitFilesPageSchema, ProjectGitCommitFilesQuerySchema, ProjectGitCommitSchema, ProjectGitHistoryPageSchema, ProjectGitHistoryQuerySchema, ProjectGitMetadataChangedEventSchema, ProjectGitStatusQuerySchema, ProjectGitStatusSchema, ProjectGitWorktreePageSchema, ProjectGitWorktreeSchema, ProjectOpenAppIdSchema, ProjectOpenAppKindSchema, ProjectOpenAppSchema, ProjectOpenCapabilitiesResponseSchema, ProjectOpenPlatformSchema, ProjectPageSchema, ProjectRelativePathSchema, ProjectRootIdSchema, ProjectRootInputSchema, ProjectRootInputsSchema, ProjectRootPathSchema, ProjectRootQuerySchema, ProjectRootSchema, ProjectRootsSchema, ProjectSchema, ProjectSourceFileQuerySchema, ProjectSourceFileSchema, ProjectWorktreeMutationResponseSchema, ProviderErrorEventSchema, QueueChangedEventSchema, ReasoningDeltaEventSchema, ReloadAgentMcpServersRequestSchema, ReloadAgentMcpServersResponseSchema, RemoveProjectRequestSchema, RemoveProjectResponseSchema, RenameAgentTaskRequestSchema, RenameAgentTaskResponseSchema, RenameProjectFileRequestSchema, RenameProjectFileResponseSchema, RenameProjectRequestSchema, RenameProjectResponseSchema, ReorderAgentQueuedSubmissionsRequestSchema, ReorderAgentQueuedSubmissionsResponseSchema, ReorderProjectsRequestSchema, ReorderProjectsResponseSchema, ResolvePendingRequestRequestSchema, ResolvePendingRequestResponseSchema, ResyncRequiredSchema, ReviewAgentTaskRequestSchema, ReviewAgentTaskResponseSchema, ScheduledTaskInputSchema, ScheduledTaskMutationResponseSchema, ScheduledTaskPageSchema, ScheduledTaskRunSchema, ScheduledTaskRunStatusSchema, ScheduledTaskScheduleSchema, ScheduledTaskSchema, SetMcpServerEnabledResponseSchema, SetScheduledTaskEnabledRequestSchema, SetSkillEnabledResponseSchema, SkillInstallResultSchema, SkillInstallScopeSchema, SkillsChangedEventSchema, StartAgentQueuedSubmissionRequestSchema, StartAgentQueuedSubmissionResponseSchema, StartAgentTaskRequestSchema, StartAgentTaskResponseSchema, StartAgentTurnRequestSchema, StartAgentTurnResponseSchema, StartOfficialProviderLoginRequestSchema, StartOfficialProviderLoginResponseSchema, SteerAgentTurnRequestSchema, SteerAgentTurnResponseSchema, StopProjectFileSearchRequestSchema, StopProjectFileSearchResponseSchema, String, SwitchProjectBranchRequestSchema, SwitchProjectWorktreeRequestSchema, TEMPORARY_TASK_API_PATH, TEMPORARY_TASK_SCOPE_ID, TaskMetadataChangedEventSchema, TaskRemovedEventSchema, TaskStatusUpdatedEventSchema, TemplateLiteralGenerate, TerminateAgentBackgroundTerminalResponseSchema, TransformKind, TurnCompletedEventSchema, TurnStartedEventSchema, Type, TypeBoxError, TypeSystemPolicy, UnarchiveAgentTaskRequestSchema, UnarchiveAgentTaskResponseSchema, Union, Unknown, UnsubscribeAgentTaskResponseSchema, UpdateAgentGoalRequestSchema, UpdateAgentGoalResponseSchema, UpdateAgentQueuedSubmissionRequestSchema, UpdateAgentQueuedSubmissionResponseSchema, UploadAgentFeedbackRequestSchema, UploadAgentFeedbackResponseSchema, UsageUpdatedEventSchema, UserInputPendingRequestSchema, WorkbenchPetAnimationFrameSchema, WorkbenchPetAnimationSchema, WorkbenchPetCatalogResponseSchema, WorkbenchPetDescriptorSchema, WorkbenchPetDownloadRequestSchema, WorkbenchPetDownloadResponseSchema, WorkbenchPetFrameSchema, WorkbenchPetSettingsSchema, format_exports, isAgentFastModeAvailable, stripLeadingAgentSkillReferences, type_exports2 as type_exports };
5694
+ export { AGENT_FILE_ACCEPT, AGENT_FILE_EXTENSIONS, AGENT_FILE_MEDIA_TYPES, AGENT_IMAGE_ACCEPT, AccessModeSchema, AccessStatusResponseSchema, AddAgentQueuedSubmissionRequestSchema, AddAgentQueuedSubmissionResponseSchema, AddProjectRequestSchema, AddProjectResponseSchema, AgentActivityItemSchema, AgentApprovalReviewActionSchema, AgentApprovalReviewItemSchema, AgentApprovalReviewStatusSchema, AgentApprovalsReviewerSchema, AgentAttachmentKindSchema, AgentAttachmentMediaTypeSchema, AgentAttachmentSchema, AgentAttachmentUploadResponseSchema, AgentBackgroundTerminalPageSchema, AgentBackgroundTerminalSchema, AgentCapabilitiesSchema, AgentCommandItemSchema, AgentCommandOutputOmissionSchema, AgentContextUsageSchema, AgentEventSchema, AgentFileChangeItemSchema, AgentFileChangeSchema, AgentGlobalApprovalPolicySchema, AgentGlobalSettingsResponseSchema, AgentGlobalSettingsSchema, AgentGoalSchema, AgentGoalStatusSchema, AgentGranularApprovalConfigSchema, AgentGranularApprovalPolicySchema, AgentImageMediaTypeSchema, AgentItemSchema, AgentItemStatusSchema, AgentMcpServerConnectionStatusSchema, AgentMcpServerFailureReasonSchema, AgentMcpServerPageSchema, AgentMcpServerSchema, AgentMcpServerStartupStatusSchema, AgentMessageAttachmentSchema, AgentMessageItemSchema, AgentMessagePhaseSchema, AgentMessageSkillSchema, AgentModelPageSchema, AgentModelSchema, AgentMutationErrorCodeSchema, AgentMutationErrorSchema, AgentPlanItemSchema, AgentPlanSchema, AgentPlanStepSchema, AgentPlanStepStatusSchema, AgentProjectDefaultsResponseSchema, AgentProjectDefaultsSchema, AgentPromptInputSchema, AgentProviderAccountSchema, AgentProviderConnectionMutationResponseSchema, AgentProviderConnectionRecordSchema, AgentProviderConnectionStateSchema, AgentProviderConnectionStatusSchema, AgentProviderModeSchema, AgentProviderPendingLoginSchema, AgentQueuedSubmissionPageSchema, AgentQueuedSubmissionSchema, AgentQueuedSubmissionStatusSchema, AgentReasoningEffortOptionSchema, AgentReasoningItemSchema, AgentReviewItemSchema, AgentReviewTargetSchema, AgentSandboxModeSchema, AgentSkillPageSchema, AgentSkillReferenceSchema, AgentSkillSchema, AgentSkillScopeSchema, AgentTaskPageSchema, AgentTaskSchema, AgentTaskSettingsResponseSchema, AgentTaskSettingsSchema, AgentTaskSnapshotResponseSchema, AgentTaskSnapshotSchema, AgentToolItemSchema, AgentTurnApprovalPolicySchema, AgentTurnOptionsSchema, AgentTurnSchema, AgentTurnStatusSchema, AppInfoResponseSchema, AppUpdateProgressPhaseSchema, AppUpdateProgressResponseSchema, AppUpdateProgressSchema, AppUpdateStatusSchema, ArchiveAgentTaskRequestSchema, ArchiveAgentTaskResponseSchema, CancelProviderLoginRequestSchema, ClawhubSkillDetailSchema, ClawhubSkillPageSchema, ClawhubSkillSummarySchema, ClawhubSkillVersionSchema, ClearAgentGoalResponseSchema, CommandApprovalPendingRequestSchema, CommandOutputDeltaEventSchema, CommitProjectChangesRequestSchema, CommitProjectChangesResponseSchema, CompactAgentTaskRequestSchema, CompactAgentTaskResponseSchema, ConfigureCustomProviderRequestSchema, ConfigureCustomProviderResponseSchema, ConfiguredMcpServerPageSchema, ConfiguredMcpServerSchema, ConnectionReadySchema, CreateProjectBranchRequestSchema, CreateProjectWorktreeRequestSchema, DEFAULT_AGENT_GRANULAR_APPROVAL_POLICY, DEFAULT_COMMIT_MESSAGE_MODEL, DeleteAgentQueuedSubmissionResponseSchema, DeleteAgentTaskRequestSchema, DeleteAgentTaskResponseSchema, DeleteProjectFileRequestSchema, DeleteProjectFileResponseSchema, DeleteScheduledTaskResponseSchema, EventBatchSchema, EventCheckpointSchema, EventStreamMessageSchema, EventStreamMetricsResponseSchema, EventStreamProjectMetricsSchema, FileChangeApprovalPendingRequestSchema, FileChangeUpdatedEventSchema, FilesystemRootSchema, ForkAgentTaskRequestSchema, ForkAgentTaskResponseSchema, GenerateCommitMessageRequestSchema, GenerateCommitMessageResponseSchema, GoalClearedEventSchema, GoalUpdatedEventSchema, HasPropertyKey2 as HasPropertyKey, HealthResponseSchema, HostFileEntrySchema, HostFileKindSchema, HostFileListingSchema, HostFileQuerySchema, ImportHostAttachmentRequestSchema, IndexFromPropertyKeys, InstallAppUpdateRequestSchema, InstallAppUpdateResponseSchema, InstalledSkillPageSchema, InstalledSkillSchema, InterruptAgentTurnRequestSchema, InterruptAgentTurnResponseSchema, IsArray2 as IsArray, IsAsyncIterator2 as IsAsyncIterator, IsBigInt2 as IsBigInt, IsBoolean2 as IsBoolean, IsDate2 as IsDate, IsFunction2 as IsFunction, IsInteger, IsIterator2 as IsIterator, IsKind, IsMap, IsNull2 as IsNull, IsNumber2 as IsNumber, IsObject2 as IsObject, IsPromise, IsSchema, IsSet, IsStandardObject, IsString2 as IsString, IsSymbol2 as IsSymbol, IsTemplateLiteralFinite, IsTransform, IsTypedArray, IsUint8Array2 as IsUint8Array, IsUndefined2 as IsUndefined, IsUndefined3 as IsUndefined2, IsValueType, ItemCompletedEventSchema, ItemStartedEventSchema, KeyOfPattern, KeyOfPropertyKeys, Kind, Literal, LogoutAccessResponseSchema, MAX_AGENT_ATTACHMENT_BYTES, MAX_AGENT_FILE_BYTES, MAX_AGENT_FILE_TOTAL_BYTES, MAX_AGENT_HISTORY_IMAGES, MAX_AGENT_HISTORY_IMAGE_TOTAL_BYTES, MAX_AGENT_IMAGES, MAX_AGENT_IMAGE_BYTES, MAX_AGENT_IMAGE_TOTAL_BYTES, MAX_AGENT_TEXT_BYTES, MAX_EVENT_BATCH_SIZE, MAX_REALTIME_DIFF_BYTES, MAX_REALTIME_FILE_CHANGES, McpElicitationFieldSchema, McpElicitationOptionSchema, McpElicitationPendingRequestSchema, McpElicitationResolutionSchema, MessageDeltaEventSchema, Never, Object2 as Object, OfficialPluginAppSchema, OfficialPluginAssetSchema, OfficialPluginAuthPolicySchema, OfficialPluginDetailSchema, OfficialPluginInstallResultSchema, OfficialPluginPageSchema, OfficialPluginSummarySchema, OfficialPluginUninstallResultSchema, OpenAgentTaskAttachmentRequestSchema, OpenAgentTaskAttachmentResponseSchema, OpenProjectRequestSchema, OpenProjectResponseSchema, OpenSkillDirectoryResponseSchema, PairAccessRequestSchema, PairAccessResponseSchema, PendingApprovalDecisionSchema, PendingPermissionCategorySchema, PendingRequestCreatedEventSchema, PendingRequestExpiredEventSchema, PendingRequestResolvedEventSchema, PendingRequestSchema, PendingRequestStatusSchema, PendingUserInputOptionSchema, PendingUserInputQuestionSchema, PermissionApprovalPendingRequestSchema, PinAgentTaskRequestSchema, PinAgentTaskResponseSchema, PlanUpdatedEventSchema, ProjectDirectoryEntrySchema, ProjectDirectoryListingSchema, ProjectDirectoryPathSchema, ProjectDirectoryQuerySchema, ProjectFileNameSchema, ProjectFileReferencePathSchema, ProjectFileSearchEntrySchema, ProjectFileSearchPageSchema, ProjectFileSearchQuerySchema, ProjectFileSearchSessionIdSchema, ProjectFileTreeEntrySchema, ProjectFileTreeQuerySchema, ProjectFileTreeSchema, ProjectGitCommitFileDiffQuerySchema, ProjectGitCommitFileDiffSchema, ProjectGitCommitFileSchema, ProjectGitCommitFilesPageSchema, ProjectGitCommitFilesQuerySchema, ProjectGitCommitSchema, ProjectGitHistoryPageSchema, ProjectGitHistoryQuerySchema, ProjectGitMetadataChangedEventSchema, ProjectGitStatusQuerySchema, ProjectGitStatusSchema, ProjectGitWorktreePageSchema, ProjectGitWorktreeSchema, ProjectOpenAppIdSchema, ProjectOpenAppKindSchema, ProjectOpenAppSchema, ProjectOpenCapabilitiesResponseSchema, ProjectOpenPlatformSchema, ProjectPageSchema, ProjectRelativePathSchema, ProjectRootIdSchema, ProjectRootInputSchema, ProjectRootInputsSchema, ProjectRootPathSchema, ProjectRootQuerySchema, ProjectRootSchema, ProjectRootsSchema, ProjectSchema, ProjectSourceFileQuerySchema, ProjectSourceFileSchema, ProjectWorktreeMutationResponseSchema, ProviderErrorEventSchema, QueueChangedEventSchema, ReasoningDeltaEventSchema, ReloadAgentMcpServersRequestSchema, ReloadAgentMcpServersResponseSchema, RemoveProjectRequestSchema, RemoveProjectResponseSchema, RenameAgentTaskRequestSchema, RenameAgentTaskResponseSchema, RenameProjectFileRequestSchema, RenameProjectFileResponseSchema, RenameProjectRequestSchema, RenameProjectResponseSchema, ReorderAgentQueuedSubmissionsRequestSchema, ReorderAgentQueuedSubmissionsResponseSchema, ReorderProjectsRequestSchema, ReorderProjectsResponseSchema, ResolvePendingRequestRequestSchema, ResolvePendingRequestResponseSchema, ResyncRequiredSchema, ReviewAgentTaskRequestSchema, ReviewAgentTaskResponseSchema, ScheduledTaskInputSchema, ScheduledTaskMutationResponseSchema, ScheduledTaskPageSchema, ScheduledTaskRunSchema, ScheduledTaskRunStatusSchema, ScheduledTaskScheduleSchema, ScheduledTaskSchema, SetMcpServerEnabledResponseSchema, SetScheduledTaskEnabledRequestSchema, SetSkillEnabledResponseSchema, SkillInstallResultSchema, SkillInstallScopeSchema, SkillsChangedEventSchema, StartAgentQueuedSubmissionRequestSchema, StartAgentQueuedSubmissionResponseSchema, StartAgentTaskRequestSchema, StartAgentTaskResponseSchema, StartAgentTurnRequestSchema, StartAgentTurnResponseSchema, StartOfficialProviderLoginRequestSchema, StartOfficialProviderLoginResponseSchema, SteerAgentTurnRequestSchema, SteerAgentTurnResponseSchema, StopProjectFileSearchRequestSchema, StopProjectFileSearchResponseSchema, String, SwitchProjectBranchRequestSchema, SwitchProjectWorktreeRequestSchema, TEMPORARY_TASK_API_PATH, TEMPORARY_TASK_SCOPE_ID, TaskMetadataChangedEventSchema, TaskRemovedEventSchema, TaskStatusUpdatedEventSchema, TemplateLiteralGenerate, TerminateAgentBackgroundTerminalResponseSchema, TransformKind, TurnCompletedEventSchema, TurnStartedEventSchema, Type, TypeBoxError, TypeSystemPolicy, UnarchiveAgentTaskRequestSchema, UnarchiveAgentTaskResponseSchema, Union, Unknown, UnsubscribeAgentTaskResponseSchema, UpdateAgentGoalRequestSchema, UpdateAgentGoalResponseSchema, UpdateAgentQueuedSubmissionRequestSchema, UpdateAgentQueuedSubmissionResponseSchema, UploadAgentFeedbackRequestSchema, UploadAgentFeedbackResponseSchema, UsageUpdatedEventSchema, UserInputPendingRequestSchema, WorkbenchPetAnimationFrameSchema, WorkbenchPetAnimationSchema, WorkbenchPetCatalogResponseSchema, WorkbenchPetDescriptorSchema, WorkbenchPetDownloadRequestSchema, WorkbenchPetDownloadResponseSchema, WorkbenchPetFrameSchema, WorkbenchPetSettingsSchema, format_exports, isAgentFastModeAvailable, stripLeadingAgentSkillReferences, type_exports2 as type_exports };
@@ -1,5 +1,5 @@
1
1
  import { createRequire } from 'node:module';
2
- import { IsArray, IsDate, IsTypedArray, IsMap, IsSet, IsObject, IsValueType, TypeBoxError, Object as Object$1, Unknown, String, Literal, Union, IsBoolean, IsBigInt, IsNull, IsNumber, IsString, IsSymbol, IsUint8Array, IsUndefined, Kind, type_exports, IsStandardObject, TypeSystemPolicy, format_exports, IsPromise, IsIterator, KeyOfPattern, IsSchema, IsInteger, IsFunction, IsAsyncIterator, Never, HasPropertyKey, IsTemplateLiteralFinite, TemplateLiteralGenerate, IsKind, KeyOfPropertyKeys, IsTransform, TransformKind, IsUndefined2, IndexFromPropertyKeys } from './chunk-RGRRUTMD.js';
2
+ import { IsArray, IsDate, IsTypedArray, IsMap, IsSet, IsObject, IsValueType, TypeBoxError, Object as Object$1, Unknown, String, Literal, Union, IsBoolean, IsBigInt, IsNull, IsNumber, IsString, IsSymbol, IsUint8Array, IsUndefined, Kind, type_exports, IsStandardObject, TypeSystemPolicy, format_exports, IsPromise, IsIterator, KeyOfPattern, IsSchema, IsInteger, IsFunction, IsAsyncIterator, Never, HasPropertyKey, IsTemplateLiteralFinite, TemplateLiteralGenerate, IsKind, KeyOfPropertyKeys, IsTransform, TransformKind, IsUndefined2, IndexFromPropertyKeys } from './chunk-G4BIMVEW.js';
3
3
  import { __export } from './chunk-K6J42667.js';
4
4
 
5
5
  createRequire(import.meta.url);
@@ -1,6 +1,6 @@
1
1
  import { createRequire } from 'node:module';
2
2
  import { WorkbenchPetProviderError, PendingRequestResolutionError } from './chunk-RNTA4MFS.js';
3
- import { TEMPORARY_TASK_SCOPE_ID, MAX_AGENT_HISTORY_IMAGE_TOTAL_BYTES, isAgentFastModeAvailable, MAX_REALTIME_FILE_CHANGES, MAX_REALTIME_DIFF_BYTES, stripLeadingAgentSkillReferences, MAX_AGENT_HISTORY_IMAGES, MAX_AGENT_TEXT_BYTES } from './chunk-RGRRUTMD.js';
3
+ import { TEMPORARY_TASK_SCOPE_ID, MAX_AGENT_HISTORY_IMAGE_TOTAL_BYTES, isAgentFastModeAvailable, MAX_REALTIME_FILE_CHANGES, MAX_REALTIME_DIFF_BYTES, stripLeadingAgentSkillReferences, MAX_AGENT_HISTORY_IMAGES, MAX_AGENT_TEXT_BYTES } from './chunk-G4BIMVEW.js';
4
4
  import { __commonJS, __require, __toESM } from './chunk-K6J42667.js';
5
5
  import { execFile, spawn } from 'child_process';
6
6
  import { constants, mkdtempSync, rmSync, createReadStream, mkdirSync, unlinkSync, renameSync, writeFileSync, openSync, readSync, closeSync, statSync } from 'fs';
@@ -12045,6 +12045,151 @@ var CodexGitMetadataWatchService = class {
12045
12045
  };
12046
12046
 
12047
12047
  // packages/provider-codex/src/skill-market-provider.ts
12048
+ var OFFICIAL_MARKETPLACES = /* @__PURE__ */ new Set([
12049
+ "openai-curated",
12050
+ "openai-api-curated",
12051
+ "openai-curated-remote"
12052
+ ]);
12053
+ function nullableString(value) {
12054
+ return typeof value === "string" ? value : null;
12055
+ }
12056
+ function mapOfficialPluginSummary(value, marketplaceName, marketplacePath) {
12057
+ const plugin = expectRecord(value, "plugin summary");
12058
+ const name = expectString(plugin["name"], "plugin summary name");
12059
+ const view = plugin["interface"] === void 0 ? void 0 : expectRecord(plugin["interface"], "plugin summary interface");
12060
+ const authPolicy = expectString(plugin["authPolicy"], "plugin summary authPolicy");
12061
+ const installPolicy = expectString(plugin["installPolicy"], "plugin summary installPolicy");
12062
+ const availability = plugin["availability"] ?? "AVAILABLE";
12063
+ if (authPolicy !== "ON_INSTALL" && authPolicy !== "ON_USE") {
12064
+ throw new CodexProtocolMappingError("plugin summary authPolicy is invalid");
12065
+ }
12066
+ if (installPolicy !== "NOT_AVAILABLE" && installPolicy !== "AVAILABLE" && installPolicy !== "INSTALLED_BY_DEFAULT") {
12067
+ throw new CodexProtocolMappingError("plugin summary installPolicy is invalid");
12068
+ }
12069
+ if (availability !== "AVAILABLE" && availability !== "DISABLED_BY_ADMIN") {
12070
+ throw new CodexProtocolMappingError("plugin summary availability is invalid");
12071
+ }
12072
+ return {
12073
+ authPolicy,
12074
+ availability,
12075
+ description: typeof view?.["shortDescription"] === "string" ? view["shortDescription"] : "",
12076
+ developerName: nullableString(view?.["developerName"]),
12077
+ disabledReason: nullableString(plugin["disabledReason"]),
12078
+ displayName: typeof view?.["displayName"] === "string" ? view["displayName"] : name,
12079
+ enabled: typeof plugin["enabled"] === "boolean" ? plugin["enabled"] : false,
12080
+ id: expectString(plugin["id"], "plugin summary id"),
12081
+ installPolicy,
12082
+ installed: typeof plugin["installed"] === "boolean" ? plugin["installed"] : false,
12083
+ localVersion: nullableString(plugin["localVersion"]),
12084
+ logoUrl: nullableString(view?.["logoUrl"]),
12085
+ marketplaceName,
12086
+ marketplacePath,
12087
+ name,
12088
+ pluginName: typeof plugin["remotePluginId"] === "string" ? plugin["remotePluginId"] : name,
12089
+ version: nullableString(plugin["version"])
12090
+ };
12091
+ }
12092
+ function mapOfficialPluginApps(value) {
12093
+ if (!Array.isArray(value)) return [];
12094
+ return value.map((item) => {
12095
+ const app = expectRecord(item, "plugin app");
12096
+ return {
12097
+ description: typeof app["description"] === "string" ? app["description"] : "",
12098
+ id: expectString(app["id"], "plugin app id"),
12099
+ installUrl: nullableString(app["installUrl"]),
12100
+ name: expectString(app["name"], "plugin app name")
12101
+ };
12102
+ });
12103
+ }
12104
+ function remotePluginParams(marketplaceName, marketplacePath, pluginName) {
12105
+ return {
12106
+ marketplacePath,
12107
+ pluginName,
12108
+ remoteMarketplaceName: marketplacePath === null ? marketplaceName : null
12109
+ };
12110
+ }
12111
+ async function listCodexOfficialPlugins(client, projects, forceRefetch) {
12112
+ const response = expectRecord(
12113
+ await client.request("plugin/list", {
12114
+ cwds: projects.flatMap((project) => project.roots.map((root) => root.path)),
12115
+ forceRefetch,
12116
+ marketplaceKinds: null
12117
+ }),
12118
+ "plugin/list response"
12119
+ );
12120
+ if (!Array.isArray(response["marketplaces"])) {
12121
+ throw new CodexProtocolMappingError("plugin/list marketplaces must be an array");
12122
+ }
12123
+ const data = [];
12124
+ for (const value of response["marketplaces"]) {
12125
+ const marketplace = expectRecord(value, "plugin marketplace");
12126
+ const name = expectString(marketplace["name"], "plugin marketplace name");
12127
+ if (!OFFICIAL_MARKETPLACES.has(name)) continue;
12128
+ if (!Array.isArray(marketplace["plugins"])) {
12129
+ throw new CodexProtocolMappingError("plugin marketplace plugins must be an array");
12130
+ }
12131
+ const path = nullableString(marketplace["path"]);
12132
+ for (const plugin of marketplace["plugins"]) {
12133
+ data.push(mapOfficialPluginSummary(plugin, name, path));
12134
+ }
12135
+ }
12136
+ return { data };
12137
+ }
12138
+ async function getCodexOfficialPlugin(client, marketplaceName, marketplacePath, pluginName) {
12139
+ const response = expectRecord(
12140
+ await client.request(
12141
+ "plugin/read",
12142
+ remotePluginParams(marketplaceName, marketplacePath, pluginName)
12143
+ ),
12144
+ "plugin/read response"
12145
+ );
12146
+ const plugin = expectRecord(response["plugin"], "plugin/read plugin");
12147
+ const summaryValue = expectRecord(plugin["summary"], "plugin/read summary");
12148
+ const summary = mapOfficialPluginSummary(
12149
+ summaryValue,
12150
+ expectString(plugin["marketplaceName"], "plugin/read marketplaceName"),
12151
+ nullableString(plugin["marketplacePath"])
12152
+ );
12153
+ const skills = Array.isArray(plugin["skills"]) ? plugin["skills"].map((value) => {
12154
+ const skill = expectRecord(value, "plugin skill");
12155
+ return {
12156
+ description: typeof skill["shortDescription"] === "string" ? skill["shortDescription"] : typeof skill["description"] === "string" ? skill["description"] : "",
12157
+ name: expectString(skill["name"], "plugin skill name")
12158
+ };
12159
+ }) : [];
12160
+ const mcpServers = Array.isArray(plugin["mcpServers"]) ? plugin["mcpServers"].map((value) => expectString(value, "plugin MCP server")) : [];
12161
+ const hooks = Array.isArray(plugin["hooks"]) ? plugin["hooks"].map(
12162
+ (value) => expectString(expectRecord(value, "plugin hook")["key"], "plugin hook key")
12163
+ ) : [];
12164
+ const view = summaryValue["interface"] === void 0 ? void 0 : expectRecord(summaryValue["interface"], "plugin summary interface");
12165
+ return {
12166
+ ...summary,
12167
+ apps: mapOfficialPluginApps(plugin["apps"]),
12168
+ description: typeof plugin["description"] === "string" ? plugin["description"] : summary.description,
12169
+ hooks,
12170
+ mcpServers,
12171
+ skills,
12172
+ websiteUrl: nullableString(view?.["websiteUrl"])
12173
+ };
12174
+ }
12175
+ async function installCodexOfficialPlugin(client, marketplaceName, marketplacePath, pluginName, installAttemptId) {
12176
+ const response = expectRecord(
12177
+ await client.request("plugin/install", {
12178
+ installAttemptId,
12179
+ ...remotePluginParams(marketplaceName, marketplacePath, pluginName)
12180
+ }),
12181
+ "plugin/install response"
12182
+ );
12183
+ const authPolicy = expectString(response["authPolicy"], "plugin/install authPolicy");
12184
+ if (authPolicy !== "ON_INSTALL" && authPolicy !== "ON_USE") {
12185
+ throw new CodexProtocolMappingError("plugin/install authPolicy is invalid");
12186
+ }
12187
+ return { appsNeedingAuth: mapOfficialPluginApps(response["appsNeedingAuth"]), authPolicy };
12188
+ }
12189
+ async function uninstallCodexOfficialPlugin(client, pluginId) {
12190
+ await client.request("plugin/uninstall", { pluginId });
12191
+ return {};
12192
+ }
12048
12193
  async function listCodexInstalledSkills(client, projects, forceReload) {
12049
12194
  const roots = projects.flatMap(
12050
12195
  (project) => project.roots.map((root) => ({ path: root.path, project }))
@@ -12336,6 +12481,24 @@ var CodexRuntimeProvider = class {
12336
12481
  listInstalledSkills(projects, forceReload) {
12337
12482
  return listCodexInstalledSkills(this.#client, projects, forceReload);
12338
12483
  }
12484
+ listOfficialPlugins(projects, forceRefetch) {
12485
+ return listCodexOfficialPlugins(this.#client, projects, forceRefetch);
12486
+ }
12487
+ getOfficialPlugin(marketplaceName, marketplacePath, pluginName) {
12488
+ return getCodexOfficialPlugin(this.#client, marketplaceName, marketplacePath, pluginName);
12489
+ }
12490
+ installOfficialPlugin(marketplaceName, marketplacePath, pluginName, installAttemptId) {
12491
+ return installCodexOfficialPlugin(
12492
+ this.#client,
12493
+ marketplaceName,
12494
+ marketplacePath,
12495
+ pluginName,
12496
+ installAttemptId
12497
+ );
12498
+ }
12499
+ uninstallOfficialPlugin(pluginId) {
12500
+ return uninstallCodexOfficialPlugin(this.#client, pluginId);
12501
+ }
12339
12502
  logoutProvider() {
12340
12503
  return this.#providerConnection.logout();
12341
12504
  }
@@ -12420,7 +12583,7 @@ function createCodexRuntimeProvider(options) {
12420
12583
  ...options.fetch === void 0 ? {} : { fetch: options.fetch }
12421
12584
  });
12422
12585
  }
12423
- var APP_SERVER_ARGUMENTS = ["app-server", "--listen", "stdio://"];
12586
+ var APP_SERVER_ARGUMENTS = ["app-server", "--enable", "plugins", "--listen", "stdio://"];
12424
12587
  var CodexAppServerExitedError = class extends RpcConnectionClosedError {
12425
12588
  exitCode;
12426
12589
  signal;