@shepai/cli 1.151.2-pr468.4830e01 → 1.151.2-pr470.ec33cce

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 (201) hide show
  1. package/apis/json-schema/AgentType.yaml +0 -1
  2. package/dist/packages/core/src/domain/generated/output.d.ts +0 -1
  3. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  4. package/dist/packages/core/src/domain/generated/output.js +0 -1
  5. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  6. package/dist/packages/core/src/infrastructure/di/container.js +0 -4
  7. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.d.ts.map +1 -1
  8. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.js +0 -22
  9. package/dist/packages/core/src/infrastructure/services/agents/common/agent-validator.service.d.ts.map +1 -1
  10. package/dist/packages/core/src/infrastructure/services/agents/common/agent-validator.service.js +0 -1
  11. package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts +2 -6
  12. package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts.map +1 -1
  13. package/dist/src/presentation/tui/prompts/agent-select.prompt.js +2 -7
  14. package/dist/src/presentation/web/app/actions/get-all-agent-models.d.ts.map +1 -1
  15. package/dist/src/presentation/web/app/actions/get-all-agent-models.js +2 -4
  16. package/dist/src/presentation/web/components/common/evidence-lightbox/evidence-lightbox.d.ts +15 -0
  17. package/dist/src/presentation/web/components/common/evidence-lightbox/evidence-lightbox.d.ts.map +1 -0
  18. package/dist/src/presentation/web/components/common/evidence-lightbox/evidence-lightbox.js +43 -0
  19. package/dist/src/presentation/web/components/common/evidence-lightbox/evidence-lightbox.stories.d.ts +18 -0
  20. package/dist/src/presentation/web/components/common/evidence-lightbox/evidence-lightbox.stories.d.ts.map +1 -0
  21. package/dist/src/presentation/web/components/common/evidence-lightbox/evidence-lightbox.stories.js +125 -0
  22. package/dist/src/presentation/web/components/common/evidence-lightbox/index.d.ts +3 -0
  23. package/dist/src/presentation/web/components/common/evidence-lightbox/index.d.ts.map +1 -0
  24. package/dist/src/presentation/web/components/common/evidence-lightbox/index.js +1 -0
  25. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts +1 -1
  26. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts.map +1 -1
  27. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.js +0 -2
  28. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.d.ts.map +1 -1
  29. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.js +0 -1
  30. package/dist/src/presentation/web/components/common/merge-review/merge-review.d.ts.map +1 -1
  31. package/dist/src/presentation/web/components/common/merge-review/merge-review.js +28 -2
  32. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts +0 -1
  33. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts.map +1 -1
  34. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.js +0 -7
  35. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map +1 -1
  36. package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +0 -1
  37. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts +0 -1
  38. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts.map +1 -1
  39. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.js +0 -8
  40. package/dist/tsconfig.build.tsbuildinfo +1 -1
  41. package/package.json +1 -1
  42. package/web/.next/BUILD_ID +1 -1
  43. package/web/.next/build-manifest.json +2 -2
  44. package/web/.next/fallback-build-manifest.json +2 -2
  45. package/web/.next/prerender-manifest.json +3 -3
  46. package/web/.next/required-server-files.js +1 -1
  47. package/web/.next/required-server-files.json +1 -1
  48. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +28 -28
  49. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  50. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  51. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +29 -29
  52. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  53. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
  55. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  56. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  57. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +36 -36
  58. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  59. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  60. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +26 -26
  61. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  62. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  63. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +29 -29
  64. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  65. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  66. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
  67. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  68. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  69. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +36 -36
  70. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  71. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  72. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +26 -26
  73. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  74. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  75. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +26 -26
  76. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  77. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  78. package/web/.next/server/app/_global-error.html +2 -2
  79. package/web/.next/server/app/_global-error.rsc +1 -1
  80. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  81. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  82. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  83. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  84. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  85. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +3 -3
  86. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  87. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  88. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  89. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  90. package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  91. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  92. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  93. package/web/.next/server/app/skills/page/server-reference-manifest.json +8 -8
  94. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  95. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  96. package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
  97. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  98. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  99. package/web/.next/server/app/version/page/server-reference-manifest.json +3 -3
  100. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  101. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  102. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js +1 -1
  103. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js.map +1 -1
  104. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  105. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  106. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  107. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  108. package/web/.next/server/chunks/ssr/[root-of-the-server]__0b150ddf._.js.map +1 -1
  109. package/web/.next/server/chunks/ssr/[root-of-the-server]__2138fa7e._.js +2 -2
  110. package/web/.next/server/chunks/ssr/[root-of-the-server]__2138fa7e._.js.map +1 -1
  111. package/web/.next/server/chunks/ssr/[root-of-the-server]__29580090._.js +1 -1
  112. package/web/.next/server/chunks/ssr/[root-of-the-server]__29580090._.js.map +1 -1
  113. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  114. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js +1 -1
  115. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js.map +1 -1
  116. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
  117. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
  118. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
  119. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +3 -3
  121. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  122. package/web/.next/server/chunks/ssr/[root-of-the-server]__c094882b._.js +1 -1
  123. package/web/.next/server/chunks/ssr/[root-of-the-server]__c094882b._.js.map +1 -1
  124. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js +1 -1
  125. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js.map +1 -1
  126. package/web/.next/server/chunks/ssr/[root-of-the-server]__dac5dbf1._.js +1 -1
  127. package/web/.next/server/chunks/ssr/[root-of-the-server]__dac5dbf1._.js.map +1 -1
  128. package/web/.next/server/chunks/ssr/[root-of-the-server]__fae8b355._.js +1 -1
  129. package/web/.next/server/chunks/ssr/[root-of-the-server]__fae8b355._.js.map +1 -1
  130. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  131. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  132. package/web/.next/server/chunks/ssr/_0c473fef._.js +2 -2
  133. package/web/.next/server/chunks/ssr/_0c473fef._.js.map +1 -1
  134. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  135. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  136. package/web/.next/server/chunks/ssr/_1b719e7f._.js +1 -1
  137. package/web/.next/server/chunks/ssr/_1b719e7f._.js.map +1 -1
  138. package/web/.next/server/chunks/ssr/{_b47f40e8._.js → _34a8a162._.js} +2 -2
  139. package/web/.next/server/chunks/ssr/{_b47f40e8._.js.map → _34a8a162._.js.map} +1 -1
  140. package/web/.next/server/chunks/ssr/_37e8548b._.js +1 -1
  141. package/web/.next/server/chunks/ssr/_37e8548b._.js.map +1 -1
  142. package/web/.next/server/chunks/ssr/_4093a637._.js +1 -1
  143. package/web/.next/server/chunks/ssr/_4093a637._.js.map +1 -1
  144. package/web/.next/server/chunks/ssr/_55d763e2._.js +1 -1
  145. package/web/.next/server/chunks/ssr/_55d763e2._.js.map +1 -1
  146. package/web/.next/server/chunks/ssr/_6256a985._.js +1 -1
  147. package/web/.next/server/chunks/ssr/_6256a985._.js.map +1 -1
  148. package/web/.next/server/chunks/ssr/{_dd815000._.js → _762bbdd5._.js} +2 -2
  149. package/web/.next/server/chunks/ssr/{_dd815000._.js.map → _762bbdd5._.js.map} +1 -1
  150. package/web/.next/server/chunks/ssr/_8fcc39d4._.js +1 -1
  151. package/web/.next/server/chunks/ssr/_8fcc39d4._.js.map +1 -1
  152. package/web/.next/server/chunks/ssr/_b71645b4._.js +1 -1
  153. package/web/.next/server/chunks/ssr/_b71645b4._.js.map +1 -1
  154. package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +1 -1
  155. package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
  156. package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
  157. package/web/.next/server/chunks/ssr/_e9e9ed20._.js +2 -2
  158. package/web/.next/server/chunks/ssr/_e9e9ed20._.js.map +1 -1
  159. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  160. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  161. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
  162. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
  163. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
  164. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
  165. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  166. package/web/.next/server/chunks/ssr/src_presentation_web_b437e763._.js +3 -0
  167. package/web/.next/server/chunks/ssr/{src_presentation_web_4f99488d._.js.map → src_presentation_web_b437e763._.js.map} +1 -1
  168. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  169. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  170. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  171. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  172. package/web/.next/server/pages/500.html +2 -2
  173. package/web/.next/server/server-reference-manifest.js +1 -1
  174. package/web/.next/server/server-reference-manifest.json +45 -45
  175. package/web/.next/static/chunks/{ae411737fa84a470.js → 08baac5434d9528e.js} +7 -7
  176. package/web/.next/static/chunks/{3a7945f19b79b23f.js → 0d473fbdf724361c.js} +1 -1
  177. package/web/.next/static/chunks/1ef9dfc624cdd5c0.js +1 -0
  178. package/web/.next/static/chunks/{98126d854a888c69.js → 2c4e4027386847dc.js} +1 -1
  179. package/web/.next/static/chunks/{2ef0f4ca4e98c9a7.js → 331e2a1232d9f855.js} +3 -3
  180. package/web/.next/static/chunks/{5942cf630e48ca8d.js → 48a36b37fc27443b.js} +1 -1
  181. package/web/.next/static/chunks/52470bcbe2e8198d.css +1 -0
  182. package/web/.next/static/chunks/{6a5afc469cf09a04.js → 6e406c42f179f73f.js} +1 -1
  183. package/web/.next/static/chunks/{a7d8b0dda225c732.js → 706819c360883af1.js} +1 -1
  184. package/web/.next/static/chunks/{4e0a2f0a76498c81.js → 7bf35c5612fdba16.js} +1 -1
  185. package/web/.next/static/chunks/{866b1f54b7f49d15.js → c286aae364899eae.js} +1 -1
  186. package/web/.next/static/chunks/{956b17e72f758911.js → d8685c1bf2415bc5.js} +1 -1
  187. package/web/.next/static/chunks/{be299036f3de6864.js → e558b4b9d066763c.js} +1 -1
  188. package/web/.next/static/chunks/{ca8a36bfe8400d5d.js → ebebc7a215e04768.js} +1 -1
  189. package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.d.ts +0 -61
  190. package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.d.ts.map +0 -1
  191. package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.js +0 -628
  192. package/dist/packages/core/src/infrastructure/services/agents/sessions/codex-cli-session.repository.d.ts +0 -62
  193. package/dist/packages/core/src/infrastructure/services/agents/sessions/codex-cli-session.repository.d.ts.map +0 -1
  194. package/dist/packages/core/src/infrastructure/services/agents/sessions/codex-cli-session.repository.js +0 -356
  195. package/web/.next/server/chunks/ssr/src_presentation_web_4f99488d._.js +0 -3
  196. package/web/.next/static/chunks/89b3762438e133be.js +0 -1
  197. package/web/.next/static/chunks/9b8678597fa1db84.css +0 -1
  198. package/web/public/icons/agents/openai.svg +0 -3
  199. /package/web/.next/static/{MUDs2V0kbD3BsECyukWE4 → crqlqgDegiKDLReFt70L0}/_buildManifest.js +0 -0
  200. /package/web/.next/static/{MUDs2V0kbD3BsECyukWE4 → crqlqgDegiKDLReFt70L0}/_clientMiddlewareManifest.json +0 -0
  201. /package/web/.next/static/{MUDs2V0kbD3BsECyukWE4 → crqlqgDegiKDLReFt70L0}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex-cli-session.repository.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/sessions/codex-cli-session.repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,mFAAmF,CAAC;AA0C3F,qBACa,yBAA0B,YAAW,uBAAuB;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,GAAE,MAAqD;IAE5F;;;OAGG;IACH,MAAM,CAAC,gBAAgB,IAAI,MAAM;IAIjC,WAAW,IAAI,OAAO;IAIhB,IAAI,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA8C5D,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAmBrF,kDAAkD;YACpC,gBAAgB;IAoB9B,kEAAkE;IAClE,OAAO,CAAC,mBAAmB;IAa3B;;;OAGG;YACW,mBAAmB;IAajC,wEAAwE;YAC1D,aAAa;IAsC3B;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IASpC;;;OAGG;YACW,eAAe;IAqB7B;;OAEG;YACW,gBAAgB;IAgI9B,6CAA6C;IAC7C,OAAO,CAAC,sBAAsB;IAW9B,2CAA2C;IAC3C,OAAO,CAAC,cAAc;CAQvB"}
