@shepai/cli 1.148.0-pr462.42531fe → 1.149.0-pr463.3fd9e4e

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 (145) hide show
  1. package/dist/packages/core/src/application/use-cases/features/get-branch-sync-status.use-case.d.ts.map +1 -1
  2. package/dist/packages/core/src/application/use-cases/features/get-branch-sync-status.use-case.js +4 -0
  3. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  4. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +6 -3
  5. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  6. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +32 -33
  7. package/dist/tsconfig.build.tsbuildinfo +1 -1
  8. package/package.json +1 -1
  9. package/web/.next/BUILD_ID +1 -1
  10. package/web/.next/build-manifest.json +2 -2
  11. package/web/.next/fallback-build-manifest.json +2 -2
  12. package/web/.next/prerender-manifest.json +3 -3
  13. package/web/.next/required-server-files.js +2 -2
  14. package/web/.next/required-server-files.json +2 -2
  15. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +28 -28
  16. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  17. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  18. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +28 -28
  19. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  20. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  21. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
  22. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  23. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  24. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +36 -36
  25. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  26. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  27. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +26 -26
  28. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  29. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  30. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +28 -28
  31. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  32. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  33. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
  34. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  35. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  36. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +36 -36
  37. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  38. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  39. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +26 -26
  40. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  41. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  42. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +26 -26
  43. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  44. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  45. package/web/.next/server/app/_global-error.html +2 -2
  46. package/web/.next/server/app/_global-error.rsc +1 -1
  47. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  48. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  49. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  50. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  51. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  52. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +3 -3
  53. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  55. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  56. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  57. package/web/.next/server/app/skills/page/server-reference-manifest.json +8 -8
  58. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  59. package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
  60. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  61. package/web/.next/server/app/version/page/server-reference-manifest.json +3 -3
  62. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  63. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  64. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  65. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  66. package/web/.next/server/chunks/ssr/[root-of-the-server]__2138fa7e._.js +2 -2
  67. package/web/.next/server/chunks/ssr/[root-of-the-server]__29580090._.js +1 -1
  68. package/web/.next/server/chunks/ssr/[root-of-the-server]__29580090._.js.map +1 -1
  69. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  70. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js +1 -1
  71. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
  72. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
  73. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js +1 -1
  74. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
  75. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
  76. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +3 -3
  77. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  78. package/web/.next/server/chunks/ssr/[root-of-the-server]__c094882b._.js +1 -1
  79. package/web/.next/server/chunks/ssr/[root-of-the-server]__c094882b._.js.map +1 -1
  80. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js +1 -1
  81. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js +1 -1
  82. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js.map +1 -1
  83. package/web/.next/server/chunks/ssr/[root-of-the-server]__dac5dbf1._.js +1 -1
  84. package/web/.next/server/chunks/ssr/[root-of-the-server]__dac5dbf1._.js.map +1 -1
  85. package/web/.next/server/chunks/ssr/[root-of-the-server]__fae8b355._.js +1 -1
  86. package/web/.next/server/chunks/ssr/[root-of-the-server]__fae8b355._.js.map +1 -1
  87. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  88. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  89. package/web/.next/server/chunks/ssr/_0c5f56e3._.js +2 -2
  90. package/web/.next/server/chunks/ssr/_0c5f56e3._.js.map +1 -1
  91. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  92. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  93. package/web/.next/server/chunks/ssr/_1b719e7f._.js +1 -1
  94. package/web/.next/server/chunks/ssr/_1b719e7f._.js.map +1 -1
  95. package/web/.next/server/chunks/ssr/_37e8548b._.js +1 -1
  96. package/web/.next/server/chunks/ssr/_37e8548b._.js.map +1 -1
  97. package/web/.next/server/chunks/ssr/_55d763e2._.js +1 -1
  98. package/web/.next/server/chunks/ssr/_55d763e2._.js.map +1 -1
  99. package/web/.next/server/chunks/ssr/_6256a985._.js +1 -1
  100. package/web/.next/server/chunks/ssr/_6256a985._.js.map +1 -1
  101. package/web/.next/server/chunks/ssr/_64bdfc6f._.js +2 -2
  102. package/web/.next/server/chunks/ssr/_64bdfc6f._.js.map +1 -1
  103. package/web/.next/server/chunks/ssr/_8fcc39d4._.js +1 -1
  104. package/web/.next/server/chunks/ssr/_b71645b4._.js +1 -1
  105. package/web/.next/server/chunks/ssr/_b71645b4._.js.map +1 -1
  106. package/web/.next/server/chunks/ssr/{_41d9cd95._.js → _cd7fb17f._.js} +2 -2
  107. package/web/.next/server/chunks/ssr/{_41d9cd95._.js.map → _cd7fb17f._.js.map} +1 -1
  108. package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
  109. package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
  110. package/web/.next/server/chunks/ssr/{_24c98f2c._.js → _fff03050._.js} +2 -2
  111. package/web/.next/server/chunks/ssr/{_24c98f2c._.js.map → _fff03050._.js.map} +1 -1
  112. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  113. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  114. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
  115. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
  116. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
  117. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
  118. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  119. package/web/.next/server/chunks/ssr/{src_presentation_web_4128a266._.js → src_presentation_web_bc27a88f._.js} +2 -2
  120. package/web/.next/server/chunks/ssr/{src_presentation_web_4128a266._.js.map → src_presentation_web_bc27a88f._.js.map} +1 -1
  121. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  122. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  123. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  124. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  125. package/web/.next/server/pages/500.html +2 -2
  126. package/web/.next/server/server-reference-manifest.js +1 -1
  127. package/web/.next/server/server-reference-manifest.json +44 -44
  128. package/web/.next/static/chunks/{b650639ad2c0225a.js → 121c2afa739794c8.js} +1 -1
  129. package/web/.next/static/chunks/3fc3c48d5fc1d34b.js +1 -0
  130. package/web/.next/static/chunks/{f5c613066998f4d3.js → 6fb988bb7502376a.js} +1 -1
  131. package/web/.next/static/chunks/7510c0f6c2e3f7ed.js +1 -0
  132. package/web/.next/static/chunks/{08a345de60f7a916.js → 768af4e247048769.js} +1 -1
  133. package/web/.next/static/chunks/{82b4ce7dd487497c.js → 834e374897ece7a3.js} +1 -1
  134. package/web/.next/static/chunks/{76ae0ee5b19cb24d.js → 9d71dd508eeb2a7b.js} +1 -1
  135. package/web/.next/static/chunks/{79050ec2da3b1545.js → ab62defde8095aaf.js} +1 -1
  136. package/web/.next/static/chunks/{2a89bc5c539a887c.js → b2e8d1bb057a5233.js} +1 -1
  137. package/web/.next/static/chunks/b9170990200dc7f7.js +1 -0
  138. package/web/.next/static/chunks/{155eeac110efde49.js → ca75d824df20fe75.js} +3 -3
  139. package/web/.next/static/chunks/{da1da0780b5c0772.js → fdebfc97662845ff.js} +2 -2
  140. package/web/.next/static/chunks/57489f571eaef682.js +0 -1
  141. package/web/.next/static/chunks/a48d1fbd73f27a65.js +0 -1
  142. package/web/.next/static/chunks/fbaff86b010c0bff.js +0 -1
  143. /package/web/.next/static/{kW82VHngwCjHeZ0IeW0ZK → uf467r-P2iBzLS8YsN7j2}/_buildManifest.js +0 -0
  144. /package/web/.next/static/{kW82VHngwCjHeZ0IeW0ZK → uf467r-P2iBzLS8YsN7j2}/_clientMiddlewareManifest.json +0 -0
  145. /package/web/.next/static/{kW82VHngwCjHeZ0IeW0ZK → uf467r-P2iBzLS8YsN7j2}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"get-branch-sync-status.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/get-branch-sync-status.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAElG,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,0BAA0B;IAGnC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAJf,WAAW,EAAE,kBAAkB,EAE/B,YAAY,EAAE,aAAa,EAE3B,eAAe,EAAE,gBAAgB;IAG9C,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;YA0BnD,UAAU;CAOzB"}
