@seqyuan/annodex 0.1.84 → 0.1.85

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 (259) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +7 -6
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/react-loadable-manifest.json +2 -7
  6. package/.next/required-server-files.js +1 -1
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/routes-manifest.json +6 -0
  9. package/.next/server/app/_global-error/page.js +3 -3
  10. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/_global-error.html +1 -1
  12. package/.next/server/app/_global-error.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  18. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  19. package/.next/server/app/_not-found/page.js +2 -2
  20. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/_not-found.html +1 -1
  22. package/.next/server/app/_not-found.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  24. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  25. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  26. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  27. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  28. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  29. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  30. package/.next/server/app/api/agent/[id]/route.js +1 -1
  31. package/.next/server/app/api/agent/new/route.js +1 -1
  32. package/.next/server/app/api/agent/runtime/route.js +2 -2
  33. package/.next/server/app/api/attachments/upload/route.js +1 -0
  34. package/.next/server/app/api/attachments/upload/route.js.nft.json +1 -0
  35. package/.next/server/app/api/attachments/upload/route_client-reference-manifest.js +1 -0
  36. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  37. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  38. package/.next/server/app/api/auth/login/[provider]/route.js +1 -1
  39. package/.next/server/app/api/auth/login/route.js +1 -1
  40. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  41. package/.next/server/app/api/auth/providers/route.js +1 -1
  42. package/.next/server/app/api/auth/status/route.js +1 -1
  43. package/.next/server/app/api/default-cwd/route.js +1 -1
  44. package/.next/server/app/api/extensions/discover/route.js +1 -1
  45. package/.next/server/app/api/extensions/mcp/route.js +1 -1
  46. package/.next/server/app/api/extensions/plugin/route.js +1 -1
  47. package/.next/server/app/api/extensions/plugin-marketplace/route.js +1 -1
  48. package/.next/server/app/api/extensions/route.js +1 -1
  49. package/.next/server/app/api/extensions/session/route.js +1 -1
  50. package/.next/server/app/api/files/[...path]/route.js +1 -1
  51. package/.next/server/app/api/harness/route.js +1 -1
  52. package/.next/server/app/api/home/route.js +1 -1
  53. package/.next/server/app/api/im/cancel/route.js +2 -2
  54. package/.next/server/app/api/im/gateway-status/route.js +2 -2
  55. package/.next/server/app/api/im/gateway-token/route.js +1 -1
  56. package/.next/server/app/api/im/project/route.js +2 -2
  57. package/.next/server/app/api/im/projects/route.js +1 -1
  58. package/.next/server/app/api/im/session-ids/route.js +1 -1
  59. package/.next/server/app/api/im/turn/route.js +2 -2
  60. package/.next/server/app/api/images/upload/route.js +1 -1
  61. package/.next/server/app/api/internal/runtime/route.js +1 -1
  62. package/.next/server/app/api/memory/promote/route.js +2 -2
  63. package/.next/server/app/api/memory/recall/route.js +3 -3
  64. package/.next/server/app/api/memory/reflect/route.js +1 -1
  65. package/.next/server/app/api/memory/retain/route.js +2 -2
  66. package/.next/server/app/api/memory/status/route.js +2 -2
  67. package/.next/server/app/api/models/route.js +1 -1
  68. package/.next/server/app/api/models-config/discover/route.js +1 -1
  69. package/.next/server/app/api/models-config/route.js +1 -1
  70. package/.next/server/app/api/models-config/test/route.js +1 -1
  71. package/.next/server/app/api/projects/browse/route.js +1 -1
  72. package/.next/server/app/api/projects/route.js +1 -1
  73. package/.next/server/app/api/search/route.js +1 -1
  74. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  75. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  76. package/.next/server/app/api/sessions/new/route.js +1 -1
  77. package/.next/server/app/api/sessions/route.js +1 -1
  78. package/.next/server/app/api/settings/route.js +1 -1
  79. package/.next/server/app/api/skills/install/route.js +2 -2
  80. package/.next/server/app/api/skills/route.js +2 -2
  81. package/.next/server/app/api/skills/search/route.js +1 -1
  82. package/.next/server/app/api/soul/route.js +1 -1
  83. package/.next/server/app/api/version/route.js +1 -1
  84. package/.next/server/app/docs/changelog/page.js +3 -3
  85. package/.next/server/app/docs/changelog/page_client-reference-manifest.js +1 -1
  86. package/.next/server/app/docs/changelog.html +2 -2
  87. package/.next/server/app/docs/changelog.rsc +1 -1
  88. package/.next/server/app/docs/changelog.segments/_full.segment.rsc +1 -1
  89. package/.next/server/app/docs/changelog.segments/_head.segment.rsc +1 -1
  90. package/.next/server/app/docs/changelog.segments/_index.segment.rsc +1 -1
  91. package/.next/server/app/docs/changelog.segments/_tree.segment.rsc +1 -1
  92. package/.next/server/app/docs/changelog.segments/docs/changelog/__PAGE__.segment.rsc +1 -1
  93. package/.next/server/app/docs/changelog.segments/docs/changelog.segment.rsc +1 -1
  94. package/.next/server/app/docs/changelog.segments/docs.segment.rsc +1 -1
  95. package/.next/server/app/index.html +1 -1
  96. package/.next/server/app/index.rsc +1 -1
  97. package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  98. package/.next/server/app/index.segments/_full.segment.rsc +1 -1
  99. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  100. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  101. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  102. package/.next/server/app/login/page.js +2 -2
  103. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/login.html +1 -1
  105. package/.next/server/app/login.rsc +1 -1
  106. package/.next/server/app/login.segments/_full.segment.rsc +1 -1
  107. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  108. package/.next/server/app/login.segments/_index.segment.rsc +1 -1
  109. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  110. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  111. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  112. package/.next/server/app/page.js +2 -2
  113. package/.next/server/app/page_client-reference-manifest.js +1 -1
  114. package/.next/server/app/workspace/page.js +10 -9
  115. package/.next/server/app/workspace/page_client-reference-manifest.js +1 -1
  116. package/.next/server/app/workspace.html +1 -1
  117. package/.next/server/app/workspace.rsc +2 -2
  118. package/.next/server/app/workspace.segments/_full.segment.rsc +2 -2
  119. package/.next/server/app/workspace.segments/_head.segment.rsc +1 -1
  120. package/.next/server/app/workspace.segments/_index.segment.rsc +1 -1
  121. package/.next/server/app/workspace.segments/_tree.segment.rsc +1 -1
  122. package/.next/server/app/workspace.segments/workspace/__PAGE__.segment.rsc +2 -2
  123. package/.next/server/app/workspace.segments/workspace.segment.rsc +1 -1
  124. package/.next/server/app-paths-manifest.json +7 -6
  125. package/.next/server/chunks/402.js +1 -1
  126. package/.next/server/chunks/6429.js +2 -2
  127. package/.next/server/chunks/6983.js +1 -1
  128. package/.next/server/middleware-build-manifest.js +1 -1
  129. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  130. package/.next/server/pages/404.html +1 -1
  131. package/.next/server/pages/500.html +1 -1
  132. package/.next/server/server-reference-manifest.json +1 -1
  133. package/.next/static/chunks/4683-1bf869e888b6b09f.js +1 -0
  134. package/.next/static/chunks/app/_global-error/{page-4d949d79c5bb42eb.js → page-a6b9f72d87288ed3.js} +1 -1
  135. package/.next/static/chunks/app/api/agent/[id]/events/{route-4d949d79c5bb42eb.js → route-a6b9f72d87288ed3.js} +1 -1
  136. package/.next/static/chunks/app/api/agent/[id]/{route-4d949d79c5bb42eb.js → route-a6b9f72d87288ed3.js} +1 -1
  137. package/.next/static/chunks/app/api/agent/new/{route-4d949d79c5bb42eb.js → route-a6b9f72d87288ed3.js} +1 -1
  138. package/.next/static/chunks/app/api/agent/runtime/route-a6b9f72d87288ed3.js +1 -0
  139. package/.next/static/chunks/app/api/attachments/upload/route-a6b9f72d87288ed3.js +1 -0
  140. package/.next/static/chunks/app/api/auth/all-providers/route-a6b9f72d87288ed3.js +1 -0
  141. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-a6b9f72d87288ed3.js +1 -0
  142. package/.next/static/chunks/app/api/auth/login/[provider]/route-a6b9f72d87288ed3.js +1 -0
  143. package/.next/static/chunks/app/api/auth/login/route-a6b9f72d87288ed3.js +1 -0
  144. package/.next/static/chunks/app/api/auth/logout/[provider]/route-a6b9f72d87288ed3.js +1 -0
  145. package/.next/static/chunks/app/api/auth/providers/route-a6b9f72d87288ed3.js +1 -0
  146. package/.next/static/chunks/app/api/auth/status/route-a6b9f72d87288ed3.js +1 -0
  147. package/.next/static/chunks/app/api/default-cwd/route-a6b9f72d87288ed3.js +1 -0
  148. package/.next/static/chunks/app/api/extensions/discover/route-a6b9f72d87288ed3.js +1 -0
  149. package/.next/static/chunks/app/api/extensions/mcp/route-a6b9f72d87288ed3.js +1 -0
  150. package/.next/static/chunks/app/api/extensions/plugin/route-a6b9f72d87288ed3.js +1 -0
  151. package/.next/static/chunks/app/api/extensions/plugin-marketplace/route-a6b9f72d87288ed3.js +1 -0
  152. package/.next/static/chunks/app/api/extensions/route-a6b9f72d87288ed3.js +1 -0
  153. package/.next/static/chunks/app/api/extensions/session/route-a6b9f72d87288ed3.js +1 -0
  154. package/.next/static/chunks/app/api/files/[...path]/route-a6b9f72d87288ed3.js +1 -0
  155. package/.next/static/chunks/app/api/harness/route-a6b9f72d87288ed3.js +1 -0
  156. package/.next/static/chunks/app/api/home/route-a6b9f72d87288ed3.js +1 -0
  157. package/.next/static/chunks/app/api/im/cancel/route-a6b9f72d87288ed3.js +1 -0
  158. package/.next/static/chunks/app/api/im/gateway-status/route-a6b9f72d87288ed3.js +1 -0
  159. package/.next/static/chunks/app/api/im/gateway-token/route-a6b9f72d87288ed3.js +1 -0
  160. package/.next/static/chunks/app/api/im/project/route-a6b9f72d87288ed3.js +1 -0
  161. package/.next/static/chunks/app/api/im/projects/route-a6b9f72d87288ed3.js +1 -0
  162. package/.next/static/chunks/app/api/im/session-ids/route-a6b9f72d87288ed3.js +1 -0
  163. package/.next/static/chunks/app/api/im/turn/route-a6b9f72d87288ed3.js +1 -0
  164. package/.next/static/chunks/app/api/images/upload/route-a6b9f72d87288ed3.js +1 -0
  165. package/.next/static/chunks/app/api/internal/runtime/route-a6b9f72d87288ed3.js +1 -0
  166. package/.next/static/chunks/app/api/memory/promote/route-a6b9f72d87288ed3.js +1 -0
  167. package/.next/static/chunks/app/api/memory/recall/route-a6b9f72d87288ed3.js +1 -0
  168. package/.next/static/chunks/app/api/memory/reflect/route-a6b9f72d87288ed3.js +1 -0
  169. package/.next/static/chunks/app/api/memory/retain/route-a6b9f72d87288ed3.js +1 -0
  170. package/.next/static/chunks/app/api/memory/status/route-a6b9f72d87288ed3.js +1 -0
  171. package/.next/static/chunks/app/api/models/route-a6b9f72d87288ed3.js +1 -0
  172. package/.next/static/chunks/app/api/models-config/discover/route-a6b9f72d87288ed3.js +1 -0
  173. package/.next/static/chunks/app/api/models-config/route-a6b9f72d87288ed3.js +1 -0
  174. package/.next/static/chunks/app/api/models-config/test/route-a6b9f72d87288ed3.js +1 -0
  175. package/.next/static/chunks/app/api/projects/browse/route-a6b9f72d87288ed3.js +1 -0
  176. package/.next/static/chunks/app/api/projects/route-a6b9f72d87288ed3.js +1 -0
  177. package/.next/static/chunks/app/api/search/route-a6b9f72d87288ed3.js +1 -0
  178. package/.next/static/chunks/app/api/sessions/[id]/context/route-a6b9f72d87288ed3.js +1 -0
  179. package/.next/static/chunks/app/api/sessions/[id]/route-a6b9f72d87288ed3.js +1 -0
  180. package/.next/static/chunks/app/api/sessions/new/route-a6b9f72d87288ed3.js +1 -0
  181. package/.next/static/chunks/app/api/sessions/route-a6b9f72d87288ed3.js +1 -0
  182. package/.next/static/chunks/app/api/settings/route-a6b9f72d87288ed3.js +1 -0
  183. package/.next/static/chunks/app/api/skills/install/route-a6b9f72d87288ed3.js +1 -0
  184. package/.next/static/chunks/app/api/skills/route-a6b9f72d87288ed3.js +1 -0
  185. package/.next/static/chunks/app/api/skills/search/route-a6b9f72d87288ed3.js +1 -0
  186. package/.next/static/chunks/app/api/soul/route-a6b9f72d87288ed3.js +1 -0
  187. package/.next/static/chunks/app/api/version/route-a6b9f72d87288ed3.js +1 -0
  188. package/.next/static/chunks/app/page-a6b9f72d87288ed3.js +1 -0
  189. package/.next/static/chunks/app/workspace/page-bfe371a0b7fa68a8.js +265 -0
  190. package/.next/static/chunks/next/dist/client/components/builtin/app-error-a6b9f72d87288ed3.js +1 -0
  191. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-a6b9f72d87288ed3.js +1 -0
  192. package/.next/static/chunks/next/dist/client/components/builtin/not-found-a6b9f72d87288ed3.js +1 -0
  193. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a6b9f72d87288ed3.js +1 -0
  194. package/.next/static/chunks/webpack-0b1e0af2488fca8f.js +1 -0
  195. package/.next/static/eQsZd4MGkan03BV4eca_-/_buildManifest.js +1 -0
  196. package/README.md +1 -1
  197. package/bin/annodex-im-gateway.js +8 -2
  198. package/bin/annodex.js +48 -3
  199. package/package.json +1 -1
  200. package/.next/static/ZsANx91orvRUgkmErFcbK/_buildManifest.js +0 -1
  201. package/.next/static/chunks/2619.9aac8983f30c7c8a.js +0 -1
  202. package/.next/static/chunks/539-ac30b542af536e0e.js +0 -1
  203. package/.next/static/chunks/app/api/agent/runtime/route-4d949d79c5bb42eb.js +0 -1
  204. package/.next/static/chunks/app/api/auth/all-providers/route-4d949d79c5bb42eb.js +0 -1
  205. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-4d949d79c5bb42eb.js +0 -1
  206. package/.next/static/chunks/app/api/auth/login/[provider]/route-4d949d79c5bb42eb.js +0 -1
  207. package/.next/static/chunks/app/api/auth/login/route-4d949d79c5bb42eb.js +0 -1
  208. package/.next/static/chunks/app/api/auth/logout/[provider]/route-4d949d79c5bb42eb.js +0 -1
  209. package/.next/static/chunks/app/api/auth/providers/route-4d949d79c5bb42eb.js +0 -1
  210. package/.next/static/chunks/app/api/auth/status/route-4d949d79c5bb42eb.js +0 -1
  211. package/.next/static/chunks/app/api/default-cwd/route-4d949d79c5bb42eb.js +0 -1
  212. package/.next/static/chunks/app/api/extensions/discover/route-4d949d79c5bb42eb.js +0 -1
  213. package/.next/static/chunks/app/api/extensions/mcp/route-4d949d79c5bb42eb.js +0 -1
  214. package/.next/static/chunks/app/api/extensions/plugin/route-4d949d79c5bb42eb.js +0 -1
  215. package/.next/static/chunks/app/api/extensions/plugin-marketplace/route-4d949d79c5bb42eb.js +0 -1
  216. package/.next/static/chunks/app/api/extensions/route-4d949d79c5bb42eb.js +0 -1
  217. package/.next/static/chunks/app/api/extensions/session/route-4d949d79c5bb42eb.js +0 -1
  218. package/.next/static/chunks/app/api/files/[...path]/route-4d949d79c5bb42eb.js +0 -1
  219. package/.next/static/chunks/app/api/harness/route-4d949d79c5bb42eb.js +0 -1
  220. package/.next/static/chunks/app/api/home/route-4d949d79c5bb42eb.js +0 -1
  221. package/.next/static/chunks/app/api/im/cancel/route-4d949d79c5bb42eb.js +0 -1
  222. package/.next/static/chunks/app/api/im/gateway-status/route-4d949d79c5bb42eb.js +0 -1
  223. package/.next/static/chunks/app/api/im/gateway-token/route-4d949d79c5bb42eb.js +0 -1
  224. package/.next/static/chunks/app/api/im/project/route-4d949d79c5bb42eb.js +0 -1
  225. package/.next/static/chunks/app/api/im/projects/route-4d949d79c5bb42eb.js +0 -1
  226. package/.next/static/chunks/app/api/im/session-ids/route-4d949d79c5bb42eb.js +0 -1
  227. package/.next/static/chunks/app/api/im/turn/route-4d949d79c5bb42eb.js +0 -1
  228. package/.next/static/chunks/app/api/images/upload/route-4d949d79c5bb42eb.js +0 -1
  229. package/.next/static/chunks/app/api/internal/runtime/route-4d949d79c5bb42eb.js +0 -1
  230. package/.next/static/chunks/app/api/memory/promote/route-4d949d79c5bb42eb.js +0 -1
  231. package/.next/static/chunks/app/api/memory/recall/route-4d949d79c5bb42eb.js +0 -1
  232. package/.next/static/chunks/app/api/memory/reflect/route-4d949d79c5bb42eb.js +0 -1
  233. package/.next/static/chunks/app/api/memory/retain/route-4d949d79c5bb42eb.js +0 -1
  234. package/.next/static/chunks/app/api/memory/status/route-4d949d79c5bb42eb.js +0 -1
  235. package/.next/static/chunks/app/api/models/route-4d949d79c5bb42eb.js +0 -1
  236. package/.next/static/chunks/app/api/models-config/discover/route-4d949d79c5bb42eb.js +0 -1
  237. package/.next/static/chunks/app/api/models-config/route-4d949d79c5bb42eb.js +0 -1
  238. package/.next/static/chunks/app/api/models-config/test/route-4d949d79c5bb42eb.js +0 -1
  239. package/.next/static/chunks/app/api/projects/browse/route-4d949d79c5bb42eb.js +0 -1
  240. package/.next/static/chunks/app/api/projects/route-4d949d79c5bb42eb.js +0 -1
  241. package/.next/static/chunks/app/api/search/route-4d949d79c5bb42eb.js +0 -1
  242. package/.next/static/chunks/app/api/sessions/[id]/context/route-4d949d79c5bb42eb.js +0 -1
  243. package/.next/static/chunks/app/api/sessions/[id]/route-4d949d79c5bb42eb.js +0 -1
  244. package/.next/static/chunks/app/api/sessions/new/route-4d949d79c5bb42eb.js +0 -1
  245. package/.next/static/chunks/app/api/sessions/route-4d949d79c5bb42eb.js +0 -1
  246. package/.next/static/chunks/app/api/settings/route-4d949d79c5bb42eb.js +0 -1
  247. package/.next/static/chunks/app/api/skills/install/route-4d949d79c5bb42eb.js +0 -1
  248. package/.next/static/chunks/app/api/skills/route-4d949d79c5bb42eb.js +0 -1
  249. package/.next/static/chunks/app/api/skills/search/route-4d949d79c5bb42eb.js +0 -1
  250. package/.next/static/chunks/app/api/soul/route-4d949d79c5bb42eb.js +0 -1
  251. package/.next/static/chunks/app/api/version/route-4d949d79c5bb42eb.js +0 -1
  252. package/.next/static/chunks/app/page-4d949d79c5bb42eb.js +0 -1
  253. package/.next/static/chunks/app/workspace/page-9672a7e7bb8b9bfb.js +0 -264
  254. package/.next/static/chunks/next/dist/client/components/builtin/app-error-4d949d79c5bb42eb.js +0 -1
  255. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-4d949d79c5bb42eb.js +0 -1
  256. package/.next/static/chunks/next/dist/client/components/builtin/not-found-4d949d79c5bb42eb.js +0 -1
  257. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-4d949d79c5bb42eb.js +0 -1
  258. package/.next/static/chunks/webpack-7606de11217524fe.js +0 -1
  259. /package/.next/static/{ZsANx91orvRUgkmErFcbK → eQsZd4MGkan03BV4eca_-}/_ssgManifest.js +0 -0
