cuelo 0.9.0 → 0.9.1

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 (395) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +11 -8
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +4 -2
  6. package/.next/required-server-files.json +4 -2
  7. package/.next/routes-manifest.json +20 -0
  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]/account/route.js.nft.json +1 -1
  30. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  31. package/.next/server/app/api/agent/[id]/bash-output/route.js.nft.json +1 -1
  32. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  33. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
  34. package/.next/server/app/api/agent/[id]/route.js +1 -1
  35. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
  36. package/.next/server/app/api/agent/new/route.js +1 -1
  37. package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
  38. package/.next/server/app/api/agent/running/route.js +1 -1
  39. package/.next/server/app/api/agent/running/route.js.nft.json +1 -1
  40. package/.next/server/app/api/attachment-settings/route.js +1 -0
  41. package/.next/server/app/api/attachment-settings/route.js.nft.json +1 -0
  42. package/.next/server/app/api/attachment-settings/route_client-reference-manifest.js +1 -0
  43. package/.next/server/app/api/attachments/[id]/transcription/route.js +2 -0
  44. package/.next/server/app/api/attachments/[id]/transcription/route.js.nft.json +1 -0
  45. package/.next/server/app/api/attachments/[id]/transcription/route_client-reference-manifest.js +1 -0
  46. package/.next/server/app/api/attachments/draft/route.js +1 -0
  47. package/.next/server/app/api/attachments/draft/route.js.nft.json +1 -0
  48. package/.next/server/app/api/attachments/draft/route_client-reference-manifest.js +1 -0
  49. package/.next/server/app/api/attachments/route.js +28 -5
  50. package/.next/server/app/api/attachments/route.js.nft.json +1 -1
  51. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  52. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  53. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  54. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  55. package/.next/server/app/api/auth/providers/route.js +1 -1
  56. package/.next/server/app/api/cwd/browse/route.js +1 -1
  57. package/.next/server/app/api/cwd/validate/route.js +1 -1
  58. package/.next/server/app/api/cwd/validate/route.js.nft.json +1 -1
  59. package/.next/server/app/api/default-cwd/route.js +1 -1
  60. package/.next/server/app/api/default-cwd/route.js.nft.json +1 -1
  61. package/.next/server/app/api/display-settings/route.js +1 -1
  62. package/.next/server/app/api/display-settings/route.js.nft.json +1 -1
  63. package/.next/server/app/api/document-text/route.js +4 -4
  64. package/.next/server/app/api/experiments/route.js +1 -1
  65. package/.next/server/app/api/file-index/route.js +1 -1
  66. package/.next/server/app/api/file-index/route.js.nft.json +1 -1
  67. package/.next/server/app/api/files/[...path]/route.js +2 -2
  68. package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -1
  69. package/.next/server/app/api/git/diff/route.js +2 -2
  70. package/.next/server/app/api/git/diff/route.js.nft.json +1 -1
  71. package/.next/server/app/api/git/status/route.js +2 -2
  72. package/.next/server/app/api/git/status/route.js.nft.json +1 -1
  73. package/.next/server/app/api/gpt6/handles/route.js +1 -1
  74. package/.next/server/app/api/gpt6/handles/route.js.nft.json +1 -1
  75. package/.next/server/app/api/gpt6/reply/route.js +1 -1
  76. package/.next/server/app/api/gpt6/reply/route.js.nft.json +1 -1
  77. package/.next/server/app/api/gpt6/token/route.js +1 -1
  78. package/.next/server/app/api/gpt6/token/route.js.nft.json +1 -1
  79. package/.next/server/app/api/gpt6/web6-session/route.js +1 -1
  80. package/.next/server/app/api/gpt6/web6-session/route.js.nft.json +1 -1
  81. package/.next/server/app/api/home/route.js +1 -1
  82. package/.next/server/app/api/live/call/[callId]/route.js +1 -1
  83. package/.next/server/app/api/live/call/[callId]/route.js.nft.json +1 -1
  84. package/.next/server/app/api/live/character-voice/route.js +1 -1
  85. package/.next/server/app/api/live/character-voice/route.js.nft.json +1 -1
  86. package/.next/server/app/api/live/events/route.js +2 -2
  87. package/.next/server/app/api/live/events/route.js.nft.json +1 -1
  88. package/.next/server/app/api/live/offer/route.js +1 -1
  89. package/.next/server/app/api/live/offer/route.js.nft.json +1 -1
  90. package/.next/server/app/api/live/voices/route.js +1 -1
  91. package/.next/server/app/api/live/voices/route.js.nft.json +1 -1
  92. package/.next/server/app/api/lounge/events/route.js +2 -2
  93. package/.next/server/app/api/lounge/events/route.js.nft.json +1 -1
  94. package/.next/server/app/api/lounge/route.js +1 -1
  95. package/.next/server/app/api/lounge/route.js.nft.json +1 -1
  96. package/.next/server/app/api/mcp/route.js +2 -2
  97. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  98. package/.next/server/app/api/model-roles/route.js +1 -1
  99. package/.next/server/app/api/model-roles/route.js.nft.json +1 -1
  100. package/.next/server/app/api/models/route.js +1 -1
  101. package/.next/server/app/api/models/route.js.nft.json +1 -1
  102. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  103. package/.next/server/app/api/models-config/discover/route.js +1 -1
  104. package/.next/server/app/api/models-config/route.js +4 -4
  105. package/.next/server/app/api/models-config/test/route.js +1 -1
  106. package/.next/server/app/api/office-avatars/[id]/route.js +1 -1
  107. package/.next/server/app/api/office-avatars/route.js +1 -1
  108. package/.next/server/app/api/plugins/route.js +1 -1
  109. package/.next/server/app/api/plugins/route.js.nft.json +1 -1
  110. package/.next/server/app/api/project-trust/route.js +1 -1
  111. package/.next/server/app/api/project-trust/route.js.nft.json +1 -1
  112. package/.next/server/app/api/projects/route.js +1 -1
  113. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  114. package/.next/server/app/api/runs/[runId]/route.js +1 -1
  115. package/.next/server/app/api/runs/route.js +1 -1
  116. package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
  117. package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -1
  118. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  119. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
  120. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
  121. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js.nft.json +1 -1
  122. package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
  123. package/.next/server/app/api/sessions/[id]/export/route.js.nft.json +1 -1
  124. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  125. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  126. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  127. package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -1
  128. package/.next/server/app/api/sessions/route.js +1 -1
  129. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  130. package/.next/server/app/api/sessions/search/route.js +1 -1
  131. package/.next/server/app/api/sessions/search/route.js.nft.json +1 -1
  132. package/.next/server/app/api/settings/route.js +1 -1
  133. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  134. package/.next/server/app/api/sidecars/[service]/[...path]/route.js +1 -1
  135. package/.next/server/app/api/skills/check/route.js +1 -1
  136. package/.next/server/app/api/skills/check/route.js.nft.json +1 -1
  137. package/.next/server/app/api/skills/install/route.js +2 -2
  138. package/.next/server/app/api/skills/install/route.js.nft.json +1 -1
  139. package/.next/server/app/api/skills/route.js +2 -2
  140. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  141. package/.next/server/app/api/skills/search/route.js +1 -1
  142. package/.next/server/app/api/skills/update/route.js +1 -1
  143. package/.next/server/app/api/skills/update/route.js.nft.json +1 -1
  144. package/.next/server/app/api/theme/route.js +1 -1
  145. package/.next/server/app/api/theme/route.js.nft.json +1 -1
  146. package/.next/server/app/api/tool-image/route.js +1 -1
  147. package/.next/server/app/api/tool-image/route.js.nft.json +1 -1
  148. package/.next/server/app/api/update-maintenance/route.js +3 -3
  149. package/.next/server/app/api/update-maintenance/route.js.nft.json +1 -1
  150. package/.next/server/app/api/updates/route.js +1 -1
  151. package/.next/server/app/api/web-access/recovery/route.js +1 -1
  152. package/.next/server/app/api/web-access/route.js +1 -1
  153. package/.next/server/app/api/web6/consults/route.js +1 -1
  154. package/.next/server/app/api/worktrees/route.js +1 -1
  155. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  156. package/.next/server/app/favicon.ico/route.js +1 -1
  157. package/.next/server/app/index.html +1 -1
  158. package/.next/server/app/index.rsc +5 -5
  159. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  160. package/.next/server/app/index.segments/_full.segment.rsc +5 -5
  161. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  162. package/.next/server/app/index.segments/_index.segment.rsc +3 -3
  163. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  164. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  165. package/.next/server/app/office/page.js +2 -2
  166. package/.next/server/app/office/page_client-reference-manifest.js +1 -1
  167. package/.next/server/app/office-preview/page.js +2 -2
  168. package/.next/server/app/office-preview/page_client-reference-manifest.js +1 -1
  169. package/.next/server/app/office-preview.html +1 -1
  170. package/.next/server/app/office-preview.rsc +3 -3
  171. package/.next/server/app/office-preview.segments/_full.segment.rsc +3 -3
  172. package/.next/server/app/office-preview.segments/_head.segment.rsc +1 -1
  173. package/.next/server/app/office-preview.segments/_index.segment.rsc +3 -3
  174. package/.next/server/app/office-preview.segments/_tree.segment.rsc +2 -2
  175. package/.next/server/app/office-preview.segments/office-preview/__PAGE__.segment.rsc +1 -1
  176. package/.next/server/app/office-preview.segments/office-preview.segment.rsc +1 -1
  177. package/.next/server/app/office.html +1 -1
  178. package/.next/server/app/office.rsc +5 -5
  179. package/.next/server/app/office.segments/_full.segment.rsc +5 -5
  180. package/.next/server/app/office.segments/_head.segment.rsc +1 -1
  181. package/.next/server/app/office.segments/_index.segment.rsc +3 -3
  182. package/.next/server/app/office.segments/_tree.segment.rsc +2 -2
  183. package/.next/server/app/office.segments/office/__PAGE__.segment.rsc +3 -3
  184. package/.next/server/app/office.segments/office.segment.rsc +1 -1
  185. package/.next/server/app/page.js +2 -2
  186. package/.next/server/app/page_client-reference-manifest.js +1 -1
  187. package/.next/server/app/recover/page.js +2 -2
  188. package/.next/server/app/recover/page_client-reference-manifest.js +1 -1
  189. package/.next/server/app/recover.html +1 -1
  190. package/.next/server/app/recover.rsc +3 -3
  191. package/.next/server/app/recover.segments/_full.segment.rsc +3 -3
  192. package/.next/server/app/recover.segments/_head.segment.rsc +1 -1
  193. package/.next/server/app/recover.segments/_index.segment.rsc +3 -3
  194. package/.next/server/app/recover.segments/_tree.segment.rsc +2 -2
  195. package/.next/server/app/recover.segments/recover/__PAGE__.segment.rsc +1 -1
  196. package/.next/server/app/recover.segments/recover.segment.rsc +1 -1
  197. package/.next/server/app-paths-manifest.json +11 -8
  198. package/.next/server/chunks/1517.js +1 -1
  199. package/.next/server/chunks/2651.js +1 -1
  200. package/.next/server/chunks/4649.js +1 -1
  201. package/.next/server/chunks/5270.js +8 -0
  202. package/.next/server/chunks/5489.js +14 -14
  203. package/.next/server/chunks/5582.js +6 -6
  204. package/.next/server/chunks/7121.js +4 -0
  205. package/.next/server/chunks/7362.js +1 -1
  206. package/.next/server/chunks/8741.js +1 -0
  207. package/.next/server/chunks/877.js +1 -1
  208. package/.next/server/functions-config-manifest.json +9 -2
  209. package/.next/server/instrumentation.js +1 -0
  210. package/.next/server/instrumentation.js.nft.json +1 -0
  211. package/.next/server/middleware-build-manifest.js +1 -1
  212. package/.next/server/middleware.js +4 -4
  213. package/.next/server/pages/404.html +1 -1
  214. package/.next/server/pages/500.html +1 -1
  215. package/.next/server/server-reference-manifest.json +1 -1
  216. package/.next/static/A-KXZPM3YkTqPPzKrND64/_buildManifest.js +1 -0
  217. package/.next/static/chunks/6110-691c0f77641fc07e.js +1 -0
  218. package/.next/static/chunks/9575-916cd5a97ceda30f.js +22 -0
  219. package/.next/static/chunks/app/_global-error/page-6b1496af498bb4fd.js +1 -0
  220. package/.next/static/chunks/app/api/agent/[id]/account/route-6b1496af498bb4fd.js +1 -0
  221. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-6b1496af498bb4fd.js +1 -0
  222. package/.next/static/chunks/app/api/agent/[id]/events/route-6b1496af498bb4fd.js +1 -0
  223. package/.next/static/chunks/app/api/agent/[id]/route-6b1496af498bb4fd.js +1 -0
  224. package/.next/static/chunks/app/api/agent/new/route-6b1496af498bb4fd.js +1 -0
  225. package/.next/static/chunks/app/api/agent/running/route-6b1496af498bb4fd.js +1 -0
  226. package/.next/static/chunks/app/api/attachment-settings/route-6b1496af498bb4fd.js +1 -0
  227. package/.next/static/chunks/app/api/attachments/[id]/transcription/route-6b1496af498bb4fd.js +1 -0
  228. package/.next/static/chunks/app/api/attachments/draft/route-6b1496af498bb4fd.js +1 -0
  229. package/.next/static/chunks/app/api/attachments/route-6b1496af498bb4fd.js +1 -0
  230. package/.next/static/chunks/app/api/auth/all-providers/route-6b1496af498bb4fd.js +1 -0
  231. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-6b1496af498bb4fd.js +1 -0
  232. package/.next/static/chunks/app/api/auth/login/[provider]/route-6b1496af498bb4fd.js +1 -0
  233. package/.next/static/chunks/app/api/auth/logout/[provider]/route-6b1496af498bb4fd.js +1 -0
  234. package/.next/static/chunks/app/api/auth/providers/route-6b1496af498bb4fd.js +1 -0
  235. package/.next/static/chunks/app/api/cwd/browse/route-6b1496af498bb4fd.js +1 -0
  236. package/.next/static/chunks/app/api/cwd/validate/route-6b1496af498bb4fd.js +1 -0
  237. package/.next/static/chunks/app/api/default-cwd/route-6b1496af498bb4fd.js +1 -0
  238. package/.next/static/chunks/app/api/display-settings/route-6b1496af498bb4fd.js +1 -0
  239. package/.next/static/chunks/app/api/document-text/route-6b1496af498bb4fd.js +1 -0
  240. package/.next/static/chunks/app/api/experiments/route-6b1496af498bb4fd.js +1 -0
  241. package/.next/static/chunks/app/api/file-index/route-6b1496af498bb4fd.js +1 -0
  242. package/.next/static/chunks/app/api/files/[...path]/route-6b1496af498bb4fd.js +1 -0
  243. package/.next/static/chunks/app/api/git/diff/route-6b1496af498bb4fd.js +1 -0
  244. package/.next/static/chunks/app/api/git/status/route-6b1496af498bb4fd.js +1 -0
  245. package/.next/static/chunks/app/api/gpt6/handles/route-6b1496af498bb4fd.js +1 -0
  246. package/.next/static/chunks/app/api/gpt6/reply/route-6b1496af498bb4fd.js +1 -0
  247. package/.next/static/chunks/app/api/gpt6/token/route-6b1496af498bb4fd.js +1 -0
  248. package/.next/static/chunks/app/api/gpt6/web6-session/route-6b1496af498bb4fd.js +1 -0
  249. package/.next/static/chunks/app/api/home/route-6b1496af498bb4fd.js +1 -0
  250. package/.next/static/chunks/app/api/live/call/[callId]/route-6b1496af498bb4fd.js +1 -0
  251. package/.next/static/chunks/app/api/live/character-voice/route-6b1496af498bb4fd.js +1 -0
  252. package/.next/static/chunks/app/api/live/events/route-6b1496af498bb4fd.js +1 -0
  253. package/.next/static/chunks/app/api/live/offer/route-6b1496af498bb4fd.js +1 -0
  254. package/.next/static/chunks/app/api/live/voices/route-6b1496af498bb4fd.js +1 -0
  255. package/.next/static/chunks/app/api/lounge/events/route-6b1496af498bb4fd.js +1 -0
  256. package/.next/static/chunks/app/api/lounge/route-6b1496af498bb4fd.js +1 -0
  257. package/.next/static/chunks/app/api/mcp/route-6b1496af498bb4fd.js +1 -0
  258. package/.next/static/chunks/app/api/model-roles/route-6b1496af498bb4fd.js +1 -0
  259. package/.next/static/chunks/app/api/models/route-6b1496af498bb4fd.js +1 -0
  260. package/.next/static/chunks/app/api/models-config/catalog/route-6b1496af498bb4fd.js +1 -0
  261. package/.next/static/chunks/app/api/models-config/discover/route-6b1496af498bb4fd.js +1 -0
  262. package/.next/static/chunks/app/api/models-config/route-6b1496af498bb4fd.js +1 -0
  263. package/.next/static/chunks/app/api/models-config/test/route-6b1496af498bb4fd.js +1 -0
  264. package/.next/static/chunks/app/api/office-avatars/[id]/route-6b1496af498bb4fd.js +1 -0
  265. package/.next/static/chunks/app/api/office-avatars/route-6b1496af498bb4fd.js +1 -0
  266. package/.next/static/chunks/app/api/plugins/route-6b1496af498bb4fd.js +1 -0
  267. package/.next/static/chunks/app/api/project-trust/route-6b1496af498bb4fd.js +1 -0
  268. package/.next/static/chunks/app/api/projects/route-6b1496af498bb4fd.js +1 -0
  269. package/.next/static/chunks/app/api/runs/[runId]/route-6b1496af498bb4fd.js +1 -0
  270. package/.next/static/chunks/app/api/runs/route-6b1496af498bb4fd.js +1 -0
  271. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-6b1496af498bb4fd.js +1 -0
  272. package/.next/static/chunks/app/api/sessions/[id]/context/route-6b1496af498bb4fd.js +1 -0
  273. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-6b1496af498bb4fd.js +1 -0
  274. package/.next/static/chunks/app/api/sessions/[id]/export/route-6b1496af498bb4fd.js +1 -0
  275. package/.next/static/chunks/app/api/sessions/[id]/route-6b1496af498bb4fd.js +1 -0
  276. package/.next/static/chunks/app/api/sessions/[id]/state/route-6b1496af498bb4fd.js +1 -0
  277. package/.next/static/chunks/app/api/sessions/route-6b1496af498bb4fd.js +1 -0
  278. package/.next/static/chunks/app/api/sessions/search/route-6b1496af498bb4fd.js +1 -0
  279. package/.next/static/chunks/app/api/settings/route-6b1496af498bb4fd.js +1 -0
  280. package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-6b1496af498bb4fd.js +1 -0
  281. package/.next/static/chunks/app/api/skills/check/route-6b1496af498bb4fd.js +1 -0
  282. package/.next/static/chunks/app/api/skills/install/route-6b1496af498bb4fd.js +1 -0
  283. package/.next/static/chunks/app/api/skills/route-6b1496af498bb4fd.js +1 -0
  284. package/.next/static/chunks/app/api/skills/search/route-6b1496af498bb4fd.js +1 -0
  285. package/.next/static/chunks/app/api/skills/update/route-6b1496af498bb4fd.js +1 -0
  286. package/.next/static/chunks/app/api/theme/route-6b1496af498bb4fd.js +1 -0
  287. package/.next/static/chunks/app/api/tool-image/route-6b1496af498bb4fd.js +1 -0
  288. package/.next/static/chunks/app/api/update-maintenance/route-6b1496af498bb4fd.js +1 -0
  289. package/.next/static/chunks/app/api/updates/route-6b1496af498bb4fd.js +1 -0
  290. package/.next/static/chunks/app/api/web-access/recovery/route-6b1496af498bb4fd.js +1 -0
  291. package/.next/static/chunks/app/api/web-access/route-6b1496af498bb4fd.js +1 -0
  292. package/.next/static/chunks/app/api/web6/consults/route-6b1496af498bb4fd.js +1 -0
  293. package/.next/static/chunks/app/api/worktrees/route-6b1496af498bb4fd.js +1 -0
  294. package/.next/static/chunks/app/{layout-3adbfd44301cba82.js → layout-eb09a412f4f55812.js} +1 -1
  295. package/.next/static/chunks/app/manifest.webmanifest/route-6b1496af498bb4fd.js +1 -0
  296. package/.next/static/chunks/{main-2603b128da53b28c.js → main-26b32c580fb6231f.js} +3 -3
  297. package/.next/static/chunks/next/dist/client/components/builtin/app-error-6b1496af498bb4fd.js +1 -0
  298. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-6b1496af498bb4fd.js +1 -0
  299. package/.next/static/chunks/next/dist/client/components/builtin/not-found-6b1496af498bb4fd.js +1 -0
  300. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6b1496af498bb4fd.js +1 -0
  301. package/.next/static/css/81a05eb6255ef12e.css +1 -0
  302. package/.next/trace +107 -107
  303. package/.next/trace-build +1 -1
  304. package/.next/types/app/api/attachment-settings/route.ts +351 -0
  305. package/.next/types/app/api/attachments/[id]/transcription/route.ts +351 -0
  306. package/.next/types/app/api/attachments/draft/route.ts +351 -0
  307. package/.next/types/routes.d.ts +4 -1
  308. package/.next/types/validator.ts +27 -0
  309. package/README.md +2 -1
  310. package/Tools/CUELO_Setup/files/native-runtime-patch.js +1 -1
  311. package/Tools/OMP_Global_Config/patches/apply-core-patch.mjs +81 -0
  312. package/next.config.ts +1 -0
  313. package/package.json +4 -1
  314. package/.next/static/chunks/6110-dffa6a7b1ada31e6.js +0 -1
  315. package/.next/static/chunks/9575-09e3873e0ee5ecfc.js +0 -22
  316. package/.next/static/chunks/app/_global-error/page-b73c548944bb1320.js +0 -1
  317. package/.next/static/chunks/app/api/agent/[id]/account/route-b73c548944bb1320.js +0 -1
  318. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-b73c548944bb1320.js +0 -1
  319. package/.next/static/chunks/app/api/agent/[id]/events/route-b73c548944bb1320.js +0 -1
  320. package/.next/static/chunks/app/api/agent/[id]/route-b73c548944bb1320.js +0 -1
  321. package/.next/static/chunks/app/api/agent/new/route-b73c548944bb1320.js +0 -1
  322. package/.next/static/chunks/app/api/agent/running/route-b73c548944bb1320.js +0 -1
  323. package/.next/static/chunks/app/api/attachments/route-b73c548944bb1320.js +0 -1
  324. package/.next/static/chunks/app/api/auth/all-providers/route-b73c548944bb1320.js +0 -1
  325. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-b73c548944bb1320.js +0 -1
  326. package/.next/static/chunks/app/api/auth/login/[provider]/route-b73c548944bb1320.js +0 -1
  327. package/.next/static/chunks/app/api/auth/logout/[provider]/route-b73c548944bb1320.js +0 -1
  328. package/.next/static/chunks/app/api/auth/providers/route-b73c548944bb1320.js +0 -1
  329. package/.next/static/chunks/app/api/cwd/browse/route-b73c548944bb1320.js +0 -1
  330. package/.next/static/chunks/app/api/cwd/validate/route-b73c548944bb1320.js +0 -1
  331. package/.next/static/chunks/app/api/default-cwd/route-b73c548944bb1320.js +0 -1
  332. package/.next/static/chunks/app/api/display-settings/route-b73c548944bb1320.js +0 -1
  333. package/.next/static/chunks/app/api/document-text/route-b73c548944bb1320.js +0 -1
  334. package/.next/static/chunks/app/api/experiments/route-b73c548944bb1320.js +0 -1
  335. package/.next/static/chunks/app/api/file-index/route-b73c548944bb1320.js +0 -1
  336. package/.next/static/chunks/app/api/files/[...path]/route-b73c548944bb1320.js +0 -1
  337. package/.next/static/chunks/app/api/git/diff/route-b73c548944bb1320.js +0 -1
  338. package/.next/static/chunks/app/api/git/status/route-b73c548944bb1320.js +0 -1
  339. package/.next/static/chunks/app/api/gpt6/handles/route-b73c548944bb1320.js +0 -1
  340. package/.next/static/chunks/app/api/gpt6/reply/route-b73c548944bb1320.js +0 -1
  341. package/.next/static/chunks/app/api/gpt6/token/route-b73c548944bb1320.js +0 -1
  342. package/.next/static/chunks/app/api/gpt6/web6-session/route-b73c548944bb1320.js +0 -1
  343. package/.next/static/chunks/app/api/home/route-b73c548944bb1320.js +0 -1
  344. package/.next/static/chunks/app/api/live/call/[callId]/route-b73c548944bb1320.js +0 -1
  345. package/.next/static/chunks/app/api/live/character-voice/route-b73c548944bb1320.js +0 -1
  346. package/.next/static/chunks/app/api/live/events/route-b73c548944bb1320.js +0 -1
  347. package/.next/static/chunks/app/api/live/offer/route-b73c548944bb1320.js +0 -1
  348. package/.next/static/chunks/app/api/live/voices/route-b73c548944bb1320.js +0 -1
  349. package/.next/static/chunks/app/api/lounge/events/route-b73c548944bb1320.js +0 -1
  350. package/.next/static/chunks/app/api/lounge/route-b73c548944bb1320.js +0 -1
  351. package/.next/static/chunks/app/api/mcp/route-b73c548944bb1320.js +0 -1
  352. package/.next/static/chunks/app/api/model-roles/route-b73c548944bb1320.js +0 -1
  353. package/.next/static/chunks/app/api/models/route-b73c548944bb1320.js +0 -1
  354. package/.next/static/chunks/app/api/models-config/catalog/route-b73c548944bb1320.js +0 -1
  355. package/.next/static/chunks/app/api/models-config/discover/route-b73c548944bb1320.js +0 -1
  356. package/.next/static/chunks/app/api/models-config/route-b73c548944bb1320.js +0 -1
  357. package/.next/static/chunks/app/api/models-config/test/route-b73c548944bb1320.js +0 -1
  358. package/.next/static/chunks/app/api/office-avatars/[id]/route-b73c548944bb1320.js +0 -1
  359. package/.next/static/chunks/app/api/office-avatars/route-b73c548944bb1320.js +0 -1
  360. package/.next/static/chunks/app/api/plugins/route-b73c548944bb1320.js +0 -1
  361. package/.next/static/chunks/app/api/project-trust/route-b73c548944bb1320.js +0 -1
  362. package/.next/static/chunks/app/api/projects/route-b73c548944bb1320.js +0 -1
  363. package/.next/static/chunks/app/api/runs/[runId]/route-b73c548944bb1320.js +0 -1
  364. package/.next/static/chunks/app/api/runs/route-b73c548944bb1320.js +0 -1
  365. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-b73c548944bb1320.js +0 -1
  366. package/.next/static/chunks/app/api/sessions/[id]/context/route-b73c548944bb1320.js +0 -1
  367. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-b73c548944bb1320.js +0 -1
  368. package/.next/static/chunks/app/api/sessions/[id]/export/route-b73c548944bb1320.js +0 -1
  369. package/.next/static/chunks/app/api/sessions/[id]/route-b73c548944bb1320.js +0 -1
  370. package/.next/static/chunks/app/api/sessions/[id]/state/route-b73c548944bb1320.js +0 -1
  371. package/.next/static/chunks/app/api/sessions/route-b73c548944bb1320.js +0 -1
  372. package/.next/static/chunks/app/api/sessions/search/route-b73c548944bb1320.js +0 -1
  373. package/.next/static/chunks/app/api/settings/route-b73c548944bb1320.js +0 -1
  374. package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-b73c548944bb1320.js +0 -1
  375. package/.next/static/chunks/app/api/skills/check/route-b73c548944bb1320.js +0 -1
  376. package/.next/static/chunks/app/api/skills/install/route-b73c548944bb1320.js +0 -1
  377. package/.next/static/chunks/app/api/skills/route-b73c548944bb1320.js +0 -1
  378. package/.next/static/chunks/app/api/skills/search/route-b73c548944bb1320.js +0 -1
  379. package/.next/static/chunks/app/api/skills/update/route-b73c548944bb1320.js +0 -1
  380. package/.next/static/chunks/app/api/theme/route-b73c548944bb1320.js +0 -1
  381. package/.next/static/chunks/app/api/tool-image/route-b73c548944bb1320.js +0 -1
  382. package/.next/static/chunks/app/api/update-maintenance/route-b73c548944bb1320.js +0 -1
  383. package/.next/static/chunks/app/api/updates/route-b73c548944bb1320.js +0 -1
  384. package/.next/static/chunks/app/api/web-access/recovery/route-b73c548944bb1320.js +0 -1
  385. package/.next/static/chunks/app/api/web-access/route-b73c548944bb1320.js +0 -1
  386. package/.next/static/chunks/app/api/web6/consults/route-b73c548944bb1320.js +0 -1
  387. package/.next/static/chunks/app/api/worktrees/route-b73c548944bb1320.js +0 -1
  388. package/.next/static/chunks/app/manifest.webmanifest/route-b73c548944bb1320.js +0 -1
  389. package/.next/static/chunks/next/dist/client/components/builtin/app-error-b73c548944bb1320.js +0 -1
  390. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b73c548944bb1320.js +0 -1
  391. package/.next/static/chunks/next/dist/client/components/builtin/not-found-b73c548944bb1320.js +0 -1
  392. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b73c548944bb1320.js +0 -1
  393. package/.next/static/css/1a4cea7126dfb757.css +0 -1
  394. package/.next/static/do0UuZKXEeG2rQnEL-f1I/_buildManifest.js +0 -1
  395. /package/.next/static/{do0UuZKXEeG2rQnEL-f1I → A-KXZPM3YkTqPPzKrND64}/_ssgManifest.js +0 -0