1
+ {"version":3,"file":"get-branch-sync-status.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/get-branch-sync-status.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yDAAyD,CAAC;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAElG,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,0BAA0B;IAGnC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAJf,WAAW,EAAE,kBAAkB,EAE/B,YAAY,EAAE,aAAa,EAE3B,eAAe,EAAE,gBAAgB;IAG9C,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;YA+BnD,UAAU;CAOzB"}
@@ -38,6 +38,10 @@ let GetBranchSyncStatusUseCase = class GetBranchSyncStatusUseCase {
38
38
  throw new Error(`Feature "${featureId}" has no branch`);
39
39
  }
40
40
  const cwd = await this.resolveCwd(feature.repositoryPath, feature.branch);
41
+ const hasRemote = await this.gitPrService.hasRemote(cwd);
42
+ if (!hasRemote) {
43
+ throw new Error('Repository has no remote — branch sync is not available');
44
+ }
41
45
  const baseBranch = await this.gitPrService.getDefaultBranch(feature.repositoryPath);
42
46
  // Sync the remote tracking ref so ahead/behind counts are current
43
47
  await this.gitPrService.syncMain(cwd, baseBranch);
@@ -1 +1 @@
1
- {"version":3,"file":"feature-drawer-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK/D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,wBAAwB,2CAyoB1F"}
1
+ {"version":3,"file":"feature-drawer-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/feature-drawer-client.tsx"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK/D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,wBAAwB,2CA4oB1F"}
@@ -333,8 +333,11 @@ export function FeatureDrawerClient({ view: initialView, urlTab }) {
333
333
  }
334
334
  : null;
335
335
  const featureActions = useFeatureActions(featureActionsInput);
336
- // Branch sync status — only when the feature flag is on and the feature has a branch
337
- const syncFeatureId = featureFlags.gitRebaseSync && featureNode?.branch ? featureNode.featureId : null;
336
+ // Branch sync status — only when the feature flag is on, the feature has a branch,
337
+ // and the repository has a remote (no remote = no sync needed)
338
+ const syncFeatureId = featureFlags.gitRebaseSync && featureNode?.branch && featureNode?.remoteUrl
339
+ ? featureNode.featureId
340
+ : null;
338
341
  const { data: syncData, loading: syncLoading, error: syncError, refresh: refreshSync, } = useBranchSyncStatus(syncFeatureId);
339
342
  // Auto-refresh sync status after a successful rebase
340
343
  const prevRebaseLoadingRef = useRef(featureActions.rebaseLoading);
@@ -383,7 +386,7 @@ export function FeatureDrawerClient({ view: initialView, urlTab }) {
383
386
  ...(featureNode.state === 'error' && { onRetry: handleRetry }),
384
387
  ...(featureNode.state === 'pending' && { onStart: handleStart }),
385
388
  };
386
- body = (_jsx(FeatureDrawerTabs, { featureNode: enrichedNode, featureId: featureNode.featureId, initialTab: view.initialTab, urlTab: urlTab, sseEvents: events, prdData: prdData, prdSelections: prdSelections, onPrdSelect: (qId, oId) => setPrdSelections((prev) => ({ ...prev, [qId]: oId })), onPrdApprove: handlePrdApprove, onPrdReject: handlePrdReject, isPrdLoading: isLoadingPrd, techData: techData, onTechApprove: handleTechApprove, onTechReject: handleTechReject, isTechLoading: isLoadingTech, productData: isLoadingTechProduct ? null : techProductData, mergeData: mergeData, onMergeApprove: handleMergeApprove, onMergeReject: handleMergeReject, isMergeLoading: isLoadingMerge, syncStatus: featureFlags.gitRebaseSync ? syncData : undefined, syncLoading: syncLoading, syncError: syncError, onRefreshSync: featureFlags.gitRebaseSync ? refreshSync : undefined, onRebaseOnMain: featureFlags.gitRebaseSync ? featureActions.rebaseOnMain : undefined, rebaseLoading: featureActions.rebaseLoading, rebaseError: featureActions.rebaseError, isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: setChatInput }));
389
+ body = (_jsx(FeatureDrawerTabs, { featureNode: enrichedNode, featureId: featureNode.featureId, initialTab: view.initialTab, urlTab: urlTab, sseEvents: events, prdData: prdData, prdSelections: prdSelections, onPrdSelect: (qId, oId) => setPrdSelections((prev) => ({ ...prev, [qId]: oId })), onPrdApprove: handlePrdApprove, onPrdReject: handlePrdReject, isPrdLoading: isLoadingPrd, techData: techData, onTechApprove: handleTechApprove, onTechReject: handleTechReject, isTechLoading: isLoadingTech, productData: isLoadingTechProduct ? null : techProductData, mergeData: mergeData, onMergeApprove: handleMergeApprove, onMergeReject: handleMergeReject, isMergeLoading: isLoadingMerge, syncStatus: syncFeatureId ? syncData : undefined, syncLoading: syncLoading, syncError: syncError, onRefreshSync: syncFeatureId ? refreshSync : undefined, onRebaseOnMain: syncFeatureId ? featureActions.rebaseOnMain : undefined, rebaseLoading: featureActions.rebaseLoading, rebaseError: featureActions.rebaseError, isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: setChatInput }));
387
390
  }
