@antelopejs/dms-ai 0.6.0 → 0.7.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 (330) hide show
  1. package/README.md +2 -2
  2. package/dist/builder/presence.js.map +1 -1
  3. package/dist/channels/bridge.js +4 -2
  4. package/dist/channels/bridge.js.map +1 -1
  5. package/dist/channels/sse-stream.d.ts +1 -1
  6. package/dist/config.d.ts +6 -1
  7. package/dist/config.js +9 -21
  8. package/dist/config.js.map +1 -1
  9. package/dist/constants/channels.d.ts +5 -1
  10. package/dist/constants/channels.js.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/lifecycle/build-id.js +1 -1
  14. package/dist/lifecycle/build-id.js.map +1 -1
  15. package/dist/lifecycle/module-roots.js +12 -14
  16. package/dist/lifecycle/module-roots.js.map +1 -1
  17. package/dist/lifecycle/sidecar-owner.js.map +1 -1
  18. package/dist/lifecycle/skill-sources.js +35 -22
  19. package/dist/lifecycle/skill-sources.js.map +1 -1
  20. package/dist/lifecycle/spawn-sidecar.js +11 -6
  21. package/dist/lifecycle/spawn-sidecar.js.map +1 -1
  22. package/dist/logging/log-buffer.js +6 -2
  23. package/dist/logging/log-buffer.js.map +1 -1
  24. package/dist/pages/activity/columns.d.ts +66 -2
  25. package/dist/pages/activity/columns.js.map +1 -1
  26. package/dist/pages/activity/page.js.map +1 -1
  27. package/dist/pages/index.js.map +1 -1
  28. package/dist/pages/overview/page.js.map +1 -1
  29. package/dist/pages/overview/recent-changes.js.map +1 -1
  30. package/dist/pages/settings/availability.d.ts +1 -1
  31. package/dist/pages/settings/availability.js +19 -5
  32. package/dist/pages/settings/availability.js.map +1 -1
  33. package/dist/pages/settings/page.js +1 -1
  34. package/dist/pages/settings/page.js.map +1 -1
  35. package/dist/pages/skills/page.js.map +1 -1
  36. package/dist/pages-registry.js +9 -10
  37. package/dist/pages-registry.js.map +1 -1
  38. package/dist/routes/activity.d.ts +5 -4
  39. package/dist/routes/activity.js.map +1 -1
  40. package/dist/routes/changes.d.ts +6 -4
  41. package/dist/routes/changes.js.map +1 -1
  42. package/dist/routes/codex-account.d.ts +5 -1
  43. package/dist/routes/codex-account.js +2 -2
  44. package/dist/routes/codex-account.js.map +1 -1
  45. package/dist/routes/database.d.ts +21 -4
  46. package/dist/routes/database.js.map +1 -1
  47. package/dist/routes/metric-shapes.js +8 -5
  48. package/dist/routes/metric-shapes.js.map +1 -1
  49. package/dist/routes/metrics.d.ts +4 -2
  50. package/dist/routes/metrics.js +2 -2
  51. package/dist/routes/metrics.js.map +1 -1
  52. package/dist/routes/pages-registry.js.map +1 -1
  53. package/dist/routes/settings.d.ts +4 -3
  54. package/dist/routes/settings.js +4 -15
  55. package/dist/routes/settings.js.map +1 -1
  56. package/dist/routes/sidecar-info.js.map +1 -1
  57. package/dist/routes/sidecar-results.d.ts +2 -2
  58. package/dist/routes/sidecar-results.js +10 -10
  59. package/dist/routes/sidecar-results.js.map +1 -1
  60. package/dist/routes/skills.d.ts +2 -1
  61. package/dist/routes/skills.js +6 -4
  62. package/dist/routes/skills.js.map +1 -1
  63. package/dist/routes/status-shapes.js +12 -12
  64. package/dist/routes/status-shapes.js.map +1 -1
  65. package/dist/routes/undo-confirm.js.map +1 -1
  66. package/dist/sidecar/http-client.js.map +1 -1
  67. package/dist/sidecar/index.d.ts +1 -0
  68. package/dist/sidecar/index.js +1 -0
  69. package/dist/sidecar/index.js.map +1 -1
  70. package/dist/sidecar/settings-values.d.ts +3 -0
  71. package/dist/sidecar/settings-values.js +21 -0
  72. package/dist/sidecar/settings-values.js.map +1 -0
  73. package/dist/vocabulary/tools.js.map +1 -1
  74. package/frontend-vue/app/chat/components/ChatView.vue +33 -133
  75. package/frontend-vue/app/chat/components/ProviderNotice.vue +77 -0
  76. package/frontend-vue/app/chat/components/UndoConflictModal.vue +98 -0
  77. package/frontend-vue/app/chat/composables/useChangeSetActions.ts +1 -1
  78. package/frontend-vue/app/plugins/ai.client.ts +10 -2
  79. package/frontend-vue/app/runtime/assistant-actions.ts +41 -0
  80. package/frontend-vue/app/runtime/assistant-session.ts +8 -2
  81. package/frontend-vue/app/runtime/panel-intents.ts +3 -1
  82. package/frontend-vue/build/backend-boundary.ts +89 -0
  83. package/frontend-vue/dms.frontend.build.ts +6 -0
  84. package/frontend-vue/package.json +2 -1
  85. package/frontend-vue/pnpm-lock.yaml +3 -0
  86. package/frontend-vue/tests/assistant-actions.test.ts +72 -0
  87. package/frontend-vue/tests/backend-boundary.test.ts +130 -0
  88. package/frontend-vue/tests/panel-approvals.test.ts +190 -0
  89. package/frontend-vue/tests/panel-questions.test.ts +169 -0
  90. package/frontend-vue/tests/panel-states.test.ts +1 -556
  91. package/frontend-vue/tests/panel-tools.test.ts +165 -0
  92. package/frontend-vue/tests/sidecar-guest.test.ts +39 -71
  93. package/frontend-vue/tests/support/panel-fixtures.ts +110 -0
  94. package/frontend-vue/tests/support/panel-harness.ts +2 -2
  95. package/frontend-vue/vitest.config.ts +2 -1
  96. package/package.json +21 -10
  97. package/sidecar/dist/agent/attachment-files.js.map +1 -1
  98. package/sidecar/dist/agent/call-ledger.d.ts +3 -2
  99. package/sidecar/dist/agent/call-ledger.js +1 -1
  100. package/sidecar/dist/agent/call-ledger.js.map +1 -1
  101. package/sidecar/dist/agent/command-analysis.js +13 -14
  102. package/sidecar/dist/agent/command-analysis.js.map +1 -1
  103. package/sidecar/dist/agent/conversation-modes.js.map +1 -1
  104. package/sidecar/dist/agent/edit-targets.d.ts +5 -1
  105. package/sidecar/dist/agent/edit-targets.js +8 -6
  106. package/sidecar/dist/agent/edit-targets.js.map +1 -1
  107. package/sidecar/dist/agent/edit-tracker.d.ts +2 -1
  108. package/sidecar/dist/agent/edit-tracker.js +3 -4
  109. package/sidecar/dist/agent/edit-tracker.js.map +1 -1
  110. package/sidecar/dist/agent/effective-mode.js.map +1 -1
  111. package/sidecar/dist/agent/line-diff.js +10 -8
  112. package/sidecar/dist/agent/line-diff.js.map +1 -1
  113. package/sidecar/dist/agent/permission-bus.js +2 -1
  114. package/sidecar/dist/agent/permission-bus.js.map +1 -1
  115. package/sidecar/dist/agent/permission-preview.d.ts +1 -1
  116. package/sidecar/dist/agent/permission-preview.js +54 -37
  117. package/sidecar/dist/agent/permission-preview.js.map +1 -1
  118. package/sidecar/dist/agent/permission-rules.js +4 -6
  119. package/sidecar/dist/agent/permission-rules.js.map +1 -1
  120. package/sidecar/dist/agent/provider.d.ts +2 -1
  121. package/sidecar/dist/agent/question-bus.js.map +1 -1
  122. package/sidecar/dist/agent/read-access.d.ts +2 -1
  123. package/sidecar/dist/agent/read-access.js +4 -7
  124. package/sidecar/dist/agent/read-access.js.map +1 -1
  125. package/sidecar/dist/agent/runner.js.map +1 -1
  126. package/sidecar/dist/agent/session.js +2 -6
  127. package/sidecar/dist/agent/session.js.map +1 -1
  128. package/sidecar/dist/agent/switching-runner.js.map +1 -1
  129. package/sidecar/dist/agent/system-prompt.js.map +1 -1
  130. package/sidecar/dist/agent/tool-summary.d.ts +2 -1
  131. package/sidecar/dist/agent/tool-summary.js +26 -13
  132. package/sidecar/dist/agent/tool-summary.js.map +1 -1
  133. package/sidecar/dist/agent/typecheck.d.ts +1 -4
  134. package/sidecar/dist/agent/typecheck.js +3 -2
  135. package/sidecar/dist/agent/typecheck.js.map +1 -1
  136. package/sidecar/dist/audit/activity-query.js +4 -8
  137. package/sidecar/dist/audit/activity-query.js.map +1 -1
  138. package/sidecar/dist/audit/activity-target.d.ts +4 -2
  139. package/sidecar/dist/audit/activity-target.js +10 -9
  140. package/sidecar/dist/audit/activity-target.js.map +1 -1
  141. package/sidecar/dist/audit/activity.js +4 -3
  142. package/sidecar/dist/audit/activity.js.map +1 -1
  143. package/sidecar/dist/audit/call-audit.js.map +1 -1
  144. package/sidecar/dist/builder/builder-client.d.ts +2 -1
  145. package/sidecar/dist/builder/builder-client.js +6 -8
  146. package/sidecar/dist/builder/builder-client.js.map +1 -1
  147. package/sidecar/dist/builder/capability.js.map +1 -1
  148. package/sidecar/dist/checkpoints/checkpoints.js.map +1 -1
  149. package/sidecar/dist/checkpoints/shadow-git.js +6 -2
  150. package/sidecar/dist/checkpoints/shadow-git.js.map +1 -1
  151. package/sidecar/dist/constants/agent.js.map +1 -1
  152. package/sidecar/dist/constants/attachments.js.map +1 -1
  153. package/sidecar/dist/constants/builder.js.map +1 -1
  154. package/sidecar/dist/constants/chatgpt.js.map +1 -1
  155. package/sidecar/dist/constants/checkpoints.d.ts +1 -1
  156. package/sidecar/dist/constants/checkpoints.js +6 -6
  157. package/sidecar/dist/constants/checkpoints.js.map +1 -1
  158. package/sidecar/dist/constants/claude.d.ts +3 -4
  159. package/sidecar/dist/constants/claude.js +16 -16
  160. package/sidecar/dist/constants/claude.js.map +1 -1
  161. package/sidecar/dist/constants/cli.js.map +1 -1
  162. package/sidecar/dist/constants/codex.d.ts +4 -5
  163. package/sidecar/dist/constants/codex.js +25 -25
  164. package/sidecar/dist/constants/codex.js.map +1 -1
  165. package/sidecar/dist/constants/database.js.map +1 -1
  166. package/sidecar/dist/constants/mcp.js.map +1 -1
  167. package/sidecar/dist/constants/paths.js.map +1 -1
  168. package/sidecar/dist/constants/project.d.ts +1 -1
  169. package/sidecar/dist/constants/project.js.map +1 -1
  170. package/sidecar/dist/constants/providers.js.map +1 -1
  171. package/sidecar/dist/constants/questions.js.map +1 -1
  172. package/sidecar/dist/constants/read-access.d.ts +1 -1
  173. package/sidecar/dist/constants/read-access.js +7 -7
  174. package/sidecar/dist/constants/read-access.js.map +1 -1
  175. package/sidecar/dist/constants/timing.js.map +1 -1
  176. package/sidecar/dist/database/database-client.d.ts +3 -2
  177. package/sidecar/dist/database/database-client.js +13 -9
  178. package/sidecar/dist/database/database-client.js.map +1 -1
  179. package/sidecar/dist/host/project-info.js +13 -7
  180. package/sidecar/dist/host/project-info.js.map +1 -1
  181. package/sidecar/dist/index.d.ts +1 -1
  182. package/sidecar/dist/index.js +60 -34
  183. package/sidecar/dist/index.js.map +1 -1
  184. package/sidecar/dist/logs/logs-client.js +12 -2
  185. package/sidecar/dist/logs/logs-client.js.map +1 -1
  186. package/sidecar/dist/mcp/define-tool.d.ts +9 -8
  187. package/sidecar/dist/mcp/define-tool.js.map +1 -1
  188. package/sidecar/dist/mcp/http-binding.js.map +1 -1
  189. package/sidecar/dist/mcp/tools/ask-user.js.map +1 -1
  190. package/sidecar/dist/mcp/tools/builder-catalog.d.ts +6 -1
  191. package/sidecar/dist/mcp/tools/builder-catalog.js +32 -24
  192. package/sidecar/dist/mcp/tools/builder-catalog.js.map +1 -1
  193. package/sidecar/dist/mcp/tools/builder-gate.js.map +1 -1
  194. package/sidecar/dist/mcp/tools/builder-project.d.ts +2 -1
  195. package/sidecar/dist/mcp/tools/builder-project.js +60 -43
  196. package/sidecar/dist/mcp/tools/builder-project.js.map +1 -1
  197. package/sidecar/dist/mcp/tools/builder.js +8 -9
  198. package/sidecar/dist/mcp/tools/builder.js.map +1 -1
  199. package/sidecar/dist/mcp/tools/database.js +5 -9
  200. package/sidecar/dist/mcp/tools/database.js.map +1 -1
  201. package/sidecar/dist/mcp/tools/find-pages-using.js.map +1 -1
  202. package/sidecar/dist/mcp/tools/get-current-page.js.map +1 -1
  203. package/sidecar/dist/mcp/tools/list-pages.js.map +1 -1
  204. package/sidecar/dist/mcp/tools/navigate-to-page.js +6 -6
  205. package/sidecar/dist/mcp/tools/navigate-to-page.js.map +1 -1
  206. package/sidecar/dist/mcp/tools/preview-blocks.js +15 -11
  207. package/sidecar/dist/mcp/tools/preview-blocks.js.map +1 -1
  208. package/sidecar/dist/mcp/tools/query-logs.js.map +1 -1
  209. package/sidecar/dist/mcp/tools/typecheck.js.map +1 -1
  210. package/sidecar/dist/metrics/aggregate.js.map +1 -1
  211. package/sidecar/dist/metrics/types.js.map +1 -1
  212. package/sidecar/dist/pages/registry-client.js +14 -5
  213. package/sidecar/dist/pages/registry-client.js.map +1 -1
  214. package/sidecar/dist/pages/route-match.js.map +1 -1
  215. package/sidecar/dist/protocol/events.d.ts +7 -7
  216. package/sidecar/dist/protocol/events.js.map +1 -1
  217. package/sidecar/dist/protocol/json.d.ts +5 -0
  218. package/sidecar/dist/protocol/json.js +3 -0
  219. package/sidecar/dist/protocol/json.js.map +1 -0
  220. package/sidecar/dist/protocol/messages.d.ts +4 -4
  221. package/sidecar/dist/protocol/messages.js +3 -3
  222. package/sidecar/dist/protocol/messages.js.map +1 -1
  223. package/sidecar/dist/providers/claude/activity.d.ts +4 -2
  224. package/sidecar/dist/providers/claude/activity.js +29 -38
  225. package/sidecar/dist/providers/claude/activity.js.map +1 -1
  226. package/sidecar/dist/providers/claude/adapter.js +62 -91
  227. package/sidecar/dist/providers/claude/adapter.js.map +1 -1
  228. package/sidecar/dist/providers/claude/attachments.js +4 -4
  229. package/sidecar/dist/providers/claude/attachments.js.map +1 -1
  230. package/sidecar/dist/providers/claude/config.js.map +1 -1
  231. package/sidecar/dist/providers/claude/module.js.map +1 -1
  232. package/sidecar/dist/providers/claude/provider.d.ts +4 -2
  233. package/sidecar/dist/providers/claude/provider.js.map +1 -1
  234. package/sidecar/dist/providers/claude/resolve-binary.js +6 -4
  235. package/sidecar/dist/providers/claude/resolve-binary.js.map +1 -1
  236. package/sidecar/dist/providers/claude/safe-mode.js +14 -3
  237. package/sidecar/dist/providers/claude/safe-mode.js.map +1 -1
  238. package/sidecar/dist/providers/codex/adapter.js +124 -46
  239. package/sidecar/dist/providers/codex/adapter.js.map +1 -1
  240. package/sidecar/dist/providers/codex/attachments.js +1 -1
  241. package/sidecar/dist/providers/codex/attachments.js.map +1 -1
  242. package/sidecar/dist/providers/codex/chatgpt/credentials.js.map +1 -1
  243. package/sidecar/dist/providers/codex/chatgpt/http.js +8 -5
  244. package/sidecar/dist/providers/codex/chatgpt/http.js.map +1 -1
  245. package/sidecar/dist/providers/codex/chatgpt/lock.js +3 -3
  246. package/sidecar/dist/providers/codex/chatgpt/lock.js.map +1 -1
  247. package/sidecar/dist/providers/codex/chatgpt/login.js.map +1 -1
  248. package/sidecar/dist/providers/codex/chatgpt/oauth.js +51 -8
  249. package/sidecar/dist/providers/codex/chatgpt/oauth.js.map +1 -1
  250. package/sidecar/dist/providers/codex/chatgpt/store.js +23 -23
  251. package/sidecar/dist/providers/codex/chatgpt/store.js.map +1 -1
  252. package/sidecar/dist/providers/codex/client.d.ts +4 -3
  253. package/sidecar/dist/providers/codex/client.js +10 -3
  254. package/sidecar/dist/providers/codex/client.js.map +1 -1
  255. package/sidecar/dist/providers/codex/config.js.map +1 -1
  256. package/sidecar/dist/providers/codex/module.js.map +1 -1
  257. package/sidecar/dist/providers/codex/permissions.d.ts +2 -2
  258. package/sidecar/dist/providers/codex/permissions.js +20 -6
  259. package/sidecar/dist/providers/codex/permissions.js.map +1 -1
  260. package/sidecar/dist/providers/codex/process.d.ts +3 -1
  261. package/sidecar/dist/providers/codex/process.js +35 -36
  262. package/sidecar/dist/providers/codex/process.js.map +1 -1
  263. package/sidecar/dist/providers/codex/provider.d.ts +2 -0
  264. package/sidecar/dist/providers/codex/provider.js +23 -7
  265. package/sidecar/dist/providers/codex/provider.js.map +1 -1
  266. package/sidecar/dist/providers/codex/resolve-binary.js +2 -2
  267. package/sidecar/dist/providers/codex/resolve-binary.js.map +1 -1
  268. package/sidecar/dist/providers/codex/stop.d.ts +6 -1
  269. package/sidecar/dist/providers/codex/stop.js +29 -22
  270. package/sidecar/dist/providers/codex/stop.js.map +1 -1
  271. package/sidecar/dist/providers/registry.js +4 -5
  272. package/sidecar/dist/providers/registry.js.map +1 -1
  273. package/sidecar/dist/server/chat-socket-registry.d.ts +6 -6
  274. package/sidecar/dist/server/chat-socket-registry.js.map +1 -1
  275. package/sidecar/dist/server/conversation-runs.d.ts +1 -1
  276. package/sidecar/dist/server/conversation-runs.js +4 -5
  277. package/sidecar/dist/server/conversation-runs.js.map +1 -1
  278. package/sidecar/dist/server/host-socket-registry.d.ts +4 -3
  279. package/sidecar/dist/server/host-socket-registry.js.map +1 -1
  280. package/sidecar/dist/server/http-io.d.ts +1 -1
  281. package/sidecar/dist/server/http-io.js +2 -3
  282. package/sidecar/dist/server/http-io.js.map +1 -1
  283. package/sidecar/dist/server/http-params.js.map +1 -1
  284. package/sidecar/dist/server/http-routes.d.ts +9 -2
  285. package/sidecar/dist/server/http-routes.js +15 -8
  286. package/sidecar/dist/server/http-routes.js.map +1 -1
  287. package/sidecar/dist/server/http.js +21 -10
  288. package/sidecar/dist/server/http.js.map +1 -1
  289. package/sidecar/dist/server/pending-queue.js +4 -1
  290. package/sidecar/dist/server/pending-queue.js.map +1 -1
  291. package/sidecar/dist/server/raw-data.js +2 -1
  292. package/sidecar/dist/server/raw-data.js.map +1 -1
  293. package/sidecar/dist/server/routing.js +1 -1
  294. package/sidecar/dist/server/routing.js.map +1 -1
  295. package/sidecar/dist/server/safety-net.js +20 -9
  296. package/sidecar/dist/server/safety-net.js.map +1 -1
  297. package/sidecar/dist/server/tool-calls.js +7 -5
  298. package/sidecar/dist/server/tool-calls.js.map +1 -1
  299. package/sidecar/dist/server/turns.js +2 -1
  300. package/sidecar/dist/server/turns.js.map +1 -1
  301. package/sidecar/dist/server/ws.js +2 -6
  302. package/sidecar/dist/server/ws.js.map +1 -1
  303. package/sidecar/dist/skills/build-catalog.js.map +1 -1
  304. package/sidecar/dist/skills/frontmatter.js.map +1 -1
  305. package/sidecar/dist/skills/plugin-wrapper.js.map +1 -1
  306. package/sidecar/dist/skills/resolve-sources.js.map +1 -1
  307. package/sidecar/dist/skills/skill-usage.js +18 -12
  308. package/sidecar/dist/skills/skill-usage.js.map +1 -1
  309. package/sidecar/dist/state/conversations.js.map +1 -1
  310. package/sidecar/dist/state/lock.js +6 -2
  311. package/sidecar/dist/state/lock.js.map +1 -1
  312. package/sidecar/dist/state/settings-store.d.ts +31 -1
  313. package/sidecar/dist/state/settings-store.js +23 -24
  314. package/sidecar/dist/state/settings-store.js.map +1 -1
  315. package/sidecar/dist/state/settings-types.js.map +1 -1
  316. package/sidecar/dist/state/sidecar-version.js +3 -1
  317. package/sidecar/dist/state/sidecar-version.js.map +1 -1
  318. package/sidecar/dist/state/store.js +1 -1
  319. package/sidecar/dist/state/store.js.map +1 -1
  320. package/sidecar/dist/state/types.js.map +1 -1
  321. package/sidecar/package.json +1 -7
  322. package/skills/dms-ai/cases.json +47 -0
  323. package/skills/dms-ai-code-mode/cases.json +38 -0
  324. package/skills/dms-builder-safe/cases.json +67 -0
  325. package/skills/dms-external-database/REFERENCE.md +34 -9
  326. package/skills/dms-external-database/SKILL.md +24 -11
  327. package/skills/dms-external-database/cases.json +47 -0
  328. package/frontend-vue/tests/i18n-panel.test.ts +0 -118
  329. package/frontend-vue/tests/i18n-views.test.ts +0 -63
  330. package/frontend-vue/tests/panel-header-height.test.ts +0 -40
