cuelo 0.5.8 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) 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 +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +3 -3
  6. package/.next/required-server-files.json +3 -3
  7. package/.next/routes-manifest.json +12 -6
  8. package/.next/server/app/_global-error/page.js +3 -3
  9. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_global-error.html +1 -1
  11. package/.next/server/app/_global-error.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/.next/server/app/_not-found/page.js +2 -2
  19. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/_not-found.html +1 -1
  21. package/.next/server/app/_not-found.rsc +3 -3
  22. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  23. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  24. package/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  25. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  26. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  27. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  28. package/.next/server/app/api/agent/[id]/account/route.js +1 -1
  29. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  30. package/.next/server/app/api/agent/[id]/events/route.js +1 -1
  31. package/.next/server/app/api/agent/[id]/route.js +1 -1
  32. package/.next/server/app/api/agent/new/route.js +1 -1
  33. package/.next/server/app/api/agent/running/route.js +1 -1
  34. package/.next/server/app/api/attachments/route.js +5 -0
  35. package/.next/server/app/api/attachments/route.js.nft.json +1 -0
  36. package/.next/server/app/api/attachments/route_client-reference-manifest.js +1 -0
  37. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  38. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  39. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  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/cwd/browse/route.js +1 -1
  43. package/.next/server/app/api/cwd/validate/route.js +1 -1
  44. package/.next/server/app/api/default-cwd/route.js +1 -1
  45. package/.next/server/app/api/display-settings/route.js +1 -1
  46. package/.next/server/app/api/document-text/route.js +2 -2
  47. package/.next/server/app/api/experiments/route.js +1 -1
  48. package/.next/server/app/api/file-index/route.js +1 -1
  49. package/.next/server/app/api/files/[...path]/route.js +1 -1
  50. package/.next/server/app/api/git/diff/route.js +2 -2
  51. package/.next/server/app/api/git/status/route.js +1 -1
  52. package/.next/server/app/api/gpt6/handles/route.js +1 -1
  53. package/.next/server/app/api/gpt6/reply/route.js +1 -1
  54. package/.next/server/app/api/gpt6/token/route.js +1 -1
  55. package/.next/server/app/api/gpt6/web6-session/route.js +1 -1
  56. package/.next/server/app/api/home/route.js +1 -1
  57. package/.next/server/app/api/live/call/[callId]/route.js +1 -1
  58. package/.next/server/app/api/live/events/route.js +2 -2
  59. package/.next/server/app/api/live/offer/route.js +1 -1
  60. package/.next/server/app/api/live/voices/route.js +1 -1
  61. package/.next/server/app/api/mcp/route.js +2 -2
  62. package/.next/server/app/api/model-roles/route.js +1 -1
  63. package/.next/server/app/api/models/route.js +1 -1
  64. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  65. package/.next/server/app/api/models-config/discover/route.js +1 -1
  66. package/.next/server/app/api/models-config/route.js +4 -4
  67. package/.next/server/app/api/models-config/test/route.js +1 -1
  68. package/.next/server/app/api/plugins/route.js +1 -1
  69. package/.next/server/app/api/project-trust/route.js +1 -1
  70. package/.next/server/app/api/projects/route.js +1 -1
  71. package/.next/server/app/api/runs/[runId]/route.js +1 -1
  72. package/.next/server/app/api/runs/route.js +1 -1
  73. package/.next/server/app/api/sessions/[id]/auto-name/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]/entries/[entryId]/thinking/route.js +1 -1
  76. package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
  77. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  78. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  79. package/.next/server/app/api/sessions/route.js +1 -1
  80. package/.next/server/app/api/settings/route.js +1 -1
  81. package/.next/server/app/api/sidecars/[service]/[...path]/route.js +1 -1
  82. package/.next/server/app/api/skills/check/route.js +1 -1
  83. package/.next/server/app/api/skills/install/route.js +2 -2
  84. package/.next/server/app/api/skills/route.js +2 -2
  85. package/.next/server/app/api/skills/search/route.js +1 -1
  86. package/.next/server/app/api/skills/update/route.js +1 -1
  87. package/.next/server/app/api/theme/route.js +1 -1
  88. package/.next/server/app/api/tool-image/route.js +1 -0
  89. package/.next/server/app/api/tool-image/route.js.nft.json +1 -0
  90. package/.next/server/app/api/tool-image/route_client-reference-manifest.js +1 -0
  91. package/.next/server/app/api/update-maintenance/route.js +2 -2
  92. package/.next/server/app/api/updates/route.js +1 -1
  93. package/.next/server/app/api/web-access/recovery/route.js +1 -1
  94. package/.next/server/app/api/web-access/route.js +1 -1
  95. package/.next/server/app/api/web6/consults/route.js +1 -1
  96. package/.next/server/app/api/worktrees/route.js +1 -1
  97. package/.next/server/app/favicon.ico/route.js +1 -1
  98. package/.next/server/app/index.html +1 -1
  99. package/.next/server/app/index.rsc +5 -5
  100. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  101. package/.next/server/app/index.segments/_full.segment.rsc +5 -5
  102. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  103. package/.next/server/app/index.segments/_index.segment.rsc +3 -3
  104. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  105. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  106. package/.next/server/app/page.js +20 -14
  107. package/.next/server/app/page_client-reference-manifest.js +1 -1
  108. package/.next/server/app/recover/page.js +2 -2
  109. package/.next/server/app/recover/page_client-reference-manifest.js +1 -1
  110. package/.next/server/app/recover.html +1 -1
  111. package/.next/server/app/recover.rsc +3 -3
  112. package/.next/server/app/recover.segments/_full.segment.rsc +3 -3
  113. package/.next/server/app/recover.segments/_head.segment.rsc +1 -1
  114. package/.next/server/app/recover.segments/_index.segment.rsc +3 -3
  115. package/.next/server/app/recover.segments/_tree.segment.rsc +2 -2
  116. package/.next/server/app/recover.segments/recover/__PAGE__.segment.rsc +1 -1
  117. package/.next/server/app/recover.segments/recover.segment.rsc +1 -1
  118. package/.next/server/app-paths-manifest.json +7 -6
  119. package/.next/server/chunks/2651.js +1 -1
  120. package/.next/server/chunks/3379.js +1 -1
  121. package/.next/server/chunks/5582.js +5 -11
  122. package/.next/server/chunks/6429.js +2 -2
  123. package/.next/server/chunks/6775.js +1 -1
  124. package/.next/server/chunks/877.js +1 -1
  125. package/.next/server/functions-config-manifest.json +1 -0
  126. package/.next/server/middleware-build-manifest.js +1 -1
  127. package/.next/server/pages/404.html +1 -1
  128. package/.next/server/pages/500.html +1 -1
  129. package/.next/server/server-reference-manifest.json +1 -1
  130. package/.next/static/chunks/app/_global-error/page-0c0ee2cbde2b8cfd.js +1 -0
  131. package/.next/static/chunks/app/api/agent/[id]/account/route-0c0ee2cbde2b8cfd.js +1 -0
  132. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-0c0ee2cbde2b8cfd.js +1 -0
  133. package/.next/static/chunks/app/api/agent/[id]/events/route-0c0ee2cbde2b8cfd.js +1 -0
  134. package/.next/static/chunks/app/api/agent/[id]/route-0c0ee2cbde2b8cfd.js +1 -0
  135. package/.next/static/chunks/app/api/agent/new/route-0c0ee2cbde2b8cfd.js +1 -0
  136. package/.next/static/chunks/app/api/agent/running/route-0c0ee2cbde2b8cfd.js +1 -0
  137. package/.next/static/chunks/app/api/attachments/route-0c0ee2cbde2b8cfd.js +1 -0
  138. package/.next/static/chunks/app/api/auth/all-providers/route-0c0ee2cbde2b8cfd.js +1 -0
  139. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-0c0ee2cbde2b8cfd.js +1 -0
  140. package/.next/static/chunks/app/api/auth/login/[provider]/route-0c0ee2cbde2b8cfd.js +1 -0
  141. package/.next/static/chunks/app/api/auth/logout/[provider]/route-0c0ee2cbde2b8cfd.js +1 -0
  142. package/.next/static/chunks/app/api/auth/providers/route-0c0ee2cbde2b8cfd.js +1 -0
  143. package/.next/static/chunks/app/api/cwd/browse/route-0c0ee2cbde2b8cfd.js +1 -0
  144. package/.next/static/chunks/app/api/cwd/validate/route-0c0ee2cbde2b8cfd.js +1 -0
  145. package/.next/static/chunks/app/api/default-cwd/route-0c0ee2cbde2b8cfd.js +1 -0
  146. package/.next/static/chunks/app/api/display-settings/route-0c0ee2cbde2b8cfd.js +1 -0
  147. package/.next/static/chunks/app/api/document-text/route-0c0ee2cbde2b8cfd.js +1 -0
  148. package/.next/static/chunks/app/api/experiments/route-0c0ee2cbde2b8cfd.js +1 -0
  149. package/.next/static/chunks/app/api/file-index/route-0c0ee2cbde2b8cfd.js +1 -0
  150. package/.next/static/chunks/app/api/files/[...path]/route-0c0ee2cbde2b8cfd.js +1 -0
  151. package/.next/static/chunks/app/api/git/diff/route-0c0ee2cbde2b8cfd.js +1 -0
  152. package/.next/static/chunks/app/api/git/status/route-0c0ee2cbde2b8cfd.js +1 -0
  153. package/.next/static/chunks/app/api/gpt6/handles/route-0c0ee2cbde2b8cfd.js +1 -0
  154. package/.next/static/chunks/app/api/gpt6/reply/route-0c0ee2cbde2b8cfd.js +1 -0
  155. package/.next/static/chunks/app/api/gpt6/token/route-0c0ee2cbde2b8cfd.js +1 -0
  156. package/.next/static/chunks/app/api/gpt6/web6-session/route-0c0ee2cbde2b8cfd.js +1 -0
  157. package/.next/static/chunks/app/api/home/route-0c0ee2cbde2b8cfd.js +1 -0
  158. package/.next/static/chunks/app/api/live/call/[callId]/route-0c0ee2cbde2b8cfd.js +1 -0
  159. package/.next/static/chunks/app/api/live/events/route-0c0ee2cbde2b8cfd.js +1 -0
  160. package/.next/static/chunks/app/api/live/offer/route-0c0ee2cbde2b8cfd.js +1 -0
  161. package/.next/static/chunks/app/api/live/voices/route-0c0ee2cbde2b8cfd.js +1 -0
  162. package/.next/static/chunks/app/api/mcp/route-0c0ee2cbde2b8cfd.js +1 -0
  163. package/.next/static/chunks/app/api/model-roles/route-0c0ee2cbde2b8cfd.js +1 -0
  164. package/.next/static/chunks/app/api/models/route-0c0ee2cbde2b8cfd.js +1 -0
  165. package/.next/static/chunks/app/api/models-config/catalog/route-0c0ee2cbde2b8cfd.js +1 -0
  166. package/.next/static/chunks/app/api/models-config/discover/route-0c0ee2cbde2b8cfd.js +1 -0
  167. package/.next/static/chunks/app/api/models-config/route-0c0ee2cbde2b8cfd.js +1 -0
  168. package/.next/static/chunks/app/api/models-config/test/route-0c0ee2cbde2b8cfd.js +1 -0
  169. package/.next/static/chunks/app/api/plugins/route-0c0ee2cbde2b8cfd.js +1 -0
  170. package/.next/static/chunks/app/api/project-trust/route-0c0ee2cbde2b8cfd.js +1 -0
  171. package/.next/static/chunks/app/api/projects/route-0c0ee2cbde2b8cfd.js +1 -0
  172. package/.next/static/chunks/app/api/runs/[runId]/route-0c0ee2cbde2b8cfd.js +1 -0
  173. package/.next/static/chunks/app/api/runs/route-0c0ee2cbde2b8cfd.js +1 -0
  174. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-0c0ee2cbde2b8cfd.js +1 -0
  175. package/.next/static/chunks/app/api/sessions/[id]/context/route-0c0ee2cbde2b8cfd.js +1 -0
  176. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-0c0ee2cbde2b8cfd.js +1 -0
  177. package/.next/static/chunks/app/api/sessions/[id]/export/route-0c0ee2cbde2b8cfd.js +1 -0
  178. package/.next/static/chunks/app/api/sessions/[id]/route-0c0ee2cbde2b8cfd.js +1 -0
  179. package/.next/static/chunks/app/api/sessions/[id]/state/route-0c0ee2cbde2b8cfd.js +1 -0
  180. package/.next/static/chunks/app/api/sessions/route-0c0ee2cbde2b8cfd.js +1 -0
  181. package/.next/static/chunks/app/api/settings/route-0c0ee2cbde2b8cfd.js +1 -0
  182. package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-0c0ee2cbde2b8cfd.js +1 -0
  183. package/.next/static/chunks/app/api/skills/check/route-0c0ee2cbde2b8cfd.js +1 -0
  184. package/.next/static/chunks/app/api/skills/install/route-0c0ee2cbde2b8cfd.js +1 -0
  185. package/.next/static/chunks/app/api/skills/route-0c0ee2cbde2b8cfd.js +1 -0
  186. package/.next/static/chunks/app/api/skills/search/route-0c0ee2cbde2b8cfd.js +1 -0
  187. package/.next/static/chunks/app/api/skills/update/route-0c0ee2cbde2b8cfd.js +1 -0
  188. package/.next/static/chunks/app/api/theme/route-0c0ee2cbde2b8cfd.js +1 -0
  189. package/.next/static/chunks/app/api/tool-image/route-0c0ee2cbde2b8cfd.js +1 -0
  190. package/.next/static/chunks/app/api/update-maintenance/route-0c0ee2cbde2b8cfd.js +1 -0
  191. package/.next/static/chunks/app/api/updates/route-0c0ee2cbde2b8cfd.js +1 -0
  192. package/.next/static/chunks/app/api/web-access/recovery/route-0c0ee2cbde2b8cfd.js +1 -0
  193. package/.next/static/chunks/app/api/web-access/route-0c0ee2cbde2b8cfd.js +1 -0
  194. package/.next/static/chunks/app/api/web6/consults/route-0c0ee2cbde2b8cfd.js +1 -0
  195. package/.next/static/chunks/app/api/worktrees/route-0c0ee2cbde2b8cfd.js +1 -0
  196. package/.next/static/chunks/app/{layout-5ffecd9ebe39dbd0.js → layout-31a0bfeae1eece12.js} +1 -1
  197. package/.next/static/chunks/app/manifest.webmanifest/route-0c0ee2cbde2b8cfd.js +1 -0
  198. package/.next/static/chunks/app/page-ba96ee458de51af9.js +22 -0
  199. package/.next/static/chunks/next/dist/client/components/builtin/app-error-0c0ee2cbde2b8cfd.js +1 -0
  200. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-0c0ee2cbde2b8cfd.js +1 -0
  201. package/.next/static/chunks/next/dist/client/components/builtin/not-found-0c0ee2cbde2b8cfd.js +1 -0
  202. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-0c0ee2cbde2b8cfd.js +1 -0
  203. package/.next/static/css/{0282259eb1a6b95f.css → bbe00993de567f95.css} +1 -1
  204. package/.next/static/zqQ2BdsFkwRQpfXpTFeIx/_buildManifest.js +1 -0
  205. package/.next/trace +104 -104
  206. package/.next/trace-build +1 -1
  207. package/.next/types/app/api/{gpt6/mcp → attachments}/route.ts +3 -3
  208. package/.next/types/app/api/tool-image/route.ts +351 -0
  209. package/.next/types/routes.d.ts +3 -2
  210. package/.next/types/validator.ts +18 -9
  211. package/README.md +5 -3
  212. package/Tools/CUELO_Setup/files/native-runtime-patch.js +5 -5
  213. package/Tools/OMP_Global_Config/agent/AGENTS.md +1 -0
  214. package/Tools/OMP_Global_Config/agent/RULES.md +4 -0
  215. package/Tools/OMP_Global_Config/agent/agents/maker.md +2 -2
  216. package/Tools/OMP_Global_Config/agent/extensions/character-voice.ts +61 -11
  217. package/Tools/OMP_Global_Config/agent/extensions/skim.ts +227 -0
  218. package/Tools/OMP_Global_Config/agent/prompt-copies/AGENTS.en.md +2 -1
  219. package/Tools/OMP_Global_Config/agent/prompt-copies/RULES.en.md +3 -1
  220. package/Tools/OMP_Global_Config/agent/rules/harness-policy.json +1 -1
  221. package/Tools/OMP_Global_Config/agent/rules/subagent.md +2 -0
  222. package/Tools/OMP_Global_Config/agent/rules/web6-consult.md +7 -8
  223. package/Tools/OMP_Global_Config/agent/sop/maker.md +1 -1
  224. package/Tools/OMP_Global_Config/patches/apply-core-patch.mjs +191 -57
  225. package/next.config.ts +7 -0
  226. package/package.json +7 -7
  227. package/public/audio/completion/hikari/01.wav +0 -0
  228. package/public/audio/completion/hikari/02.wav +0 -0
  229. package/public/audio/completion/hikari/03.wav +0 -0
  230. package/public/audio/completion/hikari/04.wav +0 -0
  231. package/public/audio/completion/hikari/05.wav +0 -0
  232. package/public/audio/completion/hikari/06.wav +0 -0
  233. package/public/audio/completion/hikari/approval/01.wav +0 -0
  234. package/public/audio/completion/hikari/approval/02.wav +0 -0
  235. package/public/audio/completion/hikari/approval/03.wav +0 -0
  236. package/public/audio/completion/hikari/choice/01.wav +0 -0
  237. package/public/audio/completion/hikari/choice/02.wav +0 -0
  238. package/public/audio/completion/hikari/choice/03.wav +0 -0
  239. package/public/audio/completion/hikari/failed/01.wav +0 -0
  240. package/public/audio/completion/hikari/failed/02.wav +0 -0
  241. package/public/audio/completion/hikari/failed/03.wav +0 -0
  242. package/public/audio/completion/hikari/working/01.wav +0 -0
  243. package/public/audio/completion/hikari/working/02.wav +0 -0
  244. package/public/audio/completion/hikari/working/03.wav +0 -0
  245. package/public/audio/completion/voices.json +198 -0
  246. package/public/avatars/hikari.webp +0 -0
  247. package/public/stickers/hikari/approval/01.webp +0 -0
  248. package/public/stickers/hikari/approval/02.webp +0 -0
  249. package/public/stickers/hikari/approval/03.webp +0 -0
  250. package/public/stickers/hikari/choice/01.webp +0 -0
  251. package/public/stickers/hikari/choice/02.webp +0 -0
  252. package/public/stickers/hikari/choice/03.webp +0 -0
  253. package/public/stickers/hikari/done/01.webp +0 -0
  254. package/public/stickers/hikari/done/02.webp +0 -0
  255. package/public/stickers/hikari/done/03.webp +0 -0
  256. package/public/stickers/hikari/failed/01.webp +0 -0
  257. package/public/stickers/hikari/failed/02.webp +0 -0
  258. package/public/stickers/hikari/failed/03.webp +0 -0
  259. package/public/stickers/hikari/working/01.webp +0 -0
  260. package/.next/server/app/api/gpt6/mcp/route.js +0 -2
  261. package/.next/server/app/api/gpt6/mcp/route.js.nft.json +0 -1
  262. package/.next/server/app/api/gpt6/mcp/route_client-reference-manifest.js +0 -1
  263. package/.next/static/2UGVMAB5iVKLWm-zGiUKj/_buildManifest.js +0 -1
  264. package/.next/static/chunks/app/_global-error/page-a9c51a9353807009.js +0 -1
  265. package/.next/static/chunks/app/api/agent/[id]/account/route-a9c51a9353807009.js +0 -1
  266. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-a9c51a9353807009.js +0 -1
  267. package/.next/static/chunks/app/api/agent/[id]/events/route-a9c51a9353807009.js +0 -1
  268. package/.next/static/chunks/app/api/agent/[id]/route-a9c51a9353807009.js +0 -1
  269. package/.next/static/chunks/app/api/agent/new/route-a9c51a9353807009.js +0 -1
  270. package/.next/static/chunks/app/api/agent/running/route-a9c51a9353807009.js +0 -1
  271. package/.next/static/chunks/app/api/auth/all-providers/route-a9c51a9353807009.js +0 -1
  272. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-a9c51a9353807009.js +0 -1
  273. package/.next/static/chunks/app/api/auth/login/[provider]/route-a9c51a9353807009.js +0 -1
  274. package/.next/static/chunks/app/api/auth/logout/[provider]/route-a9c51a9353807009.js +0 -1
  275. package/.next/static/chunks/app/api/auth/providers/route-a9c51a9353807009.js +0 -1
  276. package/.next/static/chunks/app/api/cwd/browse/route-a9c51a9353807009.js +0 -1
  277. package/.next/static/chunks/app/api/cwd/validate/route-a9c51a9353807009.js +0 -1
  278. package/.next/static/chunks/app/api/default-cwd/route-a9c51a9353807009.js +0 -1
  279. package/.next/static/chunks/app/api/display-settings/route-a9c51a9353807009.js +0 -1
  280. package/.next/static/chunks/app/api/document-text/route-a9c51a9353807009.js +0 -1
  281. package/.next/static/chunks/app/api/experiments/route-a9c51a9353807009.js +0 -1
  282. package/.next/static/chunks/app/api/file-index/route-a9c51a9353807009.js +0 -1
  283. package/.next/static/chunks/app/api/files/[...path]/route-a9c51a9353807009.js +0 -1
  284. package/.next/static/chunks/app/api/git/diff/route-a9c51a9353807009.js +0 -1
  285. package/.next/static/chunks/app/api/git/status/route-a9c51a9353807009.js +0 -1
  286. package/.next/static/chunks/app/api/gpt6/handles/route-a9c51a9353807009.js +0 -1
  287. package/.next/static/chunks/app/api/gpt6/mcp/route-a9c51a9353807009.js +0 -1
  288. package/.next/static/chunks/app/api/gpt6/reply/route-a9c51a9353807009.js +0 -1
  289. package/.next/static/chunks/app/api/gpt6/token/route-a9c51a9353807009.js +0 -1
  290. package/.next/static/chunks/app/api/gpt6/web6-session/route-a9c51a9353807009.js +0 -1
  291. package/.next/static/chunks/app/api/home/route-a9c51a9353807009.js +0 -1
  292. package/.next/static/chunks/app/api/live/call/[callId]/route-a9c51a9353807009.js +0 -1
  293. package/.next/static/chunks/app/api/live/events/route-a9c51a9353807009.js +0 -1
  294. package/.next/static/chunks/app/api/live/offer/route-a9c51a9353807009.js +0 -1
  295. package/.next/static/chunks/app/api/live/voices/route-a9c51a9353807009.js +0 -1
  296. package/.next/static/chunks/app/api/mcp/route-a9c51a9353807009.js +0 -1
  297. package/.next/static/chunks/app/api/model-roles/route-a9c51a9353807009.js +0 -1
  298. package/.next/static/chunks/app/api/models/route-a9c51a9353807009.js +0 -1
  299. package/.next/static/chunks/app/api/models-config/catalog/route-a9c51a9353807009.js +0 -1
  300. package/.next/static/chunks/app/api/models-config/discover/route-a9c51a9353807009.js +0 -1
  301. package/.next/static/chunks/app/api/models-config/route-a9c51a9353807009.js +0 -1
  302. package/.next/static/chunks/app/api/models-config/test/route-a9c51a9353807009.js +0 -1
  303. package/.next/static/chunks/app/api/plugins/route-a9c51a9353807009.js +0 -1
  304. package/.next/static/chunks/app/api/project-trust/route-a9c51a9353807009.js +0 -1
  305. package/.next/static/chunks/app/api/projects/route-a9c51a9353807009.js +0 -1
  306. package/.next/static/chunks/app/api/runs/[runId]/route-a9c51a9353807009.js +0 -1
  307. package/.next/static/chunks/app/api/runs/route-a9c51a9353807009.js +0 -1
  308. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-a9c51a9353807009.js +0 -1
  309. package/.next/static/chunks/app/api/sessions/[id]/context/route-a9c51a9353807009.js +0 -1
  310. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-a9c51a9353807009.js +0 -1
  311. package/.next/static/chunks/app/api/sessions/[id]/export/route-a9c51a9353807009.js +0 -1
  312. package/.next/static/chunks/app/api/sessions/[id]/route-a9c51a9353807009.js +0 -1
  313. package/.next/static/chunks/app/api/sessions/[id]/state/route-a9c51a9353807009.js +0 -1
  314. package/.next/static/chunks/app/api/sessions/route-a9c51a9353807009.js +0 -1
  315. package/.next/static/chunks/app/api/settings/route-a9c51a9353807009.js +0 -1
  316. package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-a9c51a9353807009.js +0 -1
  317. package/.next/static/chunks/app/api/skills/check/route-a9c51a9353807009.js +0 -1
  318. package/.next/static/chunks/app/api/skills/install/route-a9c51a9353807009.js +0 -1
  319. package/.next/static/chunks/app/api/skills/route-a9c51a9353807009.js +0 -1
  320. package/.next/static/chunks/app/api/skills/search/route-a9c51a9353807009.js +0 -1
  321. package/.next/static/chunks/app/api/skills/update/route-a9c51a9353807009.js +0 -1
  322. package/.next/static/chunks/app/api/theme/route-a9c51a9353807009.js +0 -1
  323. package/.next/static/chunks/app/api/update-maintenance/route-a9c51a9353807009.js +0 -1
  324. package/.next/static/chunks/app/api/updates/route-a9c51a9353807009.js +0 -1
  325. package/.next/static/chunks/app/api/web-access/recovery/route-a9c51a9353807009.js +0 -1
  326. package/.next/static/chunks/app/api/web-access/route-a9c51a9353807009.js +0 -1
  327. package/.next/static/chunks/app/api/web6/consults/route-a9c51a9353807009.js +0 -1
  328. package/.next/static/chunks/app/api/worktrees/route-a9c51a9353807009.js +0 -1
  329. package/.next/static/chunks/app/manifest.webmanifest/route-a9c51a9353807009.js +0 -1
  330. package/.next/static/chunks/app/page-5584cc6078d2573c.js +0 -15
  331. package/.next/static/chunks/next/dist/client/components/builtin/app-error-a9c51a9353807009.js +0 -1
  332. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-a9c51a9353807009.js +0 -1
  333. package/.next/static/chunks/next/dist/client/components/builtin/not-found-a9c51a9353807009.js +0 -1
  334. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a9c51a9353807009.js +0 -1
  335. /package/.next/static/{2UGVMAB5iVKLWm-zGiUKj → zqQ2BdsFkwRQpfXpTFeIx}/_ssgManifest.js +0 -0
