agent-log-viewer 1.2.0 → 1.2.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 (240) hide show
  1. package/dist/mcp-server.mjs +2078 -959
  2. package/dist/runtime-host.mjs +2615 -1363
  3. package/dist/standalone/.next/BUILD_ID +1 -1
  4. package/dist/standalone/.next/app-path-routes-manifest.json +15 -15
  5. package/dist/standalone/.next/build-manifest.json +2 -2
  6. package/dist/standalone/.next/prerender-manifest.json +4 -4
  7. package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/dist/standalone/.next/server/app/_global-error.html +1 -1
  10. package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
  11. package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  13. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  17. package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
  18. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  19. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  20. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
  22. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
  23. package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
  24. package/dist/standalone/.next/server/app/api/account-project-bindings/route.js.nft.json +1 -1
  25. package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -1
  26. package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -1
  27. package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js.nft.json +1 -1
  28. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -1
  29. package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -1
  30. package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -1
  31. package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -1
  32. package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -1
  33. package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -1
  34. package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -1
  35. package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js.nft.json +1 -1
  36. package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
  37. package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js.nft.json +1 -1
  38. package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
  39. package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
  40. package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -1
  41. package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -1
  42. package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
  43. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -1
  44. package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -1
  45. package/dist/standalone/.next/server/app/api/answer/route.js +1 -1
  46. package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
  47. package/dist/standalone/.next/server/app/api/artifact/route.js.nft.json +1 -1
  48. package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -1
  49. package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -1
  50. package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -1
  51. package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -1
  52. package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -1
  53. package/dist/standalone/.next/server/app/api/bridge/route.js +1 -1
  54. package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
  55. package/dist/standalone/.next/server/app/api/conversation-host/route.js +1 -1
  56. package/dist/standalone/.next/server/app/api/conversation-host/route.js.nft.json +1 -1
  57. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js +1 -1
  58. package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js.nft.json +1 -1
  59. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
  60. package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
  61. package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
  62. package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
  63. package/dist/standalone/.next/server/app/api/files/route.js +2 -2
  64. package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  65. package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
  66. package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
  67. package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
  68. package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
  69. package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
  70. package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  71. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
  72. package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
  73. package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -1
  74. package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
  75. package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -1
  76. package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -1
  77. package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -1
  78. package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -1
  79. package/dist/standalone/.next/server/app/api/log/provenance/route.js +2 -2
  80. package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -1
  81. package/dist/standalone/.next/server/app/api/log/route.js +1 -1
  82. package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
  83. package/dist/standalone/.next/server/app/api/log/suggestions/route.js.nft.json +1 -1
  84. package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  85. package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  86. package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
  87. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js +12 -14
  88. package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js.nft.json +1 -1
  89. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js +2 -2
  90. package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js.nft.json +1 -1
  91. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
  92. package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
  93. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
  94. package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
  95. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +1 -3
  96. package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -1
  97. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -1
  98. package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -1
  99. package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -1
  100. package/dist/standalone/.next/server/app/api/pipelines/route.js +1 -1
  101. package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
  102. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +1 -1
  103. package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
  104. package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
  105. package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
  106. package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -1
  107. package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -1
  108. package/dist/standalone/.next/server/app/api/projects/directories/route.js.nft.json +1 -1
  109. package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
  110. package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
  111. package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
  112. package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
  113. package/dist/standalone/.next/server/app/api/runtime/answer/route.js +1 -1
  114. package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -1
  115. package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -1
  116. package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -1
  117. package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -1
  118. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js +1 -1
  119. package/dist/standalone/.next/server/app/api/runtime/hosts/route.js.nft.json +1 -1
  120. package/dist/standalone/.next/server/app/api/runtime/inject/route.js +1 -1
  121. package/dist/standalone/.next/server/app/api/runtime/inject/route.js.nft.json +1 -1
  122. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +1 -1
  123. package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -1
  124. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +1 -1
  125. package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
  126. package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
  127. package/dist/standalone/.next/server/app/api/runtime/queue/route.js +1 -1
  128. package/dist/standalone/.next/server/app/api/runtime/queue/route.js.nft.json +1 -1
  129. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +1 -1
  130. package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
  131. package/dist/standalone/.next/server/app/api/runtime/send/route.js +1 -1
  132. package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -1
  133. package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -1
  134. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +1 -1
  135. package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -1
  136. package/dist/standalone/.next/server/app/api/runtime/steer/route.js +1 -1
  137. package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -1
  138. package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -1
  139. package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -1
  140. package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  141. package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -1
  142. package/dist/standalone/.next/server/app/api/session/title/route.js +1 -1
  143. package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -1
  144. package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -1
  145. package/dist/standalone/.next/server/app/api/spawn/route.js +1 -1
  146. package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
  147. package/dist/standalone/.next/server/app/api/spawn/validate/route.js +1 -1
  148. package/dist/standalone/.next/server/app/api/spawn/validate/route.js.nft.json +1 -1
  149. package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
  150. package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
  151. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
  152. package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
  153. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  154. package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  155. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +1 -1
  156. package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
  157. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +1 -1
  158. package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
  159. package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
  160. package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
  161. package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  162. package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -1
  163. package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -1
  164. package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
  165. package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
  166. package/dist/standalone/.next/server/app/api/tmux/route.js +1 -1
  167. package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
  168. package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
  169. package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
  170. package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
  171. package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
  172. package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
  173. package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -1
  174. package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -1
  175. package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -1
  176. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
  177. package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
  178. package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
  179. package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  180. package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  181. package/dist/standalone/.next/server/app/index.html +1 -1
  182. package/dist/standalone/.next/server/app/index.rsc +3 -3
  183. package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  184. package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  185. package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  186. package/dist/standalone/.next/server/app/page.js +18 -18
  187. package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
  188. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  189. package/dist/standalone/.next/server/app-paths-manifest.json +15 -15
  190. package/dist/standalone/.next/server/chunks/1406.js +17 -17
  191. package/dist/standalone/.next/server/chunks/1585.js +2 -2
  192. package/dist/standalone/.next/server/chunks/160.js +2 -2
  193. package/dist/standalone/.next/server/chunks/1617.js +2 -2
  194. package/dist/standalone/.next/server/chunks/2150.js +1 -1
  195. package/dist/standalone/.next/server/chunks/2744.js +3 -0
  196. package/dist/standalone/.next/server/chunks/2857.js +1 -1
  197. package/dist/standalone/.next/server/chunks/286.js +22 -0
  198. package/dist/standalone/.next/server/chunks/2914.js +1 -1
  199. package/dist/standalone/.next/server/chunks/3086.js +1 -1
  200. package/dist/standalone/.next/server/chunks/3131.js +1 -1
  201. package/dist/standalone/.next/server/chunks/3743.js +10 -8
  202. package/dist/standalone/.next/server/chunks/4037.js +1 -0
  203. package/dist/standalone/.next/server/chunks/4972.js +1 -1
  204. package/dist/standalone/.next/server/chunks/5408.js +1 -0
  205. package/dist/standalone/.next/server/chunks/5771.js +1 -1
  206. package/dist/standalone/.next/server/chunks/606.js +126 -0
  207. package/dist/standalone/.next/server/chunks/644.js +1 -1
  208. package/dist/standalone/.next/server/chunks/6453.js +1 -1
  209. package/dist/standalone/.next/server/chunks/7008.js +8 -8
  210. package/dist/standalone/.next/server/chunks/7192.js +1 -1
  211. package/dist/standalone/.next/server/chunks/781.js +2 -2
  212. package/dist/standalone/.next/server/chunks/8027.js +1 -1
  213. package/dist/standalone/.next/server/chunks/8465.js +2 -2
  214. package/dist/standalone/.next/server/chunks/8617.js +1 -1
  215. package/dist/standalone/.next/server/chunks/8966.js +2 -2
  216. package/dist/standalone/.next/server/chunks/9296.js +1 -1
  217. package/dist/standalone/.next/server/chunks/9307.js +1 -1
  218. package/dist/standalone/.next/server/chunks/9360.js +13 -11
  219. package/dist/standalone/.next/server/chunks/9517.js +1 -1
  220. package/dist/standalone/.next/server/chunks/9940.js +1 -1
  221. package/dist/standalone/.next/server/file-scanner-worker.js +2 -2
  222. package/dist/standalone/.next/server/files-response-worker.js +1 -1
  223. package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
  224. package/dist/standalone/.next/server/pages/404.html +1 -1
  225. package/dist/standalone/.next/server/pages/500.html +1 -1
  226. package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
  227. package/dist/standalone/.next/static/chunks/7333-cf17cea2a91e7b4b.js +1 -0
  228. package/dist/standalone/.next/static/chunks/app/page-1cde2db61f461960.js +125 -0
  229. package/dist/standalone/.next/static/css/b25c03e915fd256b.css +1 -0
  230. package/dist/standalone/AGENTS.md +10 -0
  231. package/dist/standalone/package.json +1 -1
  232. package/dist/standalone/src/lib/viewerInstrumentation.ts +19 -4
  233. package/package.json +1 -1
  234. package/dist/standalone/.next/server/chunks/480.js +0 -126
  235. package/dist/standalone/.next/server/chunks/7361.js +0 -22
  236. package/dist/standalone/.next/static/chunks/6976-016b6947195a6ed2.js +0 -1
  237. package/dist/standalone/.next/static/chunks/app/page-16384e540b4c0a90.js +0 -125
  238. package/dist/standalone/.next/static/css/496211a19557b7ee.css +0 -1
  239. /package/dist/standalone/.next/static/{e4qE_aCE0s0KQnnU6IWRw → 836HTp-5V8cZC5YWFVOCk}/_buildManifest.js +0 -0
  240. /package/dist/standalone/.next/static/{e4qE_aCE0s0KQnnU6IWRw → 836HTp-5V8cZC5YWFVOCk}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=8027,exports.ids=[8027],exports.modules={9740:(a,b,c)=>{c.d(b,{k:()=>g,z:()=>h});var d=c(76760),e=c.n(d),f=c(10900);function g(a){if("string"!=typeof a)return null;let b=a.trim().replace(/\/+$/u,"");if(!b||b.length>f.NF||e().posix.isAbsolute(b)||e().win32.isAbsolute(b)||b.startsWith(":")||/[\\*?[\]\u0000-\u001f\u007f]/u.test(b))return null;let c=b.split("/");return c.some(a=>!a||"."===a||".."===a)||".git"===c[0].toLowerCase()?null:b}function h(a,b){return b.some(b=>a===b||a.startsWith(`${b}/`))}},10900:(a,b,c)=>{c.d(b,{Gr:()=>j,IO:()=>f,NF:()=>e,Ze:()=>d,e7:()=>g,ic:()=>k,tq:()=>h,vz:()=>i});let d=20,e=240,f=8,g=9,h=50,i=50,j=50,k=2e3},18027:(a,b,c)=>{c.r(b),c.d(b,{PIPELINES_SCHEMA_VERSION:()=>t,PipelineStoreError:()=>z,archiveSettledPipelines:()=>aj,buildPipeline:()=>aq,checkpointPipelineRollbackMirrorsForDemotion:()=>ak,checkpointPipelineRollbackMirrorsForDemotionAsync:()=>al,findPipelineRecord:()=>am,isEffectiveRole:()=>B,loadArchivedPipelines:()=>ai,loadPipelines:()=>O,loadPipelinesForList:()=>ac,loadPipelinesForProjection:()=>ab,loadPipelinesForStartup:()=>P,pipelineArtifactsDir:()=>ar,pipelineGraphError:()=>M,pipelineIdentity:()=>ap,pipelineLockWaitMs:()=>ad,pipelineStateCollectionSeeds:()=>X,pipelineTaskLinkError:()=>an,planPipelineStateMigration:()=>R,savePipelines:()=>ah,withPipelineControllerMutation:()=>af,withPipelineMutation:()=>ae,withPipelineStartupAdmission:()=>ag});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(38751),l=c(22619),m=c(51888),n=c(22371),o=c(89204),p=c(14928),q=c(10900),r=c(9740),s=c(97223);let t=5,u=new Set([2,3,4,5]),v=()=>(0,j.BQ)("pipelines.json"),w=()=>(0,j.BQ)("pipelines-archive.json"),x=()=>(0,j.BQ)("state.sqlite"),y=["orchestrator","reviewer","verifier","builder","architect","cleaner","prod-auditor","deployer"];class z extends Error{constructor(a,b){super(a,b),this.name="PipelineStoreError"}}function A(a,b){g().mkdirSync(i().dirname(a),{recursive:!0});let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`);g().writeFileSync(c,JSON.stringify(b,null,2)+"\n","utf8"),g().renameSync(c,a)}function B(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&!("claude"!==a.engine&&"codex"!==a.engine||null!==a.model&&"string"!=typeof a.model||a.model&&"claude"===a.engine&&!(0,m.OV)(a.model)||a.model&&"codex"===a.engine&&(a.model.length>128||!a.model.startsWith("gpt-")||/[\u0000-\u001f\u007f]/.test(a.model)))&&(null===a.effort||"string"==typeof a.effort&&!!(0,l.ve)(a.engine,a.model).includes(a.effort))&&(null===a.roleId||y.includes(a.roleId))&&("read-only"===a.access||"read-write"===a.access)&&(null===a.promptScaffold||"string"==typeof a.promptScaffold&&a.promptScaffold.length<=n.le)}function C(a){return null===a||"string"==typeof a}function D(a){return null==a||!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Number.isInteger(a.attempt)&&a.attempt>=1&&("pass"===a.edge||"fail"===a.edge)}function E(a,b){var c,d,e,f,g;if(!a||"object"!=typeof a||Array.isArray(a))return!1;return a.n===b+1&&(void 0===a.historical||"boolean"==typeof a.historical)&&["pending","spawning","running","reviewing","committing","passed","failed","needs_decision","skipped"].includes(String(a.state))&&B(a.effectiveRole)&&C(a.launchId)&&C(a.conversationId)&&C(a.sessionId)&&C(a.agentPath)&&C(a.paneId)&&(void 0===a.accountId||C(a.accountId))&&(void 0===a.usageLimitedAccounts||Array.isArray(a.usageLimitedAccounts)&&a.usageLimitedAccounts.every(a=>null!==a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.accountId&&a.accountId.length>0&&(void 0===a.engine||"claude"===a.engine||"codex"===a.engine)&&(null===a.resetsAt||Number.isSafeInteger(a.resetsAt)&&a.resetsAt>=0))&&new Set(a.usageLimitedAccounts.map(a=>`${a.engine??""}:${a.accountId}`)).size===a.usageLimitedAccounts.length)&&C(a.flowId)&&(void 0===a.expectedReviewHeadSha||C(a.expectedReviewHeadSha))&&(void 0===a.reviewHeadSha||C(a.reviewHeadSha))&&function(a){if(void 0===a)return!0;if(!a||"object"!=typeof a||Array.isArray(a))return!1;let b=a.hostClaim,c=null==b||"object"==typeof b&&!Array.isArray(b)&&/^(?:claude|codex):[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(String(b.sessionKey))&&/^(?:default|unknown|managed:[0-9a-f]{12})$/.test(String(b.accountRef)),d=["waiting_ready","spawn_pending","spawning","reviewing","relay_pending","relaying","fixing","approved","done_comment","needs_decision","paused","closed"];return"string"==typeof a.generation&&(void 0===a.sourceRevision||Number.isInteger(a.sourceRevision)&&a.sourceRevision>=0)&&Number.isInteger(a.roundCount)&&a.roundCount>=0&&C(a.implementerHeadSha)&&C(a.reviewerHeadSha)&&(null===a.verdict||["APPROVE","REQUEST_CHANGES","COMMENT"].includes(String(a.verdict)))&&d.includes(String(a.relayState))&&(null===a.terminalState||d.includes(String(a.terminalState)))&&c&&"string"==typeof a.synchronizedAt&&C(a.sourceUpdatedAt)&&(null===a.lagMs||"number"==typeof a.lagMs&&Number.isFinite(a.lagMs)&&a.lagMs>=0)}(a.reviewFlowSync)&&C(a.startedAt)&&C(a.completedAt)&&(void 0===a.input||C(a.input))&&D(a.activatedBy)&&C(a.output)&&(null===(c=a.verdict)||null!==(0,s.eh)(c))&&C(a.error)&&(void 0===a.decisionRequested||"boolean"==typeof a.decisionRequested)&&(void 0===(d=a.verdictRecovery)||!(!d||"object"!=typeof d||Array.isArray(d))&&["pending","recovered","exhausted"].includes(String(d.state))&&Number.isInteger(d.checks)&&d.checks>=0&&Number.isInteger(d.maxChecks)&&d.maxChecks>=1&&d.checks<=d.maxChecks&&"string"==typeof d.startedAt&&"string"==typeof d.lastCheckedAt&&C(d.nextCheckAt)&&"string"==typeof d.reason&&d.reason.length>0&&d.reason.length<=1e3&&(null===d.messageTs||"number"==typeof d.messageTs&&Number.isFinite(d.messageTs)&&d.messageTs>=0))&&function(a){if(null==a)return!0;if("object"!=typeof a||Array.isArray(a))return!1;let b=a.role;return"string"==typeof a.boundAt&&"string"==typeof a.stageDigest&&"string"==typeof a.prompt&&C(a.account)&&(null===b||!!(b&&"object"==typeof b&&!Array.isArray(b)&&y.includes(b.roleId)))&&(null===a.sandbox||"full"===a.sandbox||"restricted"===a.sandbox)&&(null===a.outputs||Array.isArray(a.outputs)&&a.outputs.every(a=>"string"==typeof a))}(a.definition)&&(null==(e=a.report)||!("object"!=typeof e||Array.isArray(e))&&Number.isSafeInteger(e.seq)&&e.seq>=1&&"string"==typeof e.at&&G(e.actor)&&null!==(0,s.eh)(e.verdict)&&C(e.summary)&&function(a){if(!a||"object"!=typeof a||Array.isArray(a))return!1;let b=a.pullRequest;return C(a.head)&&"string"==typeof a.branch&&(null===a.uncommitted||Array.isArray(a.uncommitted)&&a.uncommitted.every(a=>"string"==typeof a))&&(null===b||!!(b&&"object"==typeof b&&!Array.isArray(b)&&"string"==typeof b.url&&Number.isSafeInteger(b.number)&&"string"==typeof b.state))&&Array.isArray(a.outputs)&&a.outputs.every(a=>!!(a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.path&&"boolean"==typeof a.present))}(e.provenance)&&Number.isSafeInteger(e.calls)&&e.calls>=1)&&(void 0===(f=a.retiredLaunches)||Array.isArray(f)&&f.length<=50&&f.every(a=>null!==a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.launchId&&a.launchId.length>0&&C(a.conversationId)&&"string"==typeof a.error&&"string"==typeof a.retiredAt))&&(void 0===(g=a.unresolvedTermination)||!(!g||"object"!=typeof g||Array.isArray(g))&&"string"==typeof g.error&&"string"==typeof g.recordedAt&&Array.isArray(g.survivors)&&g.survivors.every(a=>null!==a&&"object"==typeof a&&Number.isSafeInteger(a.pid)&&C(a.startIdentity)&&(void 0===a.bootEpoch||C(a.bootEpoch))))}let F=["add-stage","remove-stage","reorder-stage","set-edge","override-stage"];function G(a){return!!(a&&"object"==typeof a&&!Array.isArray(a)&&("operator"===a.kind||"agent"===a.kind&&C(a.role)&&C(a.conversationId)))}function H(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&Number.isSafeInteger(a.seq)&&a.seq>=1&&"string"==typeof a.at&&G(a.actor)&&"string"==typeof a.stageId&&Number.isSafeInteger(a.attempt)&&a.attempt>=1&&["pass","fail","needs_decision"].includes(String(a.status))&&Number.isSafeInteger(a.findings)&&a.findings>=0&&(null===a.replaces||Number.isSafeInteger(a.replaces)&&a.replaces>=1)&&C(a.summary)}function I(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&Number.isSafeInteger(a.seq)&&a.seq>=1&&"string"==typeof a.at&&G(a.actor)&&F.includes(String(a.action))&&C(a.stageId)&&"string"==typeof a.pipelineState&&("applied"===a.effect||"pending-next-attempt"===a.effect)&&(null===a.appliesFromAttempt||Number.isSafeInteger(a.appliesFromAttempt)&&a.appliesFromAttempt>=1)&&"string"==typeof a.summary}function J(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Array.isArray(a.attempts)&&a.attempts.every(E)}function K(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Number.isInteger(a.attempt)&&C(a.conversationId)&&C(a.agentPath)&&(void 0===a.paneId||C(a.paneId))&&C(a.operationId)&&"string"==typeof a.detail&&"string"==typeof a.at}function L(a){var b;if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.role;if(!("string"==typeof a.id&&("run"===a.kind||"review-loop"===a.kind)&&"string"==typeof a.prompt&&(null===a.next||"string"==typeof a.next)&&(null==(b=a.onFail)||!(!b||"object"!=typeof b||Array.isArray(b))&&"string"==typeof b.to&&Number.isInteger(b.maxRounds)&&b.maxRounds>=1&&b.maxRounds<=q.e7)&&(void 0===c||c&&"object"==typeof c&&!Array.isArray(c)&&y.includes(c.roleId))&&(void 0===a.engine||"claude"===a.engine||"codex"===a.engine)&&(void 0===a.model||null===a.model||"string"==typeof a.model)&&(void 0===a.effort||null===a.effort||"string"==typeof a.effort)&&(void 0===a.access||"read-only"===a.access||"read-write"===a.access)&&(void 0===a.sandbox||"full"===a.sandbox||"restricted"===a.sandbox)&&(void 0===a.outputs||"run"===a.kind&&Array.isArray(a.outputs)&&a.outputs.length>0&&a.outputs.length<=q.Ze&&a.outputs.every((b,c)=>(0,r.k)(b)===b&&a.outputs.indexOf(b)===c))&&B(a.effectiveRole)))return!1;let d=a.effectiveRole,e=void 0===c?null:c.roleId;return(void 0===a.outputs||"read-only"===d.access)&&d.roleId===e&&("review-loop"!==a.kind||"read-only"===d.access)&&(void 0===a.engine||a.engine===d.engine)&&(void 0===a.model||a.model===d.model)&&(void 0===a.effort||a.effort===d.effort)&&(void 0===a.access||a.access===d.access)&&(null!==e||null===d.promptScaffold)&&(null===e||!!d.promptScaffold?.trim())&&!0}function M(a){let b=new Set(a.map(a=>a.id)),c=new Map(a.map(a=>[a.id,a.next]));for(let c of a){if(null!==c.next&&!b.has(c.next))return`stage ${c.id} next must reference an existing stage`;if(c.next===c.id)return`stage ${c.id} pass edge may not target itself`;let a=c.onFail??null;if("review-loop"===c.kind&&a)return`review-loop stage ${c.id} does not support onFail`;if(a&&!b.has(a.to))return`stage ${c.id} onFail must reference an existing stage`;if(a&&(!Number.isInteger(a.maxRounds)||a.maxRounds<1||a.maxRounds>q.e7))return`stage ${c.id} onFail maxRounds must be an integer between 1 and ${q.e7}`}for(let b of a){let d=b.next;for(let e=0;null!==d;e+=1){if(d===b.id||e>a.length)return`pipeline pass edges form a cycle through stage ${b.id}`;d=c.get(d)??null}}for(let b of a)if("review-loop"===b.kind&&!a.some(d=>{if("run"!==d.kind)return!1;let e=d.next;for(let d=0;null!==e&&d<=a.length;d+=1){if(e===b.id)return!0;e=c.get(e)??null}return!1})){let c=a.filter(a=>"run"===a.kind);if(0===c.length)return`review-loop stage ${b.id} is unreachable: the pipeline has no run stage, and a review-loop reviews the session of a run stage that reaches it`;let d=c.findLast(a=>null===a.next)??c.at(-1);return`review-loop stage ${b.id} is unreachable: no run stage's next chain reaches it — set next: "${b.id}" on run stage ${d.id}`}return null}function N(a){var b,c;if(!a||"object"!=typeof a||Array.isArray(a)||!("string"==typeof a.id&&"string"==typeof a.task&&Array.isArray(a.taskIds)&&a.taskIds.every(a=>"string"==typeof a)&&new Set(a.taskIds).size===a.taskIds.length&&(void 0===a.creationIntent||!(!(b=a.creationIntent)||"object"!=typeof b||Array.isArray(b))&&"task-spawn"===b.kind&&"string"==typeof b.taskId&&b.taskId.trim()&&"string"==typeof b.launchId&&b.launchId.trim())&&(void 0===a.spec||"string"==typeof a.spec)&&"string"==typeof a.project&&"string"==typeof a.repoDir&&"string"==typeof a.worktreeDir&&"string"==typeof a.branch&&"string"==typeof a.baseBranch&&"string"==typeof a.baseRef&&"string"==typeof a.lastPassedCommit&&(void 0===a.publication||"internal"===a.publication||"remote-branch"===a.publication)&&(void 0===a.publishedCommit||C(a.publishedCommit))&&Array.isArray(a.stages)&&a.stages.every(L)&&Array.isArray(a.runs)&&a.runs.every(J)&&["draft","provisioning","running","needs_decision","paused","completed","closed"].includes(String(a.state))&&(null===a.pausedState||["provisioning","running","needs_decision","completed","closed"].includes(String(a.pausedState)))&&(void 0===a.pausedAt||C(a.pausedAt))&&(void 0===a.resumedAt||C(a.resumedAt))&&C(a.stateDetail)&&C(a.srcPath)&&C(a.srcConversationId)&&"string"==typeof a.createdAt&&C(a.closedAt)&&(void 0===a.hiddenAt||C(a.hiddenAt))&&(void 0===a.dismissedAt||C(a.dismissedAt))&&(void 0===a.unconfirmedHosts||Array.isArray(a.unconfirmedHosts)&&a.unconfirmedHosts.every(K))&&(void 0===a.terminalReap||!(!(c=a.terminalReap)||"object"!=typeof c||Array.isArray(c))&&Number.isInteger(c.rounds)&&c.rounds>=0&&Number.isInteger(c.stopped)&&c.stopped>=0&&"string"==typeof c.lastAt&&(void 0===c.settledAttempts||Array.isArray(c.settledAttempts)&&c.settledAttempts.every(a=>"string"==typeof a))&&C(c.settledAt))&&(void 0===a.restored||"boolean"==typeof a.restored)&&(void 0===a.graphEdits||Array.isArray(a.graphEdits)&&a.graphEdits.length<=q.tq&&a.graphEdits.every(I))&&(void 0===a.stageReports||Array.isArray(a.stageReports)&&a.stageReports.length<=q.vz&&a.stageReports.every(H))&&(void 0===a.pos||"object"==typeof a.pos&&null!==a.pos&&Number.isFinite(a.pos.x)&&Number.isFinite(a.pos.y))))return!1;let d=a.stages,e=a.runs,f=+("draft"!==a.state);if(d.length<f||d.length>q.IO||e.length!==d.length)return!1;let g=d.map(a=>a.id);if(new Set(g).size!==g.length||null!==M(d)||e.some((a,b)=>a.stageId!==d[b].id))return!1;let h=i().join(i().dirname(a.repoDir),`${i().basename(a.repoDir)}-pipeline-${a.id}`);if(a.worktreeDir!==h||a.branch!==`pipeline/${ao(a.task)}-${a.id}`)return!1;let j=a.cursor;if(null!==j&&(!j||"object"!=typeof j||!g.includes(j.stageId)||!["pending","spawning","running","reviewing","committing"].includes(j.state)||!(void 0===j.input||C(j.input))||!D(j.activatedBy)||null!=j.activatedBy&&!g.includes(j.activatedBy.stageId))||("completed"===a.state||"closed"===a.state)&&null!==j)return!1;if("draft"===a.state){if(0===d.length){if(null!==j)return!1}else if(j?.stageId!==d[0].id||"pending"!==j.state)return!1;if(e.some(a=>a.attempts.length>0))return!1;let b=!a.baseBranch&&!a.baseRef&&!a.lastPassedCommit,c=!!(a.baseBranch&&/^[0-9a-f]{40}$/i.test(a.baseRef)&&a.lastPassedCommit===a.baseRef);if(!b&&!c||a.closedAt)return!1}return!0}function O(){return Z().snapshot()}function P(){let a=(0,p.M)(x(),["pipelines","pipelines_archive"]),b=a.get("pipelines"),c=a.get("pipelines_archive");if(null===b!=(null===c))throw new z("pipeline startup collections are incomplete");let d=null===b&&null===c?[...Q(v(),!1,!0),...Q(w(),!1,!0)]:[...b??[],...c??[]];if(!d.every(N))throw new z("pipeline registry contains malformed records");if(new Set(d.map(a=>a.id)).size!==d.length)throw new z("pipeline startup records have contradictory identities");return d.map(S)}function Q(a,b,c=!1){let d=function(a){try{return JSON.parse(g().readFileSync(a,"utf8"))}catch(b){if("ENOENT"===b.code)return;throw new z(`could not read pipeline registry: ${a}`,{cause:b})}}(a);if(void 0===d||null===d&&!c)return[];if(!d||"object"!=typeof d||Array.isArray(d)){if(b)return[];throw new z("pipeline registry must be an object")}if("number"!=typeof d.schemaVersion||!u.has(d.schemaVersion)){if(b)return[];throw new z(`unsupported pipeline registry schema: ${String(d.schemaVersion)}`)}if(!Array.isArray(d.pipelines)){if(b)return[];throw new z("pipeline registry contains malformed records")}let e=d.pipelines.map(a=>{var b,c,e;let f;return f=2===(b=d.schemaVersion)?function(a){if(!a||"object"!=typeof a||Array.isArray(a))return a;let b=Array.isArray(a.stages)?a.stages.map(a=>a&&"object"==typeof a?{onFail:null,...a}:a):a.stages,c=Array.isArray(a.runs)?a.runs.map(a=>a&&"object"==typeof a&&Array.isArray(a.attempts)?{...a,attempts:a.attempts.map(a=>a&&"object"==typeof a?{input:null,activatedBy:null,...a}:a)}:a):a.runs,d=a.cursor&&"object"==typeof a.cursor?{input:null,activatedBy:null,...a.cursor}:a.cursor,e={...a,stages:b,runs:c,cursor:d};if("draft"===e.state&&Array.isArray(e.stages)&&0===e.stages.length){let a={id:"implement",kind:"run",prompt:"{{task}}",next:null,onFail:null,effectiveRole:{roleId:null,engine:"claude",model:null,effort:null,access:"read-write",promptScaffold:null}};e.stages=[a],e.runs=[{stageId:a.id,attempts:[]}],e.cursor={stageId:a.id,state:"pending",input:null,activatedBy:null}}return e}(a):a,b<4&&(f=!(c=f)||"object"!=typeof c||Array.isArray(c)?c:{taskIds:[],...c}),b<5&&(f=!(e=f)||"object"!=typeof e||Array.isArray(e)?e:Array.isArray(e.stages)?{...e,stages:e.stages.map(a=>!a||"object"!=typeof a||Array.isArray(a)?a:"review-loop"===a.kind?{...a,onFail:null}:a)}:e),f});if(!b&&!e.every(N))throw new z("pipeline registry contains malformed records");let f=b?e.filter(N):e;return b&&f.length!==e.length&&console.error(`[pipelines] skipped ${e.length-f.length} malformed archived pipeline record(s)`),f.map(S)}function R(){let a=Q(v(),!1),b=Q(w(),!0);return{pipelines:{records:a.length,keys:a.map(a=>a.id)},archive:{records:b.length,keys:b.map(a=>a.id)}}}function S(a){let b=a.terminalReap?.settledAttempts??(a.terminalReap?.settledAt?a.runs.flatMap(a=>a.attempts.filter(a=>!!(a.verdict||a.completedAt)).map(b=>`${a.stageId}:${b.n}`)):[]);return{...a,project:(0,k.G$)(a.project),taskIds:[...a.taskIds],creationIntent:a.creationIntent?{...a.creationIntent}:void 0,spec:"string"==typeof a.spec?a.spec:void 0,baseBranch:a.baseBranch??"",baseRef:a.baseRef??"",lastPassedCommit:a.lastPassedCommit??"",publishedCommit:a.publishedCommit??null,pausedState:a.pausedState??null,stateDetail:a.stateDetail??null,srcPath:a.srcPath??null,srcConversationId:a.srcConversationId??null,closedAt:a.closedAt??null,hiddenAt:a.hiddenAt??null,unconfirmedHosts:a.unconfirmedHosts?.length?a.unconfirmedHosts.map(a=>({...a})):void 0,terminalReap:a.terminalReap?{...a.terminalReap,settledAttempts:[...b]}:void 0,restored:void 0,stages:a.stages.map(a=>({...a,onFail:a.onFail??null})),cursor:a.cursor?{...a.cursor,input:a.cursor.input??null,activatedBy:a.cursor.activatedBy??null}:null,runs:a.runs.map(a=>({...a,attempts:Array.isArray(a.attempts)?a.attempts.map(a=>({...a,launchId:a.launchId??null,conversationId:a.conversationId??null,sessionId:a.sessionId??null,agentPath:a.agentPath??null,paneId:a.paneId??null,...a.usageLimitedAccounts?{usageLimitedAccounts:a.usageLimitedAccounts.map(a=>({...a}))}:{},flowId:a.flowId??null,expectedReviewHeadSha:a.expectedReviewHeadSha??null,reviewHeadSha:a.reviewHeadSha??null,reviewFlowSync:a.reviewFlowSync?{...a.reviewFlowSync}:void 0,startedAt:a.startedAt??null,completedAt:a.completedAt??null,input:a.input??null,activatedBy:a.activatedBy??null,output:a.output??null,verdict:a.verdict??null,error:a.error??null,verdictRecovery:a.verdictRecovery?{...a.verdictRecovery}:void 0,...a.retiredLaunches?{retiredLaunches:a.retiredLaunches.map(a=>({...a}))}:{},unresolvedTermination:a.unresolvedTermination?{...a.unresolvedTermination,survivors:a.unresolvedTermination.survivors.map(a=>({...a}))}:void 0})):[]}))}}let T=null,U=new Map;function V(a){if(!N(a))throw new z("pipeline registry contains malformed records");return S(a)}function W(a){return"closed"===a.state?!!a.unconfirmedHosts?.length:"completed"!==a.state||!!a.unconfirmedHosts?.length||!a.terminalReap?.settledAt}function X(){return[{collection:"pipelines",schemaVersion:t,migrationId:"pipelines-json-v1",loadRecords:()=>Q(v(),!1),key:a=>a.id,controllerActive:W},{collection:"pipelines_archive",schemaVersion:t,migrationId:"pipelines-archive-json-v1",loadRecords:()=>Q(w(),!0),key:a=>a.id,controllerActive:()=>!1}]}function Y(){let a=x(),b=U.get(a);if(b)return b;(0,p.t0)(a,X());let c={schemaVersion:t,busyMessage:"pipeline state is busy",key:a=>a.id,decode:V,clone:S,decodeError:a=>a instanceof z?a:new z("pipeline registry contains malformed records",{cause:a}),validate:a=>{if(!N(a))throw new z("refusing to persist a malformed pipeline record")}},d={active:new p.UY(a,{...c,collection:"pipelines",controllerActive:W,strictDecode:!0}),archive:new p.UY(a,{...c,collection:"pipelines_archive",onDecodeError:a=>console.error("[pipelines] skipped malformed archived SQLite row",a)})};return U.set(a,d),d}function Z(){return Y().active}function $(){return Y().archive}function _(){return Z().signature()}function aa(){let a=_();if(T?.signature===a)return T.pipelines;let b=[...Z().loadReadonly()],c=_();return a===c&&(T={signature:c,pipelines:b}),b}function ab(){return aa().map(S)}function ac(){return aa()}function ad(){let a=Number(process.env.LLV_PIPELINE_LOCK_WAIT_MS);return Number.isFinite(a)&&a>=0?a:3e4}async function ae(a){return(0,o.aO)(b=>Z().mutate((c,d)=>(b(),a(c,d)),void 0,!1,ad()))}async function af(a){return Z().mutate(a,void 0,!0)}async function ag(a){let b=!1;try{return P(),await ae(()=>(b=!0,a(!0)))}catch(c){if(b)throw c;return a(!1)}}function ah(a){Z().replaceSync(a)}function ai(){return $().snapshot()}async function aj(a=Date.now(),b={}){return Z().moveMatchingTo($(),b=>(function(a,b){let c=a.closedAt??("draft"===a.state?a.hiddenAt:null);if(!c)return!1;let d=Date.parse(c);return Number.isFinite(d)&&b-d>2592e5})(b,a),b)}function ak(){let{active:a,archive:b}=Y();return{pipelines:a.checkpointMirrorForDemotion((a,b)=>{A(v(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})}),pipelinesArchive:b.checkpointMirrorForDemotion((a,b)=>{A(w(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})})}}async function al(){let{active:a,archive:b}=Y();return{pipelines:await a.checkpointMirrorForDemotionAsync((a,b)=>{A(v(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})}),pipelinesArchive:await b.checkpointMirrorForDemotionAsync((a,b)=>{A(w(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})})}}function am(a){return O().find(b=>b.id===a)??ai().find(b=>b.id===a)??null}function an(a,b,c,d={}){let e=new Map(c.map(a=>[a.id,a]));for(let c of b){let b=e.get(c);if(!b){if(d.allowMissing)continue;return`task not found: ${c}`}if(b.project!==a.project)return`task project does not match pipeline project: ${c}`}return null}function ao(a){return a.toLowerCase().replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"").slice(0,40).replace(/-+$/,"")||"task"}function ap(a,b,c){let d=i().basename(c);return{worktreeDir:i().join(i().dirname(c),`${d}-pipeline-${a}`),branch:`pipeline/${ao(b)}-${a}`}}function aq(a){let b=ap(a.id,a.task,a.repoDir);return{id:a.id,task:a.task,taskIds:[...new Set(a.taskIds??[])],...a.creationIntent?{creationIntent:{...a.creationIntent}}:{},...a.spec?{spec:a.spec}:{},project:a.project,repoDir:a.repoDir,...b,baseBranch:"",baseRef:"",lastPassedCommit:"",...a.publication?{publication:a.publication}:{},publishedCommit:null,stages:JSON.parse(JSON.stringify(a.stages)).map(a=>({...a,onFail:a.onFail??null})),runs:a.stages.map(a=>({stageId:a.id,attempts:[]})),cursor:a.stages.length?{stageId:a.stages[0].id,state:"pending",input:null,activatedBy:null}:null,state:a.state??"provisioning",pausedState:null,stateDetail:null,srcPath:a.srcPath,srcConversationId:a.srcConversationId,createdAt:a.now,closedAt:null,hiddenAt:null}}function ar(a){return i().join((0,j.BQ)("pipelines"),a)}},22371:(a,b,c)=>{c.d(b,{le:()=>k,pQ:()=>o,e3:()=>p});var d=c(73024),e=c.n(d);c(76760);var f=c(27146),g=c(22619),h=c(51888),i=c(49048);let j=["orchestrator","reviewer","verifier","builder","architect","cleaner","prod-auditor","deployer"],k=12e3;class l extends Error{constructor(a,b){super(a,b),this.name="RoleStoreError"}}let m=()=>(0,f.BQ)("role-presets.json");function n(a){return i.W.map(b=>{let c=a[b.id];return{...b,config:{...b.config,...c?.config},promptScaffold:c?.promptScaffold??b.promptScaffold}})}function o(){return n(function(){let a,b;try{a=e().readFileSync(m(),"utf8")}catch(a){if("ENOENT"===a.code)return{schemaVersion:1,overrides:{}};throw new l(`could not read role override registry: ${m()}`,{cause:a})}try{b=JSON.parse(a)}catch(a){throw new l("role override registry contains malformed JSON",{cause:a})}if(1!==b.schemaVersion)throw new l(`unsupported role override schema: ${String(b.schemaVersion)}`);if(!b.overrides||"object"!=typeof b.overrides||Array.isArray(b.overrides))throw new l("role override registry must contain an overrides object");let c={};for(let[a,d]of Object.entries(b.overrides)){if(!("string"==typeof a&&j.includes(a))||!function(a){if(!a||"object"!=typeof a||Array.isArray(a)||Object.keys(a).some(a=>"config"!==a&&"promptScaffold"!==a)||void 0!==a.promptScaffold&&("string"!=typeof a.promptScaffold||a.promptScaffold.length>k))return!1;if(void 0!==a.config){if(!a.config||"object"!=typeof a.config||Array.isArray(a.config)||Object.keys(a.config).some(a=>"engine"!==a&&"model"!==a&&"effort"!==a))return!1;let{engine:b,model:c,effort:d}=a.config;if(void 0!==b&&"claude"!==b&&"codex"!==b||void 0!==c&&("string"!=typeof c||c.length>128)||void 0!==d&&("string"!=typeof d||d.length>32))return!1}return!0}(d)||!function(a,b){let c={...i.W.find(b=>b.id===a).config,...b.config};if(c.model.length>128||/[\u0000-\u001f\u007f]/.test(c.model)||"claude"===c.engine&&!(0,h.OV)(c.model)||"codex"===c.engine&&!c.model.startsWith("gpt-"))return!1;let d=(0,g.ve)(c.engine,c.model);if(!d.includes(c.effort))throw new l(`invalid role override: ${a}; effort for ${c.engine}/${c.model} must be one of: ${d.join(", ")}`);return!0}(a,d))throw new l(`invalid role override: ${a}`);c[a]=d}return{schemaVersion:1,overrides:c}}().overrides)}function p(){try{return o()}catch(a){return console.warn("[roles] override registry unreadable; falling back to built-in defaults",a),n({})}}},22619:(a,b,c)=>{c.d(b,{BL:()=>k,ck:()=>g,ve:()=>j});let d=["low","medium","high","xhigh","max"],e=["low","medium","high","xhigh"],f=["minimal","low","medium","high","xhigh","max","ultra"];function g(a){return f.includes(a)}let h=[[/^gpt-6-astra\b/,["low","medium","high","xhigh","max","ultra"]],[/^gpt-5\.6-(sol|terra)\b/,["low","medium","high","xhigh","max","ultra"]],[/^gpt-5\.6\b/,["low","medium","high","xhigh","max"]]],i=["off","minimal","low","medium","high","xhigh","max"];function j(a,b){if("claude"===a)return d;if("openclaw"===a)return i;if("codex"!==a)return null;let c=(b??"").trim().toLowerCase();for(let[a,b]of h)if(a.test(c))return b;return e}function k(a,b){let c="string"==typeof b.effort?b.effort.trim():"",d=j(a,"string"==typeof b.model?b.model:null);return c&&!d.includes(c)?{effort:null,fast:null,error:`effort for ${a} must be one of: ${d.join(", ")}`}:{effort:c||null,fast:"codex"===a&&"boolean"==typeof b.fast?b.fast:null}}},38751:(a,b,c)=>{c.d(b,{E2:()=>s,G$:()=>r,JC:()=>v,YX:()=>x,oh:()=>y});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(14928),l=c(46211);let m=null;function n(){return(0,j.BQ)("project-aliases.json")}function o(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=Object.entries(a);return b.every(([a,b])=>!!a.trim()&&"string"==typeof b&&!!b.trim())?Object.fromEntries(b):null}function p(){let a,b=n();try{a=g().statSync(b)}catch{return(m={file:b,mtimeMs:-1,size:-1,snapshot:{aliases:{},displayNames:{}}}).snapshot}if(m&&m.file===b&&m.mtimeMs===a.mtimeMs&&m.size===a.size)return m.snapshot;try{let c=JSON.parse(g().readFileSync(b,"utf8")),d=1===c.schemaVersion?o(c.aliases):null,e=1===c.schemaVersion?o(c.displayNames):null,f=d&&e?{aliases:d,displayNames:e}:{aliases:{},displayNames:{}};return m={file:b,mtimeMs:a.mtimeMs,size:a.size,snapshot:f},f}catch{let c={aliases:{},displayNames:{}};return m={file:b,mtimeMs:a.mtimeMs,size:a.size,snapshot:c},c}}function q(a,b){let c=a,d=new Set;for(;b[c]&&!d.has(c);)d.add(c),c=b[c];return d.has(c)?a:c}function r(a){return q(a,p().aliases)}function s(){let a=p();return{aliases:{...a.aliases},displayNames:{...a.displayNames}}}function t(a){try{let b=JSON.parse(g().readFileSync((0,j.BQ)(a),"utf8"));return b&&"object"==typeof b&&!Array.isArray(b)?b:null}catch{return null}}function u(a,b,c){let d=(["flows","pipelines","workflows"].includes(b)?(0,k.Vx)((0,j.BQ)("state.sqlite"),b):null)??t(a)?.[b];if(!Array.isArray(d))return[];let e=[];for(let a of d)!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.project&&a.project.trim()&&"string"==typeof a[c]&&a[c].trim()&&e.push([a.project,a[c]]);return e}function v(){let a=function(){let a=t("worktree-map.json");if(!a)return new Map;let b=new Map;for(let[c,d]of Object.entries(a)){if(!d||"object"!=typeof d||Array.isArray(d))continue;let a=d.repo;"string"==typeof a&&a.trim()&&b.set(c,a)}return b}(),b=[...u("flows.json","flows","cwd"),...u("pipelines.json","pipelines","repoDir"),...u("workflows.json","workflows","repoDir")],c=new Map;for(let[d,e]of b){let b=(0,l.V5)(e)??a.get(e),f=b?(0,l.im)(b):null;if(!f)continue;let g=c.get(d)??new Map,h=g.get(f.project)??{registration:{source:d,target:f.project,displayName:f.displayName},records:0};h.records+=1,g.set(f.project,h),c.set(d,g)}let d=[],e=[];for(let[a,b]of c){if(b.has(a)){b.size>1&&e.push(a);continue}let c=[...b.values()].sort((a,b)=>b.records-a.records),f=c.reduce((a,b)=>a+b.records,0),g=c[0];2*g.records>f?d.push(g.registration):e.push(a)}let f=function(a){let b=new Map(a.map(a=>[a.source,a.target])),c=new Set,d=new Set;for(let[a,e]of[["tasks.json","tasks"],["flows.json","flows"],["pipelines.json","pipelines"],["workflows.json","workflows"]]){let f=new Map;for(let g of function(a,b){let c=(["flows","pipelines","workflows"].includes(b)?(0,k.Vx)((0,j.BQ)("state.sqlite"),b):null)??t(a)?.[b];return Array.isArray(c)?c.filter(a=>!!a&&"object"==typeof a&&!Array.isArray(a)):[]}(a,e)){if("string"!=typeof g.id||!g.id.trim()||"string"!=typeof g.project||!g.project.trim())continue;let a=r(g.project),h=b.get(a)??a,i=`${h}\0${g.id}`,j=f.get(i);j&&j!==a?(c.add(`${e} id collision`),b.has(j)&&d.add(j),b.has(a)&&d.add(a)):f.set(i,a)}}return{labels:[...c],sources:d}}(d);return e.push(...f.labels),{registrations:d.filter(a=>!f.sources.has(a.source)),conflicts:e}}function w(a){let b=p(),c={...b.aliases},d={...b.displayNames};for(let b of a){let a=b.source.trim(),e=q(b.target.trim(),c),f=b.displayName.trim();if(!a||!e||!f)return null;let g=c[a]?q(c[a],c):null;if(g&&g!==e)return null;a!==e&&(c[a]=e),d[e]=f}return{aliases:c,displayNames:d}}function x(a){return null!==w(a)}function y(a){if(0===a.length)return!0;let b=w(a);if(!b)return!1;let c=n(),d=i().join(i().dirname(c),`.${i().basename(c)}.${process.pid}.${e().randomUUID()}.tmp`);try{return g().mkdirSync(i().dirname(c),{recursive:!0,mode:448}),g().writeFileSync(d,JSON.stringify({schemaVersion:1,...b},null,2)+"\n",{encoding:"utf8",mode:384}),g().renameSync(d,c),m=null,p(),!0}catch{try{g().rmSync(d,{force:!0})}catch{}return!1}}},46211:(a,b,c)=>{c.d(b,{MO:()=>m,Mv:()=>l,NP:()=>o,V5:()=>t,im:()=>u,qe:()=>p,rj:()=>q,z:()=>n});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(48161),i=c.n(h),j=c(76760),k=c.n(j);let l="project_unresolved",m="Unresolved project";function n(a){return/^(?:repo|dir)-[0-9a-f]{32}$/.test(a)}function o(a){let b=(()=>{try{return g().realpathSync.native(a)}catch{return k().resolve(a)}})(),c=k().basename(b);if(!c||b===k().sep)return null;let d=b===i().homedir()?`home-${c}`:c;return{project:p(b),displayName:d}}function p(a){return`dir-${e().createHash("sha256").update(`dir:${a}`).digest("hex").slice(0,32)}`}function q(a){return a===l?m:a}function r(a){try{return g().statSync(k().join(a,"HEAD")).isFile()}catch{return!1}}function s(a){let b=k().join(a,".git");try{let c=g().lstatSync(b);if(c.isDirectory())return r(b)?b:null;if(!c.isFile())return null;let d=g().readFileSync(b,"utf8").slice(0,4096),e=/^gitdir:\s*(.+?)\s*$/im.exec(d)?.[1];if(!e)return null;let f=k().resolve(a,e);return r(f)?f:null}catch{return null}}function t(a){let b=k().resolve(a);for(;;){if(s(b))return b;let a=k().dirname(b);if(a===b)return null;b=a}}function u(a){let b,c=s(a);if(!c)return null;try{b=g().readFileSync(k().join(function(a){try{let b=g().readFileSync(k().join(a,"commondir"),"utf8").trim();return b?k().resolve(a,b):a}catch{return a}}(c),"config"),"utf8")}catch{return null}let d=function(a){let b=!1;for(let c of a.split(/\r?\n/)){let a=/^\s*\[\s*remote\s+"([^"]+)"\s*\]\s*$/i.exec(c);if(a){b="origin"===a[1];continue}if(/^\s*\[/.test(c)){b=!1;continue}if(!b)continue;let d=/^\s*url\s*=\s*(.*?)\s*$/i.exec(c)?.[1],e=d?.replace(/\s+[;#].*$/,"").trim();if(e)return e}return null}(b),f=(()=>{try{return g().realpathSync.native(a)}catch{return k().resolve(a)}})(),h=d?function(a,b){let c=/^[a-z][a-z0-9+.-]*:\/\//i.test(a)?null:/^(?:[^@\s]+@)?([^:/\s]+):(.+)$/.exec(a);if(c){let a=c[1].toLowerCase(),b=c[2].replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return b?`${a}/${b}`:null}try{let b=new URL(a);if("file:"===b.protocol){let a=k().resolve(b.pathname).replace(/\.git$/i,"");return`file:${a}`}let c=b.hostname.toLowerCase(),d=b.port?`:${b.port}`:"",e=b.pathname.replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return c&&e?`${c}${d}/${e}`:null}catch{let c=k().resolve(b,a).replace(/\.git$/i,"");return`file:${c}`}}(d,a):`local:${f}`;return h?function(a){let b=a.replace(/^file:/,"").split("/").filter(Boolean).at(-1)?.trim()||null;if(!b)return null;let c=e().createHash("sha256").update(a).digest("hex").slice(0,32);return{project:`repo-${c}`,displayName:b,canonicalRemote:a}}(h):null}},49048:(a,b,c)=>{c.d(b,{W:()=>j});var d=c(51888);let e=["Read-only mode: edits, staging, commits, pushes, service restarts, and GitHub comments are prohibited.","Every finding carries file:line evidence. Clean work earns a clear NO FINDINGS verdict."],f="Three standing rules. (1) Anchor the frame: when the assignment carries the requester's originating requirement, validate the work against that verbatim requirement, never against the artifact's previous revision — WRONG-PREMISE (\"this does not serve the original requirement\") is an expected verdict and outranks any finding about internal rigour. (2) Over-engineering pass: on every review, flag machinery heavier than the problem it solves (a library plus wrapper where a native primitive does), name the simpler mechanism, and report what to cut — OVER-BUILT is a first-class verdict, and a round that only removes scope is a successful round. (3) Rendered surfaces are part of correctness: when the diff touches UI (components, styles, layout), the review covers the rendered result and the code alike. Check that the author's rendered evidence reaches every surface and every viewport the requirement names; evidence that skips a named surface is REQUEST_CHANGES on its own. Where that evidence is missing and a harness exists, render from an export of the reviewed HEAD — never the live worktree, never the operator's Viewer — and report overflow, clipped or zero-width controls, overlap and unreadable states as severity-ranked findings carrying the viewport and the measured numbers.",g="Before deciding, and whenever a problem or unknown appears, ask whether it was solved before: run a few search_transcripts queries in different phrasings (project-scoped, then unscoped), read any hit through conversation_messages at its transcript path, cite what you found or say nothing relevant existed, and check an old answer against current main before building on it.",h="Decide yourself whatever the code, the running system or one cheap observation can settle; never ask the operator what you can find out. Stop and ask when the work rests on a fact you could not confirm (an external API's shape, a service's behaviour, access you lack, a rate limit that blocks the check) or on a requirement that reads two ways and changes what gets built: report needs_decision saying in two or three plain sentences what you tried, what you could not confirm and what the options are. Never finish on a guess and mention the gap in passing.",i="Process cleanup: stop only the processes you started yourself, each by the PID you recorded when you started it. Never stop anything by port, name or pattern — no fuser -k, no lsof piped into kill, no pkill, no killall — because a match can be the operator's own long-running process. A port that is already in use is a reason to pick another port, never a reason to free it; a probe or stub server binds port 0 and reads the assigned port back.",j=[{id:"orchestrator",name:"Orchestrator",description:"Coordinates fresh agents through the Viewer control plane.",config:{engine:"claude",model:"opus",effort:"high"},parameters:[{key:"mode",label:"Mode",description:"Operating mode for the coordination run.",kind:"select",options:["standard","plan-tickets","wayfind","backlog-campaign"]},{key:"repo",label:"Repository",description:"Repository for backlog-campaign mode.",kind:"text"},{key:"issueQuery",label:"Issue query",description:"GitHub issue query for backlog-campaign mode.",kind:"text"},{key:"urgent",label:"Urgent list",description:"Comma-separated urgent issue ids.",kind:"text"},{key:"maxWorkers",label:"Maximum workers",description:"Worker cap for backlog-campaign mode.",kind:"integer",default:3,min:1,max:20},{key:"mergePolicy",label:"Merge policy",description:"Delivery policy for backlog-campaign mode.",kind:"select",options:["pr","merge"]},{key:"completionPolicy",label:"Completion policy",description:"Terminal policy for backlog-campaign mode.",kind:"select",options:["pr-opened","merged","released"]}],promptScaffold:`You are the Orchestrator. Drive work through the production Viewer MCP tools. Use fresh empty sessions with src lineage; forks are disabled. Keep every worker visible and controllable in the Viewer.
1
+ "use strict";exports.id=8027,exports.ids=[8027],exports.modules={9740:(a,b,c)=>{c.d(b,{k:()=>g,z:()=>h});var d=c(76760),e=c.n(d),f=c(10900);function g(a){if("string"!=typeof a)return null;let b=a.trim().replace(/\/+$/u,"");if(!b||b.length>f.NF||e().posix.isAbsolute(b)||e().win32.isAbsolute(b)||b.startsWith(":")||/[\\*?[\]\u0000-\u001f\u007f]/u.test(b))return null;let c=b.split("/");return c.some(a=>!a||"."===a||".."===a)||".git"===c[0].toLowerCase()?null:b}function h(a,b){return b.some(b=>a===b||a.startsWith(`${b}/`))}},10900:(a,b,c)=>{c.d(b,{Gr:()=>j,IO:()=>f,NF:()=>e,Ze:()=>d,e7:()=>g,ic:()=>k,tq:()=>h,vz:()=>i});let d=20,e=240,f=8,g=9,h=50,i=50,j=50,k=2e3},18027:(a,b,c)=>{c.r(b),c.d(b,{PIPELINES_SCHEMA_VERSION:()=>t,PipelineStoreError:()=>z,archiveSettledPipelines:()=>aj,buildPipeline:()=>aq,checkpointPipelineRollbackMirrorsForDemotion:()=>ak,checkpointPipelineRollbackMirrorsForDemotionAsync:()=>al,findPipelineRecord:()=>am,isEffectiveRole:()=>B,loadArchivedPipelines:()=>ai,loadPipelines:()=>O,loadPipelinesForList:()=>ac,loadPipelinesForProjection:()=>ab,loadPipelinesForStartup:()=>P,pipelineArtifactsDir:()=>ar,pipelineGraphError:()=>M,pipelineIdentity:()=>ap,pipelineLockWaitMs:()=>ad,pipelineStateCollectionSeeds:()=>X,pipelineTaskLinkError:()=>an,planPipelineStateMigration:()=>R,savePipelines:()=>ah,withPipelineControllerMutation:()=>af,withPipelineMutation:()=>ae,withPipelineStartupAdmission:()=>ag});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(38751),l=c(22619),m=c(51888),n=c(22371),o=c(89204),p=c(14928),q=c(10900),r=c(9740),s=c(97223);let t=5,u=new Set([2,3,4,5]),v=()=>(0,j.BQ)("pipelines.json"),w=()=>(0,j.BQ)("pipelines-archive.json"),x=()=>(0,j.BQ)("state.sqlite"),y=["orchestrator","reviewer","verifier","builder","architect","cleaner","prod-auditor","deployer"];class z extends Error{constructor(a,b){super(a,b),this.name="PipelineStoreError"}}function A(a,b){g().mkdirSync(i().dirname(a),{recursive:!0});let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`);g().writeFileSync(c,JSON.stringify(b,null,2)+"\n","utf8"),g().renameSync(c,a)}function B(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&!("claude"!==a.engine&&"codex"!==a.engine||null!==a.model&&"string"!=typeof a.model||a.model&&"claude"===a.engine&&!(0,m.OV)(a.model)||a.model&&"codex"===a.engine&&(a.model.length>128||!a.model.startsWith("gpt-")||/[\u0000-\u001f\u007f]/.test(a.model)))&&(null===a.effort||"string"==typeof a.effort&&!!(0,l.ve)(a.engine,a.model).includes(a.effort))&&(null===a.roleId||y.includes(a.roleId))&&("read-only"===a.access||"read-write"===a.access)&&(null===a.promptScaffold||"string"==typeof a.promptScaffold&&a.promptScaffold.length<=n.le)}function C(a){return null===a||"string"==typeof a}function D(a){return null==a||!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Number.isInteger(a.attempt)&&a.attempt>=1&&("pass"===a.edge||"fail"===a.edge)}function E(a,b){var c,d,e,f,g;if(!a||"object"!=typeof a||Array.isArray(a))return!1;return a.n===b+1&&(void 0===a.historical||"boolean"==typeof a.historical)&&["pending","spawning","running","reviewing","committing","passed","failed","needs_decision","skipped"].includes(String(a.state))&&B(a.effectiveRole)&&C(a.launchId)&&C(a.conversationId)&&C(a.sessionId)&&C(a.agentPath)&&C(a.paneId)&&(void 0===a.accountId||C(a.accountId))&&(void 0===a.usageLimitedAccounts||Array.isArray(a.usageLimitedAccounts)&&a.usageLimitedAccounts.every(a=>null!==a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.accountId&&a.accountId.length>0&&(void 0===a.engine||"claude"===a.engine||"codex"===a.engine)&&(null===a.resetsAt||Number.isSafeInteger(a.resetsAt)&&a.resetsAt>=0))&&new Set(a.usageLimitedAccounts.map(a=>`${a.engine??""}:${a.accountId}`)).size===a.usageLimitedAccounts.length)&&C(a.flowId)&&(void 0===a.expectedReviewHeadSha||C(a.expectedReviewHeadSha))&&(void 0===a.reviewHeadSha||C(a.reviewHeadSha))&&function(a){if(void 0===a)return!0;if(!a||"object"!=typeof a||Array.isArray(a))return!1;let b=a.hostClaim,c=null==b||"object"==typeof b&&!Array.isArray(b)&&/^(?:claude|codex):[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(String(b.sessionKey))&&/^(?:default|unknown|managed:[0-9a-f]{12})$/.test(String(b.accountRef)),d=["waiting_ready","spawn_pending","spawning","reviewing","relay_pending","relaying","fixing","approved","done_comment","needs_decision","paused","closed"];return"string"==typeof a.generation&&(void 0===a.sourceRevision||Number.isInteger(a.sourceRevision)&&a.sourceRevision>=0)&&Number.isInteger(a.roundCount)&&a.roundCount>=0&&C(a.implementerHeadSha)&&C(a.reviewerHeadSha)&&(null===a.verdict||["APPROVE","REQUEST_CHANGES","COMMENT"].includes(String(a.verdict)))&&d.includes(String(a.relayState))&&(null===a.terminalState||d.includes(String(a.terminalState)))&&c&&"string"==typeof a.synchronizedAt&&C(a.sourceUpdatedAt)&&(null===a.lagMs||"number"==typeof a.lagMs&&Number.isFinite(a.lagMs)&&a.lagMs>=0)}(a.reviewFlowSync)&&C(a.startedAt)&&C(a.completedAt)&&(void 0===a.input||C(a.input))&&D(a.activatedBy)&&C(a.output)&&(null===(c=a.verdict)||null!==(0,s.eh)(c))&&C(a.error)&&(void 0===a.decisionRequested||"boolean"==typeof a.decisionRequested)&&(void 0===(d=a.verdictRecovery)||!(!d||"object"!=typeof d||Array.isArray(d))&&["pending","recovered","exhausted"].includes(String(d.state))&&Number.isInteger(d.checks)&&d.checks>=0&&Number.isInteger(d.maxChecks)&&d.maxChecks>=1&&d.checks<=d.maxChecks&&"string"==typeof d.startedAt&&"string"==typeof d.lastCheckedAt&&C(d.nextCheckAt)&&"string"==typeof d.reason&&d.reason.length>0&&d.reason.length<=1e3&&(null===d.messageTs||"number"==typeof d.messageTs&&Number.isFinite(d.messageTs)&&d.messageTs>=0))&&function(a){if(null==a)return!0;if("object"!=typeof a||Array.isArray(a))return!1;let b=a.role;return"string"==typeof a.boundAt&&"string"==typeof a.stageDigest&&"string"==typeof a.prompt&&C(a.account)&&(null===b||!!(b&&"object"==typeof b&&!Array.isArray(b)&&y.includes(b.roleId)))&&(null===a.sandbox||"full"===a.sandbox||"restricted"===a.sandbox)&&(null===a.outputs||Array.isArray(a.outputs)&&a.outputs.every(a=>"string"==typeof a))}(a.definition)&&(null==(e=a.report)||!("object"!=typeof e||Array.isArray(e))&&Number.isSafeInteger(e.seq)&&e.seq>=1&&"string"==typeof e.at&&G(e.actor)&&null!==(0,s.eh)(e.verdict)&&C(e.summary)&&function(a){if(!a||"object"!=typeof a||Array.isArray(a))return!1;let b=a.pullRequest;return C(a.head)&&"string"==typeof a.branch&&(null===a.uncommitted||Array.isArray(a.uncommitted)&&a.uncommitted.every(a=>"string"==typeof a))&&(null===b||!!(b&&"object"==typeof b&&!Array.isArray(b)&&"string"==typeof b.url&&Number.isSafeInteger(b.number)&&"string"==typeof b.state))&&Array.isArray(a.outputs)&&a.outputs.every(a=>!!(a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.path&&"boolean"==typeof a.present))}(e.provenance)&&Number.isSafeInteger(e.calls)&&e.calls>=1)&&(void 0===(f=a.retiredLaunches)||Array.isArray(f)&&f.length<=50&&f.every(a=>null!==a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.launchId&&a.launchId.length>0&&C(a.conversationId)&&"string"==typeof a.error&&"string"==typeof a.retiredAt))&&(void 0===(g=a.unresolvedTermination)||!(!g||"object"!=typeof g||Array.isArray(g))&&"string"==typeof g.error&&"string"==typeof g.recordedAt&&Array.isArray(g.survivors)&&g.survivors.every(a=>null!==a&&"object"==typeof a&&Number.isSafeInteger(a.pid)&&C(a.startIdentity)&&(void 0===a.bootEpoch||C(a.bootEpoch))))}let F=["add-stage","remove-stage","reorder-stage","set-edge","override-stage"];function G(a){return!!(a&&"object"==typeof a&&!Array.isArray(a)&&("operator"===a.kind||"agent"===a.kind&&C(a.role)&&C(a.conversationId)))}function H(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&Number.isSafeInteger(a.seq)&&a.seq>=1&&"string"==typeof a.at&&G(a.actor)&&"string"==typeof a.stageId&&Number.isSafeInteger(a.attempt)&&a.attempt>=1&&["pass","fail","needs_decision"].includes(String(a.status))&&Number.isSafeInteger(a.findings)&&a.findings>=0&&(null===a.replaces||Number.isSafeInteger(a.replaces)&&a.replaces>=1)&&C(a.summary)}function I(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&Number.isSafeInteger(a.seq)&&a.seq>=1&&"string"==typeof a.at&&G(a.actor)&&F.includes(String(a.action))&&C(a.stageId)&&"string"==typeof a.pipelineState&&("applied"===a.effect||"pending-next-attempt"===a.effect)&&(null===a.appliesFromAttempt||Number.isSafeInteger(a.appliesFromAttempt)&&a.appliesFromAttempt>=1)&&"string"==typeof a.summary}function J(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Array.isArray(a.attempts)&&a.attempts.every(E)}function K(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.stageId&&Number.isInteger(a.attempt)&&C(a.conversationId)&&C(a.agentPath)&&(void 0===a.paneId||C(a.paneId))&&C(a.operationId)&&"string"==typeof a.detail&&"string"==typeof a.at}function L(a){var b;if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.role;if(!("string"==typeof a.id&&("run"===a.kind||"review-loop"===a.kind)&&"string"==typeof a.prompt&&(null===a.next||"string"==typeof a.next)&&(null==(b=a.onFail)||!(!b||"object"!=typeof b||Array.isArray(b))&&"string"==typeof b.to&&Number.isInteger(b.maxRounds)&&b.maxRounds>=1&&b.maxRounds<=q.e7)&&(void 0===c||c&&"object"==typeof c&&!Array.isArray(c)&&y.includes(c.roleId))&&(void 0===a.engine||"claude"===a.engine||"codex"===a.engine)&&(void 0===a.model||null===a.model||"string"==typeof a.model)&&(void 0===a.effort||null===a.effort||"string"==typeof a.effort)&&(void 0===a.access||"read-only"===a.access||"read-write"===a.access)&&(void 0===a.sandbox||"full"===a.sandbox||"restricted"===a.sandbox)&&(void 0===a.outputs||"run"===a.kind&&Array.isArray(a.outputs)&&a.outputs.length>0&&a.outputs.length<=q.Ze&&a.outputs.every((b,c)=>(0,r.k)(b)===b&&a.outputs.indexOf(b)===c))&&B(a.effectiveRole)))return!1;let d=a.effectiveRole,e=void 0===c?null:c.roleId;return(void 0===a.outputs||"read-only"===d.access)&&d.roleId===e&&("review-loop"!==a.kind||"read-only"===d.access)&&(void 0===a.engine||a.engine===d.engine)&&(void 0===a.model||a.model===d.model)&&(void 0===a.effort||a.effort===d.effort)&&(void 0===a.access||a.access===d.access)&&(null!==e||null===d.promptScaffold)&&(null===e||!!d.promptScaffold?.trim())&&!0}function M(a){let b=new Set(a.map(a=>a.id)),c=new Map(a.map(a=>[a.id,a.next]));for(let c of a){if(null!==c.next&&!b.has(c.next))return`stage ${c.id} next must reference an existing stage`;if(c.next===c.id)return`stage ${c.id} pass edge may not target itself`;let a=c.onFail??null;if("review-loop"===c.kind&&a)return`review-loop stage ${c.id} does not support onFail`;if(a&&!b.has(a.to))return`stage ${c.id} onFail must reference an existing stage`;if(a&&(!Number.isInteger(a.maxRounds)||a.maxRounds<1||a.maxRounds>q.e7))return`stage ${c.id} onFail maxRounds must be an integer between 1 and ${q.e7}`}for(let b of a){let d=b.next;for(let e=0;null!==d;e+=1){if(d===b.id||e>a.length)return`pipeline pass edges form a cycle through stage ${b.id}`;d=c.get(d)??null}}for(let b of a)if("review-loop"===b.kind&&!a.some(d=>{if("run"!==d.kind)return!1;let e=d.next;for(let d=0;null!==e&&d<=a.length;d+=1){if(e===b.id)return!0;e=c.get(e)??null}return!1})){let c=a.filter(a=>"run"===a.kind);if(0===c.length)return`review-loop stage ${b.id} is unreachable: the pipeline has no run stage, and a review-loop reviews the session of a run stage that reaches it`;let d=c.findLast(a=>null===a.next)??c.at(-1);return`review-loop stage ${b.id} is unreachable: no run stage's next chain reaches it — set next: "${b.id}" on run stage ${d.id}`}return null}function N(a){var b,c;if(!a||"object"!=typeof a||Array.isArray(a)||!("string"==typeof a.id&&"string"==typeof a.task&&Array.isArray(a.taskIds)&&a.taskIds.every(a=>"string"==typeof a)&&new Set(a.taskIds).size===a.taskIds.length&&(void 0===a.creationIntent||!(!(b=a.creationIntent)||"object"!=typeof b||Array.isArray(b))&&"task-spawn"===b.kind&&"string"==typeof b.taskId&&b.taskId.trim()&&"string"==typeof b.launchId&&b.launchId.trim())&&(void 0===a.spec||"string"==typeof a.spec)&&"string"==typeof a.project&&"string"==typeof a.repoDir&&"string"==typeof a.worktreeDir&&"string"==typeof a.branch&&"string"==typeof a.baseBranch&&"string"==typeof a.baseRef&&"string"==typeof a.lastPassedCommit&&(void 0===a.publication||"internal"===a.publication||"remote-branch"===a.publication)&&(void 0===a.publishedCommit||C(a.publishedCommit))&&Array.isArray(a.stages)&&a.stages.every(L)&&Array.isArray(a.runs)&&a.runs.every(J)&&["draft","provisioning","running","needs_decision","paused","completed","closed"].includes(String(a.state))&&(null===a.pausedState||["provisioning","running","needs_decision","completed","closed"].includes(String(a.pausedState)))&&(void 0===a.pausedAt||C(a.pausedAt))&&(void 0===a.resumedAt||C(a.resumedAt))&&C(a.stateDetail)&&C(a.srcPath)&&C(a.srcConversationId)&&"string"==typeof a.createdAt&&C(a.closedAt)&&(void 0===a.hiddenAt||C(a.hiddenAt))&&(void 0===a.dismissedAt||C(a.dismissedAt))&&(void 0===a.unconfirmedHosts||Array.isArray(a.unconfirmedHosts)&&a.unconfirmedHosts.every(K))&&(void 0===a.terminalReap||!(!(c=a.terminalReap)||"object"!=typeof c||Array.isArray(c))&&Number.isInteger(c.rounds)&&c.rounds>=0&&Number.isInteger(c.stopped)&&c.stopped>=0&&"string"==typeof c.lastAt&&(void 0===c.settledAttempts||Array.isArray(c.settledAttempts)&&c.settledAttempts.every(a=>"string"==typeof a))&&C(c.settledAt))&&(void 0===a.restored||"boolean"==typeof a.restored)&&(void 0===a.graphEdits||Array.isArray(a.graphEdits)&&a.graphEdits.length<=q.tq&&a.graphEdits.every(I))&&(void 0===a.stageReports||Array.isArray(a.stageReports)&&a.stageReports.length<=q.vz&&a.stageReports.every(H))&&(void 0===a.pos||"object"==typeof a.pos&&null!==a.pos&&Number.isFinite(a.pos.x)&&Number.isFinite(a.pos.y))))return!1;let d=a.stages,e=a.runs,f=+("draft"!==a.state);if(d.length<f||d.length>q.IO||e.length!==d.length)return!1;let g=d.map(a=>a.id);if(new Set(g).size!==g.length||null!==M(d)||e.some((a,b)=>a.stageId!==d[b].id))return!1;let h=i().join(i().dirname(a.repoDir),`${i().basename(a.repoDir)}-pipeline-${a.id}`);if(a.worktreeDir!==h||a.branch!==`pipeline/${ao(a.task)}-${a.id}`)return!1;let j=a.cursor;if(null!==j&&(!j||"object"!=typeof j||!g.includes(j.stageId)||!["pending","spawning","running","reviewing","committing"].includes(j.state)||!(void 0===j.input||C(j.input))||!D(j.activatedBy)||null!=j.activatedBy&&!g.includes(j.activatedBy.stageId))||("completed"===a.state||"closed"===a.state)&&null!==j)return!1;if("draft"===a.state){if(0===d.length){if(null!==j)return!1}else if(j?.stageId!==d[0].id||"pending"!==j.state)return!1;if(e.some(a=>a.attempts.length>0))return!1;let b=!a.baseBranch&&!a.baseRef&&!a.lastPassedCommit,c=!!(a.baseBranch&&/^[0-9a-f]{40}$/i.test(a.baseRef)&&a.lastPassedCommit===a.baseRef);if(!b&&!c||a.closedAt)return!1}return!0}function O(){return Z().snapshot()}function P(){let a=(0,p.M)(x(),["pipelines","pipelines_archive"]),b=a.get("pipelines"),c=a.get("pipelines_archive");if(null===b!=(null===c))throw new z("pipeline startup collections are incomplete");let d=null===b&&null===c?[...Q(v(),!1,!0),...Q(w(),!1,!0)]:[...b??[],...c??[]];if(!d.every(N))throw new z("pipeline registry contains malformed records");if(new Set(d.map(a=>a.id)).size!==d.length)throw new z("pipeline startup records have contradictory identities");return d.map(S)}function Q(a,b,c=!1){let d=function(a){try{return JSON.parse(g().readFileSync(a,"utf8"))}catch(b){if("ENOENT"===b.code)return;throw new z(`could not read pipeline registry: ${a}`,{cause:b})}}(a);if(void 0===d||null===d&&!c)return[];if(!d||"object"!=typeof d||Array.isArray(d)){if(b)return[];throw new z("pipeline registry must be an object")}if("number"!=typeof d.schemaVersion||!u.has(d.schemaVersion)){if(b)return[];throw new z(`unsupported pipeline registry schema: ${String(d.schemaVersion)}`)}if(!Array.isArray(d.pipelines)){if(b)return[];throw new z("pipeline registry contains malformed records")}let e=d.pipelines.map(a=>{var b,c,e;let f;return f=2===(b=d.schemaVersion)?function(a){if(!a||"object"!=typeof a||Array.isArray(a))return a;let b=Array.isArray(a.stages)?a.stages.map(a=>a&&"object"==typeof a?{onFail:null,...a}:a):a.stages,c=Array.isArray(a.runs)?a.runs.map(a=>a&&"object"==typeof a&&Array.isArray(a.attempts)?{...a,attempts:a.attempts.map(a=>a&&"object"==typeof a?{input:null,activatedBy:null,...a}:a)}:a):a.runs,d=a.cursor&&"object"==typeof a.cursor?{input:null,activatedBy:null,...a.cursor}:a.cursor,e={...a,stages:b,runs:c,cursor:d};if("draft"===e.state&&Array.isArray(e.stages)&&0===e.stages.length){let a={id:"implement",kind:"run",prompt:"{{task}}",next:null,onFail:null,effectiveRole:{roleId:null,engine:"claude",model:null,effort:null,access:"read-write",promptScaffold:null}};e.stages=[a],e.runs=[{stageId:a.id,attempts:[]}],e.cursor={stageId:a.id,state:"pending",input:null,activatedBy:null}}return e}(a):a,b<4&&(f=!(c=f)||"object"!=typeof c||Array.isArray(c)?c:{taskIds:[],...c}),b<5&&(f=!(e=f)||"object"!=typeof e||Array.isArray(e)?e:Array.isArray(e.stages)?{...e,stages:e.stages.map(a=>!a||"object"!=typeof a||Array.isArray(a)?a:"review-loop"===a.kind?{...a,onFail:null}:a)}:e),f});if(!b&&!e.every(N))throw new z("pipeline registry contains malformed records");let f=b?e.filter(N):e;return b&&f.length!==e.length&&console.error(`[pipelines] skipped ${e.length-f.length} malformed archived pipeline record(s)`),f.map(S)}function R(){let a=Q(v(),!1),b=Q(w(),!0);return{pipelines:{records:a.length,keys:a.map(a=>a.id)},archive:{records:b.length,keys:b.map(a=>a.id)}}}function S(a){let b=a.terminalReap?.settledAttempts??(a.terminalReap?.settledAt?a.runs.flatMap(a=>a.attempts.filter(a=>!!(a.verdict||a.completedAt)).map(b=>`${a.stageId}:${b.n}`)):[]);return{...a,project:(0,k.G$)(a.project),taskIds:[...a.taskIds],creationIntent:a.creationIntent?{...a.creationIntent}:void 0,spec:"string"==typeof a.spec?a.spec:void 0,baseBranch:a.baseBranch??"",baseRef:a.baseRef??"",lastPassedCommit:a.lastPassedCommit??"",publishedCommit:a.publishedCommit??null,pausedState:a.pausedState??null,stateDetail:a.stateDetail??null,srcPath:a.srcPath??null,srcConversationId:a.srcConversationId??null,closedAt:a.closedAt??null,hiddenAt:a.hiddenAt??null,unconfirmedHosts:a.unconfirmedHosts?.length?a.unconfirmedHosts.map(a=>({...a})):void 0,terminalReap:a.terminalReap?{...a.terminalReap,settledAttempts:[...b]}:void 0,restored:void 0,stages:a.stages.map(a=>({...a,onFail:a.onFail??null})),cursor:a.cursor?{...a.cursor,input:a.cursor.input??null,activatedBy:a.cursor.activatedBy??null}:null,runs:a.runs.map(a=>({...a,attempts:Array.isArray(a.attempts)?a.attempts.map(a=>({...a,launchId:a.launchId??null,conversationId:a.conversationId??null,sessionId:a.sessionId??null,agentPath:a.agentPath??null,paneId:a.paneId??null,...a.usageLimitedAccounts?{usageLimitedAccounts:a.usageLimitedAccounts.map(a=>({...a}))}:{},flowId:a.flowId??null,expectedReviewHeadSha:a.expectedReviewHeadSha??null,reviewHeadSha:a.reviewHeadSha??null,reviewFlowSync:a.reviewFlowSync?{...a.reviewFlowSync}:void 0,startedAt:a.startedAt??null,completedAt:a.completedAt??null,input:a.input??null,activatedBy:a.activatedBy??null,output:a.output??null,verdict:a.verdict??null,error:a.error??null,verdictRecovery:a.verdictRecovery?{...a.verdictRecovery}:void 0,...a.retiredLaunches?{retiredLaunches:a.retiredLaunches.map(a=>({...a}))}:{},unresolvedTermination:a.unresolvedTermination?{...a.unresolvedTermination,survivors:a.unresolvedTermination.survivors.map(a=>({...a}))}:void 0})):[]}))}}let T=null,U=new Map;function V(a){if(!N(a))throw new z("pipeline registry contains malformed records");return S(a)}function W(a){return"closed"===a.state?!!a.unconfirmedHosts?.length:"completed"!==a.state||!!a.unconfirmedHosts?.length||!a.terminalReap?.settledAt}function X(){return[{collection:"pipelines",schemaVersion:t,migrationId:"pipelines-json-v1",loadRecords:()=>Q(v(),!1),key:a=>a.id,controllerActive:W},{collection:"pipelines_archive",schemaVersion:t,migrationId:"pipelines-archive-json-v1",loadRecords:()=>Q(w(),!0),key:a=>a.id,controllerActive:()=>!1}]}function Y(){let a=x(),b=U.get(a);if(b)return b;(0,p.t0)(a,X());let c={schemaVersion:t,busyMessage:"pipeline state is busy",key:a=>a.id,decode:V,clone:S,decodeError:a=>a instanceof z?a:new z("pipeline registry contains malformed records",{cause:a}),validate:a=>{if(!N(a))throw new z("refusing to persist a malformed pipeline record")}},d={active:new p.UY(a,{...c,collection:"pipelines",controllerActive:W,strictDecode:!0}),archive:new p.UY(a,{...c,collection:"pipelines_archive",onDecodeError:a=>console.error("[pipelines] skipped malformed archived SQLite row",a)})};return U.set(a,d),d}function Z(){return Y().active}function $(){return Y().archive}function _(){return Z().signature()}function aa(){let a=_();if(T?.signature===a)return T.pipelines;let b=[...Z().loadReadonly()],c=_();return a===c&&(T={signature:c,pipelines:b}),b}function ab(){return aa().map(S)}function ac(){return aa()}function ad(){let a=Number(process.env.LLV_PIPELINE_LOCK_WAIT_MS);return Number.isFinite(a)&&a>=0?a:3e4}async function ae(a){return(0,o.aO)(b=>Z().mutate((c,d)=>(b(),a(c,d)),void 0,!1,ad()))}async function af(a){return Z().mutate(a,void 0,!0)}async function ag(a){let b=!1;try{return P(),await ae(()=>(b=!0,a(!0)))}catch(c){if(b)throw c;return a(!1)}}function ah(a){Z().replaceSync(a)}function ai(){return $().snapshot()}async function aj(a=Date.now(),b={}){return Z().moveMatchingTo($(),b=>(function(a,b){let c=a.closedAt??("draft"===a.state?a.hiddenAt:null);if(!c)return!1;let d=Date.parse(c);return Number.isFinite(d)&&b-d>2592e5})(b,a),b)}function ak(){let{active:a,archive:b}=Y();return{pipelines:a.checkpointMirrorForDemotion((a,b)=>{A(v(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})}),pipelinesArchive:b.checkpointMirrorForDemotion((a,b)=>{A(w(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})})}}async function al(){let{active:a,archive:b}=Y();return{pipelines:await a.checkpointMirrorForDemotionAsync((a,b)=>{A(v(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})}),pipelinesArchive:await b.checkpointMirrorForDemotionAsync((a,b)=>{A(w(),{schemaVersion:t,_sqliteRevision:b,pipelines:a})})}}function am(a){return O().find(b=>b.id===a)??ai().find(b=>b.id===a)??null}function an(a,b,c,d={}){let e=new Map(c.map(a=>[a.id,a]));for(let c of b){let b=e.get(c);if(!b){if(d.allowMissing)continue;return`task not found: ${c}`}if(b.project!==a.project)return`task project does not match pipeline project: ${c}`}return null}function ao(a){return a.toLowerCase().replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"").slice(0,40).replace(/-+$/,"")||"task"}function ap(a,b,c){let d=i().basename(c);return{worktreeDir:i().join(i().dirname(c),`${d}-pipeline-${a}`),branch:`pipeline/${ao(b)}-${a}`}}function aq(a){let b=ap(a.id,a.task,a.repoDir);return{id:a.id,task:a.task,taskIds:[...new Set(a.taskIds??[])],...a.creationIntent?{creationIntent:{...a.creationIntent}}:{},...a.spec?{spec:a.spec}:{},project:a.project,repoDir:a.repoDir,...b,baseBranch:"",baseRef:"",lastPassedCommit:"",...a.publication?{publication:a.publication}:{},publishedCommit:null,stages:JSON.parse(JSON.stringify(a.stages)).map(a=>({...a,onFail:a.onFail??null})),runs:a.stages.map(a=>({stageId:a.id,attempts:[]})),cursor:a.stages.length?{stageId:a.stages[0].id,state:"pending",input:null,activatedBy:null}:null,state:a.state??"provisioning",pausedState:null,stateDetail:null,srcPath:a.srcPath,srcConversationId:a.srcConversationId,createdAt:a.now,closedAt:null,hiddenAt:null}}function ar(a){return i().join((0,j.BQ)("pipelines"),a)}},22371:(a,b,c)=>{c.d(b,{le:()=>k,pQ:()=>o,e3:()=>p});var d=c(73024),e=c.n(d);c(76760);var f=c(27146),g=c(22619),h=c(51888),i=c(49048);let j=["orchestrator","reviewer","verifier","builder","architect","cleaner","prod-auditor","deployer"],k=12e3;class l extends Error{constructor(a,b){super(a,b),this.name="RoleStoreError"}}let m=()=>(0,f.BQ)("role-presets.json");function n(a){return i.W.map(b=>{let c=a[b.id];return{...b,config:{...b.config,...c?.config},promptScaffold:c?.promptScaffold??b.promptScaffold}})}function o(){return n(function(){let a,b;try{a=e().readFileSync(m(),"utf8")}catch(a){if("ENOENT"===a.code)return{schemaVersion:1,overrides:{}};throw new l(`could not read role override registry: ${m()}`,{cause:a})}try{b=JSON.parse(a)}catch(a){throw new l("role override registry contains malformed JSON",{cause:a})}if(1!==b.schemaVersion)throw new l(`unsupported role override schema: ${String(b.schemaVersion)}`);if(!b.overrides||"object"!=typeof b.overrides||Array.isArray(b.overrides))throw new l("role override registry must contain an overrides object");let c={};for(let[a,d]of Object.entries(b.overrides)){if(!("string"==typeof a&&j.includes(a))||!function(a){if(!a||"object"!=typeof a||Array.isArray(a)||Object.keys(a).some(a=>"config"!==a&&"promptScaffold"!==a)||void 0!==a.promptScaffold&&("string"!=typeof a.promptScaffold||a.promptScaffold.length>k))return!1;if(void 0!==a.config){if(!a.config||"object"!=typeof a.config||Array.isArray(a.config)||Object.keys(a.config).some(a=>"engine"!==a&&"model"!==a&&"effort"!==a))return!1;let{engine:b,model:c,effort:d}=a.config;if(void 0!==b&&"claude"!==b&&"codex"!==b||void 0!==c&&("string"!=typeof c||c.length>128)||void 0!==d&&("string"!=typeof d||d.length>32))return!1}return!0}(d)||!function(a,b){let c={...i.W.find(b=>b.id===a).config,...b.config};if(c.model.length>128||/[\u0000-\u001f\u007f]/.test(c.model)||"claude"===c.engine&&!(0,h.OV)(c.model)||"codex"===c.engine&&!c.model.startsWith("gpt-"))return!1;let d=(0,g.ve)(c.engine,c.model);if(!d.includes(c.effort))throw new l(`invalid role override: ${a}; effort for ${c.engine}/${c.model} must be one of: ${d.join(", ")}`);return!0}(a,d))throw new l(`invalid role override: ${a}`);c[a]=d}return{schemaVersion:1,overrides:c}}().overrides)}function p(){try{return o()}catch(a){return console.warn("[roles] override registry unreadable; falling back to built-in defaults",a),n({})}}},22619:(a,b,c)=>{c.d(b,{BL:()=>k,ck:()=>g,ve:()=>j});let d=["low","medium","high","xhigh","max"],e=["low","medium","high","xhigh"],f=["minimal","low","medium","high","xhigh","max","ultra"];function g(a){return f.includes(a)}let h=[[/^gpt-6-astra\b/,["low","medium","high","xhigh","max","ultra"]],[/^gpt-5\.6-(sol|terra)\b/,["low","medium","high","xhigh","max","ultra"]],[/^gpt-5\.6\b/,["low","medium","high","xhigh","max"]]],i=["off","minimal","low","medium","high","xhigh","max"];function j(a,b){if("claude"===a)return d;if("openclaw"===a)return i;if("codex"!==a)return null;let c=(b??"").trim().toLowerCase();for(let[a,b]of h)if(a.test(c))return b;return e}function k(a,b){let c="string"==typeof b.effort?b.effort.trim():"",d=j(a,"string"==typeof b.model?b.model:null);return c&&!d.includes(c)?{effort:null,fast:null,error:`effort for ${a} must be one of: ${d.join(", ")}`}:{effort:c||null,fast:"codex"===a&&"boolean"==typeof b.fast?b.fast:null}}},38751:(a,b,c)=>{c.d(b,{E2:()=>s,G$:()=>r,JC:()=>v,YX:()=>x,oh:()=>y});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(14928),l=c(46211);let m=null;function n(){return(0,j.BQ)("project-aliases.json")}function o(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=Object.entries(a);return b.every(([a,b])=>!!a.trim()&&"string"==typeof b&&!!b.trim())?Object.fromEntries(b):null}function p(){let a,b=n();try{a=g().statSync(b)}catch{return(m={file:b,mtimeMs:-1,size:-1,snapshot:{aliases:{},displayNames:{}}}).snapshot}if(m&&m.file===b&&m.mtimeMs===a.mtimeMs&&m.size===a.size)return m.snapshot;try{let c=JSON.parse(g().readFileSync(b,"utf8")),d=1===c.schemaVersion?o(c.aliases):null,e=1===c.schemaVersion?o(c.displayNames):null,f=d&&e?{aliases:d,displayNames:e}:{aliases:{},displayNames:{}};return m={file:b,mtimeMs:a.mtimeMs,size:a.size,snapshot:f},f}catch{let c={aliases:{},displayNames:{}};return m={file:b,mtimeMs:a.mtimeMs,size:a.size,snapshot:c},c}}function q(a,b){let c=a,d=new Set;for(;b[c]&&!d.has(c);)d.add(c),c=b[c];return d.has(c)?a:c}function r(a){return q(a,p().aliases)}function s(){let a=p();return{aliases:{...a.aliases},displayNames:{...a.displayNames}}}function t(a){try{let b=JSON.parse(g().readFileSync((0,j.BQ)(a),"utf8"));return b&&"object"==typeof b&&!Array.isArray(b)?b:null}catch{return null}}function u(a,b,c){let d=(["flows","pipelines","workflows"].includes(b)?(0,k.Vx)((0,j.BQ)("state.sqlite"),b):null)??t(a)?.[b];if(!Array.isArray(d))return[];let e=[];for(let a of d)!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.project&&a.project.trim()&&"string"==typeof a[c]&&a[c].trim()&&e.push([a.project,a[c]]);return e}function v(){let a=function(){let a=t("worktree-map.json");if(!a)return new Map;let b=new Map;for(let[c,d]of Object.entries(a)){if(!d||"object"!=typeof d||Array.isArray(d))continue;let a=d.repo;"string"==typeof a&&a.trim()&&b.set(c,a)}return b}(),b=[...u("flows.json","flows","cwd"),...u("pipelines.json","pipelines","repoDir"),...u("workflows.json","workflows","repoDir")],c=new Map;for(let[d,e]of b){let b=(0,l.V5)(e)??a.get(e),f=b?(0,l.im)(b):null;if(!f)continue;let g=c.get(d)??new Map,h=g.get(f.project)??{registration:{source:d,target:f.project,displayName:f.displayName},records:0};h.records+=1,g.set(f.project,h),c.set(d,g)}let d=[],e=[];for(let[a,b]of c){if(b.has(a)){b.size>1&&e.push(a);continue}let c=[...b.values()].sort((a,b)=>b.records-a.records),f=c.reduce((a,b)=>a+b.records,0),g=c[0];2*g.records>f?d.push(g.registration):e.push(a)}let f=function(a){let b=new Map(a.map(a=>[a.source,a.target])),c=new Set,d=new Set;for(let[a,e]of[["tasks.json","tasks"],["flows.json","flows"],["pipelines.json","pipelines"],["workflows.json","workflows"]]){let f=new Map;for(let g of function(a,b){let c=(["flows","pipelines","workflows"].includes(b)?(0,k.Vx)((0,j.BQ)("state.sqlite"),b):null)??t(a)?.[b];return Array.isArray(c)?c.filter(a=>!!a&&"object"==typeof a&&!Array.isArray(a)):[]}(a,e)){if("string"!=typeof g.id||!g.id.trim()||"string"!=typeof g.project||!g.project.trim())continue;let a=r(g.project),h=b.get(a)??a,i=`${h}\0${g.id}`,j=f.get(i);j&&j!==a?(c.add(`${e} id collision`),b.has(j)&&d.add(j),b.has(a)&&d.add(a)):f.set(i,a)}}return{labels:[...c],sources:d}}(d);return e.push(...f.labels),{registrations:d.filter(a=>!f.sources.has(a.source)),conflicts:e}}function w(a){let b=p(),c={...b.aliases},d={...b.displayNames};for(let b of a){let a=b.source.trim(),e=q(b.target.trim(),c),f=b.displayName.trim();if(!a||!e||!f)return null;let g=c[a]?q(c[a],c):null;if(g&&g!==e)return null;a!==e&&(c[a]=e),d[e]=f}return{aliases:c,displayNames:d}}function x(a){return null!==w(a)}function y(a){if(0===a.length)return!0;let b=w(a);if(!b)return!1;let c=n(),d=i().join(i().dirname(c),`.${i().basename(c)}.${process.pid}.${e().randomUUID()}.tmp`);try{return g().mkdirSync(i().dirname(c),{recursive:!0,mode:448}),g().writeFileSync(d,JSON.stringify({schemaVersion:1,...b},null,2)+"\n",{encoding:"utf8",mode:384}),g().renameSync(d,c),m=null,p(),!0}catch{try{g().rmSync(d,{force:!0})}catch{}return!1}}},46211:(a,b,c)=>{c.d(b,{MO:()=>m,Mv:()=>l,NP:()=>o,V5:()=>t,YV:()=>v,im:()=>x,qe:()=>p,rj:()=>q,z:()=>n});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(48161),i=c.n(h),j=c(76760),k=c.n(j);let l="project_unresolved",m="Unresolved project";function n(a){return/^(?:repo|dir)-[0-9a-f]{32}$/.test(a)}function o(a){let b=(()=>{try{return g().realpathSync.native(a)}catch{return k().resolve(a)}})(),c=k().basename(b);if(!c||b===k().sep)return null;let d=b===i().homedir()?`home-${c}`:c;return{project:p(b),displayName:d}}function p(a){return`dir-${e().createHash("sha256").update(`dir:${a}`).digest("hex").slice(0,32)}`}function q(a){return a===l?m:a}function r(a){try{return g().statSync(k().join(a,"HEAD")).isFile()}catch{return!1}}function s(a){let b=k().join(a,".git");try{let c=g().lstatSync(b);if(c.isDirectory())return r(b)?b:null;if(!c.isFile())return null;let d=g().readFileSync(b,"utf8").slice(0,4096),e=/^gitdir:\s*(.+?)\s*$/im.exec(d)?.[1];if(!e)return null;let f=k().resolve(a,e);return r(f)?f:null}catch{return null}}function t(a){let b=k().resolve(a);for(;;){if(s(b))return b;let a=k().dirname(b);if(a===b)return null;b=a}}function u(a){let b=a.replace(/^file:/,"").split("/").filter(Boolean).at(-1)?.trim()||null;if(!b)return null;let c=e().createHash("sha256").update(a).digest("hex").slice(0,32);return{project:`repo-${c}`,displayName:b,canonicalRemote:a}}function v(a){return u(`local:${w(a)}`)?.project??null}function w(a){try{return g().realpathSync.native(a)}catch{return k().resolve(a)}}function x(a){let b,c=s(a);if(!c)return null;try{b=g().readFileSync(k().join(function(a){try{let b=g().readFileSync(k().join(a,"commondir"),"utf8").trim();return b?k().resolve(a,b):a}catch{return a}}(c),"config"),"utf8")}catch{return null}let d=function(a){let b=!1;for(let c of a.split(/\r?\n/)){let a=/^\s*\[\s*remote\s+"([^"]+)"\s*\]\s*$/i.exec(c);if(a){b="origin"===a[1];continue}if(/^\s*\[/.test(c)){b=!1;continue}if(!b)continue;let d=/^\s*url\s*=\s*(.*?)\s*$/i.exec(c)?.[1],e=d?.replace(/\s+[;#].*$/,"").trim();if(e)return e}return null}(b),e=d?function(a,b){let c=/^[a-z][a-z0-9+.-]*:\/\//i.test(a)?null:/^(?:[^@\s]+@)?([^:/\s]+):(.+)$/.exec(a);if(c){let a=c[1].toLowerCase(),b=c[2].replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return b?`${a}/${b}`:null}try{let b=new URL(a);if("file:"===b.protocol){let a=k().resolve(b.pathname).replace(/\.git$/i,"");return`file:${a}`}let c=b.hostname.toLowerCase(),d=b.port?`:${b.port}`:"",e=b.pathname.replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return c&&e?`${c}${d}/${e}`:null}catch{let c=k().resolve(b,a).replace(/\.git$/i,"");return`file:${c}`}}(d,a):`local:${w(a)}`;return e?u(e):null}},49048:(a,b,c)=>{c.d(b,{W:()=>j});var d=c(51888);let e=["Read-only mode: edits, staging, commits, pushes, service restarts, and GitHub comments are prohibited.","Every finding carries file:line evidence. Clean work earns a clear NO FINDINGS verdict."],f="Three standing rules. (1) Anchor the frame: when the assignment carries the requester's originating requirement, validate the work against that verbatim requirement, never against the artifact's previous revision — WRONG-PREMISE (\"this does not serve the original requirement\") is an expected verdict and outranks any finding about internal rigour. (2) Over-engineering pass: on every review, flag machinery heavier than the problem it solves (a library plus wrapper where a native primitive does), name the simpler mechanism, and report what to cut — OVER-BUILT is a first-class verdict, and a round that only removes scope is a successful round. (3) Rendered surfaces are part of correctness: when the diff touches UI (components, styles, layout), the review covers the rendered result and the code alike. Check that the author's rendered evidence reaches every surface and every viewport the requirement names; evidence that skips a named surface is REQUEST_CHANGES on its own. Where that evidence is missing and a harness exists, render from an export of the reviewed HEAD — never the live worktree, never the operator's Viewer — and report overflow, clipped or zero-width controls, overlap and unreadable states as severity-ranked findings carrying the viewport and the measured numbers.",g="Before deciding, and whenever a problem or unknown appears, ask whether it was solved before: run a few search_transcripts queries in different phrasings (project-scoped, then unscoped), read any hit through conversation_messages at its transcript path, cite what you found or say nothing relevant existed, and check an old answer against current main before building on it.",h="Decide yourself whatever the code, the running system or one cheap observation can settle; never ask the operator what you can find out. Stop and ask when the work rests on a fact you could not confirm (an external API's shape, a service's behaviour, access you lack, a rate limit that blocks the check) or on a requirement that reads two ways and changes what gets built: report needs_decision saying in two or three plain sentences what you tried, what you could not confirm and what the options are. Never finish on a guess and mention the gap in passing.",i="Process cleanup: stop only the processes you started yourself, each by the PID you recorded when you started it. Never stop anything by port, name or pattern — no fuser -k, no lsof piped into kill, no pkill, no killall — because a match can be the operator's own long-running process. A port that is already in use is a reason to pick another port, never a reason to free it; a probe or stub server binds port 0 and reads the assigned port back.",j=[{id:"orchestrator",name:"Orchestrator",description:"Coordinates fresh agents through the Viewer control plane.",config:{engine:"claude",model:"opus",effort:"high"},parameters:[{key:"mode",label:"Mode",description:"Operating mode for the coordination run.",kind:"select",options:["standard","plan-tickets","wayfind","backlog-campaign"]},{key:"repo",label:"Repository",description:"Repository for backlog-campaign mode.",kind:"text"},{key:"issueQuery",label:"Issue query",description:"GitHub issue query for backlog-campaign mode.",kind:"text"},{key:"urgent",label:"Urgent list",description:"Comma-separated urgent issue ids.",kind:"text"},{key:"maxWorkers",label:"Maximum workers",description:"Worker cap for backlog-campaign mode.",kind:"integer",default:3,min:1,max:20},{key:"mergePolicy",label:"Merge policy",description:"Delivery policy for backlog-campaign mode.",kind:"select",options:["pr","merge"]},{key:"completionPolicy",label:"Completion policy",description:"Terminal policy for backlog-campaign mode.",kind:"select",options:["pr-opened","merged","released"]}],promptScaffold:`You are the Orchestrator. Drive work through the production Viewer MCP tools. Use fresh empty sessions with src lineage; forks are disabled. Keep every worker visible and controllable in the Viewer.
2
2
 
3
3
  Mode: {{mode}}
4
4
  Repository: {{repo}}
@@ -1,3 +1,3 @@
1
1
  "use strict";exports.id=8465,exports.ids=[8465],exports.modules={30737:(a,b,c)=>{c.d(b,{Pb:()=>s,TK:()=>r,vt:()=>p});var d=c(31421),e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(48161),j=c.n(i),k=c(76760),l=c.n(k);let m={platform:process.platform,security:(a,b)=>{let c=(0,d.spawnSync)("/usr/bin/security",a,{input:b,encoding:"utf8",timeout:2e3,maxBuffer:1048576,stdio:[void 0===b?"ignore":"pipe","pipe","pipe"]});return{status:c.error?null:c.status,stdout:c.stdout??""}}};function n(a){let b=process.env.CLAUDE_CODE_CUSTOM_OAUTH_URL?"-custom-oauth":"",c=f().createHash("sha256").update(a.normalize("NFC")).digest("hex").slice(0,8);return`Claude Code${b}-credentials-${c}`}function o(){let a;try{a=process.env.USER||j().userInfo().username}catch{a="claude-code-user"}return/^[a-zA-Z0-9._-]+$/.test(a)?a:"claude-code-user"}function p(a){try{let b=h().lstatSync(l().join(a,".credentials.json"));return b.isFile()&&!b.isSymbolicLink()&&b.uid===(process.getuid?.()??b.uid)&&(63&b.mode)==0?"safe":"unsafe"}catch(a){return"ENOENT"===a.code?"absent":"unknown"}}function q(a,b){try{let c=JSON.parse(a);if(!c||"object"!=typeof c||Array.isArray(c)||"keychain"===b&&("string"!=typeof c.claudeAiOauth?.accessToken||!c.claudeAiOauth.accessToken))return{state:"unknown"};return{state:"present",source:b,document:c}}catch{return{state:"unknown"}}}function r(a,b=m){let c,d=p(a);if("unsafe"===d||"unknown"===d)return{state:d};if("darwin"===b.platform){let c=b.security(["find-generic-password","-a",o(),"-w","-s",n(a)]);if(0===c.status)return q(c.stdout.trim(),"keychain");if(44!==c.status)return{state:"unknown"}}if("absent"===d)return{state:"absent"};try{c=h().openSync(l().join(a,".credentials.json"),h().constants.O_RDONLY|h().constants.O_NOFOLLOW);let b=h().fstatSync(c);if(!b.isFile()||b.uid!==(process.getuid?.()??b.uid)||(63&b.mode)!=0)return{state:"unsafe"};return q(h().readFileSync(c,"utf8"),"file")}catch{return{state:"unknown"}}finally{void 0!==c&&h().closeSync(c)}}function s(a,b,c,d=m){let e=r(a,d);if("present"!==e.state||e.source!==b.source||JSON.stringify(e.document)!==JSON.stringify(b.document))return!1;let g=JSON.stringify(c);if("keychain"===b.source){let b=`add-generic-password -U -a "${o()}" -s "${n(a)}" -X "${Buffer.from(g).toString("hex")}"
2
- `;if(Buffer.byteLength(b)>4032||0!==d.security(["-i"],b).status)return!1;let c=r(a,d);return"present"===c.state&&"keychain"===c.source&&JSON.stringify(c.document)===g}let i=l().join(a,".credentials.json"),j=l().join(a,`.credentials.${f().randomUUID()}.tmp`);try{let b=h().openSync(j,"wx",384);try{h().writeFileSync(b,g),h().fsyncSync(b)}finally{h().closeSync(b)}if("safe"!==p(a))return!1;h().renameSync(j,i);let c=h().openSync(a,"r");try{h().fsyncSync(c)}finally{h().closeSync(c)}return!0}catch{return!1}finally{h().rmSync(j,{force:!0})}}},39137:(a,b,c)=>{c.d(b,{jK:()=>w,s4:()=>i});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f);c(77598),c(65972);var h=c(70160);class i extends Error{constructor(a){super("account history inventory blocked removal"),this.report=a,this.name="AccountHistoryInventoryBlockedError"}}let j={claude:new Set(["projects","file-history","session-env","shell-snapshots","todos","debug","backups","paste-cache"]),codex:new Set(["sessions","archived_sessions","log","shell_snapshots"])},k={claude:new Set([".credentials.json",".claude.json"]),codex:new Set(["auth.json"])},l={claude:new Set(["skills","commands","agents"]),codex:new Set(["skills","prompts","config.toml","AGENTS.md","memories","rules",g().join("plugins","cache")])},m={claude:new Set(["cache","plugins"]),codex:new Set([".tmp","mcp-oauth",g().join("plugins","data")])};function n(a,b){let c=new Set;for(let d of Object.values((0,h.agentRegistry)().readOnlySnapshot().conversations)){if(d.engine!==a)continue;let e=d.generations.filter(a=>a.accountId===b);for(let a of e)c.add(g().resolve(a.path));if(0!==e.length)for(let a of[...d.continuityPaths,...d.abandonedContinuityPaths,...d.providerForkPaths,...d.migration?.pendingContinuityPaths??[],...d.migration?.providerReceipt?.continuityPaths??[],...d.migration?.providerReceipt?[d.migration.providerReceipt.path]:[]])c.add(g().resolve(a))}return c}function o(a,b){return a===b||a.startsWith(`${b}${g().sep}`)}function p(a,b){if("claude"===a&&o(b,g().join("plugins","data")))return!1;for(let c of m[a])if(o(b,c))return!0;return!1}function q(a,b,c,d,e){let f,h,i=(f=b.split(g().sep)[0],h=g().basename(b),j[a].has(f)||"history.jsonl"===f||h.endsWith(".jsonl")||"codex"===a&&/\.sqlite3?(?:-(?:shm|wal))?$/.test(h));return d.isSymbolicLink()?l[a].has(b)?{path:b,classification:"owned",history:!1}:i?{path:b,classification:"history",history:!0}:{path:b,classification:"unknown",history:!1}:d.isDirectory()?function(a,b){for(let c of j[a])if(o(b,c))return!0;return!1}(a,b)||p(a,b)||"codex"===a&&"plugins"===b?{path:b,classification:"owned",history:!1}:{path:b,classification:"unknown",history:!1}:d.isFile()&&e.has(g().resolve(c))?{path:b,classification:"owned",history:!0}:i?{path:b,classification:"history",history:!0}:d.isFile()&&(k[a].has(b)||p(a,b))?{path:b,classification:"owned",history:!1}:{path:b,classification:"unknown",history:!1}}function r(a){return a instanceof Error?a.message:"filesystem inventory failed"}function s(){if("linux"!==process.platform)return new Set;let a=new Set;for(let b of e().readFileSync("/proc/self/mountinfo","utf8").split("\n")){if(!b)continue;let c=b.split(" ")[4];if(!c)throw Error("filesystem mount inventory is malformed");a.add(g().resolve(c.replace(/\\([0-7]{3})/g,(a,b)=>String.fromCharCode(Number.parseInt(b,8)))))}return a}function t(a,b,c){let d=g().resolve(c),f=[],h=".";try{let c=e().lstatSync(d);if(!c.isDirectory()||c.isSymbolicLink())throw Error("managed account home is not a safe directory");let i=process.getuid?.()??c.uid;if(c.uid!==i||(18&c.mode)!=0)throw Error("managed account home has unsafe ownership or permissions");let j=s();if(j.has(d))throw Error("managed account home is an external mount");let k=n(a,b),l=(b,d)=>{for(let m of(h=d||".",e().readdirSync(b,{withFileTypes:!0}))){let n=g().join(b,m.name),o=d?g().join(d,m.name):m.name;h=o;let p=e().lstatSync(n);if(j.has(g().resolve(n)))throw Error(`history inventory reached an external mount at ${o}`);if(p.dev!==c.dev)throw Error(`history inventory crossed a filesystem boundary at ${o}`);if(p.uid!==i||!p.isSymbolicLink()&&(18&p.mode)!=0)throw Error(`history inventory found unsafe ownership or permissions at ${o}`);if(f.push(q(a,o,n,p,k)),!p.isSymbolicLink()&&p.isDirectory()){l(n,o);continue}}};l(d,"")}catch(a){throw new i({home:d,artifacts:f,error:{path:h,message:r(a)}})}let j={home:d,artifacts:f.sort((a,b)=>a.path.localeCompare(b.path))};if(j.artifacts.some(a=>"owned"!==a.classification))throw new i(j);return j}function u(a,b,c){return new i({...a,error:{path:b,message:c}})}function v(a,b,c){return!a.mounts.has(g().resolve(c))&&b.dev===a.stat.dev&&b.uid===a.uid&&(b.isSymbolicLink()||(18&b.mode)==0)}function w(a,b,c){let d,f=t(a,b,c);if(f.artifacts.some(a=>a.history))throw new i(f);if("linux"!==process.platform)return!1;try{d=function(a,b,c){let d=g().resolve(c),f=e().lstatSync(d),h=process.getuid?.()??f.uid;if(!f.isDirectory()||f.isSymbolicLink()||f.uid!==h||(18&f.mode)!=0)throw Error("managed account home is not a safe directory");let i=s();if(i.has(d))throw Error("managed account home is an external mount");return{root:d,stat:f,uid:h,mounts:i,ownedPaths:n(a,b)}}(a,b,c)}catch(a){throw u(f,".",r(a))}let h=function a(b,c,d,f,h,i,j,k){let l;if("linux"!==process.platform)return{complete:!1,changed:!1};try{l=e().openSync(h,e().constants.O_RDONLY|e().constants.O_DIRECTORY|e().constants.O_NOFOLLOW)}catch(a){throw u(t(b,c,d),i||".",r(a))}try{let h=e().fstatSync(l),m=i?g().join(f.root,i):f.root;if(h.dev!==j.dev||h.ino!==j.ino||!v(f,h,m)){let a=t(b,c,d);throw u(a,i||".","account-home directory identity changed during removal")}let n=`/proc/self/fd/${l}`,o=!0,p=!1;for(let h of e().readdirSync(n,{withFileTypes:!0})){let j;if(!i&&k===h.name)continue;let l=g().join(n,h.name),m=i?g().join(i,h.name):h.name;try{j=e().lstatSync(l)}catch(e){let a=t(b,c,d);throw u(a,m,r(e))}if(!v(f,j,g().join(f.root,m))){let a=t(b,c,d);throw u(a,m,"account-home entry failed removal safety checks")}let s=q(b,m,g().join(f.root,m),j,f.ownedPaths);if("owned"!==s.classification||s.history){let a=t(b,c,d);throw u(a,m,"account-home entry is outside deletion ownership")}if(j.isSymbolicLink()){try{e().rmSync(l,{force:!0}),p=!0}catch{o=!1}continue}if(j.isDirectory()){let h=a(b,c,d,f,l,m,j,k);h.complete||(o=!1),h.changed&&(p=!0);try{e().rmdirSync(l),p=!0}catch(e){let a=t(b,c,d);if(a.artifacts.some(a=>a.history&&(a.path===m||a.path.startsWith(`${m}${g().sep}`))))throw u(a,m,"history appeared during account-home removal");"ENOENT"!==e.code&&(o=!1)}continue}try{e().rmSync(l,{force:!0}),p=!0}catch{o=!1}}return{complete:o,changed:p}}finally{e().closeSync(l)}}(a,b,c,d,d.root,"",d.stat,null);try{e().rmdirSync(d.root)}catch(d){if("ENOENT"!==d.code){let d=t(a,b,c);if(d.artifacts.some(a=>a.history))throw u(d,".","history appeared during account-home removal");return!1}}try{return h.complete&&!function(a){let b=g().resolve(a);try{return e().lstatSync(b),!0}catch(a){if("ENOENT"===a.code)return!1;throw new i({home:b,artifacts:[],error:{path:".",message:r(a)}})}}(d.root)}catch{return!1}}},68465:(a,b,c)=>{c.d(b,{Fn:()=>N,Hy:()=>y,No:()=>O,OL:()=>w,UV:()=>u,ZK:()=>V,fM:()=>W,fg:()=>Z,kK:()=>P,o1:()=>C,ob:()=>Q,pW:()=>S,qX:()=>T,ss:()=>R,x0:()=>Y,y3:()=>U});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(30737),l=c(65281),m=c(63685),n=c(39137);let o=/^[a-z0-9][a-z0-9-]{0,31}$/,p="default",q=["skills","commands","agents"],r=["settings.json"],s=new Set([".credentials.json",".claude.json","projects","history.jsonl","session-env","shell-snapshots","file-history","todos","cache","debug","backups","paste-cache","plugins","mcp.json","settings.local.json"]),t=null;class u extends Error{constructor(a){super(`unknown Claude account: ${a}`),this.name="UnknownClaudeAccountError"}}class v extends Error{constructor(){super("account label must contain visible text and be at most 80 characters"),this.name="InvalidClaudeAccountLabelError"}}class w extends Error{constructor(){super("Claude account registry is corrupt; repair or remove it before changing accounts"),this.name="CorruptClaudeAccountsError"}}class x extends Error{constructor(){super("managed Claude home failed safety checks"),this.name="UnsafeClaudeHomeError"}}function y(){return i().resolve(process.env.LLV_CLAUDE_HOME||i().join(g().homedir(),".claude"))}function z(){return i().join(i().dirname((0,j.Pn)()),"accounts","claude")}function A(){return(0,j.BQ)("claude-accounts.json")}function B(){return i().join(i().dirname((0,j.Pn)()),"shared","claude")}function C(){return i().join(B(),"projects")}function D(a){let b=i().join(a,"projects");try{if(!e().lstatSync(b).isSymbolicLink())return b;let a=C();if(e().realpathSync(b)===e().realpathSync(a))return a}catch{}return b}function E(a){return i().join(z(),a)}function F(){return{version:1,active:p,accounts:[],retired:[]}}function G(a,b=!1){if(!o.test(a)||a===p)return!1;let c=i().resolve(z()),d=i().resolve(E(a));if(i().dirname(d)!==c)return!1;try{var f;let a=e().lstatSync(c),b=e().lstatSync(d);if(!a.isDirectory()||a.isSymbolicLink()||!b.isDirectory()||b.isSymbolicLink()||(f=b.mode,(63&f)!=0||(511&f)!=448))return!1;return i().dirname(e().realpathSync(d))===e().realpathSync(c)}catch{return!b}}function H(){let a,b=A(),c=`${b}:${function(a){try{let b=e().statSync(a);return`${b.mtimeMs}:${b.size}`}catch{return"missing"}}(b)}`;if(t?.key===c)return t.loaded;try{a=e().existsSync(b)?function(a){if(!a||"object"!=typeof a||1!==a.version||"string"!=typeof a.active||!Array.isArray(a.accounts)||void 0!==a.retired&&!Array.isArray(a.retired))return{registry:F(),corrupt:!0};let b=new Set,c=!1,d=[];for(let e of a.accounts){if(!(e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.label&&"managed"===e.kind&&"number"==typeof e.createdAt&&G(e.id))||b.has(e.id)){c=!0;continue}b.add(e.id),d.push(e)}let e=[];for(let d of a.retired??[]){if(!(d&&"object"==typeof d&&"string"==typeof d.id&&"string"==typeof d.label&&"number"==typeof d.retiredAt&&G(d.id))||b.has(d.id)){c=!0;continue}b.add(d.id),e.push(d)}return{registry:{version:1,active:a.active,accounts:d,retired:e},corrupt:c}}(JSON.parse(e().readFileSync(b,"utf8"))):{registry:F(),corrupt:!1}}catch{a={registry:F(),corrupt:!0}}return t={key:c,loaded:a},a}function I(){let a=H();if(a.corrupt)throw new w;return a.registry}function J(a){return(0,m.oV)(()=>{let b=`${A()}.lock`,c=Date.now();for(e().mkdirSync(i().dirname(b),{recursive:!0,mode:448});;)try{let c=e().openSync(b,"wx",384);try{return e().writeFileSync(c,`${process.pid}
3
- `,"utf8"),a()}finally{e().closeSync(c),e().rmSync(b,{force:!0})}}catch(a){if("EEXIST"!==a.code)throw a;try{if(Date.now()-e().statSync(b).mtimeMs>3e4){e().rmSync(b,{force:!0});continue}}catch{continue}if(Date.now()-c>=5e3)throw Error("Claude account registry is busy; retry shortly");Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,10)}})}function K(a){let b=A();e().mkdirSync(i().dirname(b),{recursive:!0,mode:448});let c=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${Date.now()}.tmp`);try{e().writeFileSync(c,JSON.stringify(a,null,2)+"\n",{mode:384});let d=e().openSync(c,"r");try{e().fsyncSync(d)}finally{e().closeSync(d)}e().renameSync(c,b);let f=e().openSync(i().dirname(b),"r");try{e().fsyncSync(f)}finally{e().closeSync(f)}t=null}finally{e().rmSync(c,{force:!0})}}function L(a){let b=(0,k.TK)(a);return{authPresent:"present"===b.state,credentialState:b.state}}function M(a){let b=E(a.id);return{...a,home:b,projectsDir:D(b),...L(b)}}function N(){let a;return[{id:p,label:"Main",kind:"legacy",home:a=y(),projectsDir:D(a),...L(a),createdAt:0},...H().registry.accounts.map(M)]}function O(){let a=H().registry.active;return N().some(b=>b.id===a)?a:p}function P(){return H().corrupt}function Q(a){let b=N().find(b=>b.id===(a??O()));if(!b)throw new u(a??"");if("managed"===b.kind&&(!G(b.id,!0)||!function(a,b=!1){let c=(0,k.vt)(a);return"safe"===c||!b&&"absent"===c}(b.home)))throw new x;return{id:b.id,kind:b.kind,home:b.home,projectsDir:b.projectsDir}}function R(a){J(()=>{t=null;let b=I();if(!N().some(b=>b.id===a))throw new u(a);K({...b,active:a})})}function S(){return[...new Set([...N().map(a=>a.projectsDir),...H().registry.retired.map(a=>D(E(a.id)))])]}function T(a,b){let c;try{c=e().realpathSync(a)}catch{return{kind:"unreadable"}}let d=N(),f=null;try{f=e().realpathSync(C())}catch{}for(let a of d)try{let b=e().realpathSync(a.projectsDir);if(null!==f&&b===f)continue;if(c.startsWith(b+i().sep))return{kind:"owned",accountId:a.id,home:a.home,source:"path"}}catch{}let g=b?d.find(a=>a.id===b):void 0;if(g)return{kind:"owned",accountId:g.id,home:g.home,source:"recorded"};if(null!==f&&c.startsWith(f+i().sep)){let a=O(),b=d.find(b=>b.id===a)??d[0];if(b)return{kind:"owned",accountId:b.id,home:b.home,source:"shared-store"}}return{kind:"foreign"}}function U(a){let b=T(a);return"owned"===b.kind&&"path"===b.source?b.home:null}function V(){let a=i().join(B(),"settings.json");return e().existsSync(a)?a:null}function W(a){let b=a.trim();if(!b||b.length>80||/[\u0000-\u001f\u007f]/.test(b))throw new v;return J(()=>{t=null;let a=I(),c=function(a,b){let c=a.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,32)||"account";for(let a=0;;a+=1){let d=a?`-${a}`:"",f=`${c.slice(0,32-d.length)}${d}`;if(o.test(f)&&f!==p&&!b.has(f)&&!e().existsSync(E(f)))return f}}(b,new Set([...N().map(a=>a.id),...a.retired.map(a=>a.id)])),d=E(c),f=!1;if("absent"!==(0,k.TK)(d).state)throw new x;try{e().mkdirSync(i().dirname(d),{recursive:!0,mode:448}),e().chmodSync(i().dirname(d),448),e().mkdirSync(d,{mode:448}),e().chmodSync(d,448),f=!0;let g=function(){let a=B(),b=`${a}.tmp-${process.pid}-${Date.now()}`,c={files:0,bytes:0};e().rmSync(b,{recursive:!0,force:!0}),e().mkdirSync(b,{recursive:!0,mode:448});try{for(let a of[...q,...r]){let d=i().join(y(),a);e().existsSync(d)&&function a(b,c,d){let f=e().lstatSync(b);if(!f.isSymbolicLink()&&(f.isDirectory()||f.isFile())){if(f.isFile()){if(++d.files>2e3||(d.bytes+=f.size)>0x1000000)throw Error("Claude capability snapshot exceeds safety limit");e().mkdirSync(i().dirname(c),{recursive:!0,mode:448}),e().copyFileSync(b,c),e().chmodSync(c,384);return}for(let f of(e().mkdirSync(c,{recursive:!0,mode:448}),e().readdirSync(b,{withFileTypes:!0})))s.has(f.name)||a(i().join(b,f.name),i().join(c,f.name),d)}}(d,i().join(b,a),c)}return e().mkdirSync(i().dirname(a),{recursive:!0,mode:448}),e().chmodSync(i().dirname(a),448),e().rmSync(a,{recursive:!0,force:!0}),e().renameSync(b,a),e().chmodSync(a,448),a}catch(a){throw e().rmSync(b,{recursive:!0,force:!0}),a}}();for(let a of q){let b=i().join(g,a);e().existsSync(b)&&e().symlinkSync(b,i().join(d,a))}e().mkdirSync(i().join(d,"projects"),{mode:448});let h={id:c,label:b,kind:"managed",createdAt:Date.now()};return K({...a,accounts:[...a.accounts,h]}),M(h)}catch(a){if(f)try{(0,n.jK)("claude",c,d)||console.warn("[claude accounts] failed-account home cleanup is incomplete")}catch(a){if(console.warn("[claude accounts] preserving failed-account home after history cleanup refusal"),a instanceof n.s4)throw a}throw a}})}let X=["CLAUDE_SECURESTORAGE_CONFIG_DIR","ANTHROPIC_API_KEY","ANTHROPIC_AUTH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","ANTHROPIC_BASE_URL","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","GOOGLE_APPLICATION_CREDENTIALS","VERTEXAI_PROJECT","CLAUDE_CODE_USE_BEDROCK","CLAUDE_CODE_USE_VERTEX"];function Y(a,b=process.env){let c={...(0,l.Fd)(b),CLAUDE_CONFIG_DIR:a};for(let a of X)delete c[a];return c}function Z(a){return N().some(b=>"managed"===b.kind&&b.home===a&&G(b.id,!0))}}};
2
+ `;if(Buffer.byteLength(b)>4032||0!==d.security(["-i"],b).status)return!1;let c=r(a,d);return"present"===c.state&&"keychain"===c.source&&JSON.stringify(c.document)===g}let i=l().join(a,".credentials.json"),j=l().join(a,`.credentials.${f().randomUUID()}.tmp`);try{let b=h().openSync(j,"wx",384);try{h().writeFileSync(b,g),h().fsyncSync(b)}finally{h().closeSync(b)}if("safe"!==p(a))return!1;h().renameSync(j,i);let c=h().openSync(a,"r");try{h().fsyncSync(c)}finally{h().closeSync(c)}return!0}catch{return!1}finally{h().rmSync(j,{force:!0})}}},39137:(a,b,c)=>{c.d(b,{N5:()=>z,XU:()=>K,Zi:()=>E,jK:()=>y,nH:()=>I,nr:()=>D,s4:()=>j,yK:()=>J});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(27146);c(65972);var i=c(70160);class j extends Error{constructor(a){super("account history inventory blocked removal"),this.report=a,this.name="AccountHistoryInventoryBlockedError"}}let k={claude:new Set(["projects","file-history","session-env","shell-snapshots","todos","debug","backups","paste-cache"]),codex:new Set(["sessions","archived_sessions","log","shell_snapshots"])},l={claude:new Set([".credentials.json",".claude.json"]),codex:new Set(["auth.json"])},m={claude:new Set(["skills","commands","agents"]),codex:new Set(["skills","prompts","config.toml","AGENTS.md","memories","rules",g().join("plugins","cache")])},n={claude:new Set(["cache","plugins"]),codex:new Set([".tmp","mcp-oauth",g().join("plugins","data")])},o=/^[a-z0-9][a-z0-9-]{0,31}$/;function p(a,b){let c=new Set;for(let d of Object.values((0,i.agentRegistry)().readOnlySnapshot().conversations)){if(d.engine!==a)continue;let e=d.generations.filter(a=>a.accountId===b);for(let a of e)c.add(g().resolve(a.path));if(0!==e.length)for(let a of[...d.continuityPaths,...d.abandonedContinuityPaths,...d.providerForkPaths,...d.migration?.pendingContinuityPaths??[],...d.migration?.providerReceipt?.continuityPaths??[],...d.migration?.providerReceipt?[d.migration.providerReceipt.path]:[]])c.add(g().resolve(a))}return c}function q(a,b){return a===b||a.startsWith(`${b}${g().sep}`)}function r(a,b){if("claude"===a&&q(b,g().join("plugins","data")))return!1;for(let c of n[a])if(q(b,c))return!0;return!1}function s(a,b,c,d,e){let f,h,i=(f=b.split(g().sep)[0],h=g().basename(b),k[a].has(f)||"history.jsonl"===f||h.endsWith(".jsonl")||"codex"===a&&/\.sqlite3?(?:-(?:shm|wal))?$/.test(h));return d.isSymbolicLink()?m[a].has(b)?{path:b,classification:"owned",history:!1}:i?{path:b,classification:"history",history:!0}:{path:b,classification:"unknown",history:!1}:d.isDirectory()?function(a,b){for(let c of k[a])if(q(b,c))return!0;return!1}(a,b)||r(a,b)||"codex"===a&&"plugins"===b?{path:b,classification:"owned",history:!1}:{path:b,classification:"unknown",history:!1}:d.isFile()&&e.has(g().resolve(c))?{path:b,classification:"owned",history:!0}:i?{path:b,classification:"history",history:!0}:d.isFile()&&(l[a].has(b)||r(a,b))?{path:b,classification:"owned",history:!1}:{path:b,classification:"unknown",history:!1}}function t(a){return a instanceof Error?a.message:"filesystem inventory failed"}function u(){if("linux"!==process.platform)return new Set;let a=new Set;for(let b of e().readFileSync("/proc/self/mountinfo","utf8").split("\n")){if(!b)continue;let c=b.split(" ")[4];if(!c)throw Error("filesystem mount inventory is malformed");a.add(g().resolve(c.replace(/\\([0-7]{3})/g,(a,b)=>String.fromCharCode(Number.parseInt(b,8)))))}return a}function v(a,b,c){let d=g().resolve(c),f=[],h=".";try{let c=e().lstatSync(d);if(!c.isDirectory()||c.isSymbolicLink())throw Error("managed account home is not a safe directory");let i=process.getuid?.()??c.uid;if(c.uid!==i||(18&c.mode)!=0)throw Error("managed account home has unsafe ownership or permissions");let j=u();if(j.has(d))throw Error("managed account home is an external mount");let k=p(a,b),l=(b,d)=>{for(let m of(h=d||".",e().readdirSync(b,{withFileTypes:!0}))){let n=g().join(b,m.name),o=d?g().join(d,m.name):m.name;h=o;let p=e().lstatSync(n);if(j.has(g().resolve(n)))throw Error(`history inventory reached an external mount at ${o}`);if(p.dev!==c.dev)throw Error(`history inventory crossed a filesystem boundary at ${o}`);if(p.uid!==i||!p.isSymbolicLink()&&(18&p.mode)!=0)throw Error(`history inventory found unsafe ownership or permissions at ${o}`);if(f.push(s(a,o,n,p,k)),!p.isSymbolicLink()&&p.isDirectory()){l(n,o);continue}}};l(d,"")}catch(a){throw new j({home:d,artifacts:f,error:{path:h,message:t(a)}})}let i={home:d,artifacts:f.sort((a,b)=>a.path.localeCompare(b.path))};if(i.artifacts.some(a=>"owned"!==a.classification))throw new j(i);return i}function w(a,b,c){return new j({...a,error:{path:b,message:c}})}function x(a,b,c){return!a.mounts.has(g().resolve(c))&&b.dev===a.stat.dev&&b.uid===a.uid&&(b.isSymbolicLink()||(18&b.mode)==0)}function y(a,b,c){let d,f=v(a,b,c);if(f.artifacts.some(a=>a.history))throw new j(f);if("linux"!==process.platform)return!1;try{d=function(a,b,c){let d=g().resolve(c),f=e().lstatSync(d),h=process.getuid?.()??f.uid;if(!f.isDirectory()||f.isSymbolicLink()||f.uid!==h||(18&f.mode)!=0)throw Error("managed account home is not a safe directory");let i=u();if(i.has(d))throw Error("managed account home is an external mount");return{root:d,stat:f,uid:h,mounts:i,ownedPaths:p(a,b)}}(a,b,c)}catch(a){throw w(f,".",t(a))}let h=function a(b,c,d,f,h,i,j,k){let l;if("linux"!==process.platform)return{complete:!1,changed:!1};try{l=e().openSync(h,e().constants.O_RDONLY|e().constants.O_DIRECTORY|e().constants.O_NOFOLLOW)}catch(a){throw w(v(b,c,d),i||".",t(a))}try{let h=e().fstatSync(l),m=i?g().join(f.root,i):f.root;if(h.dev!==j.dev||h.ino!==j.ino||!x(f,h,m)){let a=v(b,c,d);throw w(a,i||".","account-home directory identity changed during removal")}let n=`/proc/self/fd/${l}`,o=!0,p=!1;for(let h of e().readdirSync(n,{withFileTypes:!0})){let j;if(!i&&k===h.name)continue;let l=g().join(n,h.name),m=i?g().join(i,h.name):h.name;try{j=e().lstatSync(l)}catch(e){let a=v(b,c,d);throw w(a,m,t(e))}if(!x(f,j,g().join(f.root,m))){let a=v(b,c,d);throw w(a,m,"account-home entry failed removal safety checks")}let q=s(b,m,g().join(f.root,m),j,f.ownedPaths);if("owned"!==q.classification||q.history){let a=v(b,c,d);throw w(a,m,"account-home entry is outside deletion ownership")}if(j.isSymbolicLink()){try{e().rmSync(l,{force:!0}),p=!0}catch{o=!1}continue}if(j.isDirectory()){let h=a(b,c,d,f,l,m,j,k);h.complete||(o=!1),h.changed&&(p=!0);try{e().rmdirSync(l),p=!0}catch(e){let a=v(b,c,d);if(a.artifacts.some(a=>a.history&&(a.path===m||a.path.startsWith(`${m}${g().sep}`))))throw w(a,m,"history appeared during account-home removal");"ENOENT"!==e.code&&(o=!1)}continue}try{e().rmSync(l,{force:!0}),p=!0}catch{o=!1}}return{complete:o,changed:p}}finally{e().closeSync(l)}}(a,b,c,d,d.root,"",d.stat,null);try{e().rmdirSync(d.root)}catch(d){if("ENOENT"!==d.code){let d=v(a,b,c);if(d.artifacts.some(a=>a.history))throw w(d,".","history appeared during account-home removal");return!1}}try{return h.complete&&!function(a){let b=g().resolve(a);try{return e().lstatSync(b),!0}catch(a){if("ENOENT"===a.code)return!1;throw new j({home:b,artifacts:[],error:{path:".",message:t(a)}})}}(d.root)}catch{return!1}}function z(a,b,c){let d,f,h,i=[],j=[];if(!o.test(b))return{removed:i,unresolved:c.map(a=>`${b}${a}`)};let k=g().resolve(a);try{d=e().lstatSync(k);let a=process.getuid?.()??d.uid;if(!d.isDirectory()||d.isSymbolicLink()||d.uid!==a||(18&d.mode)!=0)throw Error("unsafe account root")}catch(a){if("ENOENT"===a.code)return{removed:i,unresolved:j};return{removed:i,unresolved:c.map(a=>`${b}${a}`)}}let l=process.getuid?.()??d.uid;try{f=u()}catch{return{removed:i,unresolved:c.map(a=>`${b}${a}`)}}if("linux"!==process.platform){for(let a of c){let c=`${b}${a}`;try{e().lstatSync(g().join(k,c)),j.push(c)}catch(a){"ENOENT"!==a.code&&j.push(c)}}return{removed:i,unresolved:j.sort()}}try{h=e().openSync(k,e().constants.O_RDONLY|e().constants.O_DIRECTORY|e().constants.O_NOFOLLOW);let a=e().fstatSync(h);if(a.dev!==d.dev||a.ino!==d.ino)throw Error("account root identity changed")}catch{return{removed:i,unresolved:c.map(a=>`${b}${a}`)}}try{let a=`/proc/self/fd/${h}`;for(let h of c){let c=`${b}${h}`,m=g().join(a,c),n=g().join(k,c);try{if(e().lstatSync(m),!function a(b,c,d,f,h){let i,j=e().lstatSync(b);if(h.has(g().resolve(c))||j.isSymbolicLink()||j.dev!==d.dev||j.uid!==f||(18&j.mode)!=0)return!1;if(!j.isDirectory())return j.isFile();if("linux"!==process.platform)return!1;try{i=e().openSync(b,e().constants.O_RDONLY|e().constants.O_DIRECTORY|e().constants.O_NOFOLLOW)}catch{return!1}try{let b=e().fstatSync(i);if(b.dev!==j.dev||b.ino!==j.ino)return!1;let k=`/proc/self/fd/${i}`;for(let b of e().readdirSync(k,{withFileTypes:!0}))if(!a(g().join(k,b.name),g().join(c,b.name),d,f,h))return!1}finally{e().closeSync(i)}return!0}(m,n,d,l,f)){j.push(c);continue}e().rmSync(m,{recursive:!0,force:!1});try{e().lstatSync(m),j.push(c)}catch(a){"ENOENT"===a.code?i.push(c):j.push(c)}}catch(a){if("ENOENT"===a.code){try{e().lstatSync(m),j.push(c)}catch(a){"ENOENT"!==a.code&&j.push(c)}continue}j.push(c)}}}finally{e().closeSync(h)}return{removed:i.sort(),unresolved:j.sort()}}let A={claude:[".credentials.json"],codex:["auth.json"]},B={claude:[...m.claude,"projects"],codex:[...m.codex]},C=globalThis.__llvAccountRemovalsInFlight??=new Set;function D(a,b){return C.has(`${a}:${b}`)}function E(a,b){return g().join(g().dirname((0,h.Pn)()),"shared",a,"retired",b)}function F(a){try{return e().lstatSync(a)}catch(a){if("ENOENT"===a.code)return null;throw a}}function G(a){let b=e().openSync(a,e().constants.O_RDONLY|e().constants.O_DIRECTORY|e().constants.O_NOFOLLOW);if(!e().fstatSync(b).isDirectory())throw e().closeSync(b),Error("not a directory");return b}function H(a,b,c){let d=b.split(g().sep),f=[];try{for(let b of(f.push(G(a)),d.slice(0,-1))){let a=g().join(`/proc/self/fd/${f.at(-1)}`,b);try{f.push(G(a))}catch(b){let a=b.code;return"ENOENT"===a||"ENOTDIR"===a||"ELOOP"===a}}let b=g().join(`/proc/self/fd/${f.at(-1)}`,d.at(-1)),h=F(b);if(!h||!c(h))return!0;try{e().unlinkSync(b)}catch{return!1}return null===F(b)}catch{return!1}finally{for(let a of f.reverse())e().closeSync(a)}}function I(a){let b=g().resolve(a.home),c=E(a.engine,a.accountId),d=()=>{let b,d,f,h,i;return(b=function(a,b){if(!F(b))return!0;if("linux"!==process.platform)return!1;let c=!0;for(let d of A[a])H(b,d,a=>a.isFile()||a.isSymbolicLink())||(c=!1);for(let d of B[a])H(b,d,a=>a.isSymbolicLink())||(c=!1);return c}(a.engine,c),d=0,f=0,h=a=>{let b;try{b=e().readdirSync(a,{withFileTypes:!0})}catch{return}for(let c of b){let b=g().join(a,c.name),e=F(b);e&&(e.isDirectory()?h(b):e.isFile()&&(d+=1,f+=e.size))}},F(c)?.isDirectory()&&h(c),i={files:d,bytes:f},!function a(b){let c;try{c=e().readdirSync(b,{withFileTypes:!0})}catch{return}for(let d of c){let c=g().join(b,d.name);F(c)?.isDirectory()&&a(c)}try{e().rmdirSync(b)}catch{}}(c),{complete:b,...i}).complete?(a.clearJournal(),"retired"):null};if("scrubbing"===a.entry.phase)return d();let f=null!==F(b),h=null!==F(c);if(f&&h)return null;if("retiring"===a.entry.phase){if(f)return a.clearJournal(),"restored";if(!a.listed)return d();try{(0,i.agentRegistry)().retireAccount(a.engine,a.accountId,"default",{},{rewrite:a.entry.rewrites??[]})}catch{return null}return a.commitRetired(),d()}if(!f&&h){if(!a.listed)return null;e().renameSync(c,b),(0,i.agentRegistry)().rewriteAccountPaths(a.engine,[{from:c,to:b}])}return a.clearJournal(),"restored"}function J(a,b){if(void 0===a)return[];if(!Array.isArray(a))return null;let c=[];for(let d of a){let a,e=d;if(!e||"string"!=typeof e.id||!b(e.id)||"archiving"!==e.phase&&"retiring"!==e.phase&&"scrubbing"!==e.phase||"number"!=typeof e.startedAt||c.some(a=>a.id===e.id))return null;if(void 0!==e.rewrites){if(!Array.isArray(e.rewrites))return null;for(let b of(a=[],e.rewrites)){let{from:c,to:d}=b??{};if("string"!=typeof c||"string"!=typeof d||!g().isAbsolute(c)||!g().isAbsolute(d))return null;a.push({from:c,to:d})}}c.push({id:e.id,phase:e.phase,startedAt:e.startedAt,...a?{rewrites:a}:{}})}return c}function K(a,b,c,d){let e=a.filter(a=>a.id!==b);if(!c)return e;let f=a.find(a=>a.id===b)?.startedAt??Date.now();return[...e,{id:b,phase:c,startedAt:f,...d?{rewrites:d.map(({from:a,to:b})=>({from:a,to:b}))}:{}}]}},68465:(a,b,c)=>{c.d(b,{Fn:()=>P,Hy:()=>y,No:()=>Q,OL:()=>w,UV:()=>u,ZK:()=>X,fM:()=>Y,fg:()=>ab,kK:()=>R,o1:()=>C,ob:()=>S,pW:()=>U,qX:()=>V,ss:()=>T,x0:()=>aa,y3:()=>W});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(30737),l=c(65281),m=c(63685),n=c(39137);let o=/^[a-z0-9][a-z0-9-]{0,31}$/,p="default",q=["skills","commands","agents"],r=["settings.json"],s=new Set([".credentials.json",".claude.json","projects","history.jsonl","session-env","shell-snapshots","file-history","todos","cache","debug","backups","paste-cache","plugins","mcp.json","settings.local.json"]),t=null;class u extends Error{constructor(a){super(`unknown Claude account: ${a}`),this.name="UnknownClaudeAccountError"}}class v extends Error{constructor(){super("account label must contain visible text and be at most 80 characters"),this.name="InvalidClaudeAccountLabelError"}}class w extends Error{constructor(){super("Claude account registry is corrupt; repair or remove it before changing accounts"),this.name="CorruptClaudeAccountsError"}}class x extends Error{constructor(){super("managed Claude home failed safety checks"),this.name="UnsafeClaudeHomeError"}}function y(){return i().resolve(process.env.LLV_CLAUDE_HOME||i().join(g().homedir(),".claude"))}function z(){return i().join(i().dirname((0,j.Pn)()),"accounts","claude")}function A(){return(0,j.BQ)("claude-accounts.json")}function B(){return i().join(i().dirname((0,j.Pn)()),"shared","claude")}function C(){return i().join(B(),"projects")}function D(a){let b=i().join(a,"projects");try{if(!e().lstatSync(b).isSymbolicLink())return b;let a=C();if(e().realpathSync(b)===e().realpathSync(a))return a}catch{}return b}function E(a){return i().join(z(),a)}function F(){return{version:1,active:p,accounts:[],retired:[],removals:[]}}function G(a,b=!1){if(!o.test(a)||a===p)return!1;let c=i().resolve(z()),d=i().resolve(E(a));if(i().dirname(d)!==c)return!1;try{var f;let a=e().lstatSync(c),b=e().lstatSync(d);if(!a.isDirectory()||a.isSymbolicLink()||!b.isDirectory()||b.isSymbolicLink()||(f=b.mode,(63&f)!=0||(511&f)!=448))return!1;return i().dirname(e().realpathSync(d))===e().realpathSync(c)}catch{return!b}}function H(){let a,b=A(),c=`${b}:${function(a){try{let b=e().statSync(a);return`${b.mtimeMs}:${b.size}`}catch{return"missing"}}(b)}`;if(t?.key===c)return t.loaded;try{a=e().existsSync(b)?function(a){if(!a||"object"!=typeof a||1!==a.version||"string"!=typeof a.active||!Array.isArray(a.accounts)||void 0!==a.retired&&!Array.isArray(a.retired))return{registry:F(),corrupt:!0};let b=new Set,c=!1,d=[];for(let e of a.accounts){if(!(e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.label&&"managed"===e.kind&&"number"==typeof e.createdAt&&G(e.id))||b.has(e.id)){c=!0;continue}b.add(e.id),d.push(e)}let e=[];for(let d of a.retired??[]){if(!(d&&"object"==typeof d&&"string"==typeof d.id&&"string"==typeof d.label&&"number"==typeof d.retiredAt&&(void 0===d.archived||!0===d.archived)&&G(d.id))||b.has(d.id)){c=!0;continue}b.add(d.id),e.push(d)}let f=(0,n.yK)(a.removals,a=>o.test(a)&&a!==p);return f?{registry:{version:1,active:a.active,accounts:d,retired:e,removals:f},corrupt:c}:{registry:F(),corrupt:!0}}(JSON.parse(e().readFileSync(b,"utf8"))):{registry:F(),corrupt:!1}}catch{a={registry:F(),corrupt:!0}}return t={key:c,loaded:a},a}function I(){let a=H();if(a.corrupt)throw new w;return a.registry}function J(){return`${A()}.lock`}function K(a){try{let b=Number.parseInt(e().readFileSync(a,"utf8"),10);if(!Number.isSafeInteger(b)||b<=0||b===process.pid)return!1;return process.kill(b,0),!1}catch(a){return"ESRCH"===a.code}}function L(a){return(0,m.oV)(()=>{let b=J(),c=Date.now();for(e().mkdirSync(i().dirname(b),{recursive:!0,mode:448});;)try{let c=e().openSync(b,"wx",384);try{return e().writeFileSync(c,`${process.pid}
3
+ `,"utf8"),a()}finally{e().closeSync(c),e().rmSync(b,{force:!0})}}catch(a){if("EEXIST"!==a.code)throw a;try{if(K(b)||Date.now()-e().statSync(b).mtimeMs>3e4){e().rmSync(b,{force:!0});continue}}catch{continue}if(Date.now()-c>=5e3)throw Error("Claude account registry is busy; retry shortly");Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,10)}})}function M(a){let b=A();e().mkdirSync(i().dirname(b),{recursive:!0,mode:448});let c=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${Date.now()}.tmp`);try{e().writeFileSync(c,JSON.stringify(a,null,2)+"\n",{mode:384});let d=e().openSync(c,"r");try{e().fsyncSync(d)}finally{e().closeSync(d)}e().renameSync(c,b);let f=e().openSync(i().dirname(b),"r");try{e().fsyncSync(f)}finally{e().closeSync(f)}t=null}finally{e().rmSync(c,{force:!0})}}function N(a){let b=(0,k.TK)(a);return{authPresent:"present"===b.state,credentialState:b.state}}function O(a){let b=E(a.id);return{...a,home:b,projectsDir:D(b),...N(b)}}function P(){let a;return!function(){if($)return;let a=H();if(a.corrupt||0===a.registry.removals.length){$=!0;return}if(!e().existsSync(J())||K(J()))try{L(()=>(function(){t=null;let a=I(),b=[],c=[];for(let e of a.removals){var d;if((0,n.nr)("claude",e.id))continue;let f=null;try{f=(0,n.nH)({engine:"claude",accountId:e.id,home:E(e.id),entry:e,listed:a.accounts.some(a=>a.id===e.id),commitRetired:()=>{t=null,M(function(a,b){let c=a.accounts.find(a=>a.id===b)?.label??b;return{...a,active:a.active===b?p:a.active,accounts:a.accounts.filter(a=>a.id!==b),retired:[...a.retired.filter(a=>a.id!==b),{id:b,label:c,retiredAt:Date.now(),archived:!0}],removals:(0,n.XU)(a.removals,b,"scrubbing")}}(I(),e.id))},clearJournal:()=>(function(a){t=null;let b=I();M({...b,removals:(0,n.XU)(b.removals,a,null,void 0)})})(e.id)})}catch{}"retired"===f&&(d=e.id,(0,n.N5)(z(),d,Z).unresolved.length),(f?b:c).push(e.id)}return{recovered:b,unresolved:c}})()),$=!0}catch{}}(),[{id:p,label:"Main",kind:"legacy",home:a=y(),projectsDir:D(a),...N(a),createdAt:0},...H().registry.accounts.map(O)]}function Q(){let a=H().registry.active;return P().some(b=>b.id===a)?a:p}function R(){return H().corrupt}function S(a){let b=P().find(b=>b.id===(a??Q()));if(!b)throw new u(a??"");if("managed"===b.kind&&(!G(b.id,!0)||!function(a,b=!1){let c=(0,k.vt)(a);return"safe"===c||!b&&"absent"===c}(b.home)))throw new x;return{id:b.id,kind:b.kind,home:b.home,projectsDir:b.projectsDir}}function T(a){L(()=>{t=null;let b=I();if(!P().some(b=>b.id===a))throw new u(a);M({...b,active:a})})}function U(){return[...new Set([...P().map(a=>a.projectsDir),...H().registry.retired.map(a=>D(a.archived?(0,n.Zi)("claude",a.id):E(a.id)))])]}function V(a,b){let c;try{c=e().realpathSync(a)}catch{return{kind:"unreadable"}}let d=P(),f=null;try{f=e().realpathSync(C())}catch{}for(let a of d)try{let b=e().realpathSync(a.projectsDir);if(null!==f&&b===f)continue;if(c.startsWith(b+i().sep))return{kind:"owned",accountId:a.id,home:a.home,source:"path"}}catch{}let g=b?d.find(a=>a.id===b):void 0;if(g)return{kind:"owned",accountId:g.id,home:g.home,source:"recorded"};if(null!==f&&c.startsWith(f+i().sep)){let a=Q(),b=d.find(b=>b.id===a)??d[0];if(b)return{kind:"owned",accountId:b.id,home:b.home,source:"shared-store"}}return{kind:"foreign"}}function W(a){let b=V(a);return"owned"===b.kind&&"path"===b.source?b.home:null}function X(){let a=i().join(B(),"settings.json");return e().existsSync(a)?a:null}function Y(a){let b=a.trim();if(!b||b.length>80||/[\u0000-\u001f\u007f]/.test(b))throw new v;return L(()=>{t=null;let a=I(),c=function(a,b){let c=a.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,32)||"account";for(let a=0;;a+=1){let d=a?`-${a}`:"",f=`${c.slice(0,32-d.length)}${d}`;if(o.test(f)&&f!==p&&!b.has(f)&&!e().existsSync(E(f))&&!e().existsSync((0,n.Zi)("claude",f)))return f}}(b,new Set([...P().map(a=>a.id),...a.retired.map(a=>a.id)])),d=E(c),f=!1;if("absent"!==(0,k.TK)(d).state)throw new x;try{e().mkdirSync(i().dirname(d),{recursive:!0,mode:448}),e().chmodSync(i().dirname(d),448),e().mkdirSync(d,{mode:448}),e().chmodSync(d,448),f=!0;let g=function(){let a=B(),b=`${a}.tmp-${process.pid}-${Date.now()}`,c={files:0,bytes:0};e().rmSync(b,{recursive:!0,force:!0}),e().mkdirSync(b,{recursive:!0,mode:448});try{for(let a of[...q,...r]){let d=i().join(y(),a);e().existsSync(d)&&function a(b,c,d){let f=e().lstatSync(b);if(!f.isSymbolicLink()&&(f.isDirectory()||f.isFile())){if(f.isFile()){if(++d.files>2e3||(d.bytes+=f.size)>0x1000000)throw Error("Claude capability snapshot exceeds safety limit");e().mkdirSync(i().dirname(c),{recursive:!0,mode:448}),e().copyFileSync(b,c),e().chmodSync(c,384);return}for(let f of(e().mkdirSync(c,{recursive:!0,mode:448}),e().readdirSync(b,{withFileTypes:!0})))s.has(f.name)||a(i().join(b,f.name),i().join(c,f.name),d)}}(d,i().join(b,a),c)}for(let c of(e().mkdirSync(i().dirname(a),{recursive:!0,mode:448}),e().chmodSync(i().dirname(a),448),e().mkdirSync(a,{recursive:!0,mode:448}),e().chmodSync(a,448),[...q,...r])){let d=i().join(a,c);e().rmSync(d,{recursive:!0,force:!0}),e().existsSync(i().join(b,c))&&e().renameSync(i().join(b,c),d)}return a}finally{e().rmSync(b,{recursive:!0,force:!0})}}();for(let a of q){let b=i().join(g,a);e().existsSync(b)&&e().symlinkSync(b,i().join(d,a))}e().mkdirSync(i().join(d,"projects"),{mode:448});let h={id:c,label:b,kind:"managed",createdAt:Date.now()};return M({...a,accounts:[...a.accounts,h]}),O(h)}catch(a){if(f)try{(0,n.jK)("claude",c,d)||console.warn("[claude accounts] failed-account home cleanup is incomplete")}catch(a){if(console.warn("[claude accounts] preserving failed-account home after history cleanup refusal"),a instanceof n.s4)throw a}throw a}})}let Z=[".lock"],$=!1,_=["CLAUDE_SECURESTORAGE_CONFIG_DIR","ANTHROPIC_API_KEY","ANTHROPIC_AUTH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","ANTHROPIC_BASE_URL","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","GOOGLE_APPLICATION_CREDENTIALS","VERTEXAI_PROJECT","CLAUDE_CODE_USE_BEDROCK","CLAUDE_CODE_USE_VERTEX"];function aa(a,b=process.env){let c={...(0,l.Fd)(b),CLAUDE_CONFIG_DIR:a};for(let a of _)delete c[a];return c}function ab(a){return P().some(b=>"managed"===b.kind&&b.home===a&&G(b.id,!0))}}};
@@ -1,2 +1,2 @@
1
1
  "use strict";exports.id=8617,exports.ids=[8617],exports.modules={915:(a,b,c)=>{c.d(b,{$U:()=>w,Cv:()=>x,Dd:()=>s,Ip:()=>m,S6:()=>r,bv:()=>o,gq:()=>t,kz:()=>u,uX:()=>v});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(48892),k=c(91724),l=c(30795);let m=120,n=()=>(0,k.BQ)("session-titles.json");class o extends Error{constructor(a){super(a),this.name="TitleStoreUnreadableError"}}function p(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.key&&a.key.length>0&&(null===a.title||"string"==typeof a.title&&a.title.length>0)&&"number"==typeof a.revision&&Number.isInteger(a.revision)&&a.revision>0&&"string"==typeof a.updatedAt}function q(a=n()){let b,c;try{b=g().readFileSync(a,"utf8")}catch(a){if("ENOENT"===a.code)return[];throw new o(`session titles store is unreadable: ${a.message}`)}try{c=JSON.parse(b)}catch{throw new o("session titles store is not valid JSON")}if(!c||"object"!=typeof c||Array.isArray(c))throw new o("session titles store has an unexpected shape");let d=c;if(void 0!==d.version&&1!==d.version)throw new o(`session titles store schema version ${String(d.version)} is unsupported`);if(!Array.isArray(d.titles))throw new o("session titles store is missing its titles array");let e=d.titles.filter(p);if(e.length!==d.titles.length)throw new o("session titles store contains malformed records");return e}function r(a=n()){try{return q(a)}catch{return[]}}function s(a){let b=(0,l.cr)(a,m);return b.length>0?b:null}function t(a){return!a.slice(a.lastIndexOf("/")+1).startsWith("agent-")&&!a.includes("/subagents/")}function u(a,b=[],c=[]){let d=[],e=new Set,f=a=>{e.has(a)||(e.add(a),d.push(a))};for(let c of(a.conversationId?.startsWith("conversation_")&&f(`conversation:${a.conversationId}`),b))c.startsWith("conversation_")&&c!==a.conversationId&&f(`conversation:${c}`);let g=b=>{if("claude"===a.engine||"codex"===a.engine){let c=(0,j.sz)(a.engine,b);c&&f(`uuid:${(0,j.pp)(c)}`)}f(`path:${b}`)};for(let b of(g(a.path),c))g(b);return d}function v(a){return new Map(a.map(a=>[a.key,a]))}function w(a,b,c=[],d=[]){let e=function(a,b,c=[],d=[]){for(let e of u(a,c,d)){let a=b.get(e);if(a)return a}return null}(a,b,c,d);e&&(a.titleRevision=e.revision,null!==e.title&&(void 0===a.autoTitle&&(a.autoTitle=a.title),a.title=e.title))}function x(a,b,c,d,f,h=n()){let j=new Set(a);return function(a,b=n()){return function(a,b){let c=Date.now();for(g().mkdirSync(i().dirname(a),{recursive:!0});;)try{let c=g().openSync(a,"wx",384);try{return g().writeFileSync(c,`${process.pid}
2
- `,"utf8"),b()}finally{g().closeSync(c),g().rmSync(a,{force:!0})}}catch(b){if("EEXIST"!==b.code)throw b;try{if(Date.now()-g().statSync(a).mtimeMs>1e4){g().rmSync(a,{force:!0});continue}}catch{continue}if(Date.now()-c>=5e3)throw Error("session titles store is busy; retry shortly");Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,10)}}(`${b}.lock`,()=>{var c;let d=a(q(b));return d.records&&function(a,b=n()){let c;g().mkdirSync(i().dirname(b),{recursive:!0}),c=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`),g().writeFileSync(c,JSON.stringify({version:1,titles:a},null,2)+"\n","utf8"),g().renameSync(c,b)}((c=d.records).length<=2e3?c:[...c].sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt)).slice(0,2e3),b),d.result})}(e=>{let g=null;for(let b of a){let a=e.find(a=>a.key===b);if(a){g=a;break}}if(void 0!==d&&d!==(g?.revision??0))return{records:void 0,result:{ok:!1,conflict:g}};let h=null===c?null:s(c),i=e.filter(a=>!j.has(a.key));if(null===h){if(!g)return{records:void 0,result:{ok:!0,override:null,revision:0}};if(null===g.title)return{records:void 0,result:{ok:!0,override:null,revision:g.revision}};let a={key:b,title:null,revision:g.revision+1,updatedAt:f};return{records:[...i,a],result:{ok:!0,override:null,revision:a.revision}}}let k={key:b,title:h,revision:(g?.revision??0)+1,updatedAt:f};return{records:[...i,k],result:{ok:!0,override:k,revision:k.revision}}},h)}},12770:(a,b,c)=>{c.d(b,{Lh:()=>e,j0:()=>g,pV:()=>f});var d=c(643);function e(){return new Promise(a=>setImmediate(a))}async function f(a,b,c={}){let g=Math.max(1,Math.floor(c.batchSize??16)),h=Math.max(1,c.timeBudgetMs??32),i=d.performance.now(),j=0;for(let c=0;c<a.length;c+=1)await b(a[c],c),j+=1,!(c+1>=a.length)&&(j<g&&d.performance.now()-i<h||(await e(),i=d.performance.now(),j=0))}async function g(a,b,c={}){let d=Array(a.length);return await f(a,async(a,c)=>{d[c]=await b(a,c)},c),d}},13605:(a,b,c)=>{c.d(b,{Wl:()=>g,cy:()=>e,de:()=>d});let d=10,e=80;function f(a,b){let c=Number(a);return Number.isSafeInteger(c)&&c>0?c:b}function g(a,b,c=function(a=process.env){return{projectCap:f(a.LLV_SCHEME_PROJECT_CAP,d),cardsPerProject:f(a.LLV_SCHEME_CARDS_PER_PROJECT,e)}}(),h={}){let i=h.protect,j=i?new Set(a.filter(i)):null,k=new Set;for(let d of a)if(k.add(b(d)),k.size>=c.projectCap)break;let l=new Map;return a.filter(a=>{if(j?.has(a))return!0;let d=b(a);if(!k.has(d))return!1;let e=l.get(d)??0;return!(e>=c.cardsPerProject)&&(l.set(d,e+1),!0)})}},15862:(a,b,c)=>{c.d(b,{Ot:()=>l,xe:()=>m});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(78966),i=c(41617);function j(a){try{return e().realpathSync(a)}catch{return null}}let k=a=>a;function l(a,b=function(){let a=[],b=b=>{b&&!a.includes(b)&&a.push(b)},c=a=>{try{for(let c of a())b(c)}catch{}};try{b(g().join((0,h.Hy)(),"projects")),b((0,h.o1)())}catch{}return c(h.pW),c(i.vD),a}()){let c=new Map;for(let b of a){let a=j(b);a&&!c.has(a)&&c.set(a,b)}if(!c.size)return k;let d=[];for(let a of b){let b=c.get(j(a)??"\0");b&&b!==a&&d.push([a+g().sep,b+g().sep])}return d.length?(d.sort(([a],[b])=>b.length-a.length),a=>{for(let[b,c]of d)if(a.startsWith(b))return c+a.slice(b.length);return a}):k}function m(a,b){if(!a?.size||b===k)return a;let c=new Set;for(let d of a)c.add(d),c.add(b(d));return c.size===a.size?a:c}},23855:(a,b,c)=>{c.d(b,{Be:()=>t,He:()=>x,Hz:()=>y,Ko:()=>p,Ul:()=>s,mR:()=>v,pk:()=>q,sY:()=>m,w8:()=>w,wK:()=>r});var d=c(73024),e=c.n(d),f=c(52509),g=c(70976),h=c(23921),i=c(49113);(0,f.E)("turn").clear(),(0,f.E)("turn-evidence-v1").clear(),(0,f.E)("turn-evidence-v2").clear();let j=(0,f.E)("turn-evidence-v3"),k=(0,f.E)("tail-v3"),l=(0,f.E)("head-records-v2");function m(a,b,c,d=4194304,e=41){let f=l.get(a);if(f&&f.size===b&&f.mtimeMs===c&&f.nbytes===d&&f.recordLimit===e)return{records:f.records.slice(),complete:!0};let h=(0,g.zy)(a,b,c,{maxBytes:d,lineLimit:e});if(!h.complete||!h.value)return{records:[],complete:!1};let{text:i,read:j,bytes:k}=h.value,n=i.split("\n");j<b&&!i.endsWith("\n")&&(n=n.slice(0,-1));let o=[];for(let a of n.slice(0,e)){let b=a.trim();if(b)try{let a=JSON.parse(b);a&&"object"==typeof a&&!Array.isArray(a)&&o.push(a)}catch{}}l.delete(a);let p=0;for(let a of l.values())p+=a.sourceBytes;for(;l.size>0&&(l.size>=64||p+k.length>0x1000000);){let a=l.keys().next().value;if(void 0===a)break;p-=l.get(a)?.sourceBytes??0,l.delete(a)}return l.set(a,{size:b,mtimeMs:c,nbytes:d,recordLimit:e,sourceBytes:k.length,records:o}),{records:o.slice(),complete:!0}}function n(a,b){let c=`${b.authoritative?"authoritative":"activity"}:${a}`;for(j.delete(c);j.size>=4096;){let a=j.keys().next().value;if(void 0===a)break;j.delete(a)}j.set(c,b)}function o(a,b,c,d){return"claude"===c&&!!d&&"terminal"===a.state&&null!==(0,i.v)(b)}function p(a){return"codex-sessions"===a?"codex":"openclaw-sessions"===a?"openclaw":"claude"}function q(a,b,c,d,e=!0){let f=`${e?"authoritative":"activity"}:${a}`,g=j.get(f);if(g&&g.size===b&&g.mtimeMs===c&&g.engine===d)return n(a,g),{turn:{...g.turn},complete:!0,composerReleased:g.composerReleased,recoveryReleased:g.recoveryReleased};let h=w(a,b,c),k=(0,i.j)(h.records,d,e),l=h.complete&&o(k,h.records,d,e);if(h.complete){n(a,{size:b,mtimeMs:c,engine:d,authoritative:e,turn:k,composerReleased:!1,recoveryReleased:l});let f=!e,g=`${f?"authoritative":"activity"}:${a}`,m=j.get(g),p=m?.size===b&&m.mtimeMs===c&&m.engine===d&&m.composerReleased,q=(0,i.j)(h.records,d,f);n(a,{size:b,mtimeMs:c,engine:d,authoritative:f,turn:q,composerReleased:p,recoveryReleased:o(q,h.records,d,f)})}return{turn:k,complete:h.complete,composerReleased:!1,recoveryReleased:l}}function r(a,b,c,d){for(let e of[`activity:${a}`,`authoritative:${a}`]){let a=j.get(e);if(a&&a.size===b&&a.mtimeMs===c&&a.engine===d)return{...a.turn}}return null}function s(a,b,c,d,e,f={}){let g=f.authoritative??!0,h=f.composerReleased??!1;"claude"===d&&g&&"terminal"===e.state||n(a,{size:b,mtimeMs:c,engine:d,authoritative:g,turn:{...e},composerReleased:h,recoveryReleased:!1})}function t(a,b,c,d){let e=`authoritative:${a}`,f=j.get(e);f&&f.size===b&&f.mtimeMs===c&&f.engine===d&&n(a,{...f,composerReleased:!0})}function u(a,b){return a.dev===b.dev&&a.ino===b.ino&&a.size===b.size&&a.mtimeNs===b.mtimeNs&&a.ctimeNs===b.ctimeNs}async function v(a,b=131072){let c=null;try{let d;c=await e().promises.open(a,"r");let f=await c.stat({bigint:!0});if(!f.isFile())return{integrity:"uncertain",records:[]};let g=Number(f.size);if(!Number.isSafeInteger(g))return{integrity:"uncertain",records:[]};let h=Math.min(g,b),i=g-h,j=+(i>0),k=i-j,l=Buffer.alloc(h+j),m=0;for(;m<l.length;){let a=await c.read(l,m,l.length-m,k+m);if(0===a.bytesRead)return{integrity:"uncertain",records:[]};m+=a.bytesRead}let n=await c.stat({bigint:!0}),o=await e().promises.stat(a,{bigint:!0});if(!u(f,n)||!u(n,o))return{integrity:"uncertain",records:[]};let p=l;if(i>0)if(10===l[0])p=l.subarray(1);else{let a=l.indexOf(10);if(a<0)return{integrity:"complete",prefixTruncated:!0,records:[]};p=l.subarray(a+1)}try{d=new TextDecoder("utf-8",{fatal:!0}).decode(p)}catch{return{integrity:"uncertain",records:[]}}let q=d.split("\n"),r=[];for(let a of q){let b,c=a.trim();if(c){try{b=JSON.parse(c)}catch{return{integrity:"uncertain",records:[]}}if(!b||"object"!=typeof b||Array.isArray(b))return{integrity:"uncertain",records:[]};r.push(b)}}return{integrity:"complete",prefixTruncated:i>0,records:r}}catch{return{integrity:"uncertain",records:[]}}finally{await c?.close().catch(()=>void 0)}}function w(a,b,c,d=131072){let f=k.get(a);if(f&&f.size===b&&f.mtimeMs===c&&f.nbytes===d)return{records:f.records.slice(),complete:!0,prefixTruncated:f.prefixTruncated};let g=function(a,b,c){let d=0,f="",g=!1;try{let h=e().openSync(a,"r");try{d=Math.max(0,b-c);let a=Buffer.alloc(Math.max(0,b-d)),i=0;for(;i<a.length;){let b=e().readSync(h,a,i,a.length-i,d+i);if(0===b)break;i+=b}g=i===a.length,f=a.toString("utf8",0,i)}finally{e().closeSync(h)}}catch{return{records:[],complete:!1,prefixTruncated:!1}}let h=f.split("\n");d>0&&h.length&&(h=h.slice(1));let i=[];for(let a of h){let b=a.trim();if(b)try{let a=JSON.parse(b);a&&"object"==typeof a&&!Array.isArray(a)&&i.push(a)}catch{}}return{records:i,complete:g,prefixTruncated:d>0}}(a,b,d);if(!g.complete)return g;if(k.size>=64&&!k.has(a)){let a=k.keys().next().value;void 0!==a&&k.delete(a)}return k.set(a,{size:b,mtimeMs:c,nbytes:d,prefixTruncated:g.prefixTruncated,records:g.records}),{records:g.records.slice(),complete:!0,prefixTruncated:g.prefixTruncated}}function x(a,b,c,d=131072){return w(a,b,c,d).records}function y(a,b,c,d){let e=Date.now()/1e3-c;if("claude-tasks"===a&&b.endsWith(".output"))return(0,h.$w)().has(b)?{state:"live",reason:"output_held",complete:!0}:{state:e<900?"recent":"idle",reason:"output_released",complete:!0};let f=!0;if(b.endsWith(".jsonl")){let g=q(b,d,1e3*c,p(a),!1),h="terminal"===g.turn.state?"done":"busy"===g.turn.state?"busy":null;if(f=g.complete,"busy"===h)return e<180?{state:"live",reason:"jsonl_turn_open",complete:f}:{state:"stalled",reason:"jsonl_turn_stalled",complete:f};if("done"===h)return{state:e<900?"recent":"idle",reason:"jsonl_turn_completed",complete:f}}return e<20?{state:"live",reason:"mtime_fresh",complete:f}:e<900?{state:"recent",reason:"mtime_recent",complete:f}:{state:"idle",reason:"mtime_old",complete:f}}},23921:(a,b,c)=>{c.d(b,{$L:()=>t,$U:()=>s,$w:()=>o,BB:()=>r,Bj:()=>D,FQ:()=>q,Fe:()=>u,Ib:()=>C,SP:()=>p,TK:()=>w,Tu:()=>x,VI:()=>v,Vt:()=>B,pl:()=>n,qM:()=>z,qP:()=>y});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(91724),i=c(63657),j=c(89333);let k=null,l=null,m=null;function n(a){return Number.isInteger(a)&&a>0&&i.B.pidAlive(a)}function o(a=!1){let b=Date.now();if(!a&&k&&b-k.at<12e3)return k.map;let c=new Map;return i.B.scanFdTargetsUnder(j.GH["claude-tasks"],(a,b)=>{a.endsWith(".output")&&!c.has(a)&&c.set(a,b)}),k={at:b,map:c},c}function p(a,b=!1){let c=new Map;for(let b of a){if(c.size>=512)break;if(!b)continue;c.set(b,b);let a=function(a){try{return e().realpathSync(a)}catch{return null}}(b);a&&c.set(a,b)}let d=[...c.keys()].sort().join("\0"),f=Date.now();if(!b&&l&&l.key===d&&f-l.at<12e3)return l.map;let g=new Map;return c.size>0&&i.B.scanFdTargetsFor([...c.keys()],(a,b,d)=>{let e=c.get(a);e&&!g.has(e)&&d()&&g.set(e,b)}),l={at:f,key:d,map:g},g}function q(a,b){return i.B.pidWritesPath(a,b)}function r(a,b){return i.B.pidHoldsPath(a,b)}function s(a){return i.B.readArgv(a)}function t(a){return i.B.readCwd(a)}function u(a){for(let b of a.slice(0,2)){let a=g().basename(b);if("claude"===a||"claude.exe"===a)return"claude";if("codex"===a||"codex.exe"===a)return"codex"}return null}let v="LLV_STRUCTURED_HOST";function w(){return(0,h.BQ)()}function x(a){return i.B.readEnvVar(a,v)}function y(a){let b=u(a);if(null===b||B(a))return null;if("codex"===b)return a.includes("app-server")?"codex":null;let c=a.includes("-p")||a.includes("--print"),d=a.some((b,c)=>"--input-format"===b&&"stream-json"===a[c+1]);return c&&d?"claude":null}function z(a){return a.includes("--fork-session")}let A=new Set(["daemon","--bg-pty-host","--bg-spare"]);function B(a){return a.some(a=>A.has(a))}function C(a){return i.B.readPpid(a)}function D(a=!1){let b=Date.now();if(!a&&m&&b-m.at<12e3)return m.list;let c=[];for(let a of i.B.listProcesses()){let b=u(a.argv);null===b||B(a.argv)||null!==a.cwd&&c.push({pid:a.pid,engine:b,argv:a.argv,cwd:a.cwd,tty:a.tty})}return m={at:b,list:c},c}},28617:(a,b,c)=>{c.d(b,{Y8:()=>v,ZO:()=>P,g_:()=>Q,nd:()=>O});var d=c(73024),e=c.n(d),f=c(51455),g=c(76760),h=c.n(g),i=c(12770),j=c(36177),k=c(44502),l=c(2451),m=c(66024),n=c(12962),o=c(70107),p=c(78082),q=c(39876),r=c(89333),s=c(13605),t=c(23855),u=c(15862);function v(a,b){let c=h().relative(a,b).split(h().sep);return 4===c.length&&"tasks"===c[2]&&c[3]?.endsWith(".output")?[c[0]??"",c[1]??"",c[3].slice(0,-7)]:null}let w=-1/0;function x(a){return"object"==typeof a&&null!==a&&"code"in a&&"ENOENT"===a.code}function y(a,b,c){if(x(c))return!0;let d=Date.now();if(d-w>=6e4){w=d;let e=c instanceof Error?`${c.message}${"code"in c&&c.code?` (${String(c.code)})`:""}`:String(c);console.error(`[scanner discovery] ${a} failed for ${b}: ${e}; retaining the last completed scan`)}return!1}function z(a){let b=0,c=[];return async function(d){b>=a&&await new Promise(a=>c.push(a)),b+=1;try{return await d()}finally{b-=1,c.shift()?.()}}}async function A(a,b,c,d){let e;try{e=await d(()=>(0,f.readdir)(c,{withFileTypes:!0}))}catch(a){return{paths:[],complete:y("read directory",c,a)}}let g=await Promise.all(e.map(async e=>e.isDirectory()?e.name.startsWith(".git")||"claude-projects"===a&&"tool-results"===e.name?{paths:[],complete:!0}:A(a,b,h().join(c,e.name),d):e.isFile()&&r.Rg.some(a=>e.name.endsWith(a))&&("openclaw-sessions"!==a||(0,n.mu)(e.name))?{paths:[{rootName:a,root:b,path:h().join(c,e.name)}],complete:!0}:{paths:[],complete:!0}));return{paths:g.flatMap(a=>a.paths),complete:g.every(a=>a.complete)}}async function B(a,b,c){let d,g=a.path;try{d=await c(()=>(0,f.stat)(g))}catch(a){return{raw:[],complete:y("stat file",g,a)}}if("claude-projects"===a.rootName&&(0,l.a$)(h().relative(b["claude-projects"],g)))return{raw:[],complete:!0};let i="claude-tasks"===a.rootName?v(b["claude-tasks"],g):null;if("claude-tasks"===a.rootName&&!i||0===d.size&&!i)return{raw:[],complete:!0};if(i){let[a,d,f]=i,g=h().join(b["claude-projects"],a,d,"subagents","agent-"+f+".jsonl");try{return await c(()=>e().promises.access(g)),{raw:[],complete:!0}}catch(a){if(!x(a))return{raw:[],complete:y("access task-output twin",g,a)}}}return{raw:[{...a,st:d}],complete:!0}}function C(a){let b=new Map;for(let c of a){let a=h().basename(c.path);if("codex-sessions"!==c.rootName||!a.startsWith("rollout-")||!a.endsWith(".jsonl"))continue;let d=b.get(a);d&&d.root===c.root||b.set(a,c)}return a.filter(a=>{let c=h().basename(a.path);return"codex-sessions"!==a.rootName||!c.startsWith("rollout-")||!c.endsWith(".jsonl")||b.get(c)===a})}async function D(a,b){try{return await b(()=>e().promises.access(a)),{exists:!0,complete:!0}}catch(b){return{exists:!1,complete:y("access root",a,b)}}}function E(a){return Array.isArray(a)?a:Object.entries(a)}function F(a){return(0,u.Ot)(E(a).map(([,a])=>a))}function G(a,b,c,d,e){if(!(0,p.pu)(c))return;let f=e??("1"===process.env.LLV_FILE_SCANNER_WORKER?void 0:k.O);f?.({complete:b,sources:a.flatMap(a=>"openclaw"===a.engine?[]:[{path:a.path,project:d?.get(a.path)??a.project,engine:a.engine,size:a.size,mtimeMs:1e3*a.mtime}])})}async function H(a,b,c){let d=await I(a,b),e=Array.isArray(a)?r.GH:a;c&&d.complete&&(c(C(d.paths)),await new Promise(a=>setImmediate(a)));let f=await Promise.all(d.paths.map(a=>B(a,e,b)));return{raw:C(f.flatMap(a=>a.raw)),complete:d.complete&&f.every(a=>a.complete)}}async function I(a,b){let c=await Promise.all(E(a).map(async([a,c])=>{let d=await D(c,b);return d.exists?A(a,c,c,b):{paths:[],complete:d.complete}}));return{paths:c.flatMap(a=>a.paths),complete:c.every(a=>a.complete)}}async function J(a,b){let c=Date.now()-18e4,d=[];for(let e of a){if(d.length>=32)break;if(b.has(e.path)||!e.path.endsWith(".jsonl")||e.st.mtimeMs<=c)continue;let a=(0,t.Ko)(e.rootName);(0,t.wK)(e.path,e.st.size,e.st.mtimeMs,a)||d.push(e)}let e=!1;return await (0,i.pV)(d,a=>{let b=(0,t.pk)(a.path,a.st.size,a.st.mtimeMs,(0,t.Ko)(a.rootName),!1);e||="busy"===b.turn.state}),e}function K(a,b,c){return(0,s.Wl)(a,a=>{let c;return(c=b.get(a.path))&&"other"!==c?c:`unresolved:${h().dirname(a.path)}`},void 0,{protect:a=>(function(a,b){if(b?.has(a.path))return!0;if(!a.path.endsWith(".jsonl"))return!1;let c=(0,t.wK)(a.path,a.st.size,a.st.mtimeMs,(0,t.Ko)(a.rootName));return c?.state==="busy"})(a,c)})}let L={codex:"Codex",claude:"Claude",openclaw:"OpenClaw"};async function M(a,b,c,d=[],e=a=>a){let f=new Map(a),g=(0,j.xg)(!0);await (0,i.pV)([...g.projectByPath],([a,b])=>{let c=e(a);f.has(c)&&f.set(c,b)});let h=new Map,k=new Map;return await (0,i.pV)(d,a=>{k.set(a.project,{projectRoot:a.projectRoot,displayName:a.displayName})}),await (0,i.pV)(b,b=>{if(c?.has(b.path))return;let d=f.get(b.path)??b.project,e=a.get(b.path)??b.project,i=k.get(e),j=g.projectMetadataByPath.get(b.path),l=h.get(d)??{project:d,displayName:j?.displayName??i?.displayName??b.projectName,smt:0,conversations:0};l.smt=Math.max(l.smt,b.mtime),l.conversations+=1;let m=j?.projectRoot??i?.projectRoot;!l.projectRoot&&m&&(l.projectRoot=m),h.set(d,l)}),{projectByPath:f,projectCatalog:[...h.values()].sort((a,b)=>b.smt-a.smt||a.project.localeCompare(b.project))}}async function N(a,b,c,d,e,f=a=>a,g){let j=(0,q.g)(),k=(0,u.xe)(c,f),l=(0,u.xe)(d,f);a.sort((a,b)=>b.st.mtimeMs-a.st.mtimeMs);let n=new Map;await (0,i.pV)(a,a=>{if("codex-sessions"!==a.rootName||!a.path.endsWith(".jsonl"))return;let b=(0,m.Gz)(a.path);b&&n.set(b,a)});let p=k?.size?[...a.filter(a=>!k.has(a.path)),...a.filter(a=>k.has(a.path))]:a,r=K(p,b??new Map,g);await J(p,new Set(r.map(a=>a.path)))&&(r=K(p,b??new Map,g));let s=new Set(r.map(a=>a.path)),t=l?.size?new Set(s):void 0,v=l?.size?new Map(a.map(a=>[a.path,a])):null,w=async(a,b)=>{await (0,i.pV)(a,c=>{if("codex-sessions"!==c.rootName||!c.path.endsWith(".jsonl"))return;let d=e?.get(c.path)?.nativeParentThreadId,f=void 0===d?(0,m.S)(c.path,c.st.size,c.st.mtimeMs):d,g=f?n.get(f):void 0;g&&!b.has(g.path)&&(b.add(g.path),a.push(g))})};for(let a of(t&&await w([...r],t),l??[])){if(s.has(a))continue;let b=v?.get(a);b&&(s.add(b.path),r.push(b))}await w(r,s);let x=await (0,i.j0)(r,a=>{let c=e?.get(a.path)??(0,o.q0)(a.rootName,a.root,a.path,a.st,j);return{path:a.path,root:a.rootName,name:h().relative(a.root,a.path),project:b?.get(a.path)??c.project,projectName:c.projectName,projectUnresolved:c.projectUnresolved,worktree:c.worktree,cwd:c.cwd,sessionStartedAt:c.sessionStartedAt,nativeParentThreadId:c.nativeParentThreadId,nativeForkSourceThreadId:c.nativeForkSourceThreadId,projectRoot:c.projectRoot,title:c.title,engine:c.engine,kind:c.kind,fmt:c.fmt,parent:null,mtime:a.st.mtimeMs/1e3,size:a.st.size,activity:"idle",proc:null,pid:null,model:null,pendingQuestion:null,waitingInput:null}}),y=t?r.filter(a=>!t.has(a.path)).map(a=>a.path):[];return{files:x,...y.length?{pinOverlayPaths:y}:{}}}async function O(a=(0,r.s9)(),b,c={}){let d=(0,p.FX)(!1!==c.persist||!0===c.persistIndex),e=z(48),f=await H(a,e,c.onResourceSnapshot?a=>{var b;let d;return c.onResourceSnapshot((b=c.resourceBaseline,d=new Map((b?.files??[]).map(a=>[a.path,a])),{files:a.filter(a=>"claude-tasks"!==a.rootName&&a.path.endsWith(".jsonl")).map(a=>{let b=d.get(a.path),c="codex-sessions"===a.rootName?"codex":"openclaw-sessions"===a.rootName?"openclaw":"claude",e=b?.mtime??Date.now()/1e3,f=b?.size??1,g=function(a,b,c){let d=Date.now()/1e3-b;if(a?.size===c&&a.mtime===b){if("jsonl_turn_open"===a.activityReason||"jsonl_turn_stalled"===a.activityReason)return d<180?{activity:"live",activityReason:"jsonl_turn_open"}:{activity:"stalled",activityReason:"jsonl_turn_stalled"};if("jsonl_turn_completed"===a.activityReason)return d<900?{activity:"recent",activityReason:"jsonl_turn_completed"}:{activity:"idle",activityReason:"jsonl_turn_completed"}}return d<20?{activity:"live",activityReason:"mtime_fresh"}:d<900?{activity:"recent",activityReason:"mtime_recent"}:{activity:"idle",activityReason:"mtime_old"}}(b,e,f),i=h().basename(a.path);return{path:a.path,root:a.rootName,name:h().relative(a.root,a.path),project:b?.project??"other",projectName:b?.projectName,projectUnresolved:b?.projectUnresolved,cwd:b?.cwd,sessionStartedAt:b?.sessionStartedAt,nativeParentThreadId:b?.nativeParentThreadId,nativeForkSourceThreadId:b?.nativeForkSourceThreadId,projectRoot:b?.projectRoot,worktree:b?.worktree,title:b?.title??(i.startsWith("agent-")?`Subagent ${i.slice(6).split(".")[0]}`:`${L[c]} session`),engine:c,kind:b?.kind??(i.startsWith("agent-")?"subagent":"session"),fmt:c,parent:b?.parent??null,mtime:e,size:f,...g,proc:b?.proc??null,pid:b?.pid??null,model:null,pendingQuestion:null,waitingInput:null}}),projectCatalog:b?.projectCatalog??[],complete:!0}))}:void 0),g=F(a),i=(0,u.xe)(c.demote??c.loadDemote?.(),g),j=await (0,p.fX)(f.raw,{persist:c.persist,persistIndex:c.persistIndex,excludedSummaryPaths:i,scanToken:d,complete:f.complete}),{projectCatalog:k,projectByPath:l}=await M(j.projectByPath,j.conversationCatalog,i,j.projectCatalog,g),m=await N(f.raw,l,i,c.pin,j.summaryByPath,g,(0,u.xe)(c.hosted,g));return G(j.conversationCatalog,j.complete,d,l,c.transcriptIndexScheduler),{...m,projectCatalog:k,...c.transportConversationCatalog?{conversationCatalog:j.conversationCatalog.map(a=>({...a,project:l.get(a.path)??a.project}))}:{},complete:j.complete}}async function P(a=(0,r.s9)(),b,c,d){let e=(0,p.FX)(!1),f=z(48),g=await H(a,f),h=F(a),i=await (0,p.fX)(g.raw,{persist:!1,scanToken:e,complete:g.complete}),{projectByPath:j}=await M(i.projectByPath,i.conversationCatalog,void 0,i.projectCatalog,h),k=await N(g.raw,j,b,c,i.summaryByPath,h,(0,u.xe)(d,h));return G(i.conversationCatalog,i.complete,e,j),k.files}async function Q(a=(0,r.s9)()){let b=(0,p.FX)(!1),c=await H(a,z(48)),d=await (0,p.fX)(c.raw,{persist:!1,scanToken:b,complete:c.complete});G(d.conversationCatalog,d.complete,b,d.projectByPath)}},36177:(a,b,c)=>{c.d(b,{C$:()=>p,Ug:()=>s,Y:()=>r,f0:()=>w,iD:()=>t,jX:()=>v,xg:()=>x});var d=c(73024),e=c.n(d),f=c(10781),g=c(91724),h=c(70107),i=c(40713),j=c(36405),k=c(915);let l=new WeakMap,m=new WeakMap,n=null;function o(a,b,c=!0){let d=new Map,e=new Map,f=new Map,g=new Map,j=new Map,k=new Set;for(let b of Object.values(a.conversations)){let a=[...b.generations.map(a=>a.path),...b.continuityPaths];for(let c of(f.set(b.id,a),a))d.has(c)||d.set(c,b.id);let e=b.generations.at(-1);if(e){if(c){let{project:a}=(0,i.x)({projectOwnership:b.projectOwnership,cwd:e.launchProfile.cwd,launchProfileProject:e.launchProfile.project});a&&(g.set(e.path,a),e.launchProfile.cwd&&j.set(e.path,e.launchProfile.cwd))}for(let a of b.generations)a.path!==e.path&&k.add(a.path);for(let a of b.continuityPaths)a!==e.path&&k.add(a)}}for(let b of Object.keys(a.conversationAliases)){let c=function(a,b){let c=b,d=new Set;for(;!d.has(c);){d.add(c);let b=a.conversationAliases[c];if(!b)break;c=b}return c}(a,b);if(c===b)continue;let d=e.get(c);d?d.push(b):e.set(c,[b])}let l=new Map,m=new Map;return{signature:b,snapshot:a,conversationByPath:d,aliasesByCanonical:e,ownedPathsByConversation:f,projectByPath:g,projectMetadataByPath:{get(a){let b=l.get(a);if(void 0!==b)return b??void 0;let c=j.get(a),d=g.get(a);if(!c||!d)return void l.set(a,null);let e=m.get(c);m.has(c)||(e=(0,h.ot)(c),m.set(c,e));let f=e?.project===d?{displayName:e.displayName,...e.repo?{projectRoot:e.repo}:{},...e.unresolved?{unresolved:!0}:{}}:null;return l.set(a,f),f??void 0}},archivedPaths:k}}function p(a){let b=l.get(a);if(b)return b;let c=o(a,"snapshot");return l.set(a,c),c}function q(a,b=!1){let c;try{c=a.readOnlySnapshot()}catch(a){if(b&&!(a instanceof f.Ou))throw a;return null}return p(c)}function r(a,b,c=!0){let d=u(!0,void 0===b?void 0:c?p(b):function(a){let b=m.get(a);if(b)return b;let c=o(a,"snapshot-identity",!1);return m.set(a,c),c}(b),c);for(let b of a)d(b)}function s(a,b){let c=(0,k.uX)((0,k.S6)());if(0===c.size)return;let d=[...c.keys()].flatMap(a=>a.startsWith("conversation:")?[a.slice(13)]:[]),e=d.length>0?b(d):[],f=new Map,g=new Set(a.map(a=>a.path));for(let a of e)for(let b of a.ownedPaths)g.has(b)&&!f.has(b)&&f.set(b,a);for(let b of a){let a=f.get(b.path);a&&(b.conversationId=a.conversationId),(0,k.$U)(b,c,a?.aliases??[],a?.ownedPaths??[])}}function t(a){let b=u(!1,function(){let a,b=(0,g.BQ)("agent-registry.json");try{let c=e().statSync(b,{bigint:!0});a=`${b}:${c.mtimeNs}:${c.size}`}catch{return null}if(n?.signature===a)return n;try{let c=(0,f.l5)(JSON.parse(e().readFileSync(b,"utf8")));return n=o(c,a)}catch{return null}}());for(let c of a)b(c)}function u(a=!0,b,c=!0){let d=(0,k.uX)((0,k.S6)()),e=void 0===b?q((0,f.agentRegistry)()):b,g=e?.snapshot??null,h=e?.conversationByPath??new Map,l=e?.aliasesByCanonical??new Map,m=e?.ownedPathsByConversation??new Map;return b=>{if("claude"!==b.engine&&"codex"!==b.engine)return;if(b.spawn){b.renamable=!1;return}let f=h.get(b.path);!b.conversationId&&f&&(b.conversationId=f);let n=f?g?.conversations[f]:void 0,o=n?.generations.at(-1);if(o?.path===b.path&&(b.title=o.launchProfile.title??b.title,c)){b.project=(0,i.x)({projectOwnership:n?.projectOwnership,cwd:o.launchProfile.cwd,launchProfileProject:o.launchProfile.project,fallbackProject:b.project}).project??b.project;let a=e?.projectMetadataByPath.get(b.path);a&&(b.projectName=a.displayName,b.projectRoot=a.projectRoot??b.projectRoot,b.projectUnresolved=a.unresolved),n?.projectOwnership&&(b.projectOwnership={...n.projectOwnership})}if(a&&(b.renamable=(0,j.V)(b)),d.size>0){let a=b.conversationId?l.get(b.conversationId)??[]:[],c=b.conversationId?m.get(b.conversationId)??[]:[];(0,k.$U)(b,d,a,c)}}}async function v(a,b=48,c=()=>new Promise(a=>setImmediate(a)),d=!0){let e=u(!0,void 0,d);for(let d=0;d<a.length;d+=1)e(a[d]),(d+1)%b==0&&await c()}function w(a){let b=x().projectByPath;for(let c of a){let a=b.get(c.path);a&&(c.project=a)}}function x(a=!1){let b=q((0,f.agentRegistry)(),a);return b?{projectByPath:b.projectByPath,projectMetadataByPath:b.projectMetadataByPath,archivedPaths:b.archivedPaths}:{projectByPath:new Map,projectMetadataByPath:new Map,archivedPaths:new Set}}},36405:(a,b,c)=>{c.d(b,{V:()=>h,Y:()=>i});var d=c(73024),e=c.n(d),f=c(66024),g=c(915);function h(a){if("claude"!==a.engine&&"codex"!==a.engine||a.kind&&"session"!==a.kind||!(0,g.gq)(a.path))return!1;let b=void 0===a.mtime?void 0:1e3*a.mtime;return!("codex"===a.engine&&(0,f.ET)(a.path,a.size,b))}function i(a,b){let c=0;try{c=e().statSync(b).size}catch{c=0}return h({engine:a,path:b,size:c})}},40713:(a,b,c)=>{c.d(b,{x:()=>g});var d=c(89940),e=c(27832),f=c(70107);function g(a){let b=a.cwd?.trim(),c=Object.hasOwn(a,"cwdInfo")?a.cwdInfo??null:b?(0,f.ot)(b):null,g=a.projectOwnership?.project.trim();if(g){let a=(0,d.G$)(g),b=c?.project&&c.project!==e.Mv;if(!(b&&a===c?.displayName)&&(a!==e.Mv||!b))return{project:a,...c?.worktree?{worktree:c.worktree}:{},source:"ownership"}}if(c?.project)return{project:c.project,...c.worktree?{worktree:c.worktree}:{},source:"cwd"};let h=a.launchProfileProject?.trim();if(h)return{project:(0,d.G$)(h),source:"launch-profile"};let i=a.fallbackProject?.trim();return i?{project:(0,d.G$)(i),source:"fallback"}:{project:null,source:null}}},44502:(a,b,c)=>{c.d(b,{O:()=>h});var d=c(5197);let e=globalThis;async function f(a,b){let c=await (0,d.DL)(a,{complete:b});if(c.failures.length)throw Error(`${c.failures.length} transcript file(s) could not be indexed`)}async function g(a){for(;a.pending;){let b=a.pending;delete a.pending;try{await b.run(b.feed.sources,b.feed.complete)}catch(b){let a=b instanceof Error?b.message:String(b);console.error(`[transcript search] background indexing failed: ${a}; a later scan will retry`)}}}function h(a,b={}){let c=e.__llvTranscriptFeed??={scheduled:!1,idleWaiters:[]};c.pending={feed:a,run:b.run??f},c.active||c.scheduled||(c.scheduled=!0,setImmediate(()=>(function a(b){if(b.scheduled=!1,b.active)return;let c=g(b);b.active=c,c.finally(()=>{if(b.active===c&&delete b.active,b.pending&&!b.scheduled)b.scheduled=!0,setImmediate(()=>a(b));else if(!b.scheduled&&!b.active&&!b.pending)for(let a of b.idleWaiters.splice(0))a()})})(c)))}},49113:(a,b,c)=>{c.d(b,{j:()=>o,v:()=>n});var d=c(12962),e=c(95544);function f(a){let b=a.timestamp;return"string"==typeof b?b:null}let g=new Set(["authentication_failed","rate_limit"]);function h(a){return!0===a.isApiErrorMessage&&"string"==typeof a.error&&g.has(a.error)}let i="<synthetic>";function j(a){let b;if(b=((0,e.xK)(a.message)??{}).content,(0,e.Em)(b).some(a=>"tool_use"===(0,e.r$)(a.type)))return!1;let c=(0,e.r$)(((0,e.xK)(a.message)??{}).stop_reason);return"end_turn"===c||"stop_sequence"===c}function k(a){let b=(0,e.xK)(a.message)?.content;return"string"==typeof b?b:(0,e.Em)(b).map(a=>(0,e.r$)(a.text)??"").join("\n")}let l=/^no response requested\.?$/i,m=/^\s*\[Request interrupted by user(?: for tool use)?\]\s*$/;function n(a){let b=!1;for(let c=a.length-1;c>=0;c-=1){let d=a[c];if("result"===d.type)return b?{terminalAt:f(d)}:null;if("assistant"===d.type){if(h(d))return b?{terminalAt:f(d)}:null;if(!(!0!==d.isApiErrorMessage&&(0,e.r$)(((0,e.xK)(d.message)??{}).model)===i&&l.test(k(d).trim())))return null;b=!0;continue}if("user"===d.type){if(!b&&!(!0===d.interruptedByShutdown||"interruptedMessageId"in d||m.test(k(d))))return null;b=!0}}return null}function o(a,b,c=!1){if("openclaw"===b){for(let b=a.length-1;b>=0;b-=1){let c=a[b],g=(0,d.j5)(c);if(g){if("assistant"===g.role){if(!(0,d.Re)(c))continue;let a=(0,e.r$)(g.stopReason);if("stop"===a||"error"===a||"aborted"===a)return{state:"terminal",source:"lifecycle",terminalAt:f(c)};return{state:"busy",source:"assistant",terminalAt:null}}if("user"===g.role)return{state:"busy",source:"lifecycle",terminalAt:null}}}return{state:"unknown",source:"empty",terminalAt:null}}if("codex"===b){let b=!1,c=null,d=!1,g=new Set,h=0;for(let i of a){let a=(0,e.xK)(i.payload)??{},j=(0,e.r$)(a.type);if(!j)continue;if("task_started"===j||"turn_started"===j||"user_message"===j){g.clear(),h=0,b=!0,c=null,d=!1;continue}if("turn_aborted"===j){g.clear(),h=0,b=!1,c=f(i),d=!0;continue}if("task_complete"===j||"turn_complete"===j||"turn_completed"===j){0===g.size&&0===h?(b=!1,c=f(i),d=!0):(b=!0,c=null,d=!1);continue}if("agent_message"===j||"token_count"===j||"reasoning"===j)continue;let k=j.includes("output")||j.endsWith("_result");if(!(j.includes("tool")||j.includes("function")||j.includes("command")))continue;let l=(0,e.r$)(a.call_id)??(0,e.r$)(a.callId)??(0,e.r$)(a.id);if(k){let a=l?g.delete(l):h>0;if(!a&&d)continue;a&&!l&&(h-=1)}else l?g.add(l):h+=1;b=!0,c=null,d=!1}return d&&!b&&0===g.size&&0===h?{state:"terminal",source:"lifecycle",terminalAt:c}:b||g.size>0||h>0?{state:"busy",source:g.size>0||h>0?"tool":"lifecycle",terminalAt:null}:{state:"unknown",source:"empty",terminalAt:null}}if(c){let b={state:"unknown",source:"empty",terminalAt:null};for(let c of a)"result"===c.type?b={state:"terminal",source:"lifecycle",terminalAt:f(c)}:"user"===c.type?b={state:"busy",source:"lifecycle",terminalAt:null}:"assistant"===c.type&&(b=h(c)||!0!==c.isApiErrorMessage&&(0,e.r$)(((0,e.xK)(c.message)??{}).model)!==i&&j(c)?{state:"terminal",source:"lifecycle",terminalAt:f(c)}:{state:"busy",source:"assistant",terminalAt:null});if("busy"!==b.state)return b;let c=n(a);return c?{state:"terminal",source:"lifecycle",terminalAt:c.terminalAt}:b}for(let b of[...a].reverse()){if("assistant"===b.type){if(h(b)||j(b))return{state:"terminal",source:"lifecycle",terminalAt:f(b)};return{state:"busy",source:"assistant",terminalAt:null}}if("user"===b.type)return{state:"busy",source:"lifecycle",terminalAt:null}}return{state:"unknown",source:"empty",terminalAt:null}}},78082:(a,b,c)=>{c.d(b,{FX:()=>t,OQ:()=>v,fX:()=>D,pu:()=>u});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(3587),k=c(91724),l=c(12770),m=c(89940),n=c(27832),o=c(63678),p=c(70107),q=c(39876);let r=-1/0,s=globalThis;function t(a){let b=(s.__llvProjectCatalogPublicationGeneration??0)+1;if(s.__llvProjectCatalogPublicationGeneration=b,!a)return{publication:b,persistence:null};let c=(s.__llvProjectCatalogPersistenceGeneration??0)+1;return s.__llvProjectCatalogPersistenceGeneration=c,{publication:b,persistence:c}}function u(a){return s.__llvProjectCatalogPublicationGeneration===a.publication}function v(a,b,c){return!!u(b)&&!!c&&((0,o.ru)(a),!0)}function w(){return(0,k.BQ)("project-catalog.json")}function x(a,b){return"codex-sessions"===a||"openclaw-sessions"===a||"claude-projects"===a&&("session"===b||"subagent"===b)}function y(a){return"codex-sessions"===a?"codex":"claude-projects"===a?"claude":"openclaw-sessions"===a?"openclaw":"shell"}function z(a){return"codex-sessions"===a?"codex":"claude-projects"===a?"claude":"openclaw-sessions"===a?"openclaw":"plain"}function A(a,b){let c=i().basename(a.path);return"subagent"===b?"Subagent "+c.slice(6).split(".")[0]:"codex-sessions"===a.rootName?"Codex session":"claude-projects"===a.rootName?"Claude session":"openclaw-sessions"===a.rootName?"OpenClaw session":"Background task "+c.split(".")[0]}function B(a,b){a.files[b.path]={summaryVersion:b.summaryVersion,summaryIncomplete:b.summaryIncomplete,rootName:b.rootName,size:b.size,mtimeMs:b.mtimeMs,sidecarSize:b.sidecarSize,sidecarMtimeMs:b.sidecarMtimeMs,stateKey:b.stateKey,project:b.project,projectName:b.projectName,projectUnresolved:b.projectUnresolved,projectRoot:b.projectRoot,kind:b.kind,session:b.session,worktree:b.worktree,cwd:b.cwd??null,sessionStartedAt:b.sessionStartedAt??null,nativeParentThreadId:b.nativeParentThreadId??null,nativeForkSourceThreadId:b.nativeForkSourceThreadId??null,title:b.titleCached?b.title:void 0,engine:b.engine,fmt:b.fmt}}function C(a){return"claude-projects"!==a.rootName&&"claude-tasks"!==a.rootName?null:i().relative(a.root,a.path).split(i().sep)[0]||null}async function D(a,b={}){let c=!1!==b.persist||!0===b.persistIndex,d=b.scanToken??t(c),f=function(){try{let a=JSON.parse(g().readFileSync(w(),"utf8"));if(1!==a.version&&2!==a.version||!a.files||"object"!=typeof a.files||Array.isArray(a.files))return{version:2,resolutionVersion:q.Q,files:{}};let b={};for(let[c,d]of Object.entries(a.files)){if(!d||"object"!=typeof d||Array.isArray(d)||"codex-sessions"!==d.rootName&&"claude-projects"!==d.rootName&&"claude-tasks"!==d.rootName&&"openclaw-sessions"!==d.rootName||"number"!=typeof d.size||"number"!=typeof d.mtimeMs||"string"!=typeof d.stateKey||"string"!=typeof d.project||void 0!==d.projectName&&"string"!=typeof d.projectName||void 0!==d.projectUnresolved&&!0!==d.projectUnresolved||void 0!==d.projectRoot&&null!==d.projectRoot&&"string"!=typeof d.projectRoot||"string"!=typeof d.kind)continue;let a="codex"===d.engine||"claude"===d.engine||"shell"===d.engine||"openclaw"===d.engine?d.engine:void 0,e="codex"===d.fmt||"claude"===d.fmt||"plain"===d.fmt||"openclaw"===d.fmt?d.fmt:void 0,f="string"==typeof d.cwd?d.cwd:null===d.cwd?null:void 0,g="string"==typeof d.sessionStartedAt?d.sessionStartedAt:null===d.sessionStartedAt?null:void 0,h="string"==typeof d.nativeParentThreadId?d.nativeParentThreadId:null===d.nativeParentThreadId?null:void 0,i="string"==typeof d.nativeForkSourceThreadId?d.nativeForkSourceThreadId:null===d.nativeForkSourceThreadId?null:void 0,j="number"==typeof d.sidecarSize?d.sidecarSize:null===d.sidecarSize?null:void 0,k="number"==typeof d.sidecarMtimeMs?d.sidecarMtimeMs:null===d.sidecarMtimeMs?null:void 0,l=4===d.summaryVersion&&"string"==typeof d.title&&"string"==typeof d.projectName&&void 0!==a&&void 0!==e&&void 0!==f&&void 0!==g&&void 0!==h&&void 0!==i&&void 0!==d.projectRoot&&void 0!==j&&void 0!==k;b[c]={summaryVersion:l?4:void 0,summaryIncomplete:!l&&!0===d.summaryIncomplete||void 0,rootName:d.rootName,size:d.size,mtimeMs:d.mtimeMs,sidecarSize:j,sidecarMtimeMs:k,stateKey:d.stateKey,project:d.project,projectName:"string"==typeof d.projectName?d.projectName:(0,n.rj)(d.project),projectUnresolved:!0===d.projectUnresolved||void 0,projectRoot:"string"==typeof d.projectRoot?d.projectRoot:null===d.projectRoot?null:void 0,kind:d.kind,session:x(d.rootName,d.kind),worktree:"string"==typeof d.worktree?d.worktree:void 0,cwd:f,sessionStartedAt:g,nativeParentThreadId:h,nativeForkSourceThreadId:i,title:"string"==typeof d.title?d.title:void 0,engine:a,fmt:e}}return{version:2,resolutionVersion:a.resolutionVersion??0,files:b}}catch{return{version:2,resolutionVersion:q.Q,files:{}}}}(),h=(0,q.g)(),k={},o=new Map,u=new Map,E=new Map,F=new Map;await (0,l.pV)(a,a=>{F.set(a.path,f.files[a.path]?.project)});let G=await (0,l.j0)(a,a=>(function(a,b,c){let d=b.files[a.path],e=(0,p.tS)(a.rootName,a.path,a.st);if(e.complete&&d?.summaryVersion===4&&d.size===a.st.size&&d.mtimeMs===a.st.mtimeMs&&d.sidecarSize===e.sidecarSize&&d.sidecarMtimeMs===e.sidecarMtimeMs&&void 0!==d.projectRoot&&(b.resolutionVersion!==q.Q||d.stateKey!==c)){let e=(0,p.xn)(a.rootName,a.root,a.path,{project:d.project,projectName:d.projectName??(0,n.rj)(d.project),projectUnresolved:d.projectUnresolved,worktree:d.worktree,cwd:d.cwd??void 0,sessionStartedAt:d.sessionStartedAt,nativeParentThreadId:d.nativeParentThreadId,nativeForkSourceThreadId:d.nativeForkSourceThreadId,projectRoot:d.projectRoot,title:d.title??A(a,d.kind),engine:d.engine??y(a.rootName),kind:d.kind,fmt:d.fmt??z(a.rootName)},c),f={...d,path:a.path,stateKey:c,project:e.project,projectName:e.projectName,projectUnresolved:e.projectUnresolved,projectRoot:e.projectRoot??null,worktree:e.worktree,cwd:e.cwd,session:x(a.rootName,e.kind),title:e.title,titleCached:!0,engine:e.engine,kind:e.kind,fmt:e.fmt};return B(b,f),f}if(b.resolutionVersion===q.Q&&e.complete&&d&&d.size===a.st.size&&d.mtimeMs===a.st.mtimeMs&&(4!==d.summaryVersion||d.sidecarSize===e.sidecarSize&&d.sidecarMtimeMs===e.sidecarMtimeMs)&&d.stateKey===c&&void 0!==d.projectRoot){if(4!==d.summaryVersion){let b=(0,p.CL)(a.rootName,a.root,a.path,a.st,c,e),f=b.description,g=!0===d.summaryIncomplete;return{...d,summaryVersion:b.complete?4:void 0,summaryIncomplete:!!g&&!b.complete||void 0,sidecarSize:e.sidecarSize,sidecarMtimeMs:e.sidecarMtimeMs,path:a.path,project:g?f.project||"other":d.project,projectName:g?f.projectName:d.projectName??(0,n.rj)(d.project),projectUnresolved:g?f.projectUnresolved:d.projectUnresolved,projectRoot:g?f.projectRoot??null:d.projectRoot,kind:g?f.kind:d.kind,session:x(a.rootName,g?f.kind:d.kind),worktree:g?f.worktree:d.worktree,cwd:f.cwd,sessionStartedAt:f.sessionStartedAt,nativeParentThreadId:f.nativeParentThreadId,nativeForkSourceThreadId:f.nativeForkSourceThreadId,title:f.title,titleCached:!0,engine:f.engine,fmt:f.fmt}}return{path:a.path,...d,session:x(a.rootName,d.kind),cwd:d.cwd??void 0,sessionStartedAt:d.sessionStartedAt,nativeParentThreadId:d.nativeParentThreadId,nativeForkSourceThreadId:d.nativeForkSourceThreadId,title:d.title??A(a,d.kind),titleCached:"string"==typeof d.title,engine:d.engine??y(a.rootName),fmt:d.fmt??z(a.rootName)}}let f=(0,p.CL)(a.rootName,a.root,a.path,a.st,c,e),g=f.description,h=f.complete||d?.summaryVersion!==4?void 0:d,i={summaryVersion:f.complete?4:void 0,summaryIncomplete:!f.complete||void 0,path:a.path,rootName:a.rootName,size:a.st.size,mtimeMs:a.st.mtimeMs,sidecarSize:e.sidecarSize,sidecarMtimeMs:e.sidecarMtimeMs,stateKey:c,project:h?.project??(g.project||"other"),projectName:h?.projectName??g.projectName,projectUnresolved:h?.projectUnresolved??g.projectUnresolved,projectRoot:h?h.projectRoot??null:g.projectRoot??null,kind:g.kind,session:x(a.rootName,g.kind),worktree:h?.worktree??g.worktree,cwd:h?h.cwd??void 0:g.cwd,sessionStartedAt:h?h.sessionStartedAt:g.sessionStartedAt,nativeParentThreadId:h?h.nativeParentThreadId:g.nativeParentThreadId,nativeForkSourceThreadId:h?h.nativeForkSourceThreadId:g.nativeForkSourceThreadId,title:g.title,titleCached:!0,engine:g.engine,fmt:g.fmt};return B(b,i),i})(a,f,h)),H=!1!==b.complete&&G.every(a=>4===a.summaryVersion),I=new Map;await (0,l.pV)(a,(a,b)=>{let c=G[b],d="claude-projects"===c.rootName&&c.session?C(a):null;d&&I.set(d,c.project)}),await (0,l.pV)(a,(b,c)=>{let d=C(a[c]),e=d?I.get(d):void 0;e&&(G[c].project=e)});let J=new Map;await (0,l.pV)(G,a=>{k[a.path]={summaryVersion:a.summaryVersion,summaryIncomplete:a.summaryIncomplete,rootName:a.rootName,size:a.size,mtimeMs:a.mtimeMs,sidecarSize:a.sidecarSize,sidecarMtimeMs:a.sidecarMtimeMs,stateKey:a.stateKey,project:a.project,projectName:a.projectName,projectUnresolved:a.projectUnresolved,projectRoot:a.projectRoot,kind:a.kind,session:a.session,worktree:a.worktree,cwd:a.cwd??null,sessionStartedAt:a.sessionStartedAt??null,nativeParentThreadId:a.nativeParentThreadId??null,nativeForkSourceThreadId:a.nativeForkSourceThreadId??null,title:a.titleCached?a.title:void 0,engine:a.engine,fmt:a.fmt};let c=F.get(a.path);if(c&&c!==a.project){let b=J.get(c)??new Set;b.add(a.project),J.set(c,b)}let d=a.project||"other";E.set(a.path,d);let e=o.get(d);if(e||(e={project:d,displayName:a.projectName??(0,n.rj)(d),smt:0,conversations:0},o.set(d,e)),e.smt=Math.max(e.smt,a.mtimeMs/1e3),a.session&&(e.conversations+=1),a.projectRoot&&!b.excludedSummaryPaths?.has(a.path)){let b=u.get(d)??new Map,c=b.get(a.projectRoot)??{count:0,newest:0};c.count+=1,c.newest=Math.max(c.newest,a.mtimeMs),b.set(a.projectRoot,c),u.set(d,b)}}),await (0,l.pV)([...u],([a,b])=>{let c=[...b].sort(([a,b],[c,d])=>d.count-b.count||d.newest-b.newest||a.localeCompare(c))[0]?.[0];c&&(o.get(a).projectRoot=c)}),await (0,l.pV)([...b.excludedSummaryPaths??[]],a=>{let b=k[a],c=b?o.get(b.project||"other"):void 0;b?.session&&c&&c.conversations>0&&(c.conversations-=1)});let K=[],L=new Map;await (0,l.pV)(G,(b,c)=>{L.set(b.path,{project:b.project||"other",projectName:b.projectName??(0,n.rj)(b.project||"other"),projectUnresolved:b.projectUnresolved,worktree:b.worktree,cwd:b.cwd??void 0,sessionStartedAt:b.sessionStartedAt,nativeParentThreadId:b.nativeParentThreadId,nativeForkSourceThreadId:b.nativeForkSourceThreadId,projectRoot:b.projectRoot,title:b.title,engine:b.engine,kind:b.kind,fmt:b.fmt}),b.session&&("codex"===b.engine||"claude"===b.engine||"openclaw"===b.engine)&&K.push({path:b.path,root:b.rootName,name:i().relative(a[c].root,b.path),project:b.project||"other",projectName:b.projectName,projectUnresolved:b.projectUnresolved,worktree:b.worktree,title:b.title,firstPrompt:"",engine:b.engine,kind:b.kind,fmt:b.fmt,mtime:b.mtimeMs/1e3,size:b.size})});let M=null!==d.persistence&&s.__llvProjectCatalogPersistenceGeneration===d.persistence;if(v(K,d,H),M&&c&&H){let a=!0;if(!1!==b.persist)try{let b=function(a,b){let c=new Map,d=[];for(let[e,f]of a){if(1!==f.size){d.push(e);continue}let g=f.values().next().value,h=new Set([e]);for(;g&&(b.get(g)?.conversations??0)===0;){if(h.has(g)){g=void 0;break}h.add(g);let b=a.get(g);if(b?.size!==1)break;g=b.values().next().value}g&&g!==e&&(b.get(g)?.conversations??0)>0&&c.set(e,g)}return{migrations:c,conflicts:d}}(J,o);if(b.conflicts.length>0)throw Error("ambiguous catalog project identity");let c=b.migrations,d=[...c].map(([a,b])=>({source:a,target:b,displayName:o.get(b)?.displayName??(0,n.rj)(b)})),e=(0,m.JC)(),f=e.conflicts.length;for(let a of e.registrations){let b=c.get(a.source);if(b&&b!==a.target){f+=1;continue}c.set(a.source,a.target),d.push(a)}f>0&&console.error(`[project catalog] ${f} durable project alias source(s) unresolved; persisting the clean batch and retrying them on a later scan`),(a=(0,m.YX)(d))&&(a=(0,j.aM)(c)),a&&(a=(0,m.oh)(d))}catch{a=!1}a?function(a){let b,c="create state directory",d=w();try{let f=w();d=f,g().mkdirSync(i().dirname(f),{recursive:!0,mode:448}),g().chmodSync(i().dirname(f),448),b=i().join(i().dirname(f),`.${i().basename(f)}.${process.pid}.${e().randomUUID()}.tmp`),c="write temporary index",d=b,g().writeFileSync(b,JSON.stringify(a)+"\n",{encoding:"utf8",mode:384}),c="rename temporary index",d=f,g().renameSync(b,f)}catch(a){if(void 0!==b)try{g().unlinkSync(b)}catch{}!function(a,b,c){let d=Date.now();if(d-r<6e4)return;r=d;let e=c instanceof Error?`${c.message}${"code"in c&&c.code?` (${String(c.code)})`:""}`:String(c);console.error(`[project catalog] ${a} failed for ${b}: ${e}; a later scan will retry`)}(c,d,a)}}({version:2,resolutionVersion:q.Q,files:k}):console.error("[project catalog] board project migration deferred; a later scan will retry")}return{projectCatalog:[...o.values()].filter(a=>a.conversations>0).sort((a,b)=>b.smt-a.smt||a.project.localeCompare(b.project)),projectByPath:E,conversationCatalog:K,summaryByPath:L,complete:H}}},89333:(a,b,c)=>{let d,e,f;c.d(b,{Bz:()=>s,EG:()=>w,GH:()=>q,Ps:()=>x,Rg:()=>t,jQ:()=>u,s9:()=>r});var g=c(73024),h=c.n(g),i=c(48161),j=c.n(i),k=c(76760),l=c.n(k),m=c(41617),n=c(78966),o=c(13605);let p=j().homedir(),q={"codex-sessions":l().join(p,".codex/sessions"),"claude-projects":l().join(p,".claude/projects"),"claude-tasks":(d=process.getuid?.()??1e3,e=l().join(j().tmpdir(),"claude-"+d),e===(f="/tmp/claude-"+d)||h().existsSync(e)?e:h().existsSync(f)?f:e),"openclaw-sessions":l().join(p,".openclaw/agents")};function r(){let a=[...(0,m.vD)().map(a=>["codex-sessions",a]),...(0,n.pW)().map(a=>["claude-projects",a]),["claude-tasks",q["claude-tasks"]],...(function(){let a,b,c=l().join((b=process.env.OPENCLAW_STATE_DIR?.trim())?l().resolve(b):l().join(j().homedir(),".openclaw"),"agents");try{a=h().readdirSync(c,{withFileTypes:!0})}catch{return[]}return a.filter(a=>(a.isDirectory()||a.isSymbolicLink())&&!a.name.startsWith(".")).map(a=>l().join(c,a.name,"sessions")).sort()})().map(a=>["openclaw-sessions",a])],b=new Set;return a.filter(([,a])=>{let c=v(a)??l().resolve(a);return!b.has(c)&&(b.add(c),!0)})}function s(a){for(let b of(0,n.pW)())try{let c=h().realpathSync(a),d=h().realpathSync(b);if(c.startsWith(d+l().sep))return b}catch{}return null}let t=[".log",".jsonl",".output",".txt"],u=786432;function v(a){try{return h().realpathSync(a)}catch{return null}}function w(a){let b=v(a);return!!b&&r().some(([,a])=>{let c=v(a);return null!==c&&b.startsWith(c+l().sep)})}function x(a){for(let b of(0,m.vD)())try{let c=h().realpathSync(a),d=h().realpathSync(b);if(c.startsWith(d+l().sep))return b}catch{continue}return null}o.de,o.cy}};
2
+ `,"utf8"),b()}finally{g().closeSync(c),g().rmSync(a,{force:!0})}}catch(b){if("EEXIST"!==b.code)throw b;try{if(Date.now()-g().statSync(a).mtimeMs>1e4){g().rmSync(a,{force:!0});continue}}catch{continue}if(Date.now()-c>=5e3)throw Error("session titles store is busy; retry shortly");Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,10)}}(`${b}.lock`,()=>{var c;let d=a(q(b));return d.records&&function(a,b=n()){let c;g().mkdirSync(i().dirname(b),{recursive:!0}),c=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`),g().writeFileSync(c,JSON.stringify({version:1,titles:a},null,2)+"\n","utf8"),g().renameSync(c,b)}((c=d.records).length<=2e3?c:[...c].sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt)).slice(0,2e3),b),d.result})}(e=>{let g=null;for(let b of a){let a=e.find(a=>a.key===b);if(a){g=a;break}}if(void 0!==d&&d!==(g?.revision??0))return{records:void 0,result:{ok:!1,conflict:g}};let h=null===c?null:s(c),i=e.filter(a=>!j.has(a.key));if(null===h){if(!g)return{records:void 0,result:{ok:!0,override:null,revision:0}};if(null===g.title)return{records:void 0,result:{ok:!0,override:null,revision:g.revision}};let a={key:b,title:null,revision:g.revision+1,updatedAt:f};return{records:[...i,a],result:{ok:!0,override:null,revision:a.revision}}}let k={key:b,title:h,revision:(g?.revision??0)+1,updatedAt:f};return{records:[...i,k],result:{ok:!0,override:k,revision:k.revision}}},h)}},11149:(a,b,c)=>{c.d(b,{M:()=>l,n:()=>m});var d=c(73024),e=c.n(d),f=c(3587),g=c(79645),h=c(89940),i=c(27832),j=c(70107);function k(a,b){return a.startsWith("dir-")?a===(0,i.qe)(b):!!a.startsWith("repo-")&&[...new Set([(0,i.V5)(b),(0,j.D$)(b)].filter(a=>!!a))].some(b=>(0,i.YV)(b)===a)}function l(a,b){let c,d,f=a.trim();if(!(0,i.z)(f)||!b?.trim()||!function(a){try{return e().statSync(a).isDirectory()}catch{return!1}}(b.trim()))return null;let g=function(a){try{return e().realpathSync.native(a)}catch{return a}}(b.trim()),l=(d=(c=(0,j.D$)(g))?(0,i.im)(c):null)?{project:d.project,displayName:d.displayName}:(0,i.NP)(g);if(!l||!(0,i.z)(l.project))return null;let m=(0,h.G$)(f),n=m!==f&&k(m,g)?m:f;return k(n,g)&&n!==l.project&&(0,h.G$)(n)!==l.project?{source:n,target:l.project,displayName:l.displayName}:null}function m(a){let b=[],c=new Set;for(let d of a){if(!(!d||c.has(d.source))){if((c.add(d.source),(0,h.G$)(d.source)!==d.target&&(0,h.YX)([d])&&(0,f.aM)(new Map([[d.source,d.target]])))&&(0,h.oh)([d])){b.push(d);try{(0,g.Q)([{key:`project-succession:${d.source}:${d.target}`,type:"project_moved",at:new Date().toISOString(),project:d.target,summary:`${d.displayName}: project identity moved from ${d.source} to ${d.target}; everything recorded under the old key now reads as this project`}])}catch{}}}}return b}},12770:(a,b,c)=>{c.d(b,{Lh:()=>e,j0:()=>g,pV:()=>f});var d=c(643);function e(){return new Promise(a=>setImmediate(a))}async function f(a,b,c={}){let g=Math.max(1,Math.floor(c.batchSize??16)),h=Math.max(1,c.timeBudgetMs??32),i=d.performance.now(),j=0;for(let c=0;c<a.length;c+=1)await b(a[c],c),j+=1,!(c+1>=a.length)&&(j<g&&d.performance.now()-i<h||(await e(),i=d.performance.now(),j=0))}async function g(a,b,c={}){let d=Array(a.length);return await f(a,async(a,c)=>{d[c]=await b(a,c)},c),d}},13605:(a,b,c)=>{c.d(b,{Wl:()=>g,cy:()=>e,de:()=>d});let d=10,e=80;function f(a,b){let c=Number(a);return Number.isSafeInteger(c)&&c>0?c:b}function g(a,b,c=function(a=process.env){return{projectCap:f(a.LLV_SCHEME_PROJECT_CAP,d),cardsPerProject:f(a.LLV_SCHEME_CARDS_PER_PROJECT,e)}}(),h={}){let i=h.protect,j=i?new Set(a.filter(i)):null,k=new Set;for(let d of a)if(k.add(b(d)),k.size>=c.projectCap)break;let l=new Map;return a.filter(a=>{if(j?.has(a))return!0;let d=b(a);if(!k.has(d))return!1;let e=l.get(d)??0;return!(e>=c.cardsPerProject)&&(l.set(d,e+1),!0)})}},15862:(a,b,c)=>{c.d(b,{Ot:()=>l,xe:()=>m});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(78966),i=c(41617);function j(a){try{return e().realpathSync(a)}catch{return null}}let k=a=>a;function l(a,b=function(){let a=[],b=b=>{b&&!a.includes(b)&&a.push(b)},c=a=>{try{for(let c of a())b(c)}catch{}};try{b(g().join((0,h.Hy)(),"projects")),b((0,h.o1)())}catch{}return c(h.pW),c(i.vD),a}()){let c=new Map;for(let b of a){let a=j(b);a&&!c.has(a)&&c.set(a,b)}if(!c.size)return k;let d=[];for(let a of b){let b=c.get(j(a)??"\0");b&&b!==a&&d.push([a+g().sep,b+g().sep])}return d.length?(d.sort(([a],[b])=>b.length-a.length),a=>{for(let[b,c]of d)if(a.startsWith(b))return c+a.slice(b.length);return a}):k}function m(a,b){if(!a?.size||b===k)return a;let c=new Set;for(let d of a)c.add(d),c.add(b(d));return c.size===a.size?a:c}},23855:(a,b,c)=>{c.d(b,{Be:()=>t,He:()=>x,Hz:()=>y,Ko:()=>p,Ul:()=>s,mR:()=>v,pk:()=>q,sY:()=>m,w8:()=>w,wK:()=>r});var d=c(73024),e=c.n(d),f=c(52509),g=c(70976),h=c(23921),i=c(49113);(0,f.E)("turn").clear(),(0,f.E)("turn-evidence-v1").clear(),(0,f.E)("turn-evidence-v2").clear();let j=(0,f.E)("turn-evidence-v3"),k=(0,f.E)("tail-v3"),l=(0,f.E)("head-records-v2");function m(a,b,c,d=4194304,e=41){let f=l.get(a);if(f&&f.size===b&&f.mtimeMs===c&&f.nbytes===d&&f.recordLimit===e)return{records:f.records.slice(),complete:!0};let h=(0,g.zy)(a,b,c,{maxBytes:d,lineLimit:e});if(!h.complete||!h.value)return{records:[],complete:!1};let{text:i,read:j,bytes:k}=h.value,n=i.split("\n");j<b&&!i.endsWith("\n")&&(n=n.slice(0,-1));let o=[];for(let a of n.slice(0,e)){let b=a.trim();if(b)try{let a=JSON.parse(b);a&&"object"==typeof a&&!Array.isArray(a)&&o.push(a)}catch{}}l.delete(a);let p=0;for(let a of l.values())p+=a.sourceBytes;for(;l.size>0&&(l.size>=64||p+k.length>0x1000000);){let a=l.keys().next().value;if(void 0===a)break;p-=l.get(a)?.sourceBytes??0,l.delete(a)}return l.set(a,{size:b,mtimeMs:c,nbytes:d,recordLimit:e,sourceBytes:k.length,records:o}),{records:o.slice(),complete:!0}}function n(a,b){let c=`${b.authoritative?"authoritative":"activity"}:${a}`;for(j.delete(c);j.size>=4096;){let a=j.keys().next().value;if(void 0===a)break;j.delete(a)}j.set(c,b)}function o(a,b,c,d){return"claude"===c&&!!d&&"terminal"===a.state&&null!==(0,i.v)(b)}function p(a){return"codex-sessions"===a?"codex":"openclaw-sessions"===a?"openclaw":"claude"}function q(a,b,c,d,e=!0){let f=`${e?"authoritative":"activity"}:${a}`,g=j.get(f);if(g&&g.size===b&&g.mtimeMs===c&&g.engine===d)return n(a,g),{turn:{...g.turn},complete:!0,composerReleased:g.composerReleased,recoveryReleased:g.recoveryReleased};let h=w(a,b,c),k=(0,i.j)(h.records,d,e),l=h.complete&&o(k,h.records,d,e);if(h.complete){n(a,{size:b,mtimeMs:c,engine:d,authoritative:e,turn:k,composerReleased:!1,recoveryReleased:l});let f=!e,g=`${f?"authoritative":"activity"}:${a}`,m=j.get(g),p=m?.size===b&&m.mtimeMs===c&&m.engine===d&&m.composerReleased,q=(0,i.j)(h.records,d,f);n(a,{size:b,mtimeMs:c,engine:d,authoritative:f,turn:q,composerReleased:p,recoveryReleased:o(q,h.records,d,f)})}return{turn:k,complete:h.complete,composerReleased:!1,recoveryReleased:l}}function r(a,b,c,d){for(let e of[`activity:${a}`,`authoritative:${a}`]){let a=j.get(e);if(a&&a.size===b&&a.mtimeMs===c&&a.engine===d)return{...a.turn}}return null}function s(a,b,c,d,e,f={}){let g=f.authoritative??!0,h=f.composerReleased??!1;"claude"===d&&g&&"terminal"===e.state||n(a,{size:b,mtimeMs:c,engine:d,authoritative:g,turn:{...e},composerReleased:h,recoveryReleased:!1})}function t(a,b,c,d){let e=`authoritative:${a}`,f=j.get(e);f&&f.size===b&&f.mtimeMs===c&&f.engine===d&&n(a,{...f,composerReleased:!0})}function u(a,b){return a.dev===b.dev&&a.ino===b.ino&&a.size===b.size&&a.mtimeNs===b.mtimeNs&&a.ctimeNs===b.ctimeNs}async function v(a,b=131072){let c=null;try{let d;c=await e().promises.open(a,"r");let f=await c.stat({bigint:!0});if(!f.isFile())return{integrity:"uncertain",records:[]};let g=Number(f.size);if(!Number.isSafeInteger(g))return{integrity:"uncertain",records:[]};let h=Math.min(g,b),i=g-h,j=+(i>0),k=i-j,l=Buffer.alloc(h+j),m=0;for(;m<l.length;){let a=await c.read(l,m,l.length-m,k+m);if(0===a.bytesRead)return{integrity:"uncertain",records:[]};m+=a.bytesRead}let n=await c.stat({bigint:!0}),o=await e().promises.stat(a,{bigint:!0});if(!u(f,n)||!u(n,o))return{integrity:"uncertain",records:[]};let p=l;if(i>0)if(10===l[0])p=l.subarray(1);else{let a=l.indexOf(10);if(a<0)return{integrity:"complete",prefixTruncated:!0,records:[]};p=l.subarray(a+1)}try{d=new TextDecoder("utf-8",{fatal:!0}).decode(p)}catch{return{integrity:"uncertain",records:[]}}let q=d.split("\n"),r=[];for(let a of q){let b,c=a.trim();if(c){try{b=JSON.parse(c)}catch{return{integrity:"uncertain",records:[]}}if(!b||"object"!=typeof b||Array.isArray(b))return{integrity:"uncertain",records:[]};r.push(b)}}return{integrity:"complete",prefixTruncated:i>0,records:r}}catch{return{integrity:"uncertain",records:[]}}finally{await c?.close().catch(()=>void 0)}}function w(a,b,c,d=131072){let f=k.get(a);if(f&&f.size===b&&f.mtimeMs===c&&f.nbytes===d)return{records:f.records.slice(),complete:!0,prefixTruncated:f.prefixTruncated};let g=function(a,b,c){let d=0,f="",g=!1;try{let h=e().openSync(a,"r");try{d=Math.max(0,b-c);let a=Buffer.alloc(Math.max(0,b-d)),i=0;for(;i<a.length;){let b=e().readSync(h,a,i,a.length-i,d+i);if(0===b)break;i+=b}g=i===a.length,f=a.toString("utf8",0,i)}finally{e().closeSync(h)}}catch{return{records:[],complete:!1,prefixTruncated:!1}}let h=f.split("\n");d>0&&h.length&&(h=h.slice(1));let i=[];for(let a of h){let b=a.trim();if(b)try{let a=JSON.parse(b);a&&"object"==typeof a&&!Array.isArray(a)&&i.push(a)}catch{}}return{records:i,complete:g,prefixTruncated:d>0}}(a,b,d);if(!g.complete)return g;if(k.size>=64&&!k.has(a)){let a=k.keys().next().value;void 0!==a&&k.delete(a)}return k.set(a,{size:b,mtimeMs:c,nbytes:d,prefixTruncated:g.prefixTruncated,records:g.records}),{records:g.records.slice(),complete:!0,prefixTruncated:g.prefixTruncated}}function x(a,b,c,d=131072){return w(a,b,c,d).records}function y(a,b,c,d){let e=Date.now()/1e3-c;if("claude-tasks"===a&&b.endsWith(".output"))return(0,h.$w)().has(b)?{state:"live",reason:"output_held",complete:!0}:{state:e<900?"recent":"idle",reason:"output_released",complete:!0};let f=!0;if(b.endsWith(".jsonl")){let g=q(b,d,1e3*c,p(a),!1),h="terminal"===g.turn.state?"done":"busy"===g.turn.state?"busy":null;if(f=g.complete,"busy"===h)return e<180?{state:"live",reason:"jsonl_turn_open",complete:f}:{state:"stalled",reason:"jsonl_turn_stalled",complete:f};if("done"===h)return{state:e<900?"recent":"idle",reason:"jsonl_turn_completed",complete:f}}return e<20?{state:"live",reason:"mtime_fresh",complete:f}:e<900?{state:"recent",reason:"mtime_recent",complete:f}:{state:"idle",reason:"mtime_old",complete:f}}},23921:(a,b,c)=>{c.d(b,{$L:()=>t,$U:()=>s,$w:()=>o,BB:()=>r,Bj:()=>D,FQ:()=>q,Fe:()=>u,Ib:()=>C,SP:()=>p,TK:()=>w,Tu:()=>x,VI:()=>v,Vt:()=>B,pl:()=>n,qM:()=>z,qP:()=>y});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(91724),i=c(63657),j=c(89333);let k=null,l=null,m=null;function n(a){return Number.isInteger(a)&&a>0&&i.B.pidAlive(a)}function o(a=!1){let b=Date.now();if(!a&&k&&b-k.at<12e3)return k.map;let c=new Map;return i.B.scanFdTargetsUnder(j.GH["claude-tasks"],(a,b)=>{a.endsWith(".output")&&!c.has(a)&&c.set(a,b)}),k={at:b,map:c},c}function p(a,b=!1){let c=new Map;for(let b of a){if(c.size>=512)break;if(!b)continue;c.set(b,b);let a=function(a){try{return e().realpathSync(a)}catch{return null}}(b);a&&c.set(a,b)}let d=[...c.keys()].sort().join("\0"),f=Date.now();if(!b&&l&&l.key===d&&f-l.at<12e3)return l.map;let g=new Map;return c.size>0&&i.B.scanFdTargetsFor([...c.keys()],(a,b,d)=>{let e=c.get(a);e&&!g.has(e)&&d()&&g.set(e,b)}),l={at:f,key:d,map:g},g}function q(a,b){return i.B.pidWritesPath(a,b)}function r(a,b){return i.B.pidHoldsPath(a,b)}function s(a){return i.B.readArgv(a)}function t(a){return i.B.readCwd(a)}function u(a){for(let b of a.slice(0,2)){let a=g().basename(b);if("claude"===a||"claude.exe"===a)return"claude";if("codex"===a||"codex.exe"===a)return"codex"}return null}let v="LLV_STRUCTURED_HOST";function w(){return(0,h.BQ)()}function x(a){return i.B.readEnvVar(a,v)}function y(a){let b=u(a);if(null===b||B(a))return null;if("codex"===b)return a.includes("app-server")?"codex":null;let c=a.includes("-p")||a.includes("--print"),d=a.some((b,c)=>"--input-format"===b&&"stream-json"===a[c+1]);return c&&d?"claude":null}function z(a){return a.includes("--fork-session")}let A=new Set(["daemon","--bg-pty-host","--bg-spare"]);function B(a){return a.some(a=>A.has(a))}function C(a){return i.B.readPpid(a)}function D(a=!1){let b=Date.now();if(!a&&m&&b-m.at<12e3)return m.list;let c=[];for(let a of i.B.listProcesses()){let b=u(a.argv);null===b||B(a.argv)||null!==a.cwd&&c.push({pid:a.pid,engine:b,argv:a.argv,cwd:a.cwd,tty:a.tty})}return m={at:b,list:c},c}},28617:(a,b,c)=>{c.d(b,{Y8:()=>v,ZO:()=>P,g_:()=>Q,nd:()=>O});var d=c(73024),e=c.n(d),f=c(51455),g=c(76760),h=c.n(g),i=c(12770),j=c(36177),k=c(44502),l=c(2451),m=c(66024),n=c(12962),o=c(70107),p=c(78082),q=c(39876),r=c(89333),s=c(13605),t=c(23855),u=c(15862);function v(a,b){let c=h().relative(a,b).split(h().sep);return 4===c.length&&"tasks"===c[2]&&c[3]?.endsWith(".output")?[c[0]??"",c[1]??"",c[3].slice(0,-7)]:null}let w=-1/0;function x(a){return"object"==typeof a&&null!==a&&"code"in a&&"ENOENT"===a.code}function y(a,b,c){if(x(c))return!0;let d=Date.now();if(d-w>=6e4){w=d;let e=c instanceof Error?`${c.message}${"code"in c&&c.code?` (${String(c.code)})`:""}`:String(c);console.error(`[scanner discovery] ${a} failed for ${b}: ${e}; retaining the last completed scan`)}return!1}function z(a){let b=0,c=[];return async function(d){b>=a&&await new Promise(a=>c.push(a)),b+=1;try{return await d()}finally{b-=1,c.shift()?.()}}}async function A(a,b,c,d){let e;try{e=await d(()=>(0,f.readdir)(c,{withFileTypes:!0}))}catch(a){return{paths:[],complete:y("read directory",c,a)}}let g=await Promise.all(e.map(async e=>e.isDirectory()?e.name.startsWith(".git")||"claude-projects"===a&&"tool-results"===e.name?{paths:[],complete:!0}:A(a,b,h().join(c,e.name),d):e.isFile()&&r.Rg.some(a=>e.name.endsWith(a))&&("openclaw-sessions"!==a||(0,n.mu)(e.name))?{paths:[{rootName:a,root:b,path:h().join(c,e.name)}],complete:!0}:{paths:[],complete:!0}));return{paths:g.flatMap(a=>a.paths),complete:g.every(a=>a.complete)}}async function B(a,b,c){let d,g=a.path;try{d=await c(()=>(0,f.stat)(g))}catch(a){return{raw:[],complete:y("stat file",g,a)}}if("claude-projects"===a.rootName&&(0,l.a$)(h().relative(b["claude-projects"],g)))return{raw:[],complete:!0};let i="claude-tasks"===a.rootName?v(b["claude-tasks"],g):null;if("claude-tasks"===a.rootName&&!i||0===d.size&&!i)return{raw:[],complete:!0};if(i){let[a,d,f]=i,g=h().join(b["claude-projects"],a,d,"subagents","agent-"+f+".jsonl");try{return await c(()=>e().promises.access(g)),{raw:[],complete:!0}}catch(a){if(!x(a))return{raw:[],complete:y("access task-output twin",g,a)}}}return{raw:[{...a,st:d}],complete:!0}}function C(a){let b=new Map;for(let c of a){let a=h().basename(c.path);if("codex-sessions"!==c.rootName||!a.startsWith("rollout-")||!a.endsWith(".jsonl"))continue;let d=b.get(a);d&&d.root===c.root||b.set(a,c)}return a.filter(a=>{let c=h().basename(a.path);return"codex-sessions"!==a.rootName||!c.startsWith("rollout-")||!c.endsWith(".jsonl")||b.get(c)===a})}async function D(a,b){try{return await b(()=>e().promises.access(a)),{exists:!0,complete:!0}}catch(b){return{exists:!1,complete:y("access root",a,b)}}}function E(a){return Array.isArray(a)?a:Object.entries(a)}function F(a){return(0,u.Ot)(E(a).map(([,a])=>a))}function G(a,b,c,d,e){if(!(0,p.pu)(c))return;let f=e??("1"===process.env.LLV_FILE_SCANNER_WORKER?void 0:k.O);f?.({complete:b,sources:a.flatMap(a=>"openclaw"===a.engine?[]:[{path:a.path,project:d?.get(a.path)??a.project,engine:a.engine,size:a.size,mtimeMs:1e3*a.mtime}])})}async function H(a,b,c){let d=await I(a,b),e=Array.isArray(a)?r.GH:a;c&&d.complete&&(c(C(d.paths)),await new Promise(a=>setImmediate(a)));let f=await Promise.all(d.paths.map(a=>B(a,e,b)));return{raw:C(f.flatMap(a=>a.raw)),complete:d.complete&&f.every(a=>a.complete)}}async function I(a,b){let c=await Promise.all(E(a).map(async([a,c])=>{let d=await D(c,b);return d.exists?A(a,c,c,b):{paths:[],complete:d.complete}}));return{paths:c.flatMap(a=>a.paths),complete:c.every(a=>a.complete)}}async function J(a,b){let c=Date.now()-18e4,d=[];for(let e of a){if(d.length>=32)break;if(b.has(e.path)||!e.path.endsWith(".jsonl")||e.st.mtimeMs<=c)continue;let a=(0,t.Ko)(e.rootName);(0,t.wK)(e.path,e.st.size,e.st.mtimeMs,a)||d.push(e)}let e=!1;return await (0,i.pV)(d,a=>{let b=(0,t.pk)(a.path,a.st.size,a.st.mtimeMs,(0,t.Ko)(a.rootName),!1);e||="busy"===b.turn.state}),e}function K(a,b,c){return(0,s.Wl)(a,a=>{let c;return(c=b.get(a.path))&&"other"!==c?c:`unresolved:${h().dirname(a.path)}`},void 0,{protect:a=>(function(a,b){if(b?.has(a.path))return!0;if(!a.path.endsWith(".jsonl"))return!1;let c=(0,t.wK)(a.path,a.st.size,a.st.mtimeMs,(0,t.Ko)(a.rootName));return c?.state==="busy"})(a,c)})}let L={codex:"Codex",claude:"Claude",openclaw:"OpenClaw"};async function M(a,b,c,d=[],e=a=>a){let f=new Map(a),g=(0,j.xg)(!0);await (0,i.pV)([...g.projectByPath],([a,b])=>{let c=e(a);f.has(c)&&f.set(c,b)});let h=new Map,k=new Map;return await (0,i.pV)(d,a=>{k.set(a.project,{projectRoot:a.projectRoot,displayName:a.displayName})}),await (0,i.pV)(b,b=>{if(c?.has(b.path))return;let d=f.get(b.path)??b.project,e=a.get(b.path)??b.project,i=k.get(e),j=g.projectMetadataByPath.get(b.path),l=h.get(d)??{project:d,displayName:j?.displayName??i?.displayName??b.projectName,smt:0,conversations:0};l.smt=Math.max(l.smt,b.mtime),l.conversations+=1;let m=j?.projectRoot??i?.projectRoot;!l.projectRoot&&m&&(l.projectRoot=m),h.set(d,l)}),{projectByPath:f,projectCatalog:[...h.values()].sort((a,b)=>b.smt-a.smt||a.project.localeCompare(b.project))}}async function N(a,b,c,d,e,f=a=>a,g){let j=(0,q.g)(),k=(0,u.xe)(c,f),l=(0,u.xe)(d,f);a.sort((a,b)=>b.st.mtimeMs-a.st.mtimeMs);let n=new Map;await (0,i.pV)(a,a=>{if("codex-sessions"!==a.rootName||!a.path.endsWith(".jsonl"))return;let b=(0,m.Gz)(a.path);b&&n.set(b,a)});let p=k?.size?[...a.filter(a=>!k.has(a.path)),...a.filter(a=>k.has(a.path))]:a,r=K(p,b??new Map,g);await J(p,new Set(r.map(a=>a.path)))&&(r=K(p,b??new Map,g));let s=new Set(r.map(a=>a.path)),t=l?.size?new Set(s):void 0,v=l?.size?new Map(a.map(a=>[a.path,a])):null,w=async(a,b)=>{await (0,i.pV)(a,c=>{if("codex-sessions"!==c.rootName||!c.path.endsWith(".jsonl"))return;let d=e?.get(c.path)?.nativeParentThreadId,f=void 0===d?(0,m.S)(c.path,c.st.size,c.st.mtimeMs):d,g=f?n.get(f):void 0;g&&!b.has(g.path)&&(b.add(g.path),a.push(g))})};for(let a of(t&&await w([...r],t),l??[])){if(s.has(a))continue;let b=v?.get(a);b&&(s.add(b.path),r.push(b))}await w(r,s);let x=await (0,i.j0)(r,a=>{let c=e?.get(a.path)??(0,o.q0)(a.rootName,a.root,a.path,a.st,j);return{path:a.path,root:a.rootName,name:h().relative(a.root,a.path),project:b?.get(a.path)??c.project,projectName:c.projectName,projectUnresolved:c.projectUnresolved,worktree:c.worktree,cwd:c.cwd,sessionStartedAt:c.sessionStartedAt,nativeParentThreadId:c.nativeParentThreadId,nativeForkSourceThreadId:c.nativeForkSourceThreadId,projectRoot:c.projectRoot,title:c.title,engine:c.engine,kind:c.kind,fmt:c.fmt,parent:null,mtime:a.st.mtimeMs/1e3,size:a.st.size,activity:"idle",proc:null,pid:null,model:null,pendingQuestion:null,waitingInput:null}}),y=t?r.filter(a=>!t.has(a.path)).map(a=>a.path):[];return{files:x,...y.length?{pinOverlayPaths:y}:{}}}async function O(a=(0,r.s9)(),b,c={}){let d=(0,p.FX)(!1!==c.persist||!0===c.persistIndex),e=z(48),f=await H(a,e,c.onResourceSnapshot?a=>{var b;let d;return c.onResourceSnapshot((b=c.resourceBaseline,d=new Map((b?.files??[]).map(a=>[a.path,a])),{files:a.filter(a=>"claude-tasks"!==a.rootName&&a.path.endsWith(".jsonl")).map(a=>{let b=d.get(a.path),c="codex-sessions"===a.rootName?"codex":"openclaw-sessions"===a.rootName?"openclaw":"claude",e=b?.mtime??Date.now()/1e3,f=b?.size??1,g=function(a,b,c){let d=Date.now()/1e3-b;if(a?.size===c&&a.mtime===b){if("jsonl_turn_open"===a.activityReason||"jsonl_turn_stalled"===a.activityReason)return d<180?{activity:"live",activityReason:"jsonl_turn_open"}:{activity:"stalled",activityReason:"jsonl_turn_stalled"};if("jsonl_turn_completed"===a.activityReason)return d<900?{activity:"recent",activityReason:"jsonl_turn_completed"}:{activity:"idle",activityReason:"jsonl_turn_completed"}}return d<20?{activity:"live",activityReason:"mtime_fresh"}:d<900?{activity:"recent",activityReason:"mtime_recent"}:{activity:"idle",activityReason:"mtime_old"}}(b,e,f),i=h().basename(a.path);return{path:a.path,root:a.rootName,name:h().relative(a.root,a.path),project:b?.project??"other",projectName:b?.projectName,projectUnresolved:b?.projectUnresolved,cwd:b?.cwd,sessionStartedAt:b?.sessionStartedAt,nativeParentThreadId:b?.nativeParentThreadId,nativeForkSourceThreadId:b?.nativeForkSourceThreadId,projectRoot:b?.projectRoot,worktree:b?.worktree,title:b?.title??(i.startsWith("agent-")?`Subagent ${i.slice(6).split(".")[0]}`:`${L[c]} session`),engine:c,kind:b?.kind??(i.startsWith("agent-")?"subagent":"session"),fmt:c,parent:b?.parent??null,mtime:e,size:f,...g,proc:b?.proc??null,pid:b?.pid??null,model:null,pendingQuestion:null,waitingInput:null}}),projectCatalog:b?.projectCatalog??[],complete:!0}))}:void 0),g=F(a),i=(0,u.xe)(c.demote??c.loadDemote?.(),g),j=await (0,p.fX)(f.raw,{persist:c.persist,persistIndex:c.persistIndex,excludedSummaryPaths:i,scanToken:d,complete:f.complete}),{projectCatalog:k,projectByPath:l}=await M(j.projectByPath,j.conversationCatalog,i,j.projectCatalog,g),m=await N(f.raw,l,i,c.pin,j.summaryByPath,g,(0,u.xe)(c.hosted,g));return G(j.conversationCatalog,j.complete,d,l,c.transcriptIndexScheduler),{...m,projectCatalog:k,...c.transportConversationCatalog?{conversationCatalog:j.conversationCatalog.map(a=>({...a,project:l.get(a.path)??a.project}))}:{},complete:j.complete}}async function P(a=(0,r.s9)(),b,c,d){let e=(0,p.FX)(!1),f=z(48),g=await H(a,f),h=F(a),i=await (0,p.fX)(g.raw,{persist:!1,scanToken:e,complete:g.complete}),{projectByPath:j}=await M(i.projectByPath,i.conversationCatalog,void 0,i.projectCatalog,h),k=await N(g.raw,j,b,c,i.summaryByPath,h,(0,u.xe)(d,h));return G(i.conversationCatalog,i.complete,e,j),k.files}async function Q(a=(0,r.s9)()){let b=(0,p.FX)(!1),c=await H(a,z(48)),d=await (0,p.fX)(c.raw,{persist:!1,scanToken:b,complete:c.complete});G(d.conversationCatalog,d.complete,b,d.projectByPath)}},34196:(a,b,c)=>{c.d(b,{VO:()=>j,cn:()=>k,jk:()=>i,ml:()=>g,q0:()=>n});var d=c(56809);let e=["starting","running","waiting","stalled","completed","failed","blocked","gone"],f=["stage_started","stage_resumed","stage_paused","stage_completed","stage_failed","stage_blocked","review_verdict","repair_ready","deploy_ready","deploy_succeeded","deploy_failed","delivery_held","delivery_delivered","delivery_expired","agent_stalled","agent_gone","agent_resumed","project_moved"],g={stage_started:"running",stage_resumed:"running",stage_paused:"waiting",stage_completed:"completed",stage_failed:"failed",stage_blocked:"blocked",review_verdict:"completed",repair_ready:"waiting",deploy_ready:"waiting",deploy_succeeded:"completed",deploy_failed:"failed",delivery_held:"waiting",delivery_delivered:"completed",delivery_expired:"failed",agent_stalled:"stalled",agent_gone:"gone",agent_resumed:"running",project_moved:"completed"},h=new Set(["stage_completed","stage_failed","stage_blocked","review_verdict","deploy_succeeded","deploy_failed","delivery_held","delivery_expired"]);function i(a){return h.has(a)}function j(a){return"string"==typeof a&&f.includes(a)}function k(a){return"string"==typeof a&&e.includes(a)}let l=/^\s*(?:```|~~~)/,m=/[\p{L}\p{N}]/u;function n(a,b=200){if("string"!=typeof a||!a.trim())return"";let c=(0,d.j)(a),e=!1;for(let a of c.split(/\r?\n/)){if(l.test(a)){e=!e;continue}if(e)continue;let c=a.replace(/\s+/g," ").trim();if(c&&m.test(c))return c.length>b?`${c.slice(0,b-1)}…`:c}return""}},36177:(a,b,c)=>{c.d(b,{C$:()=>p,Ug:()=>s,Y:()=>r,f0:()=>w,iD:()=>t,jX:()=>v,xg:()=>x});var d=c(73024),e=c.n(d),f=c(10781),g=c(91724),h=c(70107),i=c(40713),j=c(36405),k=c(915);let l=new WeakMap,m=new WeakMap,n=null;function o(a,b,c=!0){let d=new Map,e=new Map,f=new Map,g=new Map,j=new Map,k=new Set;for(let b of Object.values(a.conversations)){let a=[...b.generations.map(a=>a.path),...b.continuityPaths];for(let c of(f.set(b.id,a),a))d.has(c)||d.set(c,b.id);let e=b.generations.at(-1);if(e){if(c){let{project:a}=(0,i.x)({projectOwnership:b.projectOwnership,cwd:e.launchProfile.cwd,launchProfileProject:e.launchProfile.project});a&&(g.set(e.path,a),e.launchProfile.cwd&&j.set(e.path,e.launchProfile.cwd))}for(let a of b.generations)a.path!==e.path&&k.add(a.path);for(let a of b.continuityPaths)a!==e.path&&k.add(a)}}for(let b of Object.keys(a.conversationAliases)){let c=function(a,b){let c=b,d=new Set;for(;!d.has(c);){d.add(c);let b=a.conversationAliases[c];if(!b)break;c=b}return c}(a,b);if(c===b)continue;let d=e.get(c);d?d.push(b):e.set(c,[b])}let l=new Map,m=new Map;return{signature:b,snapshot:a,conversationByPath:d,aliasesByCanonical:e,ownedPathsByConversation:f,projectByPath:g,projectMetadataByPath:{get(a){let b=l.get(a);if(void 0!==b)return b??void 0;let c=j.get(a),d=g.get(a);if(!c||!d)return void l.set(a,null);let e=m.get(c);m.has(c)||(e=(0,h.ot)(c),m.set(c,e));let f=e?.project===d?{displayName:e.displayName,...e.repo?{projectRoot:e.repo}:{},...e.unresolved?{unresolved:!0}:{}}:null;return l.set(a,f),f??void 0}},archivedPaths:k}}function p(a){let b=l.get(a);if(b)return b;let c=o(a,"snapshot");return l.set(a,c),c}function q(a,b=!1){let c;try{c=a.readOnlySnapshot()}catch(a){if(b&&!(a instanceof f.Ou))throw a;return null}return p(c)}function r(a,b,c=!0){let d=u(!0,void 0===b?void 0:c?p(b):function(a){let b=m.get(a);if(b)return b;let c=o(a,"snapshot-identity",!1);return m.set(a,c),c}(b),c);for(let b of a)d(b)}function s(a,b){let c=(0,k.uX)((0,k.S6)());if(0===c.size)return;let d=[...c.keys()].flatMap(a=>a.startsWith("conversation:")?[a.slice(13)]:[]),e=d.length>0?b(d):[],f=new Map,g=new Set(a.map(a=>a.path));for(let a of e)for(let b of a.ownedPaths)g.has(b)&&!f.has(b)&&f.set(b,a);for(let b of a){let a=f.get(b.path);a&&(b.conversationId=a.conversationId),(0,k.$U)(b,c,a?.aliases??[],a?.ownedPaths??[])}}function t(a){let b=u(!1,function(){let a,b=(0,g.BQ)("agent-registry.json");try{let c=e().statSync(b,{bigint:!0});a=`${b}:${c.mtimeNs}:${c.size}`}catch{return null}if(n?.signature===a)return n;try{let c=(0,f.l5)(JSON.parse(e().readFileSync(b,"utf8")));return n=o(c,a)}catch{return null}}());for(let c of a)b(c)}function u(a=!0,b,c=!0){let d=(0,k.uX)((0,k.S6)()),e=void 0===b?q((0,f.agentRegistry)()):b,g=e?.snapshot??null,h=e?.conversationByPath??new Map,l=e?.aliasesByCanonical??new Map,m=e?.ownedPathsByConversation??new Map;return b=>{if("claude"!==b.engine&&"codex"!==b.engine)return;if(b.spawn){b.renamable=!1;return}let f=h.get(b.path);!b.conversationId&&f&&(b.conversationId=f);let n=f?g?.conversations[f]:void 0,o=n?.generations.at(-1);if(o?.path===b.path&&(b.title=o.launchProfile.title??b.title,c)){b.project=(0,i.x)({projectOwnership:n?.projectOwnership,cwd:o.launchProfile.cwd,launchProfileProject:o.launchProfile.project,fallbackProject:b.project}).project??b.project;let a=e?.projectMetadataByPath.get(b.path);a&&(b.projectName=a.displayName,b.projectRoot=a.projectRoot??b.projectRoot,b.projectUnresolved=a.unresolved),n?.projectOwnership&&(b.projectOwnership={...n.projectOwnership})}if(a&&(b.renamable=(0,j.V)(b)),d.size>0){let a=b.conversationId?l.get(b.conversationId)??[]:[],c=b.conversationId?m.get(b.conversationId)??[]:[];(0,k.$U)(b,d,a,c)}}}async function v(a,b=48,c=()=>new Promise(a=>setImmediate(a)),d=!0){let e=u(!0,void 0,d);for(let d=0;d<a.length;d+=1)e(a[d]),(d+1)%b==0&&await c()}function w(a){let b=x().projectByPath;for(let c of a){let a=b.get(c.path);a&&(c.project=a)}}function x(a=!1){let b=q((0,f.agentRegistry)(),a);return b?{projectByPath:b.projectByPath,projectMetadataByPath:b.projectMetadataByPath,archivedPaths:b.archivedPaths}:{projectByPath:new Map,projectMetadataByPath:new Map,archivedPaths:new Set}}},36405:(a,b,c)=>{c.d(b,{V:()=>h,Y:()=>i});var d=c(73024),e=c.n(d),f=c(66024),g=c(915);function h(a){if("claude"!==a.engine&&"codex"!==a.engine||a.kind&&"session"!==a.kind||!(0,g.gq)(a.path))return!1;let b=void 0===a.mtime?void 0:1e3*a.mtime;return!("codex"===a.engine&&(0,f.ET)(a.path,a.size,b))}function i(a,b){let c=0;try{c=e().statSync(b).size}catch{c=0}return h({engine:a,path:b,size:c})}},40713:(a,b,c)=>{c.d(b,{x:()=>g});var d=c(89940),e=c(27832),f=c(70107);function g(a){let b=a.cwd?.trim(),c=Object.hasOwn(a,"cwdInfo")?a.cwdInfo??null:b?(0,f.ot)(b):null,g=a.projectOwnership?.project.trim();if(g){let a=(0,d.G$)(g),b=c?.project&&c.project!==e.Mv;if(!(b&&a===c?.displayName)&&(a!==e.Mv||!b))return{project:a,...c?.worktree?{worktree:c.worktree}:{},source:"ownership"}}if(c?.project)return{project:c.project,...c.worktree?{worktree:c.worktree}:{},source:"cwd"};let h=a.launchProfileProject?.trim();if(h)return{project:(0,d.G$)(h),source:"launch-profile"};let i=a.fallbackProject?.trim();return i?{project:(0,d.G$)(i),source:"fallback"}:{project:null,source:null}}},44502:(a,b,c)=>{c.d(b,{O:()=>h});var d=c(5197);let e=globalThis;async function f(a,b){let c=await (0,d.DL)(a,{complete:b});if(c.failures.length)throw Error(`${c.failures.length} transcript file(s) could not be indexed`)}async function g(a){for(;a.pending;){let b=a.pending;delete a.pending;try{await b.run(b.feed.sources,b.feed.complete)}catch(b){let a=b instanceof Error?b.message:String(b);console.error(`[transcript search] background indexing failed: ${a}; a later scan will retry`)}}}function h(a,b={}){let c=e.__llvTranscriptFeed??={scheduled:!1,idleWaiters:[]};c.pending={feed:a,run:b.run??f},c.active||c.scheduled||(c.scheduled=!0,setImmediate(()=>(function a(b){if(b.scheduled=!1,b.active)return;let c=g(b);b.active=c,c.finally(()=>{if(b.active===c&&delete b.active,b.pending&&!b.scheduled)b.scheduled=!0,setImmediate(()=>a(b));else if(!b.scheduled&&!b.active&&!b.pending)for(let a of b.idleWaiters.splice(0))a()})})(c)))}},49113:(a,b,c)=>{c.d(b,{j:()=>o,v:()=>n});var d=c(12962),e=c(95544);function f(a){let b=a.timestamp;return"string"==typeof b?b:null}let g=new Set(["authentication_failed","rate_limit"]);function h(a){return!0===a.isApiErrorMessage&&"string"==typeof a.error&&g.has(a.error)}let i="<synthetic>";function j(a){let b;if(b=((0,e.xK)(a.message)??{}).content,(0,e.Em)(b).some(a=>"tool_use"===(0,e.r$)(a.type)))return!1;let c=(0,e.r$)(((0,e.xK)(a.message)??{}).stop_reason);return"end_turn"===c||"stop_sequence"===c}function k(a){let b=(0,e.xK)(a.message)?.content;return"string"==typeof b?b:(0,e.Em)(b).map(a=>(0,e.r$)(a.text)??"").join("\n")}let l=/^no response requested\.?$/i,m=/^\s*\[Request interrupted by user(?: for tool use)?\]\s*$/;function n(a){let b=!1;for(let c=a.length-1;c>=0;c-=1){let d=a[c];if("result"===d.type)return b?{terminalAt:f(d)}:null;if("assistant"===d.type){if(h(d))return b?{terminalAt:f(d)}:null;if(!(!0!==d.isApiErrorMessage&&(0,e.r$)(((0,e.xK)(d.message)??{}).model)===i&&l.test(k(d).trim())))return null;b=!0;continue}if("user"===d.type){if(!b&&!(!0===d.interruptedByShutdown||"interruptedMessageId"in d||m.test(k(d))))return null;b=!0}}return null}function o(a,b,c=!1){if("openclaw"===b){for(let b=a.length-1;b>=0;b-=1){let c=a[b],g=(0,d.j5)(c);if(g){if("assistant"===g.role){if(!(0,d.Re)(c))continue;let a=(0,e.r$)(g.stopReason);if("stop"===a||"error"===a||"aborted"===a)return{state:"terminal",source:"lifecycle",terminalAt:f(c)};return{state:"busy",source:"assistant",terminalAt:null}}if("user"===g.role)return{state:"busy",source:"lifecycle",terminalAt:null}}}return{state:"unknown",source:"empty",terminalAt:null}}if("codex"===b){let b=!1,c=null,d=!1,g=new Set,h=0;for(let i of a){let a=(0,e.xK)(i.payload)??{},j=(0,e.r$)(a.type);if(!j)continue;if("task_started"===j||"turn_started"===j||"user_message"===j){g.clear(),h=0,b=!0,c=null,d=!1;continue}if("turn_aborted"===j){g.clear(),h=0,b=!1,c=f(i),d=!0;continue}if("task_complete"===j||"turn_complete"===j||"turn_completed"===j){0===g.size&&0===h?(b=!1,c=f(i),d=!0):(b=!0,c=null,d=!1);continue}if("agent_message"===j||"token_count"===j||"reasoning"===j)continue;let k=j.includes("output")||j.endsWith("_result");if(!(j.includes("tool")||j.includes("function")||j.includes("command")))continue;let l=(0,e.r$)(a.call_id)??(0,e.r$)(a.callId)??(0,e.r$)(a.id);if(k){let a=l?g.delete(l):h>0;if(!a&&d)continue;a&&!l&&(h-=1)}else l?g.add(l):h+=1;b=!0,c=null,d=!1}return d&&!b&&0===g.size&&0===h?{state:"terminal",source:"lifecycle",terminalAt:c}:b||g.size>0||h>0?{state:"busy",source:g.size>0||h>0?"tool":"lifecycle",terminalAt:null}:{state:"unknown",source:"empty",terminalAt:null}}if(c){let b={state:"unknown",source:"empty",terminalAt:null};for(let c of a)"result"===c.type?b={state:"terminal",source:"lifecycle",terminalAt:f(c)}:"user"===c.type?b={state:"busy",source:"lifecycle",terminalAt:null}:"assistant"===c.type&&(b=h(c)||!0!==c.isApiErrorMessage&&(0,e.r$)(((0,e.xK)(c.message)??{}).model)!==i&&j(c)?{state:"terminal",source:"lifecycle",terminalAt:f(c)}:{state:"busy",source:"assistant",terminalAt:null});if("busy"!==b.state)return b;let c=n(a);return c?{state:"terminal",source:"lifecycle",terminalAt:c.terminalAt}:b}for(let b of[...a].reverse()){if("assistant"===b.type){if(h(b)||j(b))return{state:"terminal",source:"lifecycle",terminalAt:f(b)};return{state:"busy",source:"assistant",terminalAt:null}}if("user"===b.type)return{state:"busy",source:"lifecycle",terminalAt:null}}return{state:"unknown",source:"empty",terminalAt:null}}},78082:(a,b,c)=>{c.d(b,{FX:()=>u,OQ:()=>w,fX:()=>E,pu:()=>v});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(3587),k=c(91724),l=c(12770),m=c(89940),n=c(27832),o=c(11149),p=c(63678),q=c(70107),r=c(39876);let s=-1/0,t=globalThis;function u(a){let b=(t.__llvProjectCatalogPublicationGeneration??0)+1;if(t.__llvProjectCatalogPublicationGeneration=b,!a)return{publication:b,persistence:null};let c=(t.__llvProjectCatalogPersistenceGeneration??0)+1;return t.__llvProjectCatalogPersistenceGeneration=c,{publication:b,persistence:c}}function v(a){return t.__llvProjectCatalogPublicationGeneration===a.publication}function w(a,b,c){return!!v(b)&&!!c&&((0,p.ru)(a),!0)}function x(){return(0,k.BQ)("project-catalog.json")}function y(a,b){return"codex-sessions"===a||"openclaw-sessions"===a||"claude-projects"===a&&("session"===b||"subagent"===b)}function z(a){return"codex-sessions"===a?"codex":"claude-projects"===a?"claude":"openclaw-sessions"===a?"openclaw":"shell"}function A(a){return"codex-sessions"===a?"codex":"claude-projects"===a?"claude":"openclaw-sessions"===a?"openclaw":"plain"}function B(a,b){let c=i().basename(a.path);return"subagent"===b?"Subagent "+c.slice(6).split(".")[0]:"codex-sessions"===a.rootName?"Codex session":"claude-projects"===a.rootName?"Claude session":"openclaw-sessions"===a.rootName?"OpenClaw session":"Background task "+c.split(".")[0]}function C(a,b){a.files[b.path]={summaryVersion:b.summaryVersion,summaryIncomplete:b.summaryIncomplete,rootName:b.rootName,size:b.size,mtimeMs:b.mtimeMs,sidecarSize:b.sidecarSize,sidecarMtimeMs:b.sidecarMtimeMs,stateKey:b.stateKey,project:b.project,projectName:b.projectName,projectUnresolved:b.projectUnresolved,projectRoot:b.projectRoot,kind:b.kind,session:b.session,worktree:b.worktree,cwd:b.cwd??null,sessionStartedAt:b.sessionStartedAt??null,nativeParentThreadId:b.nativeParentThreadId??null,nativeForkSourceThreadId:b.nativeForkSourceThreadId??null,title:b.titleCached?b.title:void 0,engine:b.engine,fmt:b.fmt}}function D(a){return"claude-projects"!==a.rootName&&"claude-tasks"!==a.rootName?null:i().relative(a.root,a.path).split(i().sep)[0]||null}async function E(a,b={}){let c=!1!==b.persist||!0===b.persistIndex,d=b.scanToken??u(c),f=function(){try{let a=JSON.parse(g().readFileSync(x(),"utf8"));if(1!==a.version&&2!==a.version||!a.files||"object"!=typeof a.files||Array.isArray(a.files))return{version:2,resolutionVersion:r.Q,files:{}};let b={};for(let[c,d]of Object.entries(a.files)){if(!d||"object"!=typeof d||Array.isArray(d)||"codex-sessions"!==d.rootName&&"claude-projects"!==d.rootName&&"claude-tasks"!==d.rootName&&"openclaw-sessions"!==d.rootName||"number"!=typeof d.size||"number"!=typeof d.mtimeMs||"string"!=typeof d.stateKey||"string"!=typeof d.project||void 0!==d.projectName&&"string"!=typeof d.projectName||void 0!==d.projectUnresolved&&!0!==d.projectUnresolved||void 0!==d.projectRoot&&null!==d.projectRoot&&"string"!=typeof d.projectRoot||"string"!=typeof d.kind)continue;let a="codex"===d.engine||"claude"===d.engine||"shell"===d.engine||"openclaw"===d.engine?d.engine:void 0,e="codex"===d.fmt||"claude"===d.fmt||"plain"===d.fmt||"openclaw"===d.fmt?d.fmt:void 0,f="string"==typeof d.cwd?d.cwd:null===d.cwd?null:void 0,g="string"==typeof d.sessionStartedAt?d.sessionStartedAt:null===d.sessionStartedAt?null:void 0,h="string"==typeof d.nativeParentThreadId?d.nativeParentThreadId:null===d.nativeParentThreadId?null:void 0,i="string"==typeof d.nativeForkSourceThreadId?d.nativeForkSourceThreadId:null===d.nativeForkSourceThreadId?null:void 0,j="number"==typeof d.sidecarSize?d.sidecarSize:null===d.sidecarSize?null:void 0,k="number"==typeof d.sidecarMtimeMs?d.sidecarMtimeMs:null===d.sidecarMtimeMs?null:void 0,l=4===d.summaryVersion&&"string"==typeof d.title&&"string"==typeof d.projectName&&void 0!==a&&void 0!==e&&void 0!==f&&void 0!==g&&void 0!==h&&void 0!==i&&void 0!==d.projectRoot&&void 0!==j&&void 0!==k;b[c]={summaryVersion:l?4:void 0,summaryIncomplete:!l&&!0===d.summaryIncomplete||void 0,rootName:d.rootName,size:d.size,mtimeMs:d.mtimeMs,sidecarSize:j,sidecarMtimeMs:k,stateKey:d.stateKey,project:d.project,projectName:"string"==typeof d.projectName?d.projectName:(0,n.rj)(d.project),projectUnresolved:!0===d.projectUnresolved||void 0,projectRoot:"string"==typeof d.projectRoot?d.projectRoot:null===d.projectRoot?null:void 0,kind:d.kind,session:y(d.rootName,d.kind),worktree:"string"==typeof d.worktree?d.worktree:void 0,cwd:f,sessionStartedAt:g,nativeParentThreadId:h,nativeForkSourceThreadId:i,title:"string"==typeof d.title?d.title:void 0,engine:a,fmt:e}}return{version:2,resolutionVersion:a.resolutionVersion??0,files:b}}catch{return{version:2,resolutionVersion:r.Q,files:{}}}}(),h=(0,r.g)(),k={},p=new Map,v=new Map,F=new Map,G=new Map;await (0,l.pV)(a,a=>{G.set(a.path,f.files[a.path]?.project)});let H=await (0,l.j0)(a,a=>(function(a,b,c){let d=b.files[a.path],e=(0,q.tS)(a.rootName,a.path,a.st);if(e.complete&&d?.summaryVersion===4&&d.size===a.st.size&&d.mtimeMs===a.st.mtimeMs&&d.sidecarSize===e.sidecarSize&&d.sidecarMtimeMs===e.sidecarMtimeMs&&void 0!==d.projectRoot&&(b.resolutionVersion!==r.Q||d.stateKey!==c)){let e=(0,q.xn)(a.rootName,a.root,a.path,{project:d.project,projectName:d.projectName??(0,n.rj)(d.project),projectUnresolved:d.projectUnresolved,worktree:d.worktree,cwd:d.cwd??void 0,sessionStartedAt:d.sessionStartedAt,nativeParentThreadId:d.nativeParentThreadId,nativeForkSourceThreadId:d.nativeForkSourceThreadId,projectRoot:d.projectRoot,title:d.title??B(a,d.kind),engine:d.engine??z(a.rootName),kind:d.kind,fmt:d.fmt??A(a.rootName)},c),f={...d,path:a.path,stateKey:c,project:e.project,projectName:e.projectName,projectUnresolved:e.projectUnresolved,projectRoot:e.projectRoot??null,worktree:e.worktree,cwd:e.cwd,session:y(a.rootName,e.kind),title:e.title,titleCached:!0,engine:e.engine,kind:e.kind,fmt:e.fmt};return C(b,f),f}if(b.resolutionVersion===r.Q&&e.complete&&d&&d.size===a.st.size&&d.mtimeMs===a.st.mtimeMs&&(4!==d.summaryVersion||d.sidecarSize===e.sidecarSize&&d.sidecarMtimeMs===e.sidecarMtimeMs)&&d.stateKey===c&&void 0!==d.projectRoot){if(4!==d.summaryVersion){let b=(0,q.CL)(a.rootName,a.root,a.path,a.st,c,e),f=b.description,g=!0===d.summaryIncomplete;return{...d,summaryVersion:b.complete?4:void 0,summaryIncomplete:!!g&&!b.complete||void 0,sidecarSize:e.sidecarSize,sidecarMtimeMs:e.sidecarMtimeMs,path:a.path,project:g?f.project||"other":d.project,projectName:g?f.projectName:d.projectName??(0,n.rj)(d.project),projectUnresolved:g?f.projectUnresolved:d.projectUnresolved,projectRoot:g?f.projectRoot??null:d.projectRoot,kind:g?f.kind:d.kind,session:y(a.rootName,g?f.kind:d.kind),worktree:g?f.worktree:d.worktree,cwd:f.cwd,sessionStartedAt:f.sessionStartedAt,nativeParentThreadId:f.nativeParentThreadId,nativeForkSourceThreadId:f.nativeForkSourceThreadId,title:f.title,titleCached:!0,engine:f.engine,fmt:f.fmt}}return{path:a.path,...d,session:y(a.rootName,d.kind),cwd:d.cwd??void 0,sessionStartedAt:d.sessionStartedAt,nativeParentThreadId:d.nativeParentThreadId,nativeForkSourceThreadId:d.nativeForkSourceThreadId,title:d.title??B(a,d.kind),titleCached:"string"==typeof d.title,engine:d.engine??z(a.rootName),fmt:d.fmt??A(a.rootName)}}let f=(0,q.CL)(a.rootName,a.root,a.path,a.st,c,e),g=f.description,h=f.complete||d?.summaryVersion!==4?void 0:d,i={summaryVersion:f.complete?4:void 0,summaryIncomplete:!f.complete||void 0,path:a.path,rootName:a.rootName,size:a.st.size,mtimeMs:a.st.mtimeMs,sidecarSize:e.sidecarSize,sidecarMtimeMs:e.sidecarMtimeMs,stateKey:c,project:h?.project??(g.project||"other"),projectName:h?.projectName??g.projectName,projectUnresolved:h?.projectUnresolved??g.projectUnresolved,projectRoot:h?h.projectRoot??null:g.projectRoot??null,kind:g.kind,session:y(a.rootName,g.kind),worktree:h?.worktree??g.worktree,cwd:h?h.cwd??void 0:g.cwd,sessionStartedAt:h?h.sessionStartedAt:g.sessionStartedAt,nativeParentThreadId:h?h.nativeParentThreadId:g.nativeParentThreadId,nativeForkSourceThreadId:h?h.nativeForkSourceThreadId:g.nativeForkSourceThreadId,title:g.title,titleCached:!0,engine:g.engine,fmt:g.fmt};return C(b,i),i})(a,f,h)),I=!1!==b.complete&&H.every(a=>4===a.summaryVersion),J=new Map;await (0,l.pV)(a,(a,b)=>{let c=H[b],d="claude-projects"===c.rootName&&c.session?D(a):null;d&&J.set(d,c.project)}),await (0,l.pV)(a,(b,c)=>{let d=D(a[c]),e=d?J.get(d):void 0;e&&(H[c].project=e)});let K=new Map,L=new Map;await (0,l.pV)(H,a=>{if(k[a.path]={summaryVersion:a.summaryVersion,summaryIncomplete:a.summaryIncomplete,rootName:a.rootName,size:a.size,mtimeMs:a.mtimeMs,sidecarSize:a.sidecarSize,sidecarMtimeMs:a.sidecarMtimeMs,stateKey:a.stateKey,project:a.project,projectName:a.projectName,projectUnresolved:a.projectUnresolved,projectRoot:a.projectRoot,kind:a.kind,session:a.session,worktree:a.worktree,cwd:a.cwd??null,sessionStartedAt:a.sessionStartedAt??null,nativeParentThreadId:a.nativeParentThreadId??null,nativeForkSourceThreadId:a.nativeForkSourceThreadId??null,title:a.titleCached?a.title:void 0,engine:a.engine,fmt:a.fmt},a.cwd&&a.project){let b=L.get(a.cwd)??new Set;b.add(a.project),L.set(a.cwd,b)}let c=G.get(a.path);if(c&&c!==a.project){let b=K.get(c)??new Set;b.add(a.project),K.set(c,b)}let d=a.project||"other";F.set(a.path,d);let e=p.get(d);if(e||(e={project:d,displayName:a.projectName??(0,n.rj)(d),smt:0,conversations:0},p.set(d,e)),e.smt=Math.max(e.smt,a.mtimeMs/1e3),a.session&&(e.conversations+=1),a.projectRoot&&!b.excludedSummaryPaths?.has(a.path)){let b=v.get(d)??new Map,c=b.get(a.projectRoot)??{count:0,newest:0};c.count+=1,c.newest=Math.max(c.newest,a.mtimeMs),b.set(a.projectRoot,c),v.set(d,b)}}),await (0,l.pV)([...v],([a,b])=>{let c=[...b].sort(([a,b],[c,d])=>d.count-b.count||d.newest-b.newest||a.localeCompare(c))[0]?.[0];c&&(p.get(a).projectRoot=c)}),await (0,l.pV)([...b.excludedSummaryPaths??[]],a=>{let b=k[a],c=b?p.get(b.project||"other"):void 0;b?.session&&c&&c.conversations>0&&(c.conversations-=1)});let M=[],N=new Map;await (0,l.pV)(H,(b,c)=>{N.set(b.path,{project:b.project||"other",projectName:b.projectName??(0,n.rj)(b.project||"other"),projectUnresolved:b.projectUnresolved,worktree:b.worktree,cwd:b.cwd??void 0,sessionStartedAt:b.sessionStartedAt,nativeParentThreadId:b.nativeParentThreadId,nativeForkSourceThreadId:b.nativeForkSourceThreadId,projectRoot:b.projectRoot,title:b.title,engine:b.engine,kind:b.kind,fmt:b.fmt}),b.session&&("codex"===b.engine||"claude"===b.engine||"openclaw"===b.engine)&&M.push({path:b.path,root:b.rootName,name:i().relative(a[c].root,b.path),project:b.project||"other",projectName:b.projectName,projectUnresolved:b.projectUnresolved,worktree:b.worktree,title:b.title,firstPrompt:"",engine:b.engine,kind:b.kind,fmt:b.fmt,mtime:b.mtimeMs/1e3,size:b.size})});let O=null!==d.persistence&&t.__llvProjectCatalogPersistenceGeneration===d.persistence;if(w(M,d,I),O&&c&&I){let a=!0;if(!1!==b.persist)try{let b=function(a,b){let c=new Map,d=[];for(let[e,f]of a){if(1!==f.size){d.push(e);continue}let g=f.values().next().value,h=new Set([e]);for(;g&&(b.get(g)?.conversations??0)===0;){if(h.has(g)){g=void 0;break}h.add(g);let b=a.get(g);if(b?.size!==1)break;g=b.values().next().value}g&&g!==e&&(b.get(g)?.conversations??0)>0&&c.set(e,g)}return{migrations:c,conflicts:d}}(K,p);if(b.conflicts.length>0)throw Error("ambiguous catalog project identity");let c=b.migrations,d=[...c].map(([a,b])=>({source:a,target:b,displayName:p.get(b)?.displayName??(0,n.rj)(b)})),e=(0,m.JC)(),f=e.conflicts.length;for(let a of e.registrations){let b=c.get(a.source);if(b&&b!==a.target){f+=1;continue}c.set(a.source,a.target),d.push(a)}f>0&&console.error(`[project catalog] ${f} durable project alias source(s) unresolved; persisting the clean batch and retrying them on a later scan`),(a=(0,m.YX)(d))&&(a=(0,j.aM)(c)),a&&(a=(0,m.oh)(d))}catch{a=!1}if(a&&!1!==b.persist)try{(0,o.n)([...L].filter(([,a])=>a.size>1).flatMap(([a,b])=>[...b].map(b=>(0,o.M)(b,a))))}catch{console.error("[project catalog] project identity succession deferred; a later scan will retry")}a?function(a){let b,c="create state directory",d=x();try{let f=x();d=f,g().mkdirSync(i().dirname(f),{recursive:!0,mode:448}),g().chmodSync(i().dirname(f),448),b=i().join(i().dirname(f),`.${i().basename(f)}.${process.pid}.${e().randomUUID()}.tmp`),c="write temporary index",d=b,g().writeFileSync(b,JSON.stringify(a)+"\n",{encoding:"utf8",mode:384}),c="rename temporary index",d=f,g().renameSync(b,f)}catch(a){if(void 0!==b)try{g().unlinkSync(b)}catch{}!function(a,b,c){let d=Date.now();if(d-s<6e4)return;s=d;let e=c instanceof Error?`${c.message}${"code"in c&&c.code?` (${String(c.code)})`:""}`:String(c);console.error(`[project catalog] ${a} failed for ${b}: ${e}; a later scan will retry`)}(c,d,a)}}({version:2,resolutionVersion:r.Q,files:k}):console.error("[project catalog] board project migration deferred; a later scan will retry")}return{projectCatalog:[...p.values()].filter(a=>a.conversations>0).sort((a,b)=>b.smt-a.smt||a.project.localeCompare(b.project)),projectByPath:F,conversationCatalog:M,summaryByPath:N,complete:I}}},79645:(a,b,c)=>{c.d(b,{Q:()=>p,Vj:()=>q,_1:()=>o});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(91724),i=c(65154),j=c(2033),k=c(34196);function l(){return(0,h.BQ)("lifecycle-journal.json")}class m extends Error{constructor(a,b){super(`the lifecycle journal at ${a} is unreadable (${b}); move it aside to start a new one`),this.name="LifecycleJournalCorruptError",this.journalPath=a}}function n(){let a,b,c=l();try{a=g().readFileSync(c,"utf8")}catch(a){if("ENOENT"===a.code)return{version:1,lastSeq:0,events:[],retired:[]};throw new m(c,`it could not be read: ${a.message}`)}try{b=JSON.parse(a)}catch{throw new m(c,"it is not valid JSON — the last write was truncated")}return function(a,b){if(!a||"object"!=typeof a||Array.isArray(a))throw new m(b,"its contents are not a journal object");if(void 0!==a.events&&!Array.isArray(a.events))throw new m(b,"its events field is not an array");let c=a.events??[],d=[];for(let[a,e]of c.entries()){let f=function(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.id||!a.id||!Number.isInteger(a.seq)||a.seq<1||"string"!=typeof a.at||!a.at||!(0,k.VO)(a.type))return null;let b=(0,k.cn)(a.state)?a.state:k.ml[a.type],c=a=>"string"==typeof a?a:null;return{id:a.id,seq:a.seq,at:a.at,type:a.type,state:b,project:c(a.project),pipelineId:c(a.pipelineId),stageId:c(a.stageId),attempt:Number.isInteger(a.attempt)?a.attempt:null,conversationId:c(a.conversationId),role:c(a.role),summary:"string"==typeof a.summary?a.summary:""}}(e);if(!f)throw new m(b,`recorded event ${a+1} of ${c.length} is malformed`);d.push(f)}d.sort((a,b)=>a.seq-b.seq);let e=Array.isArray(a.retired)?a.retired.filter(a=>"string"==typeof a):[],f=d.at(-1)?.seq??0;return{version:1,lastSeq:Number.isInteger(a.lastSeq)?Math.max(a.lastSeq,f):f,events:d,retired:e}}(b,c)}function o(){return n()}function p(a){return 0===a.length?{appended:[],skipped:0}:(0,j.Ol)(l(),"lifecycle journal is busy",()=>{var b;let c=n(),d=new Set([...c.events.map(a=>a.id),...c.retired]),f=[],g=0;for(let h of a){let a=(b=h.key,`evt_${e().createHash("sha256").update(b).digest("hex").slice(0,24)}`);if(d.has(a)){g+=1;continue}d.add(a),c.lastSeq+=1;let i={id:a,seq:c.lastSeq,at:h.at,type:h.type,state:k.ml[h.type],project:h.project??null,pipelineId:h.pipelineId??null,stageId:h.stageId??null,attempt:Number.isInteger(h.attempt)?h.attempt:null,conversationId:h.conversationId??null,role:h.role??null,summary:(0,k.q0)(h.summary)};c.events.push(i),f.push(i)}if(0===f.length)return{appended:f,skipped:g};if(c.events.length>2e3){let a=c.events.splice(0,c.events.length-2e3);c.retired=[...c.retired,...a.map(a=>a.id)].slice(-8e3)}return(0,i.f)(l(),c),{appended:f,skipped:g}})}function q(a,b={}){let c=Math.max(1,Math.min(200,Number.isInteger(b.limit)?b.limit:50)),d=Number.isInteger(b.afterSeq)?b.afterSeq:0,e=a.events.filter(a=>!(a.seq<=d)&&(!b.project||a.project===b.project)&&(!b.pipelineId||a.pipelineId===b.pipelineId)&&(!b.conversationId||a.conversationId===b.conversationId)&&(!b.stageId||a.stageId===b.stageId)&&(!b.type||a.type===b.type)&&!0),f=e.slice(0,c);return{count:f.length,events:f,cursor:a.lastSeq,remaining:e.length-f.length}}},89333:(a,b,c)=>{let d,e,f;c.d(b,{Bz:()=>s,EG:()=>w,GH:()=>q,Ps:()=>x,Rg:()=>t,jQ:()=>u,s9:()=>r});var g=c(73024),h=c.n(g),i=c(48161),j=c.n(i),k=c(76760),l=c.n(k),m=c(41617),n=c(78966),o=c(13605);let p=j().homedir(),q={"codex-sessions":l().join(p,".codex/sessions"),"claude-projects":l().join(p,".claude/projects"),"claude-tasks":(d=process.getuid?.()??1e3,e=l().join(j().tmpdir(),"claude-"+d),e===(f="/tmp/claude-"+d)||h().existsSync(e)?e:h().existsSync(f)?f:e),"openclaw-sessions":l().join(p,".openclaw/agents")};function r(){let a=[...(0,m.vD)().map(a=>["codex-sessions",a]),...(0,n.pW)().map(a=>["claude-projects",a]),["claude-tasks",q["claude-tasks"]],...(function(){let a,b,c=l().join((b=process.env.OPENCLAW_STATE_DIR?.trim())?l().resolve(b):l().join(j().homedir(),".openclaw"),"agents");try{a=h().readdirSync(c,{withFileTypes:!0})}catch{return[]}return a.filter(a=>(a.isDirectory()||a.isSymbolicLink())&&!a.name.startsWith(".")).map(a=>l().join(c,a.name,"sessions")).sort()})().map(a=>["openclaw-sessions",a])],b=new Set;return a.filter(([,a])=>{let c=v(a)??l().resolve(a);return!b.has(c)&&(b.add(c),!0)})}function s(a){for(let b of(0,n.pW)())try{let c=h().realpathSync(a),d=h().realpathSync(b);if(c.startsWith(d+l().sep))return b}catch{}return null}let t=[".log",".jsonl",".output",".txt"],u=786432;function v(a){try{return h().realpathSync(a)}catch{return null}}function w(a){let b=v(a);return!!b&&r().some(([,a])=>{let c=v(a);return null!==c&&b.startsWith(c+l().sep)})}function x(a){for(let b of(0,m.vD)())try{let c=h().realpathSync(a),d=h().realpathSync(b);if(c.startsWith(d+l().sep))return b}catch{continue}return null}o.de,o.cy}};