failproofai 0.0.13-beta.0 → 0.0.13-beta.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 (197) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  11. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  12. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  13. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  14. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  15. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  22. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  23. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  24. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  25. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  26. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  27. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  28. package/.next/standalone/.next/server/app/api/audit/invite/route.js +2 -2
  29. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/audit/run/route.js +3 -2
  31. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/auth/login-request/route.js +1 -1
  33. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js +2 -2
  35. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/auth/logout/route.js +2 -2
  37. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/auth/reminder/route.js +2 -2
  39. package/.next/standalone/.next/server/app/api/auth/reminder/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/auth/status/route.js +2 -2
  41. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js +1 -1
  43. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  45. package/.next/standalone/.next/server/app/audit/page.js +1 -1
  46. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/index.html +1 -1
  49. package/.next/standalone/.next/server/app/index.rsc +15 -15
  50. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  51. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  52. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  53. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  54. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  55. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  56. package/.next/standalone/.next/server/app/page.js +1 -1
  57. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  60. package/.next/standalone/.next/server/app/policies/page.js +2 -2
  61. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  64. package/.next/standalone/.next/server/app/project/[name]/page.js +3 -2
  65. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  68. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  69. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +3 -2
  70. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  73. package/.next/standalone/.next/server/app/projects/page.js +2 -2
  74. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_0xu5z._.js +1 -1
  77. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cefjd9._.js +3 -0
  78. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ekj92q._.js +3 -0
  79. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0hv08mx._.js +3 -0
  80. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0obaznk._.js +3 -0
  81. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xvsnvt._.js +3 -0
  82. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12v-lma._.js +3 -0
  83. package/.next/standalone/.next/server/chunks/[root-of-the-server]__136y39g._.js +3 -0
  84. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13h8pzr._.js +1 -1
  85. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1fwl2mz._.js +3 -0
  86. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1hkdkmz._.js +3 -0
  87. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1i9rknc._.js +3 -0
  88. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1mrihkj._.js +3 -0
  89. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1myjm-d._.js +3 -0
  90. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0cycwg6._.js → [root-of-the-server]__1tvn4wf._.js} +2 -2
  91. package/.next/standalone/.next/server/chunks/_1z062h5._.js +3 -0
  92. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_17k9e3w.js +5 -5
  93. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  94. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__015_i4t._.js +4 -0
  95. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03lv-pe._.js +4 -0
  96. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04bqvos._.js +3 -0
  97. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1-m1rhq._.js → [root-of-the-server]__099afy6._.js} +2 -2
  98. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0dqgs96._.js +3 -0
  99. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1uvfwgr._.js → [root-of-the-server]__0hdsupo._.js} +3 -3
  100. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0q5rfxg._.js +3 -0
  101. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qeuy9c._.js +4 -0
  102. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qukut7._.js +4 -0
  103. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s89hoe._.js +4 -0
  104. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ehe24g._.js → [root-of-the-server]__0ynf7tx._.js} +3 -3
  105. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__170799-._.js +245 -0
  106. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1d8omgc._.js +1 -1
  107. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1ql-mch._.js +3 -0
  108. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0bbpv2d._.js → [root-of-the-server]__1qlh4jx._.js} +2 -2
  109. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1tkjqka._.js +4 -0
  110. package/.next/standalone/.next/server/chunks/ssr/_05whahf._.js +1 -1
  111. package/.next/standalone/.next/server/chunks/ssr/_0ul5rf_._.js +3 -0
  112. package/.next/standalone/.next/server/chunks/ssr/_11_p9y8._.js +1 -1
  113. package/.next/standalone/.next/server/chunks/ssr/_11v0g3z._.js +3 -0
  114. package/.next/standalone/.next/server/chunks/ssr/_1p0-leb._.js +1 -1
  115. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +1 -1
  116. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  117. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +1 -1
  118. package/.next/standalone/.next/server/chunks/ssr/lib_hermes-projects_ts_05b8-it._.js +3 -0
  119. package/.next/standalone/.next/server/chunks/ssr/{node_modules_html-to-image_es_index_1u91ynr.js → node_modules_html-to-image_es_index_0pv57nx.js} +1 -1
  120. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  121. package/.next/standalone/.next/server/pages/404.html +1 -1
  122. package/.next/standalone/.next/server/pages/500.html +1 -1
  123. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  124. package/.next/standalone/.next/server/server-reference-manifest.json +10 -10
  125. package/.next/standalone/.next/static/chunks/{0azkpcy8eb1gr.js → 0b6rdtcge_3ec.js} +1 -1
  126. package/.next/standalone/.next/static/chunks/{1zxtyef-iqede.js → 0pj_6lbbjd000.js} +1 -1
  127. package/.next/standalone/.next/static/chunks/{1h569gia53ant.js → 0xnrgonfdeivm.js} +1 -1
  128. package/.next/standalone/.next/static/chunks/{39rn602wszcbd.js → 105w_oznq-van.js} +1 -1
  129. package/.next/standalone/.next/static/chunks/{0byua6ng1f_ka.js → 13tbm6i1swiru.js} +1 -1
  130. package/.next/standalone/.next/static/chunks/{41mhnhfkmglpp.js → 1fhuj4fjovzp5.js} +1 -1
  131. package/.next/standalone/.next/static/chunks/209ful1jrphvy.js +1 -0
  132. package/.next/standalone/.next/static/chunks/{3jka0hvhqouyv.js → 23odnajn2ltwu.js} +1 -1
  133. package/.next/standalone/.next/static/chunks/25s52un3k_wht.css +2 -0
  134. package/.next/standalone/.next/static/chunks/36r2vgi6854za.js +6 -0
  135. package/.next/standalone/.next/static/chunks/3b77kulbdbrqw.js +1 -0
  136. package/.next/standalone/.next/static/chunks/3rjg-1s5ouu5r.js +1 -0
  137. package/.next/standalone/app/components/sessions-list.tsx +19 -0
  138. package/.next/standalone/app/project/[name]/page.tsx +9 -4
  139. package/.next/standalone/app/project/[name]/session/[sessionId]/page.tsx +26 -5
  140. package/.next/standalone/assets/logos/hermes-dark.svg +1 -0
  141. package/.next/standalone/assets/logos/hermes-light.svg +1 -0
  142. package/.next/standalone/lib/cli-registry.ts +6 -1
  143. package/.next/standalone/lib/download-session.ts +16 -0
  144. package/.next/standalone/lib/hermes-projects.ts +164 -0
  145. package/.next/standalone/lib/hermes-sessions.ts +273 -0
  146. package/.next/standalone/lib/projects.ts +14 -3
  147. package/.next/standalone/lib/sqlite-reader.ts +102 -0
  148. package/.next/standalone/package.json +5 -3
  149. package/.next/standalone/server.js +1 -1
  150. package/README.md +10 -1
  151. package/bin/failproofai.mjs +17 -16
  152. package/dist/cli.mjs +7762 -226
  153. package/lib/cli-registry.ts +6 -1
  154. package/lib/download-session.ts +16 -0
  155. package/lib/hermes-projects.ts +164 -0
  156. package/lib/hermes-sessions.ts +273 -0
  157. package/lib/projects.ts +14 -3
  158. package/lib/sql-js-asm.d.ts +26 -0
  159. package/lib/sqlite-reader.ts +102 -0
  160. package/package.json +5 -3
  161. package/src/audit/cli-adapters/hermes.ts +58 -0
  162. package/src/audit/cli-adapters/index.ts +6 -0
  163. package/src/hooks/handler.ts +8 -0
  164. package/src/hooks/install-prompt.ts +7 -3
  165. package/src/hooks/integrations.ts +179 -5
  166. package/src/hooks/policy-evaluator.ts +42 -0
  167. package/src/hooks/resolve-transcript-path.ts +4 -0
  168. package/src/hooks/tool-name-canonicalize.ts +6 -0
  169. package/src/hooks/types.ts +67 -1
  170. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0dwpg-h._.js +0 -3
  171. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lnenda._.js +0 -3
  172. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13i_sva._.js +0 -3
  173. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1_mqemn._.js +0 -3
  174. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1m2_4t0._.js +0 -3
  175. package/.next/standalone/.next/server/chunks/node_modules_0-tu4ot._.js +0 -3
  176. package/.next/standalone/.next/server/chunks/node_modules_0ttxbz7._.js +0 -3
  177. package/.next/standalone/.next/server/chunks/node_modules_1bnh1y0._.js +0 -3
  178. package/.next/standalone/.next/server/chunks/node_modules_1epycqa._.js +0 -3
  179. package/.next/standalone/.next/server/chunks/node_modules_1wpdcgo._.js +0 -3
  180. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0808sha._.js +0 -4
  181. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e4-6d8._.js +0 -4
  182. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0f62vu9._.js +0 -3
  183. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g253ve._.js +0 -4
  184. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0k65l27._.js +0 -3
  185. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vxf0_g._.js +0 -4
  186. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12mcauo._.js +0 -4
  187. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1e-x7j4._.js +0 -3
  188. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1mt35_w._.js +0 -221
  189. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1pcxxwg._.js +0 -4
  190. package/.next/standalone/.next/static/chunks/03zg3ms7uaoq3.js +0 -1
  191. package/.next/standalone/.next/static/chunks/0f7d7hnbh4djs.js +0 -1
  192. package/.next/standalone/.next/static/chunks/1o0xa47736gi9.css +0 -2
  193. package/.next/standalone/.next/static/chunks/2ks4pzu5b-l_q.js +0 -6
  194. package/.next/standalone/.next/static/chunks/2wbuxnsvux4di.js +0 -1
  195. /package/.next/standalone/.next/static/{W6ELw5VwHTFy2amS2px6e → 31ZoDDYKHEIN_TrgKv85t}/_buildManifest.js +0 -0
  196. /package/.next/standalone/.next/static/{W6ELw5VwHTFy2amS2px6e → 31ZoDDYKHEIN_TrgKv85t}/_clientMiddlewareManifest.js +0 -0
  197. /package/.next/standalone/.next/static/{W6ELw5VwHTFy2amS2px6e → 31ZoDDYKHEIN_TrgKv85t}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[8174,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/lucide-react/dist/esm/Icon.mjs <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/lucide-react/dist/esm/Icon.mjs <module evaluation>","default")},90697,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/lucide-react/dist/esm/Icon.mjs","default")},53808,a=>{"use strict";a.i(8174);var b=a.i(90697);a.n(b)},14066,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/lazy-log-viewer.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/lazy-log-viewer.tsx <module evaluation>","default")},19597,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/lazy-log-viewer.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/lazy-log-viewer.tsx","default")},71130,a=>{"use strict";a.i(14066);var b=a.i(19597);a.n(b)},85540,a=>{"use strict";a.s(["CopyButton",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call CopyButton() from the server but CopyButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/copy-button.tsx <module evaluation>","CopyButton")},35770,a=>{"use strict";a.s(["CopyButton",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call CopyButton() from the server but CopyButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/copy-button.tsx","CopyButton")},893,a=>{"use strict";a.i(85540);var b=a.i(35770);a.n(b)},41190,a=>{"use strict";var b=a.i(7997),c=a.i(95936),d=a.i(717);let e=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var f=a.i(53808);let g=(a,b)=>{let c=(0,d.forwardRef)(({className:c,...g},h)=>(0,d.createElement)(f.default,{ref:h,iconNode:b,className:((...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim())(`lucide-${e(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,c),...g}));return c.displayName=e(a),c},h=g("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]),i=g("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);a.i(70396);var j=a.i(73727),k=a.i(24868),l=a.i(14747),m=a.i(90798),n=a.i(69191);async function o(a,b,c,d){let e=`agent-${d}.jsonl`;for(let d of[(0,l.join)(a,b,e),(0,l.join)(a,b,c,e),(0,l.join)(a,b,c,"subagents",e)])if(!(0,l.relative)(a,d).startsWith(".."))try{return await (0,k.access)(d),d}catch(a){if("ENOENT"===a.code)continue;break}return null}var p=a.i(34900),q=a.i(26192),r=a.i(33432);function s(a){if(a<1e3)return`${a}ms`;let b=a/1e3;if(b<60)return`${b.toFixed(1)}s`;let c=Math.floor(b/60);if(c>=60){let a=Math.floor(c/60);return`${a}h ${c%60}m`}let d=(b%60).toFixed(0);return`${c}m ${d}s`}function t(a){let b=(0,r.formatDate)(a),c=a.getMilliseconds().toString().padStart(3,"0");return`${b}.${c}`}function u(a,b,c,d){return{_source:d,uuid:a.uuid||"",parentUuid:a.parentUuid??null,timestamp:b,timestampMs:c.getTime(),timestampFormatted:t(c)}}async function v(a,b){let c=a.split("\n").filter(a=>""!==a.trim()),d=new Map,e=[],f=[],g=new Set,h=!1;for(let a=0;a<c.length;a++){let i;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let j=c[a];try{i=JSON.parse(j)}catch{continue}let k={...i,_source:b};f.push(k);let l=i.type,m=i.timestamp;if(!m)continue;let n=new Date(m),o=n.getTime();if("user"===l){let a=i.message;if(Array.isArray(a?.content)){let b=a.content;if(b.some(a=>"tool_result"===a.type)){let a=i.toolUseResult,c="string"==typeof a?.agentId?a.agentId:void 0;for(let a of(c&&/^[a-f0-9]+$/.test(c)&&g.add(c),b)){if("tool_result"!==a.type)continue;let b=a.tool_use_id;if(!b)continue;let{text:e,images:f}=function(a){let b=a.content;if("string"==typeof b)return{text:b};if(Array.isArray(b)){let a=b.filter(a=>"text"===a.type).map(a=>a.text),c=b.filter(a=>"image"===a.type).map(a=>{let b=a.source;return{base64:b.data,mediaType:b.media_type}}).filter(a=>a.base64&&a.mediaType);return{text:a.length>0?a.join("\n"):void 0,images:c.length>0?c:void 0}}return{}}(a);d.set(b,{timestamp:m,timestampMs:o,content:e,images:f,agentId:c})}continue}}let c="string"==typeof a?.content?a.content:"";e.push({type:"user",...u(i,m,n,b),message:{role:"user",content:c}});continue}if("assistant"===l){let a=i.message,c=[];if(Array.isArray(a?.content)&&(c=a.content.filter(a=>["text","tool_use","thinking"].includes(a.type)).map(a=>{if("text"===a.type)return{type:"text",text:a.text};if("tool_use"===a.type){let b=a.input;return{type:"tool_use",id:a.id,name:a.name,input:a.input??{},..."Task"===a.name&&b?{subagentType:b.subagent_type,subagentDescription:b.description}:{}}}return{type:"thinking",thinking:a.thinking,signature:a.signature}})),0===c.length)continue;e.push({type:"assistant",...u(i,m,n,b),message:{role:"assistant",content:c,model:a?.model}});continue}if("file-history-snapshot"===l||"progress"===l||"system"===l){e.push({type:l,...u(i,m,n,b),raw:{...i}});continue}if("queue-operation"===l){let a=h?"Session Resumed":"Session Started";h=!0,e.push({type:"queue-operation",...u(i,m,n,b),label:a});continue}}let i=0;for(let a of e)if("assistant"===a.type)for(let b of(++i%200==0&&await new Promise(a=>setImmediate(a)),a.message.content)){if("tool_use"!==b.type)continue;let c=d.get(b.id);if(!c)continue;let e=new Date(c.timestamp),f=Math.max(0,c.timestampMs-a.timestampMs);b.result={timestamp:c.timestamp,timestampFormatted:t(e),content:c.content,images:c.images,durationMs:f,durationFormatted:s(f)},c.agentId&&(b.subagentId=c.agentId)}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,subagentIds:Array.from(g)}}async function w(a,b){let c=(0,n.resolveProjectPath)(a),d=(0,m.getClaudeProjectsPath)(),e=(0,l.join)(c,`${b}.jsonl`),f=await (0,k.readFile)(e,"utf-8"),{entries:g,rawLines:h,subagentIds:i}=await v(f,"session");if(0===i.length)return{entries:g,rawLines:h,subagentIds:[]};let j=await (0,q.batchAll)(i.map(c=>async()=>{let e=`agent-${c}`,f=await o(d,a,b,c);if(!f)return null;let g=await (0,k.readFile)(f,"utf-8"),{entries:h,rawLines:i}=await v(g,e);return{entries:h,rawLines:i}}),4),p=[...g],r=[...h];for(let a of j)"fulfilled"===a.status&&a.value&&(p.push(...a.value.entries),r.push(...a.value.rawLines));return p.length>500&&await new Promise(a=>setImmediate(a)),p.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:p,rawLines:r,subagentIds:i}}let x=(0,p.runtimeCache)((a,b)=>w(a,b),60,{maxSize:50});var y=a.i(2157),z=a.i(12714),A=a.i(50227),B=a.i(60526);let C=(0,A.join)((0,B.homedir)(),".failproofai","cache","codex-session-paths.json");function D(){try{if(!(0,y.existsSync)(C))return{};return JSON.parse((0,y.readFileSync)(C,"utf-8"))}catch{return{}}}function E(a,b){try{(0,y.mkdirSync)((0,A.dirname)(C),{recursive:!0});let c=D();c[a]=b,(0,y.writeFileSync)(C,JSON.stringify(c),"utf-8")}catch{}}function F(a,b){try{for(let c of(0,y.readdirSync)(a,{withFileTypes:!0}))if(c.isFile()&&c.name.includes(b)&&c.name.endsWith(".jsonl"))return(0,A.join)(a,c.name)}catch{}return null}function G(a,b){return Array.isArray(a)?a.filter(a=>a?.type===b&&"string"==typeof a.text).map(a=>a.text).join("\n"):""}async function H(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=new Map,h=new Map,i=!1;for(let a=0;a<d.length;a++){let j;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let k=d[a];try{j=JSON.parse(k)}catch{continue}let l={...j,_source:b};f.push(l);let m=j.timestamp;if(!m)continue;let n=new Date(m);if(Number.isNaN(n.getTime()))continue;let o=j.type,p=j.payload??{};if("session_meta"===o){let a=p.cwd;"string"!=typeof a||c||(c=a),e.push({type:"system",...u(l,m,n,b),raw:l});continue}if("response_item"===o){let a=p.type;if("message"===a){let a=p.role,c=p.content;if("user"===a||"developer"===a){let d=G(c,"input_text");if(!d)continue;let f="developer"===a?`[developer] ${d}`:d;e.push({type:"user",...u(l,m,n,b),message:{role:"user",content:f}});continue}if("assistant"===a){let a=G(c,"output_text");if(!a)continue;let d=[{type:"text",text:a}];e.push({type:"assistant",...u(l,m,n,b),message:{role:"assistant",content:d}});continue}e.push({type:"system",...u(l,m,n,b),raw:l});continue}if("function_call"===a){let a=p.call_id,c=p.name??"function_call",d={type:"tool_use",id:a??`${m}-${c}`,name:c,input:function(a){if(!a)return{};try{return JSON.parse(a)}catch{return{}}}(p.arguments)},f={type:"assistant",...u(l,m,n,b),message:{role:"assistant",content:[d]}};e.push(f),a&&(g.set(a,d),h.set(a,n.getTime()));continue}if("function_call_output"===a){let a=p.call_id,c=a?g.get(a):void 0;if(c){let b=h.get(a)??n.getTime(),d=Math.max(0,n.getTime()-b);c.result={timestamp:m,timestampFormatted:t(n),content:"string"==typeof p.output?p.output:JSON.stringify(p.output),durationMs:d,durationFormatted:s(d)};continue}e.push({type:"system",...u(l,m,n,b),raw:l});continue}e.push({type:"system",...u(l,m,n,b),raw:l});continue}if("event_msg"===o){let a=p.type;if("task_started"===a){let a=i?"Session Resumed":"Session Started";i=!0,e.push({type:"queue-operation",...u(l,m,n,b),label:a});continue}if("exec_command_end"===a){let a=p.call_id,c=a?g.get(a):void 0;if(c){let b=p.duration,d=b?(b.secs??0)*1e3+Math.round((b.nanos??0)/1e6):Math.max(0,n.getTime()-(h.get(a)??n.getTime())),e=p.aggregated_output;c.result={timestamp:m,timestampFormatted:t(n),content:"string"==typeof e?e:JSON.stringify(e),durationMs:d,durationFormatted:s(d)};continue}e.push({type:"system",...u(l,m,n,b),raw:l});continue}if("user_message"===a||"agent_message"===a)continue;e.push({type:"system",...u(l,m,n,b),raw:l});continue}e.push({type:"system",...u(l,m,n,b),raw:l})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function I(a){let b=function(a){let b=D()[a];if(b&&(0,y.existsSync)(b))return b;let c=(0,A.join)((0,B.homedir)(),".codex","sessions"),d=new Date,e=new Date(d.getTime()-864e5);for(let b of[d,e].map(a=>{let b=String(a.getUTCFullYear()),d=String(a.getUTCMonth()+1).padStart(2,"0"),e=String(a.getUTCDate()).padStart(2,"0");return(0,A.join)(c,b,d,e)})){let c=F(b,a);if(c)return E(a,c),c}try{for(let b of(0,y.readdirSync)(c,{withFileTypes:!0}))if(b.isDirectory()){for(let d of(0,y.readdirSync)((0,A.join)(c,b.name),{withFileTypes:!0}))if(d.isDirectory())for(let e of(0,y.readdirSync)((0,A.join)(c,b.name,d.name),{withFileTypes:!0})){if(!e.isDirectory())continue;let f=F((0,A.join)(c,b.name,d.name,e.name),a);if(f)return E(a,f),f}}}catch{}return null}(a);if(!b)return null;let c=await (0,z.readFile)(b,"utf-8"),{entries:d,rawLines:e,cwd:f}=await H(c,"session");return{entries:d,rawLines:e,cwd:f,filePath:b}}let J=(0,p.runtimeCache)(a=>I(a),60,{maxSize:50});function K(a,b){let c=function(a){if(!a)return null;let b=(0,A.resolve)((0,A.join)(process.env.COPILOT_HOME||(0,A.join)((0,B.homedir)(),".copilot"),"session-state")),c=(0,A.resolve)(b,a);return c!==b&&c.startsWith(`${b}${A.sep}`)?c:null}(a);return c?(0,A.join)(c,b):null}async function L(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=new Map,h=new Map,i=!1;for(let a=0;a<d.length;a++){let j;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let k=d[a];try{j=JSON.parse(k)}catch{continue}let l={...j,_source:b};f.push(l);let m=j.timestamp;if(!m)continue;let n=new Date(m);if(Number.isNaN(n.getTime()))continue;let o=n.toISOString(),p=j.type,q=j.data??{};if("session.start"===p){let a=q.context,d=a?.cwd;"string"!=typeof d||c||(c=d);let f=i?"Session Resumed":"Session Started";i=!0,e.push({type:"queue-operation",...u(l,o,n,b),label:f});continue}if("user.message"===p){let a=q.content??"";if(!a)continue;e.push({type:"user",...u(l,o,n,b),message:{role:"user",content:a}});continue}if("system.message"===p){e.push({type:"system",...u(l,o,n,b),raw:l});continue}if("assistant.message"===p){let a=q.content??"";if(!a){e.push({type:"system",...u(l,o,n,b),raw:l});continue}let c=[{type:"text",text:a}];e.push({type:"assistant",...u(l,o,n,b),message:{role:"assistant",content:c}});continue}if("tool.execution_start"===p){let a=q.toolCallId,c=q.toolName??"tool",d=q.arguments??{},f={type:"tool_use",id:a??`${n.getTime()}-${c}`,name:c,input:d},i={type:"assistant",...u(l,o,n,b),message:{role:"assistant",content:[f]}};e.push(i),a&&(g.set(a,f),h.set(a,n.getTime()));continue}if("tool.execution_complete"===p){let a=q.toolCallId,c=a?g.get(a):void 0;if(c){let b=h.get(a)??n.getTime(),d=q.result??{},e=q.toolTelemetry??{},f=e.metrics?.commandTimeMs??e.metrics?.durationMs??null,g="number"==typeof f&&f>=0?f:Math.max(0,n.getTime()-b),i=d.detailedContent??d.content??"";c.result={timestamp:o,timestampFormatted:t(n),content:"string"==typeof i?i:JSON.stringify(i),durationMs:g,durationFormatted:s(g)};continue}e.push({type:"system",...u(l,o,n,b),raw:l});continue}e.push({type:"system",...u(l,o,n,b),raw:l})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function M(a){let b,c,d=(c=K(a,"events.jsonl"))&&(0,y.existsSync)(c)?c:null;if(!d)return null;try{b=await (0,z.readFile)(d,"utf-8")}catch{return null}let{entries:e,rawLines:f,cwd:g}=await L(b,"session");return{entries:e,rawLines:f,cwd:g??function(a){let b,c=(b=K(a,"workspace.yaml"))&&(0,y.existsSync)(b)?b:null;if(c)try{let a=(0,y.readFileSync)(c,"utf-8"),b=RegExp("^cwd\\s*:\\s*(.+?)\\s*$","m"),d=a.match(b);if(!d)return;return d[1].replace(/^['"]|['"]$/g,"")}catch{return}}(a),filePath:d}}let N=(0,p.runtimeCache)(a=>M(a),60,{maxSize:50}),O=["agent-sessions","conversations","sessions"],P=["events.jsonl","transcript.jsonl","messages.jsonl"],Q="agent-transcripts";async function R(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=new Map,h=new Map,i=!1,j=Date.now();for(let a=0;a<d.length;a++){let k;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let l=d[a];try{k=JSON.parse(l)}catch{continue}let m={...k,_source:b};if(f.push(m),!k.type&&k.role&&k.message?.content){let c=new Date(j+a),d=c.toISOString(),f=k.message.content.filter(a=>a?.type==="text"&&"string"==typeof a.text).map(a=>a.text).join("");if("user"===k.role){let a=/<user_query>\s*([\s\S]*?)\s*<\/user_query>/.exec(f),g=a?a[1]:f;g&&e.push({type:"user",...u(m,d,c,b),message:{role:"user",content:g}});continue}if("assistant"===k.role){let a=f?[{type:"text",text:f}]:[];0===a.length?e.push({type:"system",...u(m,d,c,b),raw:m}):e.push({type:"assistant",...u(m,d,c,b),message:{role:"assistant",content:a}});continue}e.push({type:"system",...u(m,d,c,b),raw:m});continue}let n=k.timestamp;if(!n)continue;let o=new Date(n);if(Number.isNaN(o.getTime()))continue;let p=o.toISOString(),q=k.type,r=k.data??{};if("session.start"===q||"sessionStart"===q||"session_start"===q){let a=r.context??r,d=a.cwd;"string"!=typeof d||c||(c=d),!c&&Array.isArray(a.workspace_roots)&&"string"==typeof a.workspace_roots[0]&&(c=a.workspace_roots[0]);let f=i?"Session Resumed":"Session Started";i=!0,e.push({type:"queue-operation",...u(m,p,o,b),label:f});continue}if("user.message"===q||"userMessage"===q){let a="string"==typeof r.content?r.content:"string"==typeof r.text?r.text:"";if(!a)continue;e.push({type:"user",...u(m,p,o,b),message:{role:"user",content:a}});continue}if("system.message"===q||"systemMessage"===q){e.push({type:"system",...u(m,p,o,b),raw:m});continue}if("assistant.message"===q||"assistantMessage"===q){let a="string"==typeof r.content?r.content:"string"==typeof r.text?r.text:"";if(!a){e.push({type:"system",...u(m,p,o,b),raw:m});continue}let c=[{type:"text",text:a}];e.push({type:"assistant",...u(m,p,o,b),message:{role:"assistant",content:c}});continue}if("tool.execution_start"===q||"tool.executionStart"===q||"preToolUse"===q){let a=r.toolCallId??r.tool_use_id,c=r.toolName??r.tool_name??"tool",d=r.arguments??r.tool_input??{},f={type:"tool_use",id:a??`${o.getTime()}-${c}`,name:c,input:d},i={type:"assistant",...u(m,p,o,b),message:{role:"assistant",content:[f]}};e.push(i),a&&(g.set(a,f),h.set(a,o.getTime()));continue}if("tool.execution_complete"===q||"tool.executionComplete"===q||"postToolUse"===q){let a=r.toolCallId??r.tool_use_id,c=a?g.get(a):void 0;if(c){let b=h.get(a)??o.getTime(),d=r.result??{},e=r.duration,f="number"==typeof e&&e>=0?e:Math.max(0,o.getTime()-b),g=d.detailedContent??d.content??r.tool_output??"";c.result={timestamp:p,timestampFormatted:t(o),content:"string"==typeof g?g:JSON.stringify(g),durationMs:f,durationFormatted:s(f)};continue}e.push({type:"system",...u(m,p,o,b),raw:m});continue}e.push({type:"system",...u(m,p,o,b),raw:m})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function S(a){let b,c=function(a){let b=function(a){if(!a)return null;let b=(0,A.resolve)(process.env.CURSOR_HOME||(0,A.join)((0,B.homedir)(),".cursor")),c=(0,A.resolve)(b,"projects"),d=[];try{d=(0,y.readdirSync)(c,{withFileTypes:!0})}catch{}for(let b of d){if(!b.isDirectory())continue;let d=(0,A.resolve)(c,b.name,Q,a),e=(0,A.resolve)(c,b.name,Q);if(d!==e&&d.startsWith(`${e}${A.sep}`)&&(0,y.existsSync)(d))return d}for(let c of O){let d=(0,A.resolve)(b,c),e=(0,A.resolve)(d,a);if(e!==d&&e.startsWith(`${d}${A.sep}`)&&(0,y.existsSync)(e))return e}return null}(a);if(!b)return null;let c=(0,A.join)(b,`${(0,A.basename)(b)}.jsonl`);if((0,y.existsSync)(c))return c;for(let a of P){let c=(0,A.join)(b,a);if((0,y.existsSync)(c))return c}return null}(a);if(!c)return null;try{b=await (0,z.readFile)(c,"utf-8")}catch{return null}let{entries:d,rawLines:e,cwd:f}=await R(b,"session");return{entries:d,rawLines:e,cwd:f,filePath:c}}let T=(0,p.runtimeCache)(a=>S(a),60,{maxSize:50});var U=a.i(74533);function V(a){try{let b=(0,U.execFileSync)("opencode",["db","--format","json",a],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]});if(!b.trim())return[];let c=JSON.parse(b);if(!Array.isArray(c))return null;return c}catch{return null}}function W(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function X(a){if("string"!=typeof a||0===a.length)return null;try{let b=JSON.parse(a);return W(b)?b:null}catch{return null}}async function Y(a){if(!a||!/^[A-Za-z0-9_-]+$/.test(a))return null;let b=V(`SELECT id, project_id, slug, directory, title, time_created, time_updated FROM session WHERE id = '${a}'`);if(!b||0===b.length)return null;let c=b[0],d=V(`SELECT id, session_id, time_created, time_updated, data FROM message WHERE session_id = '${a}' ORDER BY time_created ASC`),e=V(`SELECT id, message_id, session_id, time_created, time_updated, data FROM part WHERE session_id = '${a}' ORDER BY time_created ASC`);if(!d)return{entries:[],rawLines:[],cwd:c.directory??void 0,filePath:`opencode://${a}`};let f=new Map;for(let a of e??[]){let b=f.get(a.message_id);b||(b=[],f.set(a.message_id,b)),b.push(a)}let g=[],h=[];for(let a of d){let b=f.get(a.id)??[];g.push(function(a,b,c){let d=X(a.data)??{},e="string"==typeof d.role?d.role:"system",f=new Date(a.time_created),g=f.toISOString(),h=u({uuid:a.id,parentUuid:null},g,f,c),i=[],j="";for(let a of b){let b=X(a.data);if(!b)continue;let c="string"==typeof b.type?b.type:"unknown";if("text"===c){let a="string"==typeof b.text?b.text:"string"==typeof b.content?b.content:"";a&&(i.push({type:"text",text:a}),j+=(j?"\n":"")+a);continue}if("tool"===c){let c="string"==typeof b.tool?b.tool:"string"==typeof b.name?b.name:"tool",d=W(b.state)?b.state:null,e=d&&W(d.input)?d.input:W(b.input)?b.input:W(b.args)?b.args:{},f={type:"tool_use",id:a.id,name:c,input:e},g=d&&"string"==typeof d.status?d.status:"";if(d&&("completed"===g||"error"===g)){let b=("error"===g&&"string"==typeof d.error?d.error:null)??d.output,c="string"==typeof b?b:null!=b?JSON.stringify(b):"",e=W(d.time)?d.time:{},h="number"==typeof e.start?e.start:a.time_created,i="number"==typeof e.end?e.end:a.time_updated,j=Math.max(0,i-h),k=new Date(i);f.result={timestamp:k.toISOString(),timestampFormatted:t(k),content:c,durationMs:j,durationFormatted:s(j)}}i.push(f);continue}i.push({type:"text",text:`[opencode ${c}]`})}if("user"===e)return{...h,type:"user",message:{role:"user",content:j}};if("assistant"===e){let a=W(d.model)?d.model:null,b=a&&"string"==typeof a.modelID?a.modelID:void 0;return{...h,type:"assistant",message:{role:"assistant",content:i,model:b}}}return{...h,type:"system",raw:{id:a.id,role:e,parts:i}}}(a,b,"session"));let c=X(a.data);h.push({id:a.id,session_id:a.session_id,time_created:a.time_created,data:c??a.data})}return{entries:g,rawLines:h,cwd:c.directory??void 0,filePath:`opencode://${a}`}}let Z=(0,p.runtimeCache)(a=>Y(a),30,{maxSize:50}),$=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,_=/^[\d-]+T[\d-]+Z_([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/i;async function aa(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=!1;for(let a=0;a<d.length;a++){let h;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let i=d[a];try{h=JSON.parse(i)}catch{continue}let j={...h,_source:b};f.push(j);let k=h.timestamp;if(!k)continue;let l=new Date(k);if(Number.isNaN(l.getTime()))continue;let m=l.toISOString(),n=h.type;if("session"===n){"string"!=typeof h.cwd||c||(c=h.cwd);let a=g?"Session Resumed":"Session Started";g=!0,e.push({type:"queue-operation",...u(j,m,l,b),label:a});continue}if("message"===n&&h.message&&"object"==typeof h.message){let a=h.message.role,c=h.message.content;if("user"===a){let a=function(a){if(!Array.isArray(a))return"";let b=[];for(let c of a)c?.type==="text"&&"string"==typeof c.text&&b.push(c.text);return b.join("\n\n")}(c);if(!a)continue;e.push({type:"user",...u(j,m,l,b),message:{role:"user",content:a}});continue}if("assistant"===a){let a=function(a){if(!Array.isArray(a))return[];let b=[];for(let c of a)c?.type==="text"&&"string"==typeof c.text&&c.text.length>0&&b.push({type:"text",text:c.text}),c?.type==="thinking"&&"string"==typeof c.thinking&&c.thinking.length>0&&b.push({type:"text",text:`[thinking] ${c.thinking}`});return b}(c);if(0===a.length){e.push({type:"system",...u(j,m,l,b),raw:j});continue}e.push({type:"assistant",...u(j,m,l,b),message:{role:"assistant",content:a}});continue}e.push({type:"system",...u(j,m,l,b),raw:j});continue}e.push({type:"system",...u(j,m,l,b),raw:j})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function ab(a){let b,c,d=function(a){let b;if(!$.test(a))return null;let c=(0,A.resolve)(process.env.PI_SESSIONS_DIR||(0,A.join)((0,B.homedir)(),".pi","agent","sessions"));try{b=(0,y.readdirSync)(c)}catch{return null}for(let d of b){let b,e=(0,A.resolve)(c,d);if(e.startsWith(`${c}${A.sep}`)){try{b=(0,y.readdirSync)(e)}catch{continue}for(let c of b){let b=_.exec(c);if(!b||b[1].toLowerCase()!==a.toLowerCase())continue;let d=(0,A.resolve)(e,c);if(d.startsWith(`${e}${A.sep}`)&&(0,y.existsSync)(d))return d}}}return null}(a);if(!d)return null;try{b=await (0,z.readFile)(d,"utf-8")}catch{return null}try{c=await aa(b,"session")}catch{return null}return{entries:c.entries,rawLines:c.rawLines,cwd:c.cwd,filePath:d}}let ac=(0,p.runtimeCache)(a=>ab(a),60,{maxSize:50}),ad=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,ae=/^session-(.+)-([0-9a-f]{8})\.jsonl$/i;async function af(a,b="session",c){let d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=!1;for(let a=0;a<d.length;a++){let c;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let h=d[a];try{c=JSON.parse(h)}catch{continue}let i={...c,_source:b};if(f.push(i),"string"==typeof c.sessionId&&"string"==typeof c.startTime){let a=new Date(c.startTime);if(!Number.isNaN(a.getTime())){let c=g?"Session Resumed":"Session Started";g=!0,e.push({type:"queue-operation",...u(i,a.toISOString(),a,b),label:c})}continue}if(c.$set)continue;let j=c.timestamp;if(!j)continue;let k=new Date(j);if(Number.isNaN(k.getTime()))continue;let l=k.toISOString(),m=c.type;if("user"===m){let a=function(a){if(!Array.isArray(a))return"";let b=[];for(let c of a)"string"==typeof c?.text&&b.push(c.text);return b.join("\n\n")}(c.content);if(!a)continue;e.push({type:"user",...u(i,l,k,b),message:{role:"user",content:a}});continue}if("assistant"===m||"model"===m){let a=function(a){if(!Array.isArray(a))return[];let b=[];for(let c of a)"string"==typeof c?.text&&c.text.length>0&&b.push({type:"text",text:c.text});return b}(c.content);if(0===a.length){e.push({type:"system",...u(i,l,k,b),raw:i});continue}e.push({type:"assistant",...u(i,l,k,b),message:{role:"assistant",content:a}});continue}e.push({type:"system",...u(i,l,k,b),raw:i})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function ag(a){let b,c,d=function(a){let b;if(!ad.test(a))return null;let c=(0,A.resolve)(process.env.GEMINI_SESSIONS_DIR||(0,A.join)((0,B.homedir)(),".gemini","tmp")),d=a.slice(0,8).toLowerCase();try{b=(0,y.readdirSync)(c)}catch{return null}for(let e of b){let b,f=(0,A.resolve)(c,e);if(!f.startsWith(`${c}${A.sep}`))continue;let g=(0,A.resolve)(f,"chats");try{b=(0,y.readdirSync)(g)}catch{continue}for(let c of b){let b=ae.exec(c);if(!b||b[2].toLowerCase()!==d)continue;let e=(0,A.resolve)(g,c);if(!e.startsWith(`${g}${A.sep}`)||!(0,y.existsSync)(e))continue;let f=function(a){let b;try{b=(0,y.openSync)(a,"r")}catch{return null}try{let a=Buffer.alloc(4096),c=(0,y.readSync)(b,a,0,a.length,0);if(0===c)return null;let d=a.subarray(0,c).toString("utf-8"),e=d.indexOf("\n");return e>=0?d.slice(0,e):d}catch{return null}finally{try{(0,y.closeSync)(b)}catch{}}}(e);if(f)try{let b=JSON.parse(f);if("string"==typeof b.sessionId&&b.sessionId.toLowerCase()===a.toLowerCase())return e}catch{continue}}}return null}(a);if(!d)return null;try{b=await (0,z.readFile)(d,"utf-8")}catch{return null}let e=function(a){let b=(0,A.resolve)(a,".."),c=(0,A.resolve)(b,".."),d=(0,A.join)(c,".project_root");try{let a=(0,y.readFileSync)(d,"utf-8").trim();return a.length>0?a:void 0}catch{return}}(d);try{c=await af(b,"session",e)}catch{return null}return{entries:c.entries,rawLines:c.rawLines,cwd:c.cwd,filePath:d}}let ah=(0,p.runtimeCache)(a=>ag(a),60,{maxSize:50});var ai=a.i(71130),aj=a.i(893),ak=a.i(24282);function al({cli:a}){let c=(0,ak.getCliLabel)(a),d=(0,ak.getCliBadgeClasses)(a);return(0,b.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-mono font-medium uppercase tracking-wider border ${d}`,title:`Agent CLI: ${c}`,children:c})}async function am({params:a}){let d,e,{name:f,sessionId:g}=await a;try{(0,n.resolveProjectPath)(f)}catch{(0,j.notFound)()}let k=(0,m.decodeFolderName)(f),l=-1===(e=g.indexOf("/"))?g:g.slice(0,e);n.UUID_RE.test(l)||/^ses_[A-Za-z0-9]+$/.test(l)||(0,j.notFound)();let o=null,p=null,q=null,r="claude";try{let a=await x(f,l);o=a.entries,p=a.rawLines}catch(a){if("ENOENT"===a.code){let a=await J(l);if(a)o=a.entries,p=a.rawLines,d=a.cwd,r="codex";else{let a=await N(l);if(a)o=a.entries,p=a.rawLines,d=a.cwd,r="copilot";else{let a=await T(l);if(a)o=a.entries,p=a.rawLines,d=a.cwd,r="cursor";else{let a=await Z(l);if(a)o=a.entries,p=a.rawLines,d=a.cwd,r="opencode";else{let a=await ac(l);if(a)o=a.entries,p=a.rawLines,d=a.cwd,r="pi";else{let a=await ah(l);a?(o=a.entries,p=a.rawLines,d=a.cwd,r="gemini"):q="Session log file not found."}}}}}}else q="Failed to read session log."}let s="claude"!==r,t="codex"===r?`OpenAI Codex${d?` \xb7 ${d}`:""}`:"copilot"===r?`GitHub Copilot${d?` \xb7 ${d}`:""}`:"cursor"===r?`Cursor Agent${d?` \xb7 ${d}`:""}`:"opencode"===r?`OpenCode${d?` \xb7 ${d}`:""}`:"pi"===r?`Pi${d?` \xb7 ${d}`:""}`:"gemini"===r?`Gemini CLI${d?` \xb7 ${d}`:""}`:k;return(0,b.jsx)("main",{className:"min-h-screen bg-background",children:(0,b.jsxs)("div",{className:"container mx-auto p-8",children:[(0,b.jsxs)(c.default,{href:s?"/policies?tab=activity":`/project/${encodeURIComponent(f)}`,className:"inline-flex items-center gap-2 text-muted-foreground hover:text-foreground mb-6 transition-colors",children:[(0,b.jsx)(h,{className:"w-4 h-4"}),(0,b.jsx)("span",{children:s?"Back to Activity":"Back to Sessions"})]}),(0,b.jsxs)("div",{className:"mb-8",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 mb-2",children:[(0,b.jsx)("h1",{className:"text-4xl font-bold text-foreground",children:"Session Log"}),(0,b.jsx)(al,{cli:r})]}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("p",{className:"text-muted-foreground",children:[(0,b.jsxs)("span",{className:"font-medium",children:[s?"CLI":"Project",":"]})," ",t]}),(0,b.jsxs)("p",{className:"text-muted-foreground break-words break-all inline-flex items-center gap-1",children:[(0,b.jsx)("span",{className:"font-medium",children:"Session:"})," ",l,(0,b.jsx)(aj.CopyButton,{text:l})]}),o&&p&&(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("p",{className:"text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium",children:p.length})," log lines"]}),(0,b.jsxs)("a",{href:`/api/download/${encodeURIComponent(f)}/${encodeURIComponent(l)}?cli=${r}`,download:!0,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-md bg-muted text-muted-foreground hover:bg-muted/80 hover:text-foreground transition-colors",children:[(0,b.jsx)(i,{className:"w-4 h-4"}),"Download Logs"]})]})]})]}),q&&(0,b.jsx)("div",{className:"bg-card text-card-foreground rounded-lg border border-destructive/50 p-6 shadow-sm",children:(0,b.jsx)("p",{className:"text-destructive text-center py-8",children:q})}),!q&&o&&(0,b.jsx)(ai.default,{entries:o,projectName:s?d??("codex"===r?"OpenAI Codex":"copilot"===r?"GitHub Copilot":"cursor"===r?"Cursor Agent":"opencode"===r?"OpenCode":"pi"===r?"Pi":"Gemini CLI"):k,sessionId:l})]})})}a.s(["default",0,am,"dynamic",0,"force-dynamic"],41190)},87330,a=>{a.n(a.i(41190))}];
1
+ module.exports=[8174,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/lucide-react/dist/esm/Icon.mjs <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/lucide-react/dist/esm/Icon.mjs <module evaluation>","default")},90697,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/lucide-react/dist/esm/Icon.mjs from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/lucide-react/dist/esm/Icon.mjs","default")},53808,a=>{"use strict";a.i(8174);var b=a.i(90697);a.n(b)},14066,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/lazy-log-viewer.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/lazy-log-viewer.tsx <module evaluation>","default")},19597,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/lazy-log-viewer.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/lazy-log-viewer.tsx","default")},71130,a=>{"use strict";a.i(14066);var b=a.i(19597);a.n(b)},85540,a=>{"use strict";a.s(["CopyButton",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call CopyButton() from the server but CopyButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/copy-button.tsx <module evaluation>","CopyButton")},35770,a=>{"use strict";a.s(["CopyButton",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call CopyButton() from the server but CopyButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/copy-button.tsx","CopyButton")},893,a=>{"use strict";a.i(85540);var b=a.i(35770);a.n(b)},41190,a=>{"use strict";var b=a.i(7997),c=a.i(95936),d=a.i(717);let e=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var f=a.i(53808);let g=(a,b)=>{let c=(0,d.forwardRef)(({className:c,...g},h)=>(0,d.createElement)(f.default,{ref:h,iconNode:b,className:((...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim())(`lucide-${e(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,c),...g}));return c.displayName=e(a),c},h=g("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]),i=g("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);a.i(70396);var j=a.i(73727),k=a.i(83397),l=a.i(2157),m=a.i(12714),n=a.i(50227),o=a.i(60526),p=a.i(34900),q=a.i(92246);let r=(0,n.join)((0,o.homedir)(),".failproofai","cache","codex-session-paths.json");function s(){try{if(!(0,l.existsSync)(r))return{};return JSON.parse((0,l.readFileSync)(r,"utf-8"))}catch{return{}}}function t(a,b){try{(0,l.mkdirSync)((0,n.dirname)(r),{recursive:!0});let c=s();c[a]=b,(0,l.writeFileSync)(r,JSON.stringify(c),"utf-8")}catch{}}function u(a,b){try{for(let c of(0,l.readdirSync)(a,{withFileTypes:!0}))if(c.isFile()&&c.name.includes(b)&&c.name.endsWith(".jsonl"))return(0,n.join)(a,c.name)}catch{}return null}function v(a,b){return Array.isArray(a)?a.filter(a=>a?.type===b&&"string"==typeof a.text).map(a=>a.text).join("\n"):""}async function w(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=new Map,h=new Map,i=!1;for(let a=0;a<d.length;a++){let j;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let l=d[a];try{j=JSON.parse(l)}catch{continue}let m={...j,_source:b};f.push(m);let n=j.timestamp;if(!n)continue;let o=new Date(n);if(Number.isNaN(o.getTime()))continue;let p=j.type,r=j.payload??{};if("session_meta"===p){let a=r.cwd;"string"!=typeof a||c||(c=a),e.push({type:"system",...(0,k.baseEntry)(m,n,o,b),raw:m});continue}if("response_item"===p){let a=r.type;if("message"===a){let a=r.role,c=r.content;if("user"===a||"developer"===a){let d=v(c,"input_text");if(!d)continue;let f="developer"===a?`[developer] ${d}`:d;e.push({type:"user",...(0,k.baseEntry)(m,n,o,b),message:{role:"user",content:f}});continue}if("assistant"===a){let a=v(c,"output_text");if(!a)continue;let d=[{type:"text",text:a}];e.push({type:"assistant",...(0,k.baseEntry)(m,n,o,b),message:{role:"assistant",content:d}});continue}e.push({type:"system",...(0,k.baseEntry)(m,n,o,b),raw:m});continue}if("function_call"===a){let a=r.call_id,c=r.name??"function_call",d={type:"tool_use",id:a??`${n}-${c}`,name:c,input:function(a){if(!a)return{};try{return JSON.parse(a)}catch{return{}}}(r.arguments)},f={type:"assistant",...(0,k.baseEntry)(m,n,o,b),message:{role:"assistant",content:[d]}};e.push(f),a&&(g.set(a,d),h.set(a,o.getTime()));continue}if("function_call_output"===a){let a=r.call_id,c=a?g.get(a):void 0;if(c){let b=h.get(a)??o.getTime(),d=Math.max(0,o.getTime()-b);c.result={timestamp:n,timestampFormatted:(0,k.formatTimestamp)(o),content:"string"==typeof r.output?r.output:JSON.stringify(r.output),durationMs:d,durationFormatted:(0,q.formatDuration)(d)};continue}e.push({type:"system",...(0,k.baseEntry)(m,n,o,b),raw:m});continue}e.push({type:"system",...(0,k.baseEntry)(m,n,o,b),raw:m});continue}if("event_msg"===p){let a=r.type;if("task_started"===a){let a=i?"Session Resumed":"Session Started";i=!0,e.push({type:"queue-operation",...(0,k.baseEntry)(m,n,o,b),label:a});continue}if("exec_command_end"===a){let a=r.call_id,c=a?g.get(a):void 0;if(c){let b=r.duration,d=b?(b.secs??0)*1e3+Math.round((b.nanos??0)/1e6):Math.max(0,o.getTime()-(h.get(a)??o.getTime())),e=r.aggregated_output;c.result={timestamp:n,timestampFormatted:(0,k.formatTimestamp)(o),content:"string"==typeof e?e:JSON.stringify(e),durationMs:d,durationFormatted:(0,q.formatDuration)(d)};continue}e.push({type:"system",...(0,k.baseEntry)(m,n,o,b),raw:m});continue}if("user_message"===a||"agent_message"===a)continue;e.push({type:"system",...(0,k.baseEntry)(m,n,o,b),raw:m});continue}e.push({type:"system",...(0,k.baseEntry)(m,n,o,b),raw:m})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function x(a){let b=function(a){let b=s()[a];if(b&&(0,l.existsSync)(b))return b;let c=(0,n.join)((0,o.homedir)(),".codex","sessions"),d=new Date,e=new Date(d.getTime()-864e5);for(let b of[d,e].map(a=>{let b=String(a.getUTCFullYear()),d=String(a.getUTCMonth()+1).padStart(2,"0"),e=String(a.getUTCDate()).padStart(2,"0");return(0,n.join)(c,b,d,e)})){let c=u(b,a);if(c)return t(a,c),c}try{for(let b of(0,l.readdirSync)(c,{withFileTypes:!0}))if(b.isDirectory()){for(let d of(0,l.readdirSync)((0,n.join)(c,b.name),{withFileTypes:!0}))if(d.isDirectory())for(let e of(0,l.readdirSync)((0,n.join)(c,b.name,d.name),{withFileTypes:!0})){if(!e.isDirectory())continue;let f=u((0,n.join)(c,b.name,d.name,e.name),a);if(f)return t(a,f),f}}}catch{}return null}(a);if(!b)return null;let c=await (0,m.readFile)(b,"utf-8"),{entries:d,rawLines:e,cwd:f}=await w(c,"session");return{entries:d,rawLines:e,cwd:f,filePath:b}}let y=(0,p.runtimeCache)(a=>x(a),60,{maxSize:50});function z(a,b){let c=function(a){if(!a)return null;let b=(0,n.resolve)((0,n.join)(process.env.COPILOT_HOME||(0,n.join)((0,o.homedir)(),".copilot"),"session-state")),c=(0,n.resolve)(b,a);return c!==b&&c.startsWith(`${b}${n.sep}`)?c:null}(a);return c?(0,n.join)(c,b):null}async function A(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=new Map,h=new Map,i=!1;for(let a=0;a<d.length;a++){let j;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let l=d[a];try{j=JSON.parse(l)}catch{continue}let m={...j,_source:b};f.push(m);let n=j.timestamp;if(!n)continue;let o=new Date(n);if(Number.isNaN(o.getTime()))continue;let p=o.toISOString(),r=j.type,s=j.data??{};if("session.start"===r){let a=s.context,d=a?.cwd;"string"!=typeof d||c||(c=d);let f=i?"Session Resumed":"Session Started";i=!0,e.push({type:"queue-operation",...(0,k.baseEntry)(m,p,o,b),label:f});continue}if("user.message"===r){let a=s.content??"";if(!a)continue;e.push({type:"user",...(0,k.baseEntry)(m,p,o,b),message:{role:"user",content:a}});continue}if("system.message"===r){e.push({type:"system",...(0,k.baseEntry)(m,p,o,b),raw:m});continue}if("assistant.message"===r){let a=s.content??"";if(!a){e.push({type:"system",...(0,k.baseEntry)(m,p,o,b),raw:m});continue}let c=[{type:"text",text:a}];e.push({type:"assistant",...(0,k.baseEntry)(m,p,o,b),message:{role:"assistant",content:c}});continue}if("tool.execution_start"===r){let a=s.toolCallId,c=s.toolName??"tool",d=s.arguments??{},f={type:"tool_use",id:a??`${o.getTime()}-${c}`,name:c,input:d},i={type:"assistant",...(0,k.baseEntry)(m,p,o,b),message:{role:"assistant",content:[f]}};e.push(i),a&&(g.set(a,f),h.set(a,o.getTime()));continue}if("tool.execution_complete"===r){let a=s.toolCallId,c=a?g.get(a):void 0;if(c){let b=h.get(a)??o.getTime(),d=s.result??{},e=s.toolTelemetry??{},f=e.metrics?.commandTimeMs??e.metrics?.durationMs??null,g="number"==typeof f&&f>=0?f:Math.max(0,o.getTime()-b),i=d.detailedContent??d.content??"";c.result={timestamp:p,timestampFormatted:(0,k.formatTimestamp)(o),content:"string"==typeof i?i:JSON.stringify(i),durationMs:g,durationFormatted:(0,q.formatDuration)(g)};continue}e.push({type:"system",...(0,k.baseEntry)(m,p,o,b),raw:m});continue}e.push({type:"system",...(0,k.baseEntry)(m,p,o,b),raw:m})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function B(a){let b,c,d=(c=z(a,"events.jsonl"))&&(0,l.existsSync)(c)?c:null;if(!d)return null;try{b=await (0,m.readFile)(d,"utf-8")}catch{return null}let{entries:e,rawLines:f,cwd:g}=await A(b,"session");return{entries:e,rawLines:f,cwd:g??function(a){let b,c=(b=z(a,"workspace.yaml"))&&(0,l.existsSync)(b)?b:null;if(c)try{let a=(0,l.readFileSync)(c,"utf-8"),b=RegExp("^cwd\\s*:\\s*(.+?)\\s*$","m"),d=a.match(b);if(!d)return;return d[1].replace(/^['"]|['"]$/g,"")}catch{return}}(a),filePath:d}}let C=(0,p.runtimeCache)(a=>B(a),60,{maxSize:50}),D=["agent-sessions","conversations","sessions"],E=["events.jsonl","transcript.jsonl","messages.jsonl"],F="agent-transcripts";async function G(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=new Map,h=new Map,i=!1,j=Date.now();for(let a=0;a<d.length;a++){let l;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let m=d[a];try{l=JSON.parse(m)}catch{continue}let n={...l,_source:b};if(f.push(n),!l.type&&l.role&&l.message?.content){let c=new Date(j+a),d=c.toISOString(),f=l.message.content.filter(a=>a?.type==="text"&&"string"==typeof a.text).map(a=>a.text).join("");if("user"===l.role){let a=/<user_query>\s*([\s\S]*?)\s*<\/user_query>/.exec(f),g=a?a[1]:f;g&&e.push({type:"user",...(0,k.baseEntry)(n,d,c,b),message:{role:"user",content:g}});continue}if("assistant"===l.role){let a=f?[{type:"text",text:f}]:[];0===a.length?e.push({type:"system",...(0,k.baseEntry)(n,d,c,b),raw:n}):e.push({type:"assistant",...(0,k.baseEntry)(n,d,c,b),message:{role:"assistant",content:a}});continue}e.push({type:"system",...(0,k.baseEntry)(n,d,c,b),raw:n});continue}let o=l.timestamp;if(!o)continue;let p=new Date(o);if(Number.isNaN(p.getTime()))continue;let r=p.toISOString(),s=l.type,t=l.data??{};if("session.start"===s||"sessionStart"===s||"session_start"===s){let a=t.context??t,d=a.cwd;"string"!=typeof d||c||(c=d),!c&&Array.isArray(a.workspace_roots)&&"string"==typeof a.workspace_roots[0]&&(c=a.workspace_roots[0]);let f=i?"Session Resumed":"Session Started";i=!0,e.push({type:"queue-operation",...(0,k.baseEntry)(n,r,p,b),label:f});continue}if("user.message"===s||"userMessage"===s){let a="string"==typeof t.content?t.content:"string"==typeof t.text?t.text:"";if(!a)continue;e.push({type:"user",...(0,k.baseEntry)(n,r,p,b),message:{role:"user",content:a}});continue}if("system.message"===s||"systemMessage"===s){e.push({type:"system",...(0,k.baseEntry)(n,r,p,b),raw:n});continue}if("assistant.message"===s||"assistantMessage"===s){let a="string"==typeof t.content?t.content:"string"==typeof t.text?t.text:"";if(!a){e.push({type:"system",...(0,k.baseEntry)(n,r,p,b),raw:n});continue}let c=[{type:"text",text:a}];e.push({type:"assistant",...(0,k.baseEntry)(n,r,p,b),message:{role:"assistant",content:c}});continue}if("tool.execution_start"===s||"tool.executionStart"===s||"preToolUse"===s){let a=t.toolCallId??t.tool_use_id,c=t.toolName??t.tool_name??"tool",d=t.arguments??t.tool_input??{},f={type:"tool_use",id:a??`${p.getTime()}-${c}`,name:c,input:d},i={type:"assistant",...(0,k.baseEntry)(n,r,p,b),message:{role:"assistant",content:[f]}};e.push(i),a&&(g.set(a,f),h.set(a,p.getTime()));continue}if("tool.execution_complete"===s||"tool.executionComplete"===s||"postToolUse"===s){let a=t.toolCallId??t.tool_use_id,c=a?g.get(a):void 0;if(c){let b=h.get(a)??p.getTime(),d=t.result??{},e=t.duration,f="number"==typeof e&&e>=0?e:Math.max(0,p.getTime()-b),g=d.detailedContent??d.content??t.tool_output??"";c.result={timestamp:r,timestampFormatted:(0,k.formatTimestamp)(p),content:"string"==typeof g?g:JSON.stringify(g),durationMs:f,durationFormatted:(0,q.formatDuration)(f)};continue}e.push({type:"system",...(0,k.baseEntry)(n,r,p,b),raw:n});continue}e.push({type:"system",...(0,k.baseEntry)(n,r,p,b),raw:n})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function H(a){let b,c=function(a){let b=function(a){if(!a)return null;let b=(0,n.resolve)(process.env.CURSOR_HOME||(0,n.join)((0,o.homedir)(),".cursor")),c=(0,n.resolve)(b,"projects"),d=[];try{d=(0,l.readdirSync)(c,{withFileTypes:!0})}catch{}for(let b of d){if(!b.isDirectory())continue;let d=(0,n.resolve)(c,b.name,F,a),e=(0,n.resolve)(c,b.name,F);if(d!==e&&d.startsWith(`${e}${n.sep}`)&&(0,l.existsSync)(d))return d}for(let c of D){let d=(0,n.resolve)(b,c),e=(0,n.resolve)(d,a);if(e!==d&&e.startsWith(`${d}${n.sep}`)&&(0,l.existsSync)(e))return e}return null}(a);if(!b)return null;let c=(0,n.join)(b,`${(0,n.basename)(b)}.jsonl`);if((0,l.existsSync)(c))return c;for(let a of E){let c=(0,n.join)(b,a);if((0,l.existsSync)(c))return c}return null}(a);if(!c)return null;try{b=await (0,m.readFile)(c,"utf-8")}catch{return null}let{entries:d,rawLines:e,cwd:f}=await G(b,"session");return{entries:d,rawLines:e,cwd:f,filePath:c}}let I=(0,p.runtimeCache)(a=>H(a),60,{maxSize:50});var J=a.i(74533);function K(a){try{let b=(0,J.execFileSync)("opencode",["db","--format","json",a],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]});if(!b.trim())return[];let c=JSON.parse(b);if(!Array.isArray(c))return null;return c}catch{return null}}function L(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function M(a){if("string"!=typeof a||0===a.length)return null;try{let b=JSON.parse(a);return L(b)?b:null}catch{return null}}async function N(a){if(!a||!/^[A-Za-z0-9_-]+$/.test(a))return null;let b=K(`SELECT id, project_id, slug, directory, title, time_created, time_updated FROM session WHERE id = '${a}'`);if(!b||0===b.length)return null;let c=b[0],d=K(`SELECT id, session_id, time_created, time_updated, data FROM message WHERE session_id = '${a}' ORDER BY time_created ASC`),e=K(`SELECT id, message_id, session_id, time_created, time_updated, data FROM part WHERE session_id = '${a}' ORDER BY time_created ASC`);if(!d)return{entries:[],rawLines:[],cwd:c.directory??void 0,filePath:`opencode://${a}`};let f=new Map;for(let a of e??[]){let b=f.get(a.message_id);b||(b=[],f.set(a.message_id,b)),b.push(a)}let g=[],h=[];for(let a of d){let b=f.get(a.id)??[];g.push(function(a,b,c){let d=M(a.data)??{},e="string"==typeof d.role?d.role:"system",f=new Date(a.time_created),g=f.toISOString(),h={uuid:a.id,parentUuid:null},i=(0,k.baseEntry)(h,g,f,c),j=[],l="";for(let a of b){let b=M(a.data);if(!b)continue;let c="string"==typeof b.type?b.type:"unknown";if("text"===c){let a="string"==typeof b.text?b.text:"string"==typeof b.content?b.content:"";a&&(j.push({type:"text",text:a}),l+=(l?"\n":"")+a);continue}if("tool"===c){let c="string"==typeof b.tool?b.tool:"string"==typeof b.name?b.name:"tool",d=L(b.state)?b.state:null,e=d&&L(d.input)?d.input:L(b.input)?b.input:L(b.args)?b.args:{},f={type:"tool_use",id:a.id,name:c,input:e},g=d&&"string"==typeof d.status?d.status:"";if(d&&("completed"===g||"error"===g)){let b=("error"===g&&"string"==typeof d.error?d.error:null)??d.output,c="string"==typeof b?b:null!=b?JSON.stringify(b):"",e=L(d.time)?d.time:{},h="number"==typeof e.start?e.start:a.time_created,i="number"==typeof e.end?e.end:a.time_updated,j=Math.max(0,i-h),l=new Date(i);f.result={timestamp:l.toISOString(),timestampFormatted:(0,k.formatTimestamp)(l),content:c,durationMs:j,durationFormatted:(0,q.formatDuration)(j)}}j.push(f);continue}j.push({type:"text",text:`[opencode ${c}]`})}if("user"===e)return{...i,type:"user",message:{role:"user",content:l}};if("assistant"===e){let a=L(d.model)?d.model:null,b=a&&"string"==typeof a.modelID?a.modelID:void 0;return{...i,type:"assistant",message:{role:"assistant",content:j,model:b}}}return{...i,type:"system",raw:{id:a.id,role:e,parts:j}}}(a,b,"session"));let c=M(a.data);h.push({id:a.id,session_id:a.session_id,time_created:a.time_created,data:c??a.data})}return{entries:g,rawLines:h,cwd:c.directory??void 0,filePath:`opencode://${a}`}}let O=(0,p.runtimeCache)(a=>N(a),30,{maxSize:50}),P=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Q=/^[\d-]+T[\d-]+Z_([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/i;async function R(a,b="session"){let c,d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=!1;for(let a=0;a<d.length;a++){let h;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let i=d[a];try{h=JSON.parse(i)}catch{continue}let j={...h,_source:b};f.push(j);let l=h.timestamp;if(!l)continue;let m=new Date(l);if(Number.isNaN(m.getTime()))continue;let n=m.toISOString(),o=h.type;if("session"===o){"string"!=typeof h.cwd||c||(c=h.cwd);let a=g?"Session Resumed":"Session Started";g=!0,e.push({type:"queue-operation",...(0,k.baseEntry)(j,n,m,b),label:a});continue}if("message"===o&&h.message&&"object"==typeof h.message){let a=h.message.role,c=h.message.content;if("user"===a){let a=function(a){if(!Array.isArray(a))return"";let b=[];for(let c of a)c?.type==="text"&&"string"==typeof c.text&&b.push(c.text);return b.join("\n\n")}(c);if(!a)continue;e.push({type:"user",...(0,k.baseEntry)(j,n,m,b),message:{role:"user",content:a}});continue}if("assistant"===a){let a=function(a){if(!Array.isArray(a))return[];let b=[];for(let c of a)c?.type==="text"&&"string"==typeof c.text&&c.text.length>0&&b.push({type:"text",text:c.text}),c?.type==="thinking"&&"string"==typeof c.thinking&&c.thinking.length>0&&b.push({type:"text",text:`[thinking] ${c.thinking}`});return b}(c);if(0===a.length){e.push({type:"system",...(0,k.baseEntry)(j,n,m,b),raw:j});continue}e.push({type:"assistant",...(0,k.baseEntry)(j,n,m,b),message:{role:"assistant",content:a}});continue}e.push({type:"system",...(0,k.baseEntry)(j,n,m,b),raw:j});continue}e.push({type:"system",...(0,k.baseEntry)(j,n,m,b),raw:j})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function S(a){let b,c,d=function(a){let b;if(!P.test(a))return null;let c=(0,n.resolve)(process.env.PI_SESSIONS_DIR||(0,n.join)((0,o.homedir)(),".pi","agent","sessions"));try{b=(0,l.readdirSync)(c)}catch{return null}for(let d of b){let b,e=(0,n.resolve)(c,d);if(e.startsWith(`${c}${n.sep}`)){try{b=(0,l.readdirSync)(e)}catch{continue}for(let c of b){let b=Q.exec(c);if(!b||b[1].toLowerCase()!==a.toLowerCase())continue;let d=(0,n.resolve)(e,c);if(d.startsWith(`${e}${n.sep}`)&&(0,l.existsSync)(d))return d}}}return null}(a);if(!d)return null;try{b=await (0,m.readFile)(d,"utf-8")}catch{return null}try{c=await R(b,"session")}catch{return null}return{entries:c.entries,rawLines:c.rawLines,cwd:c.cwd,filePath:d}}let T=(0,p.runtimeCache)(a=>S(a),60,{maxSize:50});k.formatTimestamp;let U=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,V=/^session-(.+)-([0-9a-f]{8})\.jsonl$/i;async function W(a,b="session",c){let d=a.split("\n").filter(a=>""!==a.trim()),e=[],f=[],g=!1;for(let a=0;a<d.length;a++){let c;a>0&&a%200==0&&await new Promise(a=>setImmediate(a));let h=d[a];try{c=JSON.parse(h)}catch{continue}let i={...c,_source:b};if(f.push(i),"string"==typeof c.sessionId&&"string"==typeof c.startTime){let a=new Date(c.startTime);if(!Number.isNaN(a.getTime())){let c=g?"Session Resumed":"Session Started";g=!0,e.push({type:"queue-operation",...(0,k.baseEntry)(i,a.toISOString(),a,b),label:c})}continue}if(c.$set)continue;let j=c.timestamp;if(!j)continue;let l=new Date(j);if(Number.isNaN(l.getTime()))continue;let m=l.toISOString(),n=c.type;if("user"===n){let a=function(a){if(!Array.isArray(a))return"";let b=[];for(let c of a)"string"==typeof c?.text&&b.push(c.text);return b.join("\n\n")}(c.content);if(!a)continue;e.push({type:"user",...(0,k.baseEntry)(i,m,l,b),message:{role:"user",content:a}});continue}if("assistant"===n||"model"===n){let a=function(a){if(!Array.isArray(a))return[];let b=[];for(let c of a)"string"==typeof c?.text&&c.text.length>0&&b.push({type:"text",text:c.text});return b}(c.content);if(0===a.length){e.push({type:"system",...(0,k.baseEntry)(i,m,l,b),raw:i});continue}e.push({type:"assistant",...(0,k.baseEntry)(i,m,l,b),message:{role:"assistant",content:a}});continue}e.push({type:"system",...(0,k.baseEntry)(i,m,l,b),raw:i})}return e.length>500&&await new Promise(a=>setImmediate(a)),e.sort((a,b)=>a.timestampMs-b.timestampMs),{entries:e,rawLines:f,cwd:c}}async function X(a){let b,c,d=function(a){let b;if(!U.test(a))return null;let c=(0,n.resolve)(process.env.GEMINI_SESSIONS_DIR||(0,n.join)((0,o.homedir)(),".gemini","tmp")),d=a.slice(0,8).toLowerCase();try{b=(0,l.readdirSync)(c)}catch{return null}for(let e of b){let b,f=(0,n.resolve)(c,e);if(!f.startsWith(`${c}${n.sep}`))continue;let g=(0,n.resolve)(f,"chats");try{b=(0,l.readdirSync)(g)}catch{continue}for(let c of b){let b=V.exec(c);if(!b||b[2].toLowerCase()!==d)continue;let e=(0,n.resolve)(g,c);if(!e.startsWith(`${g}${n.sep}`)||!(0,l.existsSync)(e))continue;let f=function(a){let b;try{b=(0,l.openSync)(a,"r")}catch{return null}try{let a=Buffer.alloc(4096),c=(0,l.readSync)(b,a,0,a.length,0);if(0===c)return null;let d=a.subarray(0,c).toString("utf-8"),e=d.indexOf("\n");return e>=0?d.slice(0,e):d}catch{return null}finally{try{(0,l.closeSync)(b)}catch{}}}(e);if(f)try{let b=JSON.parse(f);if("string"==typeof b.sessionId&&b.sessionId.toLowerCase()===a.toLowerCase())return e}catch{continue}}}return null}(a);if(!d)return null;try{b=await (0,m.readFile)(d,"utf-8")}catch{return null}let e=function(a){let b=(0,n.resolve)(a,".."),c=(0,n.resolve)(b,".."),d=(0,n.join)(c,".project_root");try{let a=(0,l.readFileSync)(d,"utf-8").trim();return a.length>0?a:void 0}catch{return}}(d);try{c=await W(b,"session",e)}catch{return null}return{entries:c.entries,rawLines:c.rawLines,cwd:c.cwd,filePath:d}}let Y=(0,p.runtimeCache)(a=>X(a),60,{maxSize:50});var Z=a.i(54563),$=a.i(90798),_=a.i(69191),aa=a.i(71130),ab=a.i(893),ac=a.i(24282);function ad({cli:a}){let c=(0,ac.getCliLabel)(a),d=(0,ac.getCliBadgeClasses)(a);return(0,b.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-mono font-medium uppercase tracking-wider border ${d}`,title:`Agent CLI: ${c}`,children:c})}async function ae({params:a}){let d,e,{name:f,sessionId:g}=await a;try{(0,_.resolveProjectPath)(f)}catch{(0,j.notFound)()}let l=(0,$.decodeFolderName)(f),m=-1===(e=g.indexOf("/"))?g:g.slice(0,e);_.UUID_RE.test(m)||/^ses_[A-Za-z0-9]+$/.test(m)||/^[A-Za-z0-9_-]+$/.test(m)||(0,j.notFound)();let n=null,o=null,p=null,q="claude";try{let a=await (0,k.getCachedSessionLog)(f,m);n=a.entries,o=a.rawLines}catch(a){if("ENOENT"===a.code){let a=await y(m);if(a)n=a.entries,o=a.rawLines,d=a.cwd,q="codex";else{let a=await C(m);if(a)n=a.entries,o=a.rawLines,d=a.cwd,q="copilot";else{let a=await I(m);if(a)n=a.entries,o=a.rawLines,d=a.cwd,q="cursor";else{let a=await O(m);if(a)n=a.entries,o=a.rawLines,d=a.cwd,q="opencode";else{let a=await T(m);if(a)n=a.entries,o=a.rawLines,d=a.cwd,q="pi";else{let a=await Y(m);if(a)n=a.entries,o=a.rawLines,d=a.cwd,q="gemini";else{let a=await (0,Z.getCachedHermesSessionLog)(m);a?(n=a.entries,o=a.rawLines,d=a.cwd,q="hermes"):p="Session log file not found."}}}}}}}else p="Failed to read session log."}let r="claude"!==q,s="codex"===q?`OpenAI Codex${d?` \xb7 ${d}`:""}`:"copilot"===q?`GitHub Copilot${d?` \xb7 ${d}`:""}`:"cursor"===q?`Cursor Agent${d?` \xb7 ${d}`:""}`:"opencode"===q?`OpenCode${d?` \xb7 ${d}`:""}`:"pi"===q?`Pi${d?` \xb7 ${d}`:""}`:"gemini"===q?`Gemini CLI${d?` \xb7 ${d}`:""}`:"hermes"===q?`Hermes${d?` \xb7 ${d}`:""}`:l;return(0,b.jsx)("main",{className:"min-h-screen bg-background",children:(0,b.jsxs)("div",{className:"container mx-auto p-8",children:[(0,b.jsxs)(c.default,{href:r?"/policies?tab=activity":`/project/${encodeURIComponent(f)}`,className:"inline-flex items-center gap-2 text-muted-foreground hover:text-foreground mb-6 transition-colors",children:[(0,b.jsx)(h,{className:"w-4 h-4"}),(0,b.jsx)("span",{children:r?"Back to Activity":"Back to Sessions"})]}),(0,b.jsxs)("div",{className:"mb-8",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 mb-2",children:[(0,b.jsx)("h1",{className:"text-4xl font-bold text-foreground",children:"Session Log"}),(0,b.jsx)(ad,{cli:q})]}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("p",{className:"text-muted-foreground",children:[(0,b.jsxs)("span",{className:"font-medium",children:[r?"CLI":"Project",":"]})," ",s]}),(0,b.jsxs)("p",{className:"text-muted-foreground break-words break-all inline-flex items-center gap-1",children:[(0,b.jsx)("span",{className:"font-medium",children:"Session:"})," ",m,(0,b.jsx)(ab.CopyButton,{text:m})]}),n&&o&&(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("p",{className:"text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium",children:o.length})," log lines"]}),(0,b.jsxs)("a",{href:`/api/download/${encodeURIComponent(f)}/${encodeURIComponent(m)}?cli=${q}`,download:!0,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-md bg-muted text-muted-foreground hover:bg-muted/80 hover:text-foreground transition-colors",children:[(0,b.jsx)(i,{className:"w-4 h-4"}),"Download Logs"]})]})]})]}),p&&(0,b.jsx)("div",{className:"bg-card text-card-foreground rounded-lg border border-destructive/50 p-6 shadow-sm",children:(0,b.jsx)("p",{className:"text-destructive text-center py-8",children:p})}),!p&&n&&(0,b.jsx)(aa.default,{entries:n,projectName:r?d??("codex"===q?"OpenAI Codex":"copilot"===q?"GitHub Copilot":"cursor"===q?"Cursor Agent":"opencode"===q?"OpenCode":"pi"===q?"Pi":"hermes"===q?"Hermes":"Gemini CLI"):l,sessionId:m})]})})}a.s(["default",0,ae,"dynamic",0,"force-dynamic"],41190)},87330,a=>{a.n(a.i(41190))}];
2
2
 
3
3
  //# sourceMappingURL=_11_p9y8._.js.map