@@ -1,20 +1,14 @@
1
- exports.id=5582,exports.ids=[5582],exports.modules={5908:(a,b,c)=>{"use strict";function d(a,b={}){let c=b.intervalMs??6e4,e=b.now??Date.now,f=new Map,g=new Map;return{recover:(b,d={})=>{let h=g.get(b);if(h)return h.then(a=>({...a,shared:!0}));let i=e(),j=f.get(b);if(!d.force&&void 0!==j&&i-j<c)return Promise.resolve({outcome:"throttled",shared:!1});f.set(b,i);let k=a.refreshProvider(b,"online").then(()=>({outcome:"refreshed",shared:!1})).catch(a=>({outcome:"failed",shared:!1,error:function(a){let b=[],c=a;for(let a=0;a<3&&void 0!==c;a+=1){if(c instanceof Error){b.push(c.message),c=c.cause;continue}if("object"==typeof c&&null!==c){let a=c;"string"==typeof a.message&&b.push(a.message),"string"==typeof a.code&&b.push(a.code),"number"==typeof a.status&&b.push(`HTTP ${a.status}`),c=a.cause;continue}b.push(String(c));break}let d=b.join(" "),e=d.match(/\b(?:HTTP\s*)?([45]\d{2})\b/i)?.[1];if("401"===e||"403"===e||/\b(?:api[- ]?key|credential|authentication|unauthorized|forbidden)\b/i.test(d))return e?`provider authentication failed (HTTP ${e})`:"provider authentication failed";let f=d.match(/\b(EAI_AGAIN|ECONNREFUSED|ECONNRESET|ENETUNREACH|ENOTFOUND|ETIMEDOUT|UND_ERR_CONNECT_TIMEOUT|UND_ERR_HEADERS_TIMEOUT|UND_ERR_BODY_TIMEOUT)\b/i)?.[1];return f?f.toUpperCase():/\b(?:timed?\s*out|timeout)\b/i.test(d)?"request timed out":e?`HTTP ${e}`:"discovery request failed"}(a)})).finally(()=>{g.get(b)===k&&g.delete(b)});return g.set(b,k),k}}}function e(a){return a.providerKnown?"failed"===a.recovery.outcome?`Model ${a.selector} is not in the model list and the discovery refresh for provider "${a.provider}" failed: ${a.recovery.error??"unknown error"}.`:"throttled"===a.recovery.outcome?`Model ${a.selector} is not in the model list. Discovery for provider "${a.provider}" was refreshed recently, so this lookup did not fetch again.`:`Model ${a.selector} is not in the model list after refreshing discovery for provider "${a.provider}".`:`Unknown model provider "${a.provider}" for ${a.selector}: the provider is not registered.`}c.d(b,{fw:()=>d,zX:()=>e})},12039:(a,b,c)=>{"use strict";function d(a){if("assistant"!==a.role)return a;let b=a.content;if(!Array.isArray(b))return a;let c=b.map(a=>("object"!=typeof a||null===a||Array.isArray(a)||"toolCall"!==a.type?null:{type:"toolCall",toolCallId:"string"==typeof a.toolCallId?a.toolCallId:"string"==typeof a.id?a.id:"",toolName:"string"==typeof a.toolName?a.toolName:"string"==typeof a.name?a.name:"",input:"object"!=typeof a.input||null===a.input||Array.isArray(a.input)?"object"!=typeof a.arguments||null===a.arguments||Array.isArray(a.arguments)?{}:a.arguments:a.input})??a);return{...a,content:c}}c.d(b,{B:()=>d})},24923:(a,b,c)=>{"use strict";c.d(b,{IL:()=>p,KI:()=>l,P9:()=>n,l:()=>o});var d=c(79646),e=c(29021),f=c(33873),g=c(28354),h=c(25252);let i=(0,g.promisify)(d.execFile);function j(){globalThis.__ompProjectCache?.clear()}async function k(a,b){let{stdout:c}=await i("git",["-C",a,...b],{timeout:1e4,maxBuffer:1048576,env:{...process.env,LC_ALL:"C"}});return c.trim()}async function l(a){let b,c=(globalThis.__ompProjectCache||(globalThis.__ompProjectCache=new Map),globalThis.__ompProjectCache),d=c.get(a);if(d&&d.expiresAt>Date.now())return d.info;try{if(!(0,e.existsSync)(a))return b=function(a){let b=(0,f.dirname)(a);if(!b.endsWith("-worktrees"))return null;let c=b.slice(0,-10);return c&&(0,e.existsSync)((0,f.join)(c,".git"))?{projectRoot:c,branch:(0,f.basename)(a),isWorktree:!0,isTopLevel:!0}:null}(a)??{projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1},c.set(a,{info:b,expiresAt:Date.now()+6e4}),b;let[d,g,h,i]=(await k(a,["rev-parse","--path-format=absolute","--git-common-dir","--git-dir","--show-toplevel","--abbrev-ref","HEAD"])).split("\n").map(a=>a.trim()),j=a;try{j=(0,e.realpathSync)(a)}catch{}let l=h===j,m=g!==d&&l;b={projectRoot:m?(0,f.dirname)(d):a,branch:i&&"HEAD"!==i?i:null,isWorktree:m,isTopLevel:l}}catch{b={projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1}}return c.set(a,{info:b,expiresAt:Date.now()+6e4}),b}async function m(a){let b=await k(a,["rev-parse","--path-format=absolute","--git-common-dir"]);return(0,f.dirname)(b)}async function n(a){let b=await k(a,["worktree","list","--porcelain"]),c=[],d=null,f=()=>{d?.path&&!d.prunable&&(0,e.existsSync)(d.path)&&c.push({path:d.path,branch:d.branch??null,isMain:0===c.length}),d=null};for(let a of b.split("\n"))a.startsWith("worktree ")?(f(),d={path:a.slice(9).trim()}):a.startsWith("branch ")&&d?d.branch=a.slice(7).trim().replace(/^refs\/heads\//,""):a.startsWith("prunable")&&d?d.prunable=!0:""===a.trim()&&f();return f(),c}async function o(a,b){let c=b.trim();if(!c)throw Error("Branch name is required");let d=c.replace(/[\/\\:*?"<>|\s]+/g,"-").replace(/^-+|-+$/g,"");if(!d)throw Error(`Invalid branch name: ${b}`);let g=await m(a),i=`${(0,f.resolve)(g)}-worktrees`,l=(0,f.join)(i,d);if((0,e.existsSync)(l))throw Error(`Directory already exists: ${l}`);(0,e.mkdirSync)(i,{recursive:!0});let n=!1;try{await k(g,["rev-parse","--verify","--quiet",`refs/heads/${c}`]),n=!0}catch{n=!1}try{n?await k(g,["worktree","add","--",l,c]):await k(g,["worktree","add","-b",c,"--",l])}catch(a){throw Error(q(a))}return(0,h.wz)(l),j(),{path:l,branch:c}}async function p(a,b,c=!1){let d=(await n(a)).find(a=>a.path===b);if(!d)throw Error(`Not a worktree of this repository: ${b}`);if(d.isMain)throw Error("Cannot remove the main worktree");try{await k(a,["worktree","remove",...c?["--force"]:[],b])}catch(a){throw Error(q(a))}j()}function q(a){let b=a.stderr;return"string"==typeof b&&b.trim()?b.trim():a instanceof Error?a.message:String(a)}},25252:(a,b,c)=>{"use strict";function d(a){return a.replace(/\\/g,"/")}function e(){return globalThis.__ompAdditionalAllowedRoots||(globalThis.__ompAdditionalAllowedRoots=new Set),globalThis.__ompAdditionalAllowedRoots}function f(a){if(!a)return;let b=d(a);e().add(b),globalThis.__ompAllowedRootsCache?.roots.add(b)}c.d(b,{HM:()=>e,Nw:()=>d,wz:()=>f})},36208:(a,b,c)=>{"use strict";c.d(b,{Qw:()=>d,e6:()=>f,iH:()=>e,we:()=>g});let d=8388608,e=12e4,f=250;function g(a){return function(a){let b;if(!a.startsWith(h))return null;let c=a.indexOf("\n");if(c<0)return null;let f=a.slice(0,c);if(!f.endsWith(i))return null;try{b=JSON.parse(f.slice(h.length,-i.length))}catch{return null}if(!function(a){if(!a||"object"!=typeof a||!Number.isSafeInteger(a.userMessageLength)||(a.userMessageLength??-1)<0||!Array.isArray(a.documents)||0===a.documents.length||a.documents.length>3)return!1;let b=0,c=0;for(let f of a.documents){if(!f||"object"!=typeof f||"string"!=typeof f.name||0===f.name.length||"text/markdown"!==f.mimeType&&"text/plain"!==f.mimeType&&"application/pdf"!==f.mimeType||!Number.isSafeInteger(f.size)||(f.size??-1)<0||(f.size??0)>d||!Number.isSafeInteger(f.textLength)||(f.textLength??-1)<0||(f.textLength??0)>e)return!1;b+=f.size??0,c+=f.textLength??0}return b<=0x1000000&&c<=24e4}(b))return null;let g=c+1;if(!a.startsWith(j,g))return null;let l=(g+=j.length)+b.userMessageLength;if(l>a.length)return null;let m=a.slice(g,l);if(g=l,!a.startsWith(k,g))return null;g+=k.length;let n=[];for(let c=0;c<b.documents.length;c+=1){var o,p,q;let d=b.documents[c],e=(o=c,p=d,`
1
+ exports.id=5582,exports.ids=[5582],exports.modules={5908:(a,b,c)=>{"use strict";function d(a,b={}){let c=b.intervalMs??6e4,e=b.now??Date.now,f=new Map,g=new Map;return{recover:(b,d={})=>{let h=g.get(b);if(h)return h.then(a=>({...a,shared:!0}));let i=e(),j=f.get(b);if(!d.force&&void 0!==j&&i-j<c)return Promise.resolve({outcome:"throttled",shared:!1});f.set(b,i);let k=a.refreshProvider(b,"online").then(()=>({outcome:"refreshed",shared:!1})).catch(a=>({outcome:"failed",shared:!1,error:function(a){let b=[],c=a;for(let a=0;a<3&&void 0!==c;a+=1){if(c instanceof Error){b.push(c.message),c=c.cause;continue}if("object"==typeof c&&null!==c){let a=c;"string"==typeof a.message&&b.push(a.message),"string"==typeof a.code&&b.push(a.code),"number"==typeof a.status&&b.push(`HTTP ${a.status}`),c=a.cause;continue}b.push(String(c));break}let d=b.join(" "),e=d.match(/\b(?:HTTP\s*)?([45]\d{2})\b/i)?.[1];if("401"===e||"403"===e||/\b(?:api[- ]?key|credential|authentication|unauthorized|forbidden)\b/i.test(d))return e?`provider authentication failed (HTTP ${e})`:"provider authentication failed";let f=d.match(/\b(EAI_AGAIN|ECONNREFUSED|ECONNRESET|ENETUNREACH|ENOTFOUND|ETIMEDOUT|UND_ERR_CONNECT_TIMEOUT|UND_ERR_HEADERS_TIMEOUT|UND_ERR_BODY_TIMEOUT)\b/i)?.[1];return f?f.toUpperCase():/\b(?:timed?\s*out|timeout)\b/i.test(d)?"request timed out":e?`HTTP ${e}`:"discovery request failed"}(a)})).finally(()=>{g.get(b)===k&&g.delete(b)});return g.set(b,k),k}}}function e(a){return a.providerKnown?"failed"===a.recovery.outcome?`Model ${a.selector} is not in the model list and the discovery refresh for provider "${a.provider}" failed: ${a.recovery.error??"unknown error"}.`:"throttled"===a.recovery.outcome?`Model ${a.selector} is not in the model list. Discovery for provider "${a.provider}" was refreshed recently, so this lookup did not fetch again.`:`Model ${a.selector} is not in the model list after refreshing discovery for provider "${a.provider}".`:`Unknown model provider "${a.provider}" for ${a.selector}: the provider is not registered.`}c.d(b,{fw:()=>d,zX:()=>e})},12039:(a,b,c)=>{"use strict";function d(a){if("assistant"!==a.role)return a;let b=a.content;if(!Array.isArray(b))return a;let c=b.map(a=>("object"!=typeof a||null===a||Array.isArray(a)||"toolCall"!==a.type?null:{type:"toolCall",toolCallId:"string"==typeof a.toolCallId?a.toolCallId:"string"==typeof a.id?a.id:"",toolName:"string"==typeof a.toolName?a.toolName:"string"==typeof a.name?a.name:"",input:"object"!=typeof a.input||null===a.input||Array.isArray(a.input)?"object"!=typeof a.arguments||null===a.arguments||Array.isArray(a.arguments)?{}:a.arguments:a.input})??a);return{...a,content:c}}c.d(b,{B:()=>d})},24923:(a,b,c)=>{"use strict";c.d(b,{IL:()=>p,KI:()=>l,P9:()=>n,l:()=>o});var d=c(79646),e=c(29021),f=c(33873),g=c(28354),h=c(25252);let i=(0,g.promisify)(d.execFile);function j(){globalThis.__ompProjectCache?.clear()}async function k(a,b){let{stdout:c}=await i("git",["-C",a,...b],{timeout:1e4,maxBuffer:1048576,env:{...process.env,LC_ALL:"C"}});return c.trim()}async function l(a){let b,c=(globalThis.__ompProjectCache||(globalThis.__ompProjectCache=new Map),globalThis.__ompProjectCache),d=c.get(a);if(d&&d.expiresAt>Date.now())return d.info;try{if(!(0,e.existsSync)(a))return b=function(a){let b=(0,f.dirname)(a);if(!b.endsWith("-worktrees"))return null;let c=b.slice(0,-10);return c&&(0,e.existsSync)((0,f.join)(c,".git"))?{projectRoot:c,branch:(0,f.basename)(a),isWorktree:!0,isTopLevel:!0}:null}(a)??{projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1},c.set(a,{info:b,expiresAt:Date.now()+6e4}),b;let[d,g,h,i]=(await k(a,["rev-parse","--path-format=absolute","--git-common-dir","--git-dir","--show-toplevel","--abbrev-ref","HEAD"])).split("\n").map(a=>a.trim()),j=a;try{j=(0,e.realpathSync)(a)}catch{}let l=h===j,m=g!==d&&l;b={projectRoot:m?(0,f.dirname)(d):a,branch:i&&"HEAD"!==i?i:null,isWorktree:m,isTopLevel:l}}catch{b={projectRoot:a,branch:null,isWorktree:!1,isTopLevel:!1}}return c.set(a,{info:b,expiresAt:Date.now()+6e4}),b}async function m(a){let b=await k(a,["rev-parse","--path-format=absolute","--git-common-dir"]);return(0,f.dirname)(b)}async function n(a){let b=await k(a,["worktree","list","--porcelain"]),c=[],d=null,f=()=>{d?.path&&!d.prunable&&(0,e.existsSync)(d.path)&&c.push({path:d.path,branch:d.branch??null,isMain:0===c.length}),d=null};for(let a of b.split("\n"))a.startsWith("worktree ")?(f(),d={path:a.slice(9).trim()}):a.startsWith("branch ")&&d?d.branch=a.slice(7).trim().replace(/^refs\/heads\//,""):a.startsWith("prunable")&&d?d.prunable=!0:""===a.trim()&&f();return f(),c}async function o(a,b){let c=b.trim();if(!c)throw Error("Branch name is required");let d=c.replace(/[\/\\:*?"<>|\s]+/g,"-").replace(/^-+|-+$/g,"");if(!d)throw Error(`Invalid branch name: ${b}`);let g=await m(a),i=`${(0,f.resolve)(g)}-worktrees`,l=(0,f.join)(i,d);if((0,e.existsSync)(l))throw Error(`Directory already exists: ${l}`);(0,e.mkdirSync)(i,{recursive:!0});let n=!1;try{await k(g,["rev-parse","--verify","--quiet",`refs/heads/${c}`]),n=!0}catch{n=!1}try{n?await k(g,["worktree","add","--",l,c]):await k(g,["worktree","add","-b",c,"--",l])}catch(a){throw Error(q(a))}return(0,h.wz)(l),j(),{path:l,branch:c}}async function p(a,b,c=!1){let d=(await n(a)).find(a=>a.path===b);if(!d)throw Error(`Not a worktree of this repository: ${b}`);if(d.isMain)throw Error("Cannot remove the main worktree");try{await k(a,["worktree","remove",...c?["--force"]:[],b])}catch(a){throw Error(q(a))}j()}function q(a){let b=a.stderr;return"string"==typeof b&&b.trim()?b.trim():a instanceof Error?a.message:String(a)}},25252:(a,b,c)=>{"use strict";function d(a){return a.replace(/\\/g,"/")}function e(){return globalThis.__ompAdditionalAllowedRoots||(globalThis.__ompAdditionalAllowedRoots=new Set),globalThis.__ompAdditionalAllowedRoots}function f(a){if(!a)return;let b=d(a);e().add(b),globalThis.__ompAllowedRootsCache?.roots.add(b)}c.d(b,{HM:()=>e,Nw:()=>d,wz:()=>f})},36208:(a,b,c)=>{"use strict";c.d(b,{Lg:()=>i,Qw:()=>d,Vf:()=>g,e6:()=>f,iH:()=>e,we:()=>j});let d=8388608,e=12e4,f=250,g=0x1900000,h={".mp3":"audio/mpeg",".wav":"audio/wav",".wave":"audio/wav",".m4a":"audio/mp4",".ogg":"audio/ogg",".oga":"audio/ogg",".opus":"audio/ogg",".flac":"audio/flac",".webm":"audio/webm",".aac":"audio/aac",".aif":"audio/aiff",".aiff":"audio/aiff"};function i(a){let b=a.name.toLocaleLowerCase(),c=b.lastIndexOf("."),d=c>0?h[b.slice(c)]:void 0;if(d)return d;let e=a.type.toLocaleLowerCase().split(";",1)[0]?.trim();return e?.startsWith("audio/")?e:null}function j(a){return function(a){let b;if(!a.startsWith(k))return null;let c=a.indexOf("\n");if(c<0)return null;let f=a.slice(0,c);if(!f.endsWith(l))return null;try{b=JSON.parse(f.slice(k.length,-l.length))}catch{return null}if(!function(a){if(!a||"object"!=typeof a||!Number.isSafeInteger(a.userMessageLength)||(a.userMessageLength??-1)<0||!Array.isArray(a.documents)||0===a.documents.length||a.documents.length>3)return!1;let b=0,c=0;for(let f of a.documents){if(!f||"object"!=typeof f||"string"!=typeof f.name||0===f.name.length||"text/markdown"!==f.mimeType&&"text/plain"!==f.mimeType&&"application/pdf"!==f.mimeType||!Number.isSafeInteger(f.size)||(f.size??-1)<0||(f.size??0)>d||!Number.isSafeInteger(f.textLength)||(f.textLength??-1)<0||(f.textLength??0)>e)return!1;b+=f.size??0,c+=f.textLength??0}return b<=0x1000000&&c<=24e4}(b))return null;let g=c+1;if(!a.startsWith(m,g))return null;let h=(g+=m.length)+b.userMessageLength;if(h>a.length)return null;let i=a.slice(g,h);if(g=h,!a.startsWith(n,g))return null;g+=n.length;let j=[];for(let c=0;c<b.documents.length;c+=1){var o,p,q;let d=b.documents[c],e=(o=c,p=d,`
2
2
  --- Begin attached document ${o+1}: ${JSON.stringify(p.name)} (${p.mimeType}, ${p.size} bytes) ---
3
3
  `);if(!a.startsWith(e,g))return null;let f=(g+=e.length)+d.textLength;if(f>a.length)return null;let h=a.slice(g,f);g=f;let i=(q=c,`
4
- --- End attached document ${q+1} ---`);if(!a.startsWith(i,g))return null;g+=i.length,n.push({name:d.name,mimeType:d.mimeType,size:d.size,text:h})}return g===a.length?{message:m,documents:n}:null}(a)?.message??a}let h="\x3c!-- omp-web-document-context-v1:",i=" --\x3e",j="User message:\n",k="\n\nAttached documents (locally extracted text supplied by the user):\n"},38741:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Ef:()=>n,GA:()=>k,Ix:()=>m,RD:()=>i,ZU:()=>j});var e=c(92582),f=c(5908),g=a([e]);async function h(){let a=(0,e.getAgentDir)(),b=await e.Settings.init({agentDir:a}),c=await (0,e.discoverAuthStorage)(a),d=new e.ModelRegistry(c);return await d.refresh("online-if-uncached"),{agentDir:a,settings:b,authStorage:c,modelRegistry:d}}function i(){return globalThis.__ompRuntimePromise??=h().catch(a=>{throw globalThis.__ompRuntimePromise=void 0,a}),globalThis.__ompRuntimePromise}async function j(a){let{settings:b}=await i();return a&&b.getCwd()!==a?b.cloneForCwd(a):b}function k(){globalThis.__ompRuntimePromise=void 0}function l(a){let b=globalThis.__ompMissingModelRecovery??=new WeakMap,c=b.get(a);return c||(c=(0,f.fw)(a),b.set(a,c)),c}async function m(a,b,c,d={}){let e=a.find(b,c);if(e)return{model:e};let f=await l(a).recover(b,{force:d.forceDiscovery}),g=a.find(b,c);return g?{model:g}:{miss:{selector:`${b}/${c}`,provider:b,providerKnown:a.hasProvider(b),recovery:f}}}async function n(a,b){let c=new Set;for(let d of b)d.provider&&d.modelId&&(a.find(d.provider,d.modelId)||c.add(d.provider));0!==c.size&&await Promise.all([...c].map(b=>l(a).recover(b)))}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},40402:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$M:()=>e.getAgentDir,BR:()=>C,DK:()=>E,O5:()=>t,O8:()=>B,Uv:()=>H,dQ:()=>J,eP:()=>D,mD:()=>w,os:()=>z,u1:()=>A,wb:()=>v,zH:()=>s});var e=c(92582),f=c(48331),g=c(5969),h=c(29021),i=c(33873),j=c(53739),k=c(38741),l=c(12039),m=c(45902),n=c(24923),o=c(36208),p=c(87576),q=c(85821),r=a([e,f,g,j,k]);async function s(a){let b=[...new Set(a.map(a=>a.cwd).filter(Boolean))],c=new Map;return await Promise.all(b.map(async a=>{c.set(a,await (0,n.KI)(a))})),a.map(a=>{let b=a.cwd?c.get(a.cwd):void 0;return{...a,projectRoot:b?.projectRoot??a.cwd,...b?.isWorktree&&b.branch?{worktreeBranch:b.branch}:{}}})}function t(a,b){let c=new Map(b.map(a=>[a.id,a]));for(let b of a)c.set(b.id,b);return[...c.values()].sort((a,b)=>b.modified.localeCompare(a.modified))}async function u(){let a=await e.SessionManager.listAll(),b=new Map;for(let c of a)b.set((0,m.$)(c.path),c.id);let c=a.map(a=>(B(a.id,a.path),{path:a.path,id:a.id,cwd:a.cwd,name:a.title,created:a.created instanceof Date?a.created.toISOString():String(a.created),modified:function(a){let b=a.modified instanceof Date?a.modified:new Date(String(a.modified)),c=Number.isFinite(b.getTime())?b.toISOString():String(a.modified),d=globalThis.__ompSessionActivityCache??=new Map,e=(0,m.$)(a.path),f=d.get(e);if(f&&f.mtimeMs===b.getTime()&&f.size===a.size)return f.at??c;let g=function(a){let b;try{b=(0,h.openSync)(a,"r");let c=(0,h.fstatSync)(b).size,d=Buffer.alloc(0),e=0,f=!1;for(;;){let a=e>0?d.lastIndexOf(10,e-1):-1;if(a<0&&c>0){if(!f&&d.length>=65536||d.length>=8388608)return null;let a=Math.min(65536,c),g=Buffer.alloc(a);c-=a,(0,h.readSync)(b,g,0,a,c),d=Buffer.concat([g,d]),e+=a;continue}let g=d.toString("utf8",a+1,e).trim();if(e=Math.max(a,0),g){if(!f&&!g.includes(j.SESSION_EXIT_CUSTOM_TYPE))return null;let a=JSON.parse(g);if(!a||"object"!=typeof a)return null;if("type"in a&&"custom"===a.type&&"customType"in a&&a.customType===j.SESSION_EXIT_CUSTOM_TYPE)f=!0;else{if(!f)return null;let b="timestamp"in a?a.timestamp:void 0;return"string"==typeof b&&Number.isFinite(Date.parse(b))?new Date(b).toISOString():null}}if(a<0)return null}}catch{return null}finally{void 0!==b&&(0,h.closeSync)(b)}}(a.path);return d.set(e,{mtimeMs:b.getTime(),size:a.size,at:g}),g??c}(a),messageCount:a.messageCount,firstMessage:(0,o.we)(a.firstMessage)||"(no messages)",parentSessionId:a.parentSessionPath?b.get((0,m.$)(a.parentSessionPath)):void 0,transient:!1}));return s(c)}async function v(a={}){a.force&&w();let b=globalThis.__ompSessionListGeneration??0;if(globalThis.__ompSessionListCache&&Date.now()-globalThis.__ompSessionListCache.ts<M)return globalThis.__ompSessionListCache.data;if(globalThis.__ompSessionListPromise&&globalThis.__ompSessionListPromiseGeneration===b)return globalThis.__ompSessionListPromise;let c=u().then(a=>(globalThis.__ompSessionListGeneration??0)!==b?v():(globalThis.__ompSessionListCache={data:a,ts:Date.now()},a)).finally(()=>{globalThis.__ompSessionListPromise===c&&(globalThis.__ompSessionListPromise=void 0,globalThis.__ompSessionListPromiseGeneration=void 0)});return globalThis.__ompSessionListPromise=c,globalThis.__ompSessionListPromiseGeneration=b,c}[e,f,g,j,k]=r.then?(await r)():r;let M=3e4;function w(){globalThis.__ompSessionListGeneration=(globalThis.__ompSessionListGeneration??0)+1,globalThis.__ompSessionListCache=void 0}function x(){return globalThis.__ompSessionPathCache||(globalThis.__ompSessionPathCache=new Map),globalThis.__ompSessionPathCache}function y(){return globalThis.__ompPathToSessionIdCache||(globalThis.__ompPathToSessionIdCache=new Map),globalThis.__ompPathToSessionIdCache}async function z(a){let b=x().get(a);return b&&(0,h.existsSync)(b)?b:(b&&C(a),await v(),x().get(a)??null)}async function A(a){let b=(0,m.$)(a),c=y().get(b);return c||(await v(),y().get(b))}function B(a,b){let c=(0,i.normalize)(b),d=(0,m.$)(c),e=x(),f=y(),g=e.get(a),h=g?(0,m.$)(g):void 0,j=f.get(d),k=j?e.get(j):void 0;h&&h!==d&&f.get(h)===a&&f.delete(h),j&&j!==a&&k&&(0,m.$)(k)===d&&e.delete(j),e.set(a,c),f.set(d,a)}function C(a){let b=x(),c=y(),d=b.get(a);b.delete(a);let e=d?(0,m.$)(d):void 0;e&&c.get(e)===a&&c.delete(e)}function D(a){let b=(0,h.openSync)(a,"r");try{let a=[],c=0,d=!1;for(;c<65536&&!d;){let e=Buffer.allocUnsafe(Math.min(4096,65536-c)),f=(0,h.readSync)(b,e,0,e.length,c);if(0===f)break;let g=e.subarray(0,f),i=g.indexOf(10);a.push(-1===i?g:g.subarray(0,i)),c+=f,d=-1!==i}if(!d&&c>=65536)return null;let e=Buffer.concat(a).toString("utf8").trimEnd();if(!e)return null;try{let a=JSON.parse(e);return"session"===a.type?a:null}catch{return null}}finally{(0,h.closeSync)(b)}}async function E(a){return(await e.SessionManager.open(a)).getEntries()}function F(a,b,c){if(null===c)return[];let d=(c?b.get(c):void 0)??a[a.length-1];if(!d)return[];let e=[],f=new Set,g=d;for(;g&&!f.has(g.id);)f.add(g.id),e.push(g),g=g.parentId?b.get(g.parentId):void 0;return e.reverse()}function G(a){let b=a.fallback??a.default;if(!b)return null;let c=b.indexOf("/");return c<=0?null:{provider:b.slice(0,c),modelId:b.slice(c+1)}}function H(a,b,c={}){let d=new Map;for(let b of a)d.set(b.id,b);let f=(0,e.buildSessionContext)(a,b,d,{transcript:!0,collapseCompactedHistory:!0}),g=[],h=[];for(let e of function(a,b,c){let d=F(a,b,c),e=-1;for(let a=d.length-1;a>=0;a--)if("compaction"===d[a].type){e=a;break}if(-1===e)return d;let f=d[e],g=[],h=!1;for(let a=0;a<e;a++)d[a].id===f.firstKeptEntryId&&(h=!0),h&&g.push(d[a]);return[...g,f,...d.slice(e+1)]}(a,d,b)){let a=function(a,b){switch(a.type){case"message":{let c=b.deferToolResultImages?function(a){if("toolResult"!==a.role)return a;let b=0,c=0,d=new Set,e=a.content.filter(a=>{let e=function(a){let b,c;if(!L(a)||"image"!==a.type||("string"==typeof a.data?(b=a.data,c="string"==typeof a.mimeType?a.mimeType:void 0):L(a.source)&&"base64"===a.source.type&&"string"==typeof a.source.data&&(b=a.source.data,c="string"==typeof a.source.media_type?a.source.media_type:void 0),!b))return null;let d=b.endsWith("==")?2:+!!b.endsWith("=");return{bytes:Math.max(0,Math.floor(3*b.length/4)-d),mime:c}}(a);return!e||(b+=1,c+=e.bytes,e.mime&&d.add(e.mime),!1)});if(0===b)return a;let f=d.size>0?`: ${[...d].join(", ")}`:"";return e.push({type:"text",text:`[${b} tool result image${1===b?"":"s"} omitted from initial history payload${f}, ~${c} bytes]`}),{...a,content:e}}((0,l.B)(a.message)):(0,l.B)(a.message);if(!b.deferThinking||"assistant"!==c.role)return c;return{...c,content:c.content.map(a=>"thinking"===a.type&&""!==a.thinking.trim()?{...a,thinking:"",deferred:!0}:a)}}case"compaction":return{role:"custom",customType:"compaction",content:a.summary,display:!0,details:{tokensBefore:a.tokensBefore,firstKeptEntryId:a.firstKeptEntryId},timestamp:K(a.timestamp)};case"branch_summary":if(!a.summary)return null;return{role:"user",content:`*The conversation briefly explored another branch and returned with this summary:*
4
+ --- End attached document ${q+1} ---`);if(!a.startsWith(i,g))return null;g+=i.length,j.push({name:d.name,mimeType:d.mimeType,size:d.size,text:h})}return g===a.length?{message:i,documents:j}:null}(a)?.message??a}let k="\x3c!-- omp-web-document-context-v1:",l=" --\x3e",m="User message:\n",n="\n\nAttached documents (locally extracted text supplied by the user):\n"},38741:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{findModelWithRecovery:()=>m,getOmpRuntime:()=>i,getSettingsForCwd:()=>j,invalidateOmpRuntime:()=>k,missingModelRecoveryFor:()=>l,recoverMissingModelRefs:()=>n});var e=c(92582),f=c(5908),g=a([e]);async function h(){let a=(0,e.getAgentDir)(),b=await e.Settings.init({agentDir:a}),c=await (0,e.discoverAuthStorage)(a),d=new e.ModelRegistry(c);return await d.refresh("online-if-uncached"),{agentDir:a,settings:b,authStorage:c,modelRegistry:d}}function i(){return globalThis.__ompRuntimePromise??=h().catch(a=>{throw globalThis.__ompRuntimePromise=void 0,a}),globalThis.__ompRuntimePromise}async function j(a){let{settings:b}=await i();return a&&b.getCwd()!==a?b.cloneForCwd(a):b}function k(){globalThis.__ompRuntimePromise=void 0}function l(a){let b=globalThis.__ompMissingModelRecovery??=new WeakMap,c=b.get(a);return c||(c=(0,f.fw)(a),b.set(a,c)),c}async function m(a,b,c,d={}){let e=a.find(b,c);if(e)return{model:e};let f=await l(a).recover(b,{force:d.forceDiscovery}),g=a.find(b,c);return g?{model:g}:{miss:{selector:`${b}/${c}`,provider:b,providerKnown:a.hasProvider(b),recovery:f}}}async function n(a,b){let c=new Set;for(let d of b)d.provider&&d.modelId&&(a.find(d.provider,d.modelId)||c.add(d.provider));0!==c.size&&await Promise.all([...c].map(b=>l(a).recover(b)))}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},40402:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$M:()=>e.getAgentDir,BR:()=>C,DK:()=>E,O5:()=>t,O8:()=>B,Uv:()=>H,dQ:()=>J,eP:()=>D,mD:()=>w,os:()=>z,u1:()=>A,wb:()=>v,zH:()=>s});var e=c(92582),f=c(48331),g=c(5969),h=c(29021),i=c(33873),j=c(53739),k=c(38741),l=c(12039),m=c(45902),n=c(24923),o=c(36208),p=c(87576),q=c(85821),r=a([e,f,g,j,k]);async function s(a){let b=[...new Set(a.map(a=>a.cwd).filter(Boolean))],c=new Map;return await Promise.all(b.map(async a=>{c.set(a,await (0,n.KI)(a))})),a.map(a=>{let b=a.cwd?c.get(a.cwd):void 0;return{...a,projectRoot:b?.projectRoot??a.cwd,...b?.isWorktree&&b.branch?{worktreeBranch:b.branch}:{}}})}function t(a,b){let c=new Map(b.map(a=>[a.id,a]));for(let b of a)c.set(b.id,b);return[...c.values()].sort((a,b)=>b.modified.localeCompare(a.modified))}async function u(){let a=await e.SessionManager.listAll(),b=new Map;for(let c of a)b.set((0,m.$)(c.path),c.id);let c=a.map(a=>(B(a.id,a.path),{path:a.path,id:a.id,cwd:a.cwd,name:a.title,created:a.created instanceof Date?a.created.toISOString():String(a.created),modified:function(a){let b=a.modified instanceof Date?a.modified:new Date(String(a.modified)),c=Number.isFinite(b.getTime())?b.toISOString():String(a.modified),d=globalThis.__ompSessionActivityCache??=new Map,e=(0,m.$)(a.path),f=d.get(e);if(f&&f.mtimeMs===b.getTime()&&f.size===a.size)return f.at??c;let g=function(a){let b;try{b=(0,h.openSync)(a,"r");let c=(0,h.fstatSync)(b).size,d=Buffer.alloc(0),e=0,f=!1;for(;;){let a=e>0?d.lastIndexOf(10,e-1):-1;if(a<0&&c>0){if(!f&&d.length>=65536||d.length>=8388608)return null;let a=Math.min(65536,c),g=Buffer.alloc(a);c-=a,(0,h.readSync)(b,g,0,a,c),d=Buffer.concat([g,d]),e+=a;continue}let g=d.toString("utf8",a+1,e).trim();if(e=Math.max(a,0),g){if(!f&&!g.includes(j.SESSION_EXIT_CUSTOM_TYPE))return null;let a=JSON.parse(g);if(!a||"object"!=typeof a)return null;if("type"in a&&"custom"===a.type&&"customType"in a&&a.customType===j.SESSION_EXIT_CUSTOM_TYPE)f=!0;else{if(!f)return null;let b="timestamp"in a?a.timestamp:void 0;return"string"==typeof b&&Number.isFinite(Date.parse(b))?new Date(b).toISOString():null}}if(a<0)return null}}catch{return null}finally{void 0!==b&&(0,h.closeSync)(b)}}(a.path);return d.set(e,{mtimeMs:b.getTime(),size:a.size,at:g}),g??c}(a),messageCount:a.messageCount,firstMessage:(0,o.we)(a.firstMessage)||"(no messages)",parentSessionId:a.parentSessionPath?b.get((0,m.$)(a.parentSessionPath)):void 0,transient:!1}));return s(c)}async function v(a={}){a.force&&w();let b=globalThis.__ompSessionListGeneration??0;if(globalThis.__ompSessionListCache&&Date.now()-globalThis.__ompSessionListCache.ts<M)return globalThis.__ompSessionListCache.data;if(globalThis.__ompSessionListPromise&&globalThis.__ompSessionListPromiseGeneration===b)return globalThis.__ompSessionListPromise;let c=u().then(a=>(globalThis.__ompSessionListGeneration??0)!==b?v():(globalThis.__ompSessionListCache={data:a,ts:Date.now()},a)).finally(()=>{globalThis.__ompSessionListPromise===c&&(globalThis.__ompSessionListPromise=void 0,globalThis.__ompSessionListPromiseGeneration=void 0)});return globalThis.__ompSessionListPromise=c,globalThis.__ompSessionListPromiseGeneration=b,c}[e,f,g,j,k]=r.then?(await r)():r;let M=3e4;function w(){globalThis.__ompSessionListGeneration=(globalThis.__ompSessionListGeneration??0)+1,globalThis.__ompSessionListCache=void 0}function x(){return globalThis.__ompSessionPathCache||(globalThis.__ompSessionPathCache=new Map),globalThis.__ompSessionPathCache}function y(){return globalThis.__ompPathToSessionIdCache||(globalThis.__ompPathToSessionIdCache=new Map),globalThis.__ompPathToSessionIdCache}async function z(a){let b=x().get(a);return b&&(0,h.existsSync)(b)?b:(b&&C(a),await v(),x().get(a)??null)}async function A(a){let b=(0,m.$)(a),c=y().get(b);return c||(await v(),y().get(b))}function B(a,b){let c=(0,i.normalize)(b),d=(0,m.$)(c),e=x(),f=y(),g=e.get(a),h=g?(0,m.$)(g):void 0,j=f.get(d),k=j?e.get(j):void 0;h&&h!==d&&f.get(h)===a&&f.delete(h),j&&j!==a&&k&&(0,m.$)(k)===d&&e.delete(j),e.set(a,c),f.set(d,a)}function C(a){let b=x(),c=y(),d=b.get(a);b.delete(a);let e=d?(0,m.$)(d):void 0;e&&c.get(e)===a&&c.delete(e)}function D(a){let b=(0,h.openSync)(a,"r");try{let a=[],c=0,d=!1;for(;c<65536&&!d;){let e=Buffer.allocUnsafe(Math.min(4096,65536-c)),f=(0,h.readSync)(b,e,0,e.length,c);if(0===f)break;let g=e.subarray(0,f),i=g.indexOf(10);a.push(-1===i?g:g.subarray(0,i)),c+=f,d=-1!==i}if(!d&&c>=65536)return null;let e=Buffer.concat(a).toString("utf8").trimEnd();if(!e)return null;try{let a=JSON.parse(e);return"session"===a.type?a:null}catch{return null}}finally{(0,h.closeSync)(b)}}async function E(a){return(await e.SessionManager.open(a)).getEntries()}function F(a,b,c){if(null===c)return[];let d=(c?b.get(c):void 0)??a[a.length-1];if(!d)return[];let e=[],f=new Set,g=d;for(;g&&!f.has(g.id);)f.add(g.id),e.push(g),g=g.parentId?b.get(g.parentId):void 0;return e.reverse()}function G(a){let b=a.fallback??a.default;if(!b)return null;let c=b.indexOf("/");return c<=0?null:{provider:b.slice(0,c),modelId:b.slice(c+1)}}function H(a,b,c={}){let d=new Map;for(let b of a)d.set(b.id,b);let f=(0,e.buildSessionContext)(a,b,d,{transcript:!0,collapseCompactedHistory:!0}),g=[],h=[];for(let e of function(a,b,c){let d=F(a,b,c),e=-1;for(let a=d.length-1;a>=0;a--)if("compaction"===d[a].type){e=a;break}if(-1===e)return d;let f=d[e],g=[],h=!1;for(let a=0;a<e;a++)d[a].id===f.firstKeptEntryId&&(h=!0),h&&g.push(d[a]);return[...g,f,...d.slice(e+1)]}(a,d,b)){let a=function(a,b){switch(a.type){case"message":{let c=b.deferToolResultImages?function(a){if("toolResult"!==a.role)return a;let b=0,c=0,d=new Set,e=a.content.filter(a=>{let e=function(a){let b,c;if(!L(a)||"image"!==a.type||("string"==typeof a.data?(b=a.data,c="string"==typeof a.mimeType?a.mimeType:void 0):L(a.source)&&"base64"===a.source.type&&"string"==typeof a.source.data&&(b=a.source.data,c="string"==typeof a.source.media_type?a.source.media_type:void 0),!b))return null;let d=b.endsWith("==")?2:+!!b.endsWith("=");return{bytes:Math.max(0,Math.floor(3*b.length/4)-d),mime:c}}(a);return!e||(b+=1,c+=e.bytes,e.mime&&d.add(e.mime),!1)});if(0===b)return a;let f=d.size>0?`: ${[...d].join(", ")}`:"";return e.push({type:"text",text:`[${b} tool result image${1===b?"":"s"} omitted from initial history payload${f}, ~${c} bytes]`}),{...a,content:e}}((0,l.B)(a.message)):(0,l.B)(a.message);if(!b.deferThinking||"assistant"!==c.role)return c;return{...c,content:c.content.map(a=>"thinking"===a.type&&""!==a.thinking.trim()?{...a,thinking:"",deferred:!0}:a)}}case"compaction":return{role:"custom",customType:"compaction",content:a.summary,display:!0,details:{tokensBefore:a.tokensBefore,firstKeptEntryId:a.firstKeptEntryId},timestamp:K(a.timestamp)};case"branch_summary":if(!a.summary)return null;return{role:"user",content:`*The conversation briefly explored another branch and returned with this summary:*
5
5
 
6
- ${a.summary}`,timestamp:K(a.timestamp)};case"custom_message":if(a.customType===p.BD){let b=(0,p.hw)(a.content,a.details);if(b?.role==="user")return{role:"user",content:b.text,timestamp:K(a.timestamp)};if(b?.role==="assistant")return{role:"assistant",content:[{type:"text",text:b.text}],model:"Codex Live",provider:"openai-codex",stopReason:"stop",timestamp:K(a.timestamp)}}if(a.customType===q.gt){let b="string"==typeof a.content?a.content:a.content.map(a=>"text"===a.type?a.text:"").join("\n");if(b.trim())return{role:"assistant",content:[{type:"text",text:b}],model:q.$f,provider:"web6",stopReason:"stop",timestamp:K(a.timestamp)}}return{role:"custom",customType:a.customType,content:a.content,display:a.display,details:a.details,timestamp:K(a.timestamp)};default:return null}}(e,c);a&&(g.push(a),h.push(e.id))}return{messages:g,entryIds:h,thinkingLevel:f.thinkingLevel??"off",configuredThinkingLevel:f.configuredThinkingLevel??f.thinkingLevel??"off",model:G(f.models)}}function I(a){if(L(a)&&"contextSnapshot"in a)return L(a.contextSnapshot)?a.contextSnapshot:void 0}async function J(a,b){let c,d,h,i=new Map;for(let b of a)i.set(b.id,b);let j=(0,e.buildSessionContext)(a,b,i),l=G(j.models);if(!l)return;try{let{modelRegistry:a}=await (0,k.RD)(),b=a.find(l.provider,l.modelId),e=b?.contextWindow;if("number"!=typeof e||!Number.isFinite(e)||e<=0)return;c=e,d=new f.Tokenizer(b)}catch{return}let m=F(a,i,b),n=-1;for(let a=m.length-1;a>=0;a-=1)if("compaction"===m[a].type){n=a;break}for(let a=m.length-1;a>n;a-=1){let b=m[a];if("message"!==b.type||"assistant"!==b.message.role)continue;let c=b.message,d=I(c);if("aborted"!==c.stopReason&&"error"!==c.stopReason&&c.usage&&(d||(0,g.hasContextTokenUsage)(c.usage))){h=c;break}}if(!h)return;let o=I(h),p=o?.promptTokens,q="number"==typeof p&&Number.isFinite(p)?p:(0,g.calculatePromptTokens)(h.usage);if(!Number.isFinite(q)||q<0)return;let r=j.messages,s=-1;for(let a=r.length-1;a>=0;a-=1){let b=r[a];if(b===h||"assistant"===b.role&&b.timestamp===h.timestamp){s=a;break}}let t=0;if(s>=0)for(let a=s+1;a<r.length;a+=1)t+=d.countMessage(r[a]);let u=Math.max(0,q+t);return{tokens:u,contextWindow:c,percent:u/c*100}}function K(a){let b=Date.parse(a);return Number.isNaN(b)?void 0:b}function L(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}d()}catch(a){d(a)}})},45902:(a,b,c)=>{"use strict";c.d(b,{$:()=>f});var d=c(76760),e=c.n(d);function f(a,b=process.platform){let c="win32"===b?e().win32.normalize(a):e().posix.normalize(a);return"win32"===b?c.toLowerCase():c}},78335:()=>{},85821:(a,b,c)=>{"use strict";c.d(b,{$f:()=>h,Ro:()=>i,YA:()=>k,YO:()=>l,gt:()=>g,lN:()=>j,tm:()=>e,xI:()=>x});var d=c(77598);let e={parse:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internal:-32603,unauthorized:-32e3,handleRejected:-32001},f="[6PRO 경유]",g="gpt6-reply",h="ChatGPT 6PRO",i="gpt6-binding";function j(a,b){return`${f} 이 세션은 6PRO 연결번호 ${a}에 묶였다(만료 ${b}).
6
+ ${a.summary}`,timestamp:K(a.timestamp)};case"custom_message":if(a.customType===p.BD){let b=(0,p.hw)(a.content,a.details);if(b?.role==="user")return{role:"user",content:b.text,timestamp:K(a.timestamp)};if(b?.role==="assistant")return{role:"assistant",content:[{type:"text",text:b.text}],model:"Codex Live",provider:"openai-codex",stopReason:"stop",timestamp:K(a.timestamp)}}if(a.customType===q.gt){let b="string"==typeof a.content?a.content:a.content.map(a=>"text"===a.type?a.text:"").join("\n");if(b.trim())return{role:"assistant",content:[{type:"text",text:b}],model:q.$f,provider:"web6",stopReason:"stop",timestamp:K(a.timestamp)}}return{role:"custom",customType:a.customType,content:a.content,display:a.display,details:a.details,timestamp:K(a.timestamp)};default:return null}}(e,c);a&&(g.push(a),h.push(e.id))}return{messages:g,entryIds:h,thinkingLevel:f.thinkingLevel??"off",configuredThinkingLevel:f.configuredThinkingLevel??f.thinkingLevel??"off",model:G(f.models)}}function I(a){if(L(a)&&"contextSnapshot"in a)return L(a.contextSnapshot)?a.contextSnapshot:void 0}async function J(a,b){let c,d,h,i=new Map;for(let b of a)i.set(b.id,b);let j=(0,e.buildSessionContext)(a,b,i),l=G(j.models);if(!l)return;try{let{modelRegistry:a}=await (0,k.getOmpRuntime)(),b=a.find(l.provider,l.modelId),e=b?.contextWindow;if("number"!=typeof e||!Number.isFinite(e)||e<=0)return;c=e,d=new f.Tokenizer(b)}catch{return}let m=F(a,i,b),n=-1;for(let a=m.length-1;a>=0;a-=1)if("compaction"===m[a].type){n=a;break}for(let a=m.length-1;a>n;a-=1){let b=m[a];if("message"!==b.type||"assistant"!==b.message.role)continue;let c=b.message,d=I(c);if("aborted"!==c.stopReason&&"error"!==c.stopReason&&c.usage&&(d||(0,g.hasContextTokenUsage)(c.usage))){h=c;break}}if(!h)return;let o=I(h),p=o?.promptTokens,q="number"==typeof p&&Number.isFinite(p)?p:(0,g.calculatePromptTokens)(h.usage);if(!Number.isFinite(q)||q<0)return;let r=j.messages,s=-1;for(let a=r.length-1;a>=0;a-=1){let b=r[a];if(b===h||"assistant"===b.role&&b.timestamp===h.timestamp){s=a;break}}let t=0;if(s>=0)for(let a=s+1;a<r.length;a+=1)t+=d.countMessage(r[a]);let u=Math.max(0,q+t);return{tokens:u,contextWindow:c,percent:u/c*100}}function K(a){let b=Date.parse(a);return Number.isNaN(b)?void 0:b}function L(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}d()}catch(a){d(a)}})},45902:(a,b,c)=>{"use strict";c.d(b,{$:()=>f});var d=c(76760),e=c.n(d);function f(a,b=process.platform){let c="win32"===b?e().win32.normalize(a):e().posix.normalize(a);return"win32"===b?c.toLowerCase():c}},78335:()=>{},85821:(a,b,c)=>{"use strict";c.d(b,{$f:()=>f,Ro:()=>g,YA:()=>i,YO:()=>j,gt:()=>e,lN:()=>h,xI:()=>o});var d=c(77598);let e="gpt6-reply",f="ChatGPT 6PRO",g="gpt6-binding";function h(a,b){return`[6PRO 경유] 이 세션은 6PRO 연결번호 ${a}에 묶였다(만료 ${b}).
7
7
 
8
8
  하네스 정책 \`mainLane.web6Consult\`에 따라 이 세션에서는 ChatGPT 6 Pro 상담 네 자리 중
9
9
  **발주 전 설계**와 **최종 판정 직전 상담** 둘이 자동으로 발동한다. 나머지 둘(경합 가설 판정,
10
10
  되돌리기 비싼 설계 선택)은 조건이 맞을 때 Main 재량이다.
11
11
 
12
12
  경로는 loopback shim이고 상담은 조언이다 — 분할\xb7진단\xb7판정은 그대로 Main이 소유한다.
13
- shim이 응답하지 않으면 막지 말고 기존 경로로 진행한 뒤 상담 없이 판정했음을 남긴다.`}class k extends Error{constructor(a,b){super(b),this.name="Gpt6Error",this.code=a}}function l(a){switch(a){case"unknown_handle":case"session_not_found":return 404;case"invalid_token":case"handle_unauthorized":return 401;case"too_many_failures":return 429;case"handle_revoked":case"handle_expired":case"cwd_mismatch":case"session_busy":case"store_conflict":return 409;case"invalid_argument":return 400;default:return 500}}let m={type:"string",description:"WEB 6PRO 탭에서 발급한 연결번호(예: H-1042)."},n={type:"string",description:"시작 문장에 포함된 handleKey를 그대로 전달한다. 그 연결번호를 인증하는 인자이며 다른 연결번호에는 통하지 않는다."},o=[{name:"omp_resume_handle",description:"연결번호를 OMP 세션 스냅샷으로 되돌린다. 반환된 cwd\xb7sessionId\xb7instruction이 이 연결번호가 가리키는 작업이다.",annotations:{title:"OMP 연결번호 불러오기",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:{type:"object",properties:{handle:m,handleKey:n},required:["handle","handleKey"],additionalProperties:!1}},{name:"omp_send_instruction",description:"연결번호에 묶인 OMP 세션에 지시문을 사용자 요청으로 전달한다. 대상 세션이 이미 턴을 돌고 있으면 session_busy로 거부하니 omp_get_status로 확인한 뒤 재시도한다. 응답을 못 받아 같은 호출을 다시 보낼 때는 같은 idempotencyKey를 쓰면 재전송되지 않는다.",annotations:{title:"OMP 세션에 지시 전달",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:{type:"object",properties:{handle:m,handleKey:n,message:{type:"string",description:"OMP 세션에 전달할 지시문."},idempotencyKey:{type:"string",description:"같은 논리 호출을 식별하는 키. 생략하면 message 해시로 60초 안의 재전송을 막는다."}},required:["handle","handleKey","message"],additionalProperties:!1}},{name:"omp_get_status",description:"연결번호가 묶인 세션의 현재 상태(턴 진행 여부\xb7모델\xb7서브에이전트 수\xb7마지막 entry)를 조회한다.",annotations:{title:"OMP 세션 상태 조회",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:{type:"object",properties:{handle:m,handleKey:n},required:["handle","handleKey"],additionalProperties:!1}},{name:"omp_get_result",description:"연결번호가 묶인 세션의 대화 entry를 조회한다. sinceEntryId 뒤의 entry만 주며, 생략하면 최근 것만 준다. truncated가 true면 잘렸으니 마지막 entry id를 다음 sinceEntryId로 이어 읽는다. entry에 failure가 있으면 그 턴은 실패로 끝난 것이다 — text가 비어 있어도 답이 없는 것이 아니라 failure.message가 사유다.",annotations:{title:"OMP 세션 결과 조회",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:{type:"object",properties:{handle:m,handleKey:n,sinceEntryId:{type:"string",description:"이 entry id 뒤의 것만 받는다."}},required:["handle","handleKey"],additionalProperties:!1}},{name:"omp_publish_reply",description:"6PRO의 답변 원문을 handle+handleKey로 묶인 OMP 세션에 기록한다. WEB6 자동 상담 핸들이면 발급 문장에 든 requestId를 requestId와 idempotencyKey에 동일하게 넣어야 한다.",annotations:{title:"6PRO 답변 기록",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:{type:"object",properties:{handle:m,handleKey:n,text:{type:"string",description:"화면에 그대로 남길 답변 원문."},requestId:{type:"string",description:"이 답변이 대응하는 질문\xb7작업 식별자. WEB6 자동 상담은 발급 문장의 requestId를 그대로 쓴다."},idempotencyKey:{type:"string",description:"같은 논리 호출을 식별하는 키. WEB6 자동 상담은 requestId와 같은 값을 써야 한다."}},required:["handle","handleKey","text"],additionalProperties:!1}},{name:"omp_dispatch",description:"확정한 브리프를 실행 계약으로 보낸다. OMP는 요구를 다시 해석하지 않고 이 본문대로 실행한다. 대상 세션이 이미 턴을 돌고 있으면 session_busy로 거부하니 omp_get_status로 확인한 뒤 재시도한다. 사용자에게 하는 답변에는 쓰지 않는다(omp_publish_reply).",annotations:{title:"OMP 실행 발주",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:{type:"object",properties:{handle:m,handleKey:n,brief:{type:"string",description:"대상\xb7변경\xb7수용 조건이 든 브리프 전문. 이 본문이 그대로 실행 계약이 된다."},idempotencyKey:{type:"string",description:"같은 논리 호출을 식별하는 키. 생략하면 본문 해시로 60초 안의 재전송을 막는다."}},required:["handle","handleKey","brief"],additionalProperties:!1}}];function p(a,b){if("string"!=typeof a||""===a.trim())throw new k("invalid_argument",`${b} 인자가 필요합니다.`);return a.trim()}function q(a){return a.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()}let r=/^[0-9a-f]{64}$/;function s(a){return(0,d.createHash)("sha256").update(a,"utf8").digest("hex")}function t(a,b){if(""===a||!r.test(b))return!1;let c=(0,d.createHash)("sha256").update(a,"utf8").digest(),e=Buffer.from(b,"hex");return e.length===c.length&&(0,d.timingSafeEqual)(c,e)}function u(a){if("string"==typeof a)return a;if(!Array.isArray(a))return"";let b=[];for(let c of a)c&&"object"==typeof c&&"text"===c.type&&"string"==typeof c.text&&c.text&&b.push(c.text);return b.join("\n")}function v(a){let b=a.entries();for(let a=b.length-1;a>=0;a-=1){let c=b[a];if(!c||"object"!=typeof c)continue;let d=c.id;if("string"==typeof d&&""!==d)return d}}function w(a){return a&&"object"==typeof a?a:{}}function x(a){let b,c=null;function i(){return{schemaVersion:2,revision:0,tokenHash:"",failedAuthCount:0,lastFailedAt:null,handles:{}}}function j(){let d=a.readStore();if(null!==c&&d===b)return c;let e=function(a){let b;if(null===a||""===a.trim())return i();try{b=JSON.parse(a)}catch{throw new k("store_unreadable","핸들 저장소(gpt6-handles.json)를 JSON으로 읽을 수 없습니다.")}if(!b||"object"!=typeof b||Array.isArray(b))throw new k("store_unreadable","핸들 저장소(gpt6-handles.json)의 형식이 올바르지 않습니다.");let c=b;if(2!==c.schemaVersion)return i();let d={};if(c.handles&&"object"==typeof c.handles)for(let[a,b]of Object.entries(c.handles)){if(b&&"object"==typeof b)"string"==typeof b.sessionId&&"string"==typeof b.cwd&&"string"==typeof b.handleKeyHash&&r.test(b.handleKeyHash)&&(d[a]={handle:"string"==typeof b.handle?b.handle:a,cwd:b.cwd,sessionId:b.sessionId,instruction:"string"==typeof b.instruction?b.instruction:"",createdAt:"string"==typeof b.createdAt?b.createdAt:new Date(0).toISOString(),expiresAt:"string"==typeof b.expiresAt?b.expiresAt:new Date(0).toISOString(),revokedAt:"string"==typeof b.revokedAt?b.revokedAt:null,lastCallAt:"string"==typeof b.lastCallAt?b.lastCallAt:null,callCount:"number"==typeof b.callCount?b.callCount:0,recentSends:Array.isArray(b.recentSends)?b.recentSends.filter(a=>!!a&&"object"==typeof a&&"string"==typeof a.key):[],..."string"==typeof b.web6RequestId&&""!==b.web6RequestId.trim()?{web6RequestId:b.web6RequestId.trim()}:{},handleKeyHash:b.handleKeyHash})}return{schemaVersion:2,revision:"number"==typeof c.revision?c.revision:0,tokenHash:"string"==typeof c.tokenHash&&r.test(c.tokenHash)?c.tokenHash:"",failedAuthCount:"number"==typeof c.failedAuthCount?c.failedAuthCount:0,lastFailedAt:"string"==typeof c.lastFailedAt?c.lastFailedAt:null,handles:d}}(d);return b=d,c=e,e}function l(a){return Date.parse(a.revokedAt??a.expiresAt)}function m(a,b){return l(a)>b-864e5}function n(b){for(let c=0;c<2;c+=1){let c=j(),d=b(c);if(!function(a,b){for(let c of Object.keys(a.handles)){let d=a.handles[c];d&&!m(d,b)&&delete a.handles[c]}let c=Object.keys(a.handles).length-50;if(!(c<=0))for(let[d]of Object.entries(a.handles).filter(([,a])=>l(a)<=b).sort((a,b)=>l(a[1])-l(b[1]))){if(c<=0)break;delete a.handles[d],c-=1}}(c,a.now().getTime()),j().revision===c.revision)return c.revision+=1,a.writeStore(`${JSON.stringify(c,null,2)}
14
- `),d}throw new k("store_conflict","핸들 저장소가 다른 호출과 충돌했습니다. 잠시 뒤 다시 시도하세요.")}function x(a,b){let c=a.revokedAt?"revoked":Date.parse(a.expiresAt)<=b?"expired":"active";return{handle:a.handle,cwd:a.cwd,sessionId:a.sessionId,instruction:a.instruction,createdAt:a.createdAt,expiresAt:a.expiresAt,revokedAt:a.revokedAt,lastCallAt:a.lastCallAt,callCount:a.callCount,status:c}}function y(a,b){if(!a.lastFailedAt)return!1;let c=Date.parse(a.lastFailedAt);return Number.isFinite(c)&&b-c<=6e4}function z(b,c){if(n(b=>{let c=a.now().getTime();return b.failedAuthCount=y(b,c)?b.failedAuthCount+1:1,b.lastFailedAt=new Date(c).toISOString(),b.failedAuthCount>10}))throw new k("too_many_failures","연결번호 해소 실패가 60초 안에 10회를 넘었습니다. 잠시 뒤 다시 시도하세요.");throw new k(b,c)}async function A(b){let c=a.getSession(b),d=c?.isAlive()?c:await a.resumeSession(b);return d&&d.isAlive()?d:void 0}function B(a,b,c){let d={source:h,...c.handle?{handle:c.handle}:{},...c.model?{model:c.model}:{},...c.requestId?{requestId:c.requestId}:{}};return a.appendCustomMessage(g,b,!0,d)}async function C(b,c){let d=p(b,"handle"),e=j().handles[d];if(e||z("unknown_handle",`연결번호 ${d}를 찾을 수 없습니다.`),t("string"==typeof c?c:"",e.handleKeyHash)||z("handle_unauthorized",`연결번호 ${e.handle}의 handleKey가 올바르지 않습니다.`),e.revokedAt)throw new k("handle_revoked",`연결번호 ${e.handle}는 폐기되었습니다.`);if(Date.parse(e.expiresAt)<=a.now().getTime())throw new k("handle_expired",`연결번호 ${e.handle}는 만료되었습니다.`);let f=await A(e.sessionId);if(!f)throw new k("session_missing",`세션 ${e.sessionId}의 기록을 찾을 수 없습니다. 이 세션이 삭제되었으면 6PRO 탭에서 연결번호를 새로 발급하세요.`);if(q(f.cwd)!==q(e.cwd))throw new k("cwd_mismatch",`세션 ${e.sessionId}의 작업폴더(${f.cwd})가 연결번호의 스냅샷(${e.cwd})과 다릅니다.`);return n(b=>{let c=b.handles[e.handle];c&&(c.callCount+=1,c.lastCallAt=a.now().toISOString())}),{record:e,session:f}}function D(a,b){let c=(0,d.createHash)("sha256").update(b,"utf8").digest("hex");return"string"==typeof a&&""!==a.trim()?{key:`id:${a.trim()}`,explicit:!0,messageHash:c}:{key:`msg:${c}`,explicit:!1,messageHash:c}}function E(a){return a.startsWith(f)?a:`${f}
15
- ${a}`}function F(a,b,c,d){let e=a.recentSends.find(a=>a.key===b);if(e&&!(!c&&d-Date.parse(e.sentAt)>6e4))return e}async function G(b,c){for(let d=0;d<=1500;d+=30){let e=v(b);if(void 0!==e&&e!==c)return e;if(1500===d)break;await a.wait(30)}}function H(a){return`[6PRO 발주]
16
- 아래 브리프는 6PRO가 확정한 실행 계약이다. 요구와 수용 조건을 다시 해석하거나 바꾸지 말고 그대로 실행해라.
17
- 빠진 정보나 모순이 있으면 임의로 채우지 말고 그 지점만 보고해라. 위임하면 이 본문을 과제에 그대로 실어라.
18
- --- 브리프 ---
19
- ${a}`}async function I(b,c,d,e){let f,{record:g,session:h}=await C(c.handle,c.handleKey),{key:i,explicit:j,messageHash:l}=D(c.idempotencyKey,b),m=""===d?i:`${d}/${i}`,o=a.now().getTime(),p=F(g,m,j,o);if(p)return{payload:{accepted:!0,entryId:p.entryId,deduped:!0,pending:""===p.entryId},isError:!1};if(h.isRunning())return{payload:{error:`세션 ${g.sessionId}가 이미 턴을 돌고 있습니다.`,code:"session_busy",busy:!0,sessionId:g.sessionId,hint:"omp_get_status로 현재 상태를 확인한 뒤, 작업이 끝난 다음 같은 idempotencyKey로 다시 보내세요."},isError:!0};let q=v(h),r=new Date(o).toISOString();n(a=>{let b=a.handles[g.handle];if(!b)throw new k("unknown_handle",`연결번호 ${g.handle}를 찾을 수 없습니다.`);b.recentSends=[{key:m,entryId:"",sentAt:r,messageHash:l},...b.recentSends].slice(0,20)});try{await h.send({type:"prompt",message:e(b)}),f=await G(h,q)??q??""}catch(b){let a=b instanceof Error?b.message:String(b);return n(a=>{let b=a.handles[g.handle];b&&(b.recentSends=b.recentSends.filter(a=>a.key!==m||""!==a.entryId))}),{payload:{error:`세션에 지시를 전달하지 못했습니다: ${a}`,code:"send_failed",sessionId:g.sessionId},isError:!0}}return n(a=>{let b=a.handles[g.handle];if(!b)return;let c=b.recentSends.find(a=>a.key===m&&""===a.entryId);c&&(c.entryId=f)}),{payload:{accepted:!0,entryId:f,deduped:!1},isError:!1}}async function J(b){let c=p(b.text,"text"),d="string"==typeof b.requestId&&""!==b.requestId.trim()?b.requestId.trim():void 0,{record:e,session:f}=await C(b.handle,b.handleKey);if(void 0!==e.web6RequestId){let a="string"==typeof b.idempotencyKey?b.idempotencyKey.trim():"";if(d!==e.web6RequestId||a!==e.web6RequestId)throw new k("invalid_argument","WEB6 자동 상담 답변은 발급 문장의 requestId를 requestId와 idempotencyKey에 동일하게 넣어야 합니다.")}let{key:g,explicit:h,messageHash:i}=D(b.idempotencyKey,c),j=`reply/${g}`,l=a.now().getTime(),m=F(e,j,h,l);if(m&&m.messageHash!==i)throw new k("invalid_argument","같은 idempotencyKey에 다른 답변 본문을 사용할 수 없습니다.");let o=m?.entryId;if(!o){try{o=B(f,c,{handle:e.handle,requestId:d})}catch(b){let a=b instanceof Error?b.message:String(b);return{payload:{error:`답변을 세션에 남기지 못했습니다: ${a}`,code:"publish_failed",sessionId:e.sessionId},isError:!0}}n(a=>{let b=a.handles[e.handle];b&&(b.recentSends=[{key:j,entryId:o,sentAt:new Date(l).toISOString(),messageHash:i},...b.recentSends].slice(0,20))})}return{payload:{published:!0,entryId:o,deduped:void 0!==m,busy:f.isRunning()},isError:!1}}async function K(a){let b,{session:c}=await C(a.handle,a.handleKey),d=await c.send({type:"get_state"});return{payload:{busy:function(a,b){if(a.isRunning())return!0;let c=w(b);return!0===c.isStreaming||!0===c.isPromptRunning}(c,d),model:function(a){let b=w(a).model;if(!b||"object"!=typeof b)return null;let c="string"==typeof b.id?b.id:"",d="string"==typeof b.provider?b.provider:"";return c||d?d&&c?`${d}/${c}`:c||d:null}(d),runningAgents:Array.isArray(b=w(d).subagents)?b.filter(a=>!!a&&"object"==typeof a&&"running"===a.status).length:0,lastEntryId:v(c)??null},isError:!1}}async function L(a){let b,{session:c}=await C(a.handle,a.handleKey),d="string"==typeof a.sinceEntryId&&""!==a.sinceEntryId.trim()?a.sinceEntryId.trim():void 0,e=function(a){let b=[];for(let c of a.entries()){if(!c||"object"!=typeof c||"string"!=typeof c.id||""===c.id)continue;if("custom_message"===c.type){if(c.customType!==g)continue;b.push({id:c.id,role:"gpt6",text:u(c.content)});continue}if("message"!==c.type)continue;let a=c.message;if(!a||"object"!=typeof a)continue;let d="string"==typeof a.role?a.role:"unknown",e=function(a){if("error"!==a.stopReason)return null;let b="string"==typeof a.provider?a.provider:"",c="string"==typeof a.model?a.model:"",d=b&&c?`${b}/${c}`:c||b;return{stopReason:"error",message:"string"==typeof a.errorMessage?a.errorMessage:"",..."number"==typeof a.errorStatus?{status:a.errorStatus}:{},...d?{model:d}:{}}}(a);b.push({id:c.id,role:d,text:u(a.content),...e?{failure:e}:{}})}return b}(c),f=!1,h=!1;if(void 0===d)b=e.slice(-20),f=e.length>b.length;else{let a=e.findIndex(a=>a.id===d);if(a<0)h=!0,b=e.slice(-20),f=e.length>b.length;else{let c=e.slice(a+1);f=c.length>50,b=c.slice(0,50)}}return{payload:{entries:b.map(a=>a.text.length<=4e3?a:(f=!0,{...a,text:`${a.text.slice(0,4e3)}
20
- …(이하 생략)`})),busy:c.isRunning(),truncated:f,...h?{cursorMissing:!0}:{}},isError:!1}}async function M(a,b){var c;switch(a){case"omp_resume_handle":{let a,{record:d}=await C(b.handle,b.handleKey);return{payload:{handle:d.handle,cwd:d.cwd,projectName:(a=(c=d.cwd).replace(/\\/g,"/").replace(/\/+$/,"").split("/"))[a.length-1]||c,sessionId:d.sessionId,instruction:d.instruction,status:"active"},isError:!1}}case"omp_send_instruction":return I(p(b.message,"message"),b,"",E);case"omp_publish_reply":return J(b);case"omp_dispatch":return I(p(b.brief,"brief"),b,"dispatch",H);case"omp_get_status":return K(b);case"omp_get_result":return L(b);default:throw new k("invalid_argument",`알 수 없는 도구입니다: ${a}`)}}function N(a,b){return{jsonrpc:"2.0",id:a,result:b}}function O(a,b,c,d){return{jsonrpc:"2.0",id:a,error:{code:b,message:c,...d?{data:d}:{}}}}function P(a,b){return N(a,{content:[{type:"text",text:JSON.stringify(b.payload)}],...b.isError?{isError:!0}:{}})}return{issueHandle:function(b){let c=p(b.cwd,"cwd"),d=p(b.sessionId,"sessionId"),e="string"==typeof b.instruction?b.instruction:"",f=void 0===b.web6RequestId?void 0:p(b.web6RequestId,"web6RequestId"),g=function(a){if(null==a)return 720;if("number"!=typeof a||!Number.isInteger(a))throw new k("invalid_argument","ttlMinutes는 정수여야 합니다.");if(a<1||a>10080)throw new k("invalid_argument","ttlMinutes는 1~10080 범위여야 합니다.");return a}(b.ttlMinutes),h=a.now().getTime();return n(b=>{var i;let j=null;""===b.tokenHash&&(b.tokenHash=s(j=a.randomToken()));let l="";for(let c=0;c<20;c+=1){let c=`H-${a.randomHandleDigits()}`;if(!b.handles[c]){l=c;break}}if(""===l)throw new k("handle_exhausted","연결번호를 발급하지 못했습니다. 4자리 번호가 소진되었습니다.");let m=a.randomHandleKey(),n={handle:l,cwd:c,sessionId:d,instruction:e,createdAt:new Date(h).toISOString(),expiresAt:new Date(h+6e4*g).toISOString(),revokedAt:null,lastCallAt:null,callCount:0,recentSends:[],...void 0===f?{}:{web6RequestId:f},handleKeyHash:s(m)};return b.handles[l]=n,{...x(n,h),token:j,handleKey:m,startSentence:(i=l,`OMP 연결번호 ${i}의 작업을 불러와서 메인으로 진행해. 작업폴더는 ${c}다. omp_* 도구를 부를 때 handle에는 ${i}, handleKey에는 ${m}를 그대로 넣어. 사용자에게 하는 답변은 omp_publish_reply로 원문을 그대로 올려 — 그 도구는 OMP 모델을 실행하지 않는다. 실제 작업이 필요할 때만 omp_dispatch에 브리프를 실어 보내고, 결과는 omp_get_result로 확인해.`)}})},listHandles:function(){let b=j(),c=a.now().getTime(),d=y(b,c);return{handles:Object.values(b.handles).filter(a=>m(a,c)).map(a=>x(a,c)).sort((a,b)=>b.createdAt.localeCompare(a.createdAt)||a.handle.localeCompare(b.handle)),tokenPresent:""!==b.tokenHash,failedAuthCount:d?b.failedAuthCount:0,lastFailedAt:d?b.lastFailedAt:null}},revokeHandle:function(b){let c=p(b,"handle");return n(b=>{let d=b.handles[c];if(!d)throw new k("unknown_handle",`연결번호 ${c}를 찾을 수 없습니다.`);return d.revokedAt||(d.revokedAt=a.now().toISOString()),{handle:c,revoked:!0}})},rotateToken:function(b){return n(c=>{if(!t(b,c.tokenHash))throw new k("invalid_token","현재 토큰이 올바르지 않습니다. 회전에는 지금 쓰는 토큰이 필요합니다.");let d=a.randomToken();return c.tokenHash=s(d),{token:d,rotatedAt:a.now().toISOString()}})},acceptsToken:a=>t(a,j().tokenHash),dispatch:async function(a,b){if(Array.isArray(a))return O(null,e.invalidRequest,"JSON-RPC batch(배열 본문)는 지원하지 않습니다. 요청을 하나씩 보내세요.");let c=w(a),d=c.id??null;if(!t(b.token,j().tokenHash))return O(d,e.unauthorized,"토큰이 올바르지 않습니다. 커넥터의 Authorization bearer 토큰을 확인하세요.",{code:"unauthorized"});let f="string"==typeof c.method?c.method:"";if(""===f)return O(d,e.invalidRequest,"JSON-RPC method가 없습니다.");if(f.startsWith("notifications/"))return null;if("initialize"===f)return N(d,{protocolVersion:"2025-06-18",capabilities:{tools:{}},serverInfo:{name:"omp-gpt6-bridge",version:"0.4.4"}});if("tools/list"===f)return N(d,{tools:o});if("tools/call"===f){let a=w(c.params),b="string"==typeof a.name?a.name:"";if(!o.some(a=>a.name===b))return O(d,e.invalidParams,`알 수 없는 도구입니다: ${b||"(이름 없음)"}`);let f=w(a.arguments);try{return P(d,await M(b,f))}catch(b){if(b instanceof k){if("invalid_argument"===b.code)return O(d,e.invalidParams,b.message,{code:b.code});if(function(a){switch(a){case"unknown_handle":case"handle_unauthorized":case"handle_expired":case"handle_revoked":case"session_missing":case"cwd_mismatch":case"too_many_failures":return!0;default:return!1}}(b.code))return O(d,e.handleRejected,b.message,{code:b.code});return P(d,{payload:{error:b.message,code:b.code},isError:!0})}let a=b instanceof Error?b.message:String(b);return P(d,{payload:{error:`도구 실행이 실패했습니다: ${a}`,code:"internal_error"},isError:!0})}}return O(d,e.methodNotFound,`지원하지 않는 메서드입니다: ${f}`)},publishReply:async function(a){let b=p(a.sessionId,"sessionId"),c=p(a.text,"text"),d="string"==typeof a.model&&""!==a.model.trim()?a.model.trim():h,e=await A(b);if(!e)throw new k("session_not_found",`세션 ${b}의 기록을 찾을 수 없습니다.`);return{published:!0,entryId:B(e,c,{model:d}),busy:e.isRunning()}}}}},87576:(a,b,c)=>{"use strict";c.d(b,{BD:()=>d,NR:()=>f,PW:()=>j,Yh:()=>h,c$:()=>k,hw:()=>g});let d="live-transcript",e={user:"User (live voice):\n",assistant:"Voice assistant (live voice):\n"};function f(a,b){return`${e[a]}${b}`}function g(a,b){if(!b||"object"!=typeof b||!("role"in b))return null;let c=b.role;if("user"!==c&&"assistant"!==c||"string"!=typeof a)return null;let d=e[c];if(!a.startsWith(d))return null;let f=a.slice(d.length).trim();return f?{role:c,text:f}:null}function h(a,b,c,d){let e;if(b){if(a?.text)if(a.final)if(c){if(void 0!==d&&a.finalizedTurnIds?.has(d)||void 0===d&&b===a.text)return;e=b}else{if(void 0!==d&&void 0!==a.itemId&&d===a.itemId||void 0===d&&(b===a.text||a.text.endsWith(b)))return;e=b}else if(c){if(void 0!==d&&a.finalizedTurnIds?.has(d))return;e=a.text.startsWith(b)&&a.text.length>b.length?a.text:b}else e=b.startsWith(a.text)?b:a.text.endsWith(b)?a.text:a.text+b;else e=b;if(e=e.trim())return{text:e,final:c,itemId:c?a?.itemId:d??a?.itemId,finalizedTurnIds:c&&void 0!==d?(a?.finalizedTurnIds??new Set).add(d):a?.finalizedTurnIds}}}function i(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function j(a){let b=a;if("string"==typeof b)try{b=JSON.parse(b)}catch{return null}return i(b)?b:null}function k(a){let b="turn.done"===a.type?a.turn:"input_transcript.added"===a.type||"output_transcript.added"===a.type?a.item:void 0;if(!i(b))return;let c=b.id;return"string"==typeof c&&c?c:void 0}},96487:()=>{}};
13
+ shim이 응답하지 않으면 막지 말고 기존 경로로 진행한 뒤 상담 없이 판정했음을 남긴다.`}class i extends Error{constructor(a,b){super(b),this.name="Gpt6Error",this.code=a}}function j(a){switch(a){case"unknown_handle":case"session_not_found":return 404;case"invalid_token":return 401;case"store_conflict":return 409;case"invalid_argument":return 400;default:return 500}}function k(a,b){if("string"!=typeof a||""===a.trim())throw new i("invalid_argument",`${b}는 비어 있지 않은 문자열이어야 합니다.`);return a.trim()}let l=/^[0-9a-f]{64}$/;function m(a){return(0,d.createHash)("sha256").update(a,"utf8").digest("hex")}function n(a,b){if(""===a||!l.test(b))return!1;let c=(0,d.createHash)("sha256").update(a,"utf8").digest(),e=Buffer.from(b,"hex");return e.length===c.length&&(0,d.timingSafeEqual)(c,e)}function o(a){let b,c=null;function d(){return{schemaVersion:2,revision:0,tokenHash:"",handles:{}}}function g(){let e=a.readStore();if(null!==c&&e===b)return c;let f=function(a){let b;if(null===a||""===a.trim())return d();try{b=JSON.parse(a)}catch{throw new i("store_unreadable","핸들 저장소(gpt6-handles.json)를 JSON으로 읽을 수 없습니다.")}if(!b||"object"!=typeof b||Array.isArray(b))throw new i("store_unreadable","핸들 저장소(gpt6-handles.json)의 형식이 올바르지 않습니다.");let c=b;if(2!==c.schemaVersion)return d();let e={};if(c.handles&&"object"==typeof c.handles)for(let[a,b]of Object.entries(c.handles)){if(b&&"object"==typeof b)"string"==typeof b.sessionId&&"string"==typeof b.cwd&&"string"==typeof b.handleKeyHash&&l.test(b.handleKeyHash)&&(e[a]={handle:"string"==typeof b.handle?b.handle:a,cwd:b.cwd,sessionId:b.sessionId,instruction:"string"==typeof b.instruction?b.instruction:"",createdAt:"string"==typeof b.createdAt?b.createdAt:new Date(0).toISOString(),expiresAt:"string"==typeof b.expiresAt?b.expiresAt:new Date(0).toISOString(),revokedAt:"string"==typeof b.revokedAt?b.revokedAt:null,..."string"==typeof b.web6RequestId&&""!==b.web6RequestId.trim()?{web6RequestId:b.web6RequestId.trim()}:{},handleKeyHash:b.handleKeyHash})}return{schemaVersion:2,revision:"number"==typeof c.revision?c.revision:0,tokenHash:"string"==typeof c.tokenHash&&l.test(c.tokenHash)?c.tokenHash:"",handles:e}}(e);return b=e,c=f,f}function h(a){return Date.parse(a.revokedAt??a.expiresAt)}function j(a,b){return h(a)>b-864e5}function o(b){for(let c=0;c<2;c+=1){let c=g(),d=b(c);if(!function(a,b){for(let c of Object.keys(a.handles)){let d=a.handles[c];d&&!j(d,b)&&delete a.handles[c]}let c=Object.keys(a.handles).length-50;if(!(c<=0))for(let[d]of Object.entries(a.handles).filter(([,a])=>h(a)<=b).sort((a,b)=>h(a[1])-h(b[1]))){if(c<=0)break;delete a.handles[d],c-=1}}(c,a.now().getTime()),g().revision===c.revision)return c.revision+=1,a.writeStore(`${JSON.stringify(c,null,2)}
14
+ `),d}throw new i("store_conflict","핸들 저장소가 다른 호출과 충돌했습니다. 잠시 뒤 다시 시도하세요.")}function p(a,b){let c=a.revokedAt?"revoked":Date.parse(a.expiresAt)<=b?"expired":"active";return{handle:a.handle,cwd:a.cwd,sessionId:a.sessionId,instruction:a.instruction,createdAt:a.createdAt,expiresAt:a.expiresAt,revokedAt:a.revokedAt,status:c}}async function q(b){let c=a.getSession(b),d=c?.isAlive()?c:await a.resumeSession(b);return d&&d.isAlive()?d:void 0}return{issueHandle:function(b){let c=k(b.cwd,"cwd"),d=k(b.sessionId,"sessionId"),e="string"==typeof b.instruction?b.instruction:"",f=void 0===b.web6RequestId?void 0:k(b.web6RequestId,"web6RequestId"),g=function(a){if(null==a)return 720;if("number"!=typeof a||!Number.isInteger(a))throw new i("invalid_argument","ttlMinutes는 정수여야 합니다.");if(a<1||a>10080)throw new i("invalid_argument","ttlMinutes는 1~10080 범위여야 합니다.");return a}(b.ttlMinutes),h=a.now().getTime();return o(b=>{let j=null;""===b.tokenHash&&(b.tokenHash=m(j=a.randomToken()));let k="";for(let c=0;c<20;c+=1){let c=`H-${a.randomHandleDigits()}`;if(!b.handles[c]){k=c;break}}if(""===k)throw new i("handle_exhausted","연결번호를 발급하지 못했습니다. 4자리 번호가 소진되었습니다.");let l=a.randomHandleKey(),n={handle:k,cwd:c,sessionId:d,instruction:e,createdAt:new Date(h).toISOString(),expiresAt:new Date(h+6e4*g).toISOString(),revokedAt:null,...void 0===f?{}:{web6RequestId:f},handleKeyHash:m(l)};return b.handles[k]=n,{...p(n,h),token:j,handleKey:l,startSentence:`OMP 연결번호 ${k}에 묶인 세션의 상담이다. 작업폴더는 ${c}다.`}})},listHandles:function(){let b=g(),c=a.now().getTime();return{handles:Object.values(b.handles).filter(a=>j(a,c)).map(a=>p(a,c)).sort((a,b)=>b.createdAt.localeCompare(a.createdAt)||a.handle.localeCompare(b.handle)),tokenPresent:""!==b.tokenHash}},revokeHandle:function(b){let c=k(b,"handle");return o(b=>{let d=b.handles[c];if(!d)throw new i("unknown_handle",`연결번호 ${c}를 찾을 수 없습니다.`);return d.revokedAt||(d.revokedAt=a.now().toISOString()),{handle:c,revoked:!0}})},rotateToken:function(b){return o(c=>{if(!n(b,c.tokenHash))throw new i("invalid_token","현재 토큰이 올바르지 않습니다. 회전에는 지금 쓰는 토큰이 필요합니다.");let d=a.randomToken();return c.tokenHash=m(d),{token:d,rotatedAt:a.now().toISOString()}})},acceptsToken:a=>n(a,g().tokenHash),publishReply:async function(a){let b=k(a.sessionId,"sessionId"),c=k(a.text,"text"),d="string"==typeof a.model&&""!==a.model.trim()?a.model.trim():f,g=await q(b);if(!g)throw new i("session_not_found",`세션 ${b}의 기록을 찾을 수 없습니다.`);return{published:!0,entryId:g.appendCustomMessage(e,c,!0,{source:f,model:d}),busy:g.isRunning()}}}}},87576:(a,b,c)=>{"use strict";c.d(b,{BD:()=>d,NR:()=>f,PW:()=>j,Yh:()=>h,c$:()=>k,hw:()=>g});let d="live-transcript",e={user:"User (live voice):\n",assistant:"Voice assistant (live voice):\n"};function f(a,b){return`${e[a]}${b}`}function g(a,b){if(!b||"object"!=typeof b||!("role"in b))return null;let c=b.role;if("user"!==c&&"assistant"!==c||"string"!=typeof a)return null;let d=e[c];if(!a.startsWith(d))return null;let f=a.slice(d.length).trim();return f?{role:c,text:f}:null}function h(a,b,c,d){let e;if(b){if(a?.text)if(a.final)if(c){if(void 0!==d&&a.finalizedTurnIds?.has(d)||void 0===d&&b===a.text)return;e=b}else{if(void 0!==d&&void 0!==a.itemId&&d===a.itemId||void 0===d&&(b===a.text||a.text.endsWith(b)))return;e=b}else if(c){if(void 0!==d&&a.finalizedTurnIds?.has(d))return;e=a.text.startsWith(b)&&a.text.length>b.length?a.text:b}else e=b.startsWith(a.text)?b:a.text.endsWith(b)?a.text:a.text+b;else e=b;if(e=e.trim())return{text:e,final:c,itemId:c?a?.itemId:d??a?.itemId,finalizedTurnIds:c&&void 0!==d?(a?.finalizedTurnIds??new Set).add(d):a?.finalizedTurnIds}}}function i(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function j(a){let b=a;if("string"==typeof b)try{b=JSON.parse(b)}catch{return null}return i(b)?b:null}function k(a){let b="turn.done"===a.type?a.turn:"input_transcript.added"===a.type||"output_transcript.added"===a.type?a.item:void 0;if(!i(b))return;let c=b.id;return"string"==typeof c&&c?c:void 0}},96487:()=>{}};
@@ -5,6 +5,6 @@
5
5
  Status: ${g.status}${g.enabled?"":" (paused)"}
6
6
  Tokens: ${f}
7
7
  Time spent: ${a=g.timeUsedSeconds,b=Math.max(0,Math.round(a)),c=Math.floor(b/3600),d=Math.floor(b%3600/60),c>0?`${c}h ${d}m`:d>0?`${d}m ${b%60}s`:`${b}s`}`),status:g}}async #v(a){if(!a)return this.#p("Usage: /goal set <objective>");if(!this.enabled&&this.#w())return this.#p("Resume the current goal first, or drop it before setting a new objective.");if(!this.enabled)return await this.#x(a);let b=await this.#a.goalRuntime.replaceGoal({objective:a});return this.#a.setGoalModeState?.(b),this.#g=!1,this.#a.isStreaming&&await this.#a.sendGoalModeContext({deliverAs:"steer"}),{message:"Goal replaced.",prompt:a,status:this.getStatus()}}async #x(a){let b=this.#a.getEnabledToolNames().filter(a=>"goal"!==a),c=await this.#a.goalRuntime.createGoal({objective:a});return this.#c=b,await this.#a.setActiveToolsByName([...new Set([...b,"goal"])]),this.#a.setGoalModeState?.(c),this.#g=!1,this.#a.isStreaming&&await this.#a.sendGoalModeContext({deliverAs:"steer"}),this.#o(),{message:"Goal mode enabled.",prompt:a,status:this.getStatus()}}async #r(){return this.enabled?(await this.#a.goalRuntime.pauseGoal(),await this.#y({reason:"paused"}),{message:"Goal mode paused.",status:this.getStatus()}):this.#p("No active goal to pause.")}async #s(){if(!this.#w())return this.#p("No paused goal to resume.");let a=this.#a.getEnabledToolNames().filter(a=>"goal"!==a),b=await this.#a.goalRuntime.resumeGoal();return this.#c=a,await this.#a.setActiveToolsByName([...new Set([...a,"goal"])]),this.#a.setGoalModeState?.(b),this.#g=!1,this.#o(),this.#z(),{message:"Goal mode resumed.",status:this.getStatus()}}async #t(){return this.enabled||this.#w()?(await this.#a.goalRuntime.dropGoal(),await this.#y({reason:"dropped"}),{message:"Goal dropped.",status:this.getStatus()}):this.#p("No goal to drop.")}async #u(a){let b=this.#a.getGoalModeState?.();if(!this.enabled||!b?.enabled)return this.#p(this.#w()?"Resume the goal before adjusting the budget.":"No active goal.");if("complete"===b.goal.status)return this.#p("Goal is already complete.");if(!a)return this.#p("Usage: /goal budget <N|off>");let{budget:c,error:d}=function(a){let b=a.trim().toLowerCase();if("off"===b)return{};let c=Number.parseInt(b,10);return!Number.isInteger(c)||c<=0||String(c)!==b?{error:"Goal budget must be a positive integer or `off`."}:{budget:c}}(a);return d?this.#p(d):(await this.#a.goalRuntime.onBudgetMutated(c),this.#g=!1,this.#o(),this.#z(),{message:void 0===c?"Goal budget cleared.":`Goal budget set to ${c.toLocaleString()}.`,status:this.getStatus()})}async #y(a){let b=this.#c;if(b&&await this.#a.setActiveToolsByName(b),"completed"===a.reason){let a=this.#a.getGoalModeState?.()?.goal;this.#a.setGoalModeState?.(void 0),this.#a.sessionManager.appendModeChange("none"),this.#a.sessionManager.appendCustomEntry("goal-completed",{objective:a?.objective,tokensUsed:a?.tokensUsed,tokenBudget:a?.tokenBudget,timeUsedSeconds:a?.timeUsedSeconds})}this.#c=void 0,this.#e=!1,this.#j(),this.#o()}async #n(){let a=this.#a.getEnabledToolNames().filter(a=>"goal"!==a);this.#c=a,await this.#a.setActiveToolsByName([...new Set([...a,"goal"])])}#z(){var a;if(this.#j(),this.#h||(a=e.cfgGoalContinuationModes.get(this.#a.settings),!(Array.isArray(a)&&h.some(b=>a.includes(b)))||this.#a.getPlanModeState?.()?.enabled||this.#g))return;let b=this.#a.getGoalModeState?.();!b?.enabled||"active"!==b.goal.status||this.#a.goalRuntime.buildContinuationPrompt()&&(this.#d=setTimeout(()=>{this.#d=void 0,this.#A()},this.#b.continuationDelayMs??800))}async #A(){if(this.#h||this.#g||this.#b.isBusy())return;let a=this.#a.getGoalModeState?.();if(!a?.enabled||"active"!==a.goal.status)return;let b=this.#a.goalRuntime.buildContinuationPrompt();if(b){this.#e=!0;try{await this.#b.runContinuation(b)}catch{this.#e=!1}}}#j(){this.#d&&(clearTimeout(this.#d),this.#d=void 0)}#p(a){return{error:a,status:this.getStatus()}}#m(){return!1!==e.cfgGoalEnabled.get(this.#a.settings)}#w(){let a=this.#a.getGoalModeState?.();if(a?.goal&&!a.enabled&&"paused"===a.goal.status)return a}#l(){let a=this.#a.sessionManager.getEntries();for(let b=a.length-1;b>=0;b-=1)if(a[b]?.type==="mode_change")return a[b]}#o(){this.#b.onStatusChange?.(this.getStatus())}}d()}catch(a){d(a)}})},41761:(a,b,c)=>{c.d(b,{C1:()=>d});let d=["read","bash","edit","write","grep","glob"];Object.fromEntries(d.map(a=>[a,!0]))},53923:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{D:()=>i});var e=c(58505),f=c(4327),g=a([e,f]);function h(a,b){return(0,e.findConfigFile)(a,{user:!1,cwd:b})??(0,e.findConfigFile)(a,{user:!0,cwd:b})}async function i(a){let[b,c]=await Promise.all([(0,f.resolvePromptInput)(h("SYSTEM.md",a),"system prompt"),(0,f.resolvePromptInput)(h("APPEND_SYSTEM.md",a),"append system prompt")]);return{systemPrompt:b,appendPrompt:c}}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},56429:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>_,Bp:()=>aa,HG:()=>ad,KI:()=>K,MT:()=>Y,OF:()=>af,_I:()=>ab,oA:()=>ac});var e=c(63411),f=c(92582),g=c(33594),h=c(94285),i=c(59895),j=c(28315),k=c(25167),l=c(14882),m=c(1740),n=c(9655),o=c(82512),p=c(78310),q=c(43696),r=c(26854),s=c(55511),t=c(29021),u=c(33873),v=c(78970),w=c(36208),x=c(28967),y=c(18904),z=c(40402),A=c(72498),B=c(53923),C=c(25429),D=c(38741),E=c(5908),F=c(41761),G=c(4157),H=c(39873),I=c(71069),J=a([e,f,g,h,i,j,k,l,m,n,o,p,q,r,y,z,B,C,D,H]);function K(a){let b,c=null,d=!1,e=()=>{if(b&&(clearTimeout(b),b=void 0),d||!c)return;let e=c;c=null,a(e)};return{push:f=>{if(!d){if("message_update"===f.type){c=f,b||(b=setTimeout(()=>{b=void 0,e()},33));return}e(),a(f)}},flush:e,close:()=>{d=!0,c=null,clearTimeout(b),b=void 0}}}[e,f,g,h,i,j,k,l,m,n,o,p,q,r,y,z,B,C,D,H]=J.then?(await J)():J;let ag=new Set(["agent_start","agent_end","agent_settled","auto_compaction_start","auto_compaction_end","compaction_start","compaction_end"]),ah=new Set(["agent_end","agent_settled","auto_compaction_end","compaction_end"]),ai={abort:!0,extension_ui_input:!0,extension_ui_response:!0,get_commands:!0,get_last_assistant_text:!0,get_session_stats:!0,get_state:!0,get_subagent_messages:!0,get_subagents:!0,get_tools:!0},aj={bash:!0,compact:!0,follow_up:!0,fork:!0,handoff:!0,prompt:!0,steer:!0},ak={set_model:!0,set_role_model:!0,set_thinking_level:!0};async function L(a,b){let c=a.modelRegistry.authStorage;if(!c?.oauth)return{ok:!1,reason:"이 세션은 OAuth 계정 목록을 읽을 수 없습니다."};try{return await c.reload?.(),{ok:!0,accounts:c.oauth.accounts(b,a.sessionId)}}catch(a){return{ok:!1,reason:`계정 목록을 읽지 못했습니다: ${a instanceof Error?a.message:String(a)}`}}}async function M(a,b){let c=await L(a,b);return c.ok?{ok:!0,snapshot:{provider:b,credentialId:c.accounts.find(a=>a.active)?.credentialId}}:{ok:!1,reason:c.reason}}async function N(a,b){if(!b)return!1;let c=a.modelRegistry.authStorage;if(!c)return!1;try{if(void 0!==b.credentialId)return c.sessions?.pin(b.provider,a.sessionId,b.credentialId)??!1;return c.sessions?.release(b.provider,a.sessionId)??!1}catch{return!1}}async function O(a,b,c){if(!Number.isSafeInteger(c)||c<0)return{ok:!1,reason:`OAuth 저장 위치 ${String(c)}가 올바르지 않습니다.`};if(!a.modelRegistry.authStorage?.sessions)return{ok:!1,reason:"이 세션은 OAuth 계정 pin을 지원하지 않습니다."};let d=await L(a,b);if(!d.ok)return{ok:!1,reason:d.reason};if(0===d.accounts.length)return{ok:!1,reason:"저장된 OAuth 계정이 없습니다."};let e=d.accounts.find((a,b)=>(Number.isInteger(a.position)?a.position:b)===c);if(!e)return{ok:!1,reason:`${b} OAuth 저장 위치 ${c}의 계정이 없습니다.`};let f=!1;try{f=a.modelRegistry.authStorage.sessions.pin(b,a.sessionId,e.credentialId)}catch{f=!1}if(!f)return{ok:!1,reason:`${b} OAuth 저장 위치 ${c} 계정을 이 세션의 선호 계정으로 설정하지 못했습니다.`};let g=await L(a,b),h=g.ok?g.accounts.find((a,b)=>(Number.isInteger(a.position)?a.position:b)===c):void 0;return h?.active!==!0?{ok:!1,reason:`${b} OAuth 저장 위치 ${c}이 이 세션의 선호 계정으로 설정되지 않았습니다.`}:{ok:!0}}async function P(a,b){let c=await R(a,b.previousModel,b.previousRole),d=void 0===b.account||await N(a,b.account),e=!0;if(void 0!==b.previousThinking&&a.configuredThinkingLevel()!==b.previousThinking){try{a.setThinkingLevel(b.previousThinking)}catch{}e=a.configuredThinkingLevel()===b.previousThinking}return{model:c,account:d,thinking:e}}function Q(a){let b=[];return a.model||b.push("모델"),a.account||b.push("계정 선호"),a.thinking||b.push("thinking 강도"),0===b.length?"모델\xb7계정\xb7강도를 되돌렸습니다.":`${b.join("\xb7")} 복원에 실패했습니다 — 이전 상태로 돌아가지 않았습니다.`}async function R(a,b,c){if(!b)return!1;let d=a.model;if(d?.provider===b.provider&&d?.id===b.id)return!0;try{return await a.setModel(b,c),!0}catch{return!1}}let al=Object.fromEntries(F.C1.map(a=>[a,!0]));class am extends f.Theme{constructor(){super({thinkingXhigh:""},{},"truecolor","unicode",{})}fg(...[,a]){return a}bg(...[,a]){return a}bold(a){return a}italic(a){return a}underline(a){return a}inverse(a){return a}strikethrough(a){return a}getFgAnsi(){return""}getBgAnsi(){return""}getThinkingBorderColor(){return a=>a}getBashModeBorderColor(){return a=>a}}let an=new am,ao=new r.KeybindingsManager(r.TUI_KEYBINDINGS);function S(a,b){if(0===b.length)return[];let c=a.getAllToolNames().filter(a=>!0!==al[a]);return[...new Set([...b,...c])]}function T(a,b,c){let d=c.name.trim();!d||b.has(d)||(b.add(d),a.push({...c,name:d}))}let ap=["fork","goal"];async function U(a){let b=[],c=new Set;for(let a of ap){let d=i.BUILTIN_SLASH_COMMAND_DEFS.find(b=>b.name===a);if(!d)continue;let e=d.inlineHint;T(b,c,{name:d.name,aliases:d.aliases,description:d.description,source:"builtin",...e?{input:{hint:e}}:{},...d.subcommands?{subcommands:d.subcommands}:{}})}for(let d of(await (0,g.buildAvailableSlashCommands)(a)))T(b,c,d);for(let d of a.promptTemplates)T(b,c,{name:d.name,description:d.description,source:"prompt",...d.source?{path:d.source}:{}});return b}async function V(a,b){let{promise:c,resolve:d}=Promise.withResolvers(),e=setTimeout(()=>d(!1),Math.max(0,b-Date.now()));try{return await Promise.race([a.then(()=>!0),c])}finally{clearTimeout(e)}}class aq{constructor(a,b){this.inner=a,this.listeners=[],this.pendingUiResponses=new Map,this.keepAliveListeners=new Set,this.pendingUiRequests=new Map,this.activeCustomUis=new Map,this.extensionStatuses=new Map,this.extensionWidgets=new Map,this.promptRunning=!1,this.modelMutations=0,this.presetMutation=!1,this.handoffRunning=!1,this.extensionsBound=!1,this.extensionBindingPromise=null,this.extensionBindingError=null,this.forceEmptySystemPrompt=!1,this.unsubscribe=null,this.idleTimer=null,this.onDestroyCallback=null,this.shutdownPromise=null,this.subagentHistory=new Map,this.goalModeController=null,this._alive=!0,this.closing=!1,this.subagents=new q.RpcSubagentRegistry(b,a=>{this.rememberSubagentFrame(a),this.emit(a),this.resetIdleTimer(),ae()}),this.subagents.setSubscriptionLevel("progress")}rememberSubagentSnapshot(a){if(this.subagentHistory.set(a.id,a),this.subagentHistory.size<=128)return;let b=[...this.subagentHistory.values()].filter(a=>"pending"!==a.status&&"running"!==a.status).sort((a,b)=>a.lastUpdate-b.lastUpdate);for(;this.subagentHistory.size>128&&b.length>0;){let a=b.shift();a&&this.subagentHistory.delete(a.id)}}rememberSubagentFrame(a){if("subagent_progress"===a.type){let b=a.payload,c=b?.progress?.id;if(!c)return;let d=this.subagents.getSubagents().find(a=>a.id===c);d&&this.rememberSubagentSnapshot(d);return}if("subagent_lifecycle"!==a.type)return;let b=a.payload;if(!b?.id||!b.status)return;let c=this.subagents.getSubagents().find(a=>a.id===b.id);if("started"===b.status){c&&this.rememberSubagentSnapshot(c);return}let d=c??this.subagentHistory.get(b.id),e="failed"===b.status?"failed":"aborted"===b.status?"aborted":"completed";this.rememberSubagentSnapshot({id:b.id,index:b.index??d?.index??0,agent:b.agent??d?.agent??b.id,agentSource:b.agentSource??d?.agentSource??"bundled",description:b.description??d?.description,status:e,task:d?.task,assignment:d?.assignment,sessionFile:b.sessionFile??d?.sessionFile,lastUpdate:Date.now(),parentToolCallId:b.parentToolCallId??d?.parentToolCallId,progress:d?.progress?{...d.progress,status:e}:void 0})}getSubagentSnapshots(){for(let a of this.subagents.getSubagents())this.rememberSubagentSnapshot(a);let a=new Map(this.subagentHistory);for(let b of this.subagents.getSubagents())a.set(b.id,b);return[...a.values()].sort((a,b)=>{let c="pending"===a.status||"running"===a.status,d="pending"===b.status||"running"===b.status;return c!==d?c?-1:1:c?a.index-b.index||a.id.localeCompare(b.id):b.lastUpdate-a.lastUpdate||a.id.localeCompare(b.id)})}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile??""}get cwd(){return this.inner.sessionManager.getCwd()}isAlive(){return this._alive}isRunning(){return this._alive&&(this.promptRunning||this.handoffRunning||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning||this.subagents.getSubagents().length>0)}beginClose({onlyWhenIdle:a=!1}={}){return!this._alive||!(a&&!this.closing&&this.isRunning())&&(this.closing=!0,!0)}cancelClose(){this._alive&&!this.shutdownPromise&&(this.closing=!1)}bindToolUiContext(a){a(this.createExtensionUiContext(),!0)}start(){this.syncPlanModeFromSession(),this.goalMode.restore().catch(a=>{console.error("[cuelo] failed to restore goal mode:",a instanceof Error?a.message:a)}),this.unsubscribe=this.inner.subscribe(a=>{"agent_end"===a.type&&(0,z.mD)(),ah.has(a.type)&&this.resetIdleTimer(),this.emit(a),ag.has(a.type)&&ae(),this.goalMode.handleSessionEvent(a).catch(a=>{console.error("[cuelo] goal mode failed to handle a session event:",a instanceof Error?a.message:a)})}),this.resetIdleTimer(),ae()}setForceEmptySystemPrompt(a){this.forceEmptySystemPrompt=a,this.applyForcedEmptySystemPrompt()}beginExtensionBinding(a={}){this.ensureExtensionsBound(a).catch(a=>{console.error("[cuelo] failed to dispatch session_start to extensions:",a instanceof Error?a.message:a)})}async waitUntilReady(){await this.waitForExtensionsBound()}ensureExtensionsBound(a={}){return(a.forceEmptySystemPrompt&&(this.forceEmptySystemPrompt=!0),this.extensionsBound)?(this.applyForcedEmptySystemPrompt(),Promise.resolve()):(this.extensionBindingPromise||(this.extensionBindingError=null,this.extensionBindingPromise=(async()=>{this._alive&&(await (0,n.initializeExtensions)(this.inner,{uiContext:this.createExtensionUiContext(),reportSendError:(a,b)=>this.emit({type:"extension_error",extensionPath:a,event:"send",error:b.message}),reportRuntimeError:a=>this.emit({type:"extension_error",extensionPath:a.extensionPath,event:a.event,error:a.error}),onShutdown:()=>this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"notify",notifyType:"warning",message:"Extension requested shutdown, but shutdown is not supported in CUELO."})}),this.extensionsBound=!0,this.applyForcedEmptySystemPrompt(),console.log(`[cuelo] session_start dispatched to extensions for session ${this.inner.sessionId}`))})().catch(a=>{throw this.extensionBindingError=a,a})),this.extensionBindingPromise)}async waitForExtensionsBound(){try{this.extensionBindingPromise&&await this.extensionBindingPromise}catch(a){throw a instanceof Error?a:Error(String(a))}if(this.extensionBindingError)throw this.extensionBindingError instanceof Error?this.extensionBindingError:Error(String(this.extensionBindingError))}shouldWaitForExtensions(a){return"prompt"===a||"steer"===a||"follow_up"===a||"handoff"===a||"get_commands"===a||"execute_slash_command"===a||"goal"===a}async withFinalRunningNotification(a){try{return await a()}finally{this.resetIdleTimer(),ae()}}async shutdownAfterCommittedFork(a){try{await this.shutdown()}catch(b){console.error(`[cuelo] fork created session ${a}, but wrapper shutdown failed:`,b instanceof Error?b.message:b)}}applyForcedEmptySystemPrompt(){this.forceEmptySystemPrompt&&this.inner.agent.state&&(this.inner.agent.state.systemPrompt=[])}get goalMode(){return this.goalModeController||(this.goalModeController=new H.zd(this.inner,{isBusy:()=>this.promptRunning||this.handoffRunning||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning,runContinuation:a=>this.runGoalContinuation(a),onStatusChange:a=>this.emit({type:"goal_status",status:a})})),this.goalModeController}async runGoalContinuation(a){this.promptRunning=!0,ae();try{await this.inner.promptCustomMessage({customType:"goal-continuation",content:a,display:!1,attribution:"user"})}catch(a){throw this.emit({type:"prompt_error",errorMessage:a instanceof Error?a.message:String(a)}),a}finally{this.promptRunning=!1,this.resetIdleTimer(),this.emit({type:"prompt_done"}),ae()}}syncPlanModeFromSession(){let a=this.inner.getPlanModeState?.();if(!a){let b,c=this.inner.sessionManager.getEntries();for(let a=c.length-1;a>=0;a-=1)if(c[a]?.type==="mode_change"){b=c[a];break}let d=b?.data?.planFilePath;b?.mode==="plan"&&"string"==typeof d&&d.length>0&&(a={enabled:!0,planFilePath:d,workflow:b.data?.workflow==="sequential"?"sequential":"parallel",reentry:!0},this.inner.setPlanModeState?.(a))}a?.enabled&&this.inner.setPlanProposalHandler?.(a=>this.handlePlanProposal(a))}async handlePlanProposal(a){let b=this.inner.getPlanModeState?.();if(!b?.enabled||!this.inner.preparePlanForReview)throw Error("Plan mode is not active.");let c=await this.inner.preparePlanForReview(a),d=c.details?.planFilePath,e=c.details?.title;if(!d||!e)throw Error("The proposed plan could not be resolved.");let f=await (0,o.readPlanFile)(d,{cwd:this.cwd,localProtocolOptions:{getArtifactsDir:()=>this.inner.sessionManager.getArtifactsDir(),getSessionId:()=>this.inner.sessionManager.getSessionId()}});if(!f?.trim())throw Error(`Plan file not found at ${d}`);let g=await this.requestExtensionUi({method:"plan_review",title:e,planFilePath:d,planContent:f},JSON.stringify({action:"refine"}),a=>"value"in a?a.value:JSON.stringify({action:"refine"})),h={};try{h=JSON.parse(g)}catch{}let i={planFilePath:d,title:e,planExists:!0};if("approve"===h.action)return this.inner.setPlanReferencePath?.(d),this.inner.setPlanProposalHandler?.(null),this.inner.setPlanModeState?.(void 0),this.inner.sessionManager.appendModeChange("none"),{content:[{type:"text",text:`Plan approved at ${d}. Plan mode exited; proceed with the implementation.`}],details:i};b.planFilePath!==d&&(this.inner.setPlanModeState?.({...b,planFilePath:d}),this.inner.sessionManager.appendModeChange("plan",{planFilePath:d}));let j="string"==typeof h.feedback?h.feedback.trim():"";return{content:[{type:"text",text:["Plan refinement requested.",j?`User feedback:
8
- ${j}`:"",`Update the plan file, then write ${e} to xd://propose again when ready.`].filter(Boolean).join("\n\n")}],details:i}}publishSessionSnapshot(a,b){this.emit({type:"session_snapshot",sessionId:this.sessionId,entryId:a,context:b})}emit(a){for(let b of this.listeners)b(a)}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.keepAliveListeners.size>0||this.isRunning()?this.resetIdleTimer():this.shutdown().catch(a=>{console.error("[pi-web] failed to shut down idle session:",a instanceof Error?a.message:a)})},6e5)}persistBashOnlySession(){let a=this.inner.sessionManager,b=a.getSessionFile();if(!b||(0,t.existsSync)(b))return;let c=a.getHeader();if(!c)return;let d=[c,...a.getEntries()].map(a=>JSON.stringify(a)).join("\n")+"\n";(0,t.writeFileSync)(b,d,{encoding:"utf8",flag:"wx"}),a.flushed=!0,(0,z.O8)(this.inner.sessionId,b)}onEvent(a,b={}){for(let c of(this.listeners.push(a),b.keepAlive&&(this.keepAliveListeners.add(a),this.resetIdleTimer()),this.pendingUiRequests.values()))a(c);return()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1),this.keepAliveListeners.delete(a)&&0===this.keepAliveListeners.size&&this._alive&&this.resetIdleTimer()}}onDestroy(a){this.onDestroyCallback=a}async sendInternalPrompt(a){return this.send({type:"prompt",message:a},!0)}async emitGenuineUserInput(a,b){let c=this.inner.extensionRunner;if(!c?.hasHandlers?.("input"))return{text:a,images:b};let d=await c.emitInput?.(a,b,"rpc");return d?!0===d.handled?(console.log(`[cuelo] input event consumed by an extension for session ${this.inner.sessionId}`),null):{text:void 0!==d.text?d.text.trim():a,images:void 0!==d.images?d.images:b}:{text:a,images:b}}async send(a,b=!1){this.resetIdleTimer();let c=a.type;if(this.shouldWaitForExtensions(c)&&await this.waitForExtensionsBound(),this.closing&&!0===aj[c])throw Error("Session is closing");if(this.handoffRunning&&!0!==ai[c])throw Error("Cannot modify the session while a handoff is in progress");let d="set_model"===c&&(void 0!==a.thinkingLevel||void 0!==a.oauthPosition);if(!0===ak[c]&&(this.presetMutation||d&&this.modelMutations>0))throw Error("Cannot change the model while another model change is in progress");if("prompt"===c&&!b&&this.presetMutation)throw Error("Cannot send a prompt while a Main preset is being applied");if(("prompt"===c||"steer"===c||"follow_up"===c)&&this.syncPlanModeFromSession(),"prompt"===c||"steer"===c||"follow_up"===c){let b=(0,v.kc)(a.images);if(b)throw Error(b)}switch(c){case"prompt":{if(this.inner.isBashRunning)throw Error("Cannot send a prompt while a shell command is running");this.goalMode.onUserPrompt();let c=a.message,d=a.images,e=a.streamingBehavior;if(!b&&void 0===e){let a=await this.emitGenuineUserInput(c,d);if(null===a||(c=a.text,d=a.images,!c&&!d?.length))return null}let f=(0,k.resolveRpcSkillInvocation)(this.inner,c),g=f?(0,j.buildSkillPromptMessage)(f.skill,f,"user").then(a=>this.inner.promptCustomMessage({customType:l.SKILL_PROMPT_MESSAGE_TYPE,content:d?.length?[{type:"text",text:a.message},...d]:a.message,display:!0,details:a.details,attribution:"user"},{...e?{streamingBehavior:e}:{},queueChipText:c})):this.inner.prompt(c,{...d?.length?{images:d}:{},...e?{streamingBehavior:e}:{},userInitiated:!0});return this.promptRunning=!0,ae(),g.then(()=>{this.promptRunning=!1,this.resetIdleTimer(),e||this.emit({type:"prompt_done"}),ae()}).catch(a=>{this.promptRunning=!1,this.resetIdleTimer(),(0,z.mD)(),this.emit({type:"prompt_error",errorMessage:a instanceof Error?a.message:String(a)}),e||this.emit({type:"prompt_done"}),ae()}),null}case"abort":return this.goalMode.onAbort(),await this.withFinalRunningNotification(()=>this.inner.abort()),null;case"get_state":{let a=this.inner.model,b=this.inner.getContextUsage();return{sessionId:this.inner.sessionId,sessionFile:this.inner.sessionFile??"",isStreaming:this.inner.isStreaming,isPromptRunning:this.promptRunning,isBashRunning:this.inner.isBashRunning,isCompacting:this.inner.isCompacting,isHandoffRunning:this.handoffRunning,autoCompactionEnabled:this.inner.autoCompactionEnabled,autoRetryEnabled:this.inner.autoRetryEnabled,model:a?{id:a.id,provider:a.provider}:void 0,messageCount:0,pendingMessageCount:this.inner.queuedMessageCount,queuedMessages:{steering:[...this.inner.getQueuedMessages().steering],followUp:[...this.inner.getQueuedMessages().followUp]},contextUsage:b?{percent:b.percent,contextWindow:b.contextWindow,tokens:b.tokens}:null,systemPrompt:[this.inner.agent.state?.systemPrompt??""].flat().join("\n"),thinkingLevel:this.inner.agent.state?.thinkingLevel??"off",configuredThinkingLevel:this.inner.configuredThinkingLevel()??"off",extensionStatuses:this.getExtensionStatuses(),extensionWidgets:this.getExtensionWidgets(),subagents:this.getSubagentSnapshots(),todoPhases:this.inner.getTodoPhases(),goal:this.goalMode.getStatus()}}case"get_subagents":return{subagents:this.getSubagentSnapshots()};case"get_subagent_messages":{let b=this.subagents.resolveSessionFile(a);return(0,q.readRpcSubagentTranscript)(b,a.fromByte)}case"set_model":{let{provider:b,modelId:c,role:d,oauthPosition:e,thinkingLevel:f}=a,g=void 0!==f||void 0!==e;this.modelMutations+=1,g&&(this.presetMutation=!0);try{let a,g=await (0,D.Ix)(this.inner.modelRegistry,b,c,{forceDiscovery:!0});if(g.miss)throw Error((0,E.zX)(g.miss));let h=g.model,i=this.inner.model,j=void 0!==e||void 0!==f?function(a){try{let b=a.sessionManager.getBranch();if(!Array.isArray(b))return;for(let a=b.length-1;a>=0;a-=1){let c=b[a];if(c?.type==="model_change")return"string"==typeof c.role?c.role:void 0}}catch{}}(this.inner):void 0,k=void 0!==f?this.inner.configuredThinkingLevel():void 0;if(void 0!==e){let b=await M(this.inner,h.provider);if(!b.ok)throw Error(`${b.reason} 계정 변경을 시작하지 않았습니다.`);a=b.snapshot}if(await this.inner.setModel(h,d),void 0!==e){let b=await O(this.inner,h.provider,e);if(!b.ok){let c=await P(this.inner,{previousModel:i,previousRole:j,previousThinking:k,account:a});throw Error(`${b.reason} ${Q(c)}`)}}if(void 0!==f)try{this.inner.setThinkingLevel(f)}catch(d){let b=`thinking level ${f} 적용에 실패했습니다: ${d instanceof Error?d.message:String(d)}`,c=await P(this.inner,{previousModel:i,previousRole:j,previousThinking:k,account:a});throw Error(`${b} ${Q(c)}`)}return(0,x.kn)(),(0,z.mD)(),{id:h.id,provider:h.provider,...d?{role:d}:{}}}finally{g&&(this.presetMutation=!1),this.modelMutations-=1}}case"set_role_model":{let b=a.role;this.modelMutations+=1;try{await (0,D.Ef)(this.inner.modelRegistry,(0,C.Ex)(this.inner.settings));let a=this.inner.resolveRoleModel(b);if(!a)throw Error(`No model configured for role "${b}"`);return await this.inner.setModel(a,b),(0,x.kn)(),(0,z.mD)(),{id:a.id,provider:a.provider,role:b}}finally{this.modelMutations-=1}}case"fork":{let b;if(this.inner.isBashRunning)throw Error("Cannot fork while a shell command is running");let c=this.inner.sessionManager,d=function(a,b){if("string"==typeof b&&b.length>0)return b;for(let b=a.length-1;b>=0;b-=1){let c=a[b];if(c?.type==="message"&&c.message?.role==="user"&&c.id)return c.id}}(c.getBranch(),a.entryId);if(!d)throw Error("No user message to fork from yet");let e=this.inner.sessionFile;if(!e)return{cancelled:!0};let g=c.getEntry(d);if(!g)throw Error("Invalid entry ID for forking");let h=c.getSessionDir();if(g.parentId){let a=(await f.SessionManager.open(e,h)).createBranchedSession(g.parentId);if(!a)throw Error("Failed to create forked session");b=a}else{let a=f.SessionManager.create(c.getCwd(),h);await a.newSession({parentSession:e}),await a.ensureOnDisk(),b=a.getSessionFile()}let i=(await f.SessionManager.open(b,h)).getSessionId();return(0,z.O8)(i,b),(0,z.mD)(),await this.shutdownAfterCommittedFork(i),{cancelled:!1,newSessionId:i}}case"handoff":{if(this.handoffRunning||this.promptRunning||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)throw Error("Cannot hand off while the session is busy");let b=a.customInstructions;this.handoffRunning=!0,ae();try{if(!await this.inner.handoff(b))return{cancelled:!0};return(0,z.mD)(),{cancelled:!1}}finally{this.handoffRunning=!1,ae()}}case"navigate_tree":if(this.inner.isBashRunning)throw Error("Cannot navigate while a shell command is running");return{cancelled:(await this.inner.navigateTree(a.targetId,{})).cancelled};case"set_thinking_level":{let b=a.level;this.modelMutations+=1;try{return this.inner.setThinkingLevel(b),"xhigh"===b&&this.inner.model?.compat?.thinkingFormat==="deepseek"&&this.inner.agent?.state&&(this.inner.agent.state.thinkingLevel="xhigh"),(0,z.mD)(),null}finally{this.modelMutations-=1}}case"compact":try{return await this.withFinalRunningNotification(()=>this.inner.compact(a.customInstructions))}finally{(0,z.mD)()}case"set_session_name":{let b=a.name?.trim();if(!b)throw Error("Session name cannot be empty");return await this.inner.sessionManager.setSessionName(b,"user"),(0,z.mD)(),null}case"get_session_stats":return{...this.inner.getSessionStats(),sessionName:this.inner.sessionManager.getSessionName()};case"get_last_assistant_text":return{text:this.inner.getLastAssistantText()??""};case"set_auto_compaction":return this.inner.setAutoCompactionEnabled(a.enabled),null;case"clear_queue":return this.inner.clearQueue();case"steer":{let b=a.images;var e,g=this.sessionId,i=a.message;try{(0,t.appendFileSync)((0,u.join)((0,f.getAgentDir)(),"steering-received.jsonl"),`${JSON.stringify({ts:Date.now(),sessionId:g??null,via:"steer",length:"string"==typeof i?i.length:0})}
9
- `)}catch{}return await this.inner.steer(a.message,b?.length?b:void 0),null}case"follow_up":{let b=a.images;return await this.inner.followUp(a.message,b?.length?b:void 0),null}case"get_tools":{let a=new Set(this.inner.getActiveToolNames());return(e=this.inner).getAllToolNames().map(a=>({name:a,description:e.getToolByName(a)?.description??""})).map(b=>({name:b.name,description:b.description,active:a.has(b.name)}))}case"get_commands":return{commands:await U(this.inner)};case"goal":return await this.goalMode.handleCommand(a.args??"");case"execute_slash_command":{let b=[],c=await (0,h.executeAcpBuiltinSlashCommand)(a.message,{session:this.inner,sessionManager:this.inner.sessionManager,settings:this.inner.settings,cwd:this.cwd,output:a=>{b.push(a)},refreshCommands:()=>{},reloadPlugins:async()=>{await this.waitForExtensionsBound(),this.extensionStatuses.clear(),this.extensionWidgets.clear(),await this.inner.reload(),await this.inner.refreshSkills?.(),this.applyForcedEmptySystemPrompt(),(0,x.kn)()}});if(!1===c)return{handled:!1,output:b};return{handled:!0,output:b,..."prompt"in c?{prompt:c.prompt}:{}}}case"set_tools":{let b=a.toolNames;return this.setForceEmptySystemPrompt(0===b.length),await this.inner.setActiveToolsByName(this.goalMode.reconcileToolNames(S(this.inner,b))),this.applyForcedEmptySystemPrompt(),null}case"reload":return await this.waitForExtensionsBound(),this.extensionStatuses.clear(),this.extensionWidgets.clear(),await this.inner.reload(),await this.inner.refreshSkills?.(),this.applyForcedEmptySystemPrompt(),(0,x.kn)(),{success:!0};case"abort_compaction":return this.inner.abortCompaction(),null;case"extension_ui_response":return this.resolveExtensionUiResponse(a),null;case"extension_ui_input":return this.handleExtensionUiInput(a.id,a.data),null;case"set_auto_retry":return this.inner.setAutoRetryEnabled(a.enabled),null;case"bash":{if(this.promptRunning||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)throw Error("Cannot run a shell command while the session is busy");let b=this.inner.executeBash(a.command,void 0,{excludeFromContext:a.excludeFromContext});ae();try{let a=await b;return this.persistBashOnlySession(),a}finally{this.resetIdleTimer(),(0,z.mD)(),ae()}}case"abort_bash":return this.inner.abortBash(),null;default:throw Error(`Unsupported command: ${c}`)}}destroy(){if(this._alive){for(let a of(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.inner.isBashRunning&&this.inner.abortBash(),this.unsubscribe?.(),this.goalModeController?.dispose(),this.subagents.dispose(),this.subagentHistory.clear(),this.keepAliveListeners.clear(),this.pendingUiResponses.values()))a.cancel();for(let a of Array.from(this.activeCustomUis.keys()))this.closeCustomUi(a,void 0);this.pendingUiResponses.clear(),this.pendingUiRequests.clear();try{this.inner.dispose?.()}finally{try{this.onDestroyCallback?.()}finally{ae()}}}}async shutdown(){return this.shutdownPromise?this.shutdownPromise:this._alive?(this.shutdownPromise=(async()=>{try{try{await this.waitForExtensionsBound()}catch(a){console.error("[pi-web] extension binding failed before session shutdown:",a instanceof Error?a.message:a)}await this.inner.extensionRunner?.emit?.({type:"session_shutdown",reason:"quit"})}finally{this.destroy()}})(),this.shutdownPromise):void 0}async stopBackgroundWorkForDrain(a){let b=Date.now()+a,c=function(a){let b="asyncJobManager"in a?a.asyncJobManager:void 0;if(b&&"object"==typeof b&&"cancelAll"in b&&"waitForAll"in b&&"function"==typeof b.cancelAll&&"function"==typeof b.waitForAll)return b}(this.inner);for(let a of(c?.cancelAll(),this.subagents.getSubagents()))p.AgentRegistry.global().get(a.id)?.session?.abort().catch(()=>{});let d=!c||await V(c.waitForAll(),b);for(;this.subagents.getSubagents().length>0&&Date.now()<b;)await function(){let{promise:a,resolve:b}=Promise.withResolvers();return setTimeout(b,100),a}();return d&&0===this.subagents.getSubagents().length}resolveExtensionUiResponse(a){let b=this.pendingUiResponses.get(a.id);b&&b.resolve(a)}getExtensionStatuses(){return Array.from(this.extensionStatuses,([a,b])=>({key:a,text:b}))}getExtensionWidgets(){return Array.from(this.extensionWidgets.values())}getCustomUiWidth(a){if(!a||"object"!=typeof a)return I.p1;let b=a.overlayOptions,c="function"==typeof b?b():b;if(!c||"object"!=typeof c)return I.p1;let d=c.width;return"number"==typeof d&&Number.isFinite(d)?Math.max(40,Math.min(140,Math.round(d))):92}emitCustomUiRender(a,b){let c;try{c=b.component.render(b.width)}catch(a){c=[`Extension custom UI render failed: ${a instanceof Error?a.message:String(a)}`]}let d={type:"extension_ui_request",id:a,method:"custom",lines:c};this.pendingUiRequests.set(a,d),this.emit(d)}closeCustomUi(a,b){let c=this.activeCustomUis.get(a);if(c&&!c.settled){c.settled=!0,this.activeCustomUis.delete(a),this.pendingUiRequests.delete(a);try{c.component.dispose?.()}catch{}this.emit({type:"extension_ui_request",id:a,method:"custom",lines:[],closed:!0}),c.resolve(b)}}handleExtensionUiInput(a,b){let c=this.activeCustomUis.get(a);if(c&&"string"==typeof b)try{c.component.handleInput?.(b),this.activeCustomUis.has(a)&&this.emitCustomUiRender(a,c)}catch(b){this.closeCustomUi(a,void 0),this.emit({type:"extension_error",extensionPath:`custom-ui:${a}`,event:"custom_ui_input",error:b instanceof Error?b.message:String(b)})}}requestExtensionCustomUi(a,b){if("function"!=typeof a)return Promise.resolve(void 0);let c=(0,s.randomUUID)(),d=this.getCustomUiWidth(b);return new Promise(b=>{let e=!1,f=(0,I.TQ)(()=>{let a=this.activeCustomUis.get(c);a&&this.emitCustomUiRender(c,a)},d),g=a=>{e||(e=!0,b(a))},h=a=>{this.activeCustomUis.has(c)?this.closeCustomUi(c,a):g(a)};Promise.resolve().then(()=>a(f,an,ao,h)).then(a=>{if(e){try{a?.dispose?.()}catch{}return}if(!a||"object"!=typeof a||"function"!=typeof a.render)return void g(void 0);let b={component:a,width:d,resolve:a=>g(a),settled:!1};this.activeCustomUis.set(c,b),this.emitCustomUiRender(c,b)}).catch(a=>{e||(this.emit({type:"extension_error",extensionPath:`custom-ui:${c}`,event:"custom_ui",error:a instanceof Error?a.message:String(a)}),g(void 0))})})}requestExtensionUi(a,b,c,d,e){if(e?.aborted)return Promise.resolve(b);let f=(0,s.randomUUID)(),g={type:"extension_ui_request",id:f,...a,...d?{timeout:d,expiresAt:Date.now()+d}:{}};return new Promise(a=>{let h,i=()=>{h&&clearTimeout(h),e?.removeEventListener("abort",k),this.pendingUiRequests.delete(f),this.pendingUiResponses.delete(f)},j=(b,c=!1)=>{i(),c&&this.emit({...g,closed:!0}),a(b)},k=()=>j(b,!0);d&&(h=setTimeout(()=>j(b),d)),e?.addEventListener("abort",k,{once:!0}),this.pendingUiRequests.set(f,g),this.pendingUiResponses.set(f,{resolve:a=>j(c(a)),cancel:()=>j(b)}),this.emit(g)})}createExtensionUiContext(){return{timeoutStartsOnPresentation:!1,askDialog:(a,b)=>this.requestExtensionUi({method:"ask",questions:a,...b?.timeout?{timeout:b.timeout}:{}},void 0,a=>{if("value"in a)try{return JSON.parse(a.value)}catch{return}},b?.timeout,b?.signal),select:(a,b,c)=>this.requestExtensionUi({method:"select",title:a,options:b,...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),confirm:(a,b,c)=>this.requestExtensionUi({method:"confirm",title:a,message:b,...c?.timeout?{timeout:c.timeout}:{}},!1,a=>"confirmed"in a&&a.confirmed,c?.timeout,c?.signal),input:(a,b,c)=>this.requestExtensionUi({method:"input",title:a,...void 0!==b?{placeholder:b}:{},...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),editor:(a,b,c)=>this.requestExtensionUi({method:"editor",title:a,...void 0!==b?{prefill:b}:{},...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),notify:(a,b)=>{this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"notify",message:a,notifyType:b})},onTerminalInput:()=>()=>{},setStatus:(a,b)=>{void 0===b?this.extensionStatuses.delete(a):this.extensionStatuses.set(a,b),this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"setStatus",statusKey:a,statusText:b})},setWorkingMessage:()=>{},setWorkingVisible:()=>{},setWorkingIndicator:()=>{},setHiddenThinkingLabel:()=>{},setWidget:(a,b,c)=>{(void 0===b||Array.isArray(b))&&(void 0===b?this.extensionWidgets.delete(a):this.extensionWidgets.set(a,{key:a,lines:b,placement:c?.placement??"aboveEditor"}),this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"setWidget",widgetKey:a,widgetLines:b,widgetPlacement:c?.placement}))},setFooter:()=>{},setHeader:()=>{},setTitle:a=>{this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"setTitle",title:a})},custom:(a,b)=>this.requestExtensionCustomUi(a,b),pasteToEditor:a=>{this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"set_editor_text",text:a})},setEditorText:a=>{this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"set_editor_text",text:a})},getEditorText:()=>"",addAutocompleteProvider:()=>{},setEditorComponent:()=>{},getEditorComponent:()=>void 0,get theme(){return an},getAllThemes:()=>[],getTheme:()=>void 0,setTheme:()=>({success:!1,error:"Theme switching is not supported in CUELO extension UI yet"}),getToolsExpanded:()=>!1,setToolsExpanded:()=>{}}}}function W(){if(!globalThis.__ompSessions){globalThis.__ompSessions=new Map;let a=()=>globalThis.__ompSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__ompSessions}function X(){return globalThis.__ompClosingSessionIds||(globalThis.__ompClosingSessionIds=new Set),globalThis.__ompClosingSessionIds}function Y(a,{onlyWhenIdle:b=!1}={}){let c=X();if(c.has(a))return{reserved:!1,release:()=>{}};let d=W().get(a);if(d?!d.beginClose({onlyWhenIdle:b}):b&&ad().includes(a))return{reserved:!1,release:()=>{}};c.add(a);let e=!1;return{reserved:!0,release:()=>{e||(e=!0,c.delete(a),d?.cancelClose())}}}function Z(a){let b=(0,u.resolve)(a);try{return(0,t.realpathSync)(b)}catch{return b}}function $(){return globalThis.__ompStartingSessionCwds||(globalThis.__ompStartingSessionCwds=new Map),globalThis.__ompStartingSessionCwds}function _(a){return W().get(a)}function aa(){let a=[];for(let b of W().values()){if(!b.isAlive())continue;let c=b.inner.sessionManager,d=c.getHeader(),e=c.getEntries(),f=e.filter(a=>"message"===a.type),g=f.find(a=>"user"===a.message.role),h=c.getSessionFile()??b.sessionFile,i=!!(h&&(0,t.existsSync)(h));if(!i&&(!b.isRunning()||!g))continue;let j=d?.timestamp??e[0]?.timestamp??new Date().toISOString(),k=new Date(j).getTime(),l=Number.isNaN(k)?Date.now():k;for(let a of f){let b=function(a){if("user"!==a.message.role&&"assistant"!==a.message.role)return;if("number"==typeof a.message.timestamp)return a.message.timestamp;let b=new Date(a.timestamp).getTime();return Number.isNaN(b)?void 0:b}(a);void 0!==b&&(l=Math.max(l,b))}a.push({path:h??"",id:d?.id??b.sessionId,cwd:d?.cwd??b.cwd,name:c.getSessionName(),created:j,modified:new Date(l).toISOString(),messageCount:f.length,firstMessage:g&&function(a){if("bashExecution"===a.message.role)return"";let b=a.message.content,c="string"==typeof b?b:b.map(a=>"text"===a.type?a.text:"").filter(Boolean).join(" ");return(0,w.we)(c)}(g)||"(no messages)",transient:!i})}return a}function ab(a){let b=Z(a);return!!$().has(b)||Array.from(W().values()).some(a=>Z(a.cwd)===b&&a.isRunning())}async function ac(a){let b=Z(a),c=Array.from(W().values()).filter(a=>Z(a.cwd)===b);return await Promise.all(c.map(a=>a.shutdown())),c.length}function ad(){let a=new Set;for(let[b,c]of W())c.isRunning()&&a.add(c.sessionId||b);return[...a]}function ae(){let a=ad();(0,G.p8)(a)}async function af(a,b,c,d={}){let{toolNames:g,initialModel:h,thinkingLevel:i,accountOauthPosition:j}=d,k=W(),l=(globalThis.__ompStartLocks||(globalThis.__ompStartLocks=new Map),globalThis.__ompStartLocks);if(X().has(a))throw Error("Session is closing");let n=k.get(a);if(n?.isAlive())return{session:n,realSessionId:a};let o=l.get(a);if(o)return o;let p=(async()=>{let d,l;await (0,f.initTheme)(!1);let n=(0,f.getAgentDir)(),o=b?await f.SessionManager.open(b,void 0):(()=>{if(!c)throw Error("cwd is required for a new session");return f.SessionManager.create(c,void 0)})(),p=o.getCwd(),q=(d=$(),l=Z(p),d.set(l,(d.get(l)??0)+1),()=>{let a=(d.get(l)??1)-1;a>0?d.set(l,a):d.delete(l)});try{let b,c=await (0,D.RD)(),d=await (0,D.ZU)(p);void 0!==g&&(b=0===g.length?[]:void 0);let[l,q]=await Promise.all([(0,f.discoverSessionExtensionPaths)({},p,d),(0,m.discoverCustomToolPaths)([],p)]),r=(0,A.qm)(p,n,{extensionPaths:l,customToolPaths:q}),s=await (0,B.D)(p),{modelRegistry:t}=c;await (0,D.Ef)(t,[...(0,C.Ex)(d),...h?[h]:[]]);let u=await (0,y.p)(t,e.cfgEnabledModels.get(d),d),v=(0,C.Ff)(d),w=h?void 0:v?.thinkingLevel,x=i??w,E=o.buildSessionContext().messages.length>0?{scopedModels:[...u.scopedModels],model:void 0,thinkingLevel:void 0}:(0,y.I)(u,{...h?{requestedModel:h}:{},...v?{defaultModel:v}:{},...x?{thinkingLevel:x}:{}}),F={cwd:p,agentDir:n,settings:d,sessionManager:o,modelRegistry:t,hasUI:!0,...E.model?{model:E.model}:{},...E.thinkingLevel?{thinkingLevel:E.thinkingLevel}:{},...E.scopedModels.length>0?{scopedModels:E.scopedModels}:{},...void 0!==b?{toolNames:b,restrictToolNames:!0}:{},...r??{}};(0,f.applyResolvedSystemPromptInputs)(F,s.systemPrompt,s.appendPrompt);let{session:G,eventBus:H,setToolUIContext:I}=await (0,f.createAgentSession)(F);g&&g.length>0&&await G.setActiveToolsByName(S(G,g));let J=new aq(G,H);if(J.bindToolUiContext(I),void 0!==j){let a=G.model?.provider;if(!a)throw J.destroy(),Error("이 세션의 provider를 알 수 없어 OAuth 계정을 지정하지 못했습니다.");let b=await O(G,a,j);if(!b.ok)throw J.destroy(),Error(b.reason)}g?.length===0&&J.setForceEmptySystemPrompt(!0);let K=G.sessionId,L=X();if(L.has(a)||L.has(K))throw J.destroy(),Error("Session is closing");J.start();let M=G.sessionFile;return M&&(0,z.O8)(K,M),J.onDestroy(()=>k.delete(K)),k.set(K,J),J.beginExtensionBinding({forceEmptySystemPrompt:g?.length===0}),{session:J,realSessionId:K}}finally{q()}})().finally(()=>{l.delete(a)});return l.set(a,p),p}d()}catch(a){d(a)}})},71069:(a,b,c)=>{c.d(b,{TQ:()=>e,p1:()=>d});let d=92;function e(a,b=d,c=40){return Object.freeze({terminal:Object.freeze({columns:b,rows:c,kittyProtocolActive:!1}),requestRender:a})}},72498:(a,b,c)=>{c.d(b,{Y1:()=>m,er:()=>n,qm:()=>p});var d=c(29021),e=c(33873),f=c(13229),g=c(8102);let h=[".omp/extensions",".omp/hooks",".omp/tools",".pi/extensions",".pi/hooks",".pi/tools",".claude/extensions",".claude/hooks",".claude/tools",".agents/extensions",".agents/hooks",".agents/tools"],i=[".mcp.json",".omp/.mcp.json",".omp/mcp.json",".claude/.mcp.json",".claude/mcp.json",".cursor/mcp.json"];function j(a){return(0,e.join)(a,"cuelo-trusted-projects.json")}function k(a){let b=(0,e.resolve)(a);try{return(0,d.realpathSync)(b)}catch{return b}}function l(a){try{(0,f.adoptLegacyStateFile)(j(a),"omp-web-trusted-projects.json");let b=JSON.parse((0,d.readFileSync)(j(a),"utf8"));if("object"!=typeof b||null===b||Array.isArray(b))return{};return Object.fromEntries(Object.entries(b).filter(a=>"boolean"==typeof a[1]))}catch{return{}}}function m(a,b){return a&&function(a){if(!a)return!1;for(let b of h)if((0,d.existsSync)((0,e.join)(a,b)))return!0;for(let b of i)if((0,d.existsSync)((0,e.join)(a,b)))return!0;return!1}(a)?{requiresTrust:!0,trusted:!0===l(b)[k(a)]}:{requiresTrust:!1,trusted:!0}}function n(a,b){let c=m(a,b);if(!c.requiresTrust)return c;let e=l(b);return e[k(a)]=!0,(0,d.mkdirSync)(b,{recursive:!0}),(0,g.$)(j(b),`${JSON.stringify(e,null,2)}
8
+ ${j}`:"",`Update the plan file, then write ${e} to xd://propose again when ready.`].filter(Boolean).join("\n\n")}],details:i}}publishSessionSnapshot(a,b){this.emit({type:"session_snapshot",sessionId:this.sessionId,entryId:a,context:b})}emit(a){for(let b of this.listeners)b(a)}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.keepAliveListeners.size>0||this.isRunning()?this.resetIdleTimer():this.shutdown().catch(a=>{console.error("[pi-web] failed to shut down idle session:",a instanceof Error?a.message:a)})},6e5)}persistBashOnlySession(){let a=this.inner.sessionManager,b=a.getSessionFile();if(!b||(0,t.existsSync)(b))return;let c=a.getHeader();if(!c)return;let d=[c,...a.getEntries()].map(a=>JSON.stringify(a)).join("\n")+"\n";(0,t.writeFileSync)(b,d,{encoding:"utf8",flag:"wx"}),a.flushed=!0,(0,z.O8)(this.inner.sessionId,b)}onEvent(a,b={}){for(let c of(this.listeners.push(a),b.keepAlive&&(this.keepAliveListeners.add(a),this.resetIdleTimer()),this.pendingUiRequests.values()))a(c);return()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1),this.keepAliveListeners.delete(a)&&0===this.keepAliveListeners.size&&this._alive&&this.resetIdleTimer()}}onDestroy(a){this.onDestroyCallback=a}async sendInternalPrompt(a){return this.send({type:"prompt",message:a},!0)}async emitGenuineUserInput(a,b){let c=this.inner.extensionRunner;if(!c?.hasHandlers?.("input"))return{text:a,images:b};let d=await c.emitInput?.(a,b,"rpc");return d?!0===d.handled?(console.log(`[cuelo] input event consumed by an extension for session ${this.inner.sessionId}`),null):{text:void 0!==d.text?d.text.trim():a,images:void 0!==d.images?d.images:b}:{text:a,images:b}}async send(a,b=!1){this.resetIdleTimer();let c=a.type;if(this.shouldWaitForExtensions(c)&&await this.waitForExtensionsBound(),this.closing&&!0===aj[c])throw Error("Session is closing");if(this.handoffRunning&&!0!==ai[c])throw Error("Cannot modify the session while a handoff is in progress");let d="set_model"===c&&(void 0!==a.thinkingLevel||void 0!==a.oauthPosition);if(!0===ak[c]&&(this.presetMutation||d&&this.modelMutations>0))throw Error("Cannot change the model while another model change is in progress");if("prompt"===c&&!b&&this.presetMutation)throw Error("Cannot send a prompt while a Main preset is being applied");if(("prompt"===c||"steer"===c||"follow_up"===c)&&this.syncPlanModeFromSession(),"prompt"===c||"steer"===c||"follow_up"===c){let b=(0,v.kc)(a.images);if(b)throw Error(b)}switch(c){case"prompt":{if(this.inner.isBashRunning)throw Error("Cannot send a prompt while a shell command is running");this.goalMode.onUserPrompt();let c=a.message,d=a.images,e=a.streamingBehavior;if(!b&&void 0===e){let a=await this.emitGenuineUserInput(c,d);if(null===a||(c=a.text,d=a.images,!c&&!d?.length))return null}let f=(0,k.resolveRpcSkillInvocation)(this.inner,c),g=f?(0,j.buildSkillPromptMessage)(f.skill,f,"user").then(a=>this.inner.promptCustomMessage({customType:l.SKILL_PROMPT_MESSAGE_TYPE,content:d?.length?[{type:"text",text:a.message},...d]:a.message,display:!0,details:a.details,attribution:"user"},{...e?{streamingBehavior:e}:{},queueChipText:c})):this.inner.prompt(c,{...d?.length?{images:d}:{},...e?{streamingBehavior:e}:{},userInitiated:!0});return this.promptRunning=!0,ae(),g.then(()=>{this.promptRunning=!1,this.resetIdleTimer(),e||this.emit({type:"prompt_done"}),ae()}).catch(a=>{this.promptRunning=!1,this.resetIdleTimer(),(0,z.mD)(),this.emit({type:"prompt_error",errorMessage:a instanceof Error?a.message:String(a)}),e||this.emit({type:"prompt_done"}),ae()}),null}case"abort":return this.goalMode.onAbort(),await this.withFinalRunningNotification(()=>this.inner.abort()),null;case"get_state":{let a=this.inner.model,b=this.inner.getContextUsage();return{sessionId:this.inner.sessionId,sessionFile:this.inner.sessionFile??"",isStreaming:this.inner.isStreaming,isPromptRunning:this.promptRunning,isBashRunning:this.inner.isBashRunning,isCompacting:this.inner.isCompacting,isHandoffRunning:this.handoffRunning,autoCompactionEnabled:this.inner.autoCompactionEnabled,autoRetryEnabled:this.inner.autoRetryEnabled,model:a?{id:a.id,provider:a.provider}:void 0,messageCount:0,pendingMessageCount:this.inner.queuedMessageCount,queuedMessages:{steering:[...this.inner.getQueuedMessages().steering],followUp:[...this.inner.getQueuedMessages().followUp]},contextUsage:b?{percent:b.percent,contextWindow:b.contextWindow,tokens:b.tokens}:null,systemPrompt:[this.inner.agent.state?.systemPrompt??""].flat().join("\n"),thinkingLevel:this.inner.agent.state?.thinkingLevel??"off",configuredThinkingLevel:this.inner.configuredThinkingLevel()??"off",extensionStatuses:this.getExtensionStatuses(),extensionWidgets:this.getExtensionWidgets(),subagents:this.getSubagentSnapshots(),todoPhases:this.inner.getTodoPhases(),goal:this.goalMode.getStatus()}}case"get_subagents":return{subagents:this.getSubagentSnapshots()};case"get_subagent_messages":{let b=this.subagents.resolveSessionFile(a);return(0,q.readRpcSubagentTranscript)(b,a.fromByte)}case"set_model":{let{provider:b,modelId:c,role:d,oauthPosition:e,thinkingLevel:f}=a,g=void 0!==f||void 0!==e;this.modelMutations+=1,g&&(this.presetMutation=!0);try{let a,g=await (0,D.findModelWithRecovery)(this.inner.modelRegistry,b,c,{forceDiscovery:!0});if(g.miss)throw Error((0,E.zX)(g.miss));let h=g.model,i=this.inner.model,j=void 0!==e||void 0!==f?function(a){try{let b=a.sessionManager.getBranch();if(!Array.isArray(b))return;for(let a=b.length-1;a>=0;a-=1){let c=b[a];if(c?.type==="model_change")return"string"==typeof c.role?c.role:void 0}}catch{}}(this.inner):void 0,k=void 0!==f?this.inner.configuredThinkingLevel():void 0;if(void 0!==e){let b=await M(this.inner,h.provider);if(!b.ok)throw Error(`${b.reason} 계정 변경을 시작하지 않았습니다.`);a=b.snapshot}if(await this.inner.setModel(h,d),void 0!==e){let b=await O(this.inner,h.provider,e);if(!b.ok){let c=await P(this.inner,{previousModel:i,previousRole:j,previousThinking:k,account:a});throw Error(`${b.reason} ${Q(c)}`)}}if(void 0!==f)try{this.inner.setThinkingLevel(f)}catch(d){let b=`thinking level ${f} 적용에 실패했습니다: ${d instanceof Error?d.message:String(d)}`,c=await P(this.inner,{previousModel:i,previousRole:j,previousThinking:k,account:a});throw Error(`${b} ${Q(c)}`)}return(0,x.kn)(),(0,z.mD)(),{id:h.id,provider:h.provider,...d?{role:d}:{}}}finally{g&&(this.presetMutation=!1),this.modelMutations-=1}}case"set_role_model":{let b=a.role;this.modelMutations+=1;try{await (0,D.recoverMissingModelRefs)(this.inner.modelRegistry,(0,C.Ex)(this.inner.settings));let a=this.inner.resolveRoleModel(b);if(!a)throw Error(`No model configured for role "${b}"`);return await this.inner.setModel(a,b),(0,x.kn)(),(0,z.mD)(),{id:a.id,provider:a.provider,role:b}}finally{this.modelMutations-=1}}case"fork":{let b;if(this.inner.isBashRunning)throw Error("Cannot fork while a shell command is running");let c=this.inner.sessionManager,d=function(a,b){if("string"==typeof b&&b.length>0)return b;for(let b=a.length-1;b>=0;b-=1){let c=a[b];if(c?.type==="message"&&c.message?.role==="user"&&c.id)return c.id}}(c.getBranch(),a.entryId);if(!d)throw Error("No user message to fork from yet");let e=this.inner.sessionFile;if(!e)return{cancelled:!0};let g=c.getEntry(d);if(!g)throw Error("Invalid entry ID for forking");let h=c.getSessionDir();if(g.parentId){let a=(await f.SessionManager.open(e,h)).createBranchedSession(g.parentId);if(!a)throw Error("Failed to create forked session");b=a}else{let a=f.SessionManager.create(c.getCwd(),h);await a.newSession({parentSession:e}),await a.ensureOnDisk(),b=a.getSessionFile()}let i=(await f.SessionManager.open(b,h)).getSessionId();return(0,z.O8)(i,b),(0,z.mD)(),await this.shutdownAfterCommittedFork(i),{cancelled:!1,newSessionId:i}}case"handoff":{if(this.handoffRunning||this.promptRunning||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)throw Error("Cannot hand off while the session is busy");let b=a.customInstructions;this.handoffRunning=!0,ae();try{if(!await this.inner.handoff(b))return{cancelled:!0};return(0,z.mD)(),{cancelled:!1}}finally{this.handoffRunning=!1,ae()}}case"navigate_tree":if(this.inner.isBashRunning)throw Error("Cannot navigate while a shell command is running");return{cancelled:(await this.inner.navigateTree(a.targetId,{})).cancelled};case"set_thinking_level":{let b=a.level;this.modelMutations+=1;try{return this.inner.setThinkingLevel(b),"xhigh"===b&&this.inner.model?.compat?.thinkingFormat==="deepseek"&&this.inner.agent?.state&&(this.inner.agent.state.thinkingLevel="xhigh"),(0,z.mD)(),null}finally{this.modelMutations-=1}}case"compact":try{return await this.withFinalRunningNotification(()=>this.inner.compact(a.customInstructions))}finally{(0,z.mD)()}case"set_session_name":{let b=a.name?.trim();if(!b)throw Error("Session name cannot be empty");return await this.inner.sessionManager.setSessionName(b,"user"),(0,z.mD)(),null}case"get_session_stats":return{...this.inner.getSessionStats(),sessionName:this.inner.sessionManager.getSessionName()};case"get_last_assistant_text":return{text:this.inner.getLastAssistantText()??""};case"set_auto_compaction":return this.inner.setAutoCompactionEnabled(a.enabled),null;case"clear_queue":return this.inner.clearQueue();case"steer":{let b=a.images;var e,g=this.sessionId,i=a.message;try{(0,t.appendFileSync)((0,u.join)((0,f.getAgentDir)(),"steering-received.jsonl"),`${JSON.stringify({ts:Date.now(),sessionId:g??null,via:"steer",length:"string"==typeof i?i.length:0})}
9
+ `)}catch{}return await this.inner.steer(a.message,b?.length?b:void 0),null}case"follow_up":{let b=a.images;return await this.inner.followUp(a.message,b?.length?b:void 0),null}case"get_tools":{let a=new Set(this.inner.getActiveToolNames());return(e=this.inner).getAllToolNames().map(a=>({name:a,description:e.getToolByName(a)?.description??""})).map(b=>({name:b.name,description:b.description,active:a.has(b.name)}))}case"get_commands":return{commands:await U(this.inner)};case"goal":return await this.goalMode.handleCommand(a.args??"");case"execute_slash_command":{let b=[],c=await (0,h.executeAcpBuiltinSlashCommand)(a.message,{session:this.inner,sessionManager:this.inner.sessionManager,settings:this.inner.settings,cwd:this.cwd,output:a=>{b.push(a)},refreshCommands:()=>{},reloadPlugins:async()=>{await this.waitForExtensionsBound(),this.extensionStatuses.clear(),this.extensionWidgets.clear(),await this.inner.reload(),await this.inner.refreshSkills?.(),this.applyForcedEmptySystemPrompt(),(0,x.kn)()}});if(!1===c)return{handled:!1,output:b};return{handled:!0,output:b,..."prompt"in c?{prompt:c.prompt}:{}}}case"set_tools":{let b=a.toolNames;return this.setForceEmptySystemPrompt(0===b.length),await this.inner.setActiveToolsByName(this.goalMode.reconcileToolNames(S(this.inner,b))),this.applyForcedEmptySystemPrompt(),null}case"reload":return await this.waitForExtensionsBound(),this.extensionStatuses.clear(),this.extensionWidgets.clear(),await this.inner.reload(),await this.inner.refreshSkills?.(),this.applyForcedEmptySystemPrompt(),(0,x.kn)(),{success:!0};case"abort_compaction":return this.inner.abortCompaction(),null;case"extension_ui_response":return this.resolveExtensionUiResponse(a),null;case"extension_ui_input":return this.handleExtensionUiInput(a.id,a.data),null;case"set_auto_retry":return this.inner.setAutoRetryEnabled(a.enabled),null;case"bash":{if(this.promptRunning||this.inner.isStreaming||this.inner.isCompacting||this.inner.isBashRunning)throw Error("Cannot run a shell command while the session is busy");let b=this.inner.executeBash(a.command,void 0,{excludeFromContext:a.excludeFromContext});ae();try{let a=await b;return this.persistBashOnlySession(),a}finally{this.resetIdleTimer(),(0,z.mD)(),ae()}}case"abort_bash":return this.inner.abortBash(),null;default:throw Error(`Unsupported command: ${c}`)}}destroy(){if(this._alive){for(let a of(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.inner.isBashRunning&&this.inner.abortBash(),this.unsubscribe?.(),this.goalModeController?.dispose(),this.subagents.dispose(),this.subagentHistory.clear(),this.keepAliveListeners.clear(),this.pendingUiResponses.values()))a.cancel();for(let a of Array.from(this.activeCustomUis.keys()))this.closeCustomUi(a,void 0);this.pendingUiResponses.clear(),this.pendingUiRequests.clear();try{this.inner.dispose?.()}finally{try{this.onDestroyCallback?.()}finally{ae()}}}}async shutdown(){return this.shutdownPromise?this.shutdownPromise:this._alive?(this.shutdownPromise=(async()=>{try{try{await this.waitForExtensionsBound()}catch(a){console.error("[pi-web] extension binding failed before session shutdown:",a instanceof Error?a.message:a)}await this.inner.extensionRunner?.emit?.({type:"session_shutdown",reason:"quit"})}finally{this.destroy()}})(),this.shutdownPromise):void 0}async stopBackgroundWorkForDrain(a){let b=Date.now()+a,c=function(a){let b="asyncJobManager"in a?a.asyncJobManager:void 0;if(b&&"object"==typeof b&&"cancelAll"in b&&"waitForAll"in b&&"function"==typeof b.cancelAll&&"function"==typeof b.waitForAll)return b}(this.inner);for(let a of(c?.cancelAll(),this.subagents.getSubagents()))p.AgentRegistry.global().get(a.id)?.session?.abort().catch(()=>{});let d=!c||await V(c.waitForAll(),b);for(;this.subagents.getSubagents().length>0&&Date.now()<b;)await function(){let{promise:a,resolve:b}=Promise.withResolvers();return setTimeout(b,100),a}();return d&&0===this.subagents.getSubagents().length}resolveExtensionUiResponse(a){let b=this.pendingUiResponses.get(a.id);b&&b.resolve(a)}getExtensionStatuses(){return Array.from(this.extensionStatuses,([a,b])=>({key:a,text:b}))}getExtensionWidgets(){return Array.from(this.extensionWidgets.values())}getCustomUiWidth(a){if(!a||"object"!=typeof a)return I.p1;let b=a.overlayOptions,c="function"==typeof b?b():b;if(!c||"object"!=typeof c)return I.p1;let d=c.width;return"number"==typeof d&&Number.isFinite(d)?Math.max(40,Math.min(140,Math.round(d))):92}emitCustomUiRender(a,b){let c;try{c=b.component.render(b.width)}catch(a){c=[`Extension custom UI render failed: ${a instanceof Error?a.message:String(a)}`]}let d={type:"extension_ui_request",id:a,method:"custom",lines:c};this.pendingUiRequests.set(a,d),this.emit(d)}closeCustomUi(a,b){let c=this.activeCustomUis.get(a);if(c&&!c.settled){c.settled=!0,this.activeCustomUis.delete(a),this.pendingUiRequests.delete(a);try{c.component.dispose?.()}catch{}this.emit({type:"extension_ui_request",id:a,method:"custom",lines:[],closed:!0}),c.resolve(b)}}handleExtensionUiInput(a,b){let c=this.activeCustomUis.get(a);if(c&&"string"==typeof b)try{c.component.handleInput?.(b),this.activeCustomUis.has(a)&&this.emitCustomUiRender(a,c)}catch(b){this.closeCustomUi(a,void 0),this.emit({type:"extension_error",extensionPath:`custom-ui:${a}`,event:"custom_ui_input",error:b instanceof Error?b.message:String(b)})}}requestExtensionCustomUi(a,b){if("function"!=typeof a)return Promise.resolve(void 0);let c=(0,s.randomUUID)(),d=this.getCustomUiWidth(b);return new Promise(b=>{let e=!1,f=(0,I.TQ)(()=>{let a=this.activeCustomUis.get(c);a&&this.emitCustomUiRender(c,a)},d),g=a=>{e||(e=!0,b(a))},h=a=>{this.activeCustomUis.has(c)?this.closeCustomUi(c,a):g(a)};Promise.resolve().then(()=>a(f,an,ao,h)).then(a=>{if(e){try{a?.dispose?.()}catch{}return}if(!a||"object"!=typeof a||"function"!=typeof a.render)return void g(void 0);let b={component:a,width:d,resolve:a=>g(a),settled:!1};this.activeCustomUis.set(c,b),this.emitCustomUiRender(c,b)}).catch(a=>{e||(this.emit({type:"extension_error",extensionPath:`custom-ui:${c}`,event:"custom_ui",error:a instanceof Error?a.message:String(a)}),g(void 0))})})}requestExtensionUi(a,b,c,d,e){if(e?.aborted)return Promise.resolve(b);let f=(0,s.randomUUID)(),g={type:"extension_ui_request",id:f,...a,...d?{timeout:d,expiresAt:Date.now()+d}:{}};return new Promise(a=>{let h,i=()=>{h&&clearTimeout(h),e?.removeEventListener("abort",k),this.pendingUiRequests.delete(f),this.pendingUiResponses.delete(f)},j=(b,c=!1)=>{i(),c&&this.emit({...g,closed:!0}),a(b)},k=()=>j(b,!0);d&&(h=setTimeout(()=>j(b),d)),e?.addEventListener("abort",k,{once:!0}),this.pendingUiRequests.set(f,g),this.pendingUiResponses.set(f,{resolve:a=>j(c(a)),cancel:()=>j(b)}),this.emit(g)})}createExtensionUiContext(){return{timeoutStartsOnPresentation:!1,askDialog:(a,b)=>this.requestExtensionUi({method:"ask",questions:a,...b?.timeout?{timeout:b.timeout}:{}},void 0,a=>{if("value"in a)try{return JSON.parse(a.value)}catch{return}},b?.timeout,b?.signal),select:(a,b,c)=>this.requestExtensionUi({method:"select",title:a,options:b,...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),confirm:(a,b,c)=>this.requestExtensionUi({method:"confirm",title:a,message:b,...c?.timeout?{timeout:c.timeout}:{}},!1,a=>"confirmed"in a&&a.confirmed,c?.timeout,c?.signal),input:(a,b,c)=>this.requestExtensionUi({method:"input",title:a,...void 0!==b?{placeholder:b}:{},...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),editor:(a,b,c)=>this.requestExtensionUi({method:"editor",title:a,...void 0!==b?{prefill:b}:{},...c?.timeout?{timeout:c.timeout}:{}},void 0,a=>"value"in a?a.value:void 0,c?.timeout,c?.signal),notify:(a,b)=>{this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"notify",message:a,notifyType:b})},onTerminalInput:()=>()=>{},setStatus:(a,b)=>{void 0===b?this.extensionStatuses.delete(a):this.extensionStatuses.set(a,b),this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"setStatus",statusKey:a,statusText:b})},setWorkingMessage:()=>{},setWorkingVisible:()=>{},setWorkingIndicator:()=>{},setHiddenThinkingLabel:()=>{},setWidget:(a,b,c)=>{(void 0===b||Array.isArray(b))&&(void 0===b?this.extensionWidgets.delete(a):this.extensionWidgets.set(a,{key:a,lines:b,placement:c?.placement??"aboveEditor"}),this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"setWidget",widgetKey:a,widgetLines:b,widgetPlacement:c?.placement}))},setFooter:()=>{},setHeader:()=>{},setTitle:a=>{this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"setTitle",title:a})},custom:(a,b)=>this.requestExtensionCustomUi(a,b),pasteToEditor:a=>{this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"set_editor_text",text:a})},setEditorText:a=>{this.emit({type:"extension_ui_request",id:(0,s.randomUUID)(),method:"set_editor_text",text:a})},getEditorText:()=>"",addAutocompleteProvider:()=>{},setEditorComponent:()=>{},getEditorComponent:()=>void 0,get theme(){return an},getAllThemes:()=>[],getTheme:()=>void 0,setTheme:()=>({success:!1,error:"Theme switching is not supported in CUELO extension UI yet"}),getToolsExpanded:()=>!1,setToolsExpanded:()=>{}}}}function W(){if(!globalThis.__ompSessions){globalThis.__ompSessions=new Map;let a=()=>globalThis.__ompSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__ompSessions}function X(){return globalThis.__ompClosingSessionIds||(globalThis.__ompClosingSessionIds=new Set),globalThis.__ompClosingSessionIds}function Y(a,{onlyWhenIdle:b=!1}={}){let c=X();if(c.has(a))return{reserved:!1,release:()=>{}};let d=W().get(a);if(d?!d.beginClose({onlyWhenIdle:b}):b&&ad().includes(a))return{reserved:!1,release:()=>{}};c.add(a);let e=!1;return{reserved:!0,release:()=>{e||(e=!0,c.delete(a),d?.cancelClose())}}}function Z(a){let b=(0,u.resolve)(a);try{return(0,t.realpathSync)(b)}catch{return b}}function $(){return globalThis.__ompStartingSessionCwds||(globalThis.__ompStartingSessionCwds=new Map),globalThis.__ompStartingSessionCwds}function _(a){return W().get(a)}function aa(){let a=[];for(let b of W().values()){if(!b.isAlive())continue;let c=b.inner.sessionManager,d=c.getHeader(),e=c.getEntries(),f=e.filter(a=>"message"===a.type),g=f.find(a=>"user"===a.message.role),h=c.getSessionFile()??b.sessionFile,i=!!(h&&(0,t.existsSync)(h));if(!i&&(!b.isRunning()||!g))continue;let j=d?.timestamp??e[0]?.timestamp??new Date().toISOString(),k=new Date(j).getTime(),l=Number.isNaN(k)?Date.now():k;for(let a of f){let b=function(a){if("user"!==a.message.role&&"assistant"!==a.message.role)return;if("number"==typeof a.message.timestamp)return a.message.timestamp;let b=new Date(a.timestamp).getTime();return Number.isNaN(b)?void 0:b}(a);void 0!==b&&(l=Math.max(l,b))}a.push({path:h??"",id:d?.id??b.sessionId,cwd:d?.cwd??b.cwd,name:c.getSessionName(),created:j,modified:new Date(l).toISOString(),messageCount:f.length,firstMessage:g&&function(a){if("bashExecution"===a.message.role)return"";let b=a.message.content,c="string"==typeof b?b:b.map(a=>"text"===a.type?a.text:"").filter(Boolean).join(" ");return(0,w.we)(c)}(g)||"(no messages)",transient:!i})}return a}function ab(a){let b=Z(a);return!!$().has(b)||Array.from(W().values()).some(a=>Z(a.cwd)===b&&a.isRunning())}async function ac(a){let b=Z(a),c=Array.from(W().values()).filter(a=>Z(a.cwd)===b);return await Promise.all(c.map(a=>a.shutdown())),c.length}function ad(){let a=new Set;for(let[b,c]of W())c.isRunning()&&a.add(c.sessionId||b);return[...a]}function ae(){let a=ad();(0,G.p8)(a)}async function af(a,b,c,d={}){let{toolNames:g,initialModel:h,thinkingLevel:i,accountOauthPosition:j}=d,k=W(),l=(globalThis.__ompStartLocks||(globalThis.__ompStartLocks=new Map),globalThis.__ompStartLocks);if(X().has(a))throw Error("Session is closing");let n=k.get(a);if(n?.isAlive())return{session:n,realSessionId:a};let o=l.get(a);if(o)return o;let p=(async()=>{let d,l;await (0,f.initTheme)(!1);let n=(0,f.getAgentDir)(),o=b?await f.SessionManager.open(b,void 0):(()=>{if(!c)throw Error("cwd is required for a new session");return f.SessionManager.create(c,void 0)})(),p=o.getCwd(),q=(d=$(),l=Z(p),d.set(l,(d.get(l)??0)+1),()=>{let a=(d.get(l)??1)-1;a>0?d.set(l,a):d.delete(l)});try{let b,c=await (0,D.getOmpRuntime)(),d=await (0,D.getSettingsForCwd)(p);void 0!==g&&(b=0===g.length?[]:void 0);let[l,q]=await Promise.all([(0,f.discoverSessionExtensionPaths)({},p,d),(0,m.discoverCustomToolPaths)([],p)]),r=(0,A.qm)(p,n,{extensionPaths:l,customToolPaths:q}),s=await (0,B.D)(p),{modelRegistry:t}=c;await (0,D.recoverMissingModelRefs)(t,[...(0,C.Ex)(d),...h?[h]:[]]);let u=await (0,y.p)(t,e.cfgEnabledModels.get(d),d),v=(0,C.Ff)(d),w=h?void 0:v?.thinkingLevel,x=i??w,E=o.buildSessionContext().messages.length>0?{scopedModels:[...u.scopedModels],model:void 0,thinkingLevel:void 0}:(0,y.I)(u,{...h?{requestedModel:h}:{},...v?{defaultModel:v}:{},...x?{thinkingLevel:x}:{}}),F={cwd:p,agentDir:n,settings:d,sessionManager:o,modelRegistry:t,hasUI:!0,...E.model?{model:E.model}:{},...E.thinkingLevel?{thinkingLevel:E.thinkingLevel}:{},...E.scopedModels.length>0?{scopedModels:E.scopedModels}:{},...void 0!==b?{toolNames:b,restrictToolNames:!0}:{},...r??{}};(0,f.applyResolvedSystemPromptInputs)(F,s.systemPrompt,s.appendPrompt);let{session:G,eventBus:H,setToolUIContext:I}=await (0,f.createAgentSession)(F);g&&g.length>0&&await G.setActiveToolsByName(S(G,g));let J=new aq(G,H);if(J.bindToolUiContext(I),void 0!==j){let a=G.model?.provider;if(!a)throw J.destroy(),Error("이 세션의 provider를 알 수 없어 OAuth 계정을 지정하지 못했습니다.");let b=await O(G,a,j);if(!b.ok)throw J.destroy(),Error(b.reason)}g?.length===0&&J.setForceEmptySystemPrompt(!0);let K=G.sessionId,L=X();if(L.has(a)||L.has(K))throw J.destroy(),Error("Session is closing");J.start();let M=G.sessionFile;return M&&(0,z.O8)(K,M),J.onDestroy(()=>k.delete(K)),k.set(K,J),J.beginExtensionBinding({forceEmptySystemPrompt:g?.length===0}),{session:J,realSessionId:K}}finally{q()}})().finally(()=>{l.delete(a)});return l.set(a,p),p}d()}catch(a){d(a)}})},71069:(a,b,c)=>{c.d(b,{TQ:()=>e,p1:()=>d});let d=92;function e(a,b=d,c=40){return Object.freeze({terminal:Object.freeze({columns:b,rows:c,kittyProtocolActive:!1}),requestRender:a})}},72498:(a,b,c)=>{c.d(b,{Y1:()=>m,er:()=>n,qm:()=>p});var d=c(29021),e=c(33873),f=c(13229),g=c(8102);let h=[".omp/extensions",".omp/hooks",".omp/tools",".pi/extensions",".pi/hooks",".pi/tools",".claude/extensions",".claude/hooks",".claude/tools",".agents/extensions",".agents/hooks",".agents/tools"],i=[".mcp.json",".omp/.mcp.json",".omp/mcp.json",".claude/.mcp.json",".claude/mcp.json",".cursor/mcp.json"];function j(a){return(0,e.join)(a,"cuelo-trusted-projects.json")}function k(a){let b=(0,e.resolve)(a);try{return(0,d.realpathSync)(b)}catch{return b}}function l(a){try{(0,f.adoptLegacyStateFile)(j(a),"omp-web-trusted-projects.json");let b=JSON.parse((0,d.readFileSync)(j(a),"utf8"));if("object"!=typeof b||null===b||Array.isArray(b))return{};return Object.fromEntries(Object.entries(b).filter(a=>"boolean"==typeof a[1]))}catch{return{}}}function m(a,b){return a&&function(a){if(!a)return!1;for(let b of h)if((0,d.existsSync)((0,e.join)(a,b)))return!0;for(let b of i)if((0,d.existsSync)((0,e.join)(a,b)))return!0;return!1}(a)?{requiresTrust:!0,trusted:!0===l(b)[k(a)]}:{requiresTrust:!1,trusted:!0}}function n(a,b){let c=m(a,b);if(!c.requiresTrust)return c;let e=l(b);return e[k(a)]=!0,(0,d.mkdirSync)(b,{recursive:!0}),(0,g.$)(j(b),`${JSON.stringify(e,null,2)}
10
10
  `),{requiresTrust:!0,trusted:!0}}function o(a,b){let c=(0,e.relative)((0,e.resolve)(b),(0,e.resolve)(a));return""===c||".."!==c&&!c.startsWith(`..${e.sep}`)&&!c.startsWith("../")}function p(a,b,c){let d=m(a,b);if(d.requiresTrust&&!d.trusted)return{preloadedExtensionPaths:c.extensionPaths.filter(b=>!o(b,a)),preloadedCustomToolPaths:c.customToolPaths.filter(b=>b.source?.level!=="project"&&!o(b.path,a)),enableMCP:!1}}},78970:(a,b,c)=>{c.d(b,{kc:()=>d});function d(a){if(void 0===a)return null;if(!Array.isArray(a))return"images must be an array";if(a.length>10)return"A message can include at most 10 images";for(let b of a){if(!b||"object"!=typeof b||"image"!==b.type)return"Each attachment must be an image";if(!function(a){if(!a||"object"!=typeof a||"string"!=typeof a.data||"string"!=typeof a.mimeType||!a.mimeType.startsWith("image/"))return!1;let b=function(a){if(!a||a.length%4!=0)return null;let b=a.endsWith("==")?2:+!!a.endsWith("="),c=a.length-b;for(let b=0;b<c;b+=1){var d;if(!((d=a.charCodeAt(b))>=65&&d<=90||d>=97&&d<=122||d>=48&&d<=57||43===d||47===d))return null}for(let b=c;b<a.length;b+=1)if("="!==a[b])return null;return a.length/4*3-b}(a.data);return null!==b&&b<=0xa00000}(b))return"Each image must be valid base64 image data of 10MB or smaller"}return null}}};
@@ -3,4 +3,4 @@
3
3
  <language>
4
4
  ${b}
5
5
  If the user speaks a different language, MUST switch to that language for the rest of the call.
6
- </language>`:"")}(a.locale),p=a.voice?.trim()||o.DEFAULT_LIVE_VOICE,q=(0,i.wrapFetchForProxy)(fetch,I),{authStorage:r}=await (0,s.RD)();return await (0,h.withOAuthAccess)(r,I,async e=>{var f,g;let h,i,k=(f=a.sessionId,g=c,h={Authorization:`Bearer ${e.accessToken}`,"OpenAI-Alpha":"quicksilver=v2","User-Agent":`Codex Desktop/${j.CODEX_CLIENT_VERSION}`,"x-session-id":b,[j.OPENAI_HEADERS.ORIGINATOR]:"Codex Desktop",[j.OPENAI_HEADERS.VERSION]:j.CODEX_CLIENT_VERSION,[j.OPENAI_HEADERS.SCOPED_SESSION_ID]:f,[j.OPENAI_HEADERS.THREAD_ID]:f},(i=e.accountId??(0,j.getCodexAccountId)(e.accessToken))&&(h[j.OPENAI_HEADERS.ACCOUNT_ID]=i),g&&(h["x-oai-attestation"]=g),h),l=await q(H,{method:"POST",headers:{...k,Accept:"*/*","Content-Type":"application/json"},body:JSON.stringify({sdp:a.sdp,session:(0,n.buildLiveSessionPayload)(d,p)})}),m=await l.text();if(!l.ok){let a=m.trim().replaceAll(/\s+/g," ").slice(0,2048)||l.statusText;throw new K(`Codex live signaling failed (${l.status}): ${a}`,"live-upstream",502)}if(!m.trim())throw new K("Codex live signaling returned an empty SDP answer","live-upstream",502);let o=function(a){if(a)return a.split("?",1)[0]?.split("/").find(a=>J.test(a))}(l.headers.get("location"));if(!o)throw new K("Codex live signaling returned no valid call ID","live-upstream",502);return{answer:m,callId:o,headers:k}},{sessionId:a.sessionId,isAuthError:h.isAuthRetryableError,missingAccessMessage:"No Codex OAuth credential is available for a live call."})}async function E(a){let b,c=await C(a.sessionId),d=crypto.randomUUID(),{answer:g,callId:h,headers:j}=await D(a,d),m={callId:h,sessionId:a.sessionId,sideband:void 0,state:"connecting",listeners:new Set,detachAgent:()=>{},activeDelegationId:void 0,sendTail:Promise.resolve(),persistTail:Promise.resolve(),transcripts:{user:{text:"",final:!1},assistant:{text:"",final:!1}},lastTranscript:void 0,orphanTimer:void 0,closed:!1},o=await function(a,b,c,d){let e=Reflect.construct(WebSocket,[a,{headers:b,proxy:(0,i.getProxyForUrl)(I,new URL(a))}]),{promise:f,resolve:g,reject:h}=Promise.withResolvers(),j=!1,k=setTimeout(()=>{j||(e.close(1e3,"connect timeout"),h(Error("Codex live sideband connection timed out")))},15e3);return e.onopen=()=>{j=!0,clearTimeout(k),g(e)},e.onerror=()=>{j||(clearTimeout(k),h(Error("Codex live sideband connection failed")))},e.onmessage=a=>{"string"==typeof a.data&&c(a.data)},e.onclose=a=>{(clearTimeout(k),j)?d(a.reason||`sideband closed (${a.code})`):h(Error(`Codex live sideband closed before connecting (${a.code})`))},f}(((b=new URL(`https://api.openai.com/v1/live/${encodeURIComponent(h)}`)).protocol="wss:",b.toString()),j,a=>{if(m.closed)return;let b=(0,t.PW)(a),d=b&&(0,n.parseLiveServerEvent)(b);b&&d&&function(a,b,c,d){var e,f;switch(c.type){case"session.started":z(a,"live");return;case"input_transcript.added":{let b=A(a,"user",c.item.text,!1,d);b&&y(a,{type:"transcript",role:"user",text:b,final:!1});return}case"output_transcript.added":{let b=A(a,"assistant",c.item.text,!1,d);b&&y(a,{type:"transcript",role:"assistant",text:b,final:!1});return}case"turn.done":{let f=A(a,c.turn.role,c.turn.transcript,!0,d);f&&(e=c.turn.role,a.persistTail=a.persistTail.then(async()=>{let c={role:e},d=b.inner.sessionManager,g=(0,t.NR)(e,f),h="user"===e?"user":"agent",i=Date.now();b.inner.agent.appendMessage((0,p.createCustomMessage)(t.BD,g,!0,c,new Date(i).toISOString(),h)),d.appendCustomMessageEntry(t.BD,g,!0,c,h,i),await d.ensureOnDisk(),await d.flush(),(0,r.mD)(),y(a,{type:"transcript",role:e,text:f,final:!0})}).catch(b=>{y(a,{type:"error",message:b instanceof Error?b.message:String(b)}),z(a,"error")}));return}case"delegation.created":{let d=c.item.content.filter(a=>"input_text"===a.type).map(a=>a.text).join("\n").trim();d&&(f=c.item.id,a.activeDelegationId=f,z(a,"working"),y(a,{type:"delegation",status:"started",request:d}),b.inner.sendCustomMessage({customType:p.LIVE_DELEGATION_MESSAGE_TYPE,content:d,display:!0,attribution:"agent"},{triggerTurn:!0}).catch(b=>{a.activeDelegationId=void 0,z(a,"live"),y(a,{type:"error",message:b instanceof Error?b.message:String(b)})}));return}case"error":y(a,{type:"error",message:c.message}),z(a,"error");return;default:return}}(m,c,d,(0,t.c$)(b))},a=>{m.closed||m.persistTail.then(()=>{m.closed||(y(m,{type:"error",message:a}),G(h))})});return m.sideband=o,m.detachAgent=c.inner.subscribe(a=>{m.closed||function(a,b){if(a.activeDelegationId){if("message_end"===b.type){if("assistant"!==b.message.role||"toolUse"!==b.message.stopReason)return;let c=x(b.message.content).trim();c&&B(a,c,!0);return}if("agent_end"===b.type&&!1!==b.isTerminal){for(let c=b.messages.length-1;c>=0;c-=1){let d=b.messages[c];if(!d||"assistant"!==d.role)continue;let g=x(d.content).trim();if(g){B(a,function(a){let b=(0,l.getPackageDir)();if(!b)return a;let c=(0,e.readFileSync)((0,f.join)(b,"src","live","prompts","agent-final-message.md"),"utf8");return k.prompt.render(c,{message:a})}(g),!1);break}}a.activeDelegationId=void 0,y(a,{type:"delegation",status:"completed"}),z(a,"live")}}}(m,a)}),v().set(h,m),m.orphanTimer=setTimeout(()=>void G(h),6e4),{callId:h,sdp:g}}function F(a,b){let c=v().get(a);return!c||c.closed?null:(c.orphanTimer&&(clearTimeout(c.orphanTimer),c.orphanTimer=void 0),c.listeners.add(b),b({type:"state",state:c.state}),c.lastTranscript&&b(c.lastTranscript),()=>{c.listeners.delete(b),c.listeners.size>0||c.closed||(c.orphanTimer=setTimeout(()=>void G(a),6e4))})}async function G(a){let b=v().get(a);if(!b)return!1;if(v().delete(a),b.closed)return!0;if(b.closed=!0,clearTimeout(b.orphanTimer),b.detachAgent(),await b.persistTail,b.sideband.readyState===WebSocket.OPEN)try{b.sideband.send(JSON.stringify((0,n.buildSessionClose)()))}catch{}return z(b,"closed"),b.listeners.clear(),(b.sideband.readyState===WebSocket.OPEN||b.sideband.readyState===WebSocket.CONNECTING)&&b.sideband.close(1e3,"done"),!0}d()}catch(a){d(a)}})},66544:(a,b,c)=>{c.d(b,{E2:()=>j,EN:()=>i});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(){return[process.env.CUELO_HOSTNAME,...process.env.CUELO_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function h(a){try{return new URL(a).origin}catch{return null}}function i(a,b=g()){return!!function(a,b=g()){let c=a.headers.get("host"),h=c?f(c):null;return!!h&&(!!("localhost"===h||h.endsWith(".localhost")||(0,d.isIP)(h))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===h}))}(a,b)&&(!!function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a)||!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))||function(a){let b,c,d=a.headers.get("origin");if("cross-site"===a.headers.get("sec-fetch-site"))return!1;if(!d)return!0;let e=(b=new URL(a.url),(c=a.headers.get("host"))?h(`${b.protocol}//${c}`):null);return null!==e&&h(d)===e}(a))}function j(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}}};
6
+ </language>`:"")}(a.locale),p=a.voice?.trim()||o.DEFAULT_LIVE_VOICE,q=(0,i.wrapFetchForProxy)(fetch,I),{authStorage:r}=await (0,s.getOmpRuntime)();return await (0,h.withOAuthAccess)(r,I,async e=>{var f,g;let h,i,k=(f=a.sessionId,g=c,h={Authorization:`Bearer ${e.accessToken}`,"OpenAI-Alpha":"quicksilver=v2","User-Agent":`Codex Desktop/${j.CODEX_CLIENT_VERSION}`,"x-session-id":b,[j.OPENAI_HEADERS.ORIGINATOR]:"Codex Desktop",[j.OPENAI_HEADERS.VERSION]:j.CODEX_CLIENT_VERSION,[j.OPENAI_HEADERS.SCOPED_SESSION_ID]:f,[j.OPENAI_HEADERS.THREAD_ID]:f},(i=e.accountId??(0,j.getCodexAccountId)(e.accessToken))&&(h[j.OPENAI_HEADERS.ACCOUNT_ID]=i),g&&(h["x-oai-attestation"]=g),h),l=await q(H,{method:"POST",headers:{...k,Accept:"*/*","Content-Type":"application/json"},body:JSON.stringify({sdp:a.sdp,session:(0,n.buildLiveSessionPayload)(d,p)})}),m=await l.text();if(!l.ok){let a=m.trim().replaceAll(/\s+/g," ").slice(0,2048)||l.statusText;throw new K(`Codex live signaling failed (${l.status}): ${a}`,"live-upstream",502)}if(!m.trim())throw new K("Codex live signaling returned an empty SDP answer","live-upstream",502);let o=function(a){if(a)return a.split("?",1)[0]?.split("/").find(a=>J.test(a))}(l.headers.get("location"));if(!o)throw new K("Codex live signaling returned no valid call ID","live-upstream",502);return{answer:m,callId:o,headers:k}},{sessionId:a.sessionId,isAuthError:h.isAuthRetryableError,missingAccessMessage:"No Codex OAuth credential is available for a live call."})}async function E(a){let b,c=await C(a.sessionId),d=crypto.randomUUID(),{answer:g,callId:h,headers:j}=await D(a,d),m={callId:h,sessionId:a.sessionId,sideband:void 0,state:"connecting",listeners:new Set,detachAgent:()=>{},activeDelegationId:void 0,sendTail:Promise.resolve(),persistTail:Promise.resolve(),transcripts:{user:{text:"",final:!1},assistant:{text:"",final:!1}},lastTranscript:void 0,orphanTimer:void 0,closed:!1},o=await function(a,b,c,d){let e=Reflect.construct(WebSocket,[a,{headers:b,proxy:(0,i.getProxyForUrl)(I,new URL(a))}]),{promise:f,resolve:g,reject:h}=Promise.withResolvers(),j=!1,k=setTimeout(()=>{j||(e.close(1e3,"connect timeout"),h(Error("Codex live sideband connection timed out")))},15e3);return e.onopen=()=>{j=!0,clearTimeout(k),g(e)},e.onerror=()=>{j||(clearTimeout(k),h(Error("Codex live sideband connection failed")))},e.onmessage=a=>{"string"==typeof a.data&&c(a.data)},e.onclose=a=>{(clearTimeout(k),j)?d(a.reason||`sideband closed (${a.code})`):h(Error(`Codex live sideband closed before connecting (${a.code})`))},f}(((b=new URL(`https://api.openai.com/v1/live/${encodeURIComponent(h)}`)).protocol="wss:",b.toString()),j,a=>{if(m.closed)return;let b=(0,t.PW)(a),d=b&&(0,n.parseLiveServerEvent)(b);b&&d&&function(a,b,c,d){var e,f;switch(c.type){case"session.started":z(a,"live");return;case"input_transcript.added":{let b=A(a,"user",c.item.text,!1,d);b&&y(a,{type:"transcript",role:"user",text:b,final:!1});return}case"output_transcript.added":{let b=A(a,"assistant",c.item.text,!1,d);b&&y(a,{type:"transcript",role:"assistant",text:b,final:!1});return}case"turn.done":{let f=A(a,c.turn.role,c.turn.transcript,!0,d);f&&(e=c.turn.role,a.persistTail=a.persistTail.then(async()=>{let c={role:e},d=b.inner.sessionManager,g=(0,t.NR)(e,f),h="user"===e?"user":"agent",i=Date.now();b.inner.agent.appendMessage((0,p.createCustomMessage)(t.BD,g,!0,c,new Date(i).toISOString(),h)),d.appendCustomMessageEntry(t.BD,g,!0,c,h,i),await d.ensureOnDisk(),await d.flush(),(0,r.mD)(),y(a,{type:"transcript",role:e,text:f,final:!0})}).catch(b=>{y(a,{type:"error",message:b instanceof Error?b.message:String(b)}),z(a,"error")}));return}case"delegation.created":{let d=c.item.content.filter(a=>"input_text"===a.type).map(a=>a.text).join("\n").trim();d&&(f=c.item.id,a.activeDelegationId=f,z(a,"working"),y(a,{type:"delegation",status:"started",request:d}),b.inner.sendCustomMessage({customType:p.LIVE_DELEGATION_MESSAGE_TYPE,content:d,display:!0,attribution:"agent"},{triggerTurn:!0}).catch(b=>{a.activeDelegationId=void 0,z(a,"live"),y(a,{type:"error",message:b instanceof Error?b.message:String(b)})}));return}case"error":y(a,{type:"error",message:c.message}),z(a,"error");return;default:return}}(m,c,d,(0,t.c$)(b))},a=>{m.closed||m.persistTail.then(()=>{m.closed||(y(m,{type:"error",message:a}),G(h))})});return m.sideband=o,m.detachAgent=c.inner.subscribe(a=>{m.closed||function(a,b){if(a.activeDelegationId){if("message_end"===b.type){if("assistant"!==b.message.role||"toolUse"!==b.message.stopReason)return;let c=x(b.message.content).trim();c&&B(a,c,!0);return}if("agent_end"===b.type&&!1!==b.isTerminal){for(let c=b.messages.length-1;c>=0;c-=1){let d=b.messages[c];if(!d||"assistant"!==d.role)continue;let g=x(d.content).trim();if(g){B(a,function(a){let b=(0,l.getPackageDir)();if(!b)return a;let c=(0,e.readFileSync)((0,f.join)(b,"src","live","prompts","agent-final-message.md"),"utf8");return k.prompt.render(c,{message:a})}(g),!1);break}}a.activeDelegationId=void 0,y(a,{type:"delegation",status:"completed"}),z(a,"live")}}}(m,a)}),v().set(h,m),m.orphanTimer=setTimeout(()=>void G(h),6e4),{callId:h,sdp:g}}function F(a,b){let c=v().get(a);return!c||c.closed?null:(c.orphanTimer&&(clearTimeout(c.orphanTimer),c.orphanTimer=void 0),c.listeners.add(b),b({type:"state",state:c.state}),c.lastTranscript&&b(c.lastTranscript),()=>{c.listeners.delete(b),c.listeners.size>0||c.closed||(c.orphanTimer=setTimeout(()=>void G(a),6e4))})}async function G(a){let b=v().get(a);if(!b)return!1;if(v().delete(a),b.closed)return!0;if(b.closed=!0,clearTimeout(b.orphanTimer),b.detachAgent(),await b.persistTail,b.sideband.readyState===WebSocket.OPEN)try{b.sideband.send(JSON.stringify((0,n.buildSessionClose)()))}catch{}return z(b,"closed"),b.listeners.clear(),(b.sideband.readyState===WebSocket.OPEN||b.sideband.readyState===WebSocket.CONNECTING)&&b.sideband.close(1e3,"done"),!0}d()}catch(a){d(a)}})},66544:(a,b,c)=>{c.d(b,{E2:()=>j,EN:()=>i});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(){return[process.env.CUELO_HOSTNAME,...process.env.CUELO_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function h(a){try{return new URL(a).origin}catch{return null}}function i(a,b=g()){return!!function(a,b=g()){let c=a.headers.get("host"),h=c?f(c):null;return!!h&&(!!("localhost"===h||h.endsWith(".localhost")||(0,d.isIP)(h))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===h}))}(a,b)&&(!!function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a)||!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))||function(a){let b,c,d=a.headers.get("origin");if("cross-site"===a.headers.get("sec-fetch-site"))return!1;if(!d)return!0;let e=(b=new URL(a.url),(c=a.headers.get("host"))?h(`${b.protocol}//${c}`):null);return null!==e&&h(d)===e}(a))}function j(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}}};
@@ -1 +1 @@
1
- exports.id=877,exports.ids=[877],exports.modules={5908:(a,b,c)=>{"use strict";function d(a,b={}){let c=b.intervalMs??6e4,e=b.now??Date.now,f=new Map,g=new Map;return{recover:(b,d={})=>{let h=g.get(b);if(h)return h.then(a=>({...a,shared:!0}));let i=e(),j=f.get(b);if(!d.force&&void 0!==j&&i-j<c)return Promise.resolve({outcome:"throttled",shared:!1});f.set(b,i);let k=a.refreshProvider(b,"online").then(()=>({outcome:"refreshed",shared:!1})).catch(a=>({outcome:"failed",shared:!1,error:function(a){let b=[],c=a;for(let a=0;a<3&&void 0!==c;a+=1){if(c instanceof Error){b.push(c.message),c=c.cause;continue}if("object"==typeof c&&null!==c){let a=c;"string"==typeof a.message&&b.push(a.message),"string"==typeof a.code&&b.push(a.code),"number"==typeof a.status&&b.push(`HTTP ${a.status}`),c=a.cause;continue}b.push(String(c));break}let d=b.join(" "),e=d.match(/\b(?:HTTP\s*)?([45]\d{2})\b/i)?.[1];if("401"===e||"403"===e||/\b(?:api[- ]?key|credential|authentication|unauthorized|forbidden)\b/i.test(d))return e?`provider authentication failed (HTTP ${e})`:"provider authentication failed";let f=d.match(/\b(EAI_AGAIN|ECONNREFUSED|ECONNRESET|ENETUNREACH|ENOTFOUND|ETIMEDOUT|UND_ERR_CONNECT_TIMEOUT|UND_ERR_HEADERS_TIMEOUT|UND_ERR_BODY_TIMEOUT)\b/i)?.[1];return f?f.toUpperCase():/\b(?:timed?\s*out|timeout)\b/i.test(d)?"request timed out":e?`HTTP ${e}`:"discovery request failed"}(a)})).finally(()=>{g.get(b)===k&&g.delete(b)});return g.set(b,k),k}}}function e(a){return a.providerKnown?"failed"===a.recovery.outcome?`Model ${a.selector} is not in the model list and the discovery refresh for provider "${a.provider}" failed: ${a.recovery.error??"unknown error"}.`:"throttled"===a.recovery.outcome?`Model ${a.selector} is not in the model list. Discovery for provider "${a.provider}" was refreshed recently, so this lookup did not fetch again.`:`Model ${a.selector} is not in the model list after refreshing discovery for provider "${a.provider}".`:`Unknown model provider "${a.provider}" for ${a.selector}: the provider is not registered.`}c.d(b,{fw:()=>d,zX:()=>e})},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},28247:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{G:()=>j,z:()=>i});var e=c(87998),f=c(29843),g=c(38741),h=a([e,f,g]);async function i(){let{modelRegistry:a,authStorage:b}=await (0,g.RD)(),c=a.getAll(),d=new Map;for(let a of c)d.set(a.provider,(d.get(a.provider)??0)+1);let h=new Map;for(let a of(0,e.getOAuthProviders)())a.available&&h.set(a.storeCredentialsAs??a.id,{id:a.id,name:a.name});let i=new Map(f.PROVIDER_DESCRIPTORS.map(a=>[a.providerId,a])),j=new Set([...d.keys(),...h.keys(),...i.keys()]),k=new Map;for(let a of j){let c=b.credentials.list(a),d=c.some(a=>"oauth"===a.credential.type)?"oauth":c.length>0?"api_key":void 0;d&&k.set(a,d)}return[...j].sort().map(a=>{let c=h.get(a),e=b.keys.source(a);return{id:a,name:c?.name??a,hasApiKeyLogin:i.has(a)||d.has(a),hasOAuth:!!c,...c?.name?{oauthName:c.name}:{},status:{configured:void 0!==e,...e?.kind?{source:e.kind}:{}},...k.has(a)?{credentialType:k.get(a)}:{},modelCount:d.get(a)??0}})}function j(a){for(let b of(0,e.getOAuthProviders)())if(b.available&&(b.storeCredentialsAs??b.id)===a)return b.id}[e,f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},38741:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Ef:()=>n,GA:()=>k,Ix:()=>m,RD:()=>i,ZU:()=>j});var e=c(92582),f=c(5908),g=a([e]);async function h(){let a=(0,e.getAgentDir)(),b=await e.Settings.init({agentDir:a}),c=await (0,e.discoverAuthStorage)(a),d=new e.ModelRegistry(c);return await d.refresh("online-if-uncached"),{agentDir:a,settings:b,authStorage:c,modelRegistry:d}}function i(){return globalThis.__ompRuntimePromise??=h().catch(a=>{throw globalThis.__ompRuntimePromise=void 0,a}),globalThis.__ompRuntimePromise}async function j(a){let{settings:b}=await i();return a&&b.getCwd()!==a?b.cloneForCwd(a):b}function k(){globalThis.__ompRuntimePromise=void 0}function l(a){let b=globalThis.__ompMissingModelRecovery??=new WeakMap,c=b.get(a);return c||(c=(0,f.fw)(a),b.set(a,c)),c}async function m(a,b,c,d={}){let e=a.find(b,c);if(e)return{model:e};let f=await l(a).recover(b,{force:d.forceDiscovery}),g=a.find(b,c);return g?{model:g}:{miss:{selector:`${b}/${c}`,provider:b,providerKnown:a.hasProvider(b),recovery:f}}}async function n(a,b){let c=new Set;for(let d of b)d.provider&&d.modelId&&(a.find(d.provider,d.modelId)||c.add(d.provider));0!==c.size&&await Promise.all([...c].map(b=>l(a).recover(b)))}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},78335:()=>{},89950:(a,b,c)=>{"use strict";c.d(b,{l:()=>h,z:()=>g});let d=new Set(["models_json_key","models_json_command"]),e={"openai-codex":"ChatGPT Plus/Pro","github-copilot":"GitHub Copilot"};function f(a){let b=new Set,c=[];for(let d of a)b.has(d.id)||(b.add(d.id),c.push(d));return c}function g(a){let b=[];for(let c of f(a)){if(!c.hasApiKeyLogin||c.status.source&&d.has(c.status.source))continue;let a=c.status.configured&&"oauth"!==c.credentialType;b.push({id:c.id,displayName:c.name,configured:a,...a&&c.status.source?{source:c.status.source}:{},modelCount:c.modelCount,supportsOAuth:c.hasOAuth})}return b}function h(a){let b=[];for(let c of f(a))c.hasOAuth&&b.push({id:c.id,name:e[c.id]??c.oauthName??c.name,usesCallbackServer:!1,loggedIn:"oauth"===c.credentialType,supportsApiKey:c.hasApiKeyLogin});return b}},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},96487:()=>{}};
1
+ exports.id=877,exports.ids=[877],exports.modules={5908:(a,b,c)=>{"use strict";function d(a,b={}){let c=b.intervalMs??6e4,e=b.now??Date.now,f=new Map,g=new Map;return{recover:(b,d={})=>{let h=g.get(b);if(h)return h.then(a=>({...a,shared:!0}));let i=e(),j=f.get(b);if(!d.force&&void 0!==j&&i-j<c)return Promise.resolve({outcome:"throttled",shared:!1});f.set(b,i);let k=a.refreshProvider(b,"online").then(()=>({outcome:"refreshed",shared:!1})).catch(a=>({outcome:"failed",shared:!1,error:function(a){let b=[],c=a;for(let a=0;a<3&&void 0!==c;a+=1){if(c instanceof Error){b.push(c.message),c=c.cause;continue}if("object"==typeof c&&null!==c){let a=c;"string"==typeof a.message&&b.push(a.message),"string"==typeof a.code&&b.push(a.code),"number"==typeof a.status&&b.push(`HTTP ${a.status}`),c=a.cause;continue}b.push(String(c));break}let d=b.join(" "),e=d.match(/\b(?:HTTP\s*)?([45]\d{2})\b/i)?.[1];if("401"===e||"403"===e||/\b(?:api[- ]?key|credential|authentication|unauthorized|forbidden)\b/i.test(d))return e?`provider authentication failed (HTTP ${e})`:"provider authentication failed";let f=d.match(/\b(EAI_AGAIN|ECONNREFUSED|ECONNRESET|ENETUNREACH|ENOTFOUND|ETIMEDOUT|UND_ERR_CONNECT_TIMEOUT|UND_ERR_HEADERS_TIMEOUT|UND_ERR_BODY_TIMEOUT)\b/i)?.[1];return f?f.toUpperCase():/\b(?:timed?\s*out|timeout)\b/i.test(d)?"request timed out":e?`HTTP ${e}`:"discovery request failed"}(a)})).finally(()=>{g.get(b)===k&&g.delete(b)});return g.set(b,k),k}}}function e(a){return a.providerKnown?"failed"===a.recovery.outcome?`Model ${a.selector} is not in the model list and the discovery refresh for provider "${a.provider}" failed: ${a.recovery.error??"unknown error"}.`:"throttled"===a.recovery.outcome?`Model ${a.selector} is not in the model list. Discovery for provider "${a.provider}" was refreshed recently, so this lookup did not fetch again.`:`Model ${a.selector} is not in the model list after refreshing discovery for provider "${a.provider}".`:`Unknown model provider "${a.provider}" for ${a.selector}: the provider is not registered.`}c.d(b,{fw:()=>d,zX:()=>e})},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},28247:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{G:()=>j,z:()=>i});var e=c(87998),f=c(29843),g=c(38741),h=a([e,f,g]);async function i(){let{modelRegistry:a,authStorage:b}=await (0,g.getOmpRuntime)(),c=a.getAll(),d=new Map;for(let a of c)d.set(a.provider,(d.get(a.provider)??0)+1);let h=new Map;for(let a of(0,e.getOAuthProviders)())a.available&&h.set(a.storeCredentialsAs??a.id,{id:a.id,name:a.name});let i=new Map(f.PROVIDER_DESCRIPTORS.map(a=>[a.providerId,a])),j=new Set([...d.keys(),...h.keys(),...i.keys()]),k=new Map;for(let a of j){let c=b.credentials.list(a),d=c.some(a=>"oauth"===a.credential.type)?"oauth":c.length>0?"api_key":void 0;d&&k.set(a,d)}return[...j].sort().map(a=>{let c=h.get(a),e=b.keys.source(a);return{id:a,name:c?.name??a,hasApiKeyLogin:i.has(a)||d.has(a),hasOAuth:!!c,...c?.name?{oauthName:c.name}:{},status:{configured:void 0!==e,...e?.kind?{source:e.kind}:{}},...k.has(a)?{credentialType:k.get(a)}:{},modelCount:d.get(a)??0}})}function j(a){for(let b of(0,e.getOAuthProviders)())if(b.available&&(b.storeCredentialsAs??b.id)===a)return b.id}[e,f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},38741:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{findModelWithRecovery:()=>m,getOmpRuntime:()=>i,getSettingsForCwd:()=>j,invalidateOmpRuntime:()=>k,missingModelRecoveryFor:()=>l,recoverMissingModelRefs:()=>n});var e=c(92582),f=c(5908),g=a([e]);async function h(){let a=(0,e.getAgentDir)(),b=await e.Settings.init({agentDir:a}),c=await (0,e.discoverAuthStorage)(a),d=new e.ModelRegistry(c);return await d.refresh("online-if-uncached"),{agentDir:a,settings:b,authStorage:c,modelRegistry:d}}function i(){return globalThis.__ompRuntimePromise??=h().catch(a=>{throw globalThis.__ompRuntimePromise=void 0,a}),globalThis.__ompRuntimePromise}async function j(a){let{settings:b}=await i();return a&&b.getCwd()!==a?b.cloneForCwd(a):b}function k(){globalThis.__ompRuntimePromise=void 0}function l(a){let b=globalThis.__ompMissingModelRecovery??=new WeakMap,c=b.get(a);return c||(c=(0,f.fw)(a),b.set(a,c)),c}async function m(a,b,c,d={}){let e=a.find(b,c);if(e)return{model:e};let f=await l(a).recover(b,{force:d.forceDiscovery}),g=a.find(b,c);return g?{model:g}:{miss:{selector:`${b}/${c}`,provider:b,providerKnown:a.hasProvider(b),recovery:f}}}async function n(a,b){let c=new Set;for(let d of b)d.provider&&d.modelId&&(a.find(d.provider,d.modelId)||c.add(d.provider));0!==c.size&&await Promise.all([...c].map(b=>l(a).recover(b)))}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},78335:()=>{},89950:(a,b,c)=>{"use strict";c.d(b,{l:()=>h,z:()=>g});let d=new Set(["models_json_key","models_json_command"]),e={"openai-codex":"ChatGPT Plus/Pro","github-copilot":"GitHub Copilot"};function f(a){let b=new Set,c=[];for(let d of a)b.has(d.id)||(b.add(d.id),c.push(d));return c}function g(a){let b=[];for(let c of f(a)){if(!c.hasApiKeyLogin||c.status.source&&d.has(c.status.source))continue;let a=c.status.configured&&"oauth"!==c.credentialType;b.push({id:c.id,displayName:c.name,configured:a,...a&&c.status.source?{source:c.status.source}:{},modelCount:c.modelCount,supportsOAuth:c.hasOAuth})}return b}function h(a){let b=[];for(let c of f(a))c.hasOAuth&&b.push({id:c.id,name:e[c.id]??c.oauthName??c.name,usesCallbackServer:!1,loggedIn:"oauth"===c.credentialType,supportsApiKey:c.hasApiKeyLogin});return b}},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},96487:()=>{}};
@@ -18,6 +18,7 @@
18
18
  }