@@ -1,356 +0,0 @@
1
- /**
2
- * Codex CLI Session Repository
3
- *
4
- * Infrastructure implementation of IAgentSessionRepository for OpenAI Codex CLI.
5
- * Reads JSONL session rollout files from `$CODEX_HOME/sessions/` (or `~/.codex/sessions/`
6
- * when CODEX_HOME is not set) and the session index from `$CODEX_HOME/session_index.jsonl`.
7
- *
8
- * Directory structure:
9
- * $CODEX_HOME/session_index.jsonl — one JSON object per line with {id, thread_name, updated_at}
10
- * $CODEX_HOME/sessions/YYYY/MM/DD/rollout-<timestamp>-<session-id>.jsonl
11
- *
12
- * Rollout file events:
13
- * - session_meta: session metadata (id, cwd, cli_version, model_provider)
14
- * - event_msg: lifecycle events (task_started, etc.)
15
- * - response_item: messages (role: user/assistant/developer), function_call, function_call_output
16
- * - turn_context: per-turn context (cwd, model, sandbox_policy)
17
- */
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __metadata = (this && this.__metadata) || function (k, v) {
25
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
26
- };
27
- var CodexCliSessionRepository_1;
28
- import * as fs from 'node:fs/promises';
29
- import * as os from 'node:os';
30
- import * as path from 'node:path';
31
- import { injectable } from 'tsyringe';
32
- let CodexCliSessionRepository = CodexCliSessionRepository_1 = class CodexCliSessionRepository {
33
- basePath;
34
- constructor(basePath = CodexCliSessionRepository_1.resolveCodexHome()) {
35
- this.basePath = basePath;
36
- }
37
- /**
38
- * Resolve the Codex home directory.
39
- * Uses CODEX_HOME env var if set, otherwise defaults to ~/.codex
40
- */
41
- static resolveCodexHome() {
42
- return process.env.CODEX_HOME ?? path.join(os.homedir(), '.codex');
43
- }
44
- isSupported() {
45
- return true;
46
- }
47
- async list(options) {
48
- const limit = options?.limit ?? 20;
49
- // First try the session index for fast listing
50
- const indexEntries = await this.readSessionIndex();
51
- if (indexEntries.length > 0) {
52
- // Deduplicate: keep the latest entry per session ID
53
- const latestById = new Map();
54
- for (const entry of indexEntries) {
55
- latestById.set(entry.id, entry);
56
- }
57
- // Sort by updated_at descending
58
- const sorted = [...latestById.values()].sort((a, b) => {
59
- const aTime = a.updated_at ? new Date(a.updated_at).getTime() : 0;
60
- const bTime = b.updated_at ? new Date(b.updated_at).getTime() : 0;
61
- return bTime - aTime;
62
- });
63
- const toReturn = limit > 0 ? sorted.slice(0, limit) : sorted;
64
- // Build lightweight sessions from index (no need to parse full rollout files)
65
- return toReturn.map((entry) => this.indexEntryToSession(entry));
66
- }
67
- // Fallback: scan rollout files directly
68
- const fileInfos = await this.collectSessionFiles();
69
- fileInfos.sort((a, b) => b.mtime.getTime() - a.mtime.getTime());
70
- const toParse = limit > 0 ? fileInfos.slice(0, limit) : fileInfos;
71
- const parseResults = await Promise.allSettled(toParse.map((fi) => this.parseRolloutFile(fi, { includeMessages: false })));
72
- const sessions = [];
73
- for (const result of parseResults) {
74
- if (result.status === 'fulfilled' && result.value !== null) {
75
- sessions.push(result.value);
76
- }
77
- }
78
- return sessions;
79
- }
80
- async findById(id, options) {
81
- const messageLimit = options?.messageLimit ?? 20;
82
- const match = await this.findSessionFile(id);
83
- if (match === null)
84
- return null;
85
- try {
86
- const stat = await fs.stat(match.filePath);
87
- const fileInfo = {
88
- id: match.resolvedId,
89
- filePath: match.filePath,
90
- mtime: stat.mtime,
91
- };
92
- return await this.parseRolloutFile(fileInfo, { includeMessages: true, messageLimit });
93
- }
94
- catch {
95
- return null;
96
- }
97
- }
98
- /** Read and parse the session_index.jsonl file */
99
- async readSessionIndex() {
100
- const indexPath = path.join(this.basePath, 'session_index.jsonl');
101
- try {
102
- const content = await fs.readFile(indexPath, 'utf-8');
103
- const entries = [];
104
- for (const line of content.split('\n')) {
105
- const trimmed = line.trim();
106
- if (!trimmed)
107
- continue;
108
- try {
109
- entries.push(JSON.parse(trimmed));
110
- }
111
- catch {
112
- // Skip malformed lines
113
- }
114
- }
115
- return entries;
116
- }
117
- catch {
118
- return [];
119
- }
120
- }
121
- /** Convert a session index entry to a lightweight AgentSession */
122
- indexEntryToSession(entry) {
123
- const updatedAt = entry.updated_at ? new Date(entry.updated_at) : new Date();
124
- return {
125
- id: entry.id,
126
- agentType: 'codex-cli',
127
- projectPath: '',
128
- messageCount: 0,
129
- createdAt: updatedAt,
130
- updatedAt,
131
- preview: entry.thread_name,
132
- };
133
- }
134
- /**
135
- * Recursively collect all rollout .jsonl files from the sessions/ directory.
136
- * Structure: sessions/YYYY/MM/DD/rollout-<timestamp>-<id>.jsonl
137
- */
138
- async collectSessionFiles() {
139
- const sessionsDir = path.join(this.basePath, 'sessions');
140
- const fileInfos = [];
141
- try {
142
- await this.walkDirectory(sessionsDir, fileInfos);
143
- }
144
- catch {
145
- // sessions directory doesn't exist
146
- }
147
- return fileInfos;
148
- }
149
- /** Recursively walk a directory tree collecting .jsonl rollout files */
150
- async walkDirectory(dir, results) {
151
- let entries;
152
- try {
153
- entries = await fs.readdir(dir, { withFileTypes: true, encoding: 'utf-8' });
154
- }
155
- catch {
156
- return;
157
- }
158
- const promises = [];
159
- for (const entry of entries) {
160
- const fullPath = path.join(dir, entry.name);
161
- if (entry.isDirectory()) {
162
- promises.push(this.walkDirectory(fullPath, results));
163
- }
164
- else if (entry.isFile() &&
165
- entry.name.endsWith('.jsonl') &&
166
- entry.name.startsWith('rollout-')) {
167
- promises.push(fs
168
- .stat(fullPath)
169
- .then((stat) => {
170
- const sessionId = this.extractSessionIdFromFilename(entry.name);
171
- if (sessionId) {
172
- results.push({ id: sessionId, filePath: fullPath, mtime: stat.mtime });
173
- }
174
- })
175
- .catch(() => {
176
- // Skip files we can't stat
177
- }));
178
- }
179
- }
180
- await Promise.allSettled(promises);
181
- }
182
- /**
183
- * Extract session ID from a rollout filename.
184
- * Format: rollout-YYYY-MM-DDTHH-MM-SS-<session-id>.jsonl
185
- * The session ID is the UUID portion after the timestamp.
186
- */
187
- extractSessionIdFromFilename(filename) {
188
- // rollout-2026-03-24T12-25-16-019d1f60-95de-7141-a648-e3e2fe3da012.jsonl
189
- // The UUID starts after the timestamp prefix (rollout-YYYY-MM-DDTHH-MM-SS-)
190
- const withoutExt = filename.replace(/\.jsonl$/, '');
191
- // Match: rollout-<date>T<time>-<uuid>
192
- const match = withoutExt.match(/^rollout-\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2}-(.+)$/);
193
- return match ? match[1] : null;
194
- }
195
- /**
196
- * Find a session rollout file by ID.
197
- * Scans the sessions/ directory recursively for a file containing the given ID.
198
- */
199
- async findSessionFile(id) {
200
- const fileInfos = await this.collectSessionFiles();
201
- // Exact match first
202
- for (const fi of fileInfos) {
203
- if (fi.id === id) {
204
- return { filePath: fi.filePath, resolvedId: fi.id };
205
- }
206
- }
207
- // Prefix match
208
- const matches = fileInfos.filter((fi) => fi.id.startsWith(id));
209
- if (matches.length === 1) {
210
- return { filePath: matches[0].filePath, resolvedId: matches[0].id };
211
- }
212
- return null;
213
- }
214
- /**
215
- * Parse a Codex CLI rollout JSONL file into an AgentSession.
216
- */
217
- async parseRolloutFile(fileInfo, options) {
218
- const content = await fs.readFile(fileInfo.filePath, 'utf-8');
219
- const lines = content.split('\n').filter((l) => l.trim().length > 0);
220
- let cwd;
221
- let _cliVersion;
222
- let firstMessageAt;
223
- let lastMessageAt;
224
- let preview;
225
- let messageCount = 0;
226
- const messages = [];
227
- for (const line of lines) {
228
- let entry;
229
- try {
230
- entry = JSON.parse(line);
231
- }
232
- catch {
233
- continue;
234
- }
235
- const type = entry.type;
236
- const timestamp = entry.timestamp ? new Date(entry.timestamp) : fileInfo.mtime;
237
- if (type === 'session_meta') {
238
- const payload = entry.payload;
239
- if (payload?.cwd)
240
- cwd = payload.cwd;
241
- if (payload?.cli_version)
242
- _cliVersion = payload.cli_version;
243
- continue;
244
- }
245
- if (type === 'turn_context') {
246
- // Use turn context cwd as fallback
247
- if (!cwd && entry.payload?.cwd)
248
- cwd = entry.payload.cwd;
249
- continue;
250
- }
251
- if (type === 'response_item') {
252
- const payload = entry.payload;
253
- if (!payload)
254
- continue;
255
- // Only count user and assistant messages (skip developer/system)
256
- if (payload.type === 'message' &&
257
- (payload.role === 'user' || payload.role === 'assistant')) {
258
- messageCount++;
259
- firstMessageAt ??= timestamp;
260
- lastMessageAt = timestamp;
261
- // Extract preview from first user message
262
- if (payload.role === 'user' && preview === undefined) {
263
- preview = this.extractTextFromContent(payload.content);
264
- }
265
- if (options.includeMessages) {
266
- messages.push({
267
- uuid: entry.payload?.call_id ?? `${fileInfo.id}-${messageCount}`,
268
- role: payload.role,
269
- content: this.extractTextFromContent(payload.content),
270
- timestamp,
271
- });
272
- }
273
- }
274
- // Count function calls as part of conversation but don't add as messages
275
- if (payload.type === 'function_call') {
276
- messageCount++;
277
- lastMessageAt = timestamp;
278
- if (options.includeMessages) {
279
- const toolName = payload.name ?? 'unknown_tool';
280
- messages.push({
281
- uuid: payload.call_id ?? `${fileInfo.id}-${messageCount}`,
282
- role: 'assistant',
283
- content: `[tool: ${toolName}] ${payload.arguments ?? ''}`,
284
- timestamp,
285
- });
286
- }
287
- }
288
- if (payload.type === 'function_call_output') {
289
- lastMessageAt = timestamp;
290
- if (options.includeMessages) {
291
- const output = payload.output ?? '';
292
- const truncated = output.length > 500 ? `${output.slice(0, 497)}...` : output;
293
- messages.push({
294
- uuid: payload.call_id ?? `${fileInfo.id}-result-${messageCount}`,
295
- role: 'assistant',
296
- content: `[tool-result] ${truncated}`,
297
- timestamp,
298
- });
299
- }
300
- }
301
- }
302
- }
303
- if (cwd === undefined) {
304
- // Can't determine project path — too sparse
305
- return null;
306
- }
307
- let messagesToReturn = messages;
308
- if (options.includeMessages && options.messageLimit !== undefined && options.messageLimit > 0) {
309
- messagesToReturn = messages.slice(-options.messageLimit);
310
- }
311
- const session = {
312
- id: fileInfo.id,
313
- agentType: 'codex-cli',
314
- projectPath: this.abbreviatePath(cwd),
315
- messageCount,
316
- createdAt: firstMessageAt ?? fileInfo.mtime,
317
- updatedAt: lastMessageAt ?? fileInfo.mtime,
318
- };
319
- if (preview !== undefined)
320
- session.preview = preview;
321
- if (firstMessageAt !== undefined)
322
- session.firstMessageAt = firstMessageAt;
323
- if (lastMessageAt !== undefined)
324
- session.lastMessageAt = lastMessageAt;
325
- if (options.includeMessages)
326
- session.messages = messagesToReturn;
327
- return session;
328
- }
329
- /** Extract text from Codex content blocks */
330
- extractTextFromContent(content) {
331
- if (!content || !Array.isArray(content))
332
- return '';
333
- const parts = [];
334
- for (const block of content) {
335
- if ((block.type === 'input_text' || block.type === 'output_text') && block.text) {
336
- parts.push(block.text);
337
- }
338
- }
339
- return parts.join('\n');
340
- }
341
- /** Replace home directory prefix with ~ */
342
- abbreviatePath(filePath) {
343
- const home = os.homedir();
344
- if (filePath === home)
345
- return '~';
346
- if (filePath.startsWith(`${home}${path.sep}`)) {
347
- return `~${filePath.slice(home.length)}`;
348
- }
349
- return filePath;
350
- }
351
- };
352
- CodexCliSessionRepository = CodexCliSessionRepository_1 = __decorate([
353
- injectable(),
354
- __metadata("design:paramtypes", [String])
355
- ], CodexCliSessionRepository);
356
- export { CodexCliSessionRepository };
@@ -1,3 +0,0 @@
1
- module.exports=[80646,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(59653),e=a.i(6175),f=a.i(7420),g=a.i(58761),h=a.i(51473),i=a.i(59675),j=a.i(5472),k=a.i(75988),l=a.i(80930),m=a.i(14272),n=a.i(66873),o=a.i(90986),p=a.i(17329),q=a.i(16164),r=a.i(45291),s="Popover",[t,u]=(0,f.createContextScope)(s,[k.createPopperScope]),v=(0,k.createPopperScope)(),[w,x]=t(s),y=a=>{let{__scopePopover:d,children:e,open:f,defaultOpen:g,onOpenChange:h,modal:i=!1}=a,l=v(d),m=c.useRef(null),[n,o]=c.useState(!1),[q,r]=(0,p.useControllableState)({prop:f,defaultProp:g??!1,onChange:h,caller:s});return(0,b.jsx)(k.Root,{...l,children:(0,b.jsx)(w,{scope:d,contentId:(0,j.useId)(),triggerRef:m,open:q,onOpenChange:r,onOpenToggle:c.useCallback(()=>r(a=>!a),[r]),hasCustomAnchor:n,onCustomAnchorAdd:c.useCallback(()=>o(!0),[]),onCustomAnchorRemove:c.useCallback(()=>o(!1),[]),modal:i,children:e})})};y.displayName=s;var z="PopoverAnchor",A=c.forwardRef((a,d)=>{let{__scopePopover:e,...f}=a,g=x(z,e),h=v(e),{onCustomAnchorAdd:i,onCustomAnchorRemove:j}=g;return c.useEffect(()=>(i(),()=>j()),[i,j]),(0,b.jsx)(k.Anchor,{...h,...f,ref:d})});A.displayName=z;var B="PopoverTrigger",C=c.forwardRef((a,c)=>{let{__scopePopover:f,...g}=a,h=x(B,f),i=v(f),j=(0,e.useComposedRefs)(c,h.triggerRef),l=(0,b.jsx)(n.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":h.open,"aria-controls":h.contentId,"data-state":Q(h.open),...g,ref:j,onClick:(0,d.composeEventHandlers)(a.onClick,h.onOpenToggle)});return h.hasCustomAnchor?l:(0,b.jsx)(k.Anchor,{asChild:!0,...i,children:l})});C.displayName=B;var D="PopoverPortal",[E,F]=t(D,{forceMount:void 0}),G=a=>{let{__scopePopover:c,forceMount:d,children:e,container:f}=a,g=x(D,c);return(0,b.jsx)(E,{scope:c,forceMount:d,children:(0,b.jsx)(m.Presence,{present:d||g.open,children:(0,b.jsx)(l.Portal,{asChild:!0,container:f,children:e})})})};G.displayName=D;var H="PopoverContent",I=c.forwardRef((a,c)=>{let d=F(H,a.__scopePopover),{forceMount:e=d.forceMount,...f}=a,g=x(H,a.__scopePopover);return(0,b.jsx)(m.Presence,{present:e||g.open,children:g.modal?(0,b.jsx)(K,{...f,ref:c}):(0,b.jsx)(L,{...f,ref:c})})});I.displayName=H;var J=(0,o.createSlot)("PopoverContent.RemoveScroll"),K=c.forwardRef((a,f)=>{let g=x(H,a.__scopePopover),h=c.useRef(null),i=(0,e.useComposedRefs)(f,h),j=c.useRef(!1);return c.useEffect(()=>{let a=h.current;if(a)return(0,q.hideOthers)(a)},[]),(0,b.jsx)(r.RemoveScroll,{as:J,allowPinchZoom:!0,children:(0,b.jsx)(M,{...a,ref:i,trapFocus:g.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,d.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),j.current||g.triggerRef.current?.focus()}),onPointerDownOutside:(0,d.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;j.current=2===b.button||c},{checkForDefaultPrevented:!1}),onFocusOutside:(0,d.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),L=c.forwardRef((a,d)=>{let e=x(H,a.__scopePopover),f=c.useRef(!1),g=c.useRef(!1);return(0,b.jsx)(M,{...a,ref:d,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(f.current||e.triggerRef.current?.focus(),b.preventDefault()),f.current=!1,g.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(f.current=!0,"pointerdown"===b.detail.originalEvent.type&&(g.current=!0));let c=b.target;e.triggerRef.current?.contains(c)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&g.current&&b.preventDefault()}})}),M=c.forwardRef((a,c)=>{let{__scopePopover:d,trapFocus:e,onOpenAutoFocus:f,onCloseAutoFocus:j,disableOutsidePointerEvents:l,onEscapeKeyDown:m,onPointerDownOutside:n,onFocusOutside:o,onInteractOutside:p,...q}=a,r=x(H,d),s=v(d);return(0,h.useFocusGuards)(),(0,b.jsx)(i.FocusScope,{asChild:!0,loop:!0,trapped:e,onMountAutoFocus:f,onUnmountAutoFocus:j,children:(0,b.jsx)(g.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:p,onEscapeKeyDown:m,onPointerDownOutside:n,onFocusOutside:o,onDismiss:()=>r.onOpenChange(!1),children:(0,b.jsx)(k.Content,{"data-state":Q(r.open),role:"dialog",id:r.contentId,...s,...q,ref:c,style:{...q.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),N="PopoverClose",O=c.forwardRef((a,c)=>{let{__scopePopover:e,...f}=a,g=x(N,e);return(0,b.jsx)(n.Primitive.button,{type:"button",...f,ref:c,onClick:(0,d.composeEventHandlers)(a.onClick,()=>g.onOpenChange(!1))})});O.displayName=N;var P=c.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=v(d);return(0,b.jsx)(k.Arrow,{...f,...e,ref:c})});function Q(a){return a?"open":"closed"}P.displayName="PopoverArrow",a.s(["Anchor",()=>A,"Arrow",()=>P,"Close",()=>O,"Content",()=>I,"Popover",()=>y,"PopoverAnchor",()=>A,"PopoverArrow",()=>P,"PopoverClose",()=>O,"PopoverContent",()=>I,"PopoverPortal",()=>G,"PopoverTrigger",()=>C,"Portal",()=>G,"Root",()=>y,"Trigger",()=>C,"createPopoverScope",()=>u],61452);var R=a.i(61452),R=R,S=a.i(85536);let T=R.Root,U=R.Trigger;R.Anchor;let V=c.forwardRef(({className:a,align:c="center",sideOffset:d=4,...e},f)=>(0,b.jsx)(R.Portal,{children:(0,b.jsx)(R.Content,{ref:f,align:c,sideOffset:d,className:(0,S.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none",a),...e})}));V.displayName=R.Content.displayName,a.s(["Popover",()=>T,"PopoverContent",()=>V,"PopoverTrigger",()=>U],80646)},52107,74433,a=>{"use strict";var b=a.i(25674);let c=(0,b.createServerReference)("009393a77726a5aaaae4c3f3eabeba7a21ab963536",b.callServer,void 0,b.findSourceMapURL,"getAllAgentModels");a.s(["getAllAgentModels",()=>c],52107);let d=(0,b.createServerReference)("60b5e7b5fe96be1751e26cd6ab08e26ff05d6ab1db",b.callServer,void 0,b.findSourceMapURL,"updateAgentAndModel");a.s(["updateAgentAndModel",()=>d],74433)},96867,61781,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(59653),e=a.i(6175),f=a.i(7420),g=a.i(17329),h=a.i(64005),i=a.i(74432),j=a.i(66873),k="Switch",[l,m]=(0,f.createContextScope)(k),[n,o]=l(k),p=c.forwardRef((a,f)=>{let{__scopeSwitch:h,name:i,checked:l,defaultChecked:m,required:o,disabled:p,value:q="on",onCheckedChange:r,form:u,...v}=a,[w,x]=c.useState(null),y=(0,e.useComposedRefs)(f,a=>x(a)),z=c.useRef(!1),A=!w||u||!!w.closest("form"),[B,C]=(0,g.useControllableState)({prop:l,defaultProp:m??!1,onChange:r,caller:k});return(0,b.jsxs)(n,{scope:h,checked:B,disabled:p,children:[(0,b.jsx)(j.Primitive.button,{type:"button",role:"switch","aria-checked":B,"aria-required":o,"data-state":t(B),"data-disabled":p?"":void 0,disabled:p,value:q,...v,ref:y,onClick:(0,d.composeEventHandlers)(a.onClick,a=>{C(a=>!a),A&&(z.current=a.isPropagationStopped(),z.current||a.stopPropagation())})}),A&&(0,b.jsx)(s,{control:w,bubbles:!z.current,name:i,value:q,checked:B,required:o,disabled:p,form:u,style:{transform:"translateX(-100%)"}})]})});p.displayName=k;var q="SwitchThumb",r=c.forwardRef((a,c)=>{let{__scopeSwitch:d,...e}=a,f=o(q,d);return(0,b.jsx)(j.Primitive.span,{"data-state":t(f.checked),"data-disabled":f.disabled?"":void 0,...e,ref:c})});r.displayName=q;var s=c.forwardRef(({__scopeSwitch:a,control:d,checked:f,bubbles:g=!0,...j},k)=>{let l=c.useRef(null),m=(0,e.useComposedRefs)(l,k),n=(0,h.usePrevious)(f),o=(0,i.useSize)(d);return c.useEffect(()=>{let a=l.current;if(!a)return;let b=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(n!==f&&b){let c=new Event("click",{bubbles:g});b.call(a,f),a.dispatchEvent(c)}},[n,f,g]),(0,b.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:f,...j,tabIndex:-1,ref:m,style:{...j.style,...o,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function t(a){return a?"checked":"unchecked"}s.displayName="SwitchBubbleInput",a.s(["Root",()=>p,"Switch",()=>p,"SwitchThumb",()=>r,"Thumb",()=>r,"createSwitchScope",()=>m],91918);var u=a.i(91918),u=u,v=a.i(85536);function w({className:a,size:c="default",...d}){return(0,b.jsx)(u.Root,{"data-slot":"switch","data-size":c,className:(0,v.cn)("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6",a),...d,children:(0,b.jsx)(u.Thumb,{"data-slot":"switch-thumb",className:(0,v.cn)("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}a.s(["Switch",()=>w],96867);var x=a.i(72016),y=a.i(94132),z=a.i(3410),A=a.i(52107),B=a.i(74433),C=a.i(17606),D=a.i(83852),E=a.i(18948),F=a.i(80646);function G({initialAgentType:a,initialModel:d,onAgentModelChange:e,disabled:f,className:g,mode:h}){let[i,j]=c.useState(!1),[k,l]=c.useState([]),[m,n]=c.useState(!0),[o,p]=c.useState(a),[q,r]=c.useState(d),[s,t]=c.useState(null),[u,w]=c.useState(0),[G,H]=c.useState(null);c.useEffect(()=>{(0,A.getAllAgentModels)().then(l).finally(()=>n(!1))},[]),c.useEffect(()=>{if(!i){let a=setTimeout(()=>{w(0),H(null)},150);return()=>clearTimeout(a)}},[i]);let I=async(a,b)=>{if(j(!1),a!==o||b!==q){if("override"===h){p(a),r(b),e?.(a,b);return}p(a),r(b),e?.(a,b),t(null);try{let c=await (0,B.updateAgentAndModel)(a,b||null);c.ok||(p(o),r(q),e?.(o,q),t(c.error??"Failed to save"))}catch{p(o),r(q),e?.(o,q),t("Failed to save")}}},J=(0,C.getAgentTypeIcon)(o),K=k.find(a=>a.agentType===o)?.label??o,L=q?(0,D.getModelMeta)(q).displayName||q:null,M=G?k.find(a=>a.agentType===G):null;return(0,b.jsxs)("div",{className:(0,v.cn)("flex flex-col gap-1",g),children:[(0,b.jsxs)(F.Popover,{open:i,onOpenChange:j,children:[(0,b.jsx)(F.PopoverTrigger,{asChild:!0,children:(0,b.jsx)(E.Button,{variant:"outline",role:"combobox","aria-expanded":i,disabled:(f??!1)||m,className:"w-auto cursor-pointer justify-start font-normal hover:border-violet-300 hover:bg-violet-50/50 dark:hover:border-violet-700 dark:hover:bg-violet-950/30",children:(0,b.jsxs)("span",{className:"flex items-center gap-2 truncate",children:[(0,b.jsx)(J,{className:"h-4 w-4 shrink-0"}),m?"Loading…":(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:K}),L?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted-foreground/50 text-xs",children:"·"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:L})]}):null]})]})})}),(0,b.jsx)(F.PopoverContent,{className:"w-(--radix-popover-trigger-width) overflow-hidden p-0",align:"start",children:(0,b.jsxs)("div",{className:"flex transition-transform duration-200 ease-in-out",style:{transform:`translateX(${1===u?"-50%":"0%"})`,width:"200%"},children:[(0,b.jsxs)("div",{className:"w-1/2 shrink-0",children:[(0,b.jsx)("div",{className:"text-muted-foreground border-b px-3 py-2 text-xs font-medium",children:"Select agent"}),k.map(a=>{let c=(0,C.getAgentTypeIcon)(a.agentType),d=o===a.agentType,e=a.models.length>0;return(0,b.jsxs)("button",{type:"button",className:(0,v.cn)("flex w-full cursor-pointer items-center gap-2.5 px-3 py-2 text-xs transition-colors","hover:bg-accent hover:text-accent-foreground",d&&"bg-accent/50"),onClick:()=>{e?(H(a.agentType),requestAnimationFrame(()=>{requestAnimationFrame(()=>w(1))})):I(a.agentType,"")},children:[(0,b.jsx)(c,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{className:"flex-1 text-left",children:a.label}),d&&!e?(0,b.jsx)(x.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null,e?(0,b.jsx)(z.ChevronRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}):null]},a.agentType)})]}),(0,b.jsx)("div",{className:"w-1/2 shrink-0",children:M?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{type:"button",className:"text-muted-foreground hover:text-foreground flex w-full cursor-pointer items-center gap-1.5 border-b px-3 py-2 text-xs font-medium transition-colors",onClick:()=>{w(0),setTimeout(()=>H(null),220)},children:[(0,b.jsx)(y.ChevronLeft,{className:"h-3.5 w-3.5"}),M.label]}),M.models.map(a=>{let c=o===M.agentType&&q===a.id;return(0,b.jsxs)("button",{type:"button",className:(0,v.cn)("flex w-full cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors","hover:bg-accent hover:text-accent-foreground",c&&"bg-accent/50"),onClick:()=>I(M.agentType,a.id),children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{className:"text-xs font-medium",children:a.displayName}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:a.description})]}),c?(0,b.jsx)(x.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null]},a.id)})]}):null})]})})]}),!!s&&(0,b.jsx)("p",{className:"text-destructive text-sm",children:s})]})}a.s(["AgentModelPicker",()=>G],61781)}];
2
-
3
- //# sourceMappingURL=src_presentation_web_4f99488d._.js.map
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,10714,99105,e=>{"use strict";var t=e.i(3645);let r=(0,t.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);e.s(["default",()=>r],10714);let a=(0,t.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>a],99105)},33548,e=>{"use strict";let t=(0,e.i(3645).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],33548)},95812,35e3,e=>{"use strict";let t=(0,e.i(3645).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",()=>t],95812);var r=e.i(80986);e.s(["CheckCircle2",()=>r.default],35e3)},19933,e=>{"use strict";let t=(0,e.i(3645).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",()=>t],19933)},8986,2453,19898,35167,e=>{"use strict";let t=(0,e.i(3645).default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);e.s(["Code2",()=>t],8986);var r=e.i(21023);let a=(0,r.createServerReference)("406ba375e7875c48e70f234c086261727c2546d988",r.callServer,void 0,r.findSourceMapURL,"openIde");e.s(["openIde",()=>a],2453);let l=(0,r.createServerReference)("40dfe55d9f7d559b1d6847f33dcf14f734c2458340",r.callServer,void 0,r.findSourceMapURL,"openShell");e.s(["openShell",()=>l],19898);let c=(0,r.createServerReference)("40ca387022d53da39cb433acd226222102d1f72c12",r.callServer,void 0,r.findSourceMapURL,"openFolder");e.s(["openFolder",()=>c],35167)},53360,e=>{"use strict";let t=(0,e.i(3645).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);e.s(["Zap",()=>t],53360)},23405,e=>{"use strict";var t=e.i(79054);function r(e){let r=t.useRef({value:e,previous:e});return t.useMemo(()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous),[e])}e.s(["usePrevious",()=>r])},76016,e=>{"use strict";let t=(0,e.i(3645).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],76016)},11345,e=>{"use strict";let t=(0,e.i(3645).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",()=>t],11345)},97667,e=>{"use strict";var t=e.i(1012);e.s(["CheckIcon",()=>t.default])},23925,1012,e=>{"use strict";let t=(0,e.i(3645).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",()=>t],1012),e.s(["Check",()=>t],23925)},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},1650,e=>{"use strict";e.i(11495),e.s([])},54793,7729,e=>{"use strict";var t=e.i(20314),r=e.i(31777);function a({icon:e,title:a,description:l,action:c,className:s,...u}){return(0,t.jsxs)("div",{className:(0,r.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",s),...u,children:[e?(0,t.jsx)("div",{className:"text-muted-foreground",children:e}):null,(0,t.jsx)("h3",{className:"text-lg font-semibold",children:a}),l?(0,t.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:l}):null,c?(0,t.jsx)("div",{className:"mt-2",children:c}):null]})}e.s(["EmptyState",()=>a],7729),e.s([],54793)},53650,62308,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("009393a77726a5aaaae4c3f3eabeba7a21ab963536",t.callServer,void 0,t.findSourceMapURL,"getAllAgentModels");e.s(["getAllAgentModels",()=>r],53650);let a=(0,t.createServerReference)("60b5e7b5fe96be1751e26cd6ab08e26ff05d6ab1db",t.callServer,void 0,t.findSourceMapURL,"updateAgentAndModel");e.s(["updateAgentAndModel",()=>a],62308)},94681,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("400b62495d831d4f46ba86f78cade7348eaa57917e",t.callServer,void 0,t.findSourceMapURL,"addRepository");e.s(["addRepository",()=>r])},76852,e=>{"use strict";var t=e.i(79054),r=e.i(2453),a=e.i(19898),l=e.i(35167),c=e.i(21023);let s=(0,c.createServerReference)("403da3dd92afaff72539563a4cb6b3dfdb3b289f71",c.callServer,void 0,c.findSourceMapURL,"syncRepository");function u(e){let[c,u]=(0,t.useState)(!1),[n,i]=(0,t.useState)(!1),[d,o]=(0,t.useState)(!1),[f,p]=(0,t.useState)(!1),[h,v]=(0,t.useState)(null),[y,m]=(0,t.useState)(null),[S,b]=(0,t.useState)(null),[k,x]=(0,t.useState)(null),R=(0,t.useRef)(null),g=(0,t.useRef)(null),M=(0,t.useRef)(null),C=(0,t.useRef)(null);(0,t.useEffect)(()=>()=>{R.current&&clearTimeout(R.current),g.current&&clearTimeout(g.current),M.current&&clearTimeout(M.current),C.current&&clearTimeout(C.current)},[]);let A=(0,t.useCallback)(async(t,r,a,l,c)=>{if(e&&!c){l.current&&clearTimeout(l.current),r(!0),a(null);try{let e=await t();if(!e.success){let t=e.error??"An unexpected error occurred";a(t),l.current=setTimeout(()=>a(null),5e3)}}catch(e){a(e instanceof Error?e.message:"An unexpected error occurred"),l.current=setTimeout(()=>a(null),5e3)}finally{r(!1)}}},[e]);return{openInIde:(0,t.useCallback)(()=>A(()=>(0,r.openIde)({repositoryPath:e.repositoryPath}),u,v,R,c),[A,c,e]),openInShell:(0,t.useCallback)(()=>A(()=>(0,a.openShell)({repositoryPath:e.repositoryPath}),i,m,g,n),[A,n,e]),openFolder:(0,t.useCallback)(()=>A(()=>(0,l.openFolder)(e.repositoryPath),o,b,M,d),[A,d,e]),syncMain:(0,t.useCallback)(()=>A(()=>s(e.repositoryId??""),p,x,C,f),[A,f,e]),ideLoading:c,shellLoading:n,folderLoading:d,syncLoading:f,ideError:h,shellError:y,folderError:S,syncError:k}}e.s(["useRepositoryActions",()=>u],76852)}]);