388
391
  return (_jsx(BaseDrawer, { open: isOpen, onClose: attemptClose, size: "md", modal: false, header: header, "data-testid": view.type === 'feature' ? 'feature-drawer' : 'repository-drawer', children: body }));
389
392
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app-sidebar.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/layouts/app-sidebar/app-sidebar.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAI/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,YAAY,EAAE,iBAAiB,CAAC;IAEhC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,YAAY,EAEZ,cAAc,GACf,EAAE,eAAe,2CA6MjB"}
1
+ {"version":3,"file":"app-sidebar.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/layouts/app-sidebar/app-sidebar.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAI/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,YAAY,EAAE,iBAAiB,CAAC;IAEhC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,YAAY,EAEZ,cAAc,GACf,EAAE,eAAe,2CAoMjB"}
@@ -1,7 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { usePathname } from 'next/navigation';
4
- import Link from 'next/link';
5
4
  import { Home, Moon, Sun, Volume2, VolumeOff, Wrench, Puzzle, Settings } from 'lucide-react';
6
5
  import { Sidebar, SidebarHeader, SidebarContent, SidebarFooter, SidebarMenu, SidebarMenuItem, SidebarMenuButton, SidebarRail, useSidebar, } from '../../ui/sidebar.js';
7
6
  import { ScrollArea } from '../../ui/scroll-area.js';