19
19
  ]
20
20
  },
21
+ "/api/attachments": {},
21
22
  "/api/document-text": {},
22
23
  "/api/sessions/[id]/export": {},
23
24
  "/api/sidecars/[service]/[...path]": {}
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/2UGVMAB5iVKLWm-zGiUKj/_buildManifest.js","static/2UGVMAB5iVKLWm-zGiUKj/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-4094d78ef0b4c382.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-1b03b52e3112452e.js","static/chunks/main-app-fbc4aa3c15d48613.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/zqQ2BdsFkwRQpfXpTFeIx/_buildManifest.js","static/zqQ2BdsFkwRQpfXpTFeIx/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-4094d78ef0b4c382.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-1b03b52e3112452e.js","static/chunks/main-app-fbc4aa3c15d48613.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" translate="no" class="notranslate" data-seed="true"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="stylesheet" href="/_next/static/css/2f46e0db0d4a3aed.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/0282259eb1a6b95f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4094d78ef0b4c382.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-1b03b52e3112452e.js" async=""></script><script src="/_next/static/chunks/main-app-fbc4aa3c15d48613.js" async=""></script><script src="/_next/static/chunks/app/layout-5ffecd9ebe39dbd0.js" async=""></script><meta name="robots" content="noindex"/><meta name="google" content="notranslate"/><meta name="color-scheme" content="light dark"/><title>404: This page could not be found.</title><meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#16171b" media="(prefers-color-scheme: dark)"/><title>CUELO</title><meta name="description" content="Web view for the omp (oh-my-pi) coding agent"/><meta name="application-name" content="CUELO"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="CUELO"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><link rel="icon" href="/favicon.ico?bcf2d9369cb3cf33" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/icons/icon-192.png" sizes="192x192" type="image/png"/><link rel="apple-touch-icon" href="/icons/apple-touch-icon.png" sizes="180x180" type="image/png"/><script>(function(){try{var s=localStorage,p=s.getItem("pi-theme");if(p!=="light"&&p!=="dark"&&p!=="auto"){p=s.getItem("omp-theme");if(p!=="light"&&p!=="dark")p="auto"}var m=p==="auto"?(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"):p,r=document.documentElement;r.dataset.ompThemeMode=m;r.setAttribute("data-seed-color-mode",m==="dark"?"dark-only":"light-only");r.classList.toggle("dark",m==="dark");for(var i=r.style.length-1;i>=0;i--){var n=r.style.item(i);if(n.indexOf("--")===0&&n.indexOf("--omp-md-")!==0)r.style.removeProperty(n)}var c=JSON.parse(s.getItem("omp-theme-config")||"null"),v=c&&c.palettes&&c.palettes[m];if(v&&v.variables){Object.keys(v.variables).forEach(function(k){if(k.indexOf("--omp-md-")===0)r.style.setProperty(k,v.variables[k])});r.dataset.ompThemeName=v.name}}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body translate="no" class="notranslate"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-4094d78ef0b4c382.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[57788,[\"7177\",\"static/chunks/app/layout-5ffecd9ebe39dbd0.js\"],\"PwaRegistration\"]\n5:I[90484,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[90484,[],\"ViewportBoundary\"]\nb:I[90484,[],\"MetadataBoundary\"]\nd:I[27123,[],\"default\",1]\n:HL[\"/_next/static/css/2f46e0db0d4a3aed.css\",\"style\"]\n:HL[\"/_next/static/css/0282259eb1a6b95f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/2f46e0db0d4a3aed.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0282259eb1a6b95f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"translate\":\"no\",\"className\":\"notranslate\",\"data-seed\":true,\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"google\",\"content\":\"notranslate\"}],[\"$\",\"meta\",null,{\"name\":\"color-scheme\",\"content\":\"light dark\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var s=localStorage,p=s.getItem(\\\"pi-theme\\\");if(p!==\\\"light\\\"\u0026\u0026p!==\\\"dark\\\"\u0026\u0026p!==\\\"auto\\\"){p=s.getItem(\\\"omp-theme\\\");if(p!==\\\"light\\\"\u0026\u0026p!==\\\"dark\\\")p=\\\"auto\\\"}var m=p===\\\"auto\\\"?(window.matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches?\\\"dark\\\":\\\"light\\\"):p,r=document.documentElement;r.dataset.ompThemeMode=m;r.setAttribute(\\\"data-seed-color-mode\\\",m===\\\"dark\\\"?\\\"dark-only\\\":\\\"light-only\\\");r.classList.toggle(\\\"dark\\\",m===\\\"dark\\\");for(var i=r.style.length-1;i\u003e=0;i--){var n=r.style.item(i);if(n.indexOf(\\\"--\\\")===0\u0026\u0026n.indexOf(\\\"--omp-md-\\\")!==0)r.style.removeProperty(n)}var c=JSON.parse(s.getItem(\\\"omp-theme-config\\\")||\\\"null\\\"),v=c\u0026\u0026c.palettes\u0026\u0026c.palettes[m];if(v\u0026\u0026v.variables){Object.keys(v.variables).forEach(function(k){if(k.indexOf(\\\"--omp-md-\\\")===0)r.style.setProperty(k,v.variables[k])});r.dataset.ompThemeName=v.name}}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"translate\":\"no\",\"className\":\"notranslate\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$@8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"2UGVMAB5iVKLWm-zGiUKj\"}\n"])</script><script>self.__next_f.push([1,"e:[]\n8:\"$We\"\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#ffffff\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#16171b\",\"media\":\"(prefers-color-scheme: dark)\"}]]\n"])</script><script>self.__next_f.push([1,"f:I[86869,[],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"CUELO\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Web view for the omp (oh-my-pi) coding agent\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"CUELO\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"4\",{\"name\":\"format-detection\",\"content\":\"telephone=no\"}],[\"$\",\"meta\",\"5\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"CUELO\"}],[\"$\",\"meta\",\"7\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?bcf2d9369cb3cf33\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/icons/icon-192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"10\",{\"rel\":\"apple-touch-icon\",\"href\":\"/icons/apple-touch-icon.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$Lf\",\"11\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en" translate="no" class="notranslate" data-seed="true"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="stylesheet" href="/_next/static/css/2f46e0db0d4a3aed.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/bbe00993de567f95.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4094d78ef0b4c382.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-1b03b52e3112452e.js" async=""></script><script src="/_next/static/chunks/main-app-fbc4aa3c15d48613.js" async=""></script><script src="/_next/static/chunks/app/layout-31a0bfeae1eece12.js" async=""></script><meta name="robots" content="noindex"/><meta name="google" content="notranslate"/><meta name="color-scheme" content="light dark"/><title>404: This page could not be found.</title><meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#16171b" media="(prefers-color-scheme: dark)"/><title>CUELO</title><meta name="description" content="Web view for the omp (oh-my-pi) coding agent"/><meta name="application-name" content="CUELO"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="format-detection" content="telephone=no"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="CUELO"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><link rel="icon" href="/favicon.ico?bcf2d9369cb3cf33" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/icons/icon-192.png" sizes="192x192" type="image/png"/><link rel="apple-touch-icon" href="/icons/apple-touch-icon.png" sizes="180x180" type="image/png"/><script>(function(){try{var s=localStorage,p=s.getItem("pi-theme");if(p!=="light"&&p!=="dark"&&p!=="auto"){p=s.getItem("omp-theme");if(p!=="light"&&p!=="dark")p="auto"}var m=p==="auto"?(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"):p,r=document.documentElement;r.dataset.ompThemeMode=m;r.setAttribute("data-seed-color-mode",m==="dark"?"dark-only":"light-only");r.classList.toggle("dark",m==="dark");for(var i=r.style.length-1;i>=0;i--){var n=r.style.item(i);if(n.indexOf("--")===0&&n.indexOf("--omp-md-")!==0)r.style.removeProperty(n)}var c=JSON.parse(s.getItem("omp-theme-config")||"null"),v=c&&c.palettes&&c.palettes[m];if(v&&v.variables){Object.keys(v.variables).forEach(function(k){if(k.indexOf("--omp-md-")===0)r.style.setProperty(k,v.variables[k])});r.dataset.ompThemeName=v.name}}catch(e){}})();</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body translate="no" class="notranslate"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-4094d78ef0b4c382.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[57788,[\"7177\",\"static/chunks/app/layout-31a0bfeae1eece12.js\"],\"PwaRegistration\"]\n5:I[90484,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[90484,[],\"ViewportBoundary\"]\nb:I[90484,[],\"MetadataBoundary\"]\nd:I[27123,[],\"default\",1]\n:HL[\"/_next/static/css/2f46e0db0d4a3aed.css\",\"style\"]\n:HL[\"/_next/static/css/bbe00993de567f95.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/2f46e0db0d4a3aed.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/bbe00993de567f95.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"translate\":\"no\",\"className\":\"notranslate\",\"data-seed\":true,\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"google\",\"content\":\"notranslate\"}],[\"$\",\"meta\",null,{\"name\":\"color-scheme\",\"content\":\"light dark\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var s=localStorage,p=s.getItem(\\\"pi-theme\\\");if(p!==\\\"light\\\"\u0026\u0026p!==\\\"dark\\\"\u0026\u0026p!==\\\"auto\\\"){p=s.getItem(\\\"omp-theme\\\");if(p!==\\\"light\\\"\u0026\u0026p!==\\\"dark\\\")p=\\\"auto\\\"}var m=p===\\\"auto\\\"?(window.matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches?\\\"dark\\\":\\\"light\\\"):p,r=document.documentElement;r.dataset.ompThemeMode=m;r.setAttribute(\\\"data-seed-color-mode\\\",m===\\\"dark\\\"?\\\"dark-only\\\":\\\"light-only\\\");r.classList.toggle(\\\"dark\\\",m===\\\"dark\\\");for(var i=r.style.length-1;i\u003e=0;i--){var n=r.style.item(i);if(n.indexOf(\\\"--\\\")===0\u0026\u0026n.indexOf(\\\"--omp-md-\\\")!==0)r.style.removeProperty(n)}var c=JSON.parse(s.getItem(\\\"omp-theme-config\\\")||\\\"null\\\"),v=c\u0026\u0026c.palettes\u0026\u0026c.palettes[m];if(v\u0026\u0026v.variables){Object.keys(v.variables).forEach(function(k){if(k.indexOf(\\\"--omp-md-\\\")===0)r.style.setProperty(k,v.variables[k])});r.dataset.ompThemeName=v.name}}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"translate\":\"no\",\"className\":\"notranslate\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$@8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"zqQ2BdsFkwRQpfXpTFeIx\"}\n"])</script><script>self.__next_f.push([1,"e:[]\n8:\"$We\"\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#ffffff\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#16171b\",\"media\":\"(prefers-color-scheme: dark)\"}]]\n"])</script><script>self.__next_f.push([1,"f:I[86869,[],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"CUELO\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Web view for the omp (oh-my-pi) coding agent\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"CUELO\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"4\",{\"name\":\"format-detection\",\"content\":\"telephone=no\"}],[\"$\",\"meta\",\"5\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"6\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"CUELO\"}],[\"$\",\"meta\",\"7\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?bcf2d9369cb3cf33\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/icons/icon-192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"10\",{\"rel\":\"apple-touch-icon\",\"href\":\"/icons/apple-touch-icon.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$Lf\",\"11\",{}]]\n"])</script></body></html>