failproofai 0.0.12 → 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 (203) hide show
  1. package/.next/standalone/.cursor/hooks.json +6 -6
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/required-server-files.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  13. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  14. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  15. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  16. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  19. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  22. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  23. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  24. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  25. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  26. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  27. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  28. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  29. package/.next/standalone/.next/server/app/api/audit/invite/route.js +2 -2
  30. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/audit/run/route.js +3 -2
  32. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/auth/login-request/route.js +1 -1
  34. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js +2 -2
  36. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/auth/logout/route.js +2 -2
  38. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/auth/reminder/route.js +2 -2
  40. package/.next/standalone/.next/server/app/api/auth/reminder/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/auth/status/route.js +2 -2
  42. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js +1 -1
  44. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  46. package/.next/standalone/.next/server/app/audit/page.js +1 -1
  47. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/index.html +1 -1
  50. package/.next/standalone/.next/server/app/index.rsc +15 -15
  51. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  52. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  53. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  54. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  55. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  56. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  57. package/.next/standalone/.next/server/app/page.js +1 -1
  58. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  61. package/.next/standalone/.next/server/app/policies/page.js +2 -2
  62. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  65. package/.next/standalone/.next/server/app/project/[name]/page.js +3 -2
  66. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  69. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  70. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +3 -2
  71. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  74. package/.next/standalone/.next/server/app/projects/page.js +2 -2
  75. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  76. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_0xu5z._.js +1 -1
  78. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cefjd9._.js +3 -0
  79. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ekj92q._.js +3 -0
  80. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0hv08mx._.js +3 -0
  81. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0obaznk._.js +3 -0
  82. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xvsnvt._.js +3 -0
  83. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12v-lma._.js +3 -0
  84. package/.next/standalone/.next/server/chunks/[root-of-the-server]__136y39g._.js +3 -0
  85. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13h8pzr._.js +1 -1
  86. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1fwl2mz._.js +3 -0
  87. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1hkdkmz._.js +3 -0
  88. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1i9rknc._.js +3 -0
  89. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1mrihkj._.js +3 -0
  90. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1myjm-d._.js +3 -0
  91. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0cycwg6._.js → [root-of-the-server]__1tvn4wf._.js} +2 -2
  92. package/.next/standalone/.next/server/chunks/_1z062h5._.js +3 -0
  93. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_17k9e3w.js +5 -5
  94. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  95. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__015_i4t._.js +4 -0
  96. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03lv-pe._.js +4 -0
  97. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04bqvos._.js +3 -0
  98. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ntd0fz._.js → [root-of-the-server]__099afy6._.js} +2 -2
  99. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0dqgs96._.js +3 -0
  100. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0hdsupo._.js +4 -0
  101. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0q5rfxg._.js +3 -0
  102. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qeuy9c._.js +4 -0
  103. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qukut7._.js +4 -0
  104. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s89hoe._.js +4 -0
  105. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ehe24g._.js → [root-of-the-server]__0ynf7tx._.js} +3 -3
  106. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__170799-._.js +245 -0
  107. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1d8omgc._.js +1 -1
  108. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1ql-mch._.js +3 -0
  109. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0vh88nr._.js → [root-of-the-server]__1qlh4jx._.js} +2 -2
  110. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1tkjqka._.js +4 -0
  111. package/.next/standalone/.next/server/chunks/ssr/_05whahf._.js +1 -1
  112. package/.next/standalone/.next/server/chunks/ssr/_0ul5rf_._.js +3 -0
  113. package/.next/standalone/.next/server/chunks/ssr/_11_p9y8._.js +1 -1
  114. package/.next/standalone/.next/server/chunks/ssr/_11v0g3z._.js +3 -0
  115. package/.next/standalone/.next/server/chunks/ssr/_1p0-leb._.js +1 -1
  116. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +1 -1
  117. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  118. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +1 -1
  119. package/.next/standalone/.next/server/chunks/ssr/lib_hermes-projects_ts_05b8-it._.js +3 -0
  120. package/.next/standalone/.next/server/chunks/ssr/{node_modules_html-to-image_es_index_0bppeyf.js → node_modules_html-to-image_es_index_0pv57nx.js} +1 -1
  121. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  122. package/.next/standalone/.next/server/pages/404.html +1 -1
  123. package/.next/standalone/.next/server/pages/500.html +1 -1
  124. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/server-reference-manifest.json +10 -10
  126. package/.next/standalone/.next/static/chunks/{3jk5y-qgnnti_.js → 0b6rdtcge_3ec.js} +1 -1
  127. package/.next/standalone/.next/static/chunks/{09l7dfsd4xapi.js → 0pj_6lbbjd000.js} +1 -1
  128. package/.next/standalone/.next/static/chunks/{0ys-mwok1j9kp.js → 0xnrgonfdeivm.js} +1 -1
  129. package/.next/standalone/.next/static/chunks/{00_ypuitb29l0.js → 105w_oznq-van.js} +1 -1
  130. package/.next/standalone/.next/static/chunks/{3pb3m-89k7ts2.js → 13tbm6i1swiru.js} +1 -1
  131. package/.next/standalone/.next/static/chunks/{36yb_gsfgfga4.js → 1fhuj4fjovzp5.js} +1 -1
  132. package/.next/standalone/.next/static/chunks/209ful1jrphvy.js +1 -0
  133. package/.next/standalone/.next/static/chunks/{0qw65r3wfs089.js → 23odnajn2ltwu.js} +1 -1
  134. package/.next/standalone/.next/static/chunks/25s52un3k_wht.css +2 -0
  135. package/.next/standalone/.next/static/chunks/36r2vgi6854za.js +6 -0
  136. package/.next/standalone/.next/static/chunks/3b77kulbdbrqw.js +1 -0
  137. package/.next/standalone/.next/static/chunks/3rjg-1s5ouu5r.js +1 -0
  138. package/.next/standalone/app/components/sessions-list.tsx +19 -0
  139. package/.next/standalone/app/project/[name]/page.tsx +9 -4
  140. package/.next/standalone/app/project/[name]/session/[sessionId]/page.tsx +26 -5
  141. package/.next/standalone/assets/logos/hermes-dark.svg +1 -0
  142. package/.next/standalone/assets/logos/hermes-light.svg +1 -0
  143. package/.next/standalone/docker-hook-sync/Dockerfile +75 -0
  144. package/.next/standalone/docker-hook-sync/entrypoint.sh +109 -0
  145. package/.next/standalone/lib/cli-registry.ts +6 -1
  146. package/.next/standalone/lib/download-session.ts +16 -0
  147. package/.next/standalone/lib/hermes-projects.ts +164 -0
  148. package/.next/standalone/lib/hermes-sessions.ts +273 -0
  149. package/.next/standalone/lib/projects.ts +14 -3
  150. package/.next/standalone/lib/sqlite-reader.ts +102 -0
  151. package/.next/standalone/package.json +5 -3
  152. package/.next/standalone/server.js +1 -1
  153. package/README.md +10 -1
  154. package/bin/failproofai.mjs +17 -16
  155. package/dist/cli.mjs +7779 -229
  156. package/lib/cli-registry.ts +6 -1
  157. package/lib/download-session.ts +16 -0
  158. package/lib/hermes-projects.ts +164 -0
  159. package/lib/hermes-sessions.ts +273 -0
  160. package/lib/projects.ts +14 -3
  161. package/lib/sql-js-asm.d.ts +26 -0
  162. package/lib/sqlite-reader.ts +102 -0
  163. package/package.json +5 -3
  164. package/scripts/sync-agent-cli-harnesses-prompt.md +222 -0
  165. package/src/audit/cli-adapters/hermes.ts +58 -0
  166. package/src/audit/cli-adapters/index.ts +6 -0
  167. package/src/hooks/handler.ts +8 -0
  168. package/src/hooks/install-prompt.ts +7 -3
  169. package/src/hooks/integrations.ts +191 -10
  170. package/src/hooks/policy-evaluator.ts +42 -0
  171. package/src/hooks/resolve-transcript-path.ts +4 -0
  172. package/src/hooks/tool-name-canonicalize.ts +6 -0
  173. package/src/hooks/types.ts +107 -1
  174. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0dwpg-h._.js +0 -3
  175. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lnenda._.js +0 -3
  176. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13i_sva._.js +0 -3
  177. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1_mqemn._.js +0 -3
  178. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1m2_4t0._.js +0 -3
  179. package/.next/standalone/.next/server/chunks/node_modules_0-tu4ot._.js +0 -3
  180. package/.next/standalone/.next/server/chunks/node_modules_0ttxbz7._.js +0 -3
  181. package/.next/standalone/.next/server/chunks/node_modules_1bnh1y0._.js +0 -3
  182. package/.next/standalone/.next/server/chunks/node_modules_1epycqa._.js +0 -3
  183. package/.next/standalone/.next/server/chunks/node_modules_1wpdcgo._.js +0 -3
  184. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0808sha._.js +0 -4
  185. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e4-6d8._.js +0 -4
  186. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0f62vu9._.js +0 -3
  187. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g253ve._.js +0 -4
  188. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0k65l27._.js +0 -3
  189. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vxf0_g._.js +0 -4
  190. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12mcauo._.js +0 -4
  191. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1e-x7j4._.js +0 -3
  192. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1mt35_w._.js +0 -221
  193. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1pcxxwg._.js +0 -4
  194. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1uvfwgr._.js +0 -4
  195. package/.next/standalone/.next/static/chunks/0f7d7hnbh4djs.js +0 -1
  196. package/.next/standalone/.next/static/chunks/1o0xa47736gi9.css +0 -2
  197. package/.next/standalone/.next/static/chunks/2ey-m4-p9z7e0.js +0 -6
  198. package/.next/standalone/.next/static/chunks/2wbuxnsvux4di.js +0 -1
  199. package/.next/standalone/.next/static/chunks/3-veva26100-4.js +0 -1
  200. package/scripts/sync-hook-events-prompt.md +0 -179
  201. /package/.next/standalone/.next/static/{PdZTBvCBXzDRLe-duL9yC → 31ZoDDYKHEIN_TrgKv85t}/_buildManifest.js +0 -0
  202. /package/.next/standalone/.next/static/{PdZTBvCBXzDRLe-duL9yC → 31ZoDDYKHEIN_TrgKv85t}/_clientMiddlewareManifest.js +0 -0
  203. /package/.next/standalone/.next/static/{PdZTBvCBXzDRLe-duL9yC → 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