@@ -1,7 +1,7 @@
1
1
  "use strict";exports.id=6429,exports.ids=[6429],exports.modules={4087:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(21820);function g(){return process.env.ANNODEX_CONFIG_DIR??process.env.ANNOVIBE_CONFIG_DIR??e.join(f.homedir(),".config","annodex")}function h(){return e.join(g(),"settings.json")}function i(){let a=h();if(!d.existsSync(a))return{};try{let b=JSON.parse(d.readFileSync(a,"utf8"));return"object"!=typeof b||null===b||Array.isArray(b)?{}:b}catch{return{}}}function j(){let a=i();return{autoRestart:"boolean"==typeof a.autoRestart?a.autoRestart:void 0}}function k(a){let b=g();d.existsSync(b)||d.mkdirSync(b,{recursive:!0});let c={...i(),..."boolean"==typeof a?.autoRestart?{autoRestart:a.autoRestart}:{}};return d.writeFileSync(h(),JSON.stringify(c,null,2),"utf8"),j()}a.exports={readAppSettings:j,writeAppSettings:k,ensureAppSettings:function(a={autoRestart:!0}){return"boolean"==typeof i().autoRestart?j():k(a)}}},9805:(a,b,c)=>{c.d(b,{FE:()=>h,zN:()=>i});let d='<widget-capability>\nYou can create interactive visualizations using the `show-widget` code fence.\n\nUse `show-widget` by default when visual output is the primary answer. This includes charts, diagrams, flowcharts, dashboards, UI prototypes, mockups, SVG illustrations, icons, logos, infographics, timelines, hierarchies, comparison views, and visual explanations.\n\nFor diagrams, flowcharts, architecture maps, sequence-style explanations, and Markdown-to-diagram requests, prefer `show-widget` with SVG/HTML over Mermaid. Widgets stream more reliably in this UI. Use Mermaid only when the user explicitly asks for Mermaid source, raw Mermaid, raw Markdown, or a saved Mermaid/Markdown file.\n\nFormat:\n```show-widget\n{"title":"Human-readable title","widget_code":"<raw HTML/SVG string>"}\n```\n\nDetailed specs:\nWhen a `<widget-guidelines>` block is present, follow it. It contains the module-specific design rules for the current request.\n\nRequired rules:\n1. `widget_code` is a JSON string: escape quotes and newlines. Always close the JSON object and fence.\n2. Do not include DOCTYPE, html, head, body, iframe, object, embed, form, link, base, or meta tags.\n3. Keep outer backgrounds transparent. The host supplies theme variables.\n4. Use a single concise widget per fence. For multiple widgets, interleave prose and use a separate `show-widget` fence for each widget.\n5. Streaming order: SVG puts `<defs>` before visible shapes; HTML uses `<style>`, then visible markup, then `<script>` last.\n6. Prefer responsive SVG for static visuals and small HTML widgets for controls.\n7. SVG widgets use `<svg width="100%" viewBox="0 0 680 H">` and keep all content inside the viewBox.\n8. Interactive controls must visibly update the output. For Chart.js, call `chart.update()` after changes.\n9. Clickable drill-down actions call `window.__widgetSendMessage("short request")`.\n10. Cross-widget filters publish with `window.__widgetPublish("topic", { key: "value" })`; other widgets listen for `widget-filter`.\n11. Allowed CDN hosts: `cdnjs.cloudflare.com`, `cdn.jsdelivr.net`, `unpkg.com`, `esm.sh`.\n12. CDN scripts must use an `onload` initializer plus an `if (window.Lib) init();` fallback.\n13. Use `min-height` instead of fixed outer `height` to prevent clipping.\n14. Title should be human-readable in the user\'s language.\n15. Put explanatory prose outside the code fence.\n16. Do not output raw ```svg, ```html, or plain Mermaid for visual answers unless the user explicitly asks for source code, raw Markdown, raw Mermaid, or a saved file.\n17. Do not convert Markdown outlines into Mermaid by default. Render them as a `show-widget` diagram unless Mermaid/source text is explicitly requested.\n</widget-capability>',e=/\n?\s*<widget-capability>[\s\S]*?<\/widget-capability>\s*/g,f=/\n?\s*<visualization_harness>[\s\S]*?<\/visualization_harness>\s*/g,g=/\n?\s*<widget-guidelines\b[^>]*>[\s\S]*?<\/widget-guidelines>\s*/g;function h(a){return a.replace(e,"\n").replace(f,"\n").replace(g,"\n").replace(/\n{3,}/g,"\n\n").trim()}function i(a){return a.includes("<widget-capability>")?a:a.trim()?`${a.trimEnd()}
2
2
 
3
3
  ${d}`:d}},11002:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{WK:()=>l,z2:()=>m});var e=c(46983),f=c(65369),g=c(46696),h=c(14482),i=a([e]);function j(a){return"agentMessage"===a.type&&"string"==typeof a.text?a.text:"reasoning"===a.type?[...a.summary??[],...a.content??[]].join("\n"):"plan"===a.type&&"string"==typeof a.text?a.text:""}function k(a){return"commandExecution"===a.type?"bash":"fileChange"===a.type?"edit":"mcpToolCall"===a.type?a.tool||a.server||"mcp":"dynamicToolCall"===a.type?a.tool||"tool":"collabAgentToolCall"===a.type?"agents":a.type}e=(i.then?(await i)():i)[0];class n{constructor(a,b,c,d){this.threadId=a,this.cwd=b,this.connection=c,this.baseInstructions=d,this.listeners=[],this.cleanupFns=[],this._alive=!0,this._isStreaming=!1,this._isCompacting=!1,this._threadGoal=null,this._accumulatedText="",this._activeTurnId=null,this._activeAgentItemId=null,this._activeItems=new Map,this._currentModel=null,this._wireModel=null,this._sandboxMode="workspace-write",this._pendingApprovals=new Map,this.setupNotifications()}get sessionId(){return this.threadId}get sessionFile(){return""}get isAlive(){return this._alive}get isStreaming(){return this._isStreaming}get isCompacting(){return this._isCompacting}get threadGoal(){return this._threadGoal}get model(){return this._currentModel}get wireModel(){return this._wireModel}get sandboxMode(){return this._sandboxMode}onEvent(a){return this.listeners.push(a),()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}emit(a){for(let b of this.listeners)try{b(a)}catch{}}assistantMeta(){return{model:this._currentModel?.modelId??"",provider:this._currentModel?.provider??""}}restoreActiveTurnFromThread(a){let b=[...a?.turns??[]].reverse().find(a=>(0,e.pU)(a));if(!b)return;this._isStreaming=!0,this._activeTurnId=b.id;let c=[...b.items??[]].reverse().find(a=>"agentMessage"===a.type);c?.type==="agentMessage"&&(this._activeAgentItemId=c.id,this._accumulatedText=j(c))}setupNotifications(){let a=this.connection.onAnyNotification((a,b)=>this.handleCodexNotification(a,b));this.cleanupFns.push(a);let b=this.connection.onServerRequest(a=>this.handleServerRequest(a));this.cleanupFns.push(b)}handleCodexNotification(a,b){switch(a){case"turn/started":this.handleTurnStarted(b);break;case"item/agentMessage/delta":this.handleAgentMessageDelta(b);break;case"item/reasoning/textDelta":case"item/reasoning/summaryTextDelta":this.handleReasoningDelta(b);break;case"item/started":this.handleItemStarted(b);break;case"item/completed":this.handleItemCompleted(b);break;case"turn/completed":this.handleTurnCompleted(b);break;case"turn/failed":case"error":this.handleError(b);break;case"thread/status/changed":this.handleThreadStatusChanged(b);break;case"thread/compacted":this.handleCompacted(b);break;case"thread/goal/updated":this.handleGoalUpdated(b);break;case"thread/goal/cleared":this.handleGoalCleared(b)}}ensureStreamingStarted(a){a&&(this._activeTurnId=a),this._isStreaming||(this._isStreaming=!0,this.emit({type:"agent_start"}),this.emit({type:"message_start",message:{role:"assistant",content:[],...this.assistantMeta()}}))}activeItem(a,b){let c=this._activeItems.get(a);if(c)return c;let d={kind:b,textSoFar:"",receivedDelta:!1};return this._activeItems.set(a,d),d}emitTextUpdate(a){this.emit({type:"message_update",message:{role:"assistant",content:[{type:"text",text:a}],...this.assistantMeta()}})}emitThinkingUpdate(a){this.emit({type:"message_update",message:{role:"assistant",content:[{type:"thinking",thinking:a}],...this.assistantMeta()}})}sandboxPolicy(){return"danger-full-access"===this._sandboxMode?{type:"dangerFullAccess"}:{type:"workspaceWrite",writableRoots:this.cwd?[this.cwd]:[],readOnlyAccess:{type:"fullAccess"},networkAccess:!0,excludeTmpdirEnvVar:!1,excludeSlashTmp:!1}}approvalPolicy(){return"danger-full-access"===this._sandboxMode?"never":"on-request"}requestBelongsToSession(a){return("string"==typeof a?.threadId?a.threadId:"string"==typeof a?.conversationId?a.conversationId:null)===this.threadId}isLegacyApprovalMethod(a){return"execCommandApproval"===a||"applyPatchApproval"===a}handleServerRequest(a){if("item/commandExecution/requestApproval"!==a.method&&"item/fileChange/requestApproval"!==a.method&&"item/permissions/requestApproval"!==a.method&&"execCommandApproval"!==a.method&&"applyPatchApproval"!==a.method)return;let b=a.params;if(!this.requestBelongsToSession(b))return;let c="string"==typeof b?.itemId?b.itemId:"string"==typeof b?.callId?b.callId:null;if(!c)return;let d="string"==typeof b?.approvalId&&b.approvalId?b.approvalId:null,e=d?`${c}:${d}`:c,f=`${a.method}:${e}`;return new Promise(b=>{this._pendingApprovals.set(f,{request:{id:f,method:a.method,serverRequestId:a.id,params:a.params},resolve:b}),this.emit({type:"approval_request",requestId:f,method:a.method,params:a.params})})}eventBelongsToThread(a){return a.threadId===this.threadId}handleTurnStarted(a){this.eventBelongsToThread(a)&&this.ensureStreamingStarted(a.turnId)}handleAgentMessageDelta(a){if(!this.eventBelongsToThread(a))return;let b=a.delta??"";if(!b)return;this.ensureStreamingStarted(a.turnId),this._activeAgentItemId=a.itemId;let c=this.activeItem(a.itemId,"text");c.textSoFar+=b,c.receivedDelta=!0,this._accumulatedText=c.textSoFar,this.emitTextUpdate(c.textSoFar)}handleReasoningDelta(a){if(!this.eventBelongsToThread(a))return;let b=a.delta??"";if(!b)return;this.ensureStreamingStarted(a.turnId);let c=this.activeItem(a.itemId,"thinking");c.textSoFar+=b,c.receivedDelta=!0,this.emitThinkingUpdate(c.textSoFar)}handleItemStarted(a){if(!this.eventBelongsToThread(a))return;let b=a.item;if("commandExecution"===b.type||"fileChange"===b.type||"mcpToolCall"===b.type||"dynamicToolCall"===b.type||"collabAgentToolCall"===b.type){if(this._activeTurnId=a.turnId,"collabAgentToolCall"===b.type)return void this.emit({type:"subagent_progress",runs:(0,f.k8)(b,Date.now())});this.emit({type:"tool_execution_start",toolCallId:b.id,toolName:k(b)})}}handleItemCompleted(a){if(!this.eventBelongsToThread(a))return;let b=a.item;if(this._activeTurnId=a.turnId,"agentMessage"===b.type){this.ensureStreamingStarted(a.turnId);let c=this._activeItems.get(b.id),d=j(b),e=c?.textSoFar||d||this._accumulatedText;!c?.receivedDelta&&e&&this.emitTextUpdate(e),this.emit({type:"message_end",message:{role:"assistant",content:[{type:"text",text:e}],...this.assistantMeta()}}),this._activeItems.delete(b.id),this._accumulatedText="",this._activeAgentItemId=null}else if("reasoning"===b.type){let c=this._activeItems.get(b.id),d=c?.textSoFar||j(b);d&&!c?.receivedDelta&&(this.ensureStreamingStarted(a.turnId),this.emitThinkingUpdate(d)),this._activeItems.delete(b.id)}else if("collabAgentToolCall"===b.type)this.emit({type:"subagent_progress",runs:(0,f.k8)(b,Date.now())});else("commandExecution"===b.type||"fileChange"===b.type||"mcpToolCall"===b.type||"dynamicToolCall"===b.type)&&this.emit({type:"tool_execution_end",toolCallId:b.id,toolName:k(b),result:function(a){if("commandExecution"===a.type){let b=a.aggregatedOutput??"",c=null!==a.exitCode&&void 0!==a.exitCode?`Exit code: ${a.exitCode}`:"";return b?c?`${b}
4
- ${c}`:b:c}return"fileChange"===a.type?JSON.stringify(a.changes??[]):"mcpToolCall"===a.type?a.error?"string"==typeof a.error?a.error:JSON.stringify(a.error):a.result?"string"==typeof a.result?a.result:JSON.stringify(a.result):"":"dynamicToolCall"===a.type?JSON.stringify(a.contentItems??[]):"collabAgentToolCall"===a.type?JSON.stringify(a.agentsStates??[]):""}(b),isError:"status"in b&&"string"==typeof b.status?"failed"===b.status||"declined"===b.status:"dynamicToolCall"===b.type&&!1===b.success})}handleTurnCompleted(a){if(!this.eventBelongsToThread(a))return;this._isStreaming=!1,this._activeTurnId=null;let b=!1;for(let[a,c]of[...this._activeItems])"text"===c.kind&&c.textSoFar&&(this.emit({type:"message_end",message:{role:"assistant",content:[{type:"text",text:c.textSoFar}],...this.assistantMeta()}}),b=!0),this._activeItems.delete(a);b&&(this._accumulatedText=""),this._accumulatedText&&(this.emit({type:"message_end",message:{role:"assistant",content:[{type:"text",text:this._accumulatedText}],...this.assistantMeta()}}),this._accumulatedText=""),this.emit({type:"agent_end",...a.turn?.status==="failed"?{error:a.turn.error?.message??"Turn failed"}:{}})}handleThreadStatusChanged(a){this.eventBelongsToThread(a)&&a.status?.type==="idle"&&this._isStreaming&&(this._isStreaming=!1,this._activeTurnId=null,this._activeItems.clear(),this.emit({type:"agent_end"}))}handleCompacted(a){this.eventBelongsToThread(a)&&(this._isCompacting=!1,this.emit({type:"compaction_end"}))}handleGoalUpdated(a){if(!this.eventBelongsToThread(a))return;let b=(0,g.Bt)(a.goal);b&&(this._threadGoal=b,this.emit({type:"goal_updated",goal:b}))}handleGoalCleared(a){this.eventBelongsToThread(a)&&(this._threadGoal=null,this.emit({type:"goal_cleared"}))}handleError(a){if(!this.eventBelongsToThread(a))return;let b=a.error?.message||a.error?.additionalDetails||"Codex turn failed";this._isStreaming=!1,this._activeTurnId=null,this._activeItems.clear(),this.emit({type:"agent_end",error:b})}async prompt(a,b){if(this._isStreaming)throw Error("Session already has a running turn");this._isStreaming=!0,this._accumulatedText="",this._activeItems.clear(),this.emit({type:"agent_start"}),this.emit({type:"message_start",message:{role:"assistant",content:[],...this.assistantMeta()}});try{let c=await this.connection.request("turn/start",{threadId:this.threadId,input:function(a,b){let c=[];for(let d of(a.trim()&&c.push({type:"text",text:a,text_elements:[]}),b??[])){let a=d.mimeType||"image/png";if(d.path){c.push({type:"localImage",path:d.path});try{let b=d.data??(0,h.zb)(d.path);c.push({type:"image",url:`data:${a};base64,${b}`})}catch{}}else d.data&&c.push({type:"image",url:`data:${a};base64,${d.data}`})}return c.length>0?c:[{type:"text",text:"",text_elements:[]}]}(a,b),...this.cwd?{cwd:this.cwd}:{},...(this._wireModel??this._currentModel)?.modelId?{model:(this._wireModel??this._currentModel).modelId}:{},approvalPolicy:this.approvalPolicy(),approvalsReviewer:"user",sandboxPolicy:this.sandboxPolicy()});this._activeTurnId=c.turn?.id??null}catch(a){this._isStreaming=!1,this._activeItems.clear(),this.emit({type:"agent_end",error:a instanceof Error?a.message:String(a)})}}async abort(){if(this._activeTurnId)try{await this.connection.request("turn/interrupt",{threadId:this.threadId,turnId:this._activeTurnId})}catch{}this._isStreaming=!1,this._activeTurnId=null,this._activeItems.clear()}async setModel(a,b,c){this._currentModel={provider:a,modelId:b},this._wireModel=c??null}async setSandboxMode(a){this._sandboxMode=a}async resume(a,b){let c=await this.connection.request("thread/resume",{threadId:this.threadId,...this.cwd?{cwd:this.cwd}:{},...a?.modelId?{model:a.modelId}:{},...a?.provider?{modelProvider:a.provider}:{},...b?{baseInstructions:b}:{},approvalPolicy:this.approvalPolicy(),sandbox:this._sandboxMode});if(a&&this._currentModel)this._wireModel=a;else if(c.model){let a=(0,e.g8)(c.modelProvider??c.thread?.modelProvider)??"codex";await this.setModel(a,c.model,c.modelProvider?{provider:c.modelProvider,modelId:c.model}:void 0)}this.restoreActiveTurnFromThread(c.thread)}async fork(){try{let a=await this.connection.request("thread/fork",{threadId:this.threadId,persistExtendedHistory:!0}),b=a.thread?.id;if(!b)return{cancelled:!0};return{newThreadId:b}}catch{return{cancelled:!0}}}async navigateTree(a){try{let b=await this.connection.request("thread/read",{threadId:this.threadId,includeTurns:!0}),c=b.thread?.turns??[],d=c.findIndex(b=>b.items.some(b=>b.id===a));if(d<0||d>=c.length-1)return{cancelled:!1};let e=c.length-d-1;return await this.connection.request("thread/rollback",{threadId:this.threadId,numTurns:e}),{cancelled:!1}}catch{return{cancelled:!0}}}async compact(){this._isCompacting=!0,this.emit({type:"compaction_start"});try{await this.connection.request("thread/compact/start",{threadId:this.threadId})}catch(a){this._isCompacting=!1,this.emit({type:"compaction_end",errorMessage:a instanceof Error?a.message:String(a)})}}async setGoal(a,b){let c=await this.connection.request("thread/goal/set",{threadId:this.threadId,objective:a,status:b?.status??"active",...b?.tokenBudget!==void 0?{tokenBudget:b.tokenBudget}:{}}),d=(0,g.Bt)(c.goal);if(!d)throw Error("thread/goal/set returned no goal");return this._threadGoal=d,this.emit({type:"goal_updated",goal:d}),d}async getGoal(){let a=await this.connection.request("thread/goal/get",{threadId:this.threadId}),b=null==a.goal?null:(0,g.Bt)(a.goal);return this._threadGoal=b,b}async clearGoal(){let a=await this.connection.request("thread/goal/clear",{threadId:this.threadId});return a.cleared&&(this._threadGoal=null,this.emit({type:"goal_cleared"})),!!a.cleared}async rename(a){try{await this.connection.request("thread/name/set",{threadId:this.threadId,name:a})}catch{}}async resolveApproval(a,b){let c=this._pendingApprovals.get(a);if(!c)throw Error(`Approval request not found: ${a}`);this._pendingApprovals.delete(a),"item/permissions/requestApproval"===c.request.method?c.resolve({permissions:b.permissions??{},scope:b.scope??"turn"}):this.isLegacyApprovalMethod(c.request.method)?c.resolve({decision:"accept"===b.decision||"acceptForSession"===b.decision||"approved"===b.decision?"approved":"denied"}):c.resolve({decision:b.decision??"decline"}),this.emit({type:"approval_resolved",requestId:a})}destroy(){if(this._alive){for(let a of(this._alive=!1,this._isStreaming=!1,this.cleanupFns))try{a()}catch{}for(let[,a]of(this.cleanupFns=[],this.listeners=[],this._pendingApprovals))"item/permissions/requestApproval"===a.request.method?a.resolve({permissions:{},scope:"turn"}):this.isLegacyApprovalMethod(a.request.method)?a.resolve({decision:"denied"}):a.resolve({decision:"cancel"});this._pendingApprovals.clear()}}}async function l(a,b){let c=await a.request("thread/start",{cwd:b.cwd,...b.baseInstructions?{baseInstructions:b.baseInstructions}:{},...b.model?{model:(b.wireModel??b.model).modelId,modelProvider:(b.wireModel??b.model).provider}:{},approvalPolicy:"danger-full-access"===b.sandboxMode?"never":"on-request",sandbox:b.sandboxMode??"workspace-write",experimentalRawEvents:!1,persistExtendedHistory:!0}),d=c.thread?.id;if(!d)throw Error("Failed to create codex thread: no thread.id returned");let f=new n(d,b.cwd,a,b.baseInstructions);return await f.setSandboxMode(b.sandboxMode??"workspace-write"),b.model?f.setModel(b.model.provider,b.model.modelId,b.wireModel):b.acceptReturnedModel&&c.model&&f.setModel((0,e.g8)(c.modelProvider)??"codex",c.model,c.modelProvider?{provider:c.modelProvider,modelId:c.model}:void 0),f}async function m(a,b,c,d={}){let f=await a.request("thread/resume",{threadId:b,cwd:c,...d.baseInstructions?{baseInstructions:d.baseInstructions}:{},...d.model?{model:(d.wireModel??d.model).modelId,modelProvider:(d.wireModel??d.model).provider}:{},approvalPolicy:"danger-full-access"===d.sandboxMode?"never":"on-request",sandbox:d.sandboxMode??"workspace-write"}),g=new n(b,c,a);return await g.setSandboxMode(d.sandboxMode??"workspace-write"),d.model?g.setModel(d.model.provider,d.model.modelId,d.wireModel):f.model&&g.setModel((0,e.g8)(f.modelProvider??f.thread?.modelProvider)??"codex",f.model,f.modelProvider?{provider:f.modelProvider,modelId:f.model}:void 0),g.restoreActiveTurnFromThread(f.thread),g}d()}catch(a){d(a)}})},14482:(a,b,c)=>{c.d(b,{nt:()=>i,zb:()=>j});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(64489);function i(a,b){let c;if(!b.length)return[];let d=(c=g().join(a,h.zA),e().mkdirSync(c,{recursive:!0}),c),f=[];for(let a of b){let b=Buffer.from(a.data,"base64");if(!b.length)continue;let c=(0,h.ly)(a.mimeType||"image/png"),i=(0,h.CV)(a.name??`paste.${c}`)??`paste.${c}`,j=g().extname(i)?i:`${i}.${c}`,k=null;for(let a=0;a<1e3;a+=1){let c=function(a,b,c){if(0===c)return g().join(a,b);let d=g().extname(b),e=d?b.slice(0,-d.length):b;return g().join(a,`${e}-${c}${d}`)}(d,j,a);try{e().writeFileSync(c,b,{flag:"wx"}),k=c;break}catch(a){if("EEXIST"===a.code)continue;throw a}}if(!k)throw Error(`Could not allocate upload path for ${j}`);f.push({path:k,mimeType:a.mimeType||"image/png",name:g().basename(k),size:b.length})}return f}function j(a){return e().readFileSync(a).toString("base64")}},46696:(a,b,c)=>{c.d(b,{Bt:()=>d});function d(a){return a&&"object"==typeof a?"string"!=typeof a.threadId||"string"!=typeof a.objective||"string"!=typeof a.status?null:{threadId:a.threadId,objective:a.objective,status:a.status,tokenBudget:"number"==typeof a.tokenBudget?a.tokenBudget:(a.tokenBudget,null),tokensUsed:"number"==typeof a.tokensUsed?a.tokensUsed:0,timeUsedSeconds:"number"==typeof a.timeUsedSeconds?a.timeUsedSeconds:0,createdAt:"number"==typeof a.createdAt?a.createdAt:0,updatedAt:"number"==typeof a.updatedAt?a.updatedAt:0}:null}},56429:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>y,Bj:()=>z,OF:()=>A});var e=c(11002),f=c(46983),g=c(55132),h=c(9805),i=c(29021),j=c(33873),k=c(21820),l=c(40402),m=c(66469),n=c(26257),o=c(72801),p=c(54167),q=c(4087),r=c(75120),s=a([e,f,l]);function t(a){return a instanceof Error?a.message:String(a)}function u(a,b,c){return(0,p.w5)(a.providers,b,c)}[e,f,l]=s.then?(await s)():s;class B{constructor(a,b={}){this.inner=a,this.listeners=[],this.cleanupEventSub=null,this.idleTimer=null,this.onDestroyCallback=null,this.busyOperations=new Set,this.busyStartedAtMs=null,this.activeTools=new Map,this.runStartedAtMs=null,this.firstModelEventAtMs=null,this.lastEventAtMs=null,this.lastEventType=null,this.errorMessage=null,this._alive=!0,this._thinkingLevel="auto",this._enabledExtensions=[],this._serverConnection=a.connection,this._needsResumeBeforePrompt=b.needsResumeBeforePrompt??!0,this._sandboxMode=a.sandboxMode}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile}get cwd(){return this.inner.cwd}isAlive(){return this._alive&&this.inner.isAlive}isBusy(){return this.busyOperations.size>0||this.inner.isStreaming||this.inner.isCompacting}getRuntimeStatus(){let a=Date.now(),b=this.getRuntimePhase(),c=this.runStartedAtMs??(this.isBusy()?this.busyStartedAtMs:null);return{sessionId:this.sessionId,sessionFile:this.sessionFile,cwd:this.cwd||null,busy:this.isBusy(),enabledExtensions:[...this._enabledExtensions],operations:[...this.busyOperations],isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,phase:b,model:this.inner.model?{provider:this.inner.model.provider,id:this.inner.model.modelId}:null,sandboxMode:this._sandboxMode,activeTools:[...this.activeTools.values()],runStartedAt:c?new Date(c).toISOString():null,firstModelEventAt:this.firstModelEventAtMs?new Date(this.firstModelEventAtMs).toISOString():null,lastEventAt:this.lastEventAtMs?new Date(this.lastEventAtMs).toISOString():null,lastEventType:this.lastEventType,uptimeMs:this.isBusy()&&c?a-c:null,waitingForModelMs:"waiting_model"===b&&c?a-c:null,pendingMessageCount:0,errorMessage:this.errorMessage}}start(){this.cleanupEventSub?.(),this.cleanupEventSub=this.inner.onEvent(a=>{this.resetIdleTimer(),this.emitToListeners(a)}),this.resetIdleTimer()}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isBusy()?this.resetIdleTimer():this.destroy()},6e5)}onEvent(a){return this.listeners.push(a),()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}onDestroy(a){this.onDestroyCallback=a}setEnabledExtensions(a){this._enabledExtensions=[...new Set(a.filter(Boolean))].sort()}get enabledExtensions(){return[...this._enabledExtensions]}async send(a){this.resetIdleTimer();let b=a.type;switch(b){case"prompt":{let b=a.images,c=a.message;return this.trackBusy("prompt",(async()=>{if(this.inner.isStreaming||(await this.resumeWithCurrentModel(),this.inner.isStreaming))throw Error("Session already has a running turn");await this.inner.prompt(c,b?.map(a=>({data:a.data,mimeType:a.mimeType,path:a.path,name:a.name})))})()).catch(a=>this.emitAgentError(a)),null}case"abort":return await this.inner.abort(),this.busyOperations.delete("prompt"),0===this.busyOperations.size&&(this.busyStartedAtMs=null),this.emitToListeners({type:"agent_end"}),null;case"get_state":{let a=(0,o.l)((0,l.bd)(this.inner.sessionId),this.inner.model?.modelId);return{sessionId:this.inner.sessionId,sessionFile:"",isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,autoCompactionEnabled:!0,autoRetryEnabled:!0,model:this.inner.model?{id:this.inner.model.modelId,provider:this.inner.model.provider,...a.contextUsage?.contextWindow?{contextWindow:a.contextUsage.contextWindow}:{}}:void 0,messageCount:0,pendingMessageCount:0,contextUsage:a.contextUsage,systemPrompt:this.inner.baseInstructions??"",thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,enabledExtensions:[...this._enabledExtensions],threadGoal:this.inner.threadGoal}}case"set_model":{let{provider:b,modelId:c}=a,d=(0,g.Dw)(),e=(0,g.wB)(d,b),h=(0,g.AX)(d,c,e??b),i=h?.provider.id??e??b,j=h?.modelId??c,k=(0,f.kW)(d.providers,i,j);return await this.inner.setModel(i,j,k),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:this.inner.model?.provider??i,modelId:this.inner.model?.modelId??j,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),{id:j,provider:i}}case"set_sandbox_mode":{let b="danger-full-access"===a.mode?"danger-full-access":"workspace-write";return this._sandboxMode=b,await this.inner.setSandboxMode(b),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),{mode:this._sandboxMode}}case"set_enabled_extensions":{let b=Array.isArray(a.ids)?a.ids.filter(a=>"string"==typeof a):[];return this.setEnabledExtensions(b),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),{enabledExtensions:[...this._enabledExtensions]}}case"resolve_approval":{let b="string"==typeof a.requestId?a.requestId:"";if(!b)throw Error("requestId is required");return await this.inner.resolveApproval(b,{decision:"string"==typeof a.decision?a.decision:void 0,permissions:a.permissions,scope:"session"===a.scope?"session":"turn"}),{ok:!0}}case"rename":{let b="string"==typeof a.name?a.name:"";return await this.inner.rename(b),null}case"fork":{let a=await this.inner.fork();if("newThreadId"in a)return(0,n.yJ)(a.newThreadId,{cwd:this.cwd,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),this.destroy(),{cancelled:!1,newSessionId:a.newThreadId};return{cancelled:!0}}case"navigate_tree":{let b=a.targetId;return{cancelled:(await this.inner.navigateTree(b)).cancelled}}case"compact":return await this.trackBusy("compact",this.inner.compact()),null;case"goal_set":{let b="string"==typeof a.objective?a.objective.trim():"";if(!b)throw Error("objective is required");return{goal:await this.inner.setGoal(b)}}case"goal_get":return{goal:await this.inner.getGoal()};case"goal_clear":return{cleared:await this.inner.clearGoal()};case"get_tools":return[{name:"read",description:"Read files",active:!0},{name:"bash",description:"Run shell commands",active:!0},{name:"edit",description:"Edit files",active:!0},{name:"write",description:"Create files",active:!0},{name:"grep",description:"Search files",active:!0},{name:"find",description:"List files",active:!0}];case"set_tools":case"abort_compaction":case"set_auto_compaction":case"set_auto_retry":return null;case"set_thinking_level":return this._thinkingLevel="string"==typeof a.level?a.level:"auto",(0,n.yJ)(this.sessionId,{cwd:this.cwd,thinkingLevel:this._thinkingLevel,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),null;default:throw Error(`Unsupported command: ${b}`)}}async trackBusy(a,b){let c=!this.isBusy()&&0===this.busyOperations.size;this.busyOperations.add(a),(c||!this.busyStartedAtMs)&&(this.busyStartedAtMs=Date.now()),"prompt"===a&&(this.runStartedAtMs=this.busyStartedAtMs,this.firstModelEventAtMs=null,this.errorMessage=null,this.activeTools.clear(),this.lastEventAtMs=this.busyStartedAtMs,this.lastEventType="prompt"),this.resetIdleTimer();try{return await b}finally{this.busyOperations.delete(a),this.isBusy()||0!==this.busyOperations.size||(this.busyStartedAtMs=null),this.resetIdleTimer()}}emitToListeners(a){for(let b of(this.recordRuntimeEvent(a),"agent_end"===a.type&&(this.busyOperations.delete("prompt"),this.busyStartedAtMs=this.isBusy()||this.busyOperations.size>0?this.busyStartedAtMs:null),this.listeners))try{b(a)}catch{}}emitAgentError(a){let b={type:"agent_end",error:t(a)};this.emitToListeners(b)}getRuntimePhase(){return this.inner.isCompacting||this.busyOperations.has("compact")?"compacting":this.activeTools.size>0?"running_tools":this.inner.isStreaming||this.busyOperations.has("prompt")?this.firstModelEventAtMs?"streaming":"waiting_model":"idle"}recordRuntimeEvent(a){let b=Date.now();switch(this.lastEventAtMs=b,this.lastEventType=a.type,a.type){case"agent_start":this.runStartedAtMs??=b,this.firstModelEventAtMs=null,this.errorMessage=null,this.activeTools.clear();break;case"message_update":case"message_end":this.firstModelEventAtMs??=b;break;case"tool_execution_start":{this.firstModelEventAtMs??=b;let c="string"==typeof a.toolCallId&&a.toolCallId?a.toolCallId:`tool:${b}`,d="string"==typeof a.toolName&&a.toolName?a.toolName:"tool";this.activeTools.set(c,{id:c,name:d});break}case"tool_execution_end":{let b="string"==typeof a.toolCallId?a.toolCallId:"";b&&this.activeTools.delete(b),a.isError&&"string"==typeof a.result&&a.result&&(this.errorMessage=a.result);break}case"subagent_progress":this.firstModelEventAtMs??=b,this.recordSubagentTools(a.runs);break;case"compaction_start":case"auto_compaction_start":this.runStartedAtMs??=b;break;case"compaction_end":case"auto_compaction_end":"string"==typeof a.errorMessage&&a.errorMessage&&(this.errorMessage=a.errorMessage);break;case"agent_end":this.activeTools.clear(),"string"==typeof a.error&&a.error&&(this.errorMessage=a.error)}}recordSubagentTools(a){if(Array.isArray(a))for(let b of a){if("object"!=typeof b||null===b)continue;let a=b.id??b.threadId??b.agent,c="string"==typeof a&&a?`subagent:${a}`:`subagent:${Date.now()}`,d=b.agent??b.role??b.threadId,e="string"==typeof d&&d?d:"agent",f="string"==typeof b.status?b.status:"";"running"===f||"pending"===f?this.activeTools.set(c,{id:c,name:e}):this.activeTools.delete(c)}}resolveCurrentModel(){let a=(0,g.Dw)(),b=(0,n.zZ)(this.sessionId),c=u(a,b?.provider,b?.modelId),d=(0,f.g8)(c.provider)??c.provider,e=d?(0,g.wB)(a,d):this.inner.model?.provider,h=c.modelId??this.inner.model?.modelId;if(!h)return null;let i=(0,g.AX)(a,h,e),j=i?.provider.id??e,k=i?.modelId??h;return j&&k?{provider:j,modelId:k,wireModel:(0,f.kW)(a.providers,j,k)}:null}async resumeWithCurrentModel(){let a=this.resolveCurrentModel();if(!this._needsResumeBeforePrompt){a&&await this.inner.setModel(a.provider,a.modelId,a.wireModel),this._needsResumeBeforePrompt=!0;return}a?(await this.inner.setModel(a.provider,a.modelId,a.wireModel),await this.inner.resume(a.wireModel,this.inner.baseInstructions),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:a.provider,modelId:a.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions})):await this.inner.resume(void 0,this.inner.baseInstructions)}destroy(){this._alive&&(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.cleanupEventSub?.(),this.inner.destroy(),(0,f.sM)(this._serverConnection),this.onDestroyCallback?.())}}function v(){if(!globalThis.__annodexSessions){globalThis.__annodexSessions=new Map;let a=()=>globalThis.__annodexSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__annodexSessions}function w(){return globalThis.__annodexSessionAliases||(globalThis.__annodexSessionAliases=new Map),globalThis.__annodexSessionAliases}function x(a){let b=a,c=new Set;for(;!c.has(b);){c.add(b);let a=w().get(b);if(!a)break;b=a}return b}function y(a){return v().get(x(a))}function z(){let a=[...v().values()].filter(a=>a.isAlive()).map(a=>a.getRuntimeStatus()),b=a.filter(a=>a.busy);return{busy:b.length>0,activeSessions:a.length,busySessions:b,sessions:a}}async function A(a,b,c,d,o,p,s,y){let z=v(),A=(globalThis.__annodexStartLocks||(globalThis.__annodexStartLocks=new Map),globalThis.__annodexStartLocks),C=x(a),D=z.get(C);if(D?.isAlive())return{session:D,realSessionId:C};let E=A.get(C);if(E)return E;let F=(async()=>{let d,v=(0,g.Dw)();(0,r.E9)();let x=function(a,b,c="web"){let d=function(a,b){let c=(0,l.$M)(),d=["## Annodex Runtime Rules — higher priority than persona guidance\n\nThese rules override conflicting language in persona-style files such as SOUL.md.\n\n- When the user explicitly asks for an external action in the current conversation, treat that request as authorization to execute it with available tools.\n- Do not refuse solely because the action touches GitHub, Vercel, remote APIs, publishing systems, or other external services.\n- Distinguish authorization from capability. If a tool such as `gh`, `git`, `curl`, or `vercel` may solve the task, try it before claiming it is unavailable. Report the concrete failure only if the command or permission is actually missing.\n- Ask before acting only when the user has not clearly requested the action, the action is unexpectedly destructive beyond the stated request, or it would reveal or transfer secrets beyond the user's instruction."],e=(()=>{let a=(0,j.join)(c,"SOUL.md"),b=(0,j.join)((0,k.homedir)(),".pi","agent","SOUL.md");if(!(0,i.existsSync)(a)&&(0,i.existsSync)(b))try{let c=(0,i.readFileSync)(b,"utf-8");(0,i.existsSync)((0,j.dirname)(a))||(0,i.mkdirSync)((0,j.dirname)(a),{recursive:!0}),(0,i.writeFileSync)(a,c,"utf-8")}catch{}return(0,m.sz)(c)})();if((0,i.existsSync)(e))try{let a=(0,i.readFileSync)(e,"utf-8").trim();a&&d.push((0,m.Is)(a,(0,m.Tg)(e)))}catch{}let f=(()=>{let a=(0,j.join)(c,"HARNESS.md"),b=(0,j.join)((0,k.homedir)(),".pi","agent","HARNESS.md");if(!(0,i.existsSync)(a)&&(0,i.existsSync)(b))try{let c=(0,i.readFileSync)(b,"utf-8");(0,i.existsSync)((0,j.dirname)(a))||(0,i.mkdirSync)((0,j.dirname)(a),{recursive:!0}),(0,i.writeFileSync)(a,c,"utf-8")}catch{}return(0,m.td)(c)})();if((0,i.existsSync)(f))try{let a=(0,i.readFileSync)(f,"utf-8").trim();a&&d.push((0,m.x9)(a,(0,m.Tg)(f)))}catch{}for(let b of[(0,j.join)(a,"AGENTS.md"),(0,j.join)(a,"CLAUDE.md")])if((0,i.existsSync)(b))try{let a=(0,i.readFileSync)(b,"utf-8").trim();if(a){d.push("## Project Instructions","",a);break}}catch{}let g=(0,m.o7)(a);if((0,i.existsSync)(g))try{let a=(0,i.readFileSync)(g,"utf-8").trim();a&&d.push((0,m.w0)(a,(0,m.Tg)(g)))}catch{}let n=(0,m.a)(a);if((0,i.existsSync)(n))try{let a=(0,i.readFileSync)(n,"utf-8").trim();a&&d.push((0,m.Me)(a,(0,m.Tg)(n)))}catch{}let o=d.join("\n\n");return o=b.generativeUI?(0,h.zN)((0,h.FE)(o)):(0,h.FE)(o)}(a,b);if("im"!==c)return d;let e=(0,h.FE)(d);return e.includes("<wecom_im_channel>")?e:`${e}
4
+ ${c}`:b:c}return"fileChange"===a.type?JSON.stringify(a.changes??[]):"mcpToolCall"===a.type?a.error?"string"==typeof a.error?a.error:JSON.stringify(a.error):a.result?"string"==typeof a.result?a.result:JSON.stringify(a.result):"":"dynamicToolCall"===a.type?JSON.stringify(a.contentItems??[]):"collabAgentToolCall"===a.type?JSON.stringify(a.agentsStates??[]):""}(b),isError:"status"in b&&"string"==typeof b.status?"failed"===b.status||"declined"===b.status:"dynamicToolCall"===b.type&&!1===b.success})}handleTurnCompleted(a){if(!this.eventBelongsToThread(a))return;this._isStreaming=!1,this._activeTurnId=null;let b=!1;for(let[a,c]of[...this._activeItems])"text"===c.kind&&c.textSoFar&&(this.emit({type:"message_end",message:{role:"assistant",content:[{type:"text",text:c.textSoFar}],...this.assistantMeta()}}),b=!0),this._activeItems.delete(a);b&&(this._accumulatedText=""),this._accumulatedText&&(this.emit({type:"message_end",message:{role:"assistant",content:[{type:"text",text:this._accumulatedText}],...this.assistantMeta()}}),this._accumulatedText=""),this.emit({type:"agent_end",...a.turn?.status==="failed"?{error:a.turn.error?.message??"Turn failed"}:{}})}handleThreadStatusChanged(a){this.eventBelongsToThread(a)&&a.status?.type==="idle"&&this._isStreaming&&(this._isStreaming=!1,this._activeTurnId=null,this._activeItems.clear(),this.emit({type:"agent_end"}))}handleCompacted(a){this.eventBelongsToThread(a)&&(this._isCompacting=!1,this.emit({type:"compaction_end"}))}handleGoalUpdated(a){if(!this.eventBelongsToThread(a))return;let b=(0,g.Bt)(a.goal);b&&(this._threadGoal=b,this.emit({type:"goal_updated",goal:b}))}handleGoalCleared(a){this.eventBelongsToThread(a)&&(this._threadGoal=null,this.emit({type:"goal_cleared"}))}handleError(a){if(!this.eventBelongsToThread(a))return;let b=a.error?.message||a.error?.additionalDetails||"Codex turn failed";this._isStreaming=!1,this._activeTurnId=null,this._activeItems.clear(),this.emit({type:"agent_end",error:b})}async prompt(a,b){if(this._isStreaming)throw Error("Session already has a running turn");this._isStreaming=!0,this._accumulatedText="",this._activeItems.clear(),this.emit({type:"agent_start"}),this.emit({type:"message_start",message:{role:"assistant",content:[],...this.assistantMeta()}});try{let c=await this.connection.request("turn/start",{threadId:this.threadId,input:function(a,b){let c=[];for(let d of(a.trim()&&c.push({type:"text",text:a,text_elements:[]}),b??[])){let a=d.mimeType||"image/png";if(d.path){c.push({type:"localImage",path:d.path});try{let b=d.data??(0,h.zb)(d.path);c.push({type:"image",url:`data:${a};base64,${b}`})}catch{}}else d.data&&c.push({type:"image",url:`data:${a};base64,${d.data}`})}return c.length>0?c:[{type:"text",text:"",text_elements:[]}]}(a,b),...this.cwd?{cwd:this.cwd}:{},...(this._wireModel??this._currentModel)?.modelId?{model:(this._wireModel??this._currentModel).modelId}:{},approvalPolicy:this.approvalPolicy(),approvalsReviewer:"user",sandboxPolicy:this.sandboxPolicy()});this._activeTurnId=c.turn?.id??null}catch(a){this._isStreaming=!1,this._activeItems.clear(),this.emit({type:"agent_end",error:a instanceof Error?a.message:String(a)})}}async abort(){if(this._activeTurnId)try{await this.connection.request("turn/interrupt",{threadId:this.threadId,turnId:this._activeTurnId})}catch{}this._isStreaming=!1,this._activeTurnId=null,this._activeItems.clear()}async setModel(a,b,c){this._currentModel={provider:a,modelId:b},this._wireModel=c??null}async setSandboxMode(a){this._sandboxMode=a}async resume(a,b){let c=await this.connection.request("thread/resume",{threadId:this.threadId,...this.cwd?{cwd:this.cwd}:{},...a?.modelId?{model:a.modelId}:{},...a?.provider?{modelProvider:a.provider}:{},...b?{baseInstructions:b}:{},approvalPolicy:this.approvalPolicy(),sandbox:this._sandboxMode});if(a&&this._currentModel)this._wireModel=a;else if(c.model){let a=(0,e.g8)(c.modelProvider??c.thread?.modelProvider)??"codex";await this.setModel(a,c.model,c.modelProvider?{provider:c.modelProvider,modelId:c.model}:void 0)}this.restoreActiveTurnFromThread(c.thread)}async fork(){try{let a=await this.connection.request("thread/fork",{threadId:this.threadId,persistExtendedHistory:!0}),b=a.thread?.id;if(!b)return{cancelled:!0};return{newThreadId:b}}catch{return{cancelled:!0}}}async navigateTree(a){try{let b=await this.connection.request("thread/read",{threadId:this.threadId,includeTurns:!0}),c=b.thread?.turns??[],d=c.findIndex(b=>b.items.some(b=>b.id===a));if(d<0||d>=c.length-1)return{cancelled:!1};let e=c.length-d-1;return await this.connection.request("thread/rollback",{threadId:this.threadId,numTurns:e}),{cancelled:!1}}catch{return{cancelled:!0}}}async compact(){this._isCompacting=!0,this.emit({type:"compaction_start"});try{await this.connection.request("thread/compact/start",{threadId:this.threadId})}catch(a){this._isCompacting=!1,this.emit({type:"compaction_end",errorMessage:a instanceof Error?a.message:String(a)})}}async setGoal(a,b){let c=await this.connection.request("thread/goal/set",{threadId:this.threadId,objective:a,status:b?.status??"active",...b?.tokenBudget!==void 0?{tokenBudget:b.tokenBudget}:{}}),d=(0,g.Bt)(c.goal);if(!d)throw Error("thread/goal/set returned no goal");return this._threadGoal=d,this.emit({type:"goal_updated",goal:d}),d}async getGoal(){let a=await this.connection.request("thread/goal/get",{threadId:this.threadId}),b=null==a.goal?null:(0,g.Bt)(a.goal);return this._threadGoal=b,b}async clearGoal(){let a=await this.connection.request("thread/goal/clear",{threadId:this.threadId});return a.cleared&&(this._threadGoal=null,this.emit({type:"goal_cleared"})),!!a.cleared}async rename(a){try{await this.connection.request("thread/name/set",{threadId:this.threadId,name:a})}catch{}}async resolveApproval(a,b){let c=this._pendingApprovals.get(a);if(!c)throw Error(`Approval request not found: ${a}`);this._pendingApprovals.delete(a),"item/permissions/requestApproval"===c.request.method?c.resolve({permissions:b.permissions??{},scope:b.scope??"turn"}):this.isLegacyApprovalMethod(c.request.method)?c.resolve({decision:"accept"===b.decision||"acceptForSession"===b.decision||"approved"===b.decision?"approved":"denied"}):c.resolve({decision:b.decision??"decline"}),this.emit({type:"approval_resolved",requestId:a})}destroy(){if(this._alive){for(let a of(this._alive=!1,this._isStreaming=!1,this.cleanupFns))try{a()}catch{}for(let[,a]of(this.cleanupFns=[],this.listeners=[],this._pendingApprovals))"item/permissions/requestApproval"===a.request.method?a.resolve({permissions:{},scope:"turn"}):this.isLegacyApprovalMethod(a.request.method)?a.resolve({decision:"denied"}):a.resolve({decision:"cancel"});this._pendingApprovals.clear()}}}async function l(a,b){let c=await a.request("thread/start",{cwd:b.cwd,...b.baseInstructions?{baseInstructions:b.baseInstructions}:{},...b.model?{model:(b.wireModel??b.model).modelId,modelProvider:(b.wireModel??b.model).provider}:{},approvalPolicy:"danger-full-access"===b.sandboxMode?"never":"on-request",sandbox:b.sandboxMode??"workspace-write",experimentalRawEvents:!1,persistExtendedHistory:!0}),d=c.thread?.id;if(!d)throw Error("Failed to create codex thread: no thread.id returned");let f=new n(d,b.cwd,a,b.baseInstructions);return await f.setSandboxMode(b.sandboxMode??"workspace-write"),b.model?f.setModel(b.model.provider,b.model.modelId,b.wireModel):b.acceptReturnedModel&&c.model&&f.setModel((0,e.g8)(c.modelProvider)??"codex",c.model,c.modelProvider?{provider:c.modelProvider,modelId:c.model}:void 0),f}async function m(a,b,c,d={}){let f=await a.request("thread/resume",{threadId:b,cwd:c,...d.baseInstructions?{baseInstructions:d.baseInstructions}:{},...d.model?{model:(d.wireModel??d.model).modelId,modelProvider:(d.wireModel??d.model).provider}:{},approvalPolicy:"danger-full-access"===d.sandboxMode?"never":"on-request",sandbox:d.sandboxMode??"workspace-write"}),g=new n(b,c,a);return await g.setSandboxMode(d.sandboxMode??"workspace-write"),d.model?g.setModel(d.model.provider,d.model.modelId,d.wireModel):f.model&&g.setModel((0,e.g8)(f.modelProvider??f.thread?.modelProvider)??"codex",f.model,f.modelProvider?{provider:f.modelProvider,modelId:f.model}:void 0),g.restoreActiveTurnFromThread(f.thread),g}d()}catch(a){d(a)}})},14482:(a,b,c)=>{c.d(b,{nt:()=>g,zb:()=>h});var d=c(29021),e=c.n(d);c(33873),c(64489);var f=c(69835);function g(a,b){return(0,f.vk)(a,b)}function h(a){return e().readFileSync(a).toString("base64")}},46696:(a,b,c)=>{c.d(b,{Bt:()=>d});function d(a){return a&&"object"==typeof a?"string"!=typeof a.threadId||"string"!=typeof a.objective||"string"!=typeof a.status?null:{threadId:a.threadId,objective:a.objective,status:a.status,tokenBudget:"number"==typeof a.tokenBudget?a.tokenBudget:(a.tokenBudget,null),tokensUsed:"number"==typeof a.tokensUsed?a.tokensUsed:0,timeUsedSeconds:"number"==typeof a.timeUsedSeconds?a.timeUsedSeconds:0,createdAt:"number"==typeof a.createdAt?a.createdAt:0,updatedAt:"number"==typeof a.updatedAt?a.updatedAt:0}:null}},56429:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>y,Bj:()=>z,OF:()=>A});var e=c(11002),f=c(46983),g=c(55132),h=c(9805),i=c(29021),j=c(33873),k=c(21820),l=c(40402),m=c(66469),n=c(26257),o=c(72801),p=c(54167),q=c(4087),r=c(75120),s=a([e,f,l]);function t(a){return a instanceof Error?a.message:String(a)}function u(a,b,c){return(0,p.w5)(a.providers,b,c)}[e,f,l]=s.then?(await s)():s;class B{constructor(a,b={}){this.inner=a,this.listeners=[],this.cleanupEventSub=null,this.idleTimer=null,this.onDestroyCallback=null,this.busyOperations=new Set,this.busyStartedAtMs=null,this.activeTools=new Map,this.runStartedAtMs=null,this.firstModelEventAtMs=null,this.lastEventAtMs=null,this.lastEventType=null,this.errorMessage=null,this._alive=!0,this._thinkingLevel="auto",this._enabledExtensions=[],this._serverConnection=a.connection,this._needsResumeBeforePrompt=b.needsResumeBeforePrompt??!0,this._sandboxMode=a.sandboxMode}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile}get cwd(){return this.inner.cwd}isAlive(){return this._alive&&this.inner.isAlive}isBusy(){return this.busyOperations.size>0||this.inner.isStreaming||this.inner.isCompacting}getRuntimeStatus(){let a=Date.now(),b=this.getRuntimePhase(),c=this.runStartedAtMs??(this.isBusy()?this.busyStartedAtMs:null);return{sessionId:this.sessionId,sessionFile:this.sessionFile,cwd:this.cwd||null,busy:this.isBusy(),enabledExtensions:[...this._enabledExtensions],operations:[...this.busyOperations],isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,phase:b,model:this.inner.model?{provider:this.inner.model.provider,id:this.inner.model.modelId}:null,sandboxMode:this._sandboxMode,activeTools:[...this.activeTools.values()],runStartedAt:c?new Date(c).toISOString():null,firstModelEventAt:this.firstModelEventAtMs?new Date(this.firstModelEventAtMs).toISOString():null,lastEventAt:this.lastEventAtMs?new Date(this.lastEventAtMs).toISOString():null,lastEventType:this.lastEventType,uptimeMs:this.isBusy()&&c?a-c:null,waitingForModelMs:"waiting_model"===b&&c?a-c:null,pendingMessageCount:0,errorMessage:this.errorMessage}}start(){this.cleanupEventSub?.(),this.cleanupEventSub=this.inner.onEvent(a=>{this.resetIdleTimer(),this.emitToListeners(a)}),this.resetIdleTimer()}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isBusy()?this.resetIdleTimer():this.destroy()},6e5)}onEvent(a){return this.listeners.push(a),()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}onDestroy(a){this.onDestroyCallback=a}setEnabledExtensions(a){this._enabledExtensions=[...new Set(a.filter(Boolean))].sort()}get enabledExtensions(){return[...this._enabledExtensions]}async send(a){this.resetIdleTimer();let b=a.type;switch(b){case"prompt":{let b=a.images,c=a.message;return this.trackBusy("prompt",(async()=>{if(this.inner.isStreaming||(await this.resumeWithCurrentModel(),this.inner.isStreaming))throw Error("Session already has a running turn");await this.inner.prompt(c,b?.map(a=>({data:a.data,mimeType:a.mimeType,path:a.path,name:a.name})))})()).catch(a=>this.emitAgentError(a)),null}case"abort":return await this.inner.abort(),this.busyOperations.delete("prompt"),0===this.busyOperations.size&&(this.busyStartedAtMs=null),this.emitToListeners({type:"agent_end"}),null;case"get_state":{let a=(0,o.l)((0,l.bd)(this.inner.sessionId),this.inner.model?.modelId);return{sessionId:this.inner.sessionId,sessionFile:"",isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,autoCompactionEnabled:!0,autoRetryEnabled:!0,model:this.inner.model?{id:this.inner.model.modelId,provider:this.inner.model.provider,...a.contextUsage?.contextWindow?{contextWindow:a.contextUsage.contextWindow}:{}}:void 0,messageCount:0,pendingMessageCount:0,contextUsage:a.contextUsage,systemPrompt:this.inner.baseInstructions??"",thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,enabledExtensions:[...this._enabledExtensions],threadGoal:this.inner.threadGoal}}case"set_model":{let{provider:b,modelId:c}=a,d=(0,g.Dw)(),e=(0,g.wB)(d,b),h=(0,g.AX)(d,c,e??b),i=h?.provider.id??e??b,j=h?.modelId??c,k=(0,f.kW)(d.providers,i,j);return await this.inner.setModel(i,j,k),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:this.inner.model?.provider??i,modelId:this.inner.model?.modelId??j,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),{id:j,provider:i}}case"set_sandbox_mode":{let b="danger-full-access"===a.mode?"danger-full-access":"workspace-write";return this._sandboxMode=b,await this.inner.setSandboxMode(b),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),{mode:this._sandboxMode}}case"set_enabled_extensions":{let b=Array.isArray(a.ids)?a.ids.filter(a=>"string"==typeof a):[];return this.setEnabledExtensions(b),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),{enabledExtensions:[...this._enabledExtensions]}}case"resolve_approval":{let b="string"==typeof a.requestId?a.requestId:"";if(!b)throw Error("requestId is required");return await this.inner.resolveApproval(b,{decision:"string"==typeof a.decision?a.decision:void 0,permissions:a.permissions,scope:"session"===a.scope?"session":"turn"}),{ok:!0}}case"rename":{let b="string"==typeof a.name?a.name:"";return await this.inner.rename(b),null}case"fork":{let a=await this.inner.fork();if("newThreadId"in a)return(0,n.yJ)(a.newThreadId,{cwd:this.cwd,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),this.destroy(),{cancelled:!1,newSessionId:a.newThreadId};return{cancelled:!0}}case"navigate_tree":{let b=a.targetId;return{cancelled:(await this.inner.navigateTree(b)).cancelled}}case"compact":return await this.trackBusy("compact",this.inner.compact()),null;case"goal_set":{let b="string"==typeof a.objective?a.objective.trim():"";if(!b)throw Error("objective is required");return{goal:await this.inner.setGoal(b)}}case"goal_get":return{goal:await this.inner.getGoal()};case"goal_clear":return{cleared:await this.inner.clearGoal()};case"get_tools":return[{name:"read",description:"Read files",active:!0},{name:"bash",description:"Run shell commands",active:!0},{name:"edit",description:"Edit files",active:!0},{name:"write",description:"Create files",active:!0},{name:"grep",description:"Search files",active:!0},{name:"find",description:"List files",active:!0}];case"set_tools":case"abort_compaction":case"set_auto_compaction":case"set_auto_retry":return null;case"set_thinking_level":return this._thinkingLevel="string"==typeof a.level?a.level:"auto",(0,n.yJ)(this.sessionId,{cwd:this.cwd,thinkingLevel:this._thinkingLevel,provider:this.inner.model?.provider,modelId:this.inner.model?.modelId,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions}),null;default:throw Error(`Unsupported command: ${b}`)}}async trackBusy(a,b){let c=!this.isBusy()&&0===this.busyOperations.size;this.busyOperations.add(a),(c||!this.busyStartedAtMs)&&(this.busyStartedAtMs=Date.now()),"prompt"===a&&(this.runStartedAtMs=this.busyStartedAtMs,this.firstModelEventAtMs=null,this.errorMessage=null,this.activeTools.clear(),this.lastEventAtMs=this.busyStartedAtMs,this.lastEventType="prompt"),this.resetIdleTimer();try{return await b}finally{this.busyOperations.delete(a),this.isBusy()||0!==this.busyOperations.size||(this.busyStartedAtMs=null),this.resetIdleTimer()}}emitToListeners(a){for(let b of(this.recordRuntimeEvent(a),"agent_end"===a.type&&(this.busyOperations.delete("prompt"),this.busyStartedAtMs=this.isBusy()||this.busyOperations.size>0?this.busyStartedAtMs:null),this.listeners))try{b(a)}catch{}}emitAgentError(a){let b={type:"agent_end",error:t(a)};this.emitToListeners(b)}getRuntimePhase(){return this.inner.isCompacting||this.busyOperations.has("compact")?"compacting":this.activeTools.size>0?"running_tools":this.inner.isStreaming||this.busyOperations.has("prompt")?this.firstModelEventAtMs?"streaming":"waiting_model":"idle"}recordRuntimeEvent(a){let b=Date.now();switch(this.lastEventAtMs=b,this.lastEventType=a.type,a.type){case"agent_start":this.runStartedAtMs??=b,this.firstModelEventAtMs=null,this.errorMessage=null,this.activeTools.clear();break;case"message_update":case"message_end":this.firstModelEventAtMs??=b;break;case"tool_execution_start":{this.firstModelEventAtMs??=b;let c="string"==typeof a.toolCallId&&a.toolCallId?a.toolCallId:`tool:${b}`,d="string"==typeof a.toolName&&a.toolName?a.toolName:"tool";this.activeTools.set(c,{id:c,name:d});break}case"tool_execution_end":{let b="string"==typeof a.toolCallId?a.toolCallId:"";b&&this.activeTools.delete(b),a.isError&&"string"==typeof a.result&&a.result&&(this.errorMessage=a.result);break}case"subagent_progress":this.firstModelEventAtMs??=b,this.recordSubagentTools(a.runs);break;case"compaction_start":case"auto_compaction_start":this.runStartedAtMs??=b;break;case"compaction_end":case"auto_compaction_end":"string"==typeof a.errorMessage&&a.errorMessage&&(this.errorMessage=a.errorMessage);break;case"agent_end":this.activeTools.clear(),"string"==typeof a.error&&a.error&&(this.errorMessage=a.error)}}recordSubagentTools(a){if(Array.isArray(a))for(let b of a){if("object"!=typeof b||null===b)continue;let a=b.id??b.threadId??b.agent,c="string"==typeof a&&a?`subagent:${a}`:`subagent:${Date.now()}`,d=b.agent??b.role??b.threadId,e="string"==typeof d&&d?d:"agent",f="string"==typeof b.status?b.status:"";"running"===f||"pending"===f?this.activeTools.set(c,{id:c,name:e}):this.activeTools.delete(c)}}resolveCurrentModel(){let a=(0,g.Dw)(),b=(0,n.zZ)(this.sessionId),c=u(a,b?.provider,b?.modelId),d=(0,f.g8)(c.provider)??c.provider,e=d?(0,g.wB)(a,d):this.inner.model?.provider,h=c.modelId??this.inner.model?.modelId;if(!h)return null;let i=(0,g.AX)(a,h,e),j=i?.provider.id??e,k=i?.modelId??h;return j&&k?{provider:j,modelId:k,wireModel:(0,f.kW)(a.providers,j,k)}:null}async resumeWithCurrentModel(){let a=this.resolveCurrentModel();if(!this._needsResumeBeforePrompt){a&&await this.inner.setModel(a.provider,a.modelId,a.wireModel),this._needsResumeBeforePrompt=!0;return}a?(await this.inner.setModel(a.provider,a.modelId,a.wireModel),await this.inner.resume(a.wireModel,this.inner.baseInstructions),(0,n.yJ)(this.sessionId,{cwd:this.cwd,provider:a.provider,modelId:a.modelId,thinkingLevel:this._thinkingLevel,sandboxMode:this._sandboxMode,extensions:this._enabledExtensions})):await this.inner.resume(void 0,this.inner.baseInstructions)}destroy(){this._alive&&(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.cleanupEventSub?.(),this.inner.destroy(),(0,f.sM)(this._serverConnection),this.onDestroyCallback?.())}}function v(){if(!globalThis.__annodexSessions){globalThis.__annodexSessions=new Map;let a=()=>globalThis.__annodexSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__annodexSessions}function w(){return globalThis.__annodexSessionAliases||(globalThis.__annodexSessionAliases=new Map),globalThis.__annodexSessionAliases}function x(a){let b=a,c=new Set;for(;!c.has(b);){c.add(b);let a=w().get(b);if(!a)break;b=a}return b}function y(a){return v().get(x(a))}function z(){let a=[...v().values()].filter(a=>a.isAlive()).map(a=>a.getRuntimeStatus()),b=a.filter(a=>a.busy);return{busy:b.length>0,activeSessions:a.length,busySessions:b,sessions:a}}async function A(a,b,c,d,o,p,s,y){let z=v(),A=(globalThis.__annodexStartLocks||(globalThis.__annodexStartLocks=new Map),globalThis.__annodexStartLocks),C=x(a),D=z.get(C);if(D?.isAlive())return{session:D,realSessionId:C};let E=A.get(C);if(E)return E;let F=(async()=>{let d,v=(0,g.Dw)();(0,r.E9)();let x=function(a,b,c="web"){let d=function(a,b){let c=(0,l.$M)(),d=["## Annodex Runtime Rules — higher priority than persona guidance\n\nThese rules override conflicting language in persona-style files such as SOUL.md.\n\n- When the user explicitly asks for an external action in the current conversation, treat that request as authorization to execute it with available tools.\n- Do not refuse solely because the action touches GitHub, Vercel, remote APIs, publishing systems, or other external services.\n- Distinguish authorization from capability. If a tool such as `gh`, `git`, `curl`, or `vercel` may solve the task, try it before claiming it is unavailable. Report the concrete failure only if the command or permission is actually missing.\n- Ask before acting only when the user has not clearly requested the action, the action is unexpectedly destructive beyond the stated request, or it would reveal or transfer secrets beyond the user's instruction."],e=(()=>{let a=(0,j.join)(c,"SOUL.md"),b=(0,j.join)((0,k.homedir)(),".pi","agent","SOUL.md");if(!(0,i.existsSync)(a)&&(0,i.existsSync)(b))try{let c=(0,i.readFileSync)(b,"utf-8");(0,i.existsSync)((0,j.dirname)(a))||(0,i.mkdirSync)((0,j.dirname)(a),{recursive:!0}),(0,i.writeFileSync)(a,c,"utf-8")}catch{}return(0,m.sz)(c)})();if((0,i.existsSync)(e))try{let a=(0,i.readFileSync)(e,"utf-8").trim();a&&d.push((0,m.Is)(a,(0,m.Tg)(e)))}catch{}let f=(()=>{let a=(0,j.join)(c,"HARNESS.md"),b=(0,j.join)((0,k.homedir)(),".pi","agent","HARNESS.md");if(!(0,i.existsSync)(a)&&(0,i.existsSync)(b))try{let c=(0,i.readFileSync)(b,"utf-8");(0,i.existsSync)((0,j.dirname)(a))||(0,i.mkdirSync)((0,j.dirname)(a),{recursive:!0}),(0,i.writeFileSync)(a,c,"utf-8")}catch{}return(0,m.td)(c)})();if((0,i.existsSync)(f))try{let a=(0,i.readFileSync)(f,"utf-8").trim();a&&d.push((0,m.x9)(a,(0,m.Tg)(f)))}catch{}for(let b of[(0,j.join)(a,"AGENTS.md"),(0,j.join)(a,"CLAUDE.md")])if((0,i.existsSync)(b))try{let a=(0,i.readFileSync)(b,"utf-8").trim();if(a){d.push("## Project Instructions","",a);break}}catch{}let g=(0,m.o7)(a);if((0,i.existsSync)(g))try{let a=(0,i.readFileSync)(g,"utf-8").trim();a&&d.push((0,m.w0)(a,(0,m.Tg)(g)))}catch{}let n=(0,m.a)(a);if((0,i.existsSync)(n))try{let a=(0,i.readFileSync)(n,"utf-8").trim();a&&d.push((0,m.Me)(a,(0,m.Tg)(n)))}catch{}let o=d.join("\n\n");return o=b.generativeUI?(0,h.zN)((0,h.FE)(o)):(0,h.FE)(o)}(a,b);if("im"!==c)return d;let e=(0,h.FE)(d);return e.includes("<wecom_im_channel>")?e:`${e}
5
5
 
6
6
  <wecom_im_channel>
7
7
  WeCom IM channel: plain text and file attachments only.
@@ -9,4 +9,4 @@ Do not use show-widget, HTML fences, or interactive charts in replies.
9
9
  For diagrams or exports: save PNG/PDF (or similar) under the project directory and add one line per file:
10
10
  MEDIA:/absolute/path/to/file.png
11
11
  Also mention each saved file path in plain text.
12
- </wecom_im_channel>`}(c,v,y?.channel??"web"),A=(0,r.IE)(c).map(a=>a.id),C=b?(0,l.Qx)(a):null,D=b?(0,n.zZ)(a):null,E=u(v,C?.provider,C?.modelId),F=E.provider?(0,g.wB)(v,E.provider):void 0,G=o??(E.modelId?{provider:F,modelId:E.modelId}:void 0),H=G?.provider??F,I=p??C?.thinkingLevel,J=s??D?.sandboxMode??(0,q.readAppSettings)().defaultSandboxMode??"workspace-write",K=G?null:(0,g.fZ)(v),L=G??K??void 0,M=L?.provider??H,N=L?(0,g.AX)(v,L.modelId,M):null,O=N?.modelId??L?.modelId,P=N?.provider.id??M,Q=O&&P?(0,f.kW)(v.providers,P,O):void 0,R=await (0,f.gu)(c,(0,f.H3)(v.providers));if(b)try{d=await (0,e.z2)(R,a,c,{baseInstructions:x,sandboxMode:J,...O&&P?{model:{provider:P,modelId:O},wireModel:Q}:{}})}catch(f){if(!/thread not found|not found/i.test(t(f)))throw f;if(b&&(0,l.PF)(a))throw Error(`Codex thread not found for existing session ${a}. Check the session provider/model configuration.`);d=await (0,e.WK)(R,{cwd:c,baseInstructions:x,acceptReturnedModel:!!v.codexDefaults.model,sandboxMode:J,...O&&P?{model:{provider:P,modelId:O},wireModel:Q}:{}})}else d=await (0,e.WK)(R,{cwd:c,baseInstructions:x,acceptReturnedModel:!!v.codexDefaults.model,sandboxMode:J,...O&&P?{model:{provider:P,modelId:O},wireModel:Q}:{}});let S=d.model?.provider??P,T=d.model?.modelId??O;S&&T&&await d.setModel(S,T,(0,f.kW)(v.providers,S,T));let U=new B(d,{needsResumeBeforePrompt:!!b});U.setEnabledExtensions(A);let V=d.sessionId;return a&&a!==V&&w().set(a,V),(0,n.yJ)(V,{cwd:c,provider:d.model?.provider??S,modelId:d.model?.modelId??T,thinkingLevel:I,sandboxMode:J,extensions:A}),I&&await U.send({type:"set_thinking_level",level:I}),U.start(),U.onDestroy(()=>{z.delete(V);let a=w();for(let[b,c]of(a.delete(V),a))c===V&&a.delete(b)}),z.set(V,U),{session:U,realSessionId:V}})().finally(()=>A.delete(C));return A.set(C,F),F}d()}catch(a){d(a)}})},66469:(a,b,c)=>{c.d(b,{Ed:()=>k,Is:()=>m,M3:()=>i,Me:()=>p,Tg:()=>l,a:()=>j,o7:()=>h,sz:()=>f,td:()=>g,w0:()=>o,x9:()=>n});var d=c(29021),e=c(33873);function f(a){let b=(0,e.join)(a,"SOUL.md");if((0,d.existsSync)(b))return b;let c=(0,e.join)(a,"soul.md");return(0,d.existsSync)(c)?c:b}function g(a){let b=(0,e.join)(a,"HARNESS.md");if((0,d.existsSync)(b))return b;let c=(0,e.join)(a,"harness.md");return(0,d.existsSync)(c)?c:b}function h(a){let b=(0,e.join)(a,"MEMORY.md");if((0,d.existsSync)(b))return b;let c=(0,e.join)(a,"memory.md");return(0,d.existsSync)(c)?c:b}function i(a){return(0,e.join)(a,"MEMORY.md")}function j(a){let b=(0,e.join)(a,"CONTEXT.md");if((0,d.existsSync)(b))return b;let c=(0,e.join)(a,"context.md");return(0,d.existsSync)(c)?c:b}function k(a){return(0,e.join)(a,"CONTEXT.md")}function l(a){return(0,e.basename)(a)}function m(a,b="SOUL.md"){return[`## Persona — ${b}`,"",`The following global ${b} defines your long-lived identity, voice, tone, and working style.`,"You MUST embody this persona and tone in all replies.\nAvoid stiff, generic, or AI-assistant-style responses.\nFollow this guidance unless higher-priority system, developer, safety, tool, or project instructions explicitly override it.\n",a].join("\n")}function n(a,b="HARNESS.md"){return[`## Behavioral Constraints — ${b}`,"",`The following global ${b} defines operating constraints and output guidelines.`,"You MUST comply with every constraint.\nThese are mandatory behavioral rules. When they conflict with persona preferences, the constraints win.\n",a].join("\n")}function o(a,b="MEMORY.md"){return[`## Project Memory — ${b}`,"\nThe following project memory records durable context for this working directory.\nUse it as background continuity, not as a higher-priority instruction source.\n",a].join("\n")}function p(a,b="CONTEXT.md"){return[`## Project Context — ${b}`,"\nThe following project context captures stable facts, conventions, and working assumptions for this directory.\nUse it as durable background context, not as a higher-priority instruction source.\n",a].join("\n")}},75120:(a,b,c)=>{c.d(b,{E9:()=>r,IE:()=>p,In:()=>m,N8:()=>h,NR:()=>n,YJ:()=>k,d2:()=>g,nD:()=>o,wf:()=>l});var d=c(29021),e=c(33873),f=c(21820);function g(){return(0,e.join)(process.env.ANNODEX_CONFIG_DIR??process.env.ANNOVIBE_CONFIG_DIR??(0,e.join)((0,f.homedir)(),".config","annodex"),"extensions.json")}function h(a){return(0,e.join)(a,".codex","extensions.json")}function i(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function j(a){let b=function(a){if(!(0,d.existsSync)(a))return null;try{return JSON.parse((0,d.readFileSync)(a,"utf-8"))}catch{return null}}(a),c=i(b)&&Array.isArray(b.extensions)?b.extensions:[],e=a.replace(/\\/g,"/").endsWith("/.codex/extensions.json")?"project":"global";return{extensions:c.map(a=>(function(a,b){var c;if(!i(a))return null;let d="string"==typeof a.id?a.id.trim():"",e="string"==typeof a.name?a.name.trim():"";return d&&e?{id:d,name:e,description:"string"==typeof a.description?a.description:void 0,source:"string"==typeof a.source?a.source:void 0,enabled:"boolean"==typeof a.enabled?a.enabled:void 0,scope:"project"===a.scope?"project":b,installPath:"string"==typeof a.installPath?a.installPath:void 0,transport:i(c=a.transport)?{type:"http"===c.type?"http":"stdio",command:"string"==typeof c.command?c.command:void 0,args:Array.isArray(c.args)?c.args.filter(a=>"string"==typeof a):void 0,url:"string"==typeof c.url?c.url:void 0}:{type:"stdio"},env:i(a.env)?Object.fromEntries(Object.entries(a.env).filter(([,a])=>"string"==typeof a)):void 0,notes:"string"==typeof a.notes?a.notes:void 0}:null})(a,e)).filter(a=>null!==a)}}function k(){return j(g())}function l(a){return j(h(a))}function m(a,b){let c;return c=(0,e.dirname)(a),(0,d.existsSync)(c)||(0,d.mkdirSync)(c,{recursive:!0}),(0,d.writeFileSync)(a,JSON.stringify({extensions:b.extensions},null,2),"utf-8"),b}function n(a,b){let c=j(a).extensions.filter(a=>a.id!==b.id).concat(b);return m(a,{extensions:c})}function o(a){let b=k().extensions.map(a=>({...a,scope:a.scope??"global"}));if(!a)return b;let c=l(a).extensions.map(a=>({...a,scope:"project"})),d=new Map;for(let a of b)d.set(a.id,a);for(let a of c)d.set(a.id,{...d.get(a.id),...a,scope:"project"});return[...d.values()].sort((a,b)=>a.name.localeCompare(b.name))}function p(a){return o(a).filter(a=>!1!==a.enabled)}let q="annodex-memory";function r(){let a=g(),b=j(a).extensions.find(a=>a.id===q);if(b)return b;let c=function(a="global"){return{id:q,name:"Annodex Memory",description:"Project working memory tools: retain, recall, reflect",scope:a,enabled:!0,source:"annodex",transport:{type:"stdio",command:"annodex-memory-mcp",args:[]},notes:"Requires annodex to be running. Stores JSONL working memory under ~/.config/annodex/memory/."}}("global");return n(a,c),c}}};
12
+ </wecom_im_channel>`}(c,v,y?.channel??"web"),A=(0,r.IE)(c).map(a=>a.id),C=b?(0,l.Qx)(a):null,D=b?(0,n.zZ)(a):null,E=u(v,C?.provider,C?.modelId),F=E.provider?(0,g.wB)(v,E.provider):void 0,G=o??(E.modelId?{provider:F,modelId:E.modelId}:void 0),H=G?.provider??F,I=p??C?.thinkingLevel,J=s??D?.sandboxMode??(0,q.readAppSettings)().defaultSandboxMode??"workspace-write",K=G?null:(0,g.fZ)(v),L=G??K??void 0,M=L?.provider??H,N=L?(0,g.AX)(v,L.modelId,M):null,O=N?.modelId??L?.modelId,P=N?.provider.id??M,Q=O&&P?(0,f.kW)(v.providers,P,O):void 0,R=await (0,f.gu)(c,(0,f.H3)(v.providers));if(b)try{d=await (0,e.z2)(R,a,c,{baseInstructions:x,sandboxMode:J,...O&&P?{model:{provider:P,modelId:O},wireModel:Q}:{}})}catch(f){if(!/thread not found|not found/i.test(t(f)))throw f;if(b&&(0,l.PF)(a))throw Error(`Codex thread not found for existing session ${a}. Check the session provider/model configuration.`);d=await (0,e.WK)(R,{cwd:c,baseInstructions:x,acceptReturnedModel:!!v.codexDefaults.model,sandboxMode:J,...O&&P?{model:{provider:P,modelId:O},wireModel:Q}:{}})}else d=await (0,e.WK)(R,{cwd:c,baseInstructions:x,acceptReturnedModel:!!v.codexDefaults.model,sandboxMode:J,...O&&P?{model:{provider:P,modelId:O},wireModel:Q}:{}});let S=d.model?.provider??P,T=d.model?.modelId??O;S&&T&&await d.setModel(S,T,(0,f.kW)(v.providers,S,T));let U=new B(d,{needsResumeBeforePrompt:!!b});U.setEnabledExtensions(A);let V=d.sessionId;return a&&a!==V&&w().set(a,V),(0,n.yJ)(V,{cwd:c,provider:d.model?.provider??S,modelId:d.model?.modelId??T,thinkingLevel:I,sandboxMode:J,extensions:A}),I&&await U.send({type:"set_thinking_level",level:I}),U.start(),U.onDestroy(()=>{z.delete(V);let a=w();for(let[b,c]of(a.delete(V),a))c===V&&a.delete(b)}),z.set(V,U),{session:U,realSessionId:V}})().finally(()=>A.delete(C));return A.set(C,F),F}d()}catch(a){d(a)}})},66469:(a,b,c)=>{c.d(b,{Ed:()=>k,Is:()=>m,M3:()=>i,Me:()=>p,Tg:()=>l,a:()=>j,o7:()=>h,sz:()=>f,td:()=>g,w0:()=>o,x9:()=>n});var d=c(29021),e=c(33873);function f(a){let b=(0,e.join)(a,"SOUL.md");if((0,d.existsSync)(b))return b;let c=(0,e.join)(a,"soul.md");return(0,d.existsSync)(c)?c:b}function g(a){let b=(0,e.join)(a,"HARNESS.md");if((0,d.existsSync)(b))return b;let c=(0,e.join)(a,"harness.md");return(0,d.existsSync)(c)?c:b}function h(a){let b=(0,e.join)(a,"MEMORY.md");if((0,d.existsSync)(b))return b;let c=(0,e.join)(a,"memory.md");return(0,d.existsSync)(c)?c:b}function i(a){return(0,e.join)(a,"MEMORY.md")}function j(a){let b=(0,e.join)(a,"CONTEXT.md");if((0,d.existsSync)(b))return b;let c=(0,e.join)(a,"context.md");return(0,d.existsSync)(c)?c:b}function k(a){return(0,e.join)(a,"CONTEXT.md")}function l(a){return(0,e.basename)(a)}function m(a,b="SOUL.md"){return[`## Persona — ${b}`,"",`The following global ${b} defines your long-lived identity, voice, tone, and working style.`,"You MUST embody this persona and tone in all replies.\nAvoid stiff, generic, or AI-assistant-style responses.\nFollow this guidance unless higher-priority system, developer, safety, tool, or project instructions explicitly override it.\n",a].join("\n")}function n(a,b="HARNESS.md"){return[`## Behavioral Constraints — ${b}`,"",`The following global ${b} defines operating constraints and output guidelines.`,"You MUST comply with every constraint.\nThese are mandatory behavioral rules. When they conflict with persona preferences, the constraints win.\n",a].join("\n")}function o(a,b="MEMORY.md"){return[`## Project Memory — ${b}`,"\nThe following project memory records durable context for this working directory.\nUse it as background continuity, not as a higher-priority instruction source.\n",a].join("\n")}function p(a,b="CONTEXT.md"){return[`## Project Context — ${b}`,"\nThe following project context captures stable facts, conventions, and working assumptions for this directory.\nUse it as durable background context, not as a higher-priority instruction source.\n",a].join("\n")}},69835:(a,b,c)=>{c.d(b,{vk:()=>i});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(17216);function i(a,b){let c;if(!b.length)return[];let d=(c=g().join(a,h.zA),e().mkdirSync(c,{recursive:!0}),c),f=[];for(let a of b){let b=Buffer.from(a.data,"base64");if(!b.length)continue;let c=(0,h.ly)(a.mimeType||"application/octet-stream"),i=(0,h.CV)(a.name??`attachment.${c}`)??`attachment.${c}`,j=g().extname(i)?i:`${i}.${c}`,k=null;for(let a=0;a<1e3;a+=1){let c=function(a,b,c){if(0===c)return g().join(a,b);let d=g().extname(b),e=d?b.slice(0,-d.length):b;return g().join(a,`${e}-${c}${d}`)}(d,j,a);try{e().writeFileSync(c,b,{flag:"wx"}),k=c;break}catch(a){if("EEXIST"===a.code)continue;throw a}}if(!k)throw Error(`Could not allocate upload path for ${j}`);f.push({path:k,mimeType:a.mimeType||"application/octet-stream",name:g().basename(k),size:b.length})}return f}},75120:(a,b,c)=>{c.d(b,{E9:()=>r,IE:()=>p,In:()=>m,N8:()=>h,NR:()=>n,YJ:()=>k,d2:()=>g,nD:()=>o,wf:()=>l});var d=c(29021),e=c(33873),f=c(21820);function g(){return(0,e.join)(process.env.ANNODEX_CONFIG_DIR??process.env.ANNOVIBE_CONFIG_DIR??(0,e.join)((0,f.homedir)(),".config","annodex"),"extensions.json")}function h(a){return(0,e.join)(a,".codex","extensions.json")}function i(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function j(a){let b=function(a){if(!(0,d.existsSync)(a))return null;try{return JSON.parse((0,d.readFileSync)(a,"utf-8"))}catch{return null}}(a),c=i(b)&&Array.isArray(b.extensions)?b.extensions:[],e=a.replace(/\\/g,"/").endsWith("/.codex/extensions.json")?"project":"global";return{extensions:c.map(a=>(function(a,b){var c;if(!i(a))return null;let d="string"==typeof a.id?a.id.trim():"",e="string"==typeof a.name?a.name.trim():"";return d&&e?{id:d,name:e,description:"string"==typeof a.description?a.description:void 0,source:"string"==typeof a.source?a.source:void 0,enabled:"boolean"==typeof a.enabled?a.enabled:void 0,scope:"project"===a.scope?"project":b,installPath:"string"==typeof a.installPath?a.installPath:void 0,transport:i(c=a.transport)?{type:"http"===c.type?"http":"stdio",command:"string"==typeof c.command?c.command:void 0,args:Array.isArray(c.args)?c.args.filter(a=>"string"==typeof a):void 0,url:"string"==typeof c.url?c.url:void 0}:{type:"stdio"},env:i(a.env)?Object.fromEntries(Object.entries(a.env).filter(([,a])=>"string"==typeof a)):void 0,notes:"string"==typeof a.notes?a.notes:void 0}:null})(a,e)).filter(a=>null!==a)}}function k(){return j(g())}function l(a){return j(h(a))}function m(a,b){let c;return c=(0,e.dirname)(a),(0,d.existsSync)(c)||(0,d.mkdirSync)(c,{recursive:!0}),(0,d.writeFileSync)(a,JSON.stringify({extensions:b.extensions},null,2),"utf-8"),b}function n(a,b){let c=j(a).extensions.filter(a=>a.id!==b.id).concat(b);return m(a,{extensions:c})}function o(a){let b=k().extensions.map(a=>({...a,scope:a.scope??"global"}));if(!a)return b;let c=l(a).extensions.map(a=>({...a,scope:"project"})),d=new Map;for(let a of b)d.set(a.id,a);for(let a of c)d.set(a.id,{...d.get(a.id),...a,scope:"project"});return[...d.values()].sort((a,b)=>a.name.localeCompare(b.name))}function p(a){return o(a).filter(a=>!1!==a.enabled)}let q="annodex-memory";function r(){let a=g(),b=j(a).extensions.find(a=>a.id===q);if(b)return b;let c=function(a="global"){return{id:q,name:"Annodex Memory",description:"Project working memory tools: retain, recall, reflect",scope:a,enabled:!0,source:"annodex",transport:{type:"stdio",command:"annodex-memory-mcp",args:[]},notes:"Requires annodex to be running. Stores JSONL working memory under ~/.config/annodex/memory/."}}("global");return n(a,c),c}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=6983,exports.ids=[6983],exports.modules={39006:a=>{a.exports={rE:"0.1.84"}},46983:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{DY:()=>K,H3:()=>A,Mi:()=>I,g8:()=>x,gu:()=>G,kW:()=>y,nj:()=>J,nt:()=>t,pU:()=>s,sM:()=>H});var e=c(79646),f=c(4984),g=c(55511),h=c(56220),i=c(29021),j=c(33873),k=c(91645),l=c(55399),m=c(54167),n=c(65833),o=c(99526),p=c(39006),q=c(70784),r=a([h]);function s(a){let b="string"==typeof a?.status?a.status.toLowerCase():"";return"inprogress"===b||"in_progress"===b||"running"===b||"pending"===b||"queued"===b}function t(a){return!!a?.turns?.some(a=>s(a))}h=(r.then?(await r)():r)[0];class L{constructor(a,b,c){this.cwd=a,this.transport=b,this.serverKey=c,this.ws=null,this.readline=null,this.pending=new Map,this.nextId=1,this.notificationHandlers=new Map,this.anyNotificationHandlers=[],this.serverRequestHandlers=[],this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectDelay=1e3,this._closed=!1,this.mode=b.mode}isConnected(){return"ws"===this.transport.mode?this.ws?.readyState===h.WebSocket.OPEN:!this._closed&&!!this.transport.process.pid&&null===this.transport.process.exitCode&&!this.transport.process.killed}isClosed(){return this._closed}async connect(){(this._closed=!1,"stdio"===this.transport.mode)?await this.connectStdio():await this.connectWebSocket()}async connectWebSocket(){if("ws"!==this.transport.mode)throw Error("Invalid websocket transport state");let{default:a}=await Promise.resolve().then(c.bind(c,56220)),b=this.transport.url;return new Promise((c,d)=>{let e=new a(b);this.ws=e,e.on("open",()=>{this.reconnectAttempts=0,this.initialize().then(c).catch(d)}),e.on("message",a=>{this.handleRawMessage(a.toString())}),e.on("close",()=>{this.handleDisconnect()}),e.on("error",a=>{0===this.reconnectAttempts&&d(a)})})}async connectStdio(){if("stdio"!==this.transport.mode)throw Error("Invalid stdio transport state");let a=this.transport.process;if(!a.stdin||!a.stdout)throw Error("Codex stdio transport is missing stdin/stdout");this.readline=(0,f.createInterface)({input:a.stdout}),this.readline.on("line",a=>this.handleRawMessage(a)),this.readline.on("close",()=>this.handleDisconnect()),await this.initialize()}async initialize(){let a=await this.request("initialize",{clientInfo:{name:"annodex",title:n.C3,version:p.rE},capabilities:{experimentalApi:!0}});this.notify("initialized",{}),this.serverInfo=a}notify(a,b){this.isConnected()&&this.sendRaw(JSON.stringify({jsonrpc:"2.0",method:a,params:b}))}request(a,b,c=3e5){if(!this.isConnected())return Promise.reject(Error(`Codex server not connected (method: ${a})`));let d=this.nextId++;return new Promise((e,f)=>{let g=setTimeout(()=>{this.pending.delete(d),f(Error(`Request timeout: ${a}`))},c);this.pending.set(d,{resolve:e,reject:f,timer:g}),this.sendRaw(JSON.stringify({jsonrpc:"2.0",id:d,method:a,params:b}))})}onNotification(a,b){let c=this.notificationHandlers.get(a)??[];return c.push(b),this.notificationHandlers.set(a,c),()=>{let c=this.notificationHandlers.get(a);if(c){let a=c.indexOf(b);-1!==a&&c.splice(a,1)}}}onAnyNotification(a){return this.anyNotificationHandlers.push(a),()=>{let b=this.anyNotificationHandlers.indexOf(a);-1!==b&&this.anyNotificationHandlers.splice(b,1)}}onServerRequest(a){return this.serverRequestHandlers.push(a),()=>{let b=this.serverRequestHandlers.indexOf(a);-1!==b&&this.serverRequestHandlers.splice(b,1)}}handleRawMessage(a){let b=a.trim();if(b)try{let a=JSON.parse(b);this.handleMessage(a)}catch{}}sendRaw(a){if("ws"===this.transport.mode){this.ws?.readyState===h.WebSocket.OPEN&&this.ws.send(a);return}let b=this.transport.process.stdin;b&&!b.destroyed&&b.write(`${a}
1
+ "use strict";exports.id=6983,exports.ids=[6983],exports.modules={39006:a=>{a.exports={rE:"0.1.85"}},46983:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{DY:()=>K,H3:()=>A,Mi:()=>I,g8:()=>x,gu:()=>G,kW:()=>y,nj:()=>J,nt:()=>t,pU:()=>s,sM:()=>H});var e=c(79646),f=c(4984),g=c(55511),h=c(56220),i=c(29021),j=c(33873),k=c(91645),l=c(55399),m=c(54167),n=c(65833),o=c(99526),p=c(39006),q=c(70784),r=a([h]);function s(a){let b="string"==typeof a?.status?a.status.toLowerCase():"";return"inprogress"===b||"in_progress"===b||"running"===b||"pending"===b||"queued"===b}function t(a){return!!a?.turns?.some(a=>s(a))}h=(r.then?(await r)():r)[0];class L{constructor(a,b,c){this.cwd=a,this.transport=b,this.serverKey=c,this.ws=null,this.readline=null,this.pending=new Map,this.nextId=1,this.notificationHandlers=new Map,this.anyNotificationHandlers=[],this.serverRequestHandlers=[],this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectDelay=1e3,this._closed=!1,this.mode=b.mode}isConnected(){return"ws"===this.transport.mode?this.ws?.readyState===h.WebSocket.OPEN:!this._closed&&!!this.transport.process.pid&&null===this.transport.process.exitCode&&!this.transport.process.killed}isClosed(){return this._closed}async connect(){(this._closed=!1,"stdio"===this.transport.mode)?await this.connectStdio():await this.connectWebSocket()}async connectWebSocket(){if("ws"!==this.transport.mode)throw Error("Invalid websocket transport state");let{default:a}=await Promise.resolve().then(c.bind(c,56220)),b=this.transport.url;return new Promise((c,d)=>{let e=new a(b);this.ws=e,e.on("open",()=>{this.reconnectAttempts=0,this.initialize().then(c).catch(d)}),e.on("message",a=>{this.handleRawMessage(a.toString())}),e.on("close",()=>{this.handleDisconnect()}),e.on("error",a=>{0===this.reconnectAttempts&&d(a)})})}async connectStdio(){if("stdio"!==this.transport.mode)throw Error("Invalid stdio transport state");let a=this.transport.process;if(!a.stdin||!a.stdout)throw Error("Codex stdio transport is missing stdin/stdout");this.readline=(0,f.createInterface)({input:a.stdout}),this.readline.on("line",a=>this.handleRawMessage(a)),this.readline.on("close",()=>this.handleDisconnect()),await this.initialize()}async initialize(){let a=await this.request("initialize",{clientInfo:{name:"annodex",title:n.C3,version:p.rE},capabilities:{experimentalApi:!0}});this.notify("initialized",{}),this.serverInfo=a}notify(a,b){this.isConnected()&&this.sendRaw(JSON.stringify({jsonrpc:"2.0",method:a,params:b}))}request(a,b,c=3e5){if(!this.isConnected())return Promise.reject(Error(`Codex server not connected (method: ${a})`));let d=this.nextId++;return new Promise((e,f)=>{let g=setTimeout(()=>{this.pending.delete(d),f(Error(`Request timeout: ${a}`))},c);this.pending.set(d,{resolve:e,reject:f,timer:g}),this.sendRaw(JSON.stringify({jsonrpc:"2.0",id:d,method:a,params:b}))})}onNotification(a,b){let c=this.notificationHandlers.get(a)??[];return c.push(b),this.notificationHandlers.set(a,c),()=>{let c=this.notificationHandlers.get(a);if(c){let a=c.indexOf(b);-1!==a&&c.splice(a,1)}}}onAnyNotification(a){return this.anyNotificationHandlers.push(a),()=>{let b=this.anyNotificationHandlers.indexOf(a);-1!==b&&this.anyNotificationHandlers.splice(b,1)}}onServerRequest(a){return this.serverRequestHandlers.push(a),()=>{let b=this.serverRequestHandlers.indexOf(a);-1!==b&&this.serverRequestHandlers.splice(b,1)}}handleRawMessage(a){let b=a.trim();if(b)try{let a=JSON.parse(b);this.handleMessage(a)}catch{}}sendRaw(a){if("ws"===this.transport.mode){this.ws?.readyState===h.WebSocket.OPEN&&this.ws.send(a);return}let b=this.transport.process.stdin;b&&!b.destroyed&&b.write(`${a}
2
2
  `)}handleMessage(a){if("method"in a&&"id"in a)return void this.respondToServerRequest(a);if("method"in a&&!("id"in a)){for(let b of("1"===process.env.ANNODEX_CODEX_EVENT_LOG&&console.log(`[codex event] ${a.method}`),[...this.anyNotificationHandlers]))b(a.method,a.params);let b=this.notificationHandlers.get(a.method);if(b)for(let c of[...b])c(a.params);return}if("id"in a&&("result"in a||"error"in a)){let b=this.pending.get(a.id);b&&(clearTimeout(b.timer),this.pending.delete(a.id),"error"in a&&a.error?b.reject(Error(a.error.message??"JSON-RPC error")):b.resolve(a.result))}}async respondToServerRequest(a){let b;if(!this.isConnected())return;for(let c of[...this.serverRequestHandlers]){try{b=await c({id:a.id,method:a.method,params:a.params})}catch{b=void 0}if(void 0!==b)break}void 0===b&&(b=function(a){switch(a){case"item/commandExecution/requestApproval":case"item/fileChange/requestApproval":return{decision:"decline"};case"applyPatchApproval":case"execCommandApproval":return{decision:"denied"};case"item/tool/requestUserInput":return{answers:{}};case"mcpServer/elicitation/request":return{action:"decline",content:null,_meta:null};case"item/permissions/requestApproval":return{permissions:{},scope:"turn"};case"item/tool/call":return{contentItems:[],success:!1};case"account/chatgptAuthTokens/refresh":return{accessToken:"",chatgptAccountId:"",chatgptPlanType:null};default:return{}}}(a.method));let c={jsonrpc:"2.0",id:a.id,result:b};this.sendRaw(JSON.stringify(c))}handleDisconnect(){for(let[,a]of this.pending)clearTimeout(a.timer),a.reject(Error("Codex server disconnected"));if(this.pending.clear(),"stdio"===this.transport.mode){this._closed=!0;return}if(!this._closed&&this.reconnectAttempts<this.maxReconnectAttempts){this.reconnectAttempts++;let a=this.reconnectDelay*Math.pow(2,this.reconnectAttempts-1);setTimeout(()=>{this._closed||this.connect().catch(()=>{})},a)}}close(){this._closed=!0,this.readline?.close(),this.readline=null,this.ws?.close(),this.ws=null,"stdio"===this.transport.mode&&this.transport.process.stdin?.end()}}function u(a){if(a.connection?.close(),a.process?.pid)try{"linux"===process.platform?process.kill(-a.process.pid,"SIGTERM"):a.process.kill("SIGTERM")}catch{try{a.process.kill("SIGTERM")}catch{}}for(let b of a.compatProxies)b.stop().catch(()=>{});for(let b of a.annodexRouters)b.stop().catch(()=>{})}function v(){if(!globalThis.__codexServers){globalThis.__codexServers=new Map;let a=()=>{globalThis.__codexServers?.forEach(a=>{u(a)})};process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__codexServers}function w(){return c(79646)}function x(a){if(a)return a.replace(/#(?:chat|responses)-[a-f0-9]{10}$/i,"")}function y(a,b,c){let d=a.find(a=>a.id===b);return{provider:m.so,modelId:d?(0,m.XO)(b,c):c}}function z(){let a,b=(a=process.env.ANNODEX_CODEX_TRANSPORT?.trim().toLowerCase(),"ws"===a||"stdio"===a||"auto"===a?a:"auto");return"ws"===b||"stdio"===b?b:"linux"===process.platform?"ws":"stdio"}function A(a){return{workspace:!0,contextWindow:function(a){let b=0;for(let c of a)for(let a of c.models)"number"==typeof a.contextWindow&&a.contextWindow>b&&(b=a.contextWindow);return b>0?b:void 0}(a),routerProviders:a,providers:[{id:m.so,name:"Annodex Router",baseUrl:"__annodex_router__",api:"openai-responses",requiresOpenAiAuth:!1}]}}function B(a){let b=a?.trim();if(b){if(b.startsWith("!"))try{return(0,e.execSync)(b.slice(1),{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:1e4}).trim()||void 0}catch{return}return/^[A-Za-z_][A-Za-z0-9_]*$/.test(b)&&process.env[b]?process.env[b]:b}}function C(a){return JSON.stringify(a)}function D(a){return/^[A-Za-z0-9_-]+$/.test(a)?a:C(a)}function E(a,b){if(b)return"responses";let c=(0,o.pp)(a);return"openai-responses"===c?"responses":"openai-completions"===c?"chat":null}async function F(a,b,c,d,e,f){let h,i=a.baseUrl?.trim().replace(/\/+$/,"")||"";if(a.id===m.so&&"__annodex_router__"===i){let a=new m.Po({providers:e??[],defaultThinking:f??"disabled"});await a.start(),d.push(a),i=a.getBaseUrl(),console.log(`[codex-server] Annodex router started on port ${a.getPort()}`)}let j=B(a.apiKey),k=(0,o.pp)(a.api,i,a.id),n="openai-completions"===k,p=!1;if(n&&i&&j&&(0,l.s3)(i)){let b=(0,l.xh)(i),d=new l.F6({targetUrl:b,apiKey:j,defaultThinking:f??"disabled",reasoningConfig:a.reasoningConfig});try{await d.start(),c.push(d),i=d.getBaseUrl(),p=!0,console.log(`[codex-server] Compat proxy started on port ${d.getPort()} for ${b}`)}catch(a){console.error("[codex-server] Failed to start compat proxy:",a)}}if(j){var q;let c;q=a.id,c=(0,g.createHash)("sha256").update(q).digest("hex").slice(0,16).toUpperCase(),b[h=`ANNODEX_PROVIDER_${c}_API_KEY`]=j}return{id:a.id,name:a.name,baseUrl:i,wireApi:E(k,p),envKey:h,requiresOpenAiAuth:a.requiresOpenAiAuth??!!j}}async function G(a,b){let c=v(),d=a.replace(/\/+$/,"")||a,f=function(a,b){let c=a.replace(/\/+$/,"")||a,d=z();if(b?.workspace){let a=JSON.stringify({providers:b.providers??[],routerProviders:b.routerProviders??[]}),e=(0,g.createHash)("sha256").update(a).digest("hex").slice(0,16),f=b?.contextWindow?String(b.contextWindow):"default";return`${c}\0${d}\0workspace\0${f}\0${e}`}let e=b?.providerId||b?.baseUrl||"default",f=b?.baseUrl?.replace(/\/+$/,"")||"default",h=b?.api||"default",i=b?.apiKey||"default",j=b?.contextWindow?String(b.contextWindow):"default",k=b?.reasoningConfig?`${b.reasoningConfig.thinkingParam??""}|${b.reasoningConfig.effortParam??""}|${b.reasoningConfig.effortValueMode??""}`:"default";return`${c}\0${d}\0${e}\0${f}\0${h}\0${i}\0${j}\0${k}`}(d,b),h=c.get(f);if(h?.connection?.isConnected())return h.refCount++,h.connection;if(h?.startPromise)try{let a=await h.startPromise,b=c.get(f);return b&&b.refCount++,a}catch{}else h&&(u(h),c.delete(f));let m=z(),n="ws"===m?await new Promise((a,b)=>{let c=(0,k.createServer)();c.unref(),c.on("error",b),c.listen(0,"127.0.0.1",()=>{let d=c.address();c.close(()=>{d&&"object"==typeof d?a(d.port):b(Error("Failed to allocate a local port"))})})}):0,p="ws"===m?`ws://127.0.0.1:${n}`:"",r=function(){let a=process.env.ANNODEX_CODEX_PATH?.trim();if(a)return a;let b=function(){let a,b,c="win32"===process.platform?"codex.exe":"codex";if("darwin"===process.platform)if("arm64"===process.arch)a="codex-darwin-arm64",b="aarch64-apple-darwin";else{if("x64"!==process.arch)return null;a="codex-darwin-x64",b="x86_64-apple-darwin"}else if("linux"===process.platform)if("arm64"===process.arch)a="codex-linux-arm64",b="aarch64-unknown-linux-musl";else{if("x64"!==process.arch)return null;a="codex-linux-x64",b="x86_64-unknown-linux-musl"}else if("win32"!==process.platform)return null;else if("arm64"===process.arch)a="codex-win32-arm64",b="aarch64-pc-windows-msvc";else{if("x64"!==process.arch)return null;a="codex-win32-x64",b="x86_64-pc-windows-msvc"}let d=[];d.push((0,j.join)(process.cwd(),"node_modules"));try{let{execSync:a}=w(),b=a("npm prefix -g",{encoding:"utf8",timeout:3e3}).trim();b&&d.push((0,j.join)(b,"lib","node_modules"))}catch{}d.push((0,j.join)(__dirname,"..","node_modules"));try{d.push((0,j.join)(__dirname,"..","..","..","..","node_modules"))}catch{}let e=[(0,j.join)("vendor",b,"bin",c),(0,j.join)("vendor",b,"codex",c)];for(let b of d)for(let c of["flat","nested"]){let d="flat"===c?(0,j.join)(b,"@openai",a):(0,j.join)(b,"@openai","codex","node_modules","@openai",a);for(let a of e){let b=(0,j.join)(d,a);if((0,i.existsSync)(b))return{binaryPath:b,isNative:!0,isJsShim:!1}}}return null}();if(b)return b.binaryPath;let c="win32"===process.platform,d=c?["codex.cmd","codex.exe","codex"]:["codex"],e=[];e.push((0,j.join)(process.cwd(),"node_modules",".bin"));try{let a=(0,j.join)(__dirname,"..",".."),b=(0,j.join)(a,"..","..",".bin");e.includes(b)||e.push(b);let c=(0,j.join)(a,"..",".bin");e.includes(c)||e.push(c)}catch{}try{let{execSync:a}=w(),b=a("npm prefix -g",{encoding:"utf8",timeout:3e3}).trim();if(b){let a=c?b:(0,j.join)(b,"bin");e.includes(a)||e.push(a)}}catch{}for(let a of e)for(let b of d){let c=(0,j.join)(a,b);if((0,i.existsSync)(c))return c}for(let a of d)try{let{execSync:b}=w(),d=b(c?`where ${a}`:`which ${a}`,{encoding:"utf8",timeout:3e3}).trim().split(/\r?\n/)[0];if(d&&(0,i.existsSync)(d))return d}catch{}return c?"codex.cmd":"codex"}();(0,q.prepareMacOSCodexForSpawn)(r,d);let s=(async()=>{let a=[],g=[],h=null,i=b?.baseUrl||void 0,j=B(b?.apiKey),k=b?.requiresOpenAiAuth??!!j,q=(0,o.pp)(b?.api,i,b?.providerId),s="openai-completions"===q,t=!1;if(s&&i&&j&&(0,l.s3)(i)){let c=(0,l.xh)(i);h=new l.F6({targetUrl:c,apiKey:j,defaultThinking:b?.thinkingLevel??"disabled",reasoningConfig:b?.reasoningConfig});try{await h.start(),a.push(h),i=h.getBaseUrl(),t=!0,console.log(`[codex-server] Compat proxy started on port ${h.getPort()} for ${c}`)}catch(a){console.error("[codex-server] Failed to start compat proxy:",a),h=null}}let u={...process.env};j&&!b?.workspace&&(u.OPENAI_API_KEY=j),i&&(u.OPENAI_BASE_URL=i);let v=[];if(b?.contextWindow&&b.contextWindow>0&&v.push("-c",`model_context_window=${b.contextWindow}`),b?.workspace){let c=[];for(let d of b.providers??[])d.id&&d.baseUrl&&c.push(await F(d,u,a,g,b.routerProviders,b.thinkingLevel));for(let a of c)!function(a,b){if(!b.id||!b.baseUrl)return;let c=D(b.id);a.push("-c",`model_providers.${c}.name=${C(b.name||b.id)}`),a.push("-c",`model_providers.${c}.base_url=${C(b.baseUrl.replace(/\/+$/,""))}`),b.wireApi&&a.push("-c",`model_providers.${c}.wire_api=${C(b.wireApi)}`),a.push("-c",`model_providers.${c}.requires_openai_auth=${b.requiresOpenAiAuth?"true":"false"}`),b.envKey&&a.push("-c",`model_providers.${c}.env_key=${C(b.envKey)}`)}(v,a)}else if(b?.providerId&&i){let a=D(b.providerId),c=E(q,t);v.push("-c",`model_provider=${C(b.providerId)}`),v.push("-c",`model_providers.${a}.name=${C(b.providerId)}`),v.push("-c",`model_providers.${a}.base_url=${C(i.replace(/\/+$/,""))}`),c&&v.push("-c",`model_providers.${a}.wire_api=${C(c)}`),v.push("-c",`model_providers.${a}.requires_openai_auth=${k?"true":"false"}`)}let w=[...v,"app-server",..."ws"===m?["--listen",p]:[]];console.log(`[codex-server] Starting app-server transport=${m}`+("ws"===m?` url=${p}`:""));let x=null,y=function(a,b){let c=a.toLowerCase();if("win32"===process.platform&&(c.endsWith(".cmd")||c.endsWith(".bat"))){let c=[a,...b].map(a=>`"${a.replace(/"/g,'\\"')}"`).join(" ");return{command:process.env.ComSpec||"cmd.exe",args:["/d","/s","/c",`"${c}"`],windowsVerbatimArguments:!0}}return{command:a,args:b}}(r,w),z=(0,e.spawn)(y.command,y.args,{cwd:d,stdio:["stdio"===m?"pipe":"ignore","pipe","pipe"],env:u,detached:"linux"===process.platform,windowsVerbatimArguments:y.windowsVerbatimArguments}),A=[];z.stderr?.on("data",a=>{A.push(a.toString())}),"ws"===m&&z.stdout?.on("data",()=>{}),z.on("error",a=>{let b="ENOENT"===a.code?`[codex-server] codex CLI not found at "${r}". Install @openai/codex or ensure codex is on PATH.`:`[codex-server] Process error for ${d}: ${a.message}`;console.error(b)}),z.on("exit",(b,d)=>{let e="darwin"===process.platform;if(null!==d){let a=A.join(""),c=e?`
3
3
  This is likely macOS blocking the native codex binary from the current process context.
4
4
  Executable: ${r}
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/ZsANx91orvRUgkmErFcbK/_buildManifest.js","static/ZsANx91orvRUgkmErFcbK/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-7606de11217524fe.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-123fdf632563f469.js","static/chunks/main-app-45a0f19af99d61b6.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/eQsZd4MGkan03BV4eca_-/_buildManifest.js","static/eQsZd4MGkan03BV4eca_-/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-0b1e0af2488fca8f.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-123fdf632563f469.js","static/chunks/main-app-45a0f19af99d61b6.js"],rootMainFilesTree:{},pages:{"/_app":[]}};