@@ -39,39 +38,39 @@ export function AppSidebar({ features, featureFlags, onFeatureClick, }) {
39
38
  'flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2',
40
39
  'transition-opacity duration-200 ease-out',
41
40
  expandedVisible ? 'opacity-100' : 'opacity-0',
42
- ].join(' '), "aria-hidden": !expandedVisible, children: [_jsx(ShepLogo, { className: "shrink-0", size: 20, variant: versionData.isDev ? 'dev' : 'default' }), _jsx("span", { className: "truncate text-sm font-semibold tracking-tight", children: "Shep" }), _jsx(VersionBadge, { version: versionData.version, branch: versionData.branch || undefined, commitHash: versionData.commitHash || undefined, isDev: versionData.isDev, packageName: versionData.packageName, description: versionData.description, instancePath: versionData.instancePath || undefined })] })) : null, _jsx(SidebarCollapseToggle, { className: "shrink-0 transition-all duration-200" })] }) }), _jsx(SidebarNavItem, { icon: Home, label: "Control Center", href: "/", active: pathname === '/' }), _jsx(SidebarNavItem, { icon: Wrench, label: "Tools", href: "/tools", active: pathname === '/tools' }), featureFlags.skills ? (_jsx(SidebarNavItem, { icon: Puzzle, label: "Skills", href: "/skills", active: pathname === '/skills' })) : null] }) }), _jsx(SidebarContent, { children: showExpanded ? (_jsxs("div", { className: [
41
+ ].join(' '), "aria-hidden": !expandedVisible, children: [_jsx(ShepLogo, { className: "shrink-0", size: 20, variant: versionData.isDev ? 'dev' : 'default' }), _jsx("span", { className: "truncate text-sm font-semibold tracking-tight", children: "Shep" }), _jsx(VersionBadge, { version: versionData.version, branch: versionData.branch || undefined, commitHash: versionData.commitHash || undefined, isDev: versionData.isDev, packageName: versionData.packageName, description: versionData.description, instancePath: versionData.instancePath || undefined })] })) : null, _jsx(SidebarCollapseToggle, { className: "shrink-0 transition-all duration-200" })] }) }), _jsx(SidebarNavItem, { icon: Home, label: "Control Center", href: "/", active: pathname === '/' }), _jsx(SidebarNavItem, { icon: Wrench, label: "Tools", href: "/tools", active: pathname === '/tools' }), featureFlags.skills ? (_jsx(SidebarNavItem, { icon: Puzzle, label: "Skills", href: "/skills", active: pathname === '/skills' })) : null, _jsx(SidebarNavItem, { icon: Settings, label: "Settings", href: "/settings", active: pathname === '/settings' })] }) }), _jsx(SidebarContent, { children: showExpanded ? (_jsxs("div", { className: [
43
42
  'flex min-h-0 flex-1 flex-col overflow-hidden transition-opacity duration-200 ease-out',
44
43
  '[&_[data-sidebar=group-label]]:!mt-0 [&_[data-sidebar=group-label]]:!opacity-100 [&_[data-sidebar=group-label]]:!transition-none',
45
44
  expandedVisible ? 'opacity-100' : 'opacity-0',
46
- ].join(' '), children: [_jsx(SidebarSectionHeader, { label: "Features" }), _jsx(ScrollArea, { className: "min-h-0 flex-1", children: grouped.map(({ key, label, items }) => items.length > 0 ? (_jsx(FeatureStatusGroup, { label: label, count: items.length, children: items.map((feature) => (_jsx(FeatureListItem, { name: feature.name, status: feature.status, startedAt: feature.startedAt, duration: feature.duration, agentType: feature.agentType, modelId: feature.modelId, onClick: onFeatureClick ? () => onFeatureClick(feature.featureId) : undefined }, feature.featureId))) }, key)) : null) })] })) : null }), _jsx(SidebarFooter, { className: "border-t p-2", children: _jsx(SidebarMenu, { children: _jsx(SidebarMenuItem, { children: _jsxs("div", { className: "flex items-center gap-1", children: [_jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(SidebarMenuButton, { asChild: true, tooltip: "Settings", className: "w-auto flex-none", children: _jsx(Link, { href: '/settings', onClick: () => clickSound.play(), children: _jsx(Settings, { className: "h-4 w-4" }) }) }) }), _jsx(TooltipContent, { side: "top", hidden: collapsed, children: "Settings" })] }) }), !collapsed && _jsx("div", { className: "flex-1" }), !collapsed && (_jsxs(TooltipProvider, { children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(SidebarMenuButton, { className: "w-auto flex-none", onClick: () => {
47
- clickSound.play();
48
- toggleSound();
49
- }, "aria-label": soundEnabled ? 'Mute sounds' : 'Unmute sounds', children: soundEnabled ? (_jsx(Volume2, { className: "h-4 w-4" })) : (_jsx(VolumeOff, { className: "h-4 w-4" })) }) }), _jsx(TooltipContent, { side: "top", children: soundEnabled ? 'Mute sounds' : 'Unmute sounds' })] }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs(SidebarMenuButton, { className: "w-auto flex-none", onClick: (e) => {
50
- const currentResolved = theme === 'system' ? resolvedTheme : theme;
51
- const goingToDark = currentResolved !== 'dark';
52
- const newTheme = theme === 'system'
53
- ? resolvedTheme === 'dark'
54
- ? 'light'
55
- : 'dark'
56
- : theme === 'dark'
57
- ? 'light'
58
- : 'dark';
59
- if (goingToDark) {
60
- toggleOnSound.play();
61
- }
62
- else {
63
- toggleOffSound.play();
64
- }
65
- const prefersReducedMotion = typeof window !== 'undefined' &&
66
- window.matchMedia('(prefers-reduced-motion: reduce)').matches;
67
- if (!('startViewTransition' in document) || prefersReducedMotion) {
68
- setTheme(newTheme);
69
- return;
70
- }
71
- document.documentElement.style.setProperty('--x', `${e.clientX}px`);
72
- document.documentElement.style.setProperty('--y', `${e.clientY}px`);
73
- document.startViewTransition(() => {
74
- setTheme(newTheme);
75
- });
76
- }, "aria-label": `Switch to ${resolvedTheme === 'dark' ? 'light' : 'dark'} mode`, children: [_jsx(Sun, { className: "h-4 w-4 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" }), _jsx(Moon, { className: "absolute h-4 w-4 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" })] }) }), _jsx(TooltipContent, { side: "top", children: resolvedTheme === 'dark' ? 'Light mode' : 'Dark mode' })] })] }))] }) }) }) }), _jsx(SidebarRail, {})] }));
45
+ ].join(' '), children: [_jsx(SidebarSectionHeader, { label: "Features" }), _jsx(ScrollArea, { className: "min-h-0 flex-1", children: grouped.map(({ key, label, items }) => items.length > 0 ? (_jsx(FeatureStatusGroup, { label: label, count: items.length, children: items.map((feature) => (_jsx(FeatureListItem, { name: feature.name, status: feature.status, startedAt: feature.startedAt, duration: feature.duration, agentType: feature.agentType, modelId: feature.modelId, onClick: onFeatureClick ? () => onFeatureClick(feature.featureId) : undefined }, feature.featureId))) }, key)) : null) })] })) : null }), _jsx(SidebarFooter, { className: "border-t p-2", children: _jsx(SidebarMenu, { children: _jsx(SidebarMenuItem, { children: _jsx("div", { className: "flex items-center gap-1", children: _jsxs(TooltipProvider, { children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs(SidebarMenuButton, { className: "w-auto flex-none", onClick: (e) => {
46
+ const currentResolved = theme === 'system' ? resolvedTheme : theme;
47
+ const goingToDark = currentResolved !== 'dark';
48
+ const newTheme = theme === 'system'
49
+ ? resolvedTheme === 'dark'
50
+ ? 'light'
51
+ : 'dark'
52
+ : theme === 'dark'
53
+ ? 'light'
54
+ : 'dark';
55
+ if (goingToDark) {
56
+ toggleOnSound.play();
57
+ }
58
+ else {
59
+ toggleOffSound.play();
60
+ }
61
+ const prefersReducedMotion = typeof window !== 'undefined' &&
62
+ window.matchMedia('(prefers-reduced-motion: reduce)').matches;
63
+ if (!('startViewTransition' in document) || prefersReducedMotion) {
64
+ setTheme(newTheme);
65
+ return;
66
+ }
67
+ document.documentElement.style.setProperty('--x', `${e.clientX}px`);
68
+ document.documentElement.style.setProperty('--y', `${e.clientY}px`);
69
+ document.startViewTransition(() => {
70
+ setTheme(newTheme);
71
+ });
72
+ }, "aria-label": `Switch to ${resolvedTheme === 'dark' ? 'light' : 'dark'} mode`, children: [_jsx(Sun, { className: "h-4 w-4 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" }), _jsx(Moon, { className: "absolute h-4 w-4 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" })] }) }), _jsx(TooltipContent, { side: "top", children: resolvedTheme === 'dark' ? 'Light mode' : 'Dark mode' })] }), !collapsed && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(SidebarMenuButton, { className: "w-auto flex-none", onClick: () => {
73
+ clickSound.play();
74
+ toggleSound();
75
+ }, "aria-label": soundEnabled ? 'Mute sounds' : 'Unmute sounds', children: soundEnabled ? (_jsx(Volume2, { className: "h-4 w-4" })) : (_jsx(VolumeOff, { className: "h-4 w-4" })) }) }), _jsx(TooltipContent, { side: "top", children: soundEnabled ? 'Mute sounds' : 'Unmute sounds' })] }))] }) }) }) }) }), _jsx(SidebarRail, {})] }));
77
76
  }