@shepai/cli 1.82.0 → 1.83.0-pr255.038c1c2

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 (138) hide show
  1. package/apis/json-schema/Feature.yaml +5 -0
  2. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +9 -0
  3. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
  4. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +1 -0
  5. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  6. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +17 -0
  7. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.d.ts.map +1 -1
  8. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.js +3 -1
  9. package/dist/src/presentation/web/app/build-feature-node-data.d.ts +2 -0
  10. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
  11. package/dist/src/presentation/web/app/build-feature-node-data.js +1 -0
  12. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  13. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +5 -2
  14. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -1
  15. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +6 -6
  16. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +2 -0
  17. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +1 -1
  18. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +18 -0
  19. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +2 -0
  20. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  21. package/dist/tsconfig.build.tsbuildinfo +1 -1
  22. package/package.json +1 -1
  23. package/web/.next/BUILD_ID +1 -1
  24. package/web/.next/build-manifest.json +2 -2
  25. package/web/.next/fallback-build-manifest.json +2 -2
  26. package/web/.next/prerender-manifest.json +3 -3
  27. package/web/.next/required-server-files.js +1 -1
  28. package/web/.next/required-server-files.json +1 -1
  29. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +18 -18
  30. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  31. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  32. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +21 -21
  33. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  34. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  35. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  36. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  37. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  38. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +18 -18
  39. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  40. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  41. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +21 -21
  42. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  43. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  44. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
  45. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  46. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  47. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  48. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  49. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  50. package/web/.next/server/app/_global-error.html +2 -2
  51. package/web/.next/server/app/_global-error.rsc +1 -1
  52. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  53. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  54. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  55. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  56. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  57. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  58. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  59. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  60. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  61. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  62. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  63. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  65. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  66. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  67. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  68. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  69. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  70. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
  71. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +1 -1
  72. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
  73. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +1 -1
  74. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  75. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  76. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  77. package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
  78. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  79. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  80. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  81. package/web/.next/server/chunks/ssr/[root-of-the-server]__b3a4cef4._.js +1 -1
  82. package/web/.next/server/chunks/ssr/[root-of-the-server]__b3a4cef4._.js.map +1 -1
  83. package/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js +1 -1
  84. package/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js.map +1 -1
  85. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +2 -2
  86. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  87. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  88. package/web/.next/server/chunks/ssr/{_d5ee0401._.js → _00e0cbac._.js} +2 -2
  89. package/web/.next/server/chunks/ssr/{_d5ee0401._.js.map → _00e0cbac._.js.map} +1 -1
  90. package/web/.next/server/chunks/ssr/_1e3cf73b._.js +1 -1
  91. package/web/.next/server/chunks/ssr/_1e3cf73b._.js.map +1 -1
  92. package/web/.next/server/chunks/ssr/_63868199._.js +1 -1
  93. package/web/.next/server/chunks/ssr/_63868199._.js.map +1 -1
  94. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  95. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  96. package/web/.next/server/chunks/ssr/_c3a8bcb1._.js +1 -1
  97. package/web/.next/server/chunks/ssr/_c3a8bcb1._.js.map +1 -1
  98. package/web/.next/server/chunks/ssr/{_d73dc574._.js → _d2b6ddac._.js} +2 -2
  99. package/web/.next/server/chunks/ssr/{_d73dc574._.js.map → _d2b6ddac._.js.map} +1 -1
  100. package/web/.next/server/chunks/ssr/{_91f2c35a._.js → _ea17973c._.js} +2 -2
  101. package/web/.next/server/chunks/ssr/{_91f2c35a._.js.map → _ea17973c._.js.map} +1 -1
  102. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  103. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  104. package/web/.next/server/chunks/ssr/src_presentation_web_7efa14ca._.js +1 -1
  105. package/web/.next/server/chunks/ssr/src_presentation_web_7efa14ca._.js.map +1 -1
  106. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
  107. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +1 -1
  108. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  109. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  110. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  111. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  112. package/web/.next/server/chunks/ssr/src_presentation_web_b59d79db._.js +1 -1
  113. package/web/.next/server/chunks/ssr/src_presentation_web_b59d79db._.js.map +1 -1
  114. package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +2 -2
  115. package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js.map +1 -1
  116. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  117. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  118. package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js +2 -2
  119. package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js.map +1 -1
  120. package/web/.next/server/pages/500.html +2 -2
  121. package/web/.next/server/server-reference-manifest.js +1 -1
  122. package/web/.next/server/server-reference-manifest.json +28 -28
  123. package/web/.next/static/chunks/{8295f7b997bf3c7c.js → 0cdbd43c4a1ab350.js} +1 -1
  124. package/web/.next/static/chunks/{0184728dcf183c23.js → 0da43a1913348ab8.js} +1 -1
  125. package/web/.next/static/chunks/1288a4bb8c549e7e.css +2 -0
  126. package/web/.next/static/chunks/{5fb5612d1b15319d.js → 291b1c828a5ba679.js} +1 -1
  127. package/web/.next/static/chunks/439e38ab92d61dc1.js +1 -0
  128. package/web/.next/static/chunks/{1b619b3e9a807178.js → 9d1bcf54372aeeb9.js} +1 -1
  129. package/web/.next/static/chunks/{bcd0b0ea9d74d022.js → a1f1afe1e696f13e.js} +1 -1
  130. package/web/.next/static/chunks/{3474e592b041c8cd.js → a665fdf8da423c8c.js} +1 -1
  131. package/web/.next/static/chunks/{f17edda49b7d1424.js → afe49b25a50a960e.js} +1 -1
  132. package/web/.next/static/chunks/{0f7e65ce6ca0b469.js → e0a9787c52482c65.js} +1 -1
  133. package/web/.next/static/chunks/{6738ce11453eaaf1.js → ea6038412128edd7.js} +1 -1
  134. package/web/.next/static/chunks/96bab6d3820504f3.css +0 -2
  135. package/web/.next/static/chunks/f3ef756dd15f765c.js +0 -1
  136. /package/web/.next/static/{RucmHYkKuWoEw0Mwoobk8 → B-DL5lhczp7hbbXnUsBFV}/_buildManifest.js +0 -0
  137. /package/web/.next/static/{RucmHYkKuWoEw0Mwoobk8 → B-DL5lhczp7hbbXnUsBFV}/_clientMiddlewareManifest.json +0 -0
  138. /package/web/.next/static/{RucmHYkKuWoEw0Mwoobk8 → B-DL5lhczp7hbbXnUsBFV}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "node": {
3
- "007b889d1cd3e8b07b9e89c397ca2bd7aaf42debc4": {
3
+ "005126a5733f2878a029c0d385a884f4c2245622fe": {
4
4
  "workers": {
5
5
  "app/(dashboard)/@drawer/create/page": {
6
6
  "moduleId": 5744,
@@ -92,7 +92,7 @@
92
92
  "filename": "src/presentation/web/app/actions/pick-folder.ts",
93
93
  "exportedName": "pickFolder"
94
94
  },
95
- "4032365d71d742fcdf17c7f34427c8fb43af7bd765": {
95
+ "40e6e643ea6fc17cca46a920d1873645a42c8c89cd": {
96
96
  "workers": {
97
97
  "app/(dashboard)/@drawer/create/page": {
98
98
  "moduleId": 5744,
@@ -163,7 +163,7 @@
163
163
  "filename": "src/presentation/web/app/actions/get-deployment-logs.ts",
164
164
  "exportedName": "getDeploymentLogs"
165
165
  },
166
- "402fe2cae09c90396a1b1b9a3a3b0f7599d2108b81": {
166
+ "4036646a22f5215fbca215b343c93fc3ce1ad83d25": {
167
167
  "workers": {
168
168
  "app/(dashboard)/@drawer/create/page": {
169
169
  "moduleId": 5744,
@@ -234,7 +234,7 @@
234
234
  "filename": "src/presentation/web/app/actions/deploy-feature.ts",
235
235
  "exportedName": "deployFeature"
236
236
  },
237
- "408247e0d500645e29259a152c04bab2be61d772c5": {
237
+ "4015c2e93685f4c21a5324f8e2b2d4dfa5622d9ef7": {
238
238
  "workers": {
239
239
  "app/(dashboard)/@drawer/create/page": {
240
240
  "moduleId": 5744,
@@ -305,7 +305,7 @@
305
305
  "filename": "src/presentation/web/app/actions/deploy-repository.ts",
306
306
  "exportedName": "deployRepository"
307
307
  },
308
- "40b67d515a2ca6b4df90237896eb8a0082c4d09c60": {
308
+ "4082c9ab9c7ae6506e13a3c389049fc13f4f928f8f": {
309
309
  "workers": {
310
310
  "app/(dashboard)/@drawer/create/page": {
311
311
  "moduleId": 5744,
@@ -376,7 +376,7 @@
376
376
  "filename": "src/presentation/web/app/actions/stop-deployment.ts",
377
377
  "exportedName": "stopDeployment"
378
378
  },
379
- "40d9f1ed0e3ac97fe5172deffb543c86e8ed649c95": {
379
+ "408644664f412efae59b5344aeaa5d4358aba2080e": {
380
380
  "workers": {
381
381
  "app/(dashboard)/@drawer/create/page": {
382
382
  "moduleId": 5744,
@@ -447,7 +447,7 @@
447
447
  "filename": "src/presentation/web/app/actions/get-deployment-status.ts",
448
448
  "exportedName": "getDeploymentStatus"
449
449
  },
450
- "40918a0f9775086c5163410b881ea38ca449164cf2": {
450
+ "40d47af3aa46760366b9fc766d66bb856d9dbf4d98": {
451
451
  "workers": {
452
452
  "app/(dashboard)/@drawer/create/page": {
453
453
  "moduleId": 5744,
@@ -504,7 +504,7 @@
504
504
  "filename": "src/presentation/web/app/actions/open-ide.ts",
505
505
  "exportedName": "openIde"
506
506
  },
507
- "40f975f084c517f98737b7dba7385470e4996fcaac": {
507
+ "4043ddb7c20e3409ec8930224ac8fd4b24d68f6ff0": {
508
508
  "workers": {
509
509
  "app/(dashboard)/@drawer/create/page": {
510
510
  "moduleId": 5744,
@@ -561,7 +561,7 @@
561
561
  "filename": "src/presentation/web/app/actions/open-shell.ts",
562
562
  "exportedName": "openShell"
563
563
  },
564
- "406f99aaa763da6b5e9518588e83039786542d8f87": {
564
+ "40b636cd842f86b34eb50fc928a0ef3c30ecb19016": {
565
565
  "workers": {
566
566
  "app/(dashboard)/@drawer/create/page": {
567
567
  "moduleId": 5744,
@@ -618,7 +618,7 @@
618
618
  "filename": "src/presentation/web/app/actions/open-folder.ts",
619
619
  "exportedName": "openFolder"
620
620
  },
621
- "40e794d3bb84fc02b94732b9c43cef731a6eafb356": {
621
+ "40ac663b6603325c2223d0031be3427b5524bda971": {
622
622
  "workers": {
623
623
  "app/(dashboard)/@drawer/create/page": {
624
624
  "moduleId": 5744,
@@ -675,7 +675,7 @@
675
675
  "filename": "src/presentation/web/app/actions/delete-feature.ts",
676
676
  "exportedName": "deleteFeature"
677
677
  },
678
- "40231c440308ed7a91e5d7ca0318dc8e92067d1a5e": {
678
+ "402cd22313057d892a53ab68dbb229d677af895f1f": {
679
679
  "workers": {
680
680
  "app/(dashboard)/@drawer/create/page": {
681
681
  "moduleId": 5744,
@@ -732,7 +732,7 @@
732
732
  "filename": "src/presentation/web/app/actions/add-repository.ts",
733
733
  "exportedName": "addRepository"
734
734
  },
735
- "40d0f504ac8f3b98d7afeda214878cbd4dd11e4610": {
735
+ "40fc47f48d47ff3a39553691827105f48c5d886f7f": {
736
736
  "workers": {
737
737
  "app/(dashboard)/@drawer/create/page": {
738
738
  "moduleId": 5744,
@@ -789,7 +789,7 @@
789
789
  "filename": "src/presentation/web/app/actions/delete-repository.ts",
790
790
  "exportedName": "deleteRepository"
791
791
  },
792
- "404d77687e66f989aee77f89fb45aee39007fdd48a": {
792
+ "404667e2469f857b636bd298ac5fbf4740c9a749a8": {
793
793
  "workers": {
794
794
  "app/(dashboard)/@drawer/create/page": {
795
795
  "moduleId": 5744,
@@ -846,7 +846,7 @@
846
846
  "filename": "src/presentation/web/app/actions/get-feature-metadata.ts",
847
847
  "exportedName": "getFeatureMetadata"
848
848
  },
849
- "00aef9f0c3a1a709228404791db55c954cca24c0bb": {
849
+ "00a5ae70999835191cde28c16cc6da16457cf5f6b2": {
850
850
  "workers": {
851
851
  "app/(dashboard)/@drawer/create/page": {
852
852
  "moduleId": 5744,
@@ -903,7 +903,7 @@
903
903
  "filename": "src/presentation/web/app/actions/get-graph-data.ts",
904
904
  "exportedName": "fetchGraphData"
905
905
  },
906
- "000c751a1e47a32be1b0ec014ab79f01967c210b69": {
906
+ "00846c914b2dbb7fcceaedcd27e13e1bdc48826f0c": {
907
907
  "workers": {
908
908
  "app/(dashboard)/@drawer/create/page": {
909
909
  "moduleId": 5744,
@@ -925,7 +925,7 @@
925
925
  "filename": "src/presentation/web/app/actions/get-workflow-defaults.ts",
926
926
  "exportedName": "getWorkflowDefaults"
927
927
  },
928
- "403aeab371e2eeef87e997266fd33c5b2de427d73b": {
928
+ "409653287b384a0b276314ce0bb917333df3ef70f9": {
929
929
  "workers": {
930
930
  "app/(dashboard)/@drawer/create/page": {
931
931
  "moduleId": 5744,
@@ -947,7 +947,7 @@
947
947
  "filename": "src/presentation/web/app/actions/create-feature.ts",
948
948
  "exportedName": "createFeature"
949
949
  },
950
- "00df4e0f8f605a75fc8f0318fc0f5925c773e8589e": {
950
+ "00e53d1c3ec2cc1aa41ecc6d1008f80e36ace67dd0": {
951
951
  "workers": {
952
952
  "app/(dashboard)/@drawer/create/page": {
953
953
  "moduleId": 5744,
@@ -976,7 +976,7 @@
976
976
  "filename": "src/presentation/web/app/actions/get-all-agent-models.ts",
977
977
  "exportedName": "getAllAgentModels"
978
978
  },
979
- "60e4df122418aa9d03dd4f41b5fb26185ed99ef4a7": {
979
+ "6036c575dc089c89e8af757a57dc57b3536061e771": {
980
980
  "workers": {
981
981
  "app/(dashboard)/@drawer/create/page": {
982
982
  "moduleId": 5744,
@@ -1005,7 +1005,7 @@
1005
1005
  "filename": "src/presentation/web/app/actions/update-agent-and-model.ts",
1006
1006
  "exportedName": "updateAgentAndModel"
1007
1007
  },
1008
- "60b4709aac1e8f52a4c3fa1309523eaed9041dad64": {
1008
+ "603bc90a5b6bbddc4382f61c5403490147dd3d3d01": {
1009
1009
  "workers": {
1010
1010
  "app/(dashboard)/@drawer/feature/[featureId]/page": {
1011
1011
  "moduleId": 6025,
@@ -1027,7 +1027,7 @@
1027
1027
  "filename": "src/presentation/web/app/actions/approve-feature.ts",
1028
1028
  "exportedName": "approveFeature"
1029
1029
  },
1030
- "60a25ff6636ee1d49dbe87e62fb02fa0b38da248ed": {
1030
+ "60a128eda11688f8d3a07ae120c26d2d84730e9397": {
1031
1031
  "workers": {
1032
1032
  "app/(dashboard)/@drawer/feature/[featureId]/page": {
1033
1033
  "moduleId": 6025,
@@ -1049,7 +1049,7 @@
1049
1049
  "filename": "src/presentation/web/app/actions/reject-feature.ts",
1050
1050
  "exportedName": "rejectFeature"
1051
1051
  },
1052
- "40ffcd8fbb5bde5f0c35a6150ccace6dbbbeb07299": {
1052
+ "40497dd07c2365845e77ea22134b0869aa4659246e": {
1053
1053
  "workers": {
1054
1054
  "app/(dashboard)/@drawer/feature/[featureId]/page": {
1055
1055
  "moduleId": 6025,
@@ -1071,7 +1071,7 @@
1071
1071
  "filename": "src/presentation/web/app/actions/get-feature-artifact.ts",
1072
1072
  "exportedName": "getFeatureArtifact"
1073
1073
  },
1074
- "40768ee4ed099f9190a2a73edace29d1b8edbd2b77": {
1074
+ "40ae4f2eaf666ac692f529a8bb1a5887589bbc8005": {
1075
1075
  "workers": {
1076
1076
  "app/(dashboard)/@drawer/feature/[featureId]/page": {
1077
1077
  "moduleId": 6025,
@@ -1093,7 +1093,7 @@
1093
1093
  "filename": "src/presentation/web/app/actions/get-research-artifact.ts",
1094
1094
  "exportedName": "getResearchArtifact"
1095
1095
  },
1096
- "4085cece71ecce9b43ba7e91ab378acf78ea54de70": {
1096
+ "40c2cebe89a57af59b84797233f839970f96af8fa8": {
1097
1097
  "workers": {
1098
1098
  "app/(dashboard)/@drawer/feature/[featureId]/page": {
1099
1099
  "moduleId": 6025,
@@ -1115,7 +1115,7 @@
1115
1115
  "filename": "src/presentation/web/app/actions/get-merge-review-data.ts",
1116
1116
  "exportedName": "getMergeReviewData"
1117
1117
  },
1118
- "40b327f6113b1b64ab6956d28440b24cb1a25511ce": {
1118
+ "407415cdda997204a2746830459ff4b491effb90b3": {
1119
1119
  "workers": {
1120
1120
  "app/(dashboard)/@drawer/feature/[featureId]/page": {
1121
1121
  "moduleId": 6025,
@@ -1137,7 +1137,7 @@
1137
1137
  "filename": "src/presentation/web/app/actions/get-feature-phase-timings.ts",
1138
1138
  "exportedName": "getFeaturePhaseTimings"
1139
1139
  },
1140
- "40254990da00ece2862fe3265afa4da22d6f2563ea": {
1140
+ "40f8e156c306bbfe83c0bd7aa8fe3f78c8cc461f34": {
1141
1141
  "workers": {
1142
1142
  "app/(dashboard)/@drawer/feature/[featureId]/page": {
1143
1143
  "moduleId": 6025,
@@ -1159,7 +1159,7 @@
1159
1159
  "filename": "src/presentation/web/app/actions/get-feature-plan.ts",
1160
1160
  "exportedName": "getFeaturePlan"
1161
1161
  },
1162
- "00aee84be824bf081dfe04b7eb40a7f615d331cdb3": {
1162
+ "00538001a3a83caddf150225aa2d790fe764597c01": {
1163
1163
  "workers": {
1164
1164
  "app/settings/page": {
1165
1165
  "moduleId": 67125,
@@ -1174,7 +1174,7 @@
1174
1174
  "filename": "src/presentation/web/app/actions/load-settings.ts",
1175
1175
  "exportedName": "loadSettings"
1176
1176
  },
1177
- "40e234eced29a0fb83cb2de57dee1a7c3f89aee0b2": {
1177
+ "403cfb6446a5c5070bd6e48f4a05facc234facbc12": {
1178
1178
  "workers": {
1179
1179
  "app/settings/page": {
1180
1180
  "moduleId": 67125,
@@ -1191,5 +1191,5 @@
1191
1191
  }
1192
1192
  },
1193
1193
  "edge": {},
1194
- "encryptionKey": "wPOJIz4Xoyni4MQckWPZlZBMzt56nHMmMRcISyAKFCM="
1194
+ "encryptionKey": "6ptIDHGkIuvCnkqGjew7Yt6Y9+MSAIL5MN+hL3/mCAA="
1195
1195
  }
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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)},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)},93752,e=>{"use strict";let t=(0,e.i(3645).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);e.s(["default",()=>t])},41957,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(87620),s=r.forwardRef((e,r)=>(0,t.jsx)(a.Primitive.label,{...e,ref:r,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));s.displayName="Label",e.s(["Label",()=>s,"Root",()=>s],27572);var o=e.i(27572),o=o,n=e.i(94237),i=e.i(31777);let l=(0,n.cva)("text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)(o.Root,{ref:a,className:(0,i.cn)(l(),e),...r}));d.displayName=o.Root.displayName,e.s(["Label",()=>d],41957)},90382,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(91967),s=e.i(5978),o=e.i(22528),n=e.i(53532),i=e.i(41687),l=e.i(56720),d=e.i(13123),c=e.i(52740),u=e.i(39979),p=e.i(85995),f=e.i(87620),h=e.i(86874),m=e.i(36589),x=e.i(73772),g=e.i(13044),v="Popover",[b,j]=(0,o.createContextScope)(v,[c.createPopperScope]),w=(0,c.createPopperScope)(),[y,C]=b(v),N=e=>{let{__scopePopover:a,children:s,open:o,defaultOpen:n,onOpenChange:i,modal:l=!1}=e,u=w(a),p=r.useRef(null),[f,h]=r.useState(!1),[x,g]=(0,m.useControllableState)({prop:o,defaultProp:n??!1,onChange:i,caller:v});return(0,t.jsx)(c.Root,{...u,children:(0,t.jsx)(y,{scope:a,contentId:(0,d.useId)(),triggerRef:p,open:x,onOpenChange:g,onOpenToggle:r.useCallback(()=>g(e=>!e),[g]),hasCustomAnchor:f,onCustomAnchorAdd:r.useCallback(()=>h(!0),[]),onCustomAnchorRemove:r.useCallback(()=>h(!1),[]),modal:l,children:s})})};N.displayName=v;var k="PopoverAnchor",P=r.forwardRef((e,a)=>{let{__scopePopover:s,...o}=e,n=C(k,s),i=w(s),{onCustomAnchorAdd:l,onCustomAnchorRemove:d}=n;return r.useEffect(()=>(l(),()=>d()),[l,d]),(0,t.jsx)(c.Anchor,{...i,...o,ref:a})});P.displayName=k;var S="PopoverTrigger",T=r.forwardRef((e,r)=>{let{__scopePopover:o,...n}=e,i=C(S,o),l=w(o),d=(0,s.useComposedRefs)(r,i.triggerRef),u=(0,t.jsx)(f.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":$(i.open),...n,ref:d,onClick:(0,a.composeEventHandlers)(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?u:(0,t.jsx)(c.Anchor,{asChild:!0,...l,children:u})});T.displayName=S;var R="PopoverPortal",[A,E]=b(R,{forceMount:void 0}),F=e=>{let{__scopePopover:r,forceMount:a,children:s,container:o}=e,n=C(R,r);return(0,t.jsx)(A,{scope:r,forceMount:a,children:(0,t.jsx)(p.Presence,{present:a||n.open,children:(0,t.jsx)(u.Portal,{asChild:!0,container:o,children:s})})})};F.displayName=R;var M="PopoverContent",D=r.forwardRef((e,r)=>{let a=E(M,e.__scopePopover),{forceMount:s=a.forceMount,...o}=e,n=C(M,e.__scopePopover);return(0,t.jsx)(p.Presence,{present:s||n.open,children:n.modal?(0,t.jsx)(z,{...o,ref:r}):(0,t.jsx)(L,{...o,ref:r})})});D.displayName=M;var O=(0,h.createSlot)("PopoverContent.RemoveScroll"),z=r.forwardRef((e,o)=>{let n=C(M,e.__scopePopover),i=r.useRef(null),l=(0,s.useComposedRefs)(o,i),d=r.useRef(!1);return r.useEffect(()=>{let e=i.current;if(e)return(0,x.hideOthers)(e)},[]),(0,t.jsx)(g.RemoveScroll,{as:O,allowPinchZoom:!0,children:(0,t.jsx)(I,{...e,ref:l,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,a.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),d.current||n.triggerRef.current?.focus()}),onPointerDownOutside:(0,a.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;d.current=2===t.button||r},{checkForDefaultPrevented:!1}),onFocusOutside:(0,a.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),L=r.forwardRef((e,a)=>{let s=C(M,e.__scopePopover),o=r.useRef(!1),n=r.useRef(!1);return(0,t.jsx)(I,{...e,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||s.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,n.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(n.current=!0));let r=t.target;s.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&n.current&&t.preventDefault()}})}),I=r.forwardRef((e,r)=>{let{__scopePopover:a,trapFocus:s,onOpenAutoFocus:o,onCloseAutoFocus:d,disableOutsidePointerEvents:u,onEscapeKeyDown:p,onPointerDownOutside:f,onFocusOutside:h,onInteractOutside:m,...x}=e,g=C(M,a),v=w(a);return(0,i.useFocusGuards)(),(0,t.jsx)(l.FocusScope,{asChild:!0,loop:!0,trapped:s,onMountAutoFocus:o,onUnmountAutoFocus:d,children:(0,t.jsx)(n.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:u,onInteractOutside:m,onEscapeKeyDown:p,onPointerDownOutside:f,onFocusOutside:h,onDismiss:()=>g.onOpenChange(!1),children:(0,t.jsx)(c.Content,{"data-state":$(g.open),role:"dialog",id:g.contentId,...v,...x,ref:r,style:{...x.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)"}})})})}),B="PopoverClose",U=r.forwardRef((e,r)=>{let{__scopePopover:s,...o}=e,n=C(B,s);return(0,t.jsx)(f.Primitive.button,{type:"button",...o,ref:r,onClick:(0,a.composeEventHandlers)(e.onClick,()=>n.onOpenChange(!1))})});U.displayName=B;var H=r.forwardRef((e,r)=>{let{__scopePopover:a,...s}=e,o=w(a);return(0,t.jsx)(c.Arrow,{...o,...s,ref:r})});function $(e){return e?"open":"closed"}H.displayName="PopoverArrow",e.s(["Anchor",()=>P,"Arrow",()=>H,"Close",()=>U,"Content",()=>D,"Popover",()=>N,"PopoverAnchor",()=>P,"PopoverArrow",()=>H,"PopoverClose",()=>U,"PopoverContent",()=>D,"PopoverPortal",()=>F,"PopoverTrigger",()=>T,"Portal",()=>F,"Root",()=>N,"Trigger",()=>T,"createPopoverScope",()=>j],89920);var q=e.i(89920),q=q,G=e.i(31777);let _=q.Root,K=q.Trigger;q.Anchor;let V=r.forwardRef(({className:e,align:r="center",sideOffset:a=4,...s},o)=>(0,t.jsx)(q.Portal,{children:(0,t.jsx)(q.Content,{ref:o,align:r,sideOffset:a,className:(0,G.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",e),...s})}));V.displayName=q.Content.displayName,e.s(["Popover",()=>_,"PopoverContent",()=>V,"PopoverTrigger",()=>K],90382)},51911,23405,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(91967),s=e.i(5978),o=e.i(22528),n=e.i(36589);function i(e){let t=r.useRef({value:e,previous:e});return r.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}e.s(["usePrevious",()=>i],23405);var l=e.i(77624),d=e.i(87620),c="Switch",[u,p]=(0,o.createContextScope)(c),[f,h]=u(c),m=r.forwardRef((e,o)=>{let{__scopeSwitch:i,name:l,checked:u,defaultChecked:p,required:h,disabled:m,value:x="on",onCheckedChange:g,form:j,...w}=e,[y,C]=r.useState(null),N=(0,s.useComposedRefs)(o,e=>C(e)),k=r.useRef(!1),P=!y||j||!!y.closest("form"),[S,T]=(0,n.useControllableState)({prop:u,defaultProp:p??!1,onChange:g,caller:c});return(0,t.jsxs)(f,{scope:i,checked:S,disabled:m,children:[(0,t.jsx)(d.Primitive.button,{type:"button",role:"switch","aria-checked":S,"aria-required":h,"data-state":b(S),"data-disabled":m?"":void 0,disabled:m,value:x,...w,ref:N,onClick:(0,a.composeEventHandlers)(e.onClick,e=>{T(e=>!e),P&&(k.current=e.isPropagationStopped(),k.current||e.stopPropagation())})}),P&&(0,t.jsx)(v,{control:y,bubbles:!k.current,name:l,value:x,checked:S,required:h,disabled:m,form:j,style:{transform:"translateX(-100%)"}})]})});m.displayName=c;var x="SwitchThumb",g=r.forwardRef((e,r)=>{let{__scopeSwitch:a,...s}=e,o=h(x,a);return(0,t.jsx)(d.Primitive.span,{"data-state":b(o.checked),"data-disabled":o.disabled?"":void 0,...s,ref:r})});g.displayName=x;var v=r.forwardRef(({__scopeSwitch:e,control:a,checked:o,bubbles:n=!0,...d},c)=>{let u=r.useRef(null),p=(0,s.useComposedRefs)(u,c),f=i(o),h=(0,l.useSize)(a);return r.useEffect(()=>{let e=u.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(f!==o&&t){let r=new Event("click",{bubbles:n});t.call(e,o),e.dispatchEvent(r)}},[f,o,n]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:o,...d,tabIndex:-1,ref:p,style:{...d.style,...h,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function b(e){return e?"checked":"unchecked"}v.displayName="SwitchBubbleInput",e.s(["Root",()=>m,"Switch",()=>m,"SwitchThumb",()=>g,"Thumb",()=>g,"createSwitchScope",()=>p],95291);var j=e.i(95291),j=j,w=e.i(31777);function y({className:e,size:r="default",...a}){return(0,t.jsx)(j.Root,{"data-slot":"switch","data-size":r,className:(0,w.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",e),...a,children:(0,t.jsx)(j.Thumb,{"data-slot":"switch-thumb",className:(0,w.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")})})}e.s(["Switch",()=>y],51911)},60165,98075,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("00df4e0f8f605a75fc8f0318fc0f5925c773e8589e",t.callServer,void 0,t.findSourceMapURL,"getAllAgentModels");e.s(["getAllAgentModels",()=>r],60165);let a=(0,t.createServerReference)("60e4df122418aa9d03dd4f41b5fb26185ed99ef4a7",t.callServer,void 0,t.findSourceMapURL,"updateAgentAndModel");e.s(["updateAgentAndModel",()=>a],98075)},41413,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(23925),s=e.i(11345),o=e.i(76016),n=e.i(60165),i=e.i(98075),l=e.i(86782),d=e.i(29847),c=e.i(35364),u=e.i(90382),p=e.i(31777);function f({initialAgentType:e,initialModel:f,onAgentModelChange:h,disabled:m,className:x,mode:g}){let[v,b]=r.useState(!1),[j,w]=r.useState([]),[y,C]=r.useState(!0),[N,k]=r.useState(e),[P,S]=r.useState(f),[T,R]=r.useState(null),[A,E]=r.useState(0),[F,M]=r.useState(null);r.useEffect(()=>{(0,n.getAllAgentModels)().then(w).finally(()=>C(!1))},[]),r.useEffect(()=>{if(!v){let e=setTimeout(()=>{E(0),M(null)},150);return()=>clearTimeout(e)}},[v]);let D=async(e,t)=>{if(b(!1),e!==N||t!==P){if("override"===g){k(e),S(t),h?.(e,t);return}k(e),S(t),h?.(e,t),R(null);try{let r=await (0,i.updateAgentAndModel)(e,t||null);r.ok||(k(N),S(P),h?.(N,P),R(r.error??"Failed to save"))}catch{k(N),S(P),h?.(N,P),R("Failed to save")}}},O=(0,l.getAgentTypeIcon)(N),z=j.find(e=>e.agentType===N)?.label??N,L=P?(0,d.getModelMeta)(P).displayName||P:null,I=F?j.find(e=>e.agentType===F):null;return(0,t.jsxs)("div",{className:(0,p.cn)("flex flex-col gap-1",x),children:[(0,t.jsxs)(u.Popover,{open:v,onOpenChange:b,children:[(0,t.jsx)(u.PopoverTrigger,{asChild:!0,children:(0,t.jsx)(c.Button,{variant:"outline",role:"combobox","aria-expanded":v,disabled:(m??!1)||y,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,t.jsxs)("span",{className:"flex items-center gap-2 truncate",children:[(0,t.jsx)(O,{className:"h-4 w-4 shrink-0"}),y?"Loading…":(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:z}),L?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-muted-foreground/50 text-xs",children:"·"}),(0,t.jsx)("span",{className:"text-xs font-medium",children:L})]}):null]})]})})}),(0,t.jsx)(u.PopoverContent,{className:"w-(--radix-popover-trigger-width) overflow-hidden p-0",align:"start",children:(0,t.jsxs)("div",{className:"flex transition-transform duration-200 ease-in-out",style:{transform:`translateX(${1===A?"-50%":"0%"})`,width:"200%"},children:[(0,t.jsxs)("div",{className:"w-1/2 shrink-0",children:[(0,t.jsx)("div",{className:"text-muted-foreground border-b px-3 py-2 text-xs font-medium",children:"Select agent"}),j.map(e=>{let r=(0,l.getAgentTypeIcon)(e.agentType),s=N===e.agentType,n=e.models.length>0;return(0,t.jsxs)("button",{type:"button",className:(0,p.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",s&&"bg-accent/50"),onClick:()=>{n?(M(e.agentType),requestAnimationFrame(()=>{requestAnimationFrame(()=>E(1))})):D(e.agentType,"")},children:[(0,t.jsx)(r,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{className:"flex-1 text-left",children:e.label}),s&&!n?(0,t.jsx)(a.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null,n?(0,t.jsx)(o.ChevronRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}):null]},e.agentType)})]}),(0,t.jsx)("div",{className:"w-1/2 shrink-0",children:I?(0,t.jsxs)(t.Fragment,{children:[(0,t.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:()=>{E(0),setTimeout(()=>M(null),220)},children:[(0,t.jsx)(s.ChevronLeft,{className:"h-3.5 w-3.5"}),I.label]}),I.models.map(e=>{let r=N===I.agentType&&P===e.id;return(0,t.jsxs)("button",{type:"button",className:(0,p.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",r&&"bg-accent/50"),onClick:()=>D(I.agentType,e.id),children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)("span",{className:"text-xs font-medium",children:e.displayName}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:e.description})]}),r?(0,t.jsx)(a.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null]},e.id)})]}):null})]})})]}),!!T&&(0,t.jsx)("p",{className:"text-destructive text-sm",children:T})]})}e.s(["AgentModelPicker",()=>f])},15203,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(31406),s=e.i(60112),o=e.i(21023);let n=(0,o.createServerReference)("403aeab371e2eeef87e997266fd33c5b2de427d73b",o.callServer,void 0,o.findSourceMapURL,"createFeature");var i=e.i(91891),i=i,l=e.i(3645);let d=(0,l.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var c=e.i(16298),c=c;let u=(0,l.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var p=e.i(93752),p=p,f=e.i(69512),f=f;let h=(0,l.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var m=e.i(1012),m=m,x=e.i(53360),g=e.i(31777),v=e.i(8361);e.i(1650);var b=e.i(11495),j=e.i(45811),w=e.i(35364),y=e.i(98127);function C({className:e,...r}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,g.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...r})}var N=e.i(41957),k=e.i(81846),P=e.i(90382),S=e.i(51911),T=e.i(2828),R=e.i(30153),A=e.i(41413);async function E(){let e=await fetch("/api/dialog/pick-files",{method:"POST"});if(!e.ok)throw Error("Failed to open file dialog");let t=await e.json();return t.cancelled?null:t.files}let F=[{id:"allowPrd",label:"PRD",description:"Auto-approve requirements move to planning."},{id:"allowPlan",label:"Plan",description:"Auto-approve planning move to implementation."},{id:"allowMerge",label:"Merge",description:"Auto-approve merge move to Done."}],M={allowPrd:!1,allowPlan:!1,allowMerge:!1};function D({open:e,onClose:a,onSubmit:s,repositoryPath:o,isSubmitting:n=!1,workflowDefaults:l,features:d,initialParentId:c,currentAgentType:u,currentModel:p}){let f=(0,v.useSoundAction)("create"),h=l?.approvalGates??M,m=l?.push??!1,y=l?.openPr??!1,[P,D]=(0,r.useState)(""),[L,I]=(0,r.useState)([]),[B,U]=(0,r.useState)({...h}),[H,$]=(0,r.useState)(m),[q,G]=(0,r.useState)(y),[_,K]=(0,r.useState)(void 0),[V,W]=(0,r.useState)(!1),[X,Z]=(0,r.useState)(void 0),[Y,J]=(0,r.useState)(void 0);(0,r.useEffect)(()=>{l&&(U({...l.approvalGates}),$(l.push),G(l.openPr))},[l]),(0,r.useEffect)(()=>{e&&c&&K(c)},[e,c]);let Q=(0,r.useCallback)(()=>{D(""),I([]),U({...h}),$(m),G(y),K(void 0),W(!1),Z(void 0),J(void 0)},[h,m,y]),ee=""!==P.trim()||L.length>0,{attemptClose:et}=(0,R.useGuardedDrawerClose)({open:e,isDirty:ee,onClose:a,onReset:Q}),er=(0,r.useCallback)(e=>{e.preventDefault(),P.trim()&&(f.play(),s({description:P.trim(),attachments:L,repositoryPath:o,approvalGates:{allowPrd:B.allowPrd??!1,allowPlan:B.allowPlan??!1,allowMerge:B.allowMerge??!1},push:H||q,openPr:q,fast:V,...X?{agentType:X}:{},...Y?{model:Y}:{},..._?{parentId:_}:{}}),Q())},[P,L,B,o,s,H,q,V,X,Y,_,f,Q]),ea=(0,r.useCallback)(async()=>{try{let e=await E();e&&I(t=>[...t,...e])}catch{}},[]),es=(0,r.useCallback)(e=>{I(t=>t.filter(t=>t.path!==e))},[]),eo=(0,r.useRef)(null),en=(0,r.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),eo.current?.requestSubmit())},[]),ei=d&&d.length>0;return(0,t.jsx)(b.BaseDrawer,{open:e,onClose:et,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(j.DrawerTitle,{children:"NEW FEATURE"})]}),n?(0,t.jsx)(j.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(k.Badge,{variant:"secondary",children:"Creating..."})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(w.Button,{variant:"outline",onClick:et,disabled:n,children:"Cancel"}),(0,t.jsx)(w.Button,{type:"submit",form:"create-feature-form",disabled:!P.trim()||n,children:n?"Creating...":"+ Create Feature"})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsx)(T.TooltipProvider,{delayDuration:400,children:(0,t.jsxs)("form",{ref:eo,id:"create-feature-form",onSubmit:er,className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(N.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"DESCRIBE YOUR FEATURE"}),(0,t.jsxs)("div",{className:"border-input focus-within:ring-ring/50 focus-within:border-ring overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow] focus-within:ring-[3px]",children:[(0,t.jsx)(C,{id:"feature-description",placeholder:"e.g. Add GitHub OAuth login with callback handling and token refresh...",value:P,onChange:e=>D(e.target.value),onKeyDown:en,rows:7,required:!0,disabled:n,className:"field-sizing-fixed min-h-42! resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,t.jsx)(A.AgentModelPicker,{initialAgentType:X??u??"claude-code",initialModel:Y??p??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(e,t)=>{Z(e),J(t)},disabled:n,className:"w-55"}),(0,t.jsxs)(T.Tooltip,{children:[(0,t.jsx)(T.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(S.Switch,{id:"fast-mode",checked:V,onCheckedChange:W,disabled:n}),(0,t.jsxs)(N.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(x.Zap,{className:"h-3.5 w-3.5"}),"Fast Mode"]})]})}),(0,t.jsx)(T.TooltipContent,{side:"bottom",children:"Skip SDLC phases and implement directly from your prompt."})]})]})]})]}),ei&&void 0!==c?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(N.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"PARENT FEATURE"}),(0,t.jsx)(O,{features:d,value:_,onChange:K,disabled:n})]}):null,(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(T.Tooltip,{children:[(0,t.jsx)(T.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:"APPROVE"})}),(0,t.jsx)(T.TooltipContent,{side:"bottom",children:"Auto-approve phase transitions without manual review."})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:F.map(e=>(0,t.jsxs)(T.Tooltip,{children:[(0,t.jsx)(T.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:`approve-${e.id}`,size:"sm",checked:B[e.id]??!1,onCheckedChange:t=>U(r=>({...r,[e.id]:t})),disabled:n||V&&("allowPrd"===e.id||"allowPlan"===e.id)}),(0,t.jsx)(N.Label,{htmlFor:`approve-${e.id}`,className:"cursor-pointer text-xs font-medium",children:e.label})]})}),(0,t.jsx)(T.TooltipContent,{side:"bottom",children:V&&("allowPrd"===e.id||"allowPlan"===e.id)?"Skipped in Fast Mode":e.description})]},e.id))}),(0,t.jsxs)(T.Tooltip,{children:[(0,t.jsx)(T.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:()=>{let e=F.every(e=>B[e.id]),t={};for(let r of F)t[r.id]=!e;U(t)},disabled:n,className:(0,g.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",F.every(e=>B[e.id])&&"text-primary"),children:"All"})}),(0,t.jsx)(T.TooltipContent,{side:"bottom",children:"Toggle all approval gates"})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 text-xs font-semibold tracking-wider",children:"GIT"}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(T.Tooltip,{children:[(0,t.jsx)(T.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"push",size:"sm",checked:H||q,onCheckedChange:e=>{$(e),!e&&q&&G(!1)},disabled:n}),(0,t.jsx)(N.Label,{htmlFor:"push",className:"cursor-pointer text-xs font-medium",children:"Push"})]})}),(0,t.jsx)(T.TooltipContent,{side:"bottom",children:"Push branch to remote after implementation."})]}),(0,t.jsxs)(T.Tooltip,{children:[(0,t.jsx)(T.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"open-pr",size:"sm",checked:q,onCheckedChange:G,disabled:n}),(0,t.jsx)(N.Label,{htmlFor:"open-pr",className:"cursor-pointer text-xs font-medium",children:"PR"})]})}),(0,t.jsx)(T.TooltipContent,{side:"bottom",children:"Open a pull request after pushing."})]})]})]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)(N.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:["ATTACHMENTS",L.length>0&&(0,t.jsxs)("span",{className:"text-muted-foreground/60 ml-1.5",children:["(",L.length,")"]})]}),(0,t.jsxs)(w.Button,{type:"button",variant:"outline",size:"xs",onClick:ea,disabled:n,children:[(0,t.jsx)(i.default,{className:"size-3"}),"Add Files"]})]}),L.length>0&&(0,t.jsx)("div",{className:"flex flex-col gap-2",children:L.map(e=>(0,t.jsx)(z,{file:e,onRemove:()=>es(e.path),disabled:n},e.path))})]})]})})})})}function O({features:e,value:a,onChange:s,disabled:o}){let[n,i]=(0,r.useState)(!1),[l,d]=(0,r.useState)(""),c=(0,r.useRef)(null),u=e.find(e=>e.id===a),p=l.trim()?e.filter(e=>e.name.toLowerCase().includes(l.toLowerCase())||e.id.toLowerCase().includes(l.toLowerCase())):e,f=(0,r.useCallback)(e=>{s(e),i(!1),d("")},[s]);return(0,r.useEffect)(()=>{n?setTimeout(()=>c.current?.focus(),0):d("")},[n]),(0,t.jsxs)(P.Popover,{open:n,onOpenChange:i,children:[(0,t.jsx)(P.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":n,"aria-label":"Parent Feature",disabled:o,"data-testid":"parent-feature-combobox",className:(0,g.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!u&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:u?`${u.name} (${u.id.slice(0,8)})`:"Select parent feature..."}),(0,t.jsx)(h,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(P.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(y.Input,{ref:c,placeholder:"Search features...",value:l,onChange:e=>d(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>f(void 0),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(m.default,{className:(0,g.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:"No parent"})]}),0===p.length&&l?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):p.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>f(e.id),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(m.default,{className:(0,g.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}function z({file:e,onRemove:r,disabled:a}){var s,o,n;let i,l=(i=(s=e.name).lastIndexOf("."))>=0?s.slice(i).toLowerCase():"",h=(o=l,L.has(o)?u:".pdf"===o?c.default:I.has(o)?p.default:d),m=".pdf"===(n=l)?"bg-red-50 text-red-600":L.has(n)?"bg-blue-50 text-blue-600":I.has(n)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600";return(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-md border p-2",children:[(0,t.jsx)("div",{className:(0,g.cn)("flex h-8 w-8 shrink-0 items-center justify-center rounded",m),children:(0,t.jsx)(h,{className:"h-4 w-4"})}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:function(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,t)).toFixed(+(0!==t))} ${["B","KB","MB","GB"][t]}`}(e.size)})]}),(0,t.jsx)(w.Button,{type:"button",variant:"ghost",size:"icon-xs",onClick:r,disabled:a,"aria-label":`Remove ${e.name}`,children:(0,t.jsx)(f.default,{className:"h-3 w-3"})})]})}let L=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),I=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function B({repositoryPath:e,initialParentId:o,features:i,workflowDefaults:l,currentAgentType:d,currentModel:c}){let u=(0,a.useRouter)(),[p,f]=(0,r.useState)(!1),h=(0,a.usePathname)().startsWith("/create"),m=!p&&h;(0,r.useEffect)(()=>{!h&&p&&f(!1)},[h,p]);let x=(0,r.useCallback)(()=>{u.push("/")},[u]),g=(0,r.useCallback)(e=>{f(!0),u.push("/"),n(e).then(t=>{t.error?s.toast.error(t.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:t.feature.id,name:t.feature.name,description:t.feature.description,repositoryPath:t.feature.repositoryPath,parentId:e.parentId}}))}).catch(()=>{s.toast.error("Failed to create feature"),f(!1)})},[u]);return(0,t.jsx)(D,{open:m,onClose:x,onSubmit:g,repositoryPath:e,features:i,workflowDefaults:l,initialParentId:o,isSubmitting:p,currentAgentType:d,currentModel:c})}e.s(["CreateDrawerClient",()=>B],15203)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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)},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)},93752,e=>{"use strict";let t=(0,e.i(3645).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);e.s(["default",()=>t])},41957,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(87620),s=r.forwardRef((e,r)=>(0,t.jsx)(a.Primitive.label,{...e,ref:r,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));s.displayName="Label",e.s(["Label",()=>s,"Root",()=>s],27572);var o=e.i(27572),o=o,n=e.i(94237),i=e.i(31777);let l=(0,n.cva)("text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)(o.Root,{ref:a,className:(0,i.cn)(l(),e),...r}));d.displayName=o.Root.displayName,e.s(["Label",()=>d],41957)},90382,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(91967),s=e.i(5978),o=e.i(22528),n=e.i(53532),i=e.i(41687),l=e.i(56720),d=e.i(13123),c=e.i(52740),u=e.i(39979),p=e.i(85995),h=e.i(87620),f=e.i(86874),m=e.i(36589),x=e.i(73772),g=e.i(13044),v="Popover",[b,j]=(0,o.createContextScope)(v,[c.createPopperScope]),w=(0,c.createPopperScope)(),[y,C]=b(v),N=e=>{let{__scopePopover:a,children:s,open:o,defaultOpen:n,onOpenChange:i,modal:l=!1}=e,u=w(a),p=r.useRef(null),[h,f]=r.useState(!1),[x,g]=(0,m.useControllableState)({prop:o,defaultProp:n??!1,onChange:i,caller:v});return(0,t.jsx)(c.Root,{...u,children:(0,t.jsx)(y,{scope:a,contentId:(0,d.useId)(),triggerRef:p,open:x,onOpenChange:g,onOpenToggle:r.useCallback(()=>g(e=>!e),[g]),hasCustomAnchor:h,onCustomAnchorAdd:r.useCallback(()=>f(!0),[]),onCustomAnchorRemove:r.useCallback(()=>f(!1),[]),modal:l,children:s})})};N.displayName=v;var k="PopoverAnchor",P=r.forwardRef((e,a)=>{let{__scopePopover:s,...o}=e,n=C(k,s),i=w(s),{onCustomAnchorAdd:l,onCustomAnchorRemove:d}=n;return r.useEffect(()=>(l(),()=>d()),[l,d]),(0,t.jsx)(c.Anchor,{...i,...o,ref:a})});P.displayName=k;var S="PopoverTrigger",T=r.forwardRef((e,r)=>{let{__scopePopover:o,...n}=e,i=C(S,o),l=w(o),d=(0,s.useComposedRefs)(r,i.triggerRef),u=(0,t.jsx)(h.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":$(i.open),...n,ref:d,onClick:(0,a.composeEventHandlers)(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?u:(0,t.jsx)(c.Anchor,{asChild:!0,...l,children:u})});T.displayName=S;var R="PopoverPortal",[A,E]=b(R,{forceMount:void 0}),F=e=>{let{__scopePopover:r,forceMount:a,children:s,container:o}=e,n=C(R,r);return(0,t.jsx)(A,{scope:r,forceMount:a,children:(0,t.jsx)(p.Presence,{present:a||n.open,children:(0,t.jsx)(u.Portal,{asChild:!0,container:o,children:s})})})};F.displayName=R;var M="PopoverContent",D=r.forwardRef((e,r)=>{let a=E(M,e.__scopePopover),{forceMount:s=a.forceMount,...o}=e,n=C(M,e.__scopePopover);return(0,t.jsx)(p.Presence,{present:s||n.open,children:n.modal?(0,t.jsx)(z,{...o,ref:r}):(0,t.jsx)(L,{...o,ref:r})})});D.displayName=M;var O=(0,f.createSlot)("PopoverContent.RemoveScroll"),z=r.forwardRef((e,o)=>{let n=C(M,e.__scopePopover),i=r.useRef(null),l=(0,s.useComposedRefs)(o,i),d=r.useRef(!1);return r.useEffect(()=>{let e=i.current;if(e)return(0,x.hideOthers)(e)},[]),(0,t.jsx)(g.RemoveScroll,{as:O,allowPinchZoom:!0,children:(0,t.jsx)(I,{...e,ref:l,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,a.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),d.current||n.triggerRef.current?.focus()}),onPointerDownOutside:(0,a.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;d.current=2===t.button||r},{checkForDefaultPrevented:!1}),onFocusOutside:(0,a.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),L=r.forwardRef((e,a)=>{let s=C(M,e.__scopePopover),o=r.useRef(!1),n=r.useRef(!1);return(0,t.jsx)(I,{...e,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||s.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,n.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(n.current=!0));let r=t.target;s.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&n.current&&t.preventDefault()}})}),I=r.forwardRef((e,r)=>{let{__scopePopover:a,trapFocus:s,onOpenAutoFocus:o,onCloseAutoFocus:d,disableOutsidePointerEvents:u,onEscapeKeyDown:p,onPointerDownOutside:h,onFocusOutside:f,onInteractOutside:m,...x}=e,g=C(M,a),v=w(a);return(0,i.useFocusGuards)(),(0,t.jsx)(l.FocusScope,{asChild:!0,loop:!0,trapped:s,onMountAutoFocus:o,onUnmountAutoFocus:d,children:(0,t.jsx)(n.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:u,onInteractOutside:m,onEscapeKeyDown:p,onPointerDownOutside:h,onFocusOutside:f,onDismiss:()=>g.onOpenChange(!1),children:(0,t.jsx)(c.Content,{"data-state":$(g.open),role:"dialog",id:g.contentId,...v,...x,ref:r,style:{...x.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)"}})})})}),B="PopoverClose",U=r.forwardRef((e,r)=>{let{__scopePopover:s,...o}=e,n=C(B,s);return(0,t.jsx)(h.Primitive.button,{type:"button",...o,ref:r,onClick:(0,a.composeEventHandlers)(e.onClick,()=>n.onOpenChange(!1))})});U.displayName=B;var H=r.forwardRef((e,r)=>{let{__scopePopover:a,...s}=e,o=w(a);return(0,t.jsx)(c.Arrow,{...o,...s,ref:r})});function $(e){return e?"open":"closed"}H.displayName="PopoverArrow",e.s(["Anchor",()=>P,"Arrow",()=>H,"Close",()=>U,"Content",()=>D,"Popover",()=>N,"PopoverAnchor",()=>P,"PopoverArrow",()=>H,"PopoverClose",()=>U,"PopoverContent",()=>D,"PopoverPortal",()=>F,"PopoverTrigger",()=>T,"Portal",()=>F,"Root",()=>N,"Trigger",()=>T,"createPopoverScope",()=>j],89920);var q=e.i(89920),q=q,G=e.i(31777);let _=q.Root,K=q.Trigger;q.Anchor;let V=r.forwardRef(({className:e,align:r="center",sideOffset:a=4,...s},o)=>(0,t.jsx)(q.Portal,{children:(0,t.jsx)(q.Content,{ref:o,align:r,sideOffset:a,className:(0,G.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",e),...s})}));V.displayName=q.Content.displayName,e.s(["Popover",()=>_,"PopoverContent",()=>V,"PopoverTrigger",()=>K],90382)},51911,23405,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(91967),s=e.i(5978),o=e.i(22528),n=e.i(36589);function i(e){let t=r.useRef({value:e,previous:e});return r.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}e.s(["usePrevious",()=>i],23405);var l=e.i(77624),d=e.i(87620),c="Switch",[u,p]=(0,o.createContextScope)(c),[h,f]=u(c),m=r.forwardRef((e,o)=>{let{__scopeSwitch:i,name:l,checked:u,defaultChecked:p,required:f,disabled:m,value:x="on",onCheckedChange:g,form:j,...w}=e,[y,C]=r.useState(null),N=(0,s.useComposedRefs)(o,e=>C(e)),k=r.useRef(!1),P=!y||j||!!y.closest("form"),[S,T]=(0,n.useControllableState)({prop:u,defaultProp:p??!1,onChange:g,caller:c});return(0,t.jsxs)(h,{scope:i,checked:S,disabled:m,children:[(0,t.jsx)(d.Primitive.button,{type:"button",role:"switch","aria-checked":S,"aria-required":f,"data-state":b(S),"data-disabled":m?"":void 0,disabled:m,value:x,...w,ref:N,onClick:(0,a.composeEventHandlers)(e.onClick,e=>{T(e=>!e),P&&(k.current=e.isPropagationStopped(),k.current||e.stopPropagation())})}),P&&(0,t.jsx)(v,{control:y,bubbles:!k.current,name:l,value:x,checked:S,required:f,disabled:m,form:j,style:{transform:"translateX(-100%)"}})]})});m.displayName=c;var x="SwitchThumb",g=r.forwardRef((e,r)=>{let{__scopeSwitch:a,...s}=e,o=f(x,a);return(0,t.jsx)(d.Primitive.span,{"data-state":b(o.checked),"data-disabled":o.disabled?"":void 0,...s,ref:r})});g.displayName=x;var v=r.forwardRef(({__scopeSwitch:e,control:a,checked:o,bubbles:n=!0,...d},c)=>{let u=r.useRef(null),p=(0,s.useComposedRefs)(u,c),h=i(o),f=(0,l.useSize)(a);return r.useEffect(()=>{let e=u.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(h!==o&&t){let r=new Event("click",{bubbles:n});t.call(e,o),e.dispatchEvent(r)}},[h,o,n]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:o,...d,tabIndex:-1,ref:p,style:{...d.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function b(e){return e?"checked":"unchecked"}v.displayName="SwitchBubbleInput",e.s(["Root",()=>m,"Switch",()=>m,"SwitchThumb",()=>g,"Thumb",()=>g,"createSwitchScope",()=>p],95291);var j=e.i(95291),j=j,w=e.i(31777);function y({className:e,size:r="default",...a}){return(0,t.jsx)(j.Root,{"data-slot":"switch","data-size":r,className:(0,w.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",e),...a,children:(0,t.jsx)(j.Thumb,{"data-slot":"switch-thumb",className:(0,w.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")})})}e.s(["Switch",()=>y],51911)},61604,21539,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("00e53d1c3ec2cc1aa41ecc6d1008f80e36ace67dd0",t.callServer,void 0,t.findSourceMapURL,"getAllAgentModels");e.s(["getAllAgentModels",()=>r],61604);let a=(0,t.createServerReference)("6036c575dc089c89e8af757a57dc57b3536061e771",t.callServer,void 0,t.findSourceMapURL,"updateAgentAndModel");e.s(["updateAgentAndModel",()=>a],21539)},41413,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(23925),s=e.i(11345),o=e.i(76016),n=e.i(61604),i=e.i(21539),l=e.i(86782),d=e.i(29847),c=e.i(35364),u=e.i(90382),p=e.i(31777);function h({initialAgentType:e,initialModel:h,onAgentModelChange:f,disabled:m,className:x,mode:g}){let[v,b]=r.useState(!1),[j,w]=r.useState([]),[y,C]=r.useState(!0),[N,k]=r.useState(e),[P,S]=r.useState(h),[T,R]=r.useState(null),[A,E]=r.useState(0),[F,M]=r.useState(null);r.useEffect(()=>{(0,n.getAllAgentModels)().then(w).finally(()=>C(!1))},[]),r.useEffect(()=>{if(!v){let e=setTimeout(()=>{E(0),M(null)},150);return()=>clearTimeout(e)}},[v]);let D=async(e,t)=>{if(b(!1),e!==N||t!==P){if("override"===g){k(e),S(t),f?.(e,t);return}k(e),S(t),f?.(e,t),R(null);try{let r=await (0,i.updateAgentAndModel)(e,t||null);r.ok||(k(N),S(P),f?.(N,P),R(r.error??"Failed to save"))}catch{k(N),S(P),f?.(N,P),R("Failed to save")}}},O=(0,l.getAgentTypeIcon)(N),z=j.find(e=>e.agentType===N)?.label??N,L=P?(0,d.getModelMeta)(P).displayName||P:null,I=F?j.find(e=>e.agentType===F):null;return(0,t.jsxs)("div",{className:(0,p.cn)("flex flex-col gap-1",x),children:[(0,t.jsxs)(u.Popover,{open:v,onOpenChange:b,children:[(0,t.jsx)(u.PopoverTrigger,{asChild:!0,children:(0,t.jsx)(c.Button,{variant:"outline",role:"combobox","aria-expanded":v,disabled:(m??!1)||y,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,t.jsxs)("span",{className:"flex items-center gap-2 truncate",children:[(0,t.jsx)(O,{className:"h-4 w-4 shrink-0"}),y?"Loading…":(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:z}),L?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-muted-foreground/50 text-xs",children:"·"}),(0,t.jsx)("span",{className:"text-xs font-medium",children:L})]}):null]})]})})}),(0,t.jsx)(u.PopoverContent,{className:"w-(--radix-popover-trigger-width) overflow-hidden p-0",align:"start",children:(0,t.jsxs)("div",{className:"flex transition-transform duration-200 ease-in-out",style:{transform:`translateX(${1===A?"-50%":"0%"})`,width:"200%"},children:[(0,t.jsxs)("div",{className:"w-1/2 shrink-0",children:[(0,t.jsx)("div",{className:"text-muted-foreground border-b px-3 py-2 text-xs font-medium",children:"Select agent"}),j.map(e=>{let r=(0,l.getAgentTypeIcon)(e.agentType),s=N===e.agentType,n=e.models.length>0;return(0,t.jsxs)("button",{type:"button",className:(0,p.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",s&&"bg-accent/50"),onClick:()=>{n?(M(e.agentType),requestAnimationFrame(()=>{requestAnimationFrame(()=>E(1))})):D(e.agentType,"")},children:[(0,t.jsx)(r,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{className:"flex-1 text-left",children:e.label}),s&&!n?(0,t.jsx)(a.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null,n?(0,t.jsx)(o.ChevronRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}):null]},e.agentType)})]}),(0,t.jsx)("div",{className:"w-1/2 shrink-0",children:I?(0,t.jsxs)(t.Fragment,{children:[(0,t.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:()=>{E(0),setTimeout(()=>M(null),220)},children:[(0,t.jsx)(s.ChevronLeft,{className:"h-3.5 w-3.5"}),I.label]}),I.models.map(e=>{let r=N===I.agentType&&P===e.id;return(0,t.jsxs)("button",{type:"button",className:(0,p.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",r&&"bg-accent/50"),onClick:()=>D(I.agentType,e.id),children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)("span",{className:"text-xs font-medium",children:e.displayName}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:e.description})]}),r?(0,t.jsx)(a.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null]},e.id)})]}):null})]})})]}),!!T&&(0,t.jsx)("p",{className:"text-destructive text-sm",children:T})]})}e.s(["AgentModelPicker",()=>h])},15203,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(31406),s=e.i(60112),o=e.i(21023);let n=(0,o.createServerReference)("409653287b384a0b276314ce0bb917333df3ef70f9",o.callServer,void 0,o.findSourceMapURL,"createFeature");var i=e.i(91891),i=i,l=e.i(3645);let d=(0,l.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var c=e.i(16298),c=c;let u=(0,l.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var p=e.i(93752),p=p,h=e.i(69512),h=h;let f=(0,l.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var m=e.i(1012),m=m,x=e.i(53360),g=e.i(31777),v=e.i(8361);e.i(1650);var b=e.i(11495),j=e.i(45811),w=e.i(35364),y=e.i(98127);function C({className:e,...r}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,g.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...r})}var N=e.i(41957),k=e.i(81846),P=e.i(90382),S=e.i(51911),T=e.i(2828),R=e.i(30153),A=e.i(41413);async function E(){let e=await fetch("/api/dialog/pick-files",{method:"POST"});if(!e.ok)throw Error("Failed to open file dialog");let t=await e.json();return t.cancelled?null:t.files}let F=[{id:"allowPrd",label:"PRD",description:"Auto-approve requirements move to planning."},{id:"allowPlan",label:"Plan",description:"Auto-approve planning move to implementation."},{id:"allowMerge",label:"Merge",description:"Auto-approve merge move to Done."}],M={allowPrd:!1,allowPlan:!1,allowMerge:!1};function D({open:e,onClose:a,onSubmit:s,repositoryPath:o,isSubmitting:n=!1,workflowDefaults:l,features:d,initialParentId:c,currentAgentType:u,currentModel:p}){let h=(0,v.useSoundAction)("create"),f=l?.approvalGates??M,m=l?.push??!1,y=l?.openPr??!1,[P,D]=(0,r.useState)(""),[L,I]=(0,r.useState)([]),[B,U]=(0,r.useState)({...f}),[H,$]=(0,r.useState)(m),[q,G]=(0,r.useState)(y),[_,K]=(0,r.useState)(void 0),[V,W]=(0,r.useState)(!1),[X,Z]=(0,r.useState)(void 0),[Y,J]=(0,r.useState)(void 0);(0,r.useEffect)(()=>{l&&(U({...l.approvalGates}),$(l.push),G(l.openPr))},[l]),(0,r.useEffect)(()=>{e&&c&&K(c)},[e,c]);let Q=(0,r.useCallback)(()=>{D(""),I([]),U({...f}),$(m),G(y),K(void 0),W(!1),Z(void 0),J(void 0)},[f,m,y]),ee=""!==P.trim()||L.length>0,{attemptClose:et}=(0,R.useGuardedDrawerClose)({open:e,isDirty:ee,onClose:a,onReset:Q}),er=(0,r.useCallback)(e=>{e.preventDefault(),P.trim()&&(h.play(),s({description:P.trim(),attachments:L,repositoryPath:o,approvalGates:{allowPrd:B.allowPrd??!1,allowPlan:B.allowPlan??!1,allowMerge:B.allowMerge??!1},push:H||q,openPr:q,fast:V,...X?{agentType:X}:{},...Y?{model:Y}:{},..._?{parentId:_}:{}}),Q())},[P,L,B,o,s,H,q,V,X,Y,_,h,Q]),ea=(0,r.useCallback)(async()=>{try{let e=await E();e&&I(t=>[...t,...e])}catch{}},[]),es=(0,r.useCallback)(e=>{I(t=>t.filter(t=>t.path!==e))},[]),eo=(0,r.useRef)(null),en=(0,r.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),eo.current?.requestSubmit())},[]),ei=d&&d.length>0;return(0,t.jsx)(b.BaseDrawer,{open:e,onClose:et,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(j.DrawerTitle,{children:"NEW FEATURE"})]}),n?(0,t.jsx)(j.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(k.Badge,{variant:"secondary",children:"Creating..."})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(w.Button,{variant:"outline",onClick:et,disabled:n,children:"Cancel"}),(0,t.jsx)(w.Button,{type:"submit",form:"create-feature-form",disabled:!P.trim()||n,children:n?"Creating...":"+ Create Feature"})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsx)(T.TooltipProvider,{delayDuration:400,children:(0,t.jsxs)("form",{ref:eo,id:"create-feature-form",onSubmit:er,className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(N.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"DESCRIBE YOUR FEATURE"}),(0,t.jsxs)("div",{className:"border-input focus-within:ring-ring/50 focus-within:border-ring overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow] focus-within:ring-[3px]",children:[(0,t.jsx)(C,{id:"feature-description",placeholder:"e.g. Add GitHub OAuth login with callback handling and token refresh...",value:P,onChange:e=>D(e.target.value),onKeyDown:en,rows:7,required:!0,disabled:n,className:"field-sizing-fixed min-h-42! resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,t.jsx)(A.AgentModelPicker,{initialAgentType:X??u??"claude-code",initialModel:Y??p??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(e,t)=>{Z(e),J(t)},disabled:n,className:"w-55"}),(0,t.jsxs)(T.Tooltip,{children:[(0,t.jsx)(T.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(S.Switch,{id:"fast-mode",checked:V,onCheckedChange:W,disabled:n}),(0,t.jsxs)(N.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(x.Zap,{className:"h-3.5 w-3.5"}),"Fast Mode"]})]})}),(0,t.jsx)(T.TooltipContent,{side:"bottom",children:"Skip SDLC phases and implement directly from your prompt."})]})]})]})]}),ei&&void 0!==c?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(N.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"PARENT FEATURE"}),(0,t.jsx)(O,{features:d,value:_,onChange:K,disabled:n})]}):null,(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(T.Tooltip,{children:[(0,t.jsx)(T.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:"APPROVE"})}),(0,t.jsx)(T.TooltipContent,{side:"bottom",children:"Auto-approve phase transitions without manual review."})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:F.map(e=>(0,t.jsxs)(T.Tooltip,{children:[(0,t.jsx)(T.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:`approve-${e.id}`,size:"sm",checked:B[e.id]??!1,onCheckedChange:t=>U(r=>({...r,[e.id]:t})),disabled:n||V&&("allowPrd"===e.id||"allowPlan"===e.id)}),(0,t.jsx)(N.Label,{htmlFor:`approve-${e.id}`,className:"cursor-pointer text-xs font-medium",children:e.label})]})}),(0,t.jsx)(T.TooltipContent,{side:"bottom",children:V&&("allowPrd"===e.id||"allowPlan"===e.id)?"Skipped in Fast Mode":e.description})]},e.id))}),(0,t.jsxs)(T.Tooltip,{children:[(0,t.jsx)(T.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:()=>{let e=F.every(e=>B[e.id]),t={};for(let r of F)t[r.id]=!e;U(t)},disabled:n,className:(0,g.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",F.every(e=>B[e.id])&&"text-primary"),children:"All"})}),(0,t.jsx)(T.TooltipContent,{side:"bottom",children:"Toggle all approval gates"})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 text-xs font-semibold tracking-wider",children:"GIT"}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(T.Tooltip,{children:[(0,t.jsx)(T.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"push",size:"sm",checked:H||q,onCheckedChange:e=>{$(e),!e&&q&&G(!1)},disabled:n}),(0,t.jsx)(N.Label,{htmlFor:"push",className:"cursor-pointer text-xs font-medium",children:"Push"})]})}),(0,t.jsx)(T.TooltipContent,{side:"bottom",children:"Push branch to remote after implementation."})]}),(0,t.jsxs)(T.Tooltip,{children:[(0,t.jsx)(T.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"open-pr",size:"sm",checked:q,onCheckedChange:G,disabled:n}),(0,t.jsx)(N.Label,{htmlFor:"open-pr",className:"cursor-pointer text-xs font-medium",children:"PR"})]})}),(0,t.jsx)(T.TooltipContent,{side:"bottom",children:"Open a pull request after pushing."})]})]})]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)(N.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:["ATTACHMENTS",L.length>0&&(0,t.jsxs)("span",{className:"text-muted-foreground/60 ml-1.5",children:["(",L.length,")"]})]}),(0,t.jsxs)(w.Button,{type:"button",variant:"outline",size:"xs",onClick:ea,disabled:n,children:[(0,t.jsx)(i.default,{className:"size-3"}),"Add Files"]})]}),L.length>0&&(0,t.jsx)("div",{className:"flex flex-col gap-2",children:L.map(e=>(0,t.jsx)(z,{file:e,onRemove:()=>es(e.path),disabled:n},e.path))})]})]})})})})}function O({features:e,value:a,onChange:s,disabled:o}){let[n,i]=(0,r.useState)(!1),[l,d]=(0,r.useState)(""),c=(0,r.useRef)(null),u=e.find(e=>e.id===a),p=l.trim()?e.filter(e=>e.name.toLowerCase().includes(l.toLowerCase())||e.id.toLowerCase().includes(l.toLowerCase())):e,h=(0,r.useCallback)(e=>{s(e),i(!1),d("")},[s]);return(0,r.useEffect)(()=>{n?setTimeout(()=>c.current?.focus(),0):d("")},[n]),(0,t.jsxs)(P.Popover,{open:n,onOpenChange:i,children:[(0,t.jsx)(P.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":n,"aria-label":"Parent Feature",disabled:o,"data-testid":"parent-feature-combobox",className:(0,g.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!u&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:u?`${u.name} (${u.id.slice(0,8)})`:"Select parent feature..."}),(0,t.jsx)(f,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(P.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(y.Input,{ref:c,placeholder:"Search features...",value:l,onChange:e=>d(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>h(void 0),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(m.default,{className:(0,g.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:"No parent"})]}),0===p.length&&l?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):p.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>h(e.id),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(m.default,{className:(0,g.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}function z({file:e,onRemove:r,disabled:a}){var s,o,n;let i,l=(i=(s=e.name).lastIndexOf("."))>=0?s.slice(i).toLowerCase():"",f=(o=l,L.has(o)?u:".pdf"===o?c.default:I.has(o)?p.default:d),m=".pdf"===(n=l)?"bg-red-50 text-red-600":L.has(n)?"bg-blue-50 text-blue-600":I.has(n)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600";return(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-md border p-2",children:[(0,t.jsx)("div",{className:(0,g.cn)("flex h-8 w-8 shrink-0 items-center justify-center rounded",m),children:(0,t.jsx)(f,{className:"h-4 w-4"})}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:function(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,t)).toFixed(+(0!==t))} ${["B","KB","MB","GB"][t]}`}(e.size)})]}),(0,t.jsx)(w.Button,{type:"button",variant:"ghost",size:"icon-xs",onClick:r,disabled:a,"aria-label":`Remove ${e.name}`,children:(0,t.jsx)(h.default,{className:"h-3 w-3"})})]})}let L=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),I=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function B({repositoryPath:e,initialParentId:o,features:i,workflowDefaults:l,currentAgentType:d,currentModel:c}){let u=(0,a.useRouter)(),[p,h]=(0,r.useState)(!1),f=(0,a.usePathname)().startsWith("/create"),m=!p&&f;(0,r.useEffect)(()=>{!f&&p&&h(!1)},[f,p]);let x=(0,r.useCallback)(()=>{u.push("/")},[u]),g=(0,r.useCallback)(e=>{h(!0),u.push("/"),n(e).then(t=>{t.error?s.toast.error(t.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:t.feature.id,name:t.feature.name,description:t.feature.description,repositoryPath:t.feature.repositoryPath,parentId:e.parentId}}))}).catch(()=>{s.toast.error("Failed to create feature"),h(!1)})},[u]);return(0,t.jsx)(D,{open:m,onClose:x,onSubmit:g,repositoryPath:e,features:i,workflowDefaults:l,initialParentId:o,isSubmitting:p,currentAgentType:d,currentModel:c})}e.s(["CreateDrawerClient",()=>B],15203)}]);