@@ -1,9 +1,9 @@
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
- --- Begin attached document ${o+1}: ${JSON.stringify(p.name)} (${p.mimeType}, ${p.size} bytes) ---
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,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:()=>D,DK:()=>F,O5:()=>u,O8:()=>C,Uv:()=>I,dQ:()=>K,eP:()=>E,mD:()=>x,os:()=>A,u1:()=>B,wb:()=>w,zH:()=>t});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=c(77356),s=a([e,f,g,j,k]);async function t(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 u(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))}[e,f,g,j,k]=s.then?(await s)():s;let N="(no messages)";async function v(){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=>{C(a.id,a.path);let c=function(a){if(a.firstMessage&&a.firstMessage!==N)return a.firstMessage;if(!(a.size>4096))return null;let b=a.modified instanceof Date?a.modified:new Date(String(a.modified)),c=globalThis.__ompSessionFirstMessageCache??=new Map,d=(0,m.$)(a.path),e=c.get(d);if(e&&e.mtimeMs===b.getTime()&&e.size===a.size)return e.text;let f=function(a){let b;try{b=(0,h.openSync)(a,"r");let d=new TextDecoder,e=Buffer.alloc(65536),f="",g=0;for(;g<1048576;){let a=(0,h.readSync)(b,e,0,e.length,g);if(a<=0)break;g+=a;let i=(f+=d.decode(e.subarray(0,a),{stream:!0})).split("\n");for(let a of(f=i.pop()??"",i)){var c;let b;if(!a.includes('"role":"user"'))continue;try{b=JSON.parse(a)}catch{continue}if(!b||"object"!=typeof b||!("type"in b)||"message"!==b.type||!("message"in b))continue;let d=b.message;if(!d||"object"!=typeof d||!("role"in d)||"user"!==d.role)continue;let e=(c="content"in d?d.content:void 0,"string"==typeof c?c.trim():Array.isArray(c)?c.map(a=>a&&"object"==typeof a&&"type"in a&&"text"===a.type&&"text"in a&&"string"==typeof a.text?a.text:"").filter(Boolean).join(" ").trim():"");if(e)return e}}return null}catch{return null}finally{void 0!==b&&(0,h.closeSync)(b)}}(a.path);return c.set(d,{mtimeMs:b.getTime(),size:a.size,text:f}),f}(a);return{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:c?Math.max(a.messageCount,1):a.messageCount,firstMessage:(0,o.we)(c??"")||N,parentSessionId:a.parentSessionPath?b.get((0,m.$)(a.parentSessionPath)):void 0,transient:!1}});return t(c)}async function w(a={}){a.force&&x();let b=globalThis.__ompSessionListGeneration??0;if(globalThis.__ompSessionListCache&&Date.now()-globalThis.__ompSessionListCache.ts<O)return globalThis.__ompSessionListCache.data;if(globalThis.__ompSessionListPromise&&globalThis.__ompSessionListPromiseGeneration===b)return globalThis.__ompSessionListPromise;let c=v().then(a=>(globalThis.__ompSessionListGeneration??0)!==b?w():(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}let O=3e4;function x(){globalThis.__ompSessionListGeneration=(globalThis.__ompSessionListGeneration??0)+1,globalThis.__ompSessionListCache=void 0}function y(){return globalThis.__ompSessionPathCache||(globalThis.__ompSessionPathCache=new Map),globalThis.__ompSessionPathCache}function z(){return globalThis.__ompPathToSessionIdCache||(globalThis.__ompPathToSessionIdCache=new Map),globalThis.__ompPathToSessionIdCache}async function A(a){let b=y().get(a);return b&&(0,h.existsSync)(b)?b:(b&&D(a),await w(),y().get(a)??null)}async function B(a){let b=(0,m.$)(a),c=z().get(b);return c||(await w(),z().get(b))}function C(a,b){let c=(0,i.normalize)(b),d=(0,m.$)(c),e=y(),f=z(),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 D(a){let b=y(),c=z(),d=b.get(a);b.delete(a);let e=d?(0,m.$)(d):void 0;e&&c.get(e)===a&&c.delete(e)}function E(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 F(a){return(await e.SessionManager.open(a)).getEntries()}function G(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 H(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 I(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=G(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(!M(a)||"image"!==a.type||("string"==typeof a.data?(b=a.data,c="string"==typeof a.mimeType?a.mimeType:void 0):M(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:L(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:*
1
+ exports.id=5582,exports.ids=[5582,8741],exports.modules={1060:(a,b,c)=>{"use strict";c.d(b,{Ac:()=>n,GO:()=>j,X:()=>l,_4:()=>d,cV:()=>k,jL:()=>f,kv:()=>e,oC:()=>m});let d=262144,e=0xa00000,f=0xa00000,g={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},h={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm",webm:"audio/webm"},i={pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};function j(a){return(a.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function k(a){return g[j(a)]??null}function l(a){return h[j(a)]??null}function m(a){return i[j(a)]??null}function n(a){let b=j(a);return"pdf"===b||"docx"===b?b:null}},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:()=>l,Ly:()=>j,Qw:()=>d,YC:()=>i,e6:()=>f,iH:()=>e,we:()=>m});let d=8388608,e=12e4,f=250,g=/^att_[0-9a-f]{32}$/,h=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function i(a){return"string"==typeof a&&g.test(a)}function j(a){return"string"==typeof a&&h.test(a)}let k={".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 l(a){let b=a.name.toLocaleLowerCase(),c=b.lastIndexOf("."),d=c>0?k[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 m(a){return function(a){let b;if(!a.startsWith(n))return null;let c=a.indexOf("\n");if(c<0)return null;let f=a.slice(0,c);if(!f.endsWith(o))return null;try{b=JSON.parse(f.slice(n.length,-o.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(p,g))return null;let h=(g+=p.length)+b.userMessageLength;if(h>a.length)return null;let i=a.slice(g,h);if(g=h,!a.startsWith(q,g))return null;g+=q.length;let j=[];for(let c=0;c<b.documents.length;c+=1){var k,l,m;let d=b.documents[c],e=(k=c,l=d,`
2
+ --- Begin attached document ${k+1}: ${JSON.stringify(l.name)} (${l.mimeType}, ${l.size} bytes) ---
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=(m=c,`
4
+ --- End attached document ${m+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 n="\x3c!-- omp-web-document-context-v1:",o=" --\x3e",p="User message:\n",q="\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:()=>F,DK:()=>H,O5:()=>w,O8:()=>E,Uv:()=>K,dQ:()=>M,eP:()=>G,mD:()=>z,os:()=>C,u1:()=>D,wb:()=>y,zH:()=>v});var e=c(92582),f=c(48331),g=c(5969),h=c(29021),i=c(33873),j=c(92868),k=c(53739),l=c(40575),m=c(38741),n=c(12039),o=c(45902),p=c(24923),q=c(36208),r=c(87576),s=c(85821),t=c(77356),u=a([e,f,g,k,l,m]);async function v(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,p.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 w(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))}[e,f,g,k,l,m]=u.then?(await u)():u;let Q="(no messages)";async function x(){let a=await e.SessionManager.listAll(),b=new Map;for(let c of a)b.set((0,o.$)(c.path),c.id);let c=a.map(a=>{E(a.id,a.path);let c=function(a){if(a.firstMessage&&a.firstMessage!==Q)return a.firstMessage;if(!(a.size>4096))return null;let b=a.modified instanceof Date?a.modified:new Date(String(a.modified)),c=globalThis.__ompSessionFirstMessageCache??=new Map,d=(0,o.$)(a.path),e=c.get(d);if(e&&e.mtimeMs===b.getTime()&&e.size===a.size)return e.text;let f=function(a){let b;try{b=(0,h.openSync)(a,"r");let d=new TextDecoder,e=Buffer.alloc(65536),f="",g=0;for(;g<1048576;){let a=(0,h.readSync)(b,e,0,e.length,g);if(a<=0)break;g+=a;let i=(f+=d.decode(e.subarray(0,a),{stream:!0})).split("\n");for(let a of(f=i.pop()??"",i)){var c;let b;if(!a.includes('"role":"user"'))continue;try{b=JSON.parse(a)}catch{continue}if(!b||"object"!=typeof b||!("type"in b)||"message"!==b.type||!("message"in b))continue;let d=b.message;if(!d||"object"!=typeof d||!("role"in d)||"user"!==d.role)continue;let e=(c="content"in d?d.content:void 0,"string"==typeof c?c.trim():Array.isArray(c)?c.map(a=>a&&"object"==typeof a&&"type"in a&&"text"===a.type&&"text"in a&&"string"==typeof a.text?a.text:"").filter(Boolean).join(" ").trim():"");if(e)return e}}return null}catch{return null}finally{void 0!==b&&(0,h.closeSync)(b)}}(a.path);return c.set(d,{mtimeMs:b.getTime(),size:a.size,text:f}),f}(a);return{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,o.$)(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(k.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===k.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:c?Math.max(a.messageCount,1):a.messageCount,firstMessage:(0,q.we)(c??"")||Q,parentSessionId:a.parentSessionPath?b.get((0,o.$)(a.parentSessionPath)):void 0,transient:!1}});return v(c)}async function y(a={}){a.force&&z();let b=globalThis.__ompSessionListGeneration??0;if(globalThis.__ompSessionListCache&&Date.now()-globalThis.__ompSessionListCache.ts<R)return globalThis.__ompSessionListCache.data;if(globalThis.__ompSessionListPromise&&globalThis.__ompSessionListPromiseGeneration===b)return globalThis.__ompSessionListPromise;let c=x().then(a=>(globalThis.__ompSessionListGeneration??0)!==b?y():(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}let R=3e4;function z(){globalThis.__ompSessionListGeneration=(globalThis.__ompSessionListGeneration??0)+1,globalThis.__ompSessionListCache=void 0}function A(){return globalThis.__ompSessionPathCache||(globalThis.__ompSessionPathCache=new Map),globalThis.__ompSessionPathCache}function B(){return globalThis.__ompPathToSessionIdCache||(globalThis.__ompPathToSessionIdCache=new Map),globalThis.__ompPathToSessionIdCache}async function C(a){let b=A().get(a);return b&&(0,h.existsSync)(b)?b:(b&&F(a),await y(),A().get(a)??null)}async function D(a){let b=(0,o.$)(a),c=B().get(b);return c||(await y(),B().get(b))}function E(a,b){let c=(0,i.normalize)(b),d=(0,o.$)(c),e=A(),f=B(),g=e.get(a),h=g?(0,o.$)(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,o.$)(k)===d&&e.delete(j),e.set(a,c),f.set(d,a)}function F(a){let b=A(),c=B(),d=b.get(a);b.delete(a);let e=d?(0,o.$)(d):void 0;e&&c.get(e)===a&&c.delete(e)}function G(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 H(a){return(await e.SessionManager.open(a)).getEntries()}function I(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 J(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 K(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=I(a,d,b),{displayed:h,hidden:i}=function(a){let b=-1;for(let c=a.length-1;c>=0;c--)if("compaction"===a[c].type){b=c;break}if(-1===b)return{displayed:a,hidden:[]};let c=a[b],d=[],e=[],f=!1;for(let g=0;g<b;g++)a[g].id===c.firstKeptEntryId&&(f=!0),(f?d:e).push(a[g]);return{displayed:[...d,c,...a.slice(b+1)],hidden:e}}(g),k=[],m=[];for(let a of h){let b=P(a,c);b&&(k.push(b),m.push(a.id))}return{messages:k,entryIds:m,thinkingLevel:f.thinkingLevel??"off",configuredThinkingLevel:f.configuredThinkingLevel??f.thinkingLevel??"off",thinkingCeiling:(0,t.hi)(g),model:J(f.models),compactedWork:function(a){let b=[],c=!1;for(let d of a){let a=P(d,{}),e=a?(0,j.sh)(a):null;e&&("user"!==e.role||b.at(-1)?.role!=="user")&&("user"!==e.role&&(c=!0),b.push(e))}let d=(0,l.getLatestTodoSnapshotIdentity)(a)?(0,l.getLatestTodoPhasesFromEntries)(a):null;return c||d?{messages:c?b:[],todoPhases:d}:null}(i)}}function L(a){if(O(a)&&"contextSnapshot"in a)return O(a.contextSnapshot)?a.contextSnapshot:void 0}async function M(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),k=J(j.models);if(!k)return;try{let{modelRegistry:a}=await (0,m.getOmpRuntime)(),b=a.find(k.provider,k.modelId),e=b?.contextWindow;if("number"!=typeof e||!Number.isFinite(e)||e<=0)return;c=e,d=new f.Tokenizer(b)}catch{return}let l=I(a,i,b),n=-1;for(let a=l.length-1;a>=0;a-=1)if("compaction"===l[a].type){n=a;break}for(let a=l.length-1;a>n;a-=1){let b=l[a];if("message"!==b.type||"assistant"!==b.message.role)continue;let c=b.message,d=L(c);if("aborted"!==c.stopReason&&"error"!==c.stopReason&&c.usage&&(d||(0,g.hasContextTokenUsage)(c.usage))){h=c;break}}if(!h)return;let o=L(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 N(a){let b=Date.parse(a);return Number.isNaN(b)?void 0:b}function O(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function P(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(!O(a)||"image"!==a.type||("string"==typeof a.data?(b=a.data,c="string"==typeof a.mimeType?a.mimeType:void 0):O(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,n.B)(a.message)):(0,n.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:N(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:L(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:L(a.timestamp)};if(b?.role==="assistant"){let c=(0,p.p8)(a.details);return{role:"assistant",content:[{type:"text",text:b.text}],model:"Codex Live",provider:"openai-codex",...c?{liveSpeaker:c}:{},stopReason:"stop",timestamp:L(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:L(a.timestamp)}}return{role:"custom",customType:a.customType,content:a.content,display:a.display,details:a.details,timestamp:L(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",thinkingCeiling:(0,r.hi)(G(a,d,b)),model:H(f.models)}}function J(a){if(M(a)&&"contextSnapshot"in a)return M(a.contextSnapshot)?a.contextSnapshot:void 0}async function K(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=H(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=G(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=J(c);if("aborted"!==c.stopReason&&"error"!==c.stopReason&&c.usage&&(d||(0,g.hasContextTokenUsage)(c.usage))){h=c;break}}if(!h)return;let o=J(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 L(a){let b=Date.parse(a);return Number.isNaN(b)?void 0:b}function M(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}},77356:(a,b,c)=>{"use strict";c.d(b,{FR:()=>d,KE:()=>f,hi:()=>g});let d="cuelo-thinking-ceiling",e=["minimal","low","medium","high","xhigh","max"];function f(a){return"string"==typeof a&&e.includes(a)}function g(a){for(let b=a.length-1;b>=0;b--){let c=a[b];if(c?.type!=="custom"||c.customType!==d)continue;let e=c.data?.ceiling;return f(e)?e:null}return null}},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}).
6
+ ${a.summary}`,timestamp:N(a.timestamp)};case"custom_message":if(a.customType===r.BD){let b=(0,r.hw)(a.content,a.details);if(b?.role==="user")return{role:"user",content:b.text,timestamp:N(a.timestamp)};if(b?.role==="assistant"){let c=(0,r.p8)(a.details);return{role:"assistant",content:[{type:"text",text:b.text}],model:"Codex Live",provider:"openai-codex",...c?{liveSpeaker:c}:{},stopReason:"stop",timestamp:N(a.timestamp)}}}if(a.customType===s.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:s.$f,provider:"web6",stopReason:"stop",timestamp:N(a.timestamp)}}return{role:"custom",customType:a.customType,content:a.content,display:a.display,details:a.details,timestamp:N(a.timestamp)};default:return null}}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}},77356:(a,b,c)=>{"use strict";c.d(b,{FR:()=>d,KE:()=>f,hi:()=>g});let d="cuelo-thinking-ceiling",e=["minimal","low","medium","high","xhigh","max"];function f(a){return"string"==typeof a&&e.includes(a)}function g(a){for(let b=a.length-1;b>=0;b--){let c=a[b];if(c?.type!=="custom"||c.customType!==d)continue;let e=c.data?.ceiling;return f(e)?e:null}return null}},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
  **발주 전 설계**와 **최종 판정 직전 상담** 둘이 자동으로 발동한다. 나머지 둘(경합 가설 판정,
@@ -11,4 +11,4 @@ ${a.summary}`,timestamp:L(a.timestamp)};case"custom_message":if(a.customType===p
11
11
 
12
12
  경로는 loopback shim이고 상담은 조언이다 — 분할\xb7진단\xb7판정은 그대로 Main이 소유한다.
13
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:()=>g,PW:()=>k,SQ:()=>m,Yh:()=>i,c$:()=>l,hw:()=>h,p8:()=>e});let d="live-transcript";function e(a){if(!a||"object"!=typeof a||!("speaker"in a))return;let b=a.speaker;if(!b||"object"!=typeof b)return;let{alias:c,mode:d}=b;if("string"==typeof c&&""!==c.trim()&&("character"===d||"native"===d))return{alias:c,mode:d}}let f={user:"User (live voice):\n",assistant:"Voice assistant (live voice):\n"};function g(a,b){return`${f[a]}${b}`}function h(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=f[c];if(!a.startsWith(d))return null;let e=a.slice(d.length).trim();return e?{role:c,text:e}:null}function i(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 j(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function k(a){let b=a;if("string"==typeof b)try{b=JSON.parse(b)}catch{return null}return j(b)?b:null}function l(a){let b="turn.done"===a.type?a.turn:"input_transcript.added"===a.type||"output_transcript.added"===a.type?a.item:void 0;if(!j(b))return;let c=b.id;return"string"==typeof c&&c?c:void 0}RegExp("^(?:아|어|음|응|네|자|그럼|이제|일단|그만|좀)*(?:(?:통화|전화)(?:를|좀|그만)*)?(?:좀|그만)*(?:끊어|끊을게|끊자|끊겠습니다)(?:줘|주세요|요)?$|^(?:아|어|음|응|네|자|그럼|이제|일단|그만|좀)*(?:통화|전화)(?:를|좀|그만)*(?:종료|종료해|종료할게|종료하자)(?:줘|주세요|요)?$","u");let m=24e3},96487:()=>{}};
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:()=>g,PW:()=>k,SQ:()=>m,Yh:()=>i,c$:()=>l,hw:()=>h,p8:()=>e});let d="live-transcript";function e(a){if(!a||"object"!=typeof a||!("speaker"in a))return;let b=a.speaker;if(!b||"object"!=typeof b)return;let{alias:c,mode:d}=b;if("string"==typeof c&&""!==c.trim()&&("character"===d||"native"===d))return{alias:c,mode:d}}let f={user:"User (live voice):\n",assistant:"Voice assistant (live voice):\n"};function g(a,b){return`${f[a]}${b}`}function h(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=f[c];if(!a.startsWith(d))return null;let e=a.slice(d.length).trim();return e?{role:c,text:e}:null}function i(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 j(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function k(a){let b=a;if("string"==typeof b)try{b=JSON.parse(b)}catch{return null}return j(b)?b:null}function l(a){let b="turn.done"===a.type?a.turn:"input_transcript.added"===a.type||"output_transcript.added"===a.type?a.item:void 0;if(!j(b))return;let c=b.id;return"string"==typeof c&&c?c:void 0}RegExp("^(?:아|어|음|응|네|자|그럼|이제|일단|그만|좀)*(?:(?:통화|전화)(?:를|좀|그만)*)?(?:좀|그만)*(?:끊어|끊을게|끊자|끊겠습니다)(?:줘|주세요|요)?$|^(?:아|어|음|응|네|자|그럼|이제|일단|그만|좀)*(?:통화|전화)(?:를|좀|그만)*(?:종료|종료해|종료할게|종료하자)(?:줘|주세요|요)?$","u");let m=24e3},92868:(a,b,c)=>{"use strict";c.d(b,{sh:()=>k});let d=/^[\t ]*(?:WORK_CLASS|PURPOSE|BLOCKS_PRIMARY|PRIMARY_DELIVERABLE|OWNED_PATHS|FINDING_ID)[\t ]*:[^\r\n]*$/i;function e(a){return Array.isArray(a)?a.filter(a=>"object"==typeof a&&null!==a):[]}function f(a){return"string"==typeof a&&a.trim()?a:null}function g(a){return"string"==typeof a?a:a.map(a=>"text"===a.type?a.text:"").join("\n")}function h(a){if(a.isError)return null;let b=a.details?.record;if("object"!=typeof b||null===b)try{let c=JSON.parse(g(a.content));b=c?.ok===!0?c.record:void 0}catch{return null}return"object"==typeof b&&null!==b?b:null}c(1060);let i=/<task-result\b([^>]*)>/g;function j(a){let b="string"==typeof a?function(a){if(!a)return null;let b=/^\s*TASK_GUARD\s*:\s*$/im.exec(a),c=a;if(b){let e=b.index+b[0].length;"\r"===a[e]&&(e+=1),"\n"===a[e]&&(e+=1);let f=e;for(;e<a.length;){let b=a.indexOf("\n",e),c=-1===b?a.length:b,g=c>e&&"\r"===a[c-1]?c-1:c;if(!d.test(a.slice(e,g)))break;f=g,e=-1===b?a.length:b+1}let g=b[0].length-b[0].trimStart().length;c=`${a.slice(0,b.index+g)}${a.slice(f)}`}let e=[...c.matchAll(/^\s*TASK_TITLE\s*:\s*(.*?)\s*$/gim)].map(a=>a[1]??"");return 1===e.length&&e[0]&&e[0]===e[0].trim()&&/[가-힣]/u.test(e[0])?e[0]:null}(a):null;return b?`TASK_TITLE: ${b}`:""}function k(a){switch(a.role){case"user":return{role:"user",content:"",timestamp:a.timestamp};case"assistant":{let b=(a.content??[]).filter(a=>"toolCall"===a.type&&"task"===a.toolName).map(a=>({type:"toolCall",toolCallId:a.toolCallId,toolName:"task",input:{tasks:e(a.input?.tasks).map(a=>({name:a.name,agent:a.agent,task:j(a.task)}))}}));if(0===b.length)return null;return{role:"assistant",content:b,model:a.model,provider:a.provider,timestamp:a.timestamp}}case"toolResult":{let b={role:"toolResult",toolCallId:a.toolCallId,toolName:a.toolName,content:[],timestamp:a.timestamp};if("task"===a.toolName){if(a.isError)return{...b,isError:!0};let c=e(a.details?.progress).map(a=>({index:a.index,id:a.id,agent:a.agent,task:j(a.task)}));return{...b,details:{progress:c}}}if("routing_verdict"===a.toolName){if(!function(a){let b=h(a);if(!b)return null;let c=b.verdict;if("accepted"!==c&&"rework"!==c&&"held"!==c)return null;let d=f(b.assignmentId),e=d?.split("#")??[];if(e.length<3)return null;let g=e[e.length-1],i=e.slice(1,-1).join("#");return/^\d+$/.test(g)&&i?{key:`${i}#${g}`,record:{verdict:c,attempt:"number"==typeof b.attempt?b.attempt:null,reason:f(b.reason)}}:null}(a))return null;let c=h(a);return{...b,details:{record:{verdict:c.verdict,assignmentId:c.assignmentId,attempt:c.attempt,reason:c.reason}}}}if("wait"===a.toolName){let c=e(a.details?.jobs).filter(a=>"task"===a.type).map(a=>({type:a.type,id:a.id,status:a.status}));return c.length>0?{...b,details:{jobs:c}}:null}return null}case"custom":{if("async-result"!==a.customType)return null;let b=[...g(a.content).matchAll(i)].map(a=>a[0]);return b.length>0?{role:"custom",customType:"async-result",display:!1,content:b.join("\n"),timestamp:a.timestamp}:null}default:return null}}},96487:()=>{}};
@@ -0,0 +1,4 @@
1
+ "use strict";exports.id=7121,exports.ids=[7121],exports.modules={3582:(a,b,c)=>{c.a(a,async(a,d)=>{try{let q;c.d(b,{RT:()=>p,dk:()=>o});var e=c(77598),f=c(51455),g=c(76760),h=c.n(g),i=c(34069),j=c(12969),k=c(50820),l=c(15395),m=a([i]);i=(m.then?(await m)():m)[0];let r=".cuelo-managed",s=/^(?:new|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/,t=/^(?:con|prn|aux|nul|com[0-9¹²³]|lpt[0-9¹²³])(?:\..*)?$/i,u=".part",v=".lease",w=".deleting",x=".cleanup-lock";function n(a){return a?.code}async function o(a){let b;try{b=await (0,f.readFile)(h().join(a,"cuelo-attachment-settings.json"),"utf8")}catch(a){if("ENOENT"===n(a))return(0,k.gP)({});throw a}try{return(0,k.gP)(JSON.parse(b))}catch{return{...(0,k.gP)({}),autoCleanupEnabled:!1}}}class y extends Error{constructor(a,b){super(b),this.code=a,this.name="ManagedAttachmentError"}}class z extends Error{constructor(a){super(`Unknown attachment ids: ${a.join(", ")}`),this.missing=a,this.name="UnknownAttachmentError"}}let A=a=>new Promise(b=>setTimeout(b,a));class B{#a;#b;#c;#d;constructor({root:a,sessionsDir:b,customSessionFilesDir:c,now:d=Date.now,state:e,deletionWaitLimitMs:f=3e4}){this.root=a,this.sessionsDir=b,this.customSessionFilesDir=c,this.now=d,this.#a=f,this.#b=e?.holds??new Map,this.#c=e?.deleting??new Map,this.#d=e?.draftQueues??new Map}get #e(){return h().join(this.root,r)}get #f(){return h().join(this.#e,"attachments")}get #g(){return h().join(this.#e,"drafts")}get #h(){return h().join(this.#e,"uploads")}get #i(){return h().join(this.#e,"handoffs")}#j(a){return h().join(this.#i,`${a}.json`)}get #k(){return h().join(this.#e,"leases")}#l(a){return h().join(this.#f,`${a}.json`)}#m(a){return h().join(this.#g,`${a}.json`)}async #n(){await (0,f.mkdir)(this.root,{recursive:!0});let a=await (0,f.realpath)(this.root);for(let b of["attachments","drafts","uploads","leases","handoffs"])await (0,f.mkdir)(h().join(a,r,b),{recursive:!0});let b=h().join(a,r);if(await (0,f.realpath)(b)!==b)throw Error("Attachment metadata folder resolves outside the attachment root");return a}isHeld(a){return(this.#b.get(a)??0)>0||this.#c.has(a)}async #o(a){let b;try{b=await (0,f.readdir)(this.#k)}catch(a){return{complete:"ENOENT"===n(a),entries:[]}}let c=[];for(let d of b){if(!d.endsWith(a))continue;let[b="",e=""]=d.slice(0,-a.length).split("~"),g=/^\d+$/.test(e)&&Number.isSafeInteger(Number(e))&&Number(e)>0?Number(e):null;if(null!==g&&!function(a){if(a===process.pid)return!0;try{return process.kill(a,0),!0}catch(a){return"ESRCH"!==n(a)}}(g)){await (0,f.unlink)(h().join(this.#k,d)).catch(()=>{});continue}c.push({name:d,key:b})}return{complete:!0,entries:c}}async liveLeaseIds(){let{complete:a,entries:b}=await this.#o(v),c=new Set(this.#b.keys());for(let{key:a}of b)c.add(a);return{complete:a,ids:c}}async #p(a){await this.#n();let b=Date.now();for(;;){let c=a.flatMap(a=>this.#c.get(a)??[]);if(c.length>0){await Promise.all(c);continue}for(let b of a)this.#b.set(b,(this.#b.get(b)??0)+1);let d=[],g=!1,i=async()=>{if(!g){for(let a of(g=!0,d.splice(0)))await (0,f.unlink)(a).catch(()=>{});for(let b of a){let a=(this.#b.get(b)??0)-1;a>0?this.#b.set(b,a):this.#b.delete(b)}}};try{for(let b of a){let a=h().join(this.#k,`${b}~${process.pid}~${(0,e.randomBytes)(6).toString("hex")}${v}`);await (0,f.writeFile)(a,"",{flag:"wx",mode:384}),d.push(a)}let b=await this.#o(w);if(b.complete&&!b.entries.some(({key:b})=>a.includes(b)))return i}catch(a){throw await i(),a}if(await i(),Date.now()-b>this.#a)throw new y("busy","Attachment is being cleaned up by another CUELO process; try again");await A(50)}}async acquireCleanupLock(){await this.#n();let a=`cleanup~${process.pid}~${(0,e.randomBytes)(6).toString("hex")}${x}`,b=h().join(this.#k,a);await (0,f.writeFile)(b,"",{flag:"wx",mode:384});let c=async()=>{await (0,f.unlink)(b).catch(()=>{})},d=await this.#o(x).catch(()=>null);return!d?.complete||d.entries.some(b=>b.name!==a)?(await c(),null):c}async #q(a,b){let c=(this.#d.get(a)??Promise.resolve()).catch(()=>{}).then(b);this.#d.set(a,c);try{return await c}finally{this.#d.get(a)===c&&this.#d.delete(a)}}async readRecord(a){let b;try{b=await (0,f.readFile)(this.#l(a),"utf8")}catch(a){if("ENOENT"===n(a))return null;throw a}try{var c;return c=JSON.parse(b),c&&"object"==typeof c&&1===c.version&&c.id===a&&"string"==typeof c.path&&"string"==typeof c.name&&"string"==typeof c.mimeType&&"number"==typeof c.size&&Number.isSafeInteger(c.size)&&!(c.size<0)&&"string"==typeof c.createdAt&&(null===c.sessionId||"string"==typeof c.sessionId)&&(null===c.orphanSince||"string"==typeof c.orphanSince&&Number.isFinite(Date.parse(c.orphanSince)))?{version:1,id:a,path:c.path,name:c.name,size:c.size,mimeType:c.mimeType,sessionId:c.sessionId,createdAt:c.createdAt,orphanSince:c.orphanSince}:null}catch{return null}}writeRecord(a){(0,j.$)(this.#l(a.id),`${JSON.stringify(a,null,2)}
2
+ `)}async listRecords(){let a;try{a=await (0,f.readdir)(this.#f)}catch(a){if("ENOENT"===n(a))return[];throw a}let b=[];for(let c of a){let a=c.endsWith(".json")?c.slice(0,-5):"";if(!(0,l.YC)(a))continue;let d=await this.readRecord(a).catch(()=>null);d&&b.push(d)}return b}async beginUpload(){let a=await this.#n(),b=`att_${(0,e.randomBytes)(16).toString("hex")}`,c=await this.#p([b]);return{id:b,stagingPath:h().join(a,r,"uploads",`${b}${u}`),release:c}}async discardStagedUpload(a){h().dirname(a)===h().join(await (0,f.realpath)(this.root),r,"uploads")&&await (0,f.unlink)(a).catch(a=>{if("ENOENT"!==n(a))throw a})}async commitUpload(a){let b=await this.#n(),c=(a.sessionId??"new").toLowerCase();if(!s.test(c))throw Error("Invalid attachment folder");let d=h().join(b,c);if(await (0,f.mkdir)(d,{recursive:!0}),h().relative(b,await (0,f.realpath)(d))!==c)throw Error("Attachment folder resolves outside the attachment root");let e=h().join(d,a.id);await (0,f.mkdir)(e);let g=function(a){let b=a.replace(/[<>:"|?*\u0000-\u001f]/g,"_").replace(/[. ]+$/,"");if(!b)return"attachment";let c=Array.from(b);if(c.length>150){let a=Array.from(h().extname(b)).slice(0,20).join("");b=c.slice(0,150-a.length).join("")+a}return t.test(b)?`_${b}`:b}(a.fileName),i=h().join(e,g);await (0,f.rename)(a.stagingPath,i);let j={version:1,id:a.id,path:i,name:g,size:a.size,mimeType:a.mimeType,sessionId:a.sessionId?.toLowerCase()??null,createdAt:new Date(this.now()).toISOString(),orphanSince:null};try{this.writeRecord(j)}catch(a){throw await (0,f.unlink)(i).catch(()=>{}),await (0,f.rmdir)(e).catch(()=>{}),a}return await this.#q(a.draftId,async()=>{let b=await this.#r(a.draftId);this.#s(a.draftId,[...new Set([...b,a.id])])}),j}async #r(a){let b;try{b=await (0,f.readFile)(this.#m(a),"utf8")}catch(a){if("ENOENT"===n(a))return[];throw a}let c=JSON.parse(b);if(!Array.isArray(c.attachmentIds))throw Error(`Draft record ${a} is malformed`);return c.attachmentIds.filter(l.YC)}#s(a,b){(0,j.$)(this.#m(a),`${JSON.stringify({version:1,draftId:a,attachmentIds:b,updatedAt:new Date(this.now()).toISOString()},null,2)}
3
+ `)}async setDraftAttachments(a,b,c=[]){if(!(0,l.Ly)(a))throw Error("Invalid draft id");let d=a.toLowerCase(),e=[...new Set(b)];if(e.length>256||!e.every(l.YC))throw Error("Invalid attachment ids");let g=[...new Set(c)].filter(a=>!e.includes(a));if(g.length>256||!g.every(l.YC))throw Error("Invalid attachment ids");await this.#n();let h=await this.#p([...e,...g]);try{let a=[];for(let b of e)await this.readRecord(b)||a.push(b);if(a.length>0)throw new z(a);let b=[];for(let a of g)await this.readRecord(a)&&b.push(a);return await this.#q(d,async()=>{for(let a of b)(0,j.$)(this.#j(a),`${JSON.stringify({version:1,id:a,draftId:d,handedOffAt:new Date(this.now()).toISOString()},null,2)}
4
+ `);for(let a of(e.length>0?this.#s(d,e):await (0,f.unlink)(this.#m(d)).catch(a=>{if("ENOENT"!==n(a))throw a}),e))await this.removeHandoff(a)}),e}finally{await h()}}async readDraftReferences(){let a,b=new Set;try{a=await (0,f.readdir)(this.#g)}catch(a){return{complete:"ENOENT"===n(a),ids:b}}let c=!0;for(let d of a)if(!d.startsWith(".")&&d.endsWith(".json"))try{for(let a of(await this.#r(d.slice(0,-5))))b.add(a)}catch(a){"ENOENT"!==n(a)&&(c=!1)}return{complete:c,ids:b}}async readHandoffs(){let a,b=new Set;try{a=await (0,f.readdir)(this.#i)}catch(a){return{complete:"ENOENT"===n(a),ids:b}}let c=!0;for(let d of a){if(d.startsWith("."))continue;let a=d.endsWith(".json")?d.slice(0,-5):"";if(!(0,l.YC)(a)){c=!1;continue}b.add(a);try{JSON.parse(await (0,f.readFile)(h().join(this.#i,d),"utf8")).id!==a&&(c=!1)}catch(a){"ENOENT"!==n(a)&&(c=!1)}}return{complete:c,ids:b}}async removeHandoff(a){(0,l.YC)(a)&&await (0,f.unlink)(this.#j(a)).catch(a=>{if("ENOENT"!==n(a))throw a})}async #t(a){let b;try{b=await (0,f.realpath)(this.root)}catch{return null}let c=h().relative(b,a.path).split(h().sep);if(3!==c.length||!s.test(c[0])||c[1]!==a.id||c[2]!==a.name||"."===c[2]||".."===c[2]||h().join(b,...c)!==a.path)return null;let d=h().join(b,c[0],c[1]);try{if(await (0,f.realpath)(d)!==d)return null}catch{return null}try{return(await (0,f.lstat)(a.path)).isFile()?{idDirectory:d,fileMissing:!1}:null}catch(a){return"ENOENT"===n(a)?{idDirectory:d,fileMissing:!0}:null}}async withManagedAttachment(a,b){if(!(0,l.YC)(a))throw new y("invalid_id","Invalid attachment id");let c=await this.#p([a]);try{let c=await this.readRecord(a),d=c?await this.#t(c):null;if(!c||!d||d.fileMissing)throw new y("not_found","Attachment not found");return await b({id:a,path:c.path,size:c.size,mimeType:c.mimeType})}finally{await c()}}async deleteOrphan(a,b){let c;if(this.isHeld(a))return!1;this.#c.set(a,new Promise(a=>{c=a}));let d=null;try{await this.#n();let c=h().join(this.#k,`${a}~${process.pid}~${(0,e.randomBytes)(6).toString("hex")}${w}`);await (0,f.writeFile)(c,"",{flag:"wx",mode:384}),d=c;let g=await this.liveLeaseIds();if(!g.complete||g.ids.has(a))return!1;let i=await this.readHandoffs();if(!i.complete||i.ids.has(a))return!1;let j=await this.readRecord(a);if(!j?.orphanSince||this.now()-Date.parse(j.orphanSince)<b)return!1;let k=await this.readDraftReferences();if(!k.complete||k.ids.has(a))return!1;let l=await this.#t(j);if(!l)return!1;return l.fileMissing||await (0,f.unlink)(j.path),await (0,f.rmdir)(l.idDirectory).catch(()=>{}),await (0,f.unlink)(this.#l(a)).catch(a=>{if("ENOENT"!==n(a))throw a}),!0}finally{d&&await (0,f.unlink)(d).catch(()=>{}),this.#c.delete(a),c()}}async removeStaleUploads(a){let b;try{b=await (0,f.readdir)(this.#h)}catch(a){if("ENOENT"===n(a))return 0;throw a}let c=await this.liveLeaseIds();if(!c.complete)return 0;let d=0;for(let e of b){let b=e.endsWith(u)?e.slice(0,-u.length):"";if(!(0,l.YC)(b)||c.ids.has(b))continue;let g=h().join(this.#h,e);try{let b=await (0,f.stat)(g);if(!b.isFile()||this.now()-b.mtimeMs<a)continue;await (0,f.unlink)(g),d+=1}catch{}}return d}}function p(){let a=(0,i.getAgentDir)(),b=h().join(a,"cuelo-attachments");if(q?.root===b)return q;let c=globalThis.__cueloAttachmentStoreStates??=new Map,d=c.get(b);return d||(d={holds:new Map,deleting:new Map,draftQueues:new Map},c.set(b,d)),q=new B({root:b,sessionsDir:(0,i.getSessionsDir)(a),customSessionFilesDir:(0,i.getCustomSessionFilesDir)(a),state:d})}d()}catch(a){d(a)}})},12969:(a,b,c)=>{c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},15395:(a,b,c)=>{c.d(b,{Ly:()=>g,YC:()=>f});let d=/^att_[0-9a-f]{32}$/,e=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function f(a){return"string"==typeof a&&d.test(a)}function g(a){return"string"==typeof a&&e.test(a)}},50820:(a,b,c)=>{c.d(b,{Wl:()=>d,gP:()=>g});let d=7,e=Math.floor(Number.MAX_SAFE_INTEGER/1048576),f=Object.freeze({uploadLimitMb:100,autoCleanupEnabled:!0,orphanGraceDays:7});function g(a){var b;let c=a&&"object"==typeof a?a:{};return{uploadLimitMb:"number"==typeof(b=c.uploadLimitMb)&&Number.isSafeInteger(b)&&b>=1&&b<=e?c.uploadLimitMb:f.uploadLimitMb,autoCleanupEnabled:"boolean"==typeof c.autoCleanupEnabled?c.autoCleanupEnabled:f.autoCleanupEnabled,orphanGraceDays:d}}},67121:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{ensureAttachmentCleanupScheduler:()=>p});var e=c(73024),f=c(51455),g=c(76760),h=c.n(g),i=c(34069),j=c(50820),k=c(3582),l=a([i,k]);[i,k]=l.then?(await l)():l;let q=864e5*j.Wl,r=/att_[0-9a-f]{32}/gi,s=/a\0t\0t\0_\0(?:[0-9a-f]\0){32}/gi,t=/\.jsonl\.(?:gz|zst|br|xz|bz2)$/i;async function m(a){let b=new Set,c="";for await(let d of(0,e.createReadStream)(a,{highWaterMark:1048576})){let a=c+d.toString("latin1");for(let c of a.matchAll(r))b.add(c[0].toLowerCase());for(let c of a.matchAll(s))b.add(c[0].replace(/\0/g,"").toLowerCase());c=a.slice(-72)}return[...b]}class u{#u;async scan({sessionsDir:a,customSessionFilesDir:b},{fresh:c=!1}={}){let d=new Set,e=[],g=new Set,i=new Set,j=async(a,b)=>{if(g.has(a))return;if(g.add(a),t.test(a))return void e.push(`compressed transcript ${a}`);let h=!1;try{let b=await (0,f.stat)(a);if(h=!0,!b.isFile())return;let g=c?void 0:this.#u.get(a);if(g&&g.size===b.size&&g.mtimeMs===b.mtimeMs){for(let a of g.ids)d.add(a);return}for(let c=0;;c+=1){let g=await m(a),h=await (0,f.stat)(a);if(h.size===b.size&&h.mtimeMs===b.mtimeMs){for(let c of(this.#u.set(a,{size:b.size,mtimeMs:b.mtimeMs,ids:g}),g))d.add(c);return}for(let a of g)d.add(a);if(this.#u.delete(a),1===c)return void e.push(`changed while reading ${a}`);b=h}}catch(c){this.#u.delete(a),(b||h||"ENOENT"!==c.code)&&e.push(`read ${a}: ${c.message}`)}},k=async a=>{let b,c;try{if(b=await (0,f.realpath)(a),i.has(b))return;i.add(b),c=await (0,f.readdir)(a,{withFileTypes:!0})}catch(b){e.push(`list ${a}: ${b.message}`);return}for(let b of c){let c=h().join(a,b.name);if(b.isDirectory())await k(c);else if(b.isFile())await j(c,!0);else if(b.isSymbolicLink())try{let a=await (0,f.stat)(c);a.isDirectory()?await k(c):a.isFile()&&await j(c,!0)}catch(a){"ENOENT"!==a.code&&e.push(`follow ${c}: ${a.message}`)}}};await k(a);let l=[];try{l=await (0,f.readdir)(b)}catch(a){"ENOENT"!==a.code&&e.push(`list ${b}: ${a.message}`)}for(let a of l){let c=h().join(b,a);try{let a=(await (0,f.readFile)(c,"utf8")).trim();if(!h().isAbsolute(a)){e.push(`unreadable session marker ${c}`);continue}await j(a,!1)}catch(a){e.push(`read ${c}: ${a.message}`)}}for(let a of this.#u.keys())g.has(a)||this.#u.delete(a);return{complete:0===e.length,ids:d,files:g.size,failures:e}}constructor(){this.#u=new Map}}async function n(a,{settings:b,scanner:c}){let d={skipped:null,complete:!1,records:0,marked:[],reset:[],deleted:[],handedOver:[],staleUploadsRemoved:0,failures:[]};if(!b.autoCleanupEnabled)return d.skipped="disabled",d;let e=await a.acquireCleanupLock();if(!e)return d.skipped="locked",d;try{await o(a,c,d),d.staleUploadsRemoved=await a.removeStaleUploads(864e5).catch(a=>(d.failures.push(`stale uploads: ${a.message}`),0))}finally{await e()}return d}async function o(a,b,c){let d={sessionsDir:a.sessionsDir,customSessionFilesDir:a.customSessionFilesDir},e=await a.listRecords();if(c.records=e.length,0===e.length){c.complete=!0;return}let f=await a.readHandoffs(),g=await b.scan(d,{fresh:f.ids.size>0}),h=await a.readDraftReferences(),i=await a.liveLeaseIds();if(c.complete=g.complete&&h.complete&&i.complete&&f.complete,c.failures.push(...g.failures),h.complete||c.failures.push("a draft record could not be read"),i.complete||c.failures.push("the lease folder could not be listed"),f.complete||c.failures.push("a sent-attachment handoff could not be read"),g.complete){for(let b of f.ids)if(g.ids.has(b))try{await a.removeHandoff(b),c.handedOver.push(b)}catch(a){c.failures.push(`handoff ${b}: ${a.message}`)}}let j=a.now(),k=[];for(let b of e){if(g.ids.has(b.id)||h.ids.has(b.id)||i.ids.has(b.id)||f.ids.has(b.id)){null!==b.orphanSince&&(a.writeRecord({...b,orphanSince:null}),c.reset.push(b.id));continue}c.complete&&(null===b.orphanSince?(a.writeRecord({...b,orphanSince:new Date(j).toISOString()}),c.marked.push(b.id)):j-Date.parse(b.orphanSince)>=q&&k.push(b.id))}if(k.length>0){let e=await b.scan(d,{fresh:!0});if(e.complete)for(let b of k){if(e.ids.has(b)){let d=await a.readRecord(b);d?.orphanSince&&(a.writeRecord({...d,orphanSince:null}),c.reset.push(b));continue}try{await a.deleteOrphan(b,q)&&c.deleted.push(b)}catch(a){c.failures.push(`delete ${b}: ${a.message}`)}}else c.failures.push(...e.failures)}}function p(){if(globalThis.__cueloAttachmentCleanupScheduler)return;let a={running:!1,scanner:new u};globalThis.__cueloAttachmentCleanupScheduler=a;let b=async()=>{if(!a.running){a.running=!0;try{let b=await (0,k.dk)((0,i.getAgentDir)()),c=await n((0,k.RT)(),{settings:b,scanner:a.scanner});(c.marked.length||c.reset.length||c.deleted.length||c.staleUploadsRemoved||c.failures.length)&&console.info(`[attachments] cleanup: ${c.records} managed, ${c.marked.length} newly unreferenced, ${c.reset.length} referenced again, ${c.deleted.length} deleted, ${c.staleUploadsRemoved} stale uploads removed`+(c.failures.length?`; nothing was deleted on an incomplete view: ${c.failures.slice(0,3).join("; ")}`:""))}catch(a){console.error("[attachments] cleanup failed:",a)}finally{a.running=!1}}};setTimeout(()=>void b(),6e4).unref?.(),setInterval(()=>void b(),864e5).unref?.(),console.info("[attachments] cleanup scheduled: first pass in 60s, then every 24h")}d()}catch(a){d(a)}})}};