@@ -1,4 +1,5 @@
1
- import { createHash, createPublicKey, randomBytes, verify, } from "node:crypto";
1
+ import { createHash, createPublicKey, randomBytes, verify } from "node:crypto";
2
+ import { z } from "zod";
2
3
  import { CHATGPT_AGENT_NAME_HINT, CHATGPT_AUTHORIZE_URL, CHATGPT_DYNAMIC_CLIENT_ID, CHATGPT_HTTP_TIMEOUT_MS, CHATGPT_ID_TOKEN_LEEWAY_S, CHATGPT_ISSUER, CHATGPT_JWKS_URL, CHATGPT_RANDOM_BYTES, CHATGPT_RESOURCE, CHATGPT_REVOKE_URL, CHATGPT_SCOPES, CHATGPT_TERMINAL_REFRESH_ERRORS, CHATGPT_TOKEN_URL, } from "../../../constants/chatgpt.js";
3
4
  const FORM_CONTENT_TYPE = "application/x-www-form-urlencoded";
4
5
  const MS_PER_SECOND = 1000;
@@ -45,6 +46,16 @@ export function buildAuthorizeUrl(params) {
45
46
  query.set("login_hint", params.loginHint);
46
47
  return url.toString();
47
48
  }
49
+ const optionalString = z.string().optional().catch(undefined);
50
+ const tokenResponseBodySchema = z.object({
51
+ access_token: optionalString,
52
+ refresh_token: optionalString,
53
+ id_token: optionalString,
54
+ expires_in: z.number().optional().catch(undefined),
55
+ scope: optionalString,
56
+ error: optionalString,
57
+ error_description: optionalString,
58
+ });
48
59
  async function postForm(url, fields) {
49
60
  return fetch(url, {
50
61
  method: "POST",
@@ -55,7 +66,7 @@ async function postForm(url, fields) {
55
66
  }
56
67
  async function readJson(response) {
57
68
  try {
58
- return (await response.json());
69
+ return tokenResponseBodySchema.parse(await response.json());
59
70
  }
60
71
  catch {
61
72
  return {};
@@ -118,10 +129,42 @@ export async function revokeRefreshToken(clientId, refreshToken) {
118
129
  return false;
119
130
  }
120
131
  }
121
- function decodeSegment(segment) {
132
+ const jwtHeaderSchema = z.object({
133
+ alg: optionalString,
134
+ kid: optionalString,
135
+ });
136
+ const rawIdTokenClaimsSchema = z.object({
137
+ iss: optionalString,
138
+ aud: z
139
+ .union([z.string(), z.array(z.string())])
140
+ .optional()
141
+ .catch(undefined),
142
+ exp: z.number().optional().catch(undefined),
143
+ nonce: optionalString,
144
+ sub: optionalString,
145
+ email: optionalString,
146
+ });
147
+ const jwkSchema = z.looseObject({
148
+ kid: optionalString,
149
+ kty: optionalString,
150
+ crv: optionalString,
151
+ d: optionalString,
152
+ dp: optionalString,
153
+ dq: optionalString,
154
+ e: optionalString,
155
+ k: optionalString,
156
+ n: optionalString,
157
+ p: optionalString,
158
+ q: optionalString,
159
+ qi: optionalString,
160
+ x: optionalString,
161
+ y: optionalString,
162
+ });
163
+ const jwksSchema = z.object({ keys: z.array(jwkSchema).optional() });
164
+ function decodeSegment(segment, schema) {
122
165
  if (segment === undefined)
123
166
  throw new Error("malformed ID token");
124
- return JSON.parse(Buffer.from(segment, "base64url").toString("utf8"));
167
+ return schema.parse(JSON.parse(Buffer.from(segment, "base64url").toString("utf8")));
125
168
  }
126
169
  async function fetchSigningKey(kid) {
127
170
  const response = await fetch(CHATGPT_JWKS_URL, {
@@ -129,8 +172,8 @@ async function fetchSigningKey(kid) {
129
172
  });
130
173
  if (!response.ok)
131
174
  throw new Error(`JWKS answered ${response.status}`);
132
- const jwks = (await response.json());
133
- const key = jwks.keys?.find((candidate) => candidate.kid === kid);
175
+ const jwks = jwksSchema.safeParse(await response.json());
176
+ const key = jwks.data?.keys?.find((candidate) => candidate.kid === kid);
134
177
  if (key === undefined)
135
178
  throw new Error("ID token signed by an unknown key");
136
179
  return key;
@@ -140,7 +183,7 @@ function hasAudience(aud, clientId) {
140
183
  }
141
184
  export async function validateIdToken(idToken, expected) {
142
185
  const [encodedHeader, encodedClaims, encodedSignature] = idToken.split(".");
143
- const header = decodeSegment(encodedHeader);
186
+ const header = decodeSegment(encodedHeader, jwtHeaderSchema);
144
187
  if (header.alg !== ID_TOKEN_ALGORITHM) {
145
188
  throw new Error(`ID token uses ${String(header.alg)}`);
146
189
  }
@@ -148,7 +191,7 @@ export async function validateIdToken(idToken, expected) {
148
191
  const isSigned = verify(RSA_SHA256, Buffer.from(`${encodedHeader}.${encodedClaims}`), createPublicKey({ key, format: "jwk" }), Buffer.from(encodedSignature ?? "", "base64url"));
149
192
  if (!isSigned)
150
193
  throw new Error("ID token signature does not verify");
151
- const claims = decodeSegment(encodedClaims);
194
+ const claims = decodeSegment(encodedClaims, rawIdTokenClaimsSchema);
152
195
  const now = Date.now() / MS_PER_SECOND;
153
196
  if (claims.iss !== CHATGPT_ISSUER)
154
197
  throw new Error("ID token issuer");
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../src/providers/codex/chatgpt/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../src/providers/codex/chatgpt/oauth.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { readFileSync } from "node:fs";
3
3
  import { chmod, mkdir, rename, writeFile } from "node:fs/promises";
4
4
  import os from "node:os";
5
5
  import path from "node:path";
6
+ import { z } from "zod";
6
7
  import { APPDATA_ENV, CHATGPT_AUTH_FILE_MODE, CHATGPT_AUTH_FILE_NAME, CHATGPT_CONFIG_DIR_MODE, CHATGPT_CONFIG_DIR_NAME, POSIX_CONFIG_DIR, XDG_CONFIG_HOME_ENV, } from "../../../constants/chatgpt.js";
7
8
  import { WINDOWS_PLATFORM } from "../../../constants/codex.js";
8
9
  export function chatGptConfigDir() {
@@ -19,31 +20,30 @@ export function chatGptConfigDir() {
19
20
  export function chatGptAuthFile() {
20
21
  return path.join(chatGptConfigDir(), CHATGPT_AUTH_FILE_NAME);
21
22
  }
22
- function isTokens(value) {
23
- if (value === null || typeof value !== "object")
24
- return false;
25
- const tokens = value;
26
- return (typeof tokens.accessToken === "string" &&
27
- typeof tokens.refreshToken === "string" &&
28
- typeof tokens.idToken === "string" &&
29
- typeof tokens.expiresAt === "number" &&
30
- Array.isArray(tokens.scopes));
31
- }
32
- function toRecord(value) {
33
- if (value === null || typeof value !== "object")
34
- return undefined;
35
- const record = value;
36
- if (typeof record.hostId !== "string" || record.hostId === "")
37
- return undefined;
38
- return {
39
- ...record,
40
- hostId: record.hostId,
41
- tokens: isTokens(record.tokens) ? record.tokens : undefined,
42
- };
43
- }
23
+ const tokensSchema = z.looseObject({
24
+ accessToken: z.string(),
25
+ refreshToken: z.string(),
26
+ idToken: z.string(),
27
+ expiresAt: z.number(),
28
+ scopes: z.array(z.string()),
29
+ });
30
+ const authRecordSchema = z.looseObject({
31
+ hostId: z.string().min(1),
32
+ clientId: z.string().optional().catch(undefined),
33
+ subject: z.string().optional().catch(undefined),
34
+ email: z.string().optional().catch(undefined),
35
+ savedAt: z.string().optional().catch(undefined),
36
+ tokens: z.unknown().optional(),
37
+ });
44
38
  export function readAuthRecord() {
45
39
  try {
46
- return toRecord(JSON.parse(readFileSync(chatGptAuthFile(), "utf8")));
40
+ const record = authRecordSchema.safeParse(JSON.parse(readFileSync(chatGptAuthFile(), "utf8")));
41
+ if (!record.success)
42
+ return undefined;
43
+ return {
44
+ ...record.data,
45
+ tokens: tokensSchema.safeParse(record.data.tokens).data,
46
+ };
47
47
  }
48
48
  catch {
49
49
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/providers/codex/chatgpt/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/providers/codex/chatgpt/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AA2B/D,MAAM,UAAU,gBAAgB;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,QAAQ,KAAK,gBAAgB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC7C,MAAM,IAAI,GACR,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAC7B,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,sBAAsB,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC;IACrC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC/C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAMH,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CACvC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,CAAC,CACpD,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QACtC,OAAO;YACL,GAAG,MAAM,CAAC,IAAI;YACd,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI;SACxD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAGD,MAAM,UAAU,sBAAsB;IACpC,OAAO,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,UAAU,EAAE,EAAE,EAAE,CAAC;AACpE,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAyB;IAEzB,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC9B,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,uBAAuB;KAC9B,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,MAAM,CAAC;IAC/D,MAAM,KAAK,GAAsB;QAC/B,GAAG,MAAM;QACT,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAClC,CAAC;IACF,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QACzD,IAAI,EAAE,sBAAsB;KAC7B,CAAC,CAAC;IACH,MAAM,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAGD,MAAM,UAAU,UAAU,CAAC,MAAqC;IAC9D,OAAO,MAAM,EAAE,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC;AACvE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { Readable, Writable } from "node:stream";
2
+ import type { JsonValue } from "./protocol/serde_json.js";
2
3
  export interface CodexNotification {
3
4
  method: string;
4
5
  params: unknown;
@@ -10,15 +11,15 @@ export interface CodexServerRequest {
10
11
  }
11
12
  export interface CodexClientHandlers {
12
13
  onNotification: (notification: CodexNotification) => void;
13
- onServerRequest: (request: CodexServerRequest) => Promise<unknown>;
14
+ onServerRequest: (request: CodexServerRequest) => Promise<JsonValue>;
14
15
  onAbort?: (reason: Error) => void;
15
16
  }
16
17
  export interface CodexRequestOptions {
17
18
  timeoutMs?: number;
18
19
  }
19
20
  export interface CodexClient {
20
- request<T>(method: string, params?: unknown, options?: CodexRequestOptions): Promise<T>;
21
- notify(method: string, params?: unknown): void;
21
+ request<T>(method: string, params?: JsonValue, options?: CodexRequestOptions): Promise<T>;
22
+ notify(method: string, params?: JsonValue): void;
22
23
  abort(reason: Error): void;
23
24
  }
24
25
  export declare function createCodexClient(stdin: Writable, stdout: Readable, handlers: CodexClientHandlers): CodexClient;
@@ -1,4 +1,12 @@
1
+ import { z } from "zod";
1
2
  import { CODEX_REQUEST_TIMEOUT_MESSAGE, CODEX_TRANSPORT_CLOSED_MESSAGE, JSONRPC_LINE_SEPARATOR, JSONRPC_VERSION, } from "../../constants/codex.js";
3
+ const jsonRpcFrameSchema = z.object({
4
+ id: z.union([z.number(), z.string()]).optional(),
5
+ method: z.string().optional(),
6
+ params: z.unknown().optional(),
7
+ result: z.unknown().optional(),
8
+ error: z.object({ code: z.number(), message: z.string() }).optional(),
9
+ });
2
10
  function isServerRequest(frame) {
3
11
  return frame.id !== undefined && frame.method !== undefined;
4
12
  }
@@ -7,8 +15,7 @@ function isResponse(frame) {
7
15
  }
8
16
  function parseFrame(line) {
9
17
  try {
10
- const parsed = JSON.parse(line);
11
- return typeof parsed === "object" && parsed !== null ? parsed : null;
18
+ return jsonRpcFrameSchema.parse(JSON.parse(line));
12
19
  }
13
20
  catch {
14
21
  return null;
@@ -43,7 +50,7 @@ export function createCodexClient(stdin, stdout, handlers) {
43
50
  waiter.settle(frame);
44
51
  }
45
52
  function serveRequest(frame) {
46
- const id = frame.id;
53
+ const { id } = frame;
47
54
  handlers
48
55
  .onServerRequest({
49
56
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/providers/codex/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/providers/codex/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,sBAAsB,EACtB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAQlC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;CACtE,CAAC,CAAC;AAyEH,SAAS,eAAe,CAAC,KAAmB;IAC1C,OAAO,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC;AAC9D,CAAC;AAED,SAAS,UAAU,CAAC,KAAmB;IACrC,OAAO,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC;AAC9D,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAQD,MAAM,UAAU,iBAAiB,CAC/B,KAAe,EACf,MAAgB,EAChB,QAA6B;IAE7B,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,OAAO,GAAiB,IAAI,CAAC;IAEjC,SAAS,KAAK,CAAC,OAAuB;QACpC,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO;QAC7B,KAAK,CAAC,KAAK,CACT,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,sBAAsB,EAAE,CACvF,CAAC;IACJ,CAAC;IAED,SAAS,KAAK,CAAC,MAAa;QAC1B,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO;QAC7B,OAAO,GAAG,MAAM,CAAC;QACjB,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpD,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,cAAc,CAAC,KAAmB;QACzC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,SAAS,YAAY,CAAC,KAAyB;QAC7C,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;QACrB,QAAQ;aACL,eAAe,CAAC;YACf,EAAE;YACF,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;aACD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;aACvC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;YACtB,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,QAAQ,CAAC,KAAmB;QACnC,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO;QACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,SAAS,OAAO,CAAC,KAAa;QAC5B,MAAM,IAAI,KAAK,CAAC;QAChB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACnD,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,SAAS;YACjC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,KAAK,KAAK,IAAI;gBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,SAAS,YAAY,CACnB,EAAU,EACV,OAAwC;QAExC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,KAAK,GACT,OAAO,EAAE,SAAS,KAAK,SAAS;gBAC9B,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;oBACd,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACnB,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;gBACnD,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,GAAS,EAAE;gBACvB,IAAI,KAAK,KAAK,IAAI;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE;gBACd,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;oBACjB,KAAK,EAAE,CAAC;oBACR,MAAM,CAAC,MAAM,CAAC,CAAC;gBACjB,CAAC;gBACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChB,KAAK,EAAE,CAAC;oBACR,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC9B,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBACvC,OAAO;oBACT,CAAC;oBACD,OAAO,CAAC,KAAK,CAAC,MAAW,CAAC,CAAC;gBAC7B,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC;IAE3E,OAAO;QACL,OAAO,CACL,MAAc,EACd,MAAkB,EAClB,OAA6B;YAE7B,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,YAAY,CAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAC7C,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5C,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,MAAc,EAAE,MAAkB;YACvC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK;KACN,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/providers/codex/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,iCAAiC,EACjC,8BAA8B,EAC9B,+BAA+B,EAC/B,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,EACvB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAsBvE,MAAM,mBAAmB,GAAsC;IAC7D,MAAM,EAAE;QACN,cAAc,EAAE,YAAY;QAC5B,OAAO,EAAE,WAAW;QACpB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,KAAK;QACf,sBAAsB,EAAE,KAAK;KAC9B;IAID,WAAW,EAAE;QACX,cAAc,EAAE,YAAY;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,IAAI;QACd,sBAAsB,EAAE,KAAK;KAC9B;IACD,IAAI,EAAE;QACJ,cAAc,EAAE,YAAY;QAC5B,OAAO,EAAE,WAAW;QACpB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,KAAK;QACf,sBAAsB,EAAE,IAAI;KAC7B;CACF,CAAC;AAKF,MAAM,wBAAwB,GAAkC;IAC9D,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACb,CAAC;AAaF,SAAS,aAAa,CAAC,SAAyB;IAC9C,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAuB,EACvB,SAAyB;IAEzB,IAAI,MAAM,CAAC,OAAO,KAAK,oBAAoB;QACzC,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;IACnE,CAAC;IACD,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC;QACvC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,mBAAmB,EAAE,KAAK;QAC1B,eAAe,EAAE,KAAK;KACvB,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,iBAAiB,CAAC,QAAqB;IACrD,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAIhD,IAAI,uBAAuB,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC7E,OAAO;QACL,GAAG,IAAI;QACP,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,KAAK;QACpB,sBAAsB,EAAE,IAAI;KAC7B,CAAC;AACJ,CAAC;AAMD,MAAM,UAAU,kBAAkB,CAChC,QAAqB,EACrB,SAAyB;IAEzB,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO;QACL,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,aAAa,EAAE,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC;QACpD,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC,QAAQ,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAaD,MAAM,mBAAmB,GAAG;IAC1B,4CAA4C,qBAAqB,KAAK;IACtE,uDAAuD,wBAAwB,KAAK;IACpF,KAAK;IACL,qCAAqC;IACrC,oEAAoE;IACpE,6BAA6B;CAC9B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,SAAS,SAAS,CAAC,MAAyB;IAC1C,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAClD,CAAC;AAaD,MAAM,UAAU,eAAe,CAAC,KAAuB;IACrD,OAAO;QAIL,2BAA2B;QAC3B,oBAAoB,UAAU,CAAC,uBAAuB,CAAC,EAAE;QACzD,EAAE;QACF,oBAAoB,uBAAuB,GAAG;QAC9C,UAAU,UAAU,CAAC,yBAAyB,CAAC,EAAE;QACjD,cAAc,UAAU,CAAC,6BAA6B,CAAC,EAAE;QACzD,cAAc,UAAU,CAAC,6BAA6B,CAAC,EAAE;QACzD,8BAA8B;QAC9B,6BAA6B;QAC7B,EAAE;QACF,oBAAoB,uBAAuB,QAAQ;QACnD,aAAa,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;QACzC,UAAU,SAAS,CAAC,CAAC,qBAAqB,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC,EAAE;QACzE,gBAAgB,6BAA6B,EAAE;QAC/C,yBAAyB,8BAA8B,EAAE;QACzD,EAAE;QACF,gBAAgB,mBAAmB,GAAG;QACtC,SAAS,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;QACnC,0BAA0B,UAAU,CAAC,uBAAuB,CAAC,EAAE;QAG/D,sBAAsB,oBAAoB,EAAE;QAC5C,EAAE;QAGF,aAAa,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG;QAC/D,2BAA2B;QAC3B,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAGD,MAAM,UAAU,UAAU,CAAC,QAAqB;IAC9C,OAAO,uBAAuB,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC;AACrE,CAAC;AASD,MAAM,UAAU,0BAA0B,CACxC,QAAqB;IAErB,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC;AAUD,MAAM,UAAU,mBAAmB,CACjC,QAAqB,EACrB,kBAA0B;IAE1B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,IAAI,kBAAkB,GAAG,+BAA+B;QAAE,OAAO,SAAS,CAAC;IAC3E,OAAO,8BAA8B,CAAC,OAAO,CAC3C,iCAAiC,EACjC,MAAM,CAAC,kBAAkB,CAAC,CAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/providers/codex/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/providers/codex/module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EACL,SAAS,EAGT,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAM7B,IAAI,cAAc,GAAgC,IAAI,CAAC;AAEvD,SAAS,qBAAqB;IAC5B,MAAM,YAAY,GAAG,wBAAwB,EAAE,CAAC;IAChD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,WAAW,CAAC,4BAA4B,CAAC,iBAAiB,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7C,OAAO,WAAW,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5D,CAAC;IAGD,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CACV,GAAG,gBAAgB,IAAI,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,uBAAuB,CAAC;AACtE,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,WAAW,EAAE;QAAE,OAAO,qBAAqB,EAAE,CAAC;IAClD,cAAc,KAAK,qBAAqB,EAAE,CAAC;IAC3C,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,IAAI,CAAC,SAAS,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAG3C,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,CAAC;QACpC,OAAO,WAAW,CAAC,4BAA4B,CAAC,mBAAmB,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAID,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,SAAS;QAAE,OAAO;IAC9D,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,IAAI,8BAA8B,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAmB;IACzC,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAC3B,mBAAmB,CAAC;QAClB,GAAG,OAAO;QACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC;IACJ,iBAAiB;IAGjB,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC9B,eAAe,EAAE,CAAC;QAClB,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/providers/codex/module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EACL,SAAS,EAGT,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAQ7B,IAAI,cAAc,GAAgC,IAAI,CAAC;AAOvD,SAAS,qBAAqB;IAC5B,MAAM,YAAY,GAAG,wBAAwB,EAAE,CAAC;IAChD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,WAAW,CAAC,4BAA4B,CAAC,iBAAiB,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7C,OAAO,WAAW,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CACV,GAAG,gBAAgB,IAAI,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,uBAAuB,CAAC;AACtE,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,WAAW,EAAE;QAAE,OAAO,qBAAqB,EAAE,CAAC;IAClD,cAAc,KAAK,qBAAqB,EAAE,CAAC;IAC3C,OAAO,cAAc,CAAC;AACxB,CAAC;AAOD,SAAS,iBAAiB;IACxB,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,IAAI,CAAC,SAAS,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,CAAC;QACpC,OAAO,WAAW,CAAC,4BAA4B,CAAC,mBAAmB,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAMD,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,SAAS;QAAE,OAAO;IAC9D,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,IAAI,8BAA8B,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAmB;IACzC,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAC3B,mBAAmB,CAAC;QAClB,GAAG,OAAO;QACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC;IACJ,iBAAiB;IAKjB,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC9B,eAAe,EAAE,CAAC;QAClB,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;CACF,CAAC"}
@@ -3,9 +3,9 @@ import type { ToolDecision } from "../../agent/provider.js";
3
3
  import type { AppSettings } from "../../state/settings-types.js";
4
4
  import type { CodexFileChange } from "./adapter.js";
5
5
  import type { CodexServerRequest } from "./client.js";
6
- interface CodexApprovalDecisionResponse {
6
+ type CodexApprovalDecisionResponse = {
7
7
  decision: string;
8
- }
8
+ };
9
9
  export interface CodexPermissionDeps {
10
10
  conversationId: string;
11
11
  permissionBus?: PermissionBus;
@@ -1,8 +1,16 @@
1
+ import { z } from "zod";
1
2
  import { CODEX_CHANGE_DIFF_ARG, CODEX_CHANGE_KIND_ARG, } from "../../agent/permission-preview.js";
2
3
  import { CODEX_APPROVAL_DECISIONS, CODEX_COMMAND_APPROVAL_METHOD, CODEX_FILE_CHANGE_APPROVAL_METHOD, CODEX_LOG_PREFIX, CODEX_UNKNOWN_APPROVAL_METHOD, } from "../../constants/codex.js";
3
4
  import { BASH_COMMAND_ARG, EDIT_FILE_PATH_ARG, TOOL_LEXICON, } from "../../constants/tool-lexicon.js";
4
5
  import { EDIT_PATHS_KEY } from "../../agent/edit-targets.js";
5
6
  import { resolveModePolicy } from "./config.js";
7
+ const commandApprovalParamsSchema = z.object({
8
+ command: z.string().nullish(),
9
+ itemId: z.string().optional(),
10
+ });
11
+ const fileChangeApprovalParamsSchema = z.object({
12
+ itemId: z.string().optional(),
13
+ });
6
14
  function accept() {
7
15
  return { decision: CODEX_APPROVAL_DECISIONS.ACCEPT };
8
16
  }
@@ -35,10 +43,16 @@ export function createCodexPermissionHandler(deps) {
35
43
  callId: itemId,
36
44
  };
37
45
  }
38
- const SUBJECT_BY_METHOD = {
39
- [CODEX_COMMAND_APPROVAL_METHOD]: describeCommand,
40
- [CODEX_FILE_CHANGE_APPROVAL_METHOD]: describeFileChange,
41
- };
46
+ function subjectDescriber(request) {
47
+ switch (request.method) {
48
+ case CODEX_COMMAND_APPROVAL_METHOD:
49
+ return () => describeCommand(commandApprovalParamsSchema.safeParse(request.params).data ?? {});
50
+ case CODEX_FILE_CHANGE_APPROVAL_METHOD:
51
+ return () => describeFileChange(fileChangeApprovalParamsSchema.safeParse(request.params).data ?? {});
52
+ default:
53
+ return undefined;
54
+ }
55
+ }
42
56
  function countDenial(isAllowed) {
43
57
  denials = isAllowed ? 0 : denials + 1;
44
58
  }
@@ -68,14 +82,14 @@ export function createCodexPermissionHandler(deps) {
68
82
  }
69
83
  return {
70
84
  async handle(request) {
71
- const describe = SUBJECT_BY_METHOD[request.method];
85
+ const describe = subjectDescriber(request);
72
86
  if (describe === undefined) {
73
87
  console.warn(`${CODEX_LOG_PREFIX} ${CODEX_UNKNOWN_APPROVAL_METHOD} ${request.method}`);
74
88
  return decline();
75
89
  }
76
90
  if (cancelled)
77
91
  return decline();
78
- const subject = describe(request.params);
92
+ const subject = describe();
79
93
  if (resolveModePolicy(deps.getSettings()).autoDeclineEscalations) {
80
94
  return block(subject);
81
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/providers/codex/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/providers/codex/permissions.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { CodexClient, CodexClientHandlers } from "./client.js";
2
2
  import type { CodexInstallation } from "./resolve-binary.js";
3
+ import { type StopGraces } from "./stop.js";
3
4
  export interface CodexProcessOptions {
4
5
  conversationId: string;
5
6
  stateDir: string;
@@ -9,6 +10,7 @@ export interface CodexProcessOptions {
9
10
  hostProjectRoot: string;
10
11
  accessTokenUrl: string;
11
12
  handlers: CodexClientHandlers;
13
+ stopGraces?: StopGraces;
12
14
  }
13
15
  export interface CodexProcess {
14
16
  client: CodexClient;
@@ -19,5 +21,5 @@ export interface CodexProcess {
19
21
  export declare function codexHomeFor(stateDir: string, conversationId: string): string;
20
22
  export declare function readProcessCommand(pid: number): string | undefined;
21
23
  export declare function isCodexProcess(pid: number): boolean;
22
- export declare function reapOrphanCodexProcesses(stateDir: string): Promise<number[]>;
24
+ export declare function reapOrphanCodexProcesses(stateDir: string, graces?: StopGraces): Promise<number[]>;
23
25
  export declare function spawnCodexProcess(options: CodexProcessOptions): Promise<CodexProcess>;
@@ -2,7 +2,9 @@ import { execFileSync, spawn } from "node:child_process";
2
2
  import { mkdirSync, readFileSync } from "node:fs";
3
3
  import { readdir, readFile, rm, writeFile } from "node:fs/promises";
4
4
  import path from "node:path";
5
+ import { z } from "zod";
5
6
  import { CODEX_APP_SERVER_COMMAND, CODEX_BINARY_NAME, CODEX_CLIENT_ABORTED_MESSAGE, CODEX_CONFIG_FILE_NAME, CODEX_EXITED_MESSAGE, CODEX_HOME_DIR_NAME, CODEX_HOME_ENV_VAR, CODEX_HOME_REMOVAL_FAILED_MESSAGE, CODEX_LOG_PREFIX, CODEX_MCP_TOKEN_ENV_VAR, CODEX_ORPHAN_POLL_MS, CODEX_PID_REGISTRY_FILE, CODEX_PID_RELEASE_FAILED_MESSAGE, CODEX_PID_TOKEN, CODEX_PROC_CMDLINE, CODEX_SPAWN_FAILED_MESSAGE, CODEX_STDERR_TAIL_BYTES, CODEX_STRICT_CONFIG_FLAG, CODEX_SURVIVED_STOP_MESSAGE, PROCESS_QUERY_BY_PLATFORM, } from "../../constants/codex.js";
7
+ import { PLATFORM_LINUX } from "../../constants/native-binary.js";
6
8
  import { safeDirSegment } from "../../state/safe-segment.js";
7
9
  import { createCodexClient } from "./client.js";
8
10
  import { CHATGPT_TOKEN_SECRET_ENV, CHATGPT_TOKEN_URL_ENV, } from "../../constants/chatgpt.js";
@@ -15,24 +17,18 @@ export function codexHomeFor(stateDir, conversationId) {
15
17
  function pidRegistryPath(stateDir) {
16
18
  return path.join(stateDir, CODEX_PID_REGISTRY_FILE);
17
19
  }
18
- function toPidRecord(entry) {
19
- if (entry === null || typeof entry !== "object")
20
- return undefined;
21
- const { pid, home } = entry;
22
- if (pid === undefined || !Number.isInteger(pid))
23
- return undefined;
24
- return typeof home === "string" ? { pid, home } : undefined;
25
- }
26
- function isPidRecord(record) {
27
- return record !== undefined;
28
- }
20
+ const pidRecordSchema = z.object({ pid: z.number().int(), home: z.string() });
21
+ const pidRegistrySchema = z.array(z.unknown());
29
22
  async function readPidRegistry(stateDir) {
30
23
  try {
31
24
  const raw = await readFile(pidRegistryPath(stateDir), "utf8");
32
- const parsed = JSON.parse(raw);
33
- if (!Array.isArray(parsed))
25
+ const entries = pidRegistrySchema.safeParse(JSON.parse(raw));
26
+ if (!entries.success)
34
27
  return [];
35
- return parsed.map(toPidRecord).filter(isPidRecord);
28
+ return entries.data.flatMap((entry) => {
29
+ const record = pidRecordSchema.safeParse(entry);
30
+ return record.success ? [record.data] : [];
31
+ });
36
32
  }
37
33
  catch {
38
34
  return [];
@@ -51,11 +47,8 @@ function queryProcessTable(pid) {
51
47
  return undefined;
52
48
  return execFileSync(command, args.map((arg) => arg.replace(CODEX_PID_TOKEN, String(pid))), { encoding: "utf8", windowsHide: true });
53
49
  }
54
- const COMMAND_READERS = {
55
- linux: readProcCmdline,
56
- };
57
50
  export function readProcessCommand(pid) {
58
- const read = COMMAND_READERS[process.platform] ?? queryProcessTable;
51
+ const read = process.platform === PLATFORM_LINUX ? readProcCmdline : queryProcessTable;
59
52
  try {
60
53
  const command = read(pid)?.trim();
61
54
  return command === undefined || command.length === 0 ? undefined : command;
@@ -99,13 +92,13 @@ function exitsWithin(child, waitMs) {
99
92
  child.once("exit", onExit);
100
93
  });
101
94
  }
102
- async function stopChild(child, pid) {
95
+ async function stopChild(child, pid, graces) {
103
96
  if (hasExited(child))
104
97
  return true;
105
- return runStopSteps(pid, (waitMs) => exitsWithin(child, waitMs));
98
+ return runStopSteps(pid, (waitMs) => exitsWithin(child, waitMs), graces);
106
99
  }
107
- async function stopOrphan(record) {
108
- const isStopped = await runStopSteps(record.pid, orphanGoneWithin(record.pid));
100
+ async function stopOrphan(record, graces) {
101
+ const isStopped = await runStopSteps(record.pid, orphanGoneWithin(record.pid), graces);
109
102
  return { record, isStopped };
110
103
  }
111
104
  async function removeOrphanHomes(stateDir, survivors) {
@@ -126,10 +119,10 @@ async function forgetReaped(stateDir, recorded, survivors) {
126
119
  .filter((pid) => !survivorPids.has(pid)));
127
120
  await updateRegistry(stateDir, (current) => current.filter((record) => !settled.has(record.pid)));
128
121
  }
129
- export async function reapOrphanCodexProcesses(stateDir) {
122
+ export async function reapOrphanCodexProcesses(stateDir, graces) {
130
123
  const recorded = await readPidRegistry(stateDir);
131
124
  const orphans = recorded.filter((record) => isCodexProcess(record.pid));
132
- const outcomes = await Promise.all(orphans.map(stopOrphan));
125
+ const outcomes = await Promise.all(orphans.map((record) => stopOrphan(record, graces)));
133
126
  const survivors = outcomes
134
127
  .filter((outcome) => !outcome.isStopped)
135
128
  .map((outcome) => outcome.record);
@@ -238,31 +231,36 @@ function watchChild(child, stderr) {
238
231
  },
239
232
  };
240
233
  }
241
- function describeError(error) {
242
- return error instanceof Error ? error.message : String(error);
243
- }
244
- async function retireChild(stateDir, child) {
234
+ async function retireChild(stateDir, child, graces) {
245
235
  const { pid } = child;
246
236
  if (pid === undefined)
247
237
  return true;
248
- if (!(await stopChild(child, pid))) {
238
+ if (!(await stopChild(child, pid, graces))) {
249
239
  console.warn(`${CODEX_LOG_PREFIX} ${CODEX_SURVIVED_STOP_MESSAGE} ${pid}`);
250
240
  return false;
251
241
  }
252
- await forgetPid(stateDir, pid).catch((error) => {
253
- console.warn(`${CODEX_LOG_PREFIX} ${CODEX_PID_RELEASE_FAILED_MESSAGE} ${pid}: ${describeError(error)}`);
254
- });
242
+ try {
243
+ await forgetPid(stateDir, pid);
244
+ }
245
+ catch (error) {
246
+ const reason = error instanceof Error ? error.message : String(error);
247
+ console.warn(`${CODEX_LOG_PREFIX} ${CODEX_PID_RELEASE_FAILED_MESSAGE} ${pid}: ${reason}`);
248
+ }
255
249
  return true;
256
250
  }
257
251
  async function removeHome(codexHome) {
258
- await rm(codexHome, { recursive: true, force: true }).catch((error) => {
259
- console.error(`${CODEX_LOG_PREFIX} ${CODEX_HOME_REMOVAL_FAILED_MESSAGE} ${codexHome}: ${describeError(error)}`);
260
- });
252
+ try {
253
+ await rm(codexHome, { recursive: true, force: true });
254
+ }
255
+ catch (error) {
256
+ const reason = error instanceof Error ? error.message : String(error);
257
+ console.error(`${CODEX_LOG_PREFIX} ${CODEX_HOME_REMOVAL_FAILED_MESSAGE} ${codexHome}: ${reason}`);
258
+ }
261
259
  }
262
260
  async function disposeProcess(teardown) {
263
261
  teardown.watchdog.markDisposed();
264
262
  teardown.client.abort(new Error(`${CODEX_LOG_PREFIX} ${CODEX_CLIENT_ABORTED_MESSAGE}`));
265
- if (await retireChild(teardown.stateDir, teardown.child)) {
263
+ if (await retireChild(teardown.stateDir, teardown.child, teardown.graces)) {
266
264
  await removeHome(teardown.codexHome);
267
265
  }
268
266
  }
@@ -314,6 +312,7 @@ export async function spawnCodexProcess(options) {
314
312
  client,
315
313
  watchdog,
316
314
  child,
315
+ graces: options.stopGraces,
317
316
  });
318
317
  await registerPid(options.stateDir, spawned);
319
318
